[jboss-svn-commits] JBL Code SVN: r30209 - labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/auction/test/basic.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Nov 18 13:30:41 EST 2009


Author: whitingjr
Date: 2009-11-18 13:30:40 -0500 (Wed, 18 Nov 2009)
New Revision: 30209

Modified:
   labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/auction/test/basic/ProfiledStateTransitions.java
Log:
Updated to support postgreSQL

Modified: labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/auction/test/basic/ProfiledStateTransitions.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/auction/test/basic/ProfiledStateTransitions.java	2009-11-18 18:29:24 UTC (rev 30208)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/auction/test/basic/ProfiledStateTransitions.java	2009-11-18 18:30:40 UTC (rev 30209)
@@ -51,6 +51,11 @@
 import org.dbunit.dataset.xml.FlatXmlDataSet;
 import org.dbunit.operation.DatabaseOperation;
 import org.hibernate.SessionFactory;
+import org.hibernate.cfg.AnnotationConfiguration;
+import org.hibernate.cfg.Configuration;
+import org.hibernate.cfg.Environment;
+import org.hibernate.impl.SessionFactoryImpl;
+import org.hibernate.tool.hbm2ddl.DatabaseMetadata;
 import org.jboss.ejb3.embedded.EJB3StandaloneBootstrap;
 import org.jboss.jbossts.performance.persistence.vendor.AbstractVendorControl;
 import org.jboss.jbossts.performance.persistence.vendor.Constraint;
@@ -66,6 +71,25 @@
 import org.w3c.dom.NodeList;
 import org.xml.sax.InputSource;
 
+import auction.model.Address;
+import auction.model.AddressEntity;
+import auction.model.Auditable;
+import auction.model.BankAccount;
+import auction.model.Bid;
+import auction.model.BillingDetails;
+import auction.model.CategorizedItem;
+import auction.model.CategorizedItemComponent;
+import auction.model.Category;
+import auction.model.Comment;
+import auction.model.CreditCard;
+import auction.model.CreditCardType;
+import auction.model.Item;
+import auction.model.ItemState;
+import auction.model.MonetaryAmount;
+import auction.model.Rating;
+import auction.model.Shipment;
+import auction.model.ShipmentState;
+import auction.model.User;
 import auction.test.EJB3IntegrationTest;
 
 import com.mentorgen.tools.profile.runtime.Profile;
@@ -185,18 +209,23 @@
       logger.debug("Setting Hibernate SessionFactory JNDI");
       this.SESSION_FACTORY_JNDI = jndiSessionFactory;
    }
-
+   
    @Override
+   public void startContainer(String deployBeansXml, String scanClasspath, String jndiDatasource, String jndiNameEMF,
+         String jndiNameUserTx) throws Exception
+   {/* Replace implementation to configure Hibernate Session Factory JNDI name. */}
+   
    @BeforeTest(groups = "integration-warmup")
    @Parameters(
-   {"deploy_beans_xml", "scan_classpath", "jndi_datasource", "jndi_name_emf", "jndi_name_usertx"})
+   {"deploy_beans_xml", "scan_classpath", "jndi_datasource", "jndi_name_emf", "jndi_name_usertx", "session_jndi"})
    public void startContainer(String deployBeansXml, String scanClasspath, String jndiDatasource, String jndiNameEMF,
-         String jndiNameUserTx) throws Exception
+         String jndiNameUserTx, String jndiNameHSF) throws Exception
    {
       // Set configuration options from TestNG parameters
       JNDI_DATASOURCE = jndiDatasource;
       JNDI_NAME_EMF = jndiNameEMF;
       JNDI_NAME_USERTX = jndiNameUserTx;
+      this.SESSION_FACTORY_JNDI = jndiNameHSF;
 
       // Boot the JBoss Microcontainer with EJB3 settings, automatically
       // loads ejb3-interceptors-aop.xml and embedded-jboss-beans.xml
@@ -227,14 +256,28 @@
    @Parameters ({"basedata_location"})
    public void beforeTestMethod(String basedataLocation) throws Exception {
       Profile.stop();
-
+      SessionFactoryImpl sessionFactory = null;
+      Configuration configuration = null;
+      String[] dropStatements = null;
+      
        Connection connectionConstraintModify =  null;
        try
        {
           if (null != this.integrityConstraint)
           {
              connectionConstraintModify = getConnection().getConnection();
-             this.integrityConstraint.relax(connectionConstraintModify);
+             if (this.integrityConstraint.isDisablePreferedOverDrop())
+             {
+                this.integrityConstraint.relax(connectionConstraintModify);
+             }
+             else
+             {
+                sessionFactory = (SessionFactoryImpl) getSessionFactory();
+                configuration = getConfiguration();
+                dropStatements = configuration.generateDropSchemaScript(sessionFactory.getDialect());
+                this.integrityConstraint.relax(connectionConstraintModify, dropStatements);
+             }
+             
               ((Purge)  this.integrityConstraint).purge(connectionConstraintModify);
               ((SequenceSynchronizer)  this.integrityConstraint).synchronize(connectionConstraintModify);
           }
@@ -254,7 +297,9 @@
           Connection connection =  null;
           try
             {
-               op.execute(getConnection(), dataSet);
+                idbConnection = getConnection();
+                connection = idbConnection.getConnection(); 
+               op.execute(idbConnection , dataSet);
             }
             catch (SQLException sqle)
             {
@@ -262,16 +307,29 @@
             }
             finally 
             {
-               DbUtils.closeQuietly(getConnection().getConnection());
+               DbUtils.closeQuietly(connection);
             }
        }
        
        try
        {
           connectionConstraintModify = getConnection().getConnection();
-          if (null != this.integrityConstraint)
+          if (null != this.integrityConstraint) 
           {
-             this.integrityConstraint.constrain (connectionConstraintModify);
+             if (this.integrityConstraint.isDisablePreferedOverDrop())
+             {
+                this.integrityConstraint.constrain (connectionConstraintModify);
+             }
+             else
+             {
+                DatabaseMetadata metadata= new DatabaseMetadata(connectionConstraintModify, sessionFactory.getDialect());
+                configuration.setProperty(Environment.DIALECT, sessionFactory.getDialect().getClass().getName());
+                
+                configuration.setProperty( Environment.TRANSACTION_STRATEGY,  sessionFactory.getSettings().getTransactionFactory().getClass().getName());
+                configuration.setProperty( Environment.TRANSACTION_MANAGER_STRATEGY , sessionFactory.getSettings().getTransactionManagerLookup().getClass().getName());
+                String[] constrainStatements = configuration.generateSchemaUpdateScript(sessionFactory.getDialect(), metadata);
+                this.integrityConstraint.constrain (connectionConstraintModify,constrainStatements);
+             }
           }
        }
        catch (SQLException sqle)
@@ -350,4 +408,29 @@
       }
       return returnValue;
    }
+   
+   private AnnotationConfiguration getConfiguration()
+   {
+      AnnotationConfiguration returnValue = new AnnotationConfiguration();
+      returnValue.addAnnotatedClass(Address.class);
+      returnValue.addAnnotatedClass(AddressEntity.class);
+      returnValue.addAnnotatedClass(Auditable.class);
+      returnValue.addAnnotatedClass(BankAccount.class);
+      returnValue.addAnnotatedClass(Bid.class);
+      returnValue.addAnnotatedClass(BillingDetails.class);
+      returnValue.addAnnotatedClass(CategorizedItem.class);
+      returnValue.addAnnotatedClass(CategorizedItemComponent.class);
+      returnValue.addAnnotatedClass(Category.class);
+      returnValue.addAnnotatedClass(Comment.class);
+      returnValue.addAnnotatedClass(CreditCard.class);
+      returnValue.addAnnotatedClass(CreditCardType.class);
+      returnValue.addAnnotatedClass(Item.class);
+      returnValue.addAnnotatedClass(ItemState.class);
+      returnValue.addAnnotatedClass(MonetaryAmount.class);
+      returnValue.addAnnotatedClass(Rating.class);
+      returnValue.addAnnotatedClass(Shipment.class);
+      returnValue.addAnnotatedClass(ShipmentState.class);
+      returnValue.addAnnotatedClass(User.class);
+      return returnValue;
+   }
 }



More information about the jboss-svn-commits mailing list