⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 managedconnectionfactoryimpl.java

📁 RESIN 3.2 最新源码
💻 JAVA
字号:
package example;import java.io.*;import java.util.*;import javax.resource.spi.ResourceAdapter;import javax.resource.spi.ManagedConnectionFactory;import javax.resource.spi.ManagedConnection;import javax.resource.spi.ConnectionManager;import javax.resource.spi.ManagedConnectionMetaData;import javax.resource.spi.ConnectionRequestInfo;import javax.security.auth.Subject;/** * Main interface between Resin and the connector.  It's the * top-level SPI class for creating the SPI ManagedConnections. * * The resource configuration in Resin's web.xml will use bean-style * configuration to configure the ManagecConnectionFactory. */public class ManagedConnectionFactoryImpl implements ManagedConnectionFactory {  private String _name;  // A counter for the example to keep track of the underlying connections.  // Each ManagedConnectionImpl will get its own id.  private int _mcCount;    // A counter for the example to keep track of the user connections.  // Each ConnectionImpl will get its own id.  private int _cCount;  /**   * Sets the name for the connector   */  public void setName(String name)  {    _name = name;  }  /**   * Creates the application's view of the connection factory.   *   * The ConnectionFactory is the equivalent of the JDBC DataSource.   * Applications will use the ConnectionFactory to create connections.   *   * The connector can use any API that makes sense for it.  JDBC   * connectors will return a DataSource.  JMS connectors will return   * SessionFactory, etc.   *   * @param manager ConnectionManager provided by Resin gives access to   *   some application server resources.   */  public Object createConnectionFactory(ConnectionManager manager)  {    return new ConnectionFactoryImpl(this, manager);  }  /**   * Creates the SPI-side of a connection, like the <code>XAConnection</code> of   * JDBC.  Resin will use the returned <code>ManagedConnection</code>   * to create the application connections, manage transactions,   * and manage the pool.   *   * The <code>ConnectionRequestInfo</code> is not used in this example.   * When needed, the <code>ConnectionFactoryImpl</code> will create a   * <code>ConnectionRequestInfo</code> and pass it to Resin with   * the <code>allocateConnection</code> call.   *   * @param subject security identifier of the application requesting   *   the connection.   * @param reqInfo connection-specific configuration information   */  public ManagedConnection    createManagedConnection(Subject subject, ConnectionRequestInfo reqInfo)  {    return new ManagedConnectionImpl(_name + "-" + _mcCount++, this);  }  /**   * A connection pool method which lets the connector choose which   * idle connection are allowed to be reused for a request.   * It returns a connection from the set matching the subject and request   * info.   *   * Many connectors can just return the first connection, if it doesn't   * matter which connection is used.  However, the pool might contain   * connections with different configurations and subjects.  This method   * lets the connector return a connection that properly matches the   * request.   *   * @param set Resin's current pool of idle connections   * @param subject the application id asking for a connection   * @param reqInfo connector-specific information used to configure   *   the connection   *   * @return a connection matching the subject and reqInfo requirements or   *   null if none match   */  public ManagedConnection    matchManagedConnections(Set set,			    Subject subject,			    ConnectionRequestInfo reqInfo)  {    Iterator iter = set.iterator();    while (iter.hasNext()) {      ManagedConnectionImpl mConn = (ManagedConnectionImpl) iter.next();      // In this example, all connections are equivalent      return mConn;    }    return null;  }  /**   * This connection factory does not have a separate resource adapter.   *   * More complicated connection factories will have a   * separate ResourceAdapter object to share state among multiple   * connection factories and to manage threads, etc, using   * the application server.   */  public void setResourceAdapter(ResourceAdapter ra)  {  }  /**   * This connection factory does not have a separate resource adapter.   *   * More complicated connection factories will have a   * separate ResourceAdapter object to share state among multiple   * connection factories and to manage threads, etc, using   * the application server.   */  public ResourceAdapter getResourceAdapter()  {    return null;  }  /**   * createConnectionFactory with no arguments is for a connection factory   * outside of an application server.  Although most connection factories   * will implement it, Resin never uses it.   */  public Object createConnectionFactory()  {    throw new UnsupportedOperationException();  }  /**   * Logging should use JDK 1.4 java.util.logging.   */  public PrintWriter getLogWriter()  {    return null;  }  /**   * Logging should use JDK 1.4 java.util.logging.   */  public void setLogWriter(PrintWriter out)  {  }  /**   * Returns the connection name.   */  public String generateConnectionName()  {    return _name + "-" + _cCount++ + "-conn";  }  public String toString()  {    return "ManagedConnectionFactoryImpl[" + _name + "]";  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -