def test_append(self): with mock.patch('coffea.builder.JavaClass') as JavaClass: instance = JavaClass.return_value instance.package = 'com.example' instance.package_dependencies.return_value = ['com.example.service'] builder = Builder() builder.model.merge = mock.MagicMock() with tempfile.NamedTemporaryFile(suffix='.class') as f: builder.append(f.name) self.assertTrue(builder.model.merge.called)
def test_append(self): with mock.patch('coffea.builder.JavaClass') as JavaClass: instance = JavaClass.return_value instance.package = 'com.example' instance.package_dependencies.return_value = [ 'com.example.service' ] builder = Builder() builder.model.merge = mock.MagicMock() with tempfile.NamedTemporaryFile(suffix='.class') as f: builder.append(f.name) self.assertTrue(builder.model.merge.called)
output_file='output/glassfish_dependencies.dot' ### Logger ### import logging logging.basicConfig(level=logging.INFO) logging.getLogger('scanner').setLevel(logging.WARN) logging.getLogger('java').setLevel(logging.WARN) ### Analysys ### from coffea.builder import Builder, PackageNodeFactory from coffea.analyzer import Writer from coffea.model import NodeIdFilter, NodeIdMapper # Build a package dependency model using code size as weight b = Builder(PackageNodeFactory(size_property="code")) # Drop packages that don't belong to the org.glassfish namespace b.model.node_filters.append(NodeIdFilter(lambda it: it.startswith('org.glassfish.'))) # Drop the org.glassfish prefix for clarity b.model.node_filters.append(NodeIdMapper(lambda it: it.replace('org.glassfish.', ''))) # Reduce all child packages to the top level package (eg. "ejb.xyz" and "ejb.abc.pqr" will be merged into "ejb") b.model.node_filters.append(NodeIdMapper(lambda it: it.split('.')[0])) # Remove unimportant packages #b.model.node_filters.append(NodeIdFilter(lambda it: it not in ['logging'])) # Run the analysis b.append(glassfish_home)
### Logger ### import logging logging.basicConfig(level=logging.INFO) logging.getLogger('scanner').setLevel(logging.WARN) logging.getLogger('java').setLevel(logging.WARN) ### Analysys ### from coffea.builder import Builder, PackageNodeFactory from coffea.analyzer import Plotter from coffea.model import NodeIdFilter, NodeIdMapper # Build a package dependency model using code size as weight b = Builder(PackageNodeFactory(size_property="code")) # Drop packages that don't belong to the org.jboss namespace b.model.node_filters.append(NodeIdFilter(lambda it: it.startswith('org.jboss.'))) # Drop the org.jboss prefix for clarity b.model.node_filters.append(NodeIdMapper(lambda it: it.replace('org.jboss.', ''))) # Reduce all child packages to the top level package (eg. "as.xyz" and "as.abc.pqr" will be merged into "as") b.model.node_filters.append(NodeIdMapper(lambda it: it.split('.')[0])) # Remove unimportant packages b.model.node_filters.append(NodeIdFilter(lambda it: it not in ['logging'])) # Run the analysis b.append(jboss7_mods)