Hi Martin,

This is a tricky one.  If a supplementer bundle is installed after a bundle
it is supplementing then it will be too late for you to modify the bundle
you are supplementing.  This is because it has already been added to the
state.  Doing a Bundle.update() of the bundle you are supplementing may be
required, but following it by a PackageAdmin.refreshPackages will likely
cause quite a bit of flux if you are installing a bunch of supplementer
bundles at one time.  Each installation would trigger a refreshPackages
operation (which BTW is an async operation).

I would suggest not doing a PackageAdmin.refreshPackages and instead just
doing the update() operation and then depending on the installer doing the
refreshPackages for you.  Currently update.configurator will call
refreshPackages after it has uninstalled/installed a group of bundles.
This should force the resolver to pick up the new supplemented data that
you provided.  If the bundle is installed by a reference URL then it should
be as simple as calling Bundle.update() with no params.  This should cause
the storagehook for the supplemented bundle to be called and allow you to
supplement it.

Hope that makes sense.  If not come to equinox-dev IRC and we can discuss
next week.


  From:       Martin Lippert <[EMAIL PROTECTED]>                         
  To:         Equinox Project <equinox-dev@eclipse.org>                
  Date:       02/01/2008 04:22 PM                                      
  Subject:    [equinox-dev] triggering the storage adaptor questoin    


For equinox aspects we are using a storage adapter to modify the
manifest of bundles with regards to the additionally defined manifest
entries of aspect bundles. This happens in the "initialize" method of
the storage adapter.

My question now: Is it possible to trigger the call of this method for a
specified bundle from within this method? Does a Bundle.update() do the
trick, followed by a PackageAdmin.refresh()?

I am asking because I don't know the order in which this method is
called for different bundles. Therefore it might occur the situation in
which I figure out that I need to supplement a bundle for which this
method is already called.

Any idea?


equinox-dev mailing list

<<inline: graycol.gif>>

<<inline: ecblank.gif>>

equinox-dev mailing list

Reply via email to