Package org.apache.tuscany.sca.contribution

Examples of org.apache.tuscany.sca.contribution.Contribution


            // find the current directory as a URL. This is where our contribution
            // will come from
            URL contributionURL = Thread.currentThread().getContextClassLoader().getResource(nodeName + "/");

            // Contribute the SCA application
            Contribution contribution = contributionService.contribute("http://calculator", contributionURL, null, false);
            appComposite = contribution.getDeployables().get(0);

            // Add the deployable composite to the domain
            nodeComposite.getIncludes().add(appComposite);
            nodeRuntime.buildComposite(appComposite);
            nodeRuntime.getCompositeActivator().activate(appComposite);
View Full Code Here


        if (contributionArtifactURL == null) {
            throw new IllegalArgumentException(
                                               "Can't determine contribution deployables. Either specify a composite file, or use an sca-contribution.xml file to specify the deployables.");
        }

        Contribution c = getContribution(contributionArtifactURL, contributionArtifactPath);
        config.getContributions().add(c);

        return config;
    }
View Full Code Here

        URL contributionURL = getContributionURL(contributionArtifactURL, contributionArtifactPath);

        ContributionFactory contributionFactory = modelFactories.getFactory(ContributionFactory.class);

        SCAContribution contribution = new SCAContribution(contributionURL.toString(), contributionURL.toString());
        Contribution c = createContribution(contributionFactory, contribution);
        return c;
    }
View Full Code Here

                configuration.setComposite(composite);

                // Create contribution models
                ContributionFactory contributionFactory = modelFactories.getFactory(ContributionFactory.class);
                for (SCAContribution c : contributions) {
                    Contribution contribution = createContribution(contributionFactory, c);
                    configuration.getContributions().add(contribution);
                }
            }

            // Configure the node
View Full Code Here

                configuration.setComposite(composite);

                // Create contribution models
                ContributionFactory contributionFactory = modelFactories.getFactory(ContributionFactory.class);
                for (SCAContribution c : contributions) {
                    Contribution contribution = createContribution(contributionFactory, c);
                    configuration.getContributions().add(contribution);
                }
            }

            // Configure the node
View Full Code Here

            throw new ServiceRuntimeException(e);
        }
    }

    private static Contribution createContribution(ContributionFactory contributionFactory, SCAContribution c) {
        Contribution contribution = contributionFactory.createContribution();
        contribution.setURI(c.getURI());
        contribution.setLocation(c.getLocation());
        contribution.setUnresolved(true);
        return contribution;
    }
View Full Code Here

            contributions.add(contributionService.contribute(contribution.getURI(), contributionURL, false));
            analyseProblems();
        }
       
        // Resolve the metadata within the context of the first contribution
        Contribution mainContribution = contributions.get(contributions.size() - 1);
        if (metadata != null) {
            StAXArtifactProcessor<ContributionMetadata> processor =
                artifactProcessors.getProcessor(ContributionMetadata.class);
            processor.resolve(metadata, mainContribution.getModelResolver());
            List<Composite> composites = metadata.getDeployables();
            configuration.setComposite(composites.get(0));
        }


        // Load the specified composite
        StAXArtifactProcessor<Composite> compositeProcessor = artifactProcessors.getProcessor(Composite.class);
        if (configuration.getComposite().getName() == null) {
          URI uri = createURI(configuration.getComposite().getURI());
            if (uri.getScheme() == null) {
                uri = new File(configuration.getComposite().getURI()).toURI();
            }
            URL compositeURL = uri.toURL();
            logger.log(Level.INFO, "Loading composite: " + compositeURL);
            URLConnection connection = compositeURL.openConnection();
            connection.setDefaultUseCaches(false);
            connection.setUseCaches(false);
            InputStream is = connection.getInputStream();
            XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
            composite = compositeProcessor.read(reader);
        } else {
            composite = configuration.getComposite();
        }

        analyseProblems();

        // Resolve it within the context of the first contribution
        compositeProcessor.resolve(composite, mainContribution.getModelResolver());

        analyseProblems();

        // Create a top level composite to host our composite
        // This is temporary to make the activator happy
View Full Code Here

        contributionFactory = modelFactories.getFactory(ContributionFactory.class);
        javaImportExportFactory = modelFactories.getFactory(JavaImportExportFactory.class);
    }
   
    private Contribution createContribution(String fileName) throws MalformedURLException {
        Contribution contrib = contributionFactory.createContribution();
        File contribDir = new File(fileName);       
        contrib.setLocation(contribDir.toURI().toURL().toString());
        ClassLoader contextClassLoader = AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
            public ClassLoader run() {
                return Thread.currentThread().getContextClassLoader();
            }
        });          
        contrib.setClassLoader(new ContributionClassLoader(contrib, contextClassLoader));
        return contrib;
    }
View Full Code Here

   
  
    @Test
    public void testClassLoadingFromContribution() throws ClassNotFoundException, MalformedURLException {
       
        Contribution contribA = createContribution("target/test-classes");
        Contribution contribB = createContribution("target");
        Contribution contribC = createContribution("target/test-classes/deployables/sample-calculator.jar");
       
        // Class present in contribution, also in parent. Class is loaded from parent
        Class<?> testClassA = contribA.getClassLoader().loadClass(this.getClass().getName());       
        Assert.assertNotNull(testClassA);
        Assert.assertSame(this.getClass(), testClassA);
       
        // Class not present in contribution, but present in parent ClassLoader
        Class<?> testClassB = contribB.getClassLoader().loadClass(this.getClass().getName());
        Assert.assertNotNull(testClassB);
        Assert.assertSame(this.getClass(), testClassB);
       
        // Class present in contribution, but not in parent
        Class<?> testClassC = contribC.getClassLoader().loadClass("calculator.AddService");       
        Assert.assertNotNull(testClassC);
       
        // Class not present in contribution or in parent
        try {
            contribA.getClassLoader().loadClass("NonExistent");
View Full Code Here

    }
   
    @Test
    public void testResourceLoadingFromContribution() throws ClassNotFoundException, MalformedURLException {
       
        Contribution contribA = createContribution("target/test-classes");
        Contribution contribB = createContribution("target");
        Contribution contribC = createContribution("target/test-classes/deployables/sample-calculator.jar");
       
        // Resource present in contribution, and in parent
        URL resA = contribA.getClassLoader().getResource("deployables/sample-calculator.jar");
        Assert.assertNotNull(resA);
       
        // Resource not present in contribution, but present in parent ClassLoader
        URL resB = contribB.getClassLoader().getResource("deployables/sample-calculator.jar");
        Assert.assertNotNull(resB);
       
        // Resource present in contribution, but not in parent
        URL resC = contribC.getClassLoader().getResource("calculator/AddService.class");
        Assert.assertNotNull(resC);       
       
        // Load Java class as resource from parent
        String classResName = this.getClass().getName().replaceAll("\\.", "/") + ".class";
        URL classResA = contribA.getClassLoader().getResource(classResName);
View Full Code Here

TOP

Related Classes of org.apache.tuscany.sca.contribution.Contribution

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.