You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by da...@apache.org on 2015/07/29 15:43:46 UTC

deltaspike git commit: DELTASPIKE-942 DeltaSpike fails to start with corrupted persistence.xml file

Repository: deltaspike
Updated Branches:
  refs/heads/master b4a68137b -> 206dc2f6a


DELTASPIKE-942 DeltaSpike fails to start with corrupted persistence.xml file


Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/206dc2f6
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/206dc2f6
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/206dc2f6

Branch: refs/heads/master
Commit: 206dc2f6ad19edc2b1a1f366668ba359e236e8f3
Parents: b4a6813
Author: Daniel Cunha (soro) <da...@apache.org>
Authored: Wed Jul 29 10:40:26 2015 -0300
Committer: Daniel Cunha (soro) <da...@apache.org>
Committed: Wed Jul 29 10:40:26 2015 -0300

----------------------------------------------------------------------
 .../impl/meta/unit/PersistenceUnitReader.java   | 42 ++++++++++++++------
 1 file changed, 29 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/206dc2f6/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/unit/PersistenceUnitReader.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/unit/PersistenceUnitReader.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/unit/PersistenceUnitReader.java
index 64694ea..4fc31ee 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/unit/PersistenceUnitReader.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/unit/PersistenceUnitReader.java
@@ -18,16 +18,16 @@
  */
 package org.apache.deltaspike.data.impl.meta.unit;
 
-import java.io.IOException;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-
 import org.apache.deltaspike.data.impl.meta.unit.EntityDescriptorReader.MappingFile;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
+import java.io.IOException;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
 public class PersistenceUnitReader extends DescriptorReader
 {
 
@@ -51,13 +51,13 @@ public class PersistenceUnitReader extends DescriptorReader
             Node node = list.item(i);
             String unitName = extractUnitName(node);
             String baseUrl = extractBaseUrl(descriptor.getUrl(), PersistenceUnit.RESOURCE_PATH);
-            List<EntityDescriptor> entities = extractMappings((Element) node, baseUrl);
+            List<EntityDescriptor> entities = extractMappings((Element) node, baseUrl, unitName);
             result.add(new PersistenceUnit(unitName, entities));
         }
         return result;
     }
 
-    private List<EntityDescriptor> extractMappings(Element element, String baseUrl)
+    private List<EntityDescriptor> extractMappings(Element element, String baseUrl, String unitName)
     {
         try
         {
@@ -65,12 +65,7 @@ public class PersistenceUnitReader extends DescriptorReader
             List<EntityDescriptor> entities = new LinkedList<EntityDescriptor>();
             List<MappedSuperclassDescriptor> superClasses = new LinkedList<MappedSuperclassDescriptor>();
             NodeList list = element.getElementsByTagName("mapping-file");
-            for (int i = 0; i < list.getLength(); i++)
-            {
-                MappingFile mappings = reader.readAll(baseUrl, list.item(i).getTextContent());
-                entities.addAll(mappings.getEntities());
-                superClasses.addAll(mappings.getSuperClasses());
-            }
+            readMappingFiles(baseUrl, unitName, reader, entities, superClasses, list);
             MappingFile mappings = reader.readDefaultOrm(baseUrl);
             entities.addAll(mappings.getEntities());
             superClasses.addAll(mappings.getSuperClasses());
@@ -83,6 +78,27 @@ public class PersistenceUnitReader extends DescriptorReader
         }
     }
 
+    private void readMappingFiles(String baseUrl, String unitName, EntityDescriptorReader reader,
+                                  List<EntityDescriptor> entities, List<MappedSuperclassDescriptor> superClasses,
+                                  NodeList list)
+    {
+        for (int i = 0; i < list.getLength(); i++)
+        {
+            String resource = list.item(i).getTextContent();
+            try
+            {
+                MappingFile mappings = reader.readAll(baseUrl, resource);
+                entities.addAll(mappings.getEntities());
+                superClasses.addAll(mappings.getSuperClasses());
+            }
+            catch (Exception e)
+            {
+                throw new RuntimeException("[PersistenceUnit: " + unitName + "] " +
+                        "Unable to resolve named mapping-file [" + resource + "]");
+            }
+        }
+    }
+
     private String extractUnitName(Node node)
     {
         return node.getAttributes().getNamedItem("name").getTextContent();