Hi, What's the difference between "feature" and "extension"?
Thanks, Raymond ________________________________________________________________ Raymond Feng [email protected] Apache Tuscany PMC member and committer: tuscany.apache.org Co-author of Tuscany SCA In Action book: www.tuscanyinaction.com Personal Web Site: www.enjoyjava.com ________________________________________________________________ On Sep 29, 2010, at 10:11 AM, Simon Laws wrote: > Ok well I've published a snapshot of our maven-bundle-plugin that > allows us to generate some more meta-data for the binary distro. The > snapshot is not synched yet to the Nexus repo so I haven't committed > the distro poms that allow you to build for yourself. I've posted the > resulting zip to my p.o.a. space [1]. I notice that this is rather > large, mostly due to cruft in the samples I believe, so you probably > won't want to actually download it so here are the interesting (?) > changes... > > bin/ > haven't changed > modules/ > haven't changed > lib/ > haven't changed > features/ > tuscany-base-runtime > tuscany-binding-atom-runtime > tuscany-binding-corba-runtime > tuscany-binding-ejb-runtime > tuscany-binding-jms-runtime > tuscany-binding-jsonp-runtime > tuscany-binding-jsonrpc-runtime > tuscany-binding-rest-runtime > tuscany-binding-rmi-runtime > tuscany-binding-rss-runtime > tuscany-binding-ws-runtime-axis2 > tuscany-implementation-bpel-runtime > tuscany-implementation-osgi-runtime > tuscany-implementation-script-runtime > tuscany-implementation-spring-runtime > tuscany-implementation-web-runtime > tuscany-implementation-widget-runtime > samples > mostly unchanged except... > running-tuscany > embedded-jse > build.xml - updated to use different ways to ref base + ext > all manifest > ant filesets > separate manifests > would like to add aggregate jars here also > > The top level feature dir still has the "all" info in it though I'd > like to move > it to a sub directory. All sub-directories have meta-data referring to modules > for example, > > features/ > tuscany-binding-rmi-runtime/ > build-path.xml > tuscany-binding-rmi-runtime-manifest.jar > which-jars > > The sample build.xml file that uses this meta-data includes > appropriate ant filesets > > <include > file="${tuscany.home}/features/tuscany-base-runtime/build-path.xml"/> > <include > file="${tuscany.home}/features/tuscany-binding-ws-runtime-axis2/build-path.xml"/> > <include > file="${tuscany.home}/features/tuscany-binding-rmi-runtime/build-path.xml"/> > > and then uses various different mechanisms > > <target name="binding-sca-calculator" depends="compile"> > <java classname="launcher.JSELauncherBindingSCACalculator" > fork="true" > failonerror="true"> > <classpath> > <pathelement location="target/${jar.name}"/> > <fileset dir="${tuscany.home}/features"> > <include name="tuscany-sca-manifest.jar" /> > </fileset> > </classpath> > </java> > </target> > > <target name="binding-ws-calculator" depends="compile"> > <java classname="launcher.JSELauncherBindingWSCalculator" > fork="true" > failonerror="true"> > <classpath> > <pathelement location="target/${jar.name}"/> > <path refid="tuscany-base-runtime.path"/> > <path refid="tuscany-binding-ws-runtime-axis2.path"/> > </classpath> > </java> > </target> > > <target name="binding-rmi-calculator" depends="compile"> > <java classname="launcher.JSELauncherBindingRMICalculator" > fork="true" > failonerror="true"> > <classpath> > <pathelement location="target/${jar.name}"/> > <fileset dir="${tuscany.home}/features/tuscany-base-runtime"> > <include name="tuscany-base-runtime-manifest.jar" /> > </fileset> > <fileset > dir="${tuscany.home}/features/tuscany-binding-rmi-runtime"> > <include name="tuscany-binding-rmi-runtime-manifest.jar" /> > </fileset> > </classpath> > </java> > </target> > > <!-- TODO - I'd like this to be running with aggregate JARs --> > <target name="implementation-java-calculator" depends="compile"> > <java classname="launcher.JSELauncherImplementationJavaCalculator" > fork="true" > failonerror="true"> > <classpath> > <pathelement location="target/${jar.name}"/> > <fileset dir="${tuscany.home}/features"> > <include name="tuscany-sca-manifest.jar" /> > </fileset> > </classpath> > </java> > </target> > > The base meta-data is defined in the base feature and just refers to > the modules required to > run the ASM otests less the ws binding. All the extensions are > referenced directly in the > modules dir. There is a new mojo in the bundles plugin that does the > generation with the > following configuration. > > <execution> > <id>extensions-build</id> > <phase>process-resources</phase> > <goals> > <goal>generate-meta-data</goal> > </goals> > <configuration> > <generateModules>false</generateModules> > <useDistributionName>false</useDistributionName> > <generateManifestJar>true</generateManifestJar> > <generateConfig>false</generateConfig> > <generateAntScript>true</generateAntScript> > > <generateTargetPlatform>false</generateTargetPlatform> > > <generateAggregatedBundle>false</generateAggregatedBundle> > <featuresName>features</featuresName> > <features> > <feature> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-base-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </feature> > </features> > <extensions> > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-binding-atom-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-binding-commet-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-binding-corba-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-binding-ejb-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-binding-hazelcase-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-binding-jms-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-binding-jsonp-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-binding-jsonrpc-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-binding-rest-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-binding-rmi-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-binding-rss-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-binding-ws-runtime-axis2</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-implementation-bpel-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-implementation-jaxes-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-implementation-osgi-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-implementation-python-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-implementation-script-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-implementation-spring-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-implementation-web-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > <extension> > <groupId>org.apache.tuscany.sca</groupId> > > <artifactId>tuscany-implementation-widget-runtime</artifactId> > <version>2.0-SNAPSHOT</version> > </extension> > > </extensions> > > It's horribly complicated as it's a hacked version of the existing > mojo but can be tidied if we decide to use it. > > I'm hoping that the bin directory will be fixed to enable whatever > shell stuff we end up with. > > I'm also hoping that Ant will produce a sample set of aggregate jars > so we can look at those too. > > [1] http://people.apache.org/~slaws/tuscany/2.0-Beta1-RC0/ > > Simon > > -- > Apache Tuscany committer: tuscany.apache.org > Co-author of a book about Tuscany and SCA: tuscanyinaction.com
