I should also mention this wiki page, in case you haven't found it yet.
http://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Application
It gives a good overview of how we *thought* you might want to reuse the p2 UI in RCP apps.
susan
Eugen Reiswich ---11/09/2010 02:21:35 PM---Hi Susan, thanks for the hint, that solved the NPE problem. However I'm still a bit lost in reusing the P2 UI in my RCP view (
|
|
To: P2 developer discussions <p2-dev@xxxxxxxxxxx>
cc: p2-dev-bounces@xxxxxxxxxxx
Subject: Re: [p2-dev] Reuse of P2 UI |
Hi Susan,
thanks for the hint, that solved the NPE problem. However I'm still a bit lost in reusing the P2 UI in my RCP view (I do not want to reuse the whole P2 wizard dialog (see screenshot), just the content of the pages). When I start my application I get an empty page that looks totally different than the install wizard dialog. Taking a closer look at the API of InstalledSoftwarePage I found the following comment:
* @noinstantiate This class is not intended to be instantiated by clients.
That seems to be the wrong way of trying to include the P2 software installation process into my RCP view. Is it even possible to put the P2 wizard pages into RCP Views oder Editors?
Eugen
[IMAGE]
Am 09.11.2010 um 21:23 schrieb Susan Franklin McCourt:
Hi, Eugen.
Those NPE's indicate that the basic provisioning services have not been initialized properly. The event bus and the profile registry are not being found.
A common cause for this is the absence of the declarative services bundle in the launch config (or in the build). Without ds, the basic provisioning service declarations won't be found.
We have tried to include more reasonable error messages for the common trigger points of this problem, but depending on how you are reusing p2, your symptoms may be different (such as here).
Here is an old thread discussing this problem.
http://www.mail-archive.com/equinox-dev@xxxxxxxxxxx/msg03599.html
Let me know if this is not what's causing your issue.
susan
<graycol.gif>Eugen Reiswich ---11/05/2010 01:24:27 AM---Hi folks, I'm trying to reuse some P2 UI elements as introduced in this presentation:
<ecblank.gif> | <ecblank.gif>
11/05/2010 01:23 AM
Please respond to P2 developer discussions
| <ecblank.gif>
To: P2 developer discussions <p2-dev@xxxxxxxxxxx>
cc:
Subject: [p2-dev] Reuse of P2 UI |
Hi folks,
I'm trying to reuse some P2 UI elements as introduced in this presentation: http://www.slideshare.net/PascalRapicault/discovering-the-p2-api
Basically I would like to reuse the"Available Software"-page where I can choose/edit update sites and features to install, the "Install Details"-page which summarizes the items to be installed and the licenses page. I would like to integrate all this pages in my RCP-View, not in a Wizard.
Trying to reuse the "InstalledSoftware"-page resulted in a NPE (note: I've checked the box "Support software installation in the launch application" in my launch configuration):
InstalledSoftwarePage installedSoftwarePage = new InstalledSoftwarePage();
installedSoftwarePage.createControl(parent);
!ENTRY org.eclipse.core.jobs 4 2 2010-11-05 09:15:34.160
!MESSAGE An internal error occurred during: "Fetching children of _SELF_".
!STACK 0
java.lang.NullPointerException
at org.eclipse.equinox.internal.p2.ui.model.ProfileElement.getQueryable(ProfileElement.java:55)
at org.eclipse.equinox.internal.p2.ui.QueryProvider.getQueryDescriptor(QueryProvider.java:54)
at org.eclipse.equinox.internal.p2.ui.model.QueriedElement.fetchChildren(QueriedElement.java:102)
at org.eclipse.equinox.internal.p2.ui.model.RemoteQueriedElement.fetchDeferredChildren(RemoteQueriedElement.java:34)
at org.eclipse.ui.progress.DeferredTreeContentManager$1.run(DeferredTreeContentManager.java:235)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
!ENTRY org.eclipse.ui.workbench 4 0 2010-11-05 09:15:34.177
!MESSAGE Unable to create view ID P2UIExamples.view: An unexpected exception was thrown.
!STACK 0
java.lang.NullPointerException
at org.eclipse.equinox.internal.p2.ui.ProvUIActivator.addProvisioningListener(ProvUIActivator.java:106)
at org.eclipse.equinox.internal.p2.ui.dialogs.InstalledIUGroup.createViewer(InstalledIUGroup.java:75)
at org.eclipse.equinox.internal.p2.ui.dialogs.StructuredIUGroup.createGroupComposite(StructuredIUGroup.java:80)
at org.eclipse.equinox.internal.p2.ui.dialogs.InstalledIUGroup.<init>(InstalledIUGroup.java:51)
at org.eclipse.equinox.p2.ui.InstalledSoftwarePage.createControl(InstalledSoftwarePage.java:95)
at p2uiexamples.View.createPartControl(View.java:76)
at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:375)
at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:229)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:313)
at org.eclipse.ui.internal.ViewPane.setVisible(ViewPane.java:529)
at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180)
at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270)
at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:473)
at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1254)
at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1207)
at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1606)
at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:647)
at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:574)
at org.eclipse.ui.internal.PartSashContainer.createControl(PartSashContainer.java:568)
at org.eclipse.ui.internal.PerspectiveHelper.activate(PerspectiveHelper.java:272)
at org.eclipse.ui.internal.Perspective.onActivate(Perspective.java:981)
at org.eclipse.ui.internal.WorkbenchPage.onActivate(WorkbenchPage.java:2632)
at org.eclipse.ui.internal.WorkbenchWindow$27.run(WorkbenchWindow.java:2986)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.WorkbenchWindow.setActivePage(WorkbenchWindow.java:2967)
at org.eclipse.ui.internal.WorkbenchWindow.busyOpenPage(WorkbenchWindow.java:771)
at org.eclipse.ui.internal.Workbench$23.runWithException(Workbench.java:1221)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3586)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3279)
at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803)
at org.eclipse.ui.internal.Workbench$31.runWithException(Workbench.java:1567)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:179)
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:150)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4233)
at org.eclipse.ui.internal.StartupThreading.runWithoutExceptions(StartupThreading.java:94)
at org.eclipse.ui.internal.Workbench.init(Workbench.java:1562)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2567)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at p2uiexamples.Application.start(Application.java:20)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.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(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.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)
Any help will be appreciated,
Eugen
_______________________________________________
p2-dev mailing list
p2-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/p2-dev
_______________________________________________
p2-dev mailing list
p2-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/p2-dev
_______________________________________________
p2-dev mailing list
p2-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/p2-dev
#### Bildschirmfoto 2010-11-09 um 22.38.25.png has been removed from this note on November 10, 2010 by Susan Franklin McCourt
|