Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Rich Client Platform (RCP) » Build of RCP Application across multi build environments
Build of RCP Application across multi build environments [message #492273] Mon, 19 October 2009 18:16 Go to next message
PM  is currently offline PM Friend
Messages: 14
Registered: July 2009
Junior Member
We are in the process to develop a continuous integration build for our RCP project that consists about 8 plugins. We are able to achieve full build and deploy using ANT. Out of 8, one of the plugin is built using jars. The jar names/versions are different depending upon which "build environment "the jar is built on. How do we manage it using either ant build script or otherwise. Ideally i dont want to edit MANIFEST.MF and build.properties of this plugin when building our RCP project in different environments. Any pointers will be a great help. I have provided a snippet of how our MANIFEST file looks lile of the plugin that was built using jar files.
Please note we have a build.xml for this plugin which simply gets the 3 jar files from a maven repository.

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Webservices
Bundle-SymbolicName: webservices
Bundle-Version: 1.0.0
Bundle-ClassPath: jaxb2-wrapper-tops-1.0-SNAPSHOT.jar,
dataaccess-1.0.0.jar,
xyz-jaxb2-webservices-cbe-DEV-2.0.jar, <this jar file name will be diff depending upon which build env. it was built.>
properties/
Export-Package: com.xyz.tops.dataaccess,
com.xyz.tops.dataaccess.utils,
xyz.jaxb2.stub,
xyz.service.jaxb2,
xyz.service.jaxb2.impl
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Require-Bundle: com.etrade.tops.tppjars;bundle-version="1.0.0"

Regards
Priyanka
Re: Build of RCP Application across multi build environments [message #492614 is a reply to message #492273] Wed, 21 October 2009 06:25 Go to previous messageGo to next message
maarten meijer is currently offline maarten meijerFriend
Messages: 146
Registered: July 2009
Senior Member
Hi Priyanka,

why not build your xyz-jaxb2-webservices-cbe-DEV-2.0.jar directly as
OSGi bundle? OSGi Bundle is just a traditional jar with another MANIFEST.MF.
Then you you create the dependencies using Import-Package: instead of
Require-Bundle:

When required you can then reexport the packages as well

Maarten

PM schreef:
> We are in the process to develop a continuous integration build for our
> RCP project that consists about 8 plugins. We are able to achieve full
> build and deploy using ANT. Out of 8, one of the plugin is built using
> jars. The jar names/versions are different depending upon which "build
> environment "the jar is built on. How do we manage it using either ant
> build script or otherwise. Ideally i dont want to edit MANIFEST.MF and
> build.properties of this plugin when building our RCP project in
> different environments. Any pointers will be a great help. I have
> provided a snippet of how our MANIFEST file looks lile of the plugin
> that was built using jar files. Please note we have a build.xml for this
> plugin which simply gets the 3 jar files from a maven repository.
>
> Manifest-Version: 1.0
> Bundle-ManifestVersion: 2
> Bundle-Name: Webservices
> Bundle-SymbolicName: webservices
> Bundle-Version: 1.0.0
> Bundle-ClassPath: jaxb2-wrapper-tops-1.0-SNAPSHOT.jar,
> dataaccess-1.0.0.jar,
> xyz-jaxb2-webservices-cbe-DEV-2.0.jar, <this jar file name will be diff
> depending upon which build env. it was built.>
> properties/
> Export-Package: com.xyz.tops.dataaccess,
> com.xyz.tops.dataaccess.utils,
> xyz.jaxb2.stub,
> xyz.service.jaxb2,
> xyz.service.jaxb2.impl
> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
> Require-Bundle: com.etrade.tops.tppjars;bundle-version="1.0.0"
>
> Regards
> Priyanka
>
Re: Build of RCP Application across multi build environments [message #492866 is a reply to message #492614] Thu, 22 October 2009 07:30 Go to previous messageGo to next message
Mickael Istria is currently offline Mickael IstriaFriend
Messages: 865
Registered: July 2009
Location: Grenoble, France
Senior Member

Hello,

If you want to distribute the same product for all platform (including lauchers for linux, mac, win...), you could use a fragment by platform to include this jar file and use a filter on it to ensure your host plugin loads the right fragment for the right platform. You can take a look at platform-specific org.eclipse.equinox,launcher.[platform] fragment for example.
This means the your type A wuill be available in several fragments, hosted by your plugin that currently contains A, and that thans to filter, only the one matching your platform will be loaded.

If you plan to distribute your RCP app in a platform specific way, I think you can simply generate your MANIFEST.MF during build, according to the name of the produced jar.

HTH
Mickael


Maarten Meijer a écrit :
> Hi Priyanka,
>
> why not build your xyz-jaxb2-webservices-cbe-DEV-2.0.jar directly as
> OSGi bundle? OSGi Bundle is just a traditional jar with another
> MANIFEST.MF.
> Then you you create the dependencies using Import-Package: instead of
> Require-Bundle:
>
> When required you can then reexport the packages as well
>
> Maarten
>
> PM schreef:
>> We are in the process to develop a continuous integration build for
>> our RCP project that consists about 8 plugins. We are able to achieve
>> full build and deploy using ANT. Out of 8, one of the plugin is built
>> using jars. The jar names/versions are different depending upon which
>> "build environment "the jar is built on. How do we manage it using
>> either ant build script or otherwise. Ideally i dont want to edit
>> MANIFEST.MF and build.properties of this plugin when building our RCP
>> project in different environments. Any pointers will be a great help.
>> I have provided a snippet of how our MANIFEST file looks lile of the
>> plugin that was built using jar files. Please note we have a build.xml
>> for this plugin which simply gets the 3 jar files from a maven
>> repository.
>>
>> Manifest-Version: 1.0
>> Bundle-ManifestVersion: 2
>> Bundle-Name: Webservices
>> Bundle-SymbolicName: webservices
>> Bundle-Version: 1.0.0
>> Bundle-ClassPath: jaxb2-wrapper-tops-1.0-SNAPSHOT.jar,
>> dataaccess-1.0.0.jar,
>> xyz-jaxb2-webservices-cbe-DEV-2.0.jar, <this jar file name will be
>> diff depending upon which build env. it was built.>
>> properties/
>> Export-Package: com.xyz.tops.dataaccess,
>> com.xyz.tops.dataaccess.utils,
>> xyz.jaxb2.stub,
>> xyz.service.jaxb2,
>> xyz.service.jaxb2.impl
>> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
>> Require-Bundle: com.etrade.tops.tppjars;bundle-version="1.0.0"
>>
>> Regards
>> Priyanka
>>
Re: Build of RCP Application across multi build environments [message #493013 is a reply to message #492273] Thu, 22 October 2009 17:54 Go to previous message
PM  is currently offline PM Friend
Messages: 14
Registered: July 2009
Junior Member
Thanx Maarten and Mickael for your responses. I dont have requirements for platform specific resources, it is more on lines with different build environments on the same platform. Unfortunately the dependent jars are tagged with build env specific names.
Building those jars are out of scope for our app. We can get it from a central repository. I am looking into fragments. I still havent found a solution to externalize Bundle-Classpath in manifest.mf. Not sure if it can be done.
Thanx once again for your replies.

Priyanka
Previous Topic:Files permissions
Next Topic:Start application maximize
Goto Forum:
  


Current Time: Thu Apr 18 08:23:23 GMT 2024

Powered by FUDForum. Page generated in 0.01920 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top