Author: rmannibucau
Date: Mon Aug 22 05:03:45 2011
New Revision: 1160107

URL: http://svn.apache.org/viewvc?rev=1160107&view=rev
Log:
adding JPAPropertyConverter - to enhance ASAP

Added:
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JPAPropertyConverter.java
Modified:
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java?rev=1160107&r1=1160106&r2=1160107&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
 Mon Aug 22 05:03:45 2011
@@ -632,6 +632,12 @@ class AppInfoBuilder {
                     if 
(key.matches("openjpa.Connection(DriverName|URL|UserName|Password)")) {
                         final Object o = info.properties.remove(key);
                         logger.warning("Removing PersistenceUnit(name=" + 
info.name + ") property " + key + "=" + o + "  [not valid in a container 
environment]");
+                    } else { // try to convert it if necessary
+                        JPAPropertyConverter.Pair pair = 
JPAPropertyConverter.toOpenJPAValue(key, info.properties.getProperty(key));
+                        if (pair != null) {
+                            info.properties.remove(key);
+                            info.properties.setProperty(pair.getKey(), 
pair.getValue());
+                        }
                     }
                 }
             }

Added: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JPAPropertyConverter.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JPAPropertyConverter.java?rev=1160107&view=auto
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JPAPropertyConverter.java
 (added)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JPAPropertyConverter.java
 Mon Aug 22 05:03:45 2011
@@ -0,0 +1,46 @@
+package org.apache.openejb.config;
+
+import org.apache.openejb.loader.SystemInstance;
+
+/**
+ * @author rmannibucau
+ */
+public final class JPAPropertyConverter {
+    private JPAPropertyConverter() {
+        // no-op
+    }
+
+    public static class Pair {
+        private String key;
+        private String value;
+
+        public Pair(String key, String value) {
+            this.key = key;
+            this.value = value;
+        }
+
+        public String getKey() {
+            return key;
+        }
+
+        public String getValue() {
+            return value;
+        }
+    }
+
+    // TODO: manage more properties
+    public static Pair toOpenJPAValue(String key, String value) {
+        if 
(!Boolean.parseBoolean(SystemInstance.get().getProperty("openejb.convert-jpa-properties",
 "false"))) {
+            return null;
+        }
+
+        if (key.startsWith("eclipselink.ddl-generation")) {
+            if ("create-tables".equals(value)) {
+                return new Pair("openjpa.jdbc.SynchronizeMappings", 
"buildSchema(ForeignKeys=true)");
+            } else if ("drop-and-create-tables".equals("value")) {
+                return new Pair("openjpa.jdbc.SynchronizeMappings", 
"buildSchema(SchemaAction='add,deleteTableContents')");
+            }
+        }
+        return null;
+    }
+}


Reply via email to