Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpfullbright2007-06-12 22:27:20 +0000
committerpfullbright2007-06-12 22:27:20 +0000
commit8e4c27617b71a071d6a77bc898f9f7de851f7460 (patch)
tree3f014e5765d612c465ecf5c2a1bec45866dfb994 /jpa/plugins
parent8e8c21449da68f6995cf8ca0c1bdbb86bff86830 (diff)
downloadwebtools.dali-8e4c27617b71a071d6a77bc898f9f7de851f7460.tar.gz
webtools.dali-8e4c27617b71a071d6a77bc898f9f7de851f7460.tar.xz
webtools.dali-8e4c27617b71a071d6a77bc898f9f7de851f7460.zip
bug 192282 - fixed persistence.xml/orm.xml resolution for web projects
Diffstat (limited to 'jpa/plugins')
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaCoreConstants.java5
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaProject.java8
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaProject.java17
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/persistence/MappingFileRef.java2
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/BaseJpaProjectContext.java4
5 files changed, 28 insertions, 8 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaCoreConstants.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaCoreConstants.java
index d21323f84a..6d10115e7c 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaCoreConstants.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaCoreConstants.java
@@ -25,9 +25,4 @@ public interface IJpaCoreConstants
* Configuration option
*/
public static final String DISCOVER_ANNOTATED_CLASSES = JptCorePlugin.PLUGIN_ID + ".discoverAnnotatedClasses"; //$NON-NLS-1$
-
- /**
- * Name of META-INF directory
- */
- public static final String META_INF = "META-INF";
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaProject.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaProject.java
index 1d0a4a2d2d..6b9a224adf 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaProject.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaProject.java
@@ -91,6 +91,14 @@ public interface IJpaProject extends IJpaEObject
* @generated
*/
void setDiscoverAnnotatedClasses(boolean discoverAnnotatedClasses);
+
+ /**
+ * Return the root "deploy path" for this project.
+ *
+ * Web projects return "WEB-INF/classes".
+ * All other projects simply return "".
+ */
+ String rootDeployLocation();
/**
* Returns the IJpaFile corresponding to the given IFile.
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaProject.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaProject.java
index 5bb5aee93b..e009306293 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaProject.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaProject.java
@@ -48,6 +48,9 @@ import org.eclipse.jpt.db.internal.ConnectionProfile;
import org.eclipse.jpt.db.internal.JptDbPlugin;
import org.eclipse.jpt.utility.internal.iterators.CloneIterator;
import org.eclipse.jpt.utility.internal.iterators.ReadOnlyIterator;
+import org.eclipse.jst.j2ee.internal.J2EEConstants;
+import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
+import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
/**
@@ -433,6 +436,20 @@ public class JpaProject extends JpaEObject implements IJpaProject
public boolean isSetDiscoverAnnotatedClasses() {
return discoverAnnotatedClassesESet;
}
+
+ public String rootDeployLocation() {
+ String metaInfLocation = "";
+ try {
+ if (FacetedProjectFramework.hasProjectFacet(project, IModuleConstants.JST_WEB_MODULE)) {
+ metaInfLocation = J2EEConstants.WEB_INF_CLASSES;
+ }
+ }
+ catch (CoreException ce) {
+ // if exception occurs, we'll take the default location
+ JptCorePlugin.log(ce);
+ }
+ return metaInfLocation;
+ }
@Override
public IJpaProject getJpaProject() {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/persistence/MappingFileRef.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/persistence/MappingFileRef.java
index 3b577aeb45..e6260ae408 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/persistence/MappingFileRef.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/persistence/MappingFileRef.java
@@ -200,7 +200,7 @@ public class MappingFileRef extends XmlEObject
// check flexible project structure
IVirtualComponent component = ComponentCore.createComponent(getJpaProject().getProject());
IVirtualFolder virtualRootFolder = component.getRootFolder();
- IVirtualFile virtualMappingFile = virtualRootFolder.getFile(new Path(fileName));
+ IVirtualFile virtualMappingFile = virtualRootFolder.getFile(new Path(getJpaProject().rootDeployLocation() + '/' + fileName));
// keep track of whether one has been found so that we may know if multiple exist
IJpaFile mappingFile = null;
for (IFile underlyingFile : virtualMappingFile.getUnderlyingFiles()) {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/BaseJpaProjectContext.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/BaseJpaProjectContext.java
index cc6dbb2301..dc70a872e3 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/BaseJpaProjectContext.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/BaseJpaProjectContext.java
@@ -15,7 +15,6 @@ import java.util.List;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.Path;
-import org.eclipse.jpt.core.internal.IJpaCoreConstants;
import org.eclipse.jpt.core.internal.IJpaFile;
import org.eclipse.jpt.core.internal.IJpaPlatform;
import org.eclipse.jpt.core.internal.IJpaProject;
@@ -34,6 +33,7 @@ import org.eclipse.jpt.db.internal.ConnectionProfile;
import org.eclipse.jpt.utility.internal.CollectionTools;
import org.eclipse.jpt.utility.internal.StringTools;
import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
+import org.eclipse.jst.j2ee.internal.J2EEConstants;
import org.eclipse.wst.common.componentcore.ComponentCore;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
@@ -96,7 +96,7 @@ public class BaseJpaProjectContext extends BaseContext
// check flexible jpaProject structure
IVirtualComponent component = ComponentCore.createComponent(project);
IVirtualFolder rootFolder = component.getRootFolder();
- IVirtualFolder metaInfFolder = rootFolder.getFolder(new Path(IJpaCoreConstants.META_INF));
+ IVirtualFolder metaInfFolder = rootFolder.getFolder(new Path(jpaProject.rootDeployLocation() + '/' + J2EEConstants.META_INF));
return metaInfFolder.exists() && CollectionTools.contains(metaInfFolder.getUnderlyingFolders(), file.getParent());
}

Back to the top