You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ma...@apache.org on 2013/10/30 20:29:12 UTC

svn commit: r1537253 - in /commons/proper/pool/trunk/src: main/java/org/apache/commons/pool2/ test/java/org/apache/commons/pool2/ test/java/org/apache/commons/pool2/impl/ test/java/org/apache/commons/pool2/proxy/

Author: markt
Date: Wed Oct 30 19:29:11 2013
New Revision: 1537253

URL: http://svn.apache.org/r1537253
Log:
Break the cyclic dependency between o.a.c.pool2 and o.a.c.pool2.impl

Modified:
    commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/BaseKeyedPooledObjectFactory.java
    commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/BasePooledObjectFactory.java
    commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/TestBaseKeyedPoolableObjectFactory.java
    commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/TestBasePoolableObjectFactory.java
    commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/TestKeyedObjectPool.java
    commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java
    commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
    commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPoolClassLoaders.java
    commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestSoftRefOutOfMemory.java
    commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestSoftReferenceObjectPool.java
    commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/proxy/BaseTestProxiedObjectPool.java

Modified: commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/BaseKeyedPooledObjectFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/BaseKeyedPooledObjectFactory.java?rev=1537253&r1=1537252&r2=1537253&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/BaseKeyedPooledObjectFactory.java (original)
+++ commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/BaseKeyedPooledObjectFactory.java Wed Oct 30 19:29:11 2013
@@ -16,8 +16,6 @@
  */
 package org.apache.commons.pool2;
 
-import org.apache.commons.pool2.impl.DefaultPooledObject;
-
 /**
  * A base implementation of <code>KeyedPooledObjectFactory</code>.
  * <p>
@@ -46,9 +44,19 @@ public abstract class BaseKeyedPooledObj
     public abstract V create(K key)
         throws Exception;
 
+    /**
+     * Wrap the provided instance with an implementation of
+     * {@link PooledObject}.
+     *
+     * @param value the instance to wrap
+     *
+     * @return The provided instance, wrapped by a {@link PooledObject}
+     */
+    public abstract PooledObject<V> wrap(V value);
+
     @Override
     public PooledObject<V> makeObject(K key) throws Exception {
-        return new DefaultPooledObject<V>(create(key));
+        return wrap(create(key));
     }
 
     /**

Modified: commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/BasePooledObjectFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/BasePooledObjectFactory.java?rev=1537253&r1=1537252&r2=1537253&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/BasePooledObjectFactory.java (original)
+++ commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/BasePooledObjectFactory.java Wed Oct 30 19:29:11 2013
@@ -16,8 +16,6 @@
  */
 package org.apache.commons.pool2;
 
-import org.apache.commons.pool2.impl.DefaultPooledObject;
-
 /**
  * A base implementation of <code>PoolableObjectFactory</code>.
  * <p>
@@ -44,9 +42,19 @@ public abstract class BasePooledObjectFa
      */
     public abstract T create() throws Exception;
 
+    /**
+     * Wrap the provided instance with an implementation of
+     * {@link PooledObject}.
+     *
+     * @param obj the instance to wrap
+     *
+     * @return The provided instance, wrapped by a {@link PooledObject}
+     */
+    public abstract PooledObject<T> wrap(T obj);
+
     @Override
     public PooledObject<T> makeObject() throws Exception {
-        return new DefaultPooledObject<T>(create());
+        return wrap(create());
     }
 
     /**

Modified: commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/TestBaseKeyedPoolableObjectFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/TestBaseKeyedPoolableObjectFactory.java?rev=1537253&r1=1537252&r2=1537253&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/TestBaseKeyedPoolableObjectFactory.java (original)
+++ commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/TestBaseKeyedPoolableObjectFactory.java Wed Oct 30 19:29:11 2013
@@ -18,6 +18,7 @@ package org.apache.commons.pool2;
 
 import static org.junit.Assert.assertTrue;
 
+import org.apache.commons.pool2.impl.DefaultPooledObject;
 import org.junit.Test;
 
 /**
@@ -41,5 +42,9 @@ public class TestBaseKeyedPoolableObject
         public Object create(Object key) throws Exception {
             return null;
         }
+        @Override
+        public PooledObject<Object> wrap(Object value) {
+            return new DefaultPooledObject<Object>(value);
+        }
     }
 }
\ No newline at end of file

Modified: commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/TestBasePoolableObjectFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/TestBasePoolableObjectFactory.java?rev=1537253&r1=1537252&r2=1537253&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/TestBasePoolableObjectFactory.java (original)
+++ commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/TestBasePoolableObjectFactory.java Wed Oct 30 19:29:11 2013
@@ -18,6 +18,7 @@ package org.apache.commons.pool2;
 
 import static org.junit.Assert.assertTrue;
 
+import org.apache.commons.pool2.impl.DefaultPooledObject;
 import org.junit.Test;
 
 /**
@@ -40,5 +41,9 @@ public class TestBasePoolableObjectFacto
         public Object create() throws Exception {
             return null;
         }
+        @Override
+        public PooledObject<Object> wrap(Object value) {
+            return new DefaultPooledObject<Object>(value);
+        }
     }
 }

Modified: commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/TestKeyedObjectPool.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/TestKeyedObjectPool.java?rev=1537253&r1=1537252&r2=1537253&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/TestKeyedObjectPool.java (original)
+++ commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/TestKeyedObjectPool.java Wed Oct 30 19:29:11 2013
@@ -665,6 +665,10 @@ public abstract class TestKeyedObjectPoo
         public Object create(final Object key) throws Exception {
             return new Object();
         }
+        @Override
+        public PooledObject<Object> wrap(Object value) {
+            return new DefaultPooledObject<Object>(value);
+        }
     }
 
     protected static class FailingKeyedPooledObjectFactory implements KeyedPooledObjectFactory<Object,Object> {

Modified: commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java?rev=1537253&r1=1537252&r2=1537253&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java (original)
+++ commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java Wed Oct 30 19:29:11 2013
@@ -1784,6 +1784,10 @@ public class TestGenericKeyedObjectPool 
         public Object create(Object key) throws Exception {
             return null;
         }
+        @Override
+        public PooledObject<Object> wrap(Object value) {
+            return new DefaultPooledObject<Object>(value);
+        }
     }
 
 
@@ -1803,6 +1807,10 @@ public class TestGenericKeyedObjectPool 
             }
             return String.valueOf(key) + String.valueOf(counter);
         }
+        @Override
+        public PooledObject<Object> wrap(Object value) {
+            return new DefaultPooledObject<Object>(value);
+        }
     }
 }
 

Modified: commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java?rev=1537253&r1=1537252&r2=1537253&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java (original)
+++ commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java Wed Oct 30 19:29:11 2013
@@ -997,6 +997,10 @@ public class TestGenericObjectPool exten
             public TimeTest create() throws Exception {
                 return new TimeTest();
             }
+            @Override
+            public PooledObject<TimeTest> wrap(TimeTest value) {
+                return new DefaultPooledObject<TimeTest>(value);
+            }
             public long getCreateTime() {
                 return createTime;
             }
@@ -1940,6 +1944,10 @@ public class TestGenericObjectPool exten
         public Object create() throws Exception {
             return null;
         }
+        @Override
+        public PooledObject<Object> wrap(Object value) {
+            return new DefaultPooledObject<Object>(value);
+        }
     }
 
 
@@ -1950,6 +1958,10 @@ public class TestGenericObjectPool exten
         public Object create() throws Exception {
             return new Object();
         }
+        @Override
+        public PooledObject<Object> wrap(Object value) {
+            return new DefaultPooledObject<Object>(value);
+        }
 
         @Override
         public boolean validateObject(PooledObject<Object> obj) {

Modified: commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPoolClassLoaders.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPoolClassLoaders.java?rev=1537253&r1=1537252&r2=1537253&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPoolClassLoaders.java (original)
+++ commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPoolClassLoaders.java Wed Oct 30 19:29:11 2013
@@ -20,6 +20,7 @@ import java.net.URL;
 import java.net.URLClassLoader;
 
 import org.apache.commons.pool2.BasePooledObjectFactory;
+import org.apache.commons.pool2.PooledObject;
 
 import org.junit.Assert;
 import org.junit.Test;
@@ -101,6 +102,10 @@ public class TestGenericObjectPoolClassL
             return url;
         }
 
+        @Override
+        public PooledObject<URL> wrap(URL value) {
+            return new DefaultPooledObject<URL>(value);
+        }
     }
 
     private static class CustomClassLoader extends URLClassLoader {

Modified: commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestSoftRefOutOfMemory.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestSoftRefOutOfMemory.java?rev=1537253&r1=1537252&r2=1537253&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestSoftRefOutOfMemory.java (original)
+++ commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestSoftRefOutOfMemory.java Wed Oct 30 19:29:11 2013
@@ -213,6 +213,10 @@ public class TestSoftRefOutOfMemory {
             // is returned eliminated false failures.
             return new String(String.valueOf(counter));
         }
+        @Override
+        public PooledObject<String> wrap(String value) {
+            return new DefaultPooledObject<String>(value);
+        }
     }
 
     public static class LargePoolableObjectFactory extends BasePooledObjectFactory<String> {
@@ -230,6 +234,11 @@ public class TestSoftRefOutOfMemory {
             counter++;
             return String.valueOf(counter) + buffer;
         }
+
+        @Override
+        public PooledObject<String> wrap(String value) {
+            return new DefaultPooledObject<String>(value);
+        }
     }
 
     private static class OomeFactory extends BasePooledObjectFactory<String> {
@@ -254,6 +263,11 @@ public class TestSoftRefOutOfMemory {
         }
 
         @Override
+        public PooledObject<String> wrap(String value) {
+            return new DefaultPooledObject<String>(value);
+        }
+
+        @Override
         public boolean validateObject(PooledObject<String> p) {
             if (trigger.equals(OomeTrigger.VALIDATE)) {
                 throw new OutOfMemoryError();

Modified: commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestSoftReferenceObjectPool.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestSoftReferenceObjectPool.java?rev=1537253&r1=1537252&r2=1537253&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestSoftReferenceObjectPool.java (original)
+++ commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestSoftReferenceObjectPool.java Wed Oct 30 19:29:11 2013
@@ -18,6 +18,7 @@ package org.apache.commons.pool2.impl;
 
 import org.apache.commons.pool2.BasePooledObjectFactory;
 import org.apache.commons.pool2.ObjectPool;
+import org.apache.commons.pool2.PooledObject;
 import org.apache.commons.pool2.PooledObjectFactory;
 import org.apache.commons.pool2.TestBaseObjectPool;
 
@@ -58,5 +59,9 @@ public class TestSoftReferenceObjectPool
         public Object create() {
             return String.valueOf(counter++);
         }
+        @Override
+        public PooledObject<Object> wrap(Object value) {
+            return new DefaultPooledObject<Object>(value);
+        }
     }
 }

Modified: commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/proxy/BaseTestProxiedObjectPool.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/proxy/BaseTestProxiedObjectPool.java?rev=1537253&r1=1537252&r2=1537253&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/proxy/BaseTestProxiedObjectPool.java (original)
+++ commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/proxy/BaseTestProxiedObjectPool.java Wed Oct 30 19:29:11 2013
@@ -25,8 +25,10 @@ import java.io.StringWriter;
 
 import org.apache.commons.pool2.BasePooledObjectFactory;
 import org.apache.commons.pool2.ObjectPool;
+import org.apache.commons.pool2.PooledObject;
 import org.apache.commons.pool2.PooledObjectFactory;
 import org.apache.commons.pool2.impl.AbandonedConfig;
+import org.apache.commons.pool2.impl.DefaultPooledObject;
 import org.apache.commons.pool2.impl.GenericObjectPool;
 import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
 import org.junit.Before;
@@ -124,6 +126,10 @@ public abstract class BaseTestProxiedObj
         public TestObject create() throws Exception {
             return new TestObjectImpl();
         }
+        @Override
+        public PooledObject<TestObject> wrap(TestObject value) {
+            return new DefaultPooledObject<TestObject>(value);
+        }
     }