/* * Use of this J2EE Connectors Sample Source Code file is governed by * the following modified BSD license: * * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * -Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * -Redistribution in binary form must reproduct the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Sun Microsystems, Inc. or the names of * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * This software is provided "AS IS," without a warranty of any kind. * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND * ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES OR LIABILITIES * SUFFERED BY LICENSEE AS A RESULT OF OR RELATING TO USE, MODIFICATION * OR DISTRIBUTION OF THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL * SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, * OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. * * You acknowledge that Software is not designed, licensed or intended * for use in the design, construction, operation or maintenance of any * nuclear facility. */ package com.sun.connector.blackbox; import javax.naming.Reference; import javax.resource.Referenceable; import javax.resource.ResourceException; import javax.resource.spi.ConnectionManager; import javax.resource.spi.ConnectionRequestInfo; import javax.resource.spi.ManagedConnectionFactory; import java.io.PrintWriter; import java.io.Serializable; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.SQLFeatureNotSupportedException; import java.util.logging.Logger; /** * @author Tony Ng */ public class JdbcDataSource_Tx implements DataSource, Serializable, Referenceable { private String desc; private ManagedConnectionFactory mcf; private ConnectionManager cm; private Reference reference; public JdbcDataSource_Tx(ManagedConnectionFactory mcf, ConnectionManager cm) { this.mcf = mcf; if (cm == null) { this.cm = new JdbcConnectionManager(); } else { this.cm = cm; } } public Connection getConnection() throws SQLException { try { return (Connection) cm.allocateConnection(mcf, null); } catch (ResourceException ex) { throw new SQLException(ex.getMessage()); } } public Connection getConnection(String username, String password) throws SQLException { try { ConnectionRequestInfo info = new JdbcConnectionRequestInfo(username, password); return (Connection) cm.allocateConnection(mcf, info); } catch (ResourceException ex) { throw new SQLException(ex.getMessage()); } } public int getLoginTimeout() throws SQLException { return DriverManager.getLoginTimeout(); } public void setLoginTimeout(int seconds) throws SQLException { DriverManager.setLoginTimeout(seconds); } public PrintWriter getLogWriter() throws SQLException { return DriverManager.getLogWriter(); } public void setLogWriter(PrintWriter out) throws SQLException { DriverManager.setLogWriter(out); } public Logger getParentLogger() throws SQLFeatureNotSupportedException{ throw new SQLFeatureNotSupportedException("Do not support Java 7 feature."); } public String getDescription() { return desc; } public void setDescription(String desc) { this.desc = desc; } public void setReference(Reference reference) { this.reference = reference; } public Reference getReference() { return reference; } public <T> T unwrap(Class<T> iface) throws SQLException { return null; } public boolean isWrapperFor(Class<?> iface) throws SQLException { return false; } }