Community
Participate
Working Groups
Build Identifier: 20100617-1415 I have created a local update site and added it to a local target platform (specified in a .target file) for a plugin project which works fine after activating the target platform. But when I update the plugin associated with the local update site (which is added to a feature) and refresh the target platform its still the old plugin located in: .metadata\.plugins\org.eclipse.pde.core\.bundle_pool\plugins that is used when I run the code. How do I force the plugins in the .bundle_pool\plugins folder for syncronize with the corresponding plugins for the local update site? Reproducible: Always Steps to Reproduce: 1.Create local update site with a plugin and add it to target platform. 2.Update plugin and rebuild local update site and refresh target platform. 3.Compare local plugin timestamp with timestamp for plugin in .bundle_pool
How do you "refresh" the target platform? If you "Edit" the target definition or "Reload" the target definition from the Target Platform preference page, this will cause the target to retrieve the bundles referenced by the target. Perhaps the installable units in the target definition do not refer to the new bundle?
(In reply to comment #1) > How do you "refresh" the target platform? If you "Edit" the target definition > or "Reload" the target definition from the Target Platform preference page, > this will cause the target to retrieve the bundles referenced by the target. > Perhaps the installable units in the target definition do not refer to the new > bundle? I have tried to update the target platform (specified by a .target file in a project) through the preferences->Target Platform. I have also tried to remove the update site and add it again to the .target file and repeat the above step. But its still the old version in the folder: \workspace\.metadata\.plugins\org.eclipse.pde.core\.bundle_pool\plugins that is used when when I run the PDE project from my workspace. If I expand the "Plug-in Dependencies" node under my project I also see that the jars/plugins used are read from the: \workspace\.metadata\.plugins\org.eclipse.pde.core\.bundle_pool\plugins directory. I assume that they are stored there for easy access instead of "pinging" the possible remote P2 each time the project is run. But I still think the plugins should be updated if some of the remote or local P2 sites have been updated. I have also checked that the local P2 site I have created are updated with the new features/plugins and build with those.
You may need to provide an example repo/target file for us to reproduce. Here is what happens when using a p2 repo: Target contains a pointer to an InstallableUnit (IU) in a Repository Target gets resolved... Open the Repository, find the IU from the target Find all IUs required, Find all artifacts (actual plug-ins) required by those IUs Download all required artifacts into the .bundle_pool Tell PDE the urls of all plug-ins in the .bundle_pool that are needed in the target A few ideas what might be causing your problem: 1) If the target location changes, we do not remove the contents of .bundle_pool, we garbage collect unused items when targets are deleted. 2) The .bundle_pool can contain multiple versions of the same plug-in. 3) The IU you have chosen in your target, could be requiring the same version of the plugin (or it may specify a range which is satisfied by the older version).
Closing as WORKSFORME. The bundle pool contains the plug-ins we have currently downloaded from p2 repositories. If the version you find in the bundle pool does not match the one available on the remote update site, then p2 has determined that it does not need to get a new version to satisfy the requirements of the selected IUs. If the problem is that your target points to older IUs, we have an 'update' button that will check the remote repositories for newer versions of the IUs.