コード例 #1
0
ファイル: test_builder.py プロジェクト: naaraayaNan/coffea
    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)
コード例 #2
0
    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)
コード例 #3
0
### 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)

print 'Nodes: ', len(b.model.nodes)

### Export data ###
writer = Writer(b.model)
writer.write(output_file, data_format=output_format)

コード例 #4
0
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)

print 'Nodes: ', len(b.model.nodes)

p = Plotter(b.model)

# Plot using matplotlib
p.plot(calc_node_size=True)

# Plot to a file
#p.plot(filename='/tmp/jboss7_module_dependencies.png')