Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 349108 - JPA actually depends on JST's contribution, however it doesn't have such dependency among bundles
Summary: JPA actually depends on JST's contribution, however it doesn't have such depe...
Status: RESOLVED FIXED
Alias: None
Product: Dali JPA Tools
Classification: WebTools
Component: JPA (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows 7
: P1 major (vote)
Target Milestone: 3.0.1   Edit
Assignee: Paul Fullbright CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 351463 355698 (view as bug list)
Depends on: 349224
Blocks:
  Show dependency tree
 
Reported: 2011-06-11 00:14 EDT by Meng Xin Zhu CLA
Modified: 2011-08-24 09:29 EDT (History)
7 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Meng Xin Zhu CLA 2011-06-11 00:14:43 EDT
What steps will reproduce the problem?
1. use Indigo RC4 to install JPA, egit from indigo's repository
2. open git perspective or open git repository view
3. the git repository view failed to be created due to below exception
4. search 'org.eclipse.jst.servlet.ui.EnhancedJavaRendering' in the plug-in registry view
5. I find that JPA UI's navigator contribution depends on JST's contribution, however ui bundle doesn't explicitly require the navigation's contribution, so p2 can't grab the o.e.jst.servlet.ui bundle automatically 

The workaround of using git functionality is, 
- uninstall JPA
- or install Java EE Tools (it's annoying, install a lot unwanted features)

-- Error Details --
Date: Fri Jun 10 23:34:32 CST 2011
Message: Unable to create view ID org.eclipse.egit.ui.RepositoriesView: An unexpected exception was thrown.
Severity: Error
Product: Eclipse SDK 3.7.0.v201105261708 (org.eclipse.sdk.ide)
Plugin: org.eclipse.ui.workbench
Exception Stack Trace:
java.lang.RuntimeException: Can't find id: org.eclipse.jst.servlet.ui.EnhancedJavaRendering
	at org.eclipse.ui.internal.navigator.extensions.NavigatorContentDescriptorManager.findId(NavigatorContentDescriptorManager.java:459)
	at org.eclipse.ui.internal.navigator.extensions.NavigatorContentDescriptorManager.computeSequenceNumbers(NavigatorContentDescriptorManager.java:476)
	at org.eclipse.ui.internal.navigator.extensions.NavigatorContentDescriptorManager.access$0(NavigatorContentDescriptorManager.java:462)
	at org.eclipse.ui.internal.navigator.extensions.NavigatorContentDescriptorManager$NavigatorContentDescriptorRegistry.readRegistry(NavigatorContentDescriptorManager.java:512)
	at org.eclipse.ui.internal.navigator.extensions.NavigatorContentDescriptorManager.<init>(NavigatorContentDescriptorManager.java:130)
	at org.eclipse.ui.internal.navigator.extensions.NavigatorContentDescriptorManager.<clinit>(NavigatorContentDescriptorManager.java:44)
	at org.eclipse.ui.internal.navigator.NavigatorContentService.<clinit>(NavigatorContentService.java:93)
	at org.eclipse.ui.navigator.CommonViewer.<init>(CommonViewer.java:96)
	at org.eclipse.ui.navigator.CommonNavigator.createCommonViewerObject(CommonNavigator.java:504)
	at org.eclipse.ui.navigator.CommonNavigator.createCommonViewer(CommonNavigator.java:486)
	at org.eclipse.egit.ui.internal.repository.RepositoriesView.createCommonViewer(RepositoriesView.java:223)
	at org.eclipse.ui.navigator.CommonNavigator.createPartControl(CommonNavigator.java:193)
	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.Perspective.showView(Perspective.java:2245)
	at org.eclipse.ui.internal.WorkbenchPage.busyShowView(WorkbenchPage.java:1145)
	at org.eclipse.ui.internal.WorkbenchPage$20.run(WorkbenchPage.java:3921)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:3918)
	at org.eclipse.ui.handlers.ShowViewHandler.openView(ShowViewHandler.java:162)
	at org.eclipse.ui.handlers.ShowViewHandler.openOther(ShowViewHandler.java:105)
	at org.eclipse.ui.handlers.ShowViewHandler.execute(ShowViewHandler.java:73)
	at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)
	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
	at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
	at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
	at org.eclipse.ui.internal.ShowViewMenu$3.run(ShowViewMenu.java:187)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
	at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
	at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4163)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3752)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
	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:344)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
Comment 1 Paul Fullbright CLA 2011-06-13 15:40:21 EDT
Logged bug 349224 against the platform.  I don't believe that an "appearsBefore" reference should require that plugin's presence.
Comment 2 Neil Hauge CLA 2011-06-14 15:01:08 EDT
This is an unfortunate situation, but I don't think anything can be done about this for Indigo release at this point.  Hopefully we can get the underlying bug addressed for the future.
Comment 3 Jack CLA 2011-06-28 06:55:17 EDT
Is there a way to install the missing plugin by hand without installing J2EE Tools?

Currently I have two Eclipse installations: a full J2EE installation + EGit and a normal Java installation where I want to use JPA and EGit. I thought I could copy the missing jars from my J2EE Eclipse into the Java only Eclipse but I can't figure out which jars I'll need to copy. 

I tried plugins/o.e.jst.servlet.ui*.jar but it does not work.
Comment 4 Meng Xin Zhu CLA 2011-06-28 23:46:45 EDT
(In reply to comment #3)
> Is there a way to install the missing plugin by hand without installing J2EE
> Tools?
> 
> Currently I have two Eclipse installations: a full J2EE installation + EGit and
> a normal Java installation where I want to use JPA and EGit. I thought I could
> copy the missing jars from my J2EE Eclipse into the Java only Eclipse but I
> can't figure out which jars I'll need to copy.
> 
> I tried plugins/o.e.jst.servlet.ui*.jar but it does not work.
There is no easy to install the missing plug-ins from one installation to another. The bundles are managed by p2, which helps install the bundles into the framework in runtime. The default configuration file is <installation>/configuration/o.e.e.p2.simpleconfigurator/bundles.info. That's why the plug-ins copied by you were not installed into the framework. The alternative way is copying them into the dropins folder of your eclipse, the content changes is polled by p2 and install/remove them from framework. However those bundles might depends on other bundles from J2EE Tools or other components, they can't be resolved by OSGi framework if their dependencies can't be satisfied in runtime.

In a word it probably doesn't work. Installing J2EE tools should be the easiest and reliable workaround. BTW, 3.7 supports installing features/plug-ins from existing eclipse installation. You can find it via 'Import' - 'Install' - 'from existing application'.
Comment 5 Jack CLA 2011-06-29 04:46:25 EDT
(In reply to comment #4)
> There is no easy to install the missing plug-ins from one installation to
> another. The bundles are managed by p2, which helps install the bundles into
> the framework in runtime. The default configuration file is
> <installation>/configuration/o.e.e.p2.simpleconfigurator/bundles.info. That's
> why the plug-ins copied by you were not installed into the framework. The
> alternative way is copying them into the dropins folder of your eclipse, the
> content changes is polled by p2 and install/remove them from framework. However
> those bundles might depends on other bundles from J2EE Tools or other
> components, they can't be resolved by OSGi framework if their dependencies
> can't be satisfied in runtime.
> 
> In a word it probably doesn't work. Installing J2EE tools should be the easiest
> and reliable workaround. BTW, 3.7 supports installing features/plug-ins from
> existing eclipse installation. You can find it via 'Import' - 'Install' - 'from
> existing application'.

Thx for your reply.  I think I will use git from console then. Or I figure out a way to generate JPA meta model classes without the Dali JPA tools so that I can use EGit again. 
Hopefully the issue gets addressed in the first service release of Indigo. Its pretty easy to run into this issue so it should be fixed soon.
Comment 6 Neil Hauge CLA 2011-06-29 16:08:04 EDT
We intend to address this issue for 3.0.1 one way or another, but ideally we will get a fix for bug 349224.
Comment 7 Jack CLA 2011-06-29 16:53:17 EDT
Just as information:

If you only need JPA meta model generation you can directly use Eclipse annotation processor support to generate the meta model. Most JPA Providers describe the Eclipse configuration in their wikis.

So you can install EGit and have at least JPA meta model generation that way.
Comment 8 Neil Hauge CLA 2011-07-01 16:24:19 EDT
Moving JPA specific bugs to new JPA component in bugzilla.
Comment 9 Neil Hauge CLA 2011-07-11 13:01:45 EDT
*** Bug 351463 has been marked as a duplicate of this bug. ***
Comment 10 Paul Fullbright CLA 2011-08-15 18:09:37 EDT
Resolving with fix to bug 349224
Comment 11 Karen Butzke CLA 2011-08-24 09:29:03 EDT
*** Bug 355698 has been marked as a duplicate of this bug. ***