Esempio n. 1
0
    def test_managed_resolve(self):
        """A managed resolve should consume a ManagedResolve and ManagedJars to produce Jars."""
        build_request = self.request(['compile'],
                                     self.consumes_managed_thirdparty)
        walk = self.build_and_walk(build_request)

        # Validate the root.
        self.assertEqual(
            (SelectNode(self.consumes_managed_thirdparty, Classpath, None,
                        None), Return(Classpath(creator='javac'))), walk[0][0])

        # Confirm that we produced classpaths for the managed jars.
        managed_jars = [self.managed_guava, self.managed_hadoop]
        self.assert_select_for_subjects(walk, Classpath,
                                        [self.consumes_managed_thirdparty])
        self.assert_select_for_subjects(walk,
                                        Classpath,
                                        managed_jars,
                                        variants={'resolve': 'latest-hadoop'})

        # Confirm that the produced jars had the appropriate versions.
        self.assertEquals(
            {
                Jar('org.apache.hadoop', 'hadoop-common', '2.7.0'),
                Jar('com.google.guava', 'guava', '18.0')
            }, {
                ret.value
                for (node, ret), _ in walk
                if node.product == Jar and isinstance(node, SelectNode)
            })
Esempio n. 2
0
    def test_codegen_simple(self):
        build_request = self.request(['compile'], self.java)
        walk = self.build_and_walk(build_request)

        # The subgraph below 'src/thrift/codegen/simple' will be affected by its default variants.
        subjects = [self.guava, self.java, self.thrift]
        variant_subjects = [
            Jar(org='org.apache.thrift',
                name='libthrift',
                rev='0.9.2',
                type_alias='jar'),
            Jar(org='commons-lang',
                name='commons-lang',
                rev='2.5',
                type_alias='jar'),
            Address.parse('src/thrift:slf4j-api')
        ]

        # Root: expect a DependenciesNode depending on a SelectNode with compilation via javac.
        self.assert_root(walk, SelectNode(self.java, Classpath, None, None),
                         Classpath(creator='javac'))

        # Confirm that exactly the expected subjects got Classpaths.
        self.assert_select_for_subjects(walk, Classpath, subjects)
        self.assert_select_for_subjects(walk,
                                        Classpath,
                                        variant_subjects,
                                        variants={'thrift': 'apache_java'})
Esempio n. 3
0
    def test_codegen_simple(self):
        build_request = BuildRequest(goals=['compile'],
                                     addressable_roots=[self.java.address])
        execution_graph = self.scheduler.execution_graph(build_request)

        plans = list(execution_graph.walk())
        self.assertEqual(4, len(plans))

        thrift_jars = [
            Jar(org='org.apache.thrift', name='libthrift', rev='0.9.2'),
            Jar(org='commons-lang', name='commons-lang', rev='2.5'),
            self.graph.resolve(Address.parse('src/thrift:slf4j-api'))
        ]

        jars = [self.guava] + thrift_jars

        # Independent leaves 1st
        self.assertEqual(
            {(Sources.of('.java'),
              Plan(func_or_task_type=gen_apache_thrift,
                   subjects=[self.thrift],
                   strict=True,
                   rev='0.9.2',
                   gen='java',
                   sources=['src/thrift/codegen/simple/simple.thrift'])),
             (Classpath,
              Plan(func_or_task_type=IvyResolve, subjects=jars, jars=jars))},
            set(self.extract_product_type_and_plan(p) for p in plans[0:2]))

        # The rest is linked.
        self.assertEqual(
            (Classpath,
             Plan(func_or_task_type=Javac,
                  subjects=[self.thrift],
                  sources=Promise(Sources.of('.java'), self.thrift),
                  classpath=[Promise(Classpath, jar) for jar in thrift_jars])),
            self.extract_product_type_and_plan(plans[2]))

        self.assertEqual((Classpath,
                          Plan(func_or_task_type=Javac,
                               subjects=[self.java],
                               sources=['src/java/codegen/simple/Simple.java'],
                               classpath=[
                                   Promise(Classpath, self.guava),
                                   Promise(Classpath, self.thrift)
                               ])),
                         self.extract_product_type_and_plan(plans[3]))
Esempio n. 4
0
  def test_codegen_simple(self):
    build_request = BuildRequest(goals=['compile'], addressable_roots=[self.java.address])
    walk = self.build_and_walk(build_request)

    subjects = [self.guava,
                Jar(org='org.apache.thrift', name='libthrift', rev='0.9.2'),
                Jar(org='commons-lang', name='commons-lang', rev='2.5'),
                self.graph.resolve(Address.parse('src/thrift:slf4j-api')),
                self.java,
                self.thrift]

    # Root: expect compilation via javac.
    self.assertEqual((SelectNode(self.java, Classpath, None), Return(Classpath(creator='javac'))),
                     walk[0][0])

    # Confirm that exactly the expected subjects got Classpaths.
    self.assert_product_for_subjects(walk, Classpath, subjects)
Esempio n. 5
0
    def test_codegen_simple(self):
        build_request = BuildRequest(goals=['compile'],
                                     addressable_roots=[self.java])
        walk = self.build_and_walk(build_request)

        # The subgraph below 'src/thrift/codegen/simple' will be affected by its default variants.
        subjects = [self.guava, self.java, self.thrift]
        variant_subjects = [
            Jar(org='org.apache.thrift', name='libthrift', rev='0.9.2'),
            Jar(org='commons-lang', name='commons-lang', rev='2.5'),
            Address.parse('src/thrift:slf4j-api')
        ]

        # Root: expect compilation via javac.
        self.assertEqual(
            (SelectNode(self.java, Classpath, None,
                        None), Return(Classpath(creator='javac'))), walk[0][0])

        # Confirm that exactly the expected subjects got Classpaths.
        self.assert_select_for_subjects(walk, Classpath, subjects)
        self.assert_select_for_subjects(walk,
                                        Classpath,
                                        variant_subjects,
                                        variants={'thrift': 'apache_java'})