Home » Eclipse Projects » P2 » Can p2 dropins be used to update existing plugins?
| | |
Re: Can p2 dropins be used to update existing plugins? [message #666653 is a reply to message #666558] |
Thu, 21 April 2011 13:17 |
|
On 04/20/2011 08:37 PM, Justin wrote:
> Is there another hack to make dropins support replacing a single plugin?
No, that code is poison :-)
> We don't have any UI to support updates, so it would have to work
> headless. Is the director the best/only option? I'd like to be able to
> patch single bundles across many application installs, without updating
> a p2 site and adding self update.
The p2 director can be used to create installs of RCP apps and update
them, all without having any p2 code in the app itself. Or only the
most basic p2, like simpleconfigurator + support (that reads the
bundles.info), using an external director avoids dragging in
self-updating code that you don't need.
Building plugins can generate p2 metadata, in effect creating small p2
repos that can be distributed as a .zip (instead of making it a full
update site on http, for example).
But you still need an eclipse with p2 support somewhere, to manage the
installs if p2 is not really part of your apps.
PW
--
Paul Webster
http://wiki.eclipse.org/Platform_Command_Framework
http://wiki.eclipse.org/Command_Core_Expressions
http://wiki.eclipse.org/Platform_Expression_Framework
http://wiki.eclipse.org/Menu_Contributions
http://wiki.eclipse.org/Menus_Extension_Mapping
http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse. platform.doc.isv/guide/workbench.htm
Paul Webster
http://wiki.eclipse.org/Platform_Command_Framework
http://wiki.eclipse.org/Command_Core_Expressions
http://wiki.eclipse.org/Menu_Contributions
|
|
| | | | | |
Re: Can p2 dropins be used to update existing plugins? [message #666825 is a reply to message #666711] |
Fri, 22 April 2011 20:48 |
Max Mising name Messages: 54 Registered: September 2010 |
Member |
|
|
So I've got my application building properly and have moved to using the director to install and update my features. I am running into an issue now where I cannot install the pydev feature using the director due to untrusted jar signatures. Here is a link on it in pydev, apparently they think it is eclipse's job to allow untrusted signed jars to be installed with the director. http://sourceforge.net/tracker/index.php?func=detail&aid =3097682&group_id=85796&atid=577329
Is there any way to circumvent the security checking on the signing and force the installation of pydev?
Edit: Here is some error output:
Problems downloading artifact: osgi.bundle,org.python.pydev,1.6.5.2011020317.
Error reading signed content:/tmp/signatureFile8739107837822520481.jar
Caused by: java.security.SignatureException: An error occurred while processing the signatures for the file: /tmp/signatureFile8739107837822520481.jar
Caused by: java.security.SignatureException: Either the manifest file or the signature file has been tampered in this jar: /tmp/signatureFile8739107837822520481.jar
Problems downloading artifact: osgi.bundle,org.python.pydev.ast,1.6.5.2011020317.
Error reading signed content:/tmp/signatureFile6536737159620387686.jar
Caused by: java.security.SignatureException: An error occurred while processing the signatures for the file: /tmp/signatureFile6536737159620387686.jar
Caused by: java.security.SignatureException: Either the manifest file or the signature file has been tampered in this jar: /tmp/signatureFile6536737159620387686.jar
Problems downloading artifact: osgi.bundle,org.python.pydev.core,1.6.5.2011020317.
Error reading signed content:/tmp/signatureFile7873137977705228276.jar
Caused by: java.security.SignatureException: An error occurred while processing the signatures for the file: /tmp/signatureFile7873137977705228276.jar
Caused by: java.security.SignatureException: Either the manifest file or the signature file has been tampered in this jar: /tmp/signatureFile7873137977705228276.jar
Problems downloading artifact: osgi.bundle,org.python.pydev.jython,1.6.5.2011020317.
Error reading signed content:/tmp/signatureFile3328232955984746023.jar
Caused by: java.security.SignatureException: An error occurred while processing the signatures for the file: /tmp/signatureFile3328232955984746023.jar
Caused by: java.security.SignatureException: Either the manifest file or the signature file has been tampered in this jar: /tmp/signatureFile3328232955984746023.jar
Problems downloading artifact: osgi.bundle,org.python.pydev.parser,1.6.5.2011020317.
Error reading signed content:/tmp/signatureFile4906840496634795862.jar
Caused by: java.security.SignatureException: An error occurred while processing the signatures for the file: /tmp/signatureFile4906840496634795862.jar
Caused by: java.security.SignatureException: Either the manifest file or the signature file has been tampered in this jar: /tmp/signatureFile4906840496634795862.jar
An error occurred while collecting items to be installed
org.eclipse.osgi Either the manifest file or the signature file has been tampered in this jar: /tmp/signatureFile4906840496634795862.jar
java.security.SignatureException: Either the manifest file or the signature file has been tampered in this jar: /tmp/signatureFile4906840496634795862.jar
at org.eclipse.osgi.internal.signedcontent.SignatureBlockProces sor.verifyManifestAndSignatureFile(SignatureBlockProcessor.j ava:154)
at org.eclipse.osgi.internal.signedcontent.SignatureBlockProces sor.processSigner(SignatureBlockProcessor.java:104)
at org.eclipse.osgi.internal.signedcontent.SignatureBlockProces sor.process(SignatureBlockProcessor.java:60)
at org.eclipse.osgi.internal.signedcontent.SignedBundleFile.set BundleFile(SignedBundleFile.java:47)
at org.eclipse.osgi.internal.signedcontent.SignedBundleHook.get SignedContent(SignedBundleHook.java:247)
at org.eclipse.equinox.internal.p2.artifact.repository.Signatur eVerifier.verifyContent(SignatureVerifier.java:77)
at org.eclipse.equinox.internal.p2.artifact.repository.Signatur eVerifier.verify(SignatureVerifier.java:59)
at org.eclipse.equinox.internal.p2.artifact.repository.Signatur eVerifier.close(SignatureVerifier.java:100)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.S impleArtifactRepository.reportStatus(SimpleArtifactRepositor y.java:906)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.S impleArtifactRepository.downloadArtifact(SimpleArtifactRepos itory.java:510)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.S impleArtifactRepository.getArtifact(SimpleArtifactRepository .java:576)
at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRe quest.getArtifact(MirrorRequest.java:248)
at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRe quest.transferSingle(MirrorRequest.java:223)
at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRe quest.transfer(MirrorRequest.java:179)
at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRe quest.perform(MirrorRequest.java:115)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.S impleArtifactRepository.getArtifact(SimpleArtifactRepository .java:565)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.S impleArtifactRepository.getArtifacts(SimpleArtifactRepositor y.java:616)
at org.eclipse.equinox.internal.p2.engine.DownloadManager.fetch (DownloadManager.java:88)
at org.eclipse.equinox.internal.p2.engine.DownloadManager.start (DownloadManager.java:77)
at org.eclipse.equinox.internal.p2.engine.phases.Collect.comple tePhase(Collect.java:76)
at org.eclipse.equinox.internal.p2.engine.Phase.postPerform(Pha se.java:216)
at org.eclipse.equinox.internal.p2.engine.Phase.perform(Phase.j ava:84)
at org.eclipse.equinox.internal.p2.engine.PhaseSet.perform(Phas eSet.java:44)
at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine .java:73)
at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine .java:44)
at org.eclipse.equinox.internal.provisional.p2.director.PlanExe cutionHelper.executePlan(PlanExecutionHelper.java:41)
at org.eclipse.equinox.internal.provisional.p2.director.PlanExe cutionHelper.executePlan(PlanExecutionHelper.java:23)
at org.eclipse.equinox.internal.p2.director.app.DirectorApplica tion.executePlan(DirectorApplication.java:575)
at org.eclipse.equinox.internal.p2.director.app.DirectorApplica tion.planAndExecute(DirectorApplication.java:569)
at org.eclipse.equinox.internal.p2.director.app.DirectorApplica tion.performProvisioningActions(DirectorApplication.java:556 )
at org.eclipse.equinox.internal.p2.director.app.DirectorApplica tion.run(DirectorApplication.java:807)
at org.eclipse.equinox.internal.p2.director.app.DirectorApplica tion.start(DirectorApplication.java:961)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
Max
[Updated on: Fri, 22 April 2011 20:52] Report message to a moderator
|
|
| |
Re: Can p2 dropins be used to update existing plugins? [message #667407 is a reply to message #666992] |
Thu, 28 April 2011 14:55 |
Max Mising name Messages: 54 Registered: September 2010 |
Member |
|
|
EDIT: I may have spoke too soon earlier, it does look like the installation is making it all the way to SignedBundleFile.determineTrust which gets the trust engines from SignedBundleHook.getTrustEngines() and is calling findTrustAnchor(...) on the KeyStoreTrustEngine. which calls store.getCertificateAlias(rootCert) and is returning null. I was given the certificate by pydev and imported it using "keytool -import -file pydev_certificate.cer -keystore lib\security\cacerts". Was the the incorrect place to import the certificate? Do I need to alias it?
EDIT 2: I got it working, for some reason, I couldn't get the keystore path working but when I went into lib/security/cacerts myself I was able to add the certificate. So now that the certificate issue is all worked out, this should be the last bump. I've been testing by running the director out of eclipse (using my product file just with the program arguments:
-application org.eclipse.equinox.p2.director -nosplash -destination /path/to/rcp/installation/ -repository file:///path/to/my/feature/repo/ -i com.abc.def.feature.group/<version>
because when I run with the same arguments after my application has been installed, I get this exception. I originally decided to run out of eclipse to I could easily debug why it wasn't working and then realized it somehow works from there. Any ideas? I'm guessing I'm missing a plugin or something but I can't be certain since it all works when I run from eclipse.
INFO 2011-04-28 11:15:23,581 [Start Level Event Dispatcher] ExtenderConfiguration: No custom extender configuration detected; using defaults...
org.eclipse.osgi Application error
java.lang.NullPointerException: A null service reference is not allowed.
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.g etService(BundleContextImpl.java:660)
at org.eclipse.equinox.internal.p2.director.app.DirectorApplica tion.initializeServices(DirectorApplication.java:426)
at org.eclipse.equinox.internal.p2.director.app.DirectorApplica tion.run(DirectorApplication.java:802)
at org.eclipse.equinox.internal.p2.director.app.DirectorApplica tion.start(DirectorApplication.java:961)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
Thanks
Max
[Updated on: Thu, 28 April 2011 16:24] Report message to a moderator
|
|
| |
Goto Forum:
Current Time: Thu Dec 26 17:14:17 GMT 2024
Powered by FUDForum. Page generated in 0.04395 seconds
|