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" +