Search code examples
eclipseosgibundlepoolp2

Eclipse bundle pooling, how can it be used?


With P2 Eclipse has the option of using bundle pooling to reuse common bundle between applications, but what possibilities do I have with it?

The example on the page lists two applications that reuse a set of plugins in the users home directory, but can the directory of plugins be set to anything? What limitations are there?

Like:

Application1/
   configuration/
      config.ini
      ... other configuration files for Application1...
   Application1.exe
   Application1.ini
Application2/
   configuration/
      config.ini
      ... other configuration files for Application2...
   Application2.exe
   Application2.ini
...
common_bundle_pool_for_all_users/
   .p2/
      org/eclipse.equinox.p2.core
      org/eclipse.equinox.p2.director
      org/eclipse.equinox.p2.engine
      org/eclipse.equinox.p2.touchpoint.eclipse

and perhaps even

Documents and Settings
   Username
      .p2/
         plugins/      <-- unique plugins only for this user

Solution

  • Bundle pooling is a good concept, but it's not flexible as expected.

    For example, you must install the eclipse based application with bundle pooling option if you want to multiple applications share the bundles. There is no easy way to convert/switch an existing packaged eclipse(like the zips downloaded from eclipse.org) to use bundle pooling.

    It means you must use an installer application(equinox p2 team has an example application named p2.installer) to install your eclipse based application with using bundle pooling. It's the first case listed by you.

    The possible scenario listed by you handles with the share install case. It always uses that structure when your eclipse instance is read-only. Users don't have permission to change the configuration of eclipse itself, so install the third party plug-ins into a user folder. If you have multiple eclipse packages(such as plug-in development, cdt, wtp and so on) installed in Program files on windows 7 with UAC enable, those eclipse can share the bundles installed in your home folder.