Author: julien(a)jboss.com
Date: 2006-11-29 11:35:29 -0500 (Wed, 29 Nov 2006)
New Revision: 5744
Added:
trunk/test/src/etc/hibernates.xml
Modified:
trunk/cms/src/main/org/jboss/portal/test/cms/AbstractCMSTestCase.java
trunk/cms/src/resources/portal-cms-jar/org/jboss/portal/cms/jboss-beans.xml
trunk/common/src/main/org/jboss/portal/common/test/junit/POJOJUnitTest.java
trunk/common/src/main/org/jboss/portal/common/util/XML.java
trunk/core/build.xml
trunk/core/src/main/org/jboss/portal/test/core/PortalBaseTestCase.java
trunk/core/src/main/org/jboss/portal/test/core/model/instance/InstanceContainerTestCase.java
trunk/core/src/main/org/jboss/portal/test/core/model/portal/PortalObjectContainerTestCase.java
trunk/core/src/main/org/jboss/portal/test/core/state/ProducerTestCase.java
trunk/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/instance/jboss-beans.xml
trunk/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/portal/jboss-beans.xml
trunk/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/state/jboss-beans.xml
trunk/identity/src/main/org/jboss/portal/test/identity/db/DBUserTestCase.java
trunk/identity/src/resources/portal-identity-test-jar/org/jboss/portal/test/identity/db-beans.xml
trunk/portlet/build.xml
trunk/test/src/etc/datasources.xml
trunk/test/src/main/org/jboss/portal/test/framework/embedded/DataSourceSupport.java
trunk/test/src/main/org/jboss/portal/test/framework/embedded/HibernateSupport.java
Log:
JBPORTAL-1134 : explicitly set up hibernate dialect for portal testsuite
Modified: trunk/cms/src/main/org/jboss/portal/test/cms/AbstractCMSTestCase.java
===================================================================
--- trunk/cms/src/main/org/jboss/portal/test/cms/AbstractCMSTestCase.java 2006-11-29
13:29:37 UTC (rev 5743)
+++ trunk/cms/src/main/org/jboss/portal/test/cms/AbstractCMSTestCase.java 2006-11-29
16:35:29 UTC (rev 5744)
@@ -28,6 +28,7 @@
import org.jboss.portal.common.test.junit.JUnitAdapter;
import org.jboss.portal.test.framework.TestRuntimeContext;
import org.jboss.portal.test.framework.embedded.DataSourceSupport;
+import org.jboss.portal.test.framework.embedded.HibernateSupport;
import java.net.URL;
import java.util.Map;
@@ -66,6 +67,7 @@
runtimeContext = new
TestRuntimeContext("org/jboss/portal/cms/jboss-beans.xml");
runtimeContext.addBean("TestBean", this);
runtimeContext.addBean("DataSourceConfig", dataSourceConfigParameter);
+ runtimeContext.addBean("HibernateConfig",
HibernateSupport.getConfig(dataSourceConfigParameter.getDisplayName()));
runtimeContext.start();
}
Modified: trunk/cms/src/resources/portal-cms-jar/org/jboss/portal/cms/jboss-beans.xml
===================================================================
--- trunk/cms/src/resources/portal-cms-jar/org/jboss/portal/cms/jboss-beans.xml 2006-11-29
13:29:37 UTC (rev 5743)
+++ trunk/cms/src/resources/portal-cms-jar/org/jboss/portal/cms/jboss-beans.xml 2006-11-29
16:35:29 UTC (rev 5744)
@@ -34,6 +34,13 @@
</constructor>
</bean>
+ <bean name="HibernateConfig"
class="org.jboss.portal.test.framework.embedded.HibernateSupport$Config">
+ <constructor factoryMethod="getBean">
+ <factory bean="BeanFactory"/>
+ <parameter>HibernateConfig</parameter>
+ </constructor>
+ </bean>
+
<bean name="JNDISupport"
class="org.jboss.portal.test.framework.embedded.JNDISupport">
</bean>
@@ -48,13 +55,11 @@
<property name="transactionManager"><inject
bean="TransactionManagerSupport"
property="transactionManager"/></property>
<property name="connectionManagerReference"><inject
bean="ConnectionManagerSupport"
property="connectionManagerReference"/></property>
- <property name="driverClass"><inject
bean="DataSourceConfig" property="driverClass"/></property>
- <property name="connectionURL"><inject
bean="DataSourceConfig"
property="connectionURL"/></property>
- <property name="userName"><inject
bean="DataSourceConfig" property="userName"/></property>
- <property name="password"><inject
bean="DataSourceConfig" property="password"/></property>
+ <property name="config"><inject
bean="DataSourceConfig"/></property>
</bean>
<bean name="HibernateSupport"
class="org.jboss.portal.test.framework.embedded.HibernateSupport">
+ <property name="config"><inject
bean="HibernateConfig"/></property>
<property name="jNDIName">java:/SessionFactory</property>
<property name="mappings">
<list elementClass="java.lang.String">
Modified: trunk/common/src/main/org/jboss/portal/common/test/junit/POJOJUnitTest.java
===================================================================
--- trunk/common/src/main/org/jboss/portal/common/test/junit/POJOJUnitTest.java 2006-11-29
13:29:37 UTC (rev 5743)
+++ trunk/common/src/main/org/jboss/portal/common/test/junit/POJOJUnitTest.java 2006-11-29
16:35:29 UTC (rev 5744)
@@ -154,6 +154,10 @@
{
setUpMethod.invoke(test, new Object[0]);
}
+ else
+ {
+ // Maybe print a warn !!! ???
+ }
}
catch (NoSuchMethodException ignore)
{
Modified: trunk/common/src/main/org/jboss/portal/common/util/XML.java
===================================================================
--- trunk/common/src/main/org/jboss/portal/common/util/XML.java 2006-11-29 13:29:37 UTC
(rev 5743)
+++ trunk/common/src/main/org/jboss/portal/common/util/XML.java 2006-11-29 16:35:29 UTC
(rev 5744)
@@ -181,8 +181,7 @@
StringReader reader = new StringReader(text);
InputSource source = new InputSource();
source.setCharacterStream(reader);
- Document doc = builder.parse(source);
- return doc;
+ return builder.parse(source);
}
/** Parse a string into an element. */
@@ -192,6 +191,20 @@
return doc.getDocumentElement();
}
+ public static Document toDocument(Element element) throws
ParserConfigurationException, SAXException, IOException
+ {
+ if (element == null)
+ {
+ throw new IllegalArgumentException();
+ }
+
+ //
+ Document doc = buildFactory.newDocumentBuilder().newDocument();
+ element = (Element)doc.importNode(element, true);
+ doc.appendChild(element);
+ return doc;
+ }
+
/**
* Perform trimming by default
*
Modified: trunk/core/build.xml
===================================================================
--- trunk/core/build.xml 2006-11-29 13:29:37 UTC (rev 5743)
+++ trunk/core/build.xml 2006-11-29 16:35:29 UTC (rev 5744)
@@ -598,6 +598,9 @@
<parameter name="CloneOnCreate" value="false"/>
<parameter name="CacheNaturalId" value="true"/>
</zest>
+ <zest todir="${test.reports}"
name="org.jboss.portal.test.core.state.ProducerTestCase"
+ outfile="TEST-ProducerTestCase">
+ </zest>
<test todir="${test.reports}"
name="org.jboss.portal.test.core.deployment.JBossApplicationMetaDataFactoryTestCase"/>
<test todir="${test.reports}"
Modified: trunk/core/src/main/org/jboss/portal/test/core/PortalBaseTestCase.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/test/core/PortalBaseTestCase.java 2006-11-29
13:29:37 UTC (rev 5743)
+++ trunk/core/src/main/org/jboss/portal/test/core/PortalBaseTestCase.java 2006-11-29
16:35:29 UTC (rev 5744)
@@ -67,7 +67,7 @@
protected TestRuntimeContext runtimeContext;
/** . */
- protected DataSourceSupport.Config dsCfg;
+ protected DataSourceSupport.Config dataSourceConfigParameter;
/** . */
protected HibernateSupport hibernate;
@@ -85,6 +85,16 @@
return hibernate;
}
+ public DataSourceSupport.Config getDataSourceConfigParameter()
+ {
+ return dataSourceConfigParameter;
+ }
+
+ public void setDataSourceConfigParameter(DataSourceSupport.Config
dataSourceConfigParameter)
+ {
+ this.dataSourceConfigParameter = dataSourceConfigParameter;
+ }
+
public void setHibernate(HibernateSupport hibernate)
{
this.hibernate = hibernate;
@@ -92,7 +102,7 @@
public String getName()
{
- return super.getName() + "_" +
dsCfg.getDriverClass().replaceAll("\\.", "_");
+ return super.getName() + ",ds=" +
dataSourceConfigParameter.getDisplayName();
}
protected Set getDefaultSecurityConstraints()
@@ -118,7 +128,8 @@
{
runtimeContext = new TestRuntimeContext(getConfigLocation());
runtimeContext.addBean("TestBean", this);
- runtimeContext.addBean("DataSourceConfig", dsCfg);
+ runtimeContext.addBean("DataSourceConfig", dataSourceConfigParameter);
+ runtimeContext.addBean("HibernateConfig",
HibernateSupport.getConfig(dataSourceConfigParameter.getDisplayName()));
runtimeContext.start();
//
Modified:
trunk/core/src/main/org/jboss/portal/test/core/model/instance/InstanceContainerTestCase.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/test/core/model/instance/InstanceContainerTestCase.java 2006-11-29
13:29:37 UTC (rev 5743)
+++
trunk/core/src/main/org/jboss/portal/test/core/model/instance/InstanceContainerTestCase.java 2006-11-29
16:35:29 UTC (rev 5744)
@@ -302,6 +302,7 @@
runtimeContext.addBean("TestCaseConfig", this);
runtimeContext.addBean("TestBean", this);
runtimeContext.addBean("DataSourceConfig", dataSourceConfigParameter);
+ runtimeContext.addBean("HibernateConfig",
HibernateSupport.getConfig(dataSourceConfigParameter.getDisplayName()));
runtimeContext.start();
}
Modified:
trunk/core/src/main/org/jboss/portal/test/core/model/portal/PortalObjectContainerTestCase.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/test/core/model/portal/PortalObjectContainerTestCase.java 2006-11-29
13:29:37 UTC (rev 5743)
+++
trunk/core/src/main/org/jboss/portal/test/core/model/portal/PortalObjectContainerTestCase.java 2006-11-29
16:35:29 UTC (rev 5744)
@@ -33,6 +33,9 @@
import org.jboss.portal.security.impl.jacc.JACCPortalAuthorizationManagerFactory;
import org.jboss.portal.test.core.PortalBaseTestCase;
import org.jboss.portal.test.framework.embedded.DataSourceSupport;
+import org.jboss.portal.common.test.TestParametrization;
+import org.jboss.portal.common.test.junit.JUnitAdapter;
+import org.jboss.portal.common.test.junit.POJOJUnitTest;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
@@ -53,40 +56,16 @@
public static TestSuite suite() throws Exception
{
-
- TestSuite suite = new TestSuite();
+ TestParametrization parametrization = JUnitAdapter.getParametrization();
URL configsURL =
Thread.currentThread().getContextClassLoader().getResource("datasources.xml");
- DataSourceSupport.Config[] configs = DataSourceSupport.Config.fromXML(configsURL);
- for (int i = 0; i < configs.length; i++)
- {
- DataSourceSupport.Config config = configs[i];
- //
- Method[] methods = PortalObjectContainerTestCase.class.getMethods();
- for (int j = 0; j < methods.length; j++)
- {
- Method method = methods[j];
- int modifiers = method.getModifiers();
- if (Modifier.isPublic(modifiers) && !Modifier.isAbstract(modifiers)
- && !Modifier.isStatic(modifiers) &&
method.getName().startsWith("test"))
- {
- PortalBaseTestCase testCase = new PortalObjectContainerTestCase(config);
- testCase.setName(method.getName());
- suite.addTest(testCase);
-
- }
- }
- }
-
- //
+ parametrization.setParameterValue("DataSourceConfig",
DataSourceSupport.Config.fromXML2(configsURL));
+ POJOJUnitTest abc = new POJOJUnitTest(PortalObjectContainerTestCase.class);
+ JUnitAdapter adapter = new JUnitAdapter(abc, parametrization);
+ TestSuite suite = new TestSuite();
+ suite.addTest(adapter);
return suite;
}
-
- public PortalObjectContainerTestCase(DataSourceSupport.Config config)
- {
- this.dsCfg = config;
- }
-
protected String getConfigLocation()
{
return "org/jboss/portal/test/core/model/portal/jboss-beans.xml";
@@ -95,7 +74,7 @@
JBossAuthorizationDomainRegistryImpl registry;
JACCPortalAuthorizationManagerFactory factory;
- protected void setUp() throws Exception
+ public void setUp() throws Exception
{
super.setUp();
Modified: trunk/core/src/main/org/jboss/portal/test/core/state/ProducerTestCase.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/test/core/state/ProducerTestCase.java 2006-11-29
13:29:37 UTC (rev 5743)
+++ trunk/core/src/main/org/jboss/portal/test/core/state/ProducerTestCase.java 2006-11-29
16:35:29 UTC (rev 5744)
@@ -23,6 +23,7 @@
package org.jboss.portal.test.core.state;
import junit.framework.TestCase;
+import junit.framework.TestSuite;
import org.apache.log4j.Appender;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Level;
@@ -31,6 +32,9 @@
import org.jboss.portal.Mode;
import org.jboss.portal.common.junit.TransactionAssert;
import org.jboss.portal.common.value.StringValue;
+import org.jboss.portal.common.test.TestParametrization;
+import org.jboss.portal.common.test.junit.JUnitAdapter;
+import org.jboss.portal.common.test.junit.POJOJUnitTest;
import org.jboss.portal.core.impl.portlet.state.PersistentStateStore;
import org.jboss.portal.core.impl.portlet.state.ProducerPortletInvoker;
import org.jboss.portal.portlet.NoSuchPortletException;
@@ -60,6 +64,7 @@
import java.util.Collections;
import java.util.List;
+import java.net.URL;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -76,20 +81,23 @@
Logger.getLogger("org.hibernate").setLevel(Level.ERROR);
}
-// public static TestSuite suite() throws Exception
-// {
-// URL configsURL =
Thread.currentThread().getContextClassLoader().getResource("datasources.xml");
-// DataSourceSupport.Config[] configs =
DataSourceSupport.Config.fromXML(configsURL);
-// DatabaseTestSuite suite = new DatabaseTestSuite(configs);
-// suite.addTestCase(ProducerTestCase.class);
-// return suite;
-// }
+ public static TestSuite suite() throws Exception
+ {
+ TestParametrization parametrization = JUnitAdapter.getParametrization();
+ URL configsURL =
Thread.currentThread().getContextClassLoader().getResource("datasources.xml");
+ parametrization.setParameterValue("DataSourceConfig",
DataSourceSupport.Config.fromXML2(configsURL));
+ POJOJUnitTest abc = new POJOJUnitTest(ProducerTestCase.class);
+ JUnitAdapter adapter = new JUnitAdapter(abc, parametrization);
+ TestSuite suite = new TestSuite();
+ suite.addTest(adapter);
+ return suite;
+ }
/** . */
private TestRuntimeContext runtimeContext;
/** . */
- private DataSourceSupport.Config dsCfg;
+ private DataSourceSupport.Config dataSourceConfigParameter;
/** . */
private HibernateSupport hibernateSupport;
@@ -103,9 +111,9 @@
/** . */
private PortletInvokerSupport portletContainer;
- public ProducerTestCase(DataSourceSupport.Config config)
+ public String getName()
{
- this.dsCfg = config;
+ return super.getName() + ",ds=" +
dataSourceConfigParameter.getDisplayName();
}
public HibernateSupport getHibernateSupport()
@@ -148,11 +156,22 @@
this.portletContainer = portletContainer;
}
- protected void setUp() throws Exception
+ public DataSourceSupport.Config getDataSourceConfigParameter()
{
+ return dataSourceConfigParameter;
+ }
+
+ public void setDataSourceConfigParameter(DataSourceSupport.Config
dataSourceConfigParameter)
+ {
+ this.dataSourceConfigParameter = dataSourceConfigParameter;
+ }
+
+ public void setUp() throws Exception
+ {
runtimeContext = new
TestRuntimeContext("org/jboss/portal/test/core/state/jboss-beans.xml");
runtimeContext.addBean("TestBean", this);
- runtimeContext.addBean("DataSourceConfig", dsCfg);
+ runtimeContext.addBean("DataSourceConfig", dataSourceConfigParameter);
+ runtimeContext.addBean("HibernateConfig",
HibernateSupport.getConfig(dataSourceConfigParameter.getDisplayName()));
runtimeContext.start();
portletContainer.addPortlet("SimplePortlet", new PortletSupport()
Modified:
trunk/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/instance/jboss-beans.xml
===================================================================
---
trunk/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/instance/jboss-beans.xml 2006-11-29
13:29:37 UTC (rev 5743)
+++
trunk/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/instance/jboss-beans.xml 2006-11-29
16:35:29 UTC (rev 5744)
@@ -40,6 +40,13 @@
</constructor>
</bean>
+ <bean name="HibernateConfig"
class="org.jboss.portal.test.framework.embedded.HibernateSupport$Config">
+ <constructor factoryMethod="getBean">
+ <factory bean="BeanFactory"/>
+ <parameter>HibernateConfig</parameter>
+ </constructor>
+ </bean>
+
<bean name="JNDISupport"
class="org.jboss.portal.test.framework.embedded.JNDISupport">
</bean>
@@ -52,15 +59,12 @@
<bean name="DataSourceSupport"
class="org.jboss.portal.test.framework.embedded.DataSourceSupport">
<property name="transactionManager"><inject
bean="TransactionManagerSupport"
property="transactionManager"/></property>
- <property name="connectionManagerReference"><inject
bean="ConnectionManagerSupport"
-
property="connectionManagerReference"/></property>
- <property name="driverClass"><inject
bean="DataSourceConfig" property="driverClass"/></property>
- <property name="connectionURL"><inject
bean="DataSourceConfig"
property="connectionURL"/></property>
- <property name="userName"><inject
bean="DataSourceConfig" property="userName"/></property>
- <property name="password"><inject
bean="DataSourceConfig" property="password"/></property>
+ <property name="connectionManagerReference"><inject
bean="ConnectionManagerSupport"
property="connectionManagerReference"/></property>
+ <property name="config"><inject
bean="DataSourceConfig"/></property>
</bean>
<bean name="InstanceHibernateSupport"
class="org.jboss.portal.test.framework.embedded.HibernateSupport">
+ <property name="config"><inject
bean="HibernateConfig"/></property>
<property name="mappings">
<list elementClass="java.lang.String">
<value>conf/hibernate/instance/domain.hbm.xml</value>
@@ -70,6 +74,7 @@
</bean>
<bean name="PortletHibernateSupport"
class="org.jboss.portal.test.framework.embedded.HibernateSupport">
+ <property name="config"><inject
bean="HibernateConfig"/></property>
<property name="mappings">
<list elementClass="java.lang.String">
<value>conf/hibernate/portlet/domain.hbm.xml</value>
Modified:
trunk/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/portal/jboss-beans.xml
===================================================================
---
trunk/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/portal/jboss-beans.xml 2006-11-29
13:29:37 UTC (rev 5743)
+++
trunk/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/portal/jboss-beans.xml 2006-11-29
16:35:29 UTC (rev 5744)
@@ -34,6 +34,13 @@
</constructor>
</bean>
+ <bean name="HibernateConfig"
class="org.jboss.portal.test.framework.embedded.HibernateSupport$Config">
+ <constructor factoryMethod="getBean">
+ <factory bean="BeanFactory"/>
+ <parameter>HibernateConfig</parameter>
+ </constructor>
+ </bean>
+
<bean name="JNDISupport"
class="org.jboss.portal.test.framework.embedded.JNDISupport">
</bean>
@@ -46,15 +53,12 @@
<bean name="DataSourceSupport"
class="org.jboss.portal.test.framework.embedded.DataSourceSupport">
<property name="transactionManager"><inject
bean="TransactionManagerSupport"
property="transactionManager"/></property>
- <property name="connectionManagerReference"><inject
bean="ConnectionManagerSupport"
-
property="connectionManagerReference"/></property>
- <property name="driverClass"><inject
bean="DataSourceConfig" property="driverClass"/></property>
- <property name="connectionURL"><inject
bean="DataSourceConfig"
property="connectionURL"/></property>
- <property name="userName"><inject
bean="DataSourceConfig" property="userName"/></property>
- <property name="password"><inject
bean="DataSourceConfig" property="password"/></property>
+ <property name="connectionManagerReference"><inject
bean="ConnectionManagerSupport"
property="connectionManagerReference"/></property>
+ <property name="config"><inject
bean="DataSourceConfig"/></property>
</bean>
<bean name="HibernateSupport"
class="org.jboss.portal.test.framework.embedded.HibernateSupport">
+ <property name="config"><inject
bean="HibernateConfig"/></property>
<property name="mappings">
<list elementClass="java.lang.String">
<value>conf/hibernate/portal/domain.hbm.xml</value>
Modified:
trunk/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/state/jboss-beans.xml
===================================================================
---
trunk/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/state/jboss-beans.xml 2006-11-29
13:29:37 UTC (rev 5743)
+++
trunk/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/state/jboss-beans.xml 2006-11-29
16:35:29 UTC (rev 5744)
@@ -34,6 +34,13 @@
</constructor>
</bean>
+ <bean name="HibernateConfig"
class="org.jboss.portal.test.framework.embedded.HibernateSupport$Config">
+ <constructor factoryMethod="getBean">
+ <factory bean="BeanFactory"/>
+ <parameter>HibernateConfig</parameter>
+ </constructor>
+ </bean>
+
<bean name="JNDISupport"
class="org.jboss.portal.test.framework.embedded.JNDISupport">
</bean>
@@ -46,15 +53,12 @@
<bean name="DataSourceSupport"
class="org.jboss.portal.test.framework.embedded.DataSourceSupport">
<property name="transactionManager"><inject
bean="TransactionManagerSupport"
property="transactionManager"/></property>
- <property name="connectionManagerReference"><inject
bean="ConnectionManagerSupport"
-
property="connectionManagerReference"/></property>
- <property name="driverClass"><inject
bean="DataSourceConfig" property="driverClass"/></property>
- <property name="connectionURL"><inject
bean="DataSourceConfig"
property="connectionURL"/></property>
- <property name="userName"><inject
bean="DataSourceConfig" property="userName"/></property>
- <property name="password"><inject
bean="DataSourceConfig" property="password"/></property>
+ <property name="connectionManagerReference"><inject
bean="ConnectionManagerSupport"
property="connectionManagerReference"/></property>
+ <property name="config"><inject
bean="DataSourceConfig"/></property>
</bean>
<bean name="HibernateSupport"
class="org.jboss.portal.test.framework.embedded.HibernateSupport">
+ <property name="config"><inject
bean="HibernateConfig"/></property>
<property name="mappings">
<list elementClass="java.lang.String">
<value>conf/hibernate/portlet/domain.hbm.xml</value>
Modified: trunk/identity/src/main/org/jboss/portal/test/identity/db/DBUserTestCase.java
===================================================================
---
trunk/identity/src/main/org/jboss/portal/test/identity/db/DBUserTestCase.java 2006-11-29
13:29:37 UTC (rev 5743)
+++
trunk/identity/src/main/org/jboss/portal/test/identity/db/DBUserTestCase.java 2006-11-29
16:35:29 UTC (rev 5744)
@@ -121,6 +121,7 @@
runtimeContext = new
TestRuntimeContext("org/jboss/portal/test/identity/db-beans.xml");
runtimeContext.addBean("DBTestBean", this);
runtimeContext.addBean("DataSourceConfig", dataSourceConfigParameter);
+ runtimeContext.addBean("HibernateConfig",
HibernateSupport.getConfig(dataSourceConfigParameter.getDisplayName()));
runtimeContext.start();
//
Modified:
trunk/identity/src/resources/portal-identity-test-jar/org/jboss/portal/test/identity/db-beans.xml
===================================================================
---
trunk/identity/src/resources/portal-identity-test-jar/org/jboss/portal/test/identity/db-beans.xml 2006-11-29
13:29:37 UTC (rev 5743)
+++
trunk/identity/src/resources/portal-identity-test-jar/org/jboss/portal/test/identity/db-beans.xml 2006-11-29
16:35:29 UTC (rev 5744)
@@ -34,6 +34,13 @@
</constructor>
</bean>
+ <bean name="HibernateConfig"
class="org.jboss.portal.test.framework.embedded.HibernateSupport$Config">
+ <constructor factoryMethod="getBean">
+ <factory bean="BeanFactory"/>
+ <parameter>HibernateConfig</parameter>
+ </constructor>
+ </bean>
+
<bean name="JNDISupport"
class="org.jboss.portal.test.framework.embedded.JNDISupport">
</bean>
@@ -46,15 +53,12 @@
<bean name="DataSourceSupport"
class="org.jboss.portal.test.framework.embedded.DataSourceSupport">
<property name="transactionManager"><inject
bean="TransactionManagerSupport"
property="transactionManager"/></property>
- <property name="connectionManagerReference"><inject
bean="ConnectionManagerSupport"
-
property="connectionManagerReference"/></property>
- <property name="driverClass"><inject
bean="DataSourceConfig" property="driverClass"/></property>
- <property name="connectionURL"><inject
bean="DataSourceConfig"
property="connectionURL"/></property>
- <property name="userName"><inject
bean="DataSourceConfig" property="userName"/></property>
- <property name="password"><inject
bean="DataSourceConfig" property="password"/></property>
+ <property name="connectionManagerReference"><inject
bean="ConnectionManagerSupport"
property="connectionManagerReference"/></property>
+ <property name="config"><inject
bean="DataSourceConfig"/></property>
</bean>
<bean name="HibernateSupport"
class="org.jboss.portal.test.framework.embedded.HibernateSupport">
+ <property name="config"><inject
bean="HibernateConfig"/></property>
<property name="jNDIName">java:/SessionFactory</property>
<property name="mappings">
<list elementClass="java.lang.String">
@@ -71,5 +75,4 @@
<property name="hibernate"><inject
bean="HibernateSupport"/></property>
</bean>
-
</deployment>
Modified: trunk/portlet/build.xml
===================================================================
--- trunk/portlet/build.xml 2006-11-29 13:29:37 UTC (rev 5743)
+++ trunk/portlet/build.xml 2006-11-29 16:35:29 UTC (rev 5744)
@@ -584,7 +584,7 @@
</x-sysproperty>
<x-test>
- <!--test todir="${test.reports}"
name="org.jboss.portal.test.portlet.ha.session.SessionTestSuite"/-->
+ <!--<test todir="${test.reports}"
name="org.jboss.portal.test.portlet.ha.session.SessionTestSuite"/>-->
<!--<test todir="${test.reports}"
name="org.jboss.portal.test.portlet.info.InfoTestSuite"/>-->
<!--<test todir="${test.reports}"
name="org.jboss.portal.test.portlet.session.SessionSynchronizationTestCase"/>-->
<!--<test todir="${test.reports}"
name="org.jboss.portal.test.portlet.PortletRequestDecoderTestCase"/>-->
Modified: trunk/test/src/etc/datasources.xml
===================================================================
--- trunk/test/src/etc/datasources.xml 2006-11-29 13:29:37 UTC (rev 5743)
+++ trunk/test/src/etc/datasources.xml 2006-11-29 16:35:29 UTC (rev 5744)
@@ -22,6 +22,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
<datasources>
+ <!-- The hsqldb datasource -->
<datasource>
<display-name>hsqldb</display-name>
<connection-url>jdbc:hsqldb:file:test</connection-url>
Added: trunk/test/src/etc/hibernates.xml
===================================================================
--- trunk/test/src/etc/hibernates.xml 2006-11-29 13:29:37 UTC (rev 5743)
+++ trunk/test/src/etc/hibernates.xml 2006-11-29 16:35:29 UTC (rev 5744)
@@ -0,0 +1,50 @@
+<configurations>
+ <!-- The default configuration that will apply everywhere -->
+ <configuration>
+ <configuration-name>default</configuration-name>
+ <properties>
+ <property>
+ <name>hibernate.show_sql</name>
+ <value>true</value>
+ </property>
+ <property>
+ <name>hibernate.auto_close_session</name>
+ <value>true</value>
+ </property>
+ <property>
+ <name>hibernate.transaction.flush_before_completion</name>
+ <value>true</value>
+ </property>
+ <property>
+ <name>hibernate.transaction.factory_class</name>
+ <value>org.hibernate.transaction.JTATransactionFactory</value>
+ </property>
+ <property>
+ <name>hibernate.transaction.manager_lookup_class</name>
+
<value>org.hibernate.transaction.JBossTransactionManagerLookup</value>
+ </property>
+ <property>
+ <name>hibernate.cache.provider_class</name>
+ <value>org.hibernate.cache.HashtableCacheProvider</value>
+ </property>
+ <property>
+ <name>hibernate.cache.use_second_level_cache</name>
+ <value>false</value>
+ </property>
+ <property>
+ <name>hibernate.cache.use_query_cache</name>
+ <value>false</value>
+ </property>
+ </properties>
+ </configuration>
+ <!-- The hsqldb configuration -->
+ <configuration>
+ <configuration-name>hsqldb</configuration-name>
+ <properties>
+ <property>
+ <name>hibernate.dialect</name>
+ <value>org.hibernate.dialect.HSQLDialect</value>
+ </property>
+ </properties>
+ </configuration>
+</configurations>
\ No newline at end of file
Modified:
trunk/test/src/main/org/jboss/portal/test/framework/embedded/DataSourceSupport.java
===================================================================
---
trunk/test/src/main/org/jboss/portal/test/framework/embedded/DataSourceSupport.java 2006-11-29
13:29:37 UTC (rev 5743)
+++
trunk/test/src/main/org/jboss/portal/test/framework/embedded/DataSourceSupport.java 2006-11-29
16:35:29 UTC (rev 5744)
@@ -59,7 +59,7 @@
private CachedConnectionManagerReference connectionManagerReference;
//
- private Config cfg;
+ private Config config;
private String jndiName = "java:/DefaultDS";
@@ -68,7 +68,7 @@
public DataSourceSupport(Config cfg)
{
- this.cfg = cfg;
+ this.config = cfg;
}
public DataSourceSupport()
@@ -85,10 +85,10 @@
//
ds = new LocalTxDataSource();
- ds.setConnectionURL(cfg.getConnectionURL());
- ds.setDriverClass(cfg.getDriverClass());
- ds.setUserName(cfg.getUserName());
- ds.setPassword(cfg.getPassword());
+ ds.setConnectionURL(config.getConnectionURL());
+ ds.setDriverClass(config.getDriverClass());
+ ds.setUserName(config.getUserName());
+ ds.setPassword(config.getPassword());
ds.setJndiName(jndiName);
ds.setMaxSize(10);
ds.setMinSize(0);
@@ -103,7 +103,7 @@
public void stop()
{
// Make hsqldb flush its data on the disk
- if ("org.hsqldb.jdbcDriver".equals(cfg.driverClass))
+ if ("org.hsqldb.jdbcDriver".equals(config.driverClass))
{
try
{
@@ -136,56 +136,16 @@
{
}
- public String getConnectionURL()
+ public Config getConfig()
{
- return cfg.connectionURL;
+ return config;
}
- public void setConnectionURL(String connectionURL)
+ public void setConfig(Config config)
{
- this.cfg.connectionURL = connectionURL;
+ this.config = config;
}
- public String getDriverClass()
- {
- return cfg.driverClass;
- }
-
- public void setDriverClass(String driverClass)
- {
- this.cfg.driverClass = driverClass;
- }
-
- public String getUserName()
- {
- return cfg.userName;
- }
-
- public void setUserName(String userName)
- {
- this.cfg.userName = userName;
- }
-
- public String getPassword()
- {
- return cfg.password;
- }
-
- public void setPassword(String password)
- {
- this.cfg.password = password;
- }
-
- public String getJndiName()
- {
- return jndiName;
- }
-
- public void setJndiName(String jndiName)
- {
- this.jndiName = jndiName;
- }
-
public TransactionManager getTransactionManager()
{
return transactionManager;
@@ -209,10 +169,19 @@
public static class Config
{
+ /** . */
private String displayName;
+
+ /** . */
private String connectionURL;
+
+ /** . */
private String driverClass;
+
+ /** . */
private String userName;
+
+ /** . */
private String password;
public Config(String displayName, String connectionURL, String driverClass, String
userName, String password)
Modified:
trunk/test/src/main/org/jboss/portal/test/framework/embedded/HibernateSupport.java
===================================================================
---
trunk/test/src/main/org/jboss/portal/test/framework/embedded/HibernateSupport.java 2006-11-29
13:29:37 UTC (rev 5743)
+++
trunk/test/src/main/org/jboss/portal/test/framework/embedded/HibernateSupport.java 2006-11-29
16:35:29 UTC (rev 5744)
@@ -31,11 +31,20 @@
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.Settings;
import org.hibernate.tool.hbm2ddl.SchemaExport;
+import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.util.Tools;
+import org.w3c.dom.Element;
+import org.w3c.dom.Document;
import javax.transaction.Synchronization;
import java.util.Collection;
import java.util.Iterator;
+import java.util.Map;
+import java.util.LinkedHashMap;
+import java.util.HashMap;
import java.util.Properties;
+import java.io.InputStream;
+import java.net.URL;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -44,8 +53,6 @@
public class HibernateSupport
{
- public static final String DS_JNDI_NAME = "java:/DefaultDS";
-
/** . */
protected String jndiName;
@@ -53,17 +60,20 @@
protected Collection mappings;
/** . */
- protected Configuration cfg;
+ protected Config config;
/** . */
protected SessionFactory factory;
/** . */
- protected Settings settings;
+ protected Session session;
/** . */
- protected Session session;
+ protected Configuration cfg;
+ /** . */
+ protected Settings settings;
+
public Collection getMappings()
{
return mappings;
@@ -74,11 +84,16 @@
this.mappings = mappings;
}
- public Configuration getConfig()
+ public Config getConfig()
{
- return cfg;
+ return config;
}
+ public void setConfig(Config config)
+ {
+ this.config = config;
+ }
+
public SessionFactory getSessionFactory()
{
return factory;
@@ -96,10 +111,8 @@
protected void createConfiguration()
{
- //
- cfg = new Configuration();
+ Configuration cfg = new Configuration();
- //
for (Iterator i = mappings.iterator(); i.hasNext();)
{
String mapping = (String)i.next();
@@ -108,25 +121,21 @@
//
Properties props = new Properties();
- props.setProperty("hibernate.show_sql", "true");
- props.setProperty("hibernate.transaction.flush_before_completion",
"true");
- props.setProperty("hibernate.transaction.auto_close_session",
"true");
- props.setProperty("hibernate.transaction.factory_class",
"org.hibernate.transaction.JTATransactionFactory");
- props.setProperty("hibernate.transaction.manager_lookup_class",
"org.hibernate.transaction.JBossTransactionManagerLookup");
- props.setProperty("hibernate.connection.datasource", DS_JNDI_NAME);
- props.setProperty("hibernate.cache.provider_class",
"org.hibernate.cache.HashtableCacheProvider");
+ props.putAll(config.properties);
+ cfg.addProperties(props);
//
+ cfg.setProperty("hibernate.connection.datasource",
"java:/DefaultDS");
+
+ //
if (jndiName != null)
{
- props.setProperty("hibernate.session_factory_name", jndiName);
+ cfg.setProperty("hibernate.session_factory_name", jndiName);
}
//
- cfg.setProperties(props);
-
- //
- settings = cfg.buildSettings();
+ this.settings = cfg.buildSettings();
+ this.cfg = cfg;
}
protected void createSessionFactory()
@@ -153,7 +162,7 @@
protected void destroyConfiguration()
{
- cfg = null;
+ config = null;
}
public void create() throws Exception
@@ -305,4 +314,105 @@
});
return session;
}
+
+ public static class Config
+ {
+
+ /** . */
+ private String name;
+
+ /** . */
+ private Map properties;
+
+ public Config(String name, Map properties)
+ {
+ this.name = name;
+ this.properties = properties;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public Map getProperties()
+ {
+ return properties;
+ }
+ }
+
+ /** . */
+ private static Map configs;
+
+ public static Map fromXML(URL url) throws Exception
+ {
+ Map configs = new LinkedHashMap();
+ InputStream in = null;
+ try
+ {
+ in = Tools.safeBufferedWrapper(url.openStream());
+ Document doc = XML.getDocumentBuilderFactory().newDocumentBuilder().parse(in);
+ for (Iterator i = XML.getChildrenIterator(doc.getDocumentElement(),
"configuration"); i.hasNext();)
+ {
+ Element childElt = (Element)i.next();
+
+ //
+ Element configurationNameElt = XML.getUniqueChild(childElt,
"configuration-name", true);
+ String configurationName = XML.asString(configurationNameElt);
+
+ //
+ Map properties = new HashMap();
+ Element propertiesElt = XML.getUniqueChild(childElt, "properties",
false);
+ if (propertiesElt != null)
+ {
+ for (Iterator j = XML.getChildrenIterator(propertiesElt,
"property");j.hasNext();)
+ {
+ Element propertyElt = (Element)j.next();
+ Element nameElt = XML.getUniqueChild(propertyElt, "name",
true);
+ Element valueElt = XML.getUniqueChild(propertyElt, "value",
true);
+ String name = XML.asString(nameElt);
+ String value = XML.asString(valueElt);
+ properties.put(name, value);
+ }
+ }
+
+ //
+ Config config = new Config(configurationName, properties);
+ configs.put(configurationName, config);
+ }
+ return configs;
+ }
+ finally
+ {
+ Tools.safeClose(in);
+ }
+ }
+
+ public synchronized static Config getConfig(String name) throws Exception
+ {
+ if (configs == null)
+ {
+ URL url =
Thread.currentThread().getContextClassLoader().getResource("hibernates.xml");
+ configs = fromXML(url);
+
+ // Remove and merge default with all
+ Config defaultCfg = (Config)configs.remove("default");
+
+ //
+ for (Iterator i = configs.values().iterator();i.hasNext();)
+ {
+ Config cfg = (Config)i.next();
+ if ("default".equals(cfg.getName()) == false)
+ {
+ Map tmp = new HashMap(defaultCfg.properties);
+ tmp.putAll(cfg.properties);
+ cfg.properties = tmp;
+ }
+ }
+
+ }
+
+ //
+ return (Config)configs.get(name);
+ }
}