DJ,
Thank you for your response. I am quite puzzled by this. I have
searched everywhere on the machine performing the build and the Equinox
plug-ins I find line up with Eclipse 3.4.1, which is what I would expect.
However at some point in the build some Equinox plug-ins get “upgraded”
to versions that line up with Eclipse 3.4.2, and so my installation
package ends up with these plug-ins.
My log files don’t explicitly show anything, but I do get
some errors connecting to various update sites.
An example of an update site error (following our “run.director”
rule, which I assume runs the P2 director):
[exec] !ENTRY org.eclipse.equinox.p2.core 4 0 2009-06-08
15:37:31.376
[java]
[exec] [exec] !MESSAGE Provisioning exception
[java]
[exec] [exec] !STACK 1
[java]
[exec] [exec]
org.eclipse.equinox.internal.provisional.p2.core.ProvisionException: Exception
connecting to
http://download.eclipse.org/technology/gmf/update-site/releases/features/org.eclipse.emf.ocl_1.0.0.v200606261119.jar.
[java]
[exec] [exec] at
org.eclipse.equinox.internal.p2.updatesite.UpdateSite.parseFeature(UpdateSite.java:196)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.p2.updatesite.UpdateSite.loadIncludedFeatures(UpdateSite.java:483)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.p2.updatesite.UpdateSite.loadFeaturesFromSite(UpdateSite.java:463)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.p2.updatesite.UpdateSite.loadFeatures(UpdateSite.java:376)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.p2.updatesite.artifact.UpdateSiteArtifactRepository.generateArtifacts(UpdateSiteArtifactRepository.java:71)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.p2.updatesite.artifact.UpdateSiteArtifactRepository.<init>(UpdateSiteArtifactRepository.java:66)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.p2.updatesite.artifact.UpdateSiteArtifactRepositoryFactory.load(UpdateSiteArtifactRepositoryFactory.java:33)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.p2.artifact.repository.ArtifactRepositoryManager.loadRepository(ArtifactRepositoryManager.java:439)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.p2.artifact.repository.ArtifactRepositoryManager.loadRepository(ArtifactRepositoryManager.java:415)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.p2.artifact.repository.ArtifactRepositoryManager.loadRepository(ArtifactRepositoryManager.java:402)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.p2.engine.DownloadManager.fetch(DownloadManager.java:103)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.p2.engine.DownloadManager.start(DownloadManager.java:93)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.provisional.p2.engine.phases.Collect.completeInstallableUnitPhase(Collect.java:56)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.provisional.p2.engine.InstallableUnitPhase.completePhase(InstallableUnitPhase.java:79)
[java] [exec]
[exec] at
org.eclipse.equinox.internal.provisional.p2.engine.Phase.postPerform(Phase.java:143)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.provisional.p2.engine.Phase.perform(Phase.java:85)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.provisional.p2.engine.InstallableUnitPhase.perform(InstallableUnitPhase.java:53)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.provisional.p2.engine.Phase.perform(Phase.java:46)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.provisional.p2.engine.PhaseSet.perform(PhaseSet.java:38)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.provisional.p2.engine.Engine.perform(Engine.java:53)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.p2.director.app.Application.planAndExecute(Application.java:213)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.p2.director.app.Application.run(Application.java:365)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.p2.director.app.Application.start(Application.java:423)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
[java]
[exec] [exec] at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
[java]
[exec] [exec] at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
[java]
[exec] [exec] at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
[java]
[exec] [exec] at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
[java]
[exec] [exec] at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java]
[exec] [exec] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:45)
[java]
[exec] [exec] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
[java]
[exec] [exec] at
java.lang.reflect.Method.invoke(Method.java:599)
[java]
[exec] [exec] at
org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
[java]
[exec] [exec] at
org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
[java]
[exec] [exec] at
org.eclipse.equinox.launcher.Main.run(Main.java:1236)
[java]
[exec] [exec] at
org.eclipse.equinox.launcher.Main.main(Main.java:1212)
[java]
[exec] [exec] Caused by:
java.io.FileNotFoundException:
http://download.eclipse.org/technology/gmf/update-site/releases/features/org.eclipse.emf.ocl_1.0.0.v200606261119.jar
[java]
[exec] [exec] at
java.lang.Throwable.<init>(Throwable.java:67)
[java]
[exec] [exec] at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1234)
[java]
[exec] [exec] at
org.eclipse.ecf.provider.filetransfer.retrieve.UrlConnectionRetrieveFileTransfer.openStreams(UrlConnectionRetrieveFileTransfer.java:237)
[java]
[exec] [exec] at
org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer.sendRetrieveRequest(AbstractRetrieveFileTransfer.java:639)
[java]
[exec] [exec] at
org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer.sendRetrieveRequest(AbstractRetrieveFileTransfer.java:381)
[java]
[exec] [exec] at
org.eclipse.ecf.provider.filetransfer.retrieve.MultiProtocolRetrieveAdapter.sendRetrieveRequest(MultiProtocolRetrieveAdapter.java:95)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.p2.updatesite.ECFTransport.transfer(ECFTransport.java:284)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.p2.updatesite.ECFTransport.performDownload(ECFTransport.java:193)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.p2.updatesite.ECFTransport.download(ECFTransport.java:167)
[java]
[exec] [exec] at
org.eclipse.equinox.internal.p2.updatesite.UpdateSite.parseFeature(UpdateSite.java:191)
[java]
[exec] [exec] ...
35 more
I assume that when it is able to connect to an external update
site I simply don’t get an exception and therefore no notification
either. Our goal (and previous belief) is that only components on the
hard drive would go into the build, and if we were missing something the build
would fail and we would manually add it. Instead it appears something is coming
off an update site. Then, because the 3.4.x update site changed from 3.4.1
content to 3.4.2 content in early February, this would presumably explain why
our old builds contained 3.4.1 Equinox content and our new ones contain 3.4.2
Equinox content, without our having explicitly tried to do this.
Are you aware of any case where the P2 director, or some other
P2 component, or PDE build, would go fetch content off update sites instead of
using what is already present? If so, any idea how to turn that off?
Thanks in advance for any assistance.
Regards,
Sean
From: p2-dev-bounces@xxxxxxxxxxx
[mailto:p2-dev-bounces@xxxxxxxxxxx] On Behalf Of DJ Houghton
Sent: Wednesday, June 10, 2009 9:58 AM
To: P2 developer discussions
Subject: RE: [p2-dev] p2.director.app missing from bundles.info
p2-dev-bounces@xxxxxxxxxxx
wrote on 06/09/2009 05:20:56 PM:
> I see there is a flag in my build called “org.eclipse.update.
> install.features” that is passed to the P2 director and was set
to
> true. I am wondering if setting it to false will prevent the
> director from grabbing new bundles from the Internet (if it is the
> one doing so).
>
This flag is used to control whether or not
the Update Manager concept of "features" are installed in your
/features folder. (as opposed to just installing the bundles in /plugins)