1 package org.jboss.portal.test.setup; 2 3 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 ; 21 import org.w3c.dom.Document ; 22 import org.xml.sax.SAXException ; 23 24 import javax.xml.parsers.ParserConfigurationException ; 25 import java.util.List ; 26 import java.util.ArrayList ; 27 import java.io.InputStream ; 28 import java.io.IOException ; 29 30 36 public class PortalSetupBaseTestCase extends TestCase 37 { 38 protected HibernateConfig m_hbConfig; 39 protected DbAccessConfig m_dbAccessConfig; 40 protected String m_vendor = "hsqldb"; 41 private static final String DB_VENDORS = "org/jboss/portal/test/setup/DBVendorsProperties.xml"; 42 private Element m_dbVendor = null; 43 44 public PortalSetupBaseTestCase(String name) 45 { 46 super(name); 47 } 48 49 public void setUp() throws Exception 50 { 51 setDBVendorProperties(); 52 m_dbAccessConfig = setupDbAccessConfiguration(); 53 m_hbConfig = setupHibernateConfiguration(m_dbAccessConfig); 54 } 55 56 public void tearDown() throws Exception 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 url = XML.asString(XML.getUniqueChild(m_dbVendor, "url", true)); 68 String driver = XML.asString(XML.getUniqueChild(m_dbVendor, "driver", true)); 69 String usrName = XML.asString(XML.getUniqueChild(m_dbVendor, "usr-name", true)); 70 String 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 } 80 81 protected HibernateConfig setupHibernateConfiguration(DbAccessConfig config) throws PortalSetupException 82 { 83 m_hbConfig = new HibernateConfigImpl(); 85 m_hbConfig.setDbAccessConfig(config); 86 if (null != m_dbVendor) 87 { 88 String 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 getClassList() throws PortalSetupException 104 { 105 List classes = new ArrayList (); 106 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 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 is = Thread.currentThread().getContextClassLoader().getResourceAsStream(DB_VENDORS); 135 Document dmt = XML.getDocumentBuilderFactory().newDocumentBuilder().parse(is); 136 Element docElmt = dmt.getDocumentElement(); 137 List vendors = XML.getChildren(docElmt, "vendor"); 138 for (int i = 0; i < vendors.size(); i++) 139 { 140 Element vendor = (Element )vendors.get(i); 141 String 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 e) 150 { 151 e.printStackTrace(); throw new PortalSetupException(e); 153 } 154 catch (ParserConfigurationException e) 155 { 156 e.printStackTrace(); throw new PortalSetupException(e); 158 } 159 catch (SAXException e) 160 { 161 e.printStackTrace(); throw new PortalSetupException(e); 163 } 164 165 } 166 } 167 | Popular Tags |