Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Porting the build system of a commercial RCP Application from Europa to Ganymede: A Case Study Christian Kurzke Gladyston ...
JavaME Tools High Level Architecture Logical View <ul><li>2 Eclipse products </li></ul><ul><ul><li>SDK </li></ul></ul><ul>...
Eclipse Base JavaME Tools History… <ul><li>Sep. 2007    Release 1.0 based on Europa (Installer) </li></ul><ul><li>Dec. 20...
Europa Build Solution – Build Levels Installer Studio Standalone devicedocs toolsdocs demos emulator services tools util F...
Main Issues in Europa Based Solution <ul><li>Hard to  setup  update site </li></ul><ul><ul><li>Two products, but the almos...
“ Standard” Ganymede Product Build System <ul><li>PDE Build </li></ul><ul><li>P2 Metadata generator </li></ul><ul><li>P2 D...
Build Issues in our Scenario Source code Repository Product Installer PDE Build + Metadata  configuration P2 director Inst...
From Europa to Ganymede in 5 steps <ul><li>Setup the default ganymede build environment </li></ul><ul><li>Organize your fe...
Step 1: Setup build environment <ul><li>A lot of  documentation  already available </li></ul><ul><li>Create build files to...
Step 2: Organize your features <ul><li>Use the concept of  wrapping feature </li></ul><ul><ul><li>Single IU is installed <...
Step 3: Install handlers <ul><li>MoJa Europa install handler only  unzipped  and  change permissions  of some files </li><...
Step 5: setup your repository <ul><li>Added a  post build tool  </li></ul><ul><ul><li>Change the  content.xml </li></ul></...
Ganymede Build Solution MoJa Non-plugin data MoJa Non-plugin data Features / Binaries MoJa  Features / Plugins MoJa Reposi...
Conclusions <ul><li>P2  solved the problems  that we had with our Europa update solution, but… </li></ul><ul><li>It brings...
Thanks!
Upcoming SlideShare
Loading in …5
×

469-Porting the build system of a commercial RCP Application from Europa to Ganymede A Case Study

536 views

Published on

EclipseCon 2009 presentation

  • Be the first to comment

  • Be the first to like this

469-Porting the build system of a commercial RCP Application from Europa to Ganymede A Case Study

  1. 1. Porting the build system of a commercial RCP Application from Europa to Ganymede: A Case Study Christian Kurzke Gladyston Franca Gustavo de Paula
  2. 2. JavaME Tools High Level Architecture Logical View <ul><li>2 Eclipse products </li></ul><ul><ul><li>SDK </li></ul></ul><ul><ul><li>Studio </li></ul></ul><ul><li>There are 8 sub-systems </li></ul><ul><ul><li>Each sub-system is organized as an Eclipse feature </li></ul></ul><ul><li>Approximately 60 plug-ins for all features </li></ul><ul><ul><li>80% are shared between both products </li></ul></ul><ul><li>3 of the sub-systems have non plug-in data </li></ul><ul><ul><li>Emulator </li></ul></ul><ul><ul><li>Demos </li></ul></ul><ul><ul><li>Documentation </li></ul></ul>
  3. 3. Eclipse Base JavaME Tools History… <ul><li>Sep. 2007  Release 1.0 based on Europa (Installer) </li></ul><ul><li>Dec. 2007  Release 1.1 (Update) </li></ul><ul><li>Feb. 2008  Release 1.2 (Update) </li></ul><ul><li>Apr. 2008  Release 1.3 (Installer / Update) </li></ul><ul><li>Oct. 2008  Release 2.0 based on Ganymede (Installer) </li></ul><ul><li>Dec. 2008  Release 2.1 (update) </li></ul>
  4. 4. Europa Build Solution – Build Levels Installer Studio Standalone devicedocs toolsdocs demos emulator services tools util Features & plugins Product Installer & Upd site. Non-eclipse emulator devicedocs toolsdocs demos Level 3 Level 2 Level 1 Level 4 Update Site
  5. 5. Main Issues in Europa Based Solution <ul><li>Hard to setup update site </li></ul><ul><ul><li>Two products, but the almost the same content </li></ul></ul><ul><li>Complex user experience on the update process </li></ul><ul><ul><li>User complains during update releases </li></ul></ul>
  6. 6. “ Standard” Ganymede Product Build System <ul><li>PDE Build </li></ul><ul><li>P2 Metadata generator </li></ul><ul><li>P2 Director </li></ul><ul><li>Install Jammer </li></ul>Source code Repository Product Installer PDE Build + Metadata configuration P2 director Install jammer binary/ features/ plugins/ Content.xml Artifacts.xml
  7. 7. Build Issues in our Scenario Source code Repository Product Installer PDE Build + Metadata configuration P2 director Install jammer <ul><li>Content.xml is not ready to be used </li></ul><ul><li>How to handle non-plugin data </li></ul><ul><li>RCP cannot be executed </li></ul><ul><li>There were no update repositories </li></ul>
  8. 8. From Europa to Ganymede in 5 steps <ul><li>Setup the default ganymede build environment </li></ul><ul><li>Organize your features </li></ul><ul><li>Install handlers </li></ul><ul><li>Non-plugin data </li></ul><ul><li>Setup your own repository </li></ul>
  9. 9. Step 1: Setup build environment <ul><li>A lot of documentation already available </li></ul><ul><li>Create build files to execute main tasks </li></ul><ul><ul><li>PDE build </li></ul></ul><ul><ul><li>P2 Metadata generator </li></ul></ul><ul><ul><li>P2 director </li></ul></ul><ul><ul><li>Install jammer </li></ul></ul><ul><li>Add a pre and post build tasks </li></ul>
  10. 10. Step 2: Organize your features <ul><li>Use the concept of wrapping feature </li></ul><ul><ul><li>Single IU is installed </li></ul></ul><ul><ul><li>Includes all other dependencies </li></ul></ul><ul><li>Improved user experience </li></ul>Studio Umbrella Platform Product Studio Feature JDT MTJ Emulator Tooldocs Util
  11. 11. Step 3: Install handlers <ul><li>MoJa Europa install handler only unzipped and change permissions of some files </li></ul><ul><ul><li>This can be handled by P2 native touchpoint actions </li></ul></ul><ul><li>Package non-plugin data as p2 binary files </li></ul>Step 4: Non-plugin data <ul><li>Create the concept of a “ binary project ” </li></ul><ul><li>Binary pre-build process </li></ul><ul><li>Change P2 metadata generator to generate metadata or our “binary projects” </li></ul>
  12. 12. Step 5: setup your repository <ul><li>Added a post build tool </li></ul><ul><ul><li>Change the content.xml </li></ul></ul><ul><ul><ul><li>Add category to it </li></ul></ul></ul><ul><ul><ul><li>Set as visible only the IU that we want to be visible </li></ul></ul></ul><ul><ul><li>Add repositories do RCPs </li></ul></ul><ul><ul><li>Add a pre-defined config.ini file </li></ul></ul>
  13. 13. Ganymede Build Solution MoJa Non-plugin data MoJa Non-plugin data Features / Binaries MoJa Features / Plugins MoJa Repository MoJa Wrapping Code MoJa Wrapping Repository P2-enabled MoJa Installer MOJA Binary Build PDE Build MOJA Customized Metadata Generator PDE Build + Metadata Generation P2 Director Install Jammer MoJa Umbrella Repository MoJa Repository MOJA Content Editor MOJA Content Editor
  14. 14. Conclusions <ul><li>P2 solved the problems that we had with our Europa update solution, but… </li></ul><ul><li>It brings new problems  </li></ul><ul><li>The effort worth since we learned a lot about P2... P2 is the future  and it is better to the end user </li></ul><ul><li>Find a way to contribute back our changes to avoid forking the code </li></ul>
  15. 15. Thanks!

×