eclipselink 3.0 JPA Modelgenerator does not recognize jakarta schemas (#1116)
Signed-off-by: Lukas Jungmann <lukas.jungmann@oracle.com>
diff --git a/jpa/org.eclipse.persistence.jpa.modelgen/src/main/java/org/eclipse/persistence/internal/jpa/modelgen/objects/PersistenceUnit.java b/jpa/org.eclipse.persistence.jpa.modelgen/src/main/java/org/eclipse/persistence/internal/jpa/modelgen/objects/PersistenceUnit.java
index 9487890..57bd5e2 100644
--- a/jpa/org.eclipse.persistence.jpa.modelgen/src/main/java/org/eclipse/persistence/internal/jpa/modelgen/objects/PersistenceUnit.java
+++ b/jpa/org.eclipse.persistence.jpa.modelgen/src/main/java/org/eclipse/persistence/internal/jpa/modelgen/objects/PersistenceUnit.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
@@ -281,19 +281,24 @@
addXMLEntityMappings(mappingFile, XMLEntityMappingsReader.getEclipseLinkOrmProject());
} catch (XMLMarshalException e) {
try {
- // Try JPA 2.2 project
- addXMLEntityMappings(mappingFile, XMLEntityMappingsReader.getOrm2_2Project());
- } catch (XMLMarshalException xme) {
+ // Try Persistence 3.0 project
+ addXMLEntityMappings(mappingFile, XMLEntityMappingsReader.getOrm3_0Project());
+ } catch (XMLMarshalException xe) {
try {
- // Try JPA 2.1 project
- addXMLEntityMappings(mappingFile, XMLEntityMappingsReader.getOrm2_1Project());
- } catch (XMLMarshalException ee) {
+ // Try JPA 2.2 project
+ addXMLEntityMappings(mappingFile, XMLEntityMappingsReader.getOrm2_2Project());
+ } catch (XMLMarshalException xme) {
try {
- // Try JPA 2.0 project
- addXMLEntityMappings(mappingFile, XMLEntityMappingsReader.getOrm2_0Project());
- } catch (XMLMarshalException eee) {
- // Try JPA 1.0 project (don't catch exceptions at this point)
- addXMLEntityMappings(mappingFile, XMLEntityMappingsReader.getOrm1_0Project());
+ // Try JPA 2.1 project
+ addXMLEntityMappings(mappingFile, XMLEntityMappingsReader.getOrm2_1Project());
+ } catch (XMLMarshalException ee) {
+ try {
+ // Try JPA 2.0 project
+ addXMLEntityMappings(mappingFile, XMLEntityMappingsReader.getOrm2_0Project());
+ } catch (XMLMarshalException eee) {
+ // Try JPA 1.0 project (don't catch exceptions at this point)
+ addXMLEntityMappings(mappingFile, XMLEntityMappingsReader.getOrm1_0Project());
+ }
}
}
}
diff --git a/jpa/org.eclipse.persistence.jpa.modelgen/src/test/java/org/eclipse/persistence/jpa/test/modelgen/TestProcessor.java b/jpa/org.eclipse.persistence.jpa.modelgen/src/test/java/org/eclipse/persistence/jpa/test/modelgen/TestProcessor.java
index e77f569..a682688 100644
--- a/jpa/org.eclipse.persistence.jpa.modelgen/src/test/java/org/eclipse/persistence/jpa/test/modelgen/TestProcessor.java
+++ b/jpa/org.eclipse.persistence.jpa.modelgen/src/test/java/org/eclipse/persistence/jpa/test/modelgen/TestProcessor.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
@@ -261,6 +261,12 @@
} catch (IOException x) {
throw x;
}
+ File oxml = new File(cpDir, "META-INF/orm.xml");
+ try (BufferedWriter writer = Files.newBufferedWriter(oxml.toPath(), StandardOpenOption.CREATE_NEW, StandardOpenOption.WRITE)) {
+ writer.write(OXML, 0, OXML.length());
+ } catch (IOException x) {
+ throw x;
+ }
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<>();
@@ -311,11 +317,11 @@
}
}
- private static final String PXML = "<persistence xmlns=\"http://xmlns.jcp.org/xml/ns/persistence\"\n" +
+ private static final String PXML = "<persistence xmlns=\"https://jakarta.ee/xml/ns/persistence\"\n" +
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
- " xsi:schemaLocation=\"http://xmlns.jcp.org/xml/ns/persistence\n" +
- " http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd\"\n" +
- " version=\"2.2\">\n" +
+ " xsi:schemaLocation=\"https://jakarta.ee/xml/ns/persistence\n" +
+ " https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd\"\n" +
+ " version=\"3.0\">\n" +
" <persistence-unit name=\"sample-pu\" transaction-type=\"RESOURCE_LOCAL\">\n" +
" <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>\n" +
" <exclude-unlisted-classes>false</exclude-unlisted-classes>\n" +
@@ -324,6 +330,12 @@
" </persistence-unit>\n" +
"</persistence>";
+ private static final String OXML = "<entity-mappings xmlns=\"https://jakarta.ee/xml/ns/persistence/orm\"\n" +
+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
+" xsi:schemaLocation=\"https://jakarta.ee/xml/ns/persistence/orm https://jakarta.ee/xml/ns/persistence/orm/orm_3_0.xsd\"\n" +
+" version=\"3.0\">" +
+ "</entity-mappings>";
+
private static final String PXML_LOG_BEG =
"<persistence xmlns=\"http://xmlns.jcp.org/xml/ns/persistence\"\n" +
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +