node.addContribution incorrectly loads of unused composites
-----------------------------------------------------------
Key: TUSCANY-1951
URL: https://issues.apache.org/jira/browse/TUSCANY-1951
Project: Tuscany
Issue Type: Bug
Components: Java SCA Core Runtime
Affects Versions: Java-SCA-1.0.1, Java-SCA-1.0
Reporter: Jean-Sebastien Delfino
Fix For: Java-SCA-Next
node.addContribution() incorrectly triggers eager loading and resolution of all
.composite artifacts in the contribution. Instead it should only consider the
composites that are actually used later on by the node (similar to what the
Java classloader does, it doesn't complain about classes with unresolved
references to other classes unless and until they are actually used /
referenced themselves).
To produce the exception below I just added a dummy composite containing an
unresolvable class to the tutorial's store contribution. I shouldn't get that
exception at all as the composite is never used in my environment (it's not
referenced by any of the composites actually added to the SCA node).
Exception in thread "main" org.apache.tuscany.sca.node.NodeException:
java.lang.ClassNotFoundException: services.merger.MergedCatalogImpl
at
org.apache.tuscany.sca.node.impl.SCANodeImpl.addContribution(SCANodeImpl.java:490)
at
org.apache.tuscany.sca.node.impl.SCANodeImpl.addContribution(SCANodeImpl.java:478)
at launch.LaunchStore.main(LaunchStore.java:43)
Caused by: org.apache.tuscany.sca.node.NodeException:
java.lang.ClassNotFoundException: services.merger.MergedCatalogImpl
at
org.apache.tuscany.sca.node.impl.SCANodeImpl.addContributionFromDomain(SCANodeImpl.java:339)
at
org.apache.tuscany.sca.node.impl.SCANodeImpl.addContribution(SCANodeImpl.java:484)
... 2 more
Caused by:
org.apache.tuscany.sca.contribution.service.ContributionResolveException:
java.lang.ClassNotFoundException: services.merger.MergedCatalogImpl
at
org.apache.tuscany.sca.implementation.java.xml.JavaImplementationProcessor.resolve(JavaImplementationProcessor.java:148)
at
org.apache.tuscany.sca.implementation.java.xml.JavaImplementationProcessor.resolve(JavaImplementationProcessor.java:65)
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:74)
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:47)
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)
... 3 more
Caused by: java.lang.ClassNotFoundException: services.merger.MergedCatalogImpl
... 18 more
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]