You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2007/01/05 21:20:48 UTC
svn commit: r493174 - in
/incubator/openejb/trunk/openejb3/container/openejb-core/src/main:
java/org/apache/openejb/resource/jdbc/ resources/META-INF/org.apache.openejb/
Author: dblevins
Date: Fri Jan 5 12:20:48 2007
New Revision: 493174
URL: http://svn.apache.org/viewvc?view=rev&rev=493174
Log:
Hacked the ability to not manage connections
Added:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JdbcUnmanagedConnection.java
Modified:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicManagedConnectionFactory.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JdbcManagedConnectionFactory.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicManagedConnectionFactory.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicManagedConnectionFactory.java?view=diff&rev=493174&r1=493173&r2=493174
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicManagedConnectionFactory.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicManagedConnectionFactory.java Fri Jan 5 12:20:48 2007
@@ -55,6 +55,9 @@
try {
JdbcConnectionRequestInfo request = (JdbcConnectionRequestInfo) connectionRequestInfo;
Connection connection = DriverManager.getConnection(jdbcUrl, request.getUserName(), request.getPassword());
+ if (managedConnectionFactory.isUnmanaged()){
+ return new JdbcUnmanagedConnection(managedConnectionFactory, connection, request);
+ }
return new JdbcManagedConnection(managedConnectionFactory, connection, request);
} catch (java.sql.SQLException e) {
throw (EISSystemException) new EISSystemException("Could not obtain a physical JDBC connection from the DriverManager").initCause(e);
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JdbcManagedConnectionFactory.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JdbcManagedConnectionFactory.java?view=diff&rev=493174&r1=493173&r2=493174
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JdbcManagedConnectionFactory.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JdbcManagedConnectionFactory.java Fri Jan 5 12:20:48 2007
@@ -40,13 +40,14 @@
private String defaultPassword;
private String url;
private String driver;
+ private boolean unmanaged;
public void init(java.util.Properties props) throws javax.resource.spi.ResourceAdapterInternalException {
defaultUserName = props.getProperty(EnvProps.USER_NAME);
defaultPassword = props.getProperty(EnvProps.PASSWORD);
url = props.getProperty(EnvProps.JDBC_URL);
driver = props.getProperty(EnvProps.JDBC_DRIVER);
-
+ unmanaged = props.getProperty("Unmanaged", "false").equalsIgnoreCase("true");
start();
}
@@ -80,6 +81,14 @@
public void setDriver(String driver) {
this.driver = driver;
+ }
+
+ public boolean isUnmanaged() {
+ return unmanaged;
+ }
+
+ public void setUnmanaged(boolean unmanaged) {
+ this.unmanaged = unmanaged;
}
/**
Added: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JdbcUnmanagedConnection.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JdbcUnmanagedConnection.java?view=auto&rev=493174
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JdbcUnmanagedConnection.java (added)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JdbcUnmanagedConnection.java Fri Jan 5 12:20:48 2007
@@ -0,0 +1,147 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.resource.jdbc;
+
+import javax.resource.spi.ManagedConnection;
+import javax.resource.spi.ManagedConnectionFactory;
+import javax.resource.spi.ConnectionEventListener;
+import javax.resource.spi.ConnectionRequestInfo;
+import javax.resource.spi.ManagedConnectionMetaData;
+import javax.resource.spi.ConnectionEvent;
+import javax.resource.spi.LocalTransaction;
+import javax.resource.ResourceException;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Set;
+import java.util.HashSet;
+import java.sql.Connection;
+import java.io.PrintWriter;
+
+public class JdbcUnmanagedConnection implements ManagedConnection {
+
+ private final JdbcManagedConnectionMetaData metaData;
+
+ private Connection sqlConn;
+ private PrintWriter logWriter;
+ private final UnmanagedConnectionRequestInfo connectionRequestInfo;
+
+ public JdbcUnmanagedConnection(ManagedConnectionFactory managedFactory, Connection sqlConn, JdbcConnectionRequestInfo rxInfo)
+ throws javax.resource.spi.ResourceAdapterInternalException {
+ connectionRequestInfo = new UnmanagedConnectionRequestInfo(rxInfo);
+ this.sqlConn = sqlConn;
+ try {
+ logWriter = managedFactory.getLogWriter();
+ } catch (ResourceException e) {
+ throw new RuntimeException(e);
+ }
+ try {
+ metaData = new JdbcManagedConnectionMetaData(sqlConn.getMetaData());
+ } catch (java.sql.SQLException sqlE) {
+ throw new javax.resource.spi.ResourceAdapterInternalException("Problem while attempting to access meta data from physical connection", ErrorCode.JDBC_0004);
+ }
+ }
+
+ public static class UnmanagedConnectionRequestInfo extends JdbcConnectionRequestInfo{
+ public UnmanagedConnectionRequestInfo(JdbcConnectionRequestInfo i) {
+ super(i.getUserName(),i.getPassword(), i.getJdbcDriver(), i.getJdbcUrl());
+ }
+
+ public boolean equals(Object other) {
+ return false;
+ }
+ }
+
+ protected Connection getSQLConnection() {
+ return sqlConn;
+ }
+
+ protected JdbcConnectionRequestInfo getRequestInfo() {
+ return connectionRequestInfo;
+ }
+
+ public void addConnectionEventListener(ConnectionEventListener listener) {
+ }
+
+ public void associateConnection(Object connection) throws ResourceException {
+ }
+
+ public void cleanup() throws ResourceException {
+ }
+
+ public void destroy() throws ResourceException {
+ }
+
+ /*
+ * Returns an application level connection handle in the form of a JdbcConnection object
+ * which implements the java.sql.Connection interface and wrappers the physical JDBC connection.
+ *
+ */
+ public Object getConnection(javax.security.auth.Subject subject, ConnectionRequestInfo cxRequestInfo) throws ResourceException {
+ return sqlConn;
+ }
+
+ public javax.resource.spi.LocalTransaction getLocalTransaction() throws ResourceException {
+ return new LocalTransaction(){
+ public void begin() throws ResourceException {
+ }
+
+ public void commit() throws ResourceException {
+ }
+
+ public void rollback() throws ResourceException {
+ }
+ };
+ }
+
+ public PrintWriter getLogWriter() throws ResourceException {
+ return logWriter;
+ }
+
+ public ManagedConnectionMetaData getMetaData() throws ResourceException {
+ return metaData;
+ }
+
+ public javax.transaction.xa.XAResource getXAResource() throws ResourceException {
+ throw new javax.resource.NotSupportedException("Method not implemented");
+ }
+
+ public void removeConnectionEventListener(ConnectionEventListener listener) {
+ }
+
+ public void setLogWriter(PrintWriter out) throws ResourceException {
+ logWriter = out;
+ }
+
+ protected void localTransactionCommitted() {
+ }
+
+ protected void localTransactionRolledback() {
+ }
+
+ protected void localTransactionStarted() {
+ }
+
+ protected void connectionErrorOccurred(JdbcConnection jdbcConn, java.sql.SQLException sqlE) {
+ }
+
+ protected void connectionClose(JdbcConnection jdbcConn) {
+ }
+
+ public String toString() {
+ return "JdbcUnmanagedConnection (" + sqlConn.toString() + ")";
+ }
+}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml?view=diff&rev=493174&r1=493173&r2=493174
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml Fri Jan 5 12:20:48 2007
@@ -272,6 +272,8 @@
#Password pass
Password
+
+ Unmanaged false
</ServiceProvider>
<!--