[jbosstools-commits] JBoss Tools SVN: r42297 - trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/web/ui/wizards/newfile.
jbosstools-commits at lists.jboss.org
jbosstools-commits at lists.jboss.org
Thu Jun 28 20:34:32 EDT 2012
Author: scabanovich
Date: 2012-06-28 20:34:27 -0400 (Thu, 28 Jun 2012)
New Revision: 42297
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/web/ui/wizards/newfile/NewDSXMLWizard.java
Log:
JBIDE-11394
https://issues.jboss.org/browse/JBIDE-11394
For an EAR project, persistence.xml is looked for in EJB project component.
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/web/ui/wizards/newfile/NewDSXMLWizard.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/web/ui/wizards/newfile/NewDSXMLWizard.java 2012-06-28 19:55:11 UTC (rev 42296)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/web/ui/wizards/newfile/NewDSXMLWizard.java 2012-06-29 00:34:27 UTC (rev 42297)
@@ -63,6 +63,8 @@
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities;
+import org.eclipse.jst.j2ee.project.WebUtilities;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.DisposeEvent;
@@ -87,6 +89,9 @@
import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
import org.eclipse.ui.internal.wizards.newresource.ResourceMessages;
import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelProvider;
import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
@@ -588,8 +593,10 @@
static final String PERSISTENCE_XML_PATH = "META-INF/persistence.xml"; //$NON-NLS-1$
private IFile findPersistenceXMLHandle() {
- IPath containerPath = getContainerFullPath();
- IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(containerPath.segment(0));
+ IProject project = findJavaProject();
+ if(project == null) {
+ return null;
+ }
Set<IFolder> srcs = EclipseResourceUtil.getSourceFolders(project);
IFolder src = (IFolder)EclipseResourceUtil.getJavaSourceRoot(project);
if(src != null) {
@@ -608,6 +615,37 @@
return null;
}
+
+ /**
+ * If current project is a Java project, returns it.
+ * If current project is a EAR project, returns a component EJB project, if it is available.
+ * Otherwise, returns null.
+ * @return
+ */
+ private IProject findJavaProject() {
+ IPath containerPath = getContainerFullPath();
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(containerPath.segment(0));
+ if(EclipseResourceUtil.getJavaProject(project) != null) {
+ return project;
+ }
+ if(JavaEEProjectUtilities.isEARProject(project)) {
+ IVirtualComponent comp = ComponentCore.createComponent(project);
+ if(comp != null) {
+ IVirtualReference[] refComponents = comp.getReferences();
+ for (IVirtualReference virtualReference : refComponents) {
+ IVirtualComponent component = virtualReference.getReferencedComponent();
+ if(component != null && !component.isBinary() && !WebUtilities.isDynamicWebComponent(component)) {
+ IProject p = component.getProject();
+ if(JavaEEProjectUtilities.isEJBProject(p)) {
+ return p;
+ }
+ }
+ }
+ }
+ }
+
+ return null;
+ }
private InputStream getPersistanceXMLContent(IFile persistenceFile, IFile newFile) {
try {
More information about the jbosstools-commits
mailing list