KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > portal > test > setup > PortalSetupBaseTestCase


1 package org.jboss.portal.test.setup;
2
3 /*****************************************
4  * *
5  * JBoss Portal: The OpenSource Portal *
6  * *
7  * Distributable under LGPL license. *
8  * See terms of license at gnu.org. *
9  * *
10  *****************************************/

11
12 import junit.framework.TestCase;
13 import org.jboss.portal.setup.config.HibernateConfig;
14 import org.jboss.portal.setup.config.DbAccessConfig;
15 import org.jboss.portal.setup.PortalSetupException;
16 import org.jboss.portal.setup.PortalSetupConstants;
17 import org.jboss.portal.setup.impl.config.HibernateConfigImpl;
18 import org.jboss.portal.setup.impl.config.DbAccessConfigImpl;
19 import org.jboss.portal.common.util.XML;
20 import org.w3c.dom.Element JavaDoc;
21 import org.w3c.dom.Document JavaDoc;
22 import org.xml.sax.SAXException JavaDoc;
23
24 import javax.xml.parsers.ParserConfigurationException JavaDoc;
25 import java.util.List JavaDoc;
26 import java.util.ArrayList JavaDoc;
27 import java.io.InputStream JavaDoc;
28 import java.io.IOException JavaDoc;
29
30 /**
31  * @author <a HREF="mailto:palber@novell.com">Polina Alber</a>
32  * Date: Apr 17, 2005; Time: 4:46:53 PM
33  * @since JBoss portal 2.0
34  * Class PACKAGE_NAME.org.jboss.portal.test.setup.PortalSetupBaseTestCase
35  */

36 public class PortalSetupBaseTestCase extends TestCase
37 {
38    protected HibernateConfig m_hbConfig;
39    protected DbAccessConfig m_dbAccessConfig;
40    protected String JavaDoc m_vendor = "hsqldb";
41    private static final String JavaDoc DB_VENDORS = "org/jboss/portal/test/setup/DBVendorsProperties.xml";
42    private Element JavaDoc m_dbVendor = null;
43
44    public PortalSetupBaseTestCase(String JavaDoc name)
45    {
46       super(name);
47    }
48
49    public void setUp() throws Exception JavaDoc
50    {
51       setDBVendorProperties();
52       m_dbAccessConfig = setupDbAccessConfiguration();
53       m_hbConfig = setupHibernateConfiguration(m_dbAccessConfig);
54    }
55
56    public void tearDown() throws Exception JavaDoc
57    {
58       m_hbConfig = null;
59       m_dbAccessConfig = null;
60    }
61
62    protected DbAccessConfig setupDbAccessConfiguration() throws PortalSetupException
63    {
64       DbAccessConfigImpl dbAccess = new DbAccessConfigImpl();
65       if (null != m_dbVendor)
66       {
67          String JavaDoc url = XML.asString(XML.getUniqueChild(m_dbVendor, "url", true));
68          String JavaDoc driver = XML.asString(XML.getUniqueChild(m_dbVendor, "driver", true));
69          String JavaDoc usrName = XML.asString(XML.getUniqueChild(m_dbVendor, "usr-name", true));
70          String JavaDoc pswd = XML.asString(XML.getUniqueChild(m_dbVendor, "password", true));
71          dbAccess.setConnUrl(url);
72          dbAccess.setDbVendorName(m_vendor);
73          dbAccess.setDriverClassName(driver);
74          dbAccess.setUserName(usrName);
75          dbAccess.setPassword(pswd);
76       }
77       return dbAccess;
78       //do nothign by defatlt will use hsql test dbloader
79
}
80
81    protected HibernateConfig setupHibernateConfiguration(DbAccessConfig config) throws PortalSetupException
82    {
83       //String schemaQueryStr, HibernateConfig hibernateConfig
84
m_hbConfig = new HibernateConfigImpl();
85       m_hbConfig.setDbAccessConfig(config);
86       if (null != m_dbVendor)
87       {
88          String JavaDoc dialect = XML.asString(XML.getUniqueChild(m_dbVendor, "hb-dialect", true));
89          m_hbConfig.setHibernateDialect(dialect);
90
91
92       }
93       else
94       {
95          m_hbConfig.setHibernateDialect(PortalSetupConstants.AUTO_RESOLVE);
96       }
97       m_hbConfig.setCacheProvider("net.sf.hibernate.cache.TreeCacheProvider");
98       m_hbConfig.setSchemaClasses(getClassList());
99       return m_hbConfig;
100
101    }
102
103    protected List JavaDoc getClassList() throws PortalSetupException
104    {
105       List JavaDoc classes = new ArrayList JavaDoc();
106       // do not remove commented out lines below - used in running test cases from ide without building portal-core-sar
107
// classes.add(org.jboss.portal.core.impl.user.UserImpl.class);
108
// classes.add(org.jboss.portal.core.impl.user.UserPref.class);
109
// classes.add(org.jboss.portal.core.impl.user.UserPrefSet.class);
110
// classes.add(org.jboss.portal.core.impl.role.RoleImpl.class);
111
// classes.add(org.jboss.portal.core.impl.preferences.MappedPreference.class);
112
// classes.add(org.jboss.portal.core.impl.preferences.MappedPreferenceSet.class);
113

114       try
115       {
116          classes.add(Class.forName("org.jboss.portal.core.impl.user.UserImpl"));
117          classes.add(Class.forName("org.jboss.portal.core.impl.user.UserPref"));
118          classes.add(Class.forName("org.jboss.portal.core.impl.user.UserPrefSet"));
119          classes.add(Class.forName("org.jboss.portal.core.impl.role.RoleImpl"));
120          classes.add(Class.forName("org.jboss.portal.core.impl.preferences.MappedPreference"));
121          classes.add(Class.forName("org.jboss.portal.core.impl.preferences.MappedPreferenceSet"));
122       }
123       catch (ClassNotFoundException JavaDoc cnfe)
124       {
125          throw new PortalSetupException("Fail to load class!", cnfe);
126       }
127       return classes;
128    }
129
130    private void setDBVendorProperties() throws PortalSetupException
131    {
132       try
133       {
134          InputStream JavaDoc is = Thread.currentThread().getContextClassLoader().getResourceAsStream(DB_VENDORS);
135          Document JavaDoc dmt = XML.getDocumentBuilderFactory().newDocumentBuilder().parse(is);
136          Element JavaDoc docElmt = dmt.getDocumentElement();
137          List JavaDoc vendors = XML.getChildren(docElmt, "vendor");
138          for (int i = 0; i < vendors.size(); i++)
139          {
140             Element JavaDoc vendor = (Element JavaDoc)vendors.get(i);
141             String JavaDoc vendorName = XML.asString(XML.getUniqueChild(vendor, "name", true));
142             if (m_vendor.equals(vendorName))
143             {
144                m_dbVendor = vendor;
145                break;
146             }
147          }
148       }
149       catch (IOException JavaDoc e)
150       {
151          e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
152
throw new PortalSetupException(e);
153       }
154       catch (ParserConfigurationException JavaDoc e)
155       {
156          e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
157
throw new PortalSetupException(e);
158       }
159       catch (SAXException JavaDoc e)
160       {
161          e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
162
throw new PortalSetupException(e);
163       }
164
165    }
166 }
167
Popular Tags