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

### 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)