You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2011/08/22 07:03:46 UTC
svn commit: r1160107 - in
/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config:
AppInfoBuilder.java JPAPropertyConverter.java
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;
+ }
+}