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]