Skip to main content



      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 14:16 Go to next message
Eclipse UserFriend
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 02:25 Go to previous messageGo to next message
Eclipse UserFriend
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 03:30 Go to previous messageGo to next message
Eclipse UserFriend
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 13:54 Go to previous message
Eclipse UserFriend
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: Sun Jul 13 01:34:19 EDT 2025

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

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

Back to the top