You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by ta...@apache.org on 2015/12/04 13:15:40 UTC

deltaspike git commit: DELTASPIKE-1035 Make DS PersistenceUnit public and also parse properties

Repository: deltaspike
Updated Branches:
  refs/heads/master 74c0e3f84 -> fc33f2267


DELTASPIKE-1035 Make DS PersistenceUnit public and also parse properties

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

Branch: refs/heads/master
Commit: fc33f226735b1b3cd8e67a4cb60b8cdfa441aa0f
Parents: 74c0e3f
Author: tandraschko <ta...@apache.org>
Authored: Fri Dec 4 13:15:07 2015 +0100
Committer: tandraschko <ta...@apache.org>
Committed: Fri Dec 4 13:15:07 2015 +0100

----------------------------------------------------------------------
 .../data/impl/meta/unit/PersistenceUnit.java    | 12 ++++++++--
 .../impl/meta/unit/PersistenceUnitReader.java   | 25 +++++++++++++++++++-
 .../data/impl/meta/unit/PersistenceUnits.java   | 12 ++++++++++
 3 files changed, 46 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/fc33f226/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/unit/PersistenceUnit.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/unit/PersistenceUnit.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/unit/PersistenceUnit.java
index 8494cfa..e238385 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/unit/PersistenceUnit.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/unit/PersistenceUnit.java
@@ -19,8 +19,9 @@
 package org.apache.deltaspike.data.impl.meta.unit;
 
 import java.util.List;
+import java.util.Map;
 
-class PersistenceUnit
+public class PersistenceUnit
 {
 
     public static final String RESOURCE_PATH = "META-INF/persistence.xml";
@@ -28,11 +29,13 @@ class PersistenceUnit
 
     private final String unitName;
     private final List<EntityDescriptor> entities;
+    private final Map<String, String> properties;
 
-    PersistenceUnit(String unitName, List<EntityDescriptor> entities)
+    PersistenceUnit(String unitName, List<EntityDescriptor> entities, Map<String, String> properties)
     {
         this.unitName = unitName;
         this.entities = entities;
+        this.properties = properties;
     }
 
     public EntityDescriptor find(Class<?> entityClass)
@@ -51,6 +54,11 @@ class PersistenceUnit
     {
         return unitName;
     }
+    
+    public Map<String, String> getProperties()
+    {
+        return properties;
+    }
 
     @Override
     public String toString()

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/fc33f226/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 4fc31ee..ed30e32 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
@@ -25,8 +25,10 @@ import org.w3c.dom.NodeList;
 
 import java.io.IOException;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
 
 public class PersistenceUnitReader extends DescriptorReader
 {
@@ -52,7 +54,8 @@ public class PersistenceUnitReader extends DescriptorReader
             String unitName = extractUnitName(node);
             String baseUrl = extractBaseUrl(descriptor.getUrl(), PersistenceUnit.RESOURCE_PATH);
             List<EntityDescriptor> entities = extractMappings((Element) node, baseUrl, unitName);
-            result.add(new PersistenceUnit(unitName, entities));
+            Map<String, String> properties = extractProperties((Element) node);
+            result.add(new PersistenceUnit(unitName, entities, properties));
         }
         return result;
     }
@@ -104,4 +107,24 @@ public class PersistenceUnitReader extends DescriptorReader
         return node.getAttributes().getNamedItem("name").getTextContent();
     }
 
+    private Map<String, String> extractProperties(Element element)
+    {
+        Map<String, String> propertiesMap = new HashMap<String, String>();
+
+        Node propertiesNode = element.getElementsByTagName("properties").item(0);
+        if (propertiesNode != null)
+        {
+            NodeList propertyNodes = propertiesNode.getChildNodes();
+            for (int i = 0; i < propertyNodes.getLength(); i++)
+            {
+                if ("property".equals(propertyNodes.item(i).getNodeName()))
+                {
+                    Element propertyNode = (Element) propertyNodes.item(i);
+                    propertiesMap.put(propertyNode.getAttribute("name"), propertyNode.getAttribute("value"));
+                }
+            }
+        }
+
+        return Collections.unmodifiableMap(propertiesMap);
+    }
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/fc33f226/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/unit/PersistenceUnits.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/unit/PersistenceUnits.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/unit/PersistenceUnits.java
index a3a2d75..9bbb0e7 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/unit/PersistenceUnits.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/unit/PersistenceUnits.java
@@ -45,6 +45,18 @@ public final class PersistenceUnits
         persistenceUnits = readPersistenceXmls();
     }
 
+    public PersistenceUnit get(String name)
+    {
+        for (PersistenceUnit unit : persistenceUnits)
+        {
+            if (name.equalsIgnoreCase(unit.getUnitName()))
+            {
+                return unit;
+            }
+        }
+        return null;
+    }
+
     public boolean isEntity(Class<?> entityClass)
     {
         return find(entityClass) != null;