diff options
author | pfullbright | 2007-06-12 22:27:20 +0000 |
---|---|---|
committer | pfullbright | 2007-06-12 22:27:20 +0000 |
commit | 8e4c27617b71a071d6a77bc898f9f7de851f7460 (patch) | |
tree | 3f014e5765d612c465ecf5c2a1bec45866dfb994 | |
parent | 8e8c21449da68f6995cf8ca0c1bdbb86bff86830 (diff) | |
download | webtools.dali-8e4c27617b71a071d6a77bc898f9f7de851f7460.tar.gz webtools.dali-8e4c27617b71a071d6a77bc898f9f7de851f7460.tar.xz webtools.dali-8e4c27617b71a071d6a77bc898f9f7de851f7460.zip |
bug 192282 - fixed persistence.xml/orm.xml resolution for web projects
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()); } |