Rajini Sivaram wrote:
Sebastien,

Sorry, ignore my previous note (the one below). Even with assets not in the
classpath, I can run launch.LaunchCloud as long as the assets contribution
is added first. The code in svn does:


currencyNode.addContribution("http://cloud";, cloudContribution);

catalogsNode.addContribution("http://assets";, assetsContribution);

assets should be aded to currencyNode before cloud (at least with the
current code). With that change, it runs without throwing any exceptions.



With the latest code and after fixing the addContribution calls LaunchCloud now works for me too. Thanks.

However, after starting LaunchCloud, starting LaunchStore throws the exception below, as o.a.t.implementation.data.api.collection.Collection is required by services.ShoppingCart but not on the contribution path.

Adding implementation-data-api.jar and derby.jar as contributions (as I did in SVN r608288) is not sufficient as these JARs don't have an sca-contribution.xml exporting their classes.

Summary: classes that depend on existing JARs (likely to happen in many component implementation classes) cannot be loaded from SCA contributions, as the existing JARs are not properly handled by the contribution processor.

I'll try to fix the contribution processor, the contribution ClassLoader and the import/export machinery later this week.

P.S. Simon, I don't think that you need to wait for the fix for the 1.1 release.

Here's the exception:
Exception in thread "main" java.lang.NoClassDefFoundError: org.apache.tuscany.sca.implementation.data.collection.Collection
        at java.lang.ClassLoader.defineClassImpl(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:228)
        at 
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:148)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:557)
        at java.net.URLClassLoader.access$400(URLClassLoader.java:120)
        at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:962)
        at 
java.security.AccessController.doPrivileged(AccessController.java:275)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:488)
at org.apache.tuscany.sca.contribution.impl.ContributionClassLoader.findClassFromContribution(ContributionClassLoader.java:281) at org.apache.tuscany.sca.contribution.impl.ContributionClassLoader.findClass(ContributionClassLoader.java:85) at org.apache.tuscany.sca.contribution.impl.ContributionClassLoader.loadClass(ContributionClassLoader.java:142)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
        at java.lang.ClassLoader.defineClassImpl(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:228)
        at 
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:148)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:557)
        at java.net.URLClassLoader.access$400(URLClassLoader.java:120)
        at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:962)
        at 
java.security.AccessController.doPrivileged(AccessController.java:275)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:488)
at org.apache.tuscany.sca.contribution.impl.ContributionClassLoader.findClassFromContribution(ContributionClassLoader.java:281) at org.apache.tuscany.sca.contribution.impl.ContributionClassLoader.findClass(ContributionClassLoader.java:85) at org.apache.tuscany.sca.contribution.impl.ContributionClassLoader.findClass(ContributionClassLoader.java:98) at org.apache.tuscany.sca.contribution.impl.ContributionClassLoader.loadClass(ContributionClassLoader.java:142)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
        at java.lang.Class.forNameImpl(Native Method)
        at java.lang.Class.forName(Class.java:163)
at org.apache.tuscany.sca.contribution.java.impl.ClassReferenceModelResolver.resolveModel(ClassReferenceModelResolver.java:95) at org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver.resolveModel(ExtensibleModelResolver.java:127) at org.apache.tuscany.sca.implementation.java.xml.JavaImplementationProcessor.resolve(JavaImplementationProcessor.java:145) at org.apache.tuscany.sca.implementation.java.xml.JavaImplementationProcessor.resolve(JavaImplementationProcessor.java:1) at org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint$LazyStAXArtifactProcessor.resolve(DefaultStAXArtifactProcessorExtensionPoint.java:242) at org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor.resolve(ExtensibleStAXArtifactProcessor.java:108) at org.apache.tuscany.sca.assembly.xml.BaseAssemblyProcessor.resolveImplementation(BaseAssemblyProcessor.java:241) at org.apache.tuscany.sca.assembly.xml.CompositeProcessor.resolve(CompositeProcessor.java:794) at org.apache.tuscany.sca.assembly.xml.CompositeProcessor.resolve(CompositeProcessor.java:1) at org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor.resolve(ExtensibleStAXArtifactProcessor.java:108) at org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor.resolve(CompositeDocumentProcessor.java:113) at org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor.resolve(CompositeDocumentProcessor.java:1) at org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor.resolve(ExtensibleURLArtifactProcessor.java:86) at org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.processResolvePhase(ContributionServiceImpl.java:423) at org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.addContribution(ContributionServiceImpl.java:333) at org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.contribute(ContributionServiceImpl.java:169) at org.apache.tuscany.sca.node.impl.SCANodeImpl.addContributionFromDomain(SCANodeImpl.java:321) at org.apache.tuscany.sca.node.impl.SCANodeImpl.addContribution(SCANodeImpl.java:484) at org.apache.tuscany.sca.node.impl.SCANodeImpl.addContribution(SCANodeImpl.java:478)
        at launch.LaunchStore.main(LaunchStore.java:45)

--
Jean-Sebastien

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to