diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core')
2 files changed, 57 insertions, 0 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaFactory.java index 663d892668..d855d3912e 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaFactory.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaFactory.java @@ -43,6 +43,7 @@ import org.eclipse.jpt.core.context.orm.OrmTypeMapping; import org.eclipse.jpt.core.context.orm.OrmVersionMapping; import org.eclipse.jpt.core.context.orm.OrmXml; import org.eclipse.jpt.core.context.orm.PersistenceUnitMetadata; +import org.eclipse.jpt.core.context.persistence.JarFileRef; import org.eclipse.jpt.core.context.persistence.MappingFileRef; import org.eclipse.jpt.core.context.persistence.Persistence; import org.eclipse.jpt.core.context.persistence.PersistenceUnit; @@ -50,6 +51,7 @@ import org.eclipse.jpt.core.internal.platform.GenericJpaFactory; import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute; import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping; import org.eclipse.jpt.core.resource.orm.XmlTypeMapping; +import org.eclipse.jpt.core.resource.persistence.XmlJarFileRef; import org.eclipse.jpt.core.resource.persistence.XmlPersistenceUnit; import org.eclipse.jpt.core.resource.xml.JpaXmlResource; import org.eclipse.jpt.eclipselink.core.EclipseLinkJpaProject; @@ -103,6 +105,7 @@ import org.eclipse.jpt.eclipselink.core.internal.context.orm.VirtualXmlBasicColl import org.eclipse.jpt.eclipselink.core.internal.context.orm.VirtualXmlBasicMap; import org.eclipse.jpt.eclipselink.core.internal.context.orm.VirtualXmlTransformation; import org.eclipse.jpt.eclipselink.core.internal.context.orm.VirtualXmlVariableOneToOne; +import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkJarFileRef; import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit; import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic; import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection; @@ -155,6 +158,11 @@ public class EclipseLinkJpaFactory return new EclipseLinkPersistenceUnit(parent, xmlPersistenceUnit); } + @Override + public JarFileRef buildJarFileRef(PersistenceUnit parent, XmlJarFileRef xmlJarFileRef) { + return new EclipseLinkJarFileRef(parent, xmlJarFileRef); + } + // ********** EclipseLink-specific ORM Virtual Resource Model ********** diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/EclipseLinkJarFileRef.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/EclipseLinkJarFileRef.java new file mode 100644 index 0000000000..84987e1c7a --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/EclipseLinkJarFileRef.java @@ -0,0 +1,49 @@ +/******************************************************************************* + * Copyright (c) 2009 Oracle. + * All rights reserved. This program and the accompanying materials are + * made available under the terms of the Eclipse Public License v1.0 which + * accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Oracle - initial API and implementation + *******************************************************************************/ +package org.eclipse.jpt.eclipselink.core.internal.context.persistence; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.IPath; +import org.eclipse.jpt.core.JptCorePlugin; +import org.eclipse.jpt.core.context.persistence.PersistenceUnit; +import org.eclipse.jpt.core.internal.context.persistence.AbstractJarFileRef; +import org.eclipse.jpt.core.resource.persistence.XmlJarFileRef; + +public class EclipseLinkJarFileRef + extends AbstractJarFileRef +{ + // **************** construction/initialization **************************** + + public EclipseLinkJarFileRef(PersistenceUnit parent, XmlJarFileRef xmlJarFileRef) { + super(parent, xmlJarFileRef); + } + + + // **************** overrides ********************************************** + + @Override + protected IPath[] resolveDeploymentJarFilePath(IPath jarFilePath) { + IProject project = getJpaProject().getProject(); + IPath rootPath = JptCorePlugin.getJarDeploymentRootPath(project); + + if (JptCorePlugin.projectHasWebFacet(project)) { + return new IPath[] { + // assumes form "../lib/other.jar" + rootPath.append(jarFilePath.removeFirstSegments(1)) + }; + } + else { + return new IPath[] { + rootPath.append(jarFilePath) + }; + } + } +} |