[ https://issues.apache.org/jira/browse/TUSCANY-3727?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12921406#action_12921406 ]
Simon Laws commented on TUSCANY-3727: ------------------------------------- There's a human readable file, called "which-jars", that can be generated by our maven-bundle-plugin which lists the jars that are contained in any particular "collection" whether that be a feature or any other kind of pom described collection, e.g. one of the *-runtime poms from modules or one of the features that collects together dependencies required to run a binding or implementation extension. The contents of the binding-rmi which-jars file is, for example, tuscany-binding-rmi-2.0-SNAPSHOT.jar tuscany-binding-rmi-runtime-2.0-SNAPSHOT.jar tuscany-host-rmi-2.0-SNAPSHOT.jar This clarity depends on being careful how the binding-rmi-runtime pom is configured. It's dependencies are specified as follows... <dependencies> <dependency> <groupId>org.apache.tuscany.sca</groupId> <artifactId>tuscany-core-runtime</artifactId> <version>2.0-SNAPSHOT</version> <type>pom</type> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.tuscany.sca</groupId> <artifactId>tuscany-binding-rmi</artifactId> <version>2.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.apache.tuscany.sca</groupId> <artifactId>tuscany-host-rmi</artifactId> <version>2.0-SNAPSHOT</version> </dependency> ..... Which clearly says that I need all the core Tuscany dependencies but that they will be provided elsewhere by the runtime. This means that the code that generates the which-jars file doesn't see these dependencies and hence generates the short list above. Now there isn't actually a which-jars list for the core dependencies, because you can't run anything with it on its own (although maybe we should provide it for completeness in case people want to know what provides the SPI). Current the core is wrapped up in the base runtime which adds on top of the core the minimal base runtime artifacts required to run Tuscany. Currently the base-runtime which-jars looks like... XmlSchema-1.4.3.jar activation-1.1/activation-1.1.jar asm-3.1/asm-3.1.jar cglib-2.2/cglib-2.2.jar commons-cli-1.2.jar geronimo-stax-api_1.0_spec-1.0.1.jar jaxb-api-2.1/jaxb-api-2.1.jar jaxb-impl-2.1.12/jaxb-impl-2.1.12.jar jaxws-api-2.1/jaxws-api-2.1.jar jsr181-api-1.0-MR1/jsr181-api-1.0-MR1.jar jsr250-api-1.0/jsr250-api-1.0.jar servlet-api-2.5/servlet-api-2.5.jar tuscany-assembly-2.0-SNAPSHOT.jar tuscany-assembly-xml-2.0-SNAPSHOT.jar tuscany-assembly-xsd-2.0-SNAPSHOT.jar tuscany-binding-sca-runtime-2.0-SNAPSHOT.jar tuscany-binding-ws-2.0-SNAPSHOT.jar tuscany-binding-ws-wsdlgen-2.0-SNAPSHOT.jar tuscany-builder-2.0-SNAPSHOT.jar tuscany-common-java-2.0-SNAPSHOT.jar tuscany-common-xml-2.0-SNAPSHOT.jar tuscany-contribution-2.0-SNAPSHOT.jar tuscany-core-2.0-SNAPSHOT.jar tuscany-core-databinding-2.0-SNAPSHOT.jar tuscany-core-spi-2.0-SNAPSHOT.jar tuscany-databinding-2.0-SNAPSHOT.jar tuscany-databinding-jaxb-2.0-SNAPSHOT.jar tuscany-deployment-2.0-SNAPSHOT.jar tuscany-extensibility-2.0-SNAPSHOT.jar tuscany-host-http-2.0-SNAPSHOT.jar tuscany-host-webapp-2.0-SNAPSHOT.jar tuscany-implementation-java-2.0-SNAPSHOT.jar tuscany-implementation-java-runtime-2.0-SNAPSHOT.jar tuscany-implementation-web-2.0-SNAPSHOT.jar tuscany-implementation-web-runtime-2.0-SNAPSHOT.jar tuscany-interface-java-2.0-SNAPSHOT.jar tuscany-interface-java-jaxws-2.0-SNAPSHOT.jar tuscany-interface-wsdl-2.0-SNAPSHOT.jar tuscany-monitor-2.0-SNAPSHOT.jar tuscany-node-api-2.0-SNAPSHOT.jar tuscany-node-impl-2.0-SNAPSHOT.jar tuscany-node-launcher-2.0-SNAPSHOT.jar tuscany-policy-security-2.0-SNAPSHOT.jar tuscany-sca-api-2.0-SNAPSHOT.jar tuscany-sca-client-impl-2.0-SNAPSHOT.jar tuscany-xsd-2.0-SNAPSHOT.jar wsdl4j-1.6.2/wsdl4j-1.6.2.jar wstx-asl-3.2.4/wstx-asl-3.2.4.jar Not sure that's precisely the right list but we'll increment on it. Now, having said all this, most of the runtime module poms are not so carefully constructed or haven't been converted over to base + extensions at all. This is not really a problem in that it doesn't stop anything working but It's not very neat for our users. For example, I started converting binding-ws-runtime-axis2 as follows... <dependency> <groupId>org.apache.tuscany.sca</groupId> <artifactId>tuscany-core-runtime</artifactId> <version>2.0-SNAPSHOT</version> <type>pom</type> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.tuscany.sca</groupId> <artifactId>tuscany-binding-ws-wsdlgen</artifactId> <version>2.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.apache.tuscany.sca</groupId> <artifactId>tuscany-policy-security</artifactId> <version>2.0-SNAPSHOT</version> </dependency> .... Note that tuscany-binding-ws-wsdlgen is now in base and should be provided. However making this change means changing most itests to follow the same pattern and, at the time, I didn't want to take that step until we'd got the approach working (which I think it is now). Hence the binding-ws-runtime-axis2 which-jars file looks like.... XmlSchema-1.4.3.jar activation-1.1/activation-1.1.jar annogen-0.1.0/annogen-0.1.0.jar asm-3.1/asm-3.1.jar axiom-api-1.2.8/axiom-api-1.2.8.jar axiom-dom-1.2.8.jar axiom-impl-1.2.8.jar axis-ant-1.4/axis-ant-1.4.jar axis2-codegen-1.5.1/axis2-codegen-1.5.1.jar axis2-java2wsdl-1.5.1/axis2-java2wsdl-1.5.1.jar axis2-kernel-1.5.1/axis2-kernel-1.5.1.jar axis2-mtompolicy-1.5.1/axis2-mtompolicy-1.5.1.jar axis2-transport-base-1.0.0/axis2-transport-base-1.0.0.jar axis2-transport-http-1.5.1/axis2-transport-http-1.5.1.jar axis2-transport-jms-1.0.0/axis2-transport-jms-1.0.0.jar axis2-transport-local-1.5.1/axis2-transport-local-1.5.1.jar backport-util-concurrent-3.1/backport-util-concurrent-3.1.jar commons-codec-1.3/commons-codec-1.3.jar commons-collections-3.2/commons-collections-3.2.jar commons-discovery-0.4/commons-discovery-0.4.jar commons-fileupload-1.2/commons-fileupload-1.2.jar commons-httpclient-3.1/commons-httpclient-3.1.jar commons-io-1.4.jar commons-logging-1.1.1/commons-logging-1.1.1.jar dom4j-1.6.1/dom4j-1.6.1.jar geronimo-activation_1.1_spec-1.0.1.jar geronimo-javamail_1.4_spec-1.6.jar geronimo-jms_1.1_spec-1.1.1.jar geronimo-jta_1.0.1B_spec-1.0/geronimo-jta_1.0.1B_spec-1.0.jar geronimo-jta_1.1_spec-1.1.1.jar geronimo-stax-api_1.0_spec-1.0.1.jar geronimo-ws-metadata_2.0_spec-1.1.2.jar httpcore-4.0.1/httpcore-4.0.1.jar httpcore-nio-4.0.1/httpcore-nio-4.0.1.jar jaxb-api-2.1/jaxb-api-2.1.jar jaxb-impl-2.1.12/jaxb-impl-2.1.12.jar jaxen-1.1.1/jaxen-1.1.1.jar jaxws-api-2.1/jaxws-api-2.1.jar jdom-1.0/jdom-1.0.jar jsr181-api-1.0-MR1/jsr181-api-1.0-MR1.jar jsr250-api-1.0/jsr250-api-1.0.jar log4j-1.2.15/log4j-1.2.15.jar mail-1.4/mail-1.4.jar mex-1.5.1-impl/mex-1.5.1-impl.jar neethi-2.0.4.jar rampart-core-1.4/rampart-core-1.4.jar rampart-policy-1.4/rampart-policy-1.4.jar rampart-trust-1.4/rampart-trust-1.4.jar tuscany-assembly-2.0-SNAPSHOT.jar tuscany-assembly-xml-2.0-SNAPSHOT.jar tuscany-assembly-xsd-2.0-SNAPSHOT.jar tuscany-binding-ws-2.0-SNAPSHOT.jar tuscany-binding-ws-runtime-axis2-2.0-SNAPSHOT.jar tuscany-binding-ws-wsdlgen-2.0-SNAPSHOT.jar tuscany-common-java-2.0-SNAPSHOT.jar tuscany-common-xml-2.0-SNAPSHOT.jar tuscany-contribution-2.0-SNAPSHOT.jar tuscany-core-spi-2.0-SNAPSHOT.jar tuscany-databinding-2.0-SNAPSHOT.jar tuscany-databinding-axiom-2.0-SNAPSHOT.jar tuscany-databinding-jaxb-2.0-SNAPSHOT.jar tuscany-databinding-jaxb-axiom-2.0-SNAPSHOT.jar tuscany-extensibility-2.0-SNAPSHOT.jar tuscany-interface-java-2.0-SNAPSHOT.jar tuscany-interface-java-jaxws-2.0-SNAPSHOT.jar tuscany-interface-wsdl-2.0-SNAPSHOT.jar tuscany-monitor-2.0-SNAPSHOT.jar tuscany-policy-security-2.0-SNAPSHOT.jar tuscany-sca-api-2.0-SNAPSHOT.jar tuscany-xsd-2.0-SNAPSHOT.jar woden-api-1.0M8.jar woden-impl-dom-1.0M8/woden-impl-dom-1.0M8.jar wsdl4j-1.6.2/wsdl4j-1.6.2.jar wss4j-1.5.4/wss4j-1.5.4.jar wstx-asl-3.2.4/wstx-asl-3.2.4.jar xalan-2.7.0/xalan-2.7.0.jar xercesImpl-2.8.1/xercesImpl-2.8.1.jar xml-apis-1.3.04/xml-apis-1.3.04.jar xmlsec-1.4.3/xmlsec-1.4.3.jar This clearly has lots of stuff that's already included in the base list. This would not be the case if we just had the provided base-runtime dependency in the binding-ws-runtime-axis2 pom. I'll fix this shortly and fix the itests accordingly. The bottom line here is that we have a set of *-runtime features that follow an incremental base + extension approach. These collections of dependencies are used consistently to describe maven dependencies, generate meta-data, such as which-jars, manifest files, ant file sets and, in the case of base-runtime create convenience aggregated jars. None of this means that the existing features don't work as-is as all of this, apart from the aggregate jar, continues to refer into the set of jars in the modules directory, I think (hope) that's what Ant meant;-) > which-jars files in distribution should not include jars from base runtime > -------------------------------------------------------------------------- > > Key: TUSCANY-3727 > URL: https://issues.apache.org/jira/browse/TUSCANY-3727 > Project: Tuscany > Issue Type: Bug > Reporter: ant elder > Fix For: Java-SCA-2.0-Beta1 > > > The which-jars file in distribution/features/xyz folders should not include > the jars that are already included in the base runtime -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.