[
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.