(no commit message)
authorErik Brakkee <erik@brakkee.org>
Wed, 14 May 2008 19:34:22 +0000 (19:34 +0000)
committerErik Brakkee <erik@brakkee.org>
Wed, 14 May 2008 19:34:22 +0000 (19:34 +0000)
system/spring/src/main/java/org/wamblee/system/spring/component/HibernateComponent.java [new file with mode: 0644]
system/spring/src/main/resources/properties/test.org.wamblee.security.hibernate.properties [new file with mode: 0644]
system/spring/src/main/resources/spring/test.org.wamblee.security.database.xml [new file with mode: 0644]
system/spring/src/test/java/org/wamblee/system/spring/component/DatabaseTesterComponent.java [moved from system/spring/src/test/java/org/wamblee/system/spring/DatabaseTesterComponent.java with 99% similarity]

diff --git a/system/spring/src/main/java/org/wamblee/system/spring/component/HibernateComponent.java b/system/spring/src/main/java/org/wamblee/system/spring/component/HibernateComponent.java
new file mode 100644 (file)
index 0000000..9d6303f
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2008 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.system.spring.component;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+import java.util.TreeMap;
+
+import javax.sql.DataSource;
+
+import org.hibernate.SessionFactory;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.orm.hibernate3.HibernateTemplate;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.wamblee.persistence.hibernate.HibernateMappingFiles;
+import org.wamblee.system.core.DefaultProvidedInterface;
+import org.wamblee.system.core.DefaultRequiredInterface;
+import org.wamblee.system.core.ProvidedInterface;
+import org.wamblee.system.core.RequiredInterface;
+import org.wamblee.system.spring.SpringComponent;
+
+public class HibernateComponent extends SpringComponent {
+
+    private static final String HIBERNATE_PROPERTIES = "properties/test.org.wamblee.security.hibernate.properties";
+    private static final String HIBERNATE_SPRING_CONFIG = "spring/test.org.wamblee.security.database.xml";
+
+    public HibernateComponent(String aName) throws IOException { 
+        super(aName, new String[] { HIBERNATE_SPRING_CONFIG}, 
+                createProvided(), createRequired()); 
+        
+        Properties props = new Properties(); 
+        props.load(new ClassPathResource(HIBERNATE_PROPERTIES).getInputStream());
+        addProperties(props);
+    }
+
+    private static Map<RequiredInterface, String> createRequired() {
+        Map<RequiredInterface,String> required = new HashMap<RequiredInterface, String>();
+        required.put(new DefaultRequiredInterface("datasource", DataSource.class), "dataSource");
+        required.put(new DefaultRequiredInterface("mappingFiles", HibernateMappingFiles.class), 
+                "hibernateMappingFiles");
+        return required;
+    }
+
+    private static Map<String, ProvidedInterface> createProvided() {
+        Map<String,ProvidedInterface> provided = new HashMap<String,ProvidedInterface>(); 
+        
+        provided.put("transactionManager", new DefaultProvidedInterface(
+                "transactionMgr", PlatformTransactionManager.class));
+        provided.put("sessionFactory", new DefaultProvidedInterface(
+                "sessionFactory", SessionFactory.class));
+        provided.put("org.springframework.orm.hibernate3.HibernateTemplate", new DefaultProvidedInterface(
+                "hibernateTemplate", HibernateTemplate.class));
+        return provided;
+    }
+}
diff --git a/system/spring/src/main/resources/properties/test.org.wamblee.security.hibernate.properties b/system/spring/src/main/resources/properties/test.org.wamblee.security.hibernate.properties
new file mode 100644 (file)
index 0000000..47a21e2
--- /dev/null
@@ -0,0 +1,25 @@
+
+###################################################################################
+# dialect
+###################################################################################
+hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
+
+###################################################################################
+# debugging settings: Log4j configuration can provide more detail. 
+###################################################################################
+hibernate.show_sql=false
+
+##############################################################################
+# schema update for test 
+##############################################################################
+hibernate.schemaupdate=true
+
+###################################################################################
+# hibernate cache provider
+###################################################################################
+hibernate.cache.provider=org.hibernate.cache.EhCacheProvider
+
+###################################################################################
+# query cache
+###################################################################################
+hibernate.cache.use_query_cache=true
\ No newline at end of file
diff --git a/system/spring/src/main/resources/spring/test.org.wamblee.security.database.xml b/system/spring/src/main/resources/spring/test.org.wamblee.security.database.xml
new file mode 100644 (file)
index 0000000..c920905
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
+
+<!-- This is the Spring configuration to define the database-related stuff for the
+    all persistence tests.  -->
+<beans>
+    
+    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
+        <property name="dataSource">
+            <ref bean="dataSource"/>
+        </property>
+        <property name="hibernateProperties">
+            <props>
+                <prop key="hibernate.dialect">${hibernate.dialect}</prop>
+                <prop key="hibernate.cache.provider_class">${hibernate.cache.provider}</prop>
+                <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
+                <prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop>
+            </props>
+        </property>
+        <property name="schemaUpdate">
+            <value>${hibernate.schemaupdate}</value>
+        </property>
+        <property name="mappingResources"><ref bean="hibernateMappingFiles"/></property>
+    </bean>
+    
+    <bean id="transactionManager"
+        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
+        <property name="sessionFactory">
+            <ref local="sessionFactory"/>
+        </property>
+    </bean>
+    
+    <!--  Hibernate template used within test code for addition 
+            Hibernate-specific stuff -->
+    <bean id="org.springframework.orm.hibernate3.HibernateTemplate" 
+        class="org.springframework.orm.hibernate3.HibernateTemplate">
+        <property name="sessionFactory">
+            <ref bean="sessionFactory"/>
+        </property>
+    </bean>
+</beans>
similarity index 99%
rename from system/spring/src/test/java/org/wamblee/system/spring/DatabaseTesterComponent.java
rename to system/spring/src/test/java/org/wamblee/system/spring/component/DatabaseTesterComponent.java
index 137bb1d43fef529f9aaac151b1a7e6c94fc1496b..085166c5644fabffa6c7edc08de440905df2c1fe 100644 (file)
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.wamblee.system.spring;
+package org.wamblee.system.spring.component;
 
 import java.sql.Connection;
 import java.sql.PreparedStatement;