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;
+ }
+}