Package org.jboss.seam.microcontainer

Source Code of org.jboss.seam.microcontainer.DataSourceFactory

//$Id: DataSourceFactory.java,v 1.9 2006/12/16 02:58:11 nrichards Exp $
package org.jboss.seam.microcontainer;

import javax.transaction.TransactionManager;

import org.jboss.seam.log.LogProvider;
import org.jboss.seam.log.Logging;
import org.jboss.resource.adapter.jdbc.local.LocalTxDataSource;
import org.jboss.resource.connectionmanager.CachedConnectionManager;
import org.jboss.resource.connectionmanager.CachedConnectionManagerReference;
import org.jboss.seam.util.Naming;

/**
* A factory that configures and creates a JCA datasource
*
* @author Gavin King
*/
public class DataSourceFactory
{
   private static final LogProvider log = Logging.getLogProvider(DataSourceFactory.class);
  
   private LocalTxDataSource ds;
  
   private int maxSize = 20;
   private int minSize = 0;
   private int blockingTimeout = 30000;
   private int idleTimeout = 900000;
  
   private String connectionUrl;
   private String driverClass;
   private String userName;
   private String password;
   private int preparedStatementCacheSize;
   private String checkValidConnectionSql;
   private String jndiName;

  
   private TransactionManager transactionManager;
  
   public Object getDataSource() throws Exception
   {
     
      log.info("starting Datasource at JNDI name: " + jndiName);

      CachedConnectionManager ccm = new CachedConnectionManager();
      CachedConnectionManagerReference ccmr = new CachedConnectionManagerReference();
      ccmr.setCachedConnectionManager(ccm);
      ccmr.setTransactionManager(transactionManager);
     
      ds = new LocalTxDataSource();
      ds.setConnectionURL(connectionUrl);
      ds.setDriverClass(driverClass);
      ds.setUserName(userName);
      ds.setPassword(password);
      ds.setPreparedStatementCacheSize(preparedStatementCacheSize);
      ds.setCheckValidConnectionSQL(checkValidConnectionSql);
      ds.setMaxSize(maxSize);
      ds.setMinSize(minSize);
      ds.setBlockingTimeout(blockingTimeout);
      ds.setIdleTimeout(idleTimeout);
      ds.setTransactionManager(transactionManager);
      ds.setJndiName(jndiName);
      ds.setCachedConnectionManager(ccmr);
      ds.setInitialContextProperties(Naming.getInitialContextProperties());
      ds.start();
     
      return ds;
   }
  
   public int getBlockingTimeout()
   {
      return blockingTimeout;
   }

   public void setBlockingTimeout(int blockingTimeout)
   {
      this.blockingTimeout = blockingTimeout;
   }

   public int getIdleTimeout()
   {
      return idleTimeout;
   }

   public void setIdleTimeout(int idleTimeout)
   {
      this.idleTimeout = idleTimeout;
   }

   public int getMaxSize()
   {
      return maxSize;
   }

   public void setMaxSize(int maxSize)
   {
      this.maxSize = maxSize;
   }

   public int getMinSize()
   {
      return minSize;
   }

   public void setMinSize(int minSize)
   {
      this.minSize = minSize;
   }

   public String getConnectionUrl()
   {
      return connectionUrl;
   }

   public void setConnectionUrl(String connectionUrl)
   {
      this.connectionUrl = connectionUrl;
   }

   public String getDriverClass()
   {
      return driverClass;
   }

   public void setDriverClass(String driverClass)
   {
      this.driverClass = driverClass;
   }

   public String getPassword()
   {
      return password;
   }

   public void setPassword(String password)
   {
      this.password = password;
   }

   public String getUserName()
   {
      return userName;
   }

   public void setUserName(String userName)
   {
      this.userName = userName;
   }

   public int getPreparedStatementCacheSize()
   {
      return preparedStatementCacheSize;
   }

   public void setPreparedStatementCacheSize(int preparedStatementCacheSize)
   {
      this.preparedStatementCacheSize = preparedStatementCacheSize;
   }

   public String getCheckValidConnectionSql()
   {
      return checkValidConnectionSql;
   }

   public void setCheckValidConnectionSql(String checkValidConnectionSql)
   {
      this.checkValidConnectionSql = checkValidConnectionSql;
   }

   public String getJndiName()
   {
      return jndiName;
   }

   public void setJndiName(String jndiName)
   {
      this.jndiName = jndiName;
   }

   public TransactionManager getTransactionManager()
   {
      return transactionManager;
   }

   public void setTransactionManager(TransactionManager transactionManager)
   {
      this.transactionManager = transactionManager;
   }

}
TOP

Related Classes of org.jboss.seam.microcontainer.DataSourceFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.