package rename for test libraries.
[utils] / test / hibernate / src / main / java / org / wamblee / test / persistence / hibernate / HibernateJpaCustomizer.java
diff --git a/test/hibernate/src/main/java/org/wamblee/test/persistence/hibernate/HibernateJpaCustomizer.java b/test/hibernate/src/main/java/org/wamblee/test/persistence/hibernate/HibernateJpaCustomizer.java
new file mode 100644 (file)
index 0000000..fd576db
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2005-2010 the original author or authors.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */ 
+package org.wamblee.test.persistence.hibernate;
+
+import java.util.Map;
+
+import org.dbunit.dataset.filter.ITableFilterSimple;
+import org.wamblee.test.persistence.JpaCustomizer;
+import org.wamblee.test.persistence.PersistenceUnitDescription;
+
+/**
+ * 
+ * @author $author$
+ * @version $Revision$
+ */
+public class HibernateJpaCustomizer implements JpaCustomizer {
+    /**
+     * Creates a new HibernateJpaCustomizer object.
+     */
+    public HibernateJpaCustomizer() {
+        // Empty
+    }
+
+    @Override
+    public void customize(PersistenceUnitDescription aPersistenceUnit,
+        Map<String, String> aJpaProperties) {
+        
+        System.setProperty("hibernate.temp.use_jdbc_metadata_defaults", "true");
+        
+        // Set non-JPA connection properties for older versions of hibernate
+        System.getProperties().remove("hibernate.connection.datasource");
+        if (System.getProperty("hibernate.connection.datasource") != null ) { 
+            throw new RuntimeException("ERROR");
+        }
+        System.setProperty("hibernate.connection.url", aJpaProperties.get("javax.persistence.jdbc.url"));
+        System.setProperty("hibernate.connection.username", aJpaProperties.get("javax.persistence.jdbc.user"));
+        System.setProperty("hibernate.connection.password", aJpaProperties.get("javax.persistence.jdbc.password"));
+
+        // Hibernate schema generation
+        aJpaProperties.put("hibernate.hbm2ddl.auto", "create-drop");
+    }
+
+    @Override
+    public ITableFilterSimple getJpaTables() {
+        return new HibernateTables();
+    }
+}