aboutsummaryrefslogtreecommitdiffstats
path: root/dblib/common/src/main/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java
diff options
context:
space:
mode:
Diffstat (limited to 'dblib/common/src/main/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java')
-rw-r--r--dblib/common/src/main/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java176
1 files changed, 0 insertions, 176 deletions
diff --git a/dblib/common/src/main/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java b/dblib/common/src/main/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java
deleted file mode 100644
index 0a67e8e..0000000
--- a/dblib/common/src/main/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * openecomp
- * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
- * ================================================================================
- * Licensed 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.
- * ============LICENSE_END=========================================================
- */
-
-/*
- * 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.tomcat.jdbc.pool;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.sql.SQLException;
-
-import javax.sql.XAConnection;
-/**
- * A ProxyConnection object is the bottom most interceptor that wraps an object of type
- * {@link PooledConnection}. The ProxyConnection intercepts three methods:
- * <ul>
- * <li>{@link java.sql.Connection#close()} - returns the connection to the pool. May be called multiple times.</li>
- * <li>{@link java.lang.Object#toString()} - returns a custom string for this object</li>
- * <li>{@link javax.sql.PooledConnection#getConnection()} - returns the underlying connection</li>
- * </ul>
- * By default method comparisons is done on a String reference level, unless the {@link PoolConfiguration#setUseEquals(boolean)} has been called
- * with a <code>true</code> argument.
- */
-public class ProxyConnection extends JdbcInterceptor {
-
- protected PooledConnection connection = null;
-
- protected ConnectionPool pool = null;
-
- public PooledConnection getConnection() {
- return connection;
- }
-
- public void setConnection(PooledConnection connection) {
- this.connection = connection;
- }
-
- public ConnectionPool getPool() {
- return pool;
- }
-
- public void setPool(ConnectionPool pool) {
- this.pool = pool;
- }
-
- protected ProxyConnection(ConnectionPool parent, PooledConnection con,
- boolean useEquals) {
- pool = parent;
- connection = con;
- setUseEquals(useEquals);
- }
-
- @Override
- public void reset(ConnectionPool parent, PooledConnection con) {
- this.pool = parent;
- this.connection = con;
- }
-
- public boolean isWrapperFor(Class<?> iface) {
- if (iface == XAConnection.class && connection.getXAConnection()!=null) {
- return true;
- } else {
- return (iface.isInstance(connection.getConnection()));
- }
- }
-
-
- public Object unwrap(Class<?> iface) throws SQLException {
- if (iface == PooledConnection.class) {
- return connection;
- }else if (iface == XAConnection.class) {
- return connection.getXAConnection();
- } else if (isWrapperFor(iface)) {
- return connection.getConnection();
- } else {
- throw new SQLException("Not a wrapper of "+iface.getName());
- }
- }
-
- @Override
- public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
- if (compare(ISCLOSED_VAL,method)) {
- return Boolean.valueOf(isClosed());
- }
- if (compare(CLOSE_VAL,method)) {
- if (connection==null) return null; //noop for already closed.
- PooledConnection poolc = this.connection;
- this.connection = null;
- pool.returnConnection(poolc);
- return null;
- } else if (compare(TOSTRING_VAL,method)) {
- return this.toString();
- } else if (compare(GETCONNECTION_VAL,method) && connection!=null) {
- return connection.getConnection();
- } else if (method.getDeclaringClass().equals(XAConnection.class)) {
- try {
- return method.invoke(connection.getXAConnection(),args);
- }catch (Throwable t) {
- if (t instanceof InvocationTargetException) {
- throw t.getCause() != null ? t.getCause() : t;
- } else {
- throw t;
- }
- }
- }
- if (isClosed()) throw new SQLException("Connection has already been closed.");
- if (compare(UNWRAP_VAL,method)) {
- return unwrap((Class<?>)args[0]);
- } else if (compare(ISWRAPPERFOR_VAL,method)) {
- return Boolean.valueOf(this.isWrapperFor((Class<?>)args[0]));
- }
- try {
- PooledConnection poolc = connection;
- if (poolc!=null) {
- return method.invoke(poolc.getConnection(),args);
- } else {
- throw new SQLException("Connection has already been closed.");
- }
- }catch (Throwable t) {
- if (t instanceof InvocationTargetException) {
- throw t.getCause() != null ? t.getCause() : t;
- } else {
- throw t;
- }
- }
- }
-
- public boolean isClosed() {
- return connection==null || connection.isDiscarded();
- }
-
- public PooledConnection getDelegateConnection() {
- return connection;
- }
-
- public ConnectionPool getParentPool() {
- return pool;
- }
-
- @Override
- public String toString() {
- return "ProxyConnection["+(connection!=null?connection.toString():"null")+"]";
- }
-
-}