You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by pa...@apache.org on 2019/01/11 14:19:15 UTC
svn commit: r1851054 - in /turbine/fulcrum/trunk/pool/src: changes/
java/org/apache/fulcrum/pool/
Author: painter
Date: Fri Jan 11 14:19:15 2019
New Revision: 1851054
URL: http://svn.apache.org/viewvc?rev=1851054&view=rev
Log:
Start conversion to generics, please review and give feedback
Modified:
turbine/fulcrum/trunk/pool/src/changes/changes.xml
turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/BoundedBuffer.java
turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolBuffer.java
turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolService.java
Modified: turbine/fulcrum/trunk/pool/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/pool/src/changes/changes.xml?rev=1851054&r1=1851053&r2=1851054&view=diff
==============================================================================
--- turbine/fulcrum/trunk/pool/src/changes/changes.xml (original)
+++ turbine/fulcrum/trunk/pool/src/changes/changes.xml Fri Jan 11 14:19:15 2019
@@ -24,7 +24,12 @@
</properties>
<body>
- <release version="1.0.5" date="in SVN">
+ <release version="1.0.6" date="in SVN">
+ <action dev="painter" type="update">
+ Move to generics
+ </action>
+ </release>
+ <release version="1.0.5" date="2019-01-11">
<action dev="painter" type="update">
Update test to use junit 5
</action>
Modified: turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/BoundedBuffer.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/BoundedBuffer.java?rev=1851054&r1=1851053&r2=1851054&view=diff
==============================================================================
--- turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/BoundedBuffer.java (original)
+++ turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/BoundedBuffer.java Fri Jan 11 14:19:15 2019
@@ -133,12 +133,13 @@ public class BoundedBuffer
*
* @return the oldest item from the buffer, or null if the buffer is empty.
*/
- public synchronized Object poll()
+ public synchronized <T> T poll()
{
if (usedSlots_ > 0)
{
--usedSlots_;
- Object old = array_[takePtr_];
+ @SuppressWarnings("unchecked")
+ T old = (T) array_[takePtr_];
array_[takePtr_] = null;
if (++takePtr_ >= array_.length)
takePtr_ = 0;
Modified: turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/DefaultPoolService.java?rev=1851054&r1=1851053&r2=1851054&view=diff
==============================================================================
--- turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/DefaultPoolService.java (original)
+++ turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/DefaultPoolService.java Fri Jan 11 14:19:15 2019
@@ -78,11 +78,11 @@ public class DefaultPoolService extends
* @return the instance.
* @throws PoolException if recycling fails.
*/
- public Object getInstance(String className) throws PoolException
+ public <T> T getInstance(String className) throws PoolException
{
try
{
- Object instance = pollInstance(className, null, null);
+ T instance = pollInstance(className, null, null);
return instance == null ? getFactory().getInstance(className) : instance;
}
catch (FactoryException fe)
@@ -183,17 +183,18 @@ public class DefaultPoolService extends
* Gets an instance of a specified class either from the pool or by instatiating
* from the class if the pool is empty.
*
+ * @param <T> type of the class
* @param clazz the class.
* @return the instance.
* @throws PoolException if recycling fails.
*/
@SuppressWarnings("unchecked")
- public Object getInstance(Class clazz) throws PoolException
+ public <T> T getInstance(Class<?> clazz) throws PoolException
{
try
{
- Object instance = pollInstance(clazz.getName(), null, null);
- return instance == null ? factoryService.getInstance(clazz) : instance;
+ T instance = pollInstance(clazz.getName(), null, null);
+ return instance == null ? (T) factoryService.getInstance(clazz) : instance;
}
catch (FactoryException fe)
{
@@ -211,11 +212,11 @@ public class DefaultPoolService extends
* @return the instance.
* @throws PoolException if recycling fails.
*/
- public Object getInstance(Class clazz, Object params[], String signature[]) throws PoolException
+ public <T> T getInstance(Class<?> clazz, Object params[], String signature[]) throws PoolException
{
try
{
- Object instance = pollInstance(clazz.getName(), params, signature);
+ T instance = pollInstance(clazz.getName(), params, signature);
// TODO There is a whacky .toString() on the clazz object,
// but otherwise it won't compile
@@ -349,7 +350,7 @@ public class DefaultPoolService extends
* @return the object or null.
* @throws PoolException if recycling fails.
*/
- private Object pollInstance(String className, Object[] params, String[] signature) throws PoolException
+ private <T> T pollInstance(String className, Object[] params, String[] signature) throws PoolException
{
PoolBuffer pool = (PoolBuffer) poolRepository.get(className);
return pool != null ? pool.poll(params, signature, factoryService) : null;
Modified: turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolBuffer.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolBuffer.java?rev=1851054&r1=1851053&r2=1851054&view=diff
==============================================================================
--- turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolBuffer.java (original)
+++ turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolBuffer.java Fri Jan 11 14:19:15 2019
@@ -46,7 +46,7 @@ public class PoolBuffer
private ArrayList<Recycler> recyclers;
/**
- * Contructs a new pool buffer with a specific capacity.
+ * Constructs a new pool buffer with a specific capacity.
*
* @param capacity a capacity.
*/
@@ -70,15 +70,15 @@ public class PoolBuffer
* Polls for an instance from the pool.
*
*
- * @param params object paramaters
+ * @param params object parameters
* @param signature signature of the class
* @param factoryService service to add
* @throws PoolException if service failed to be found
* @return an instance or null.
*/
- public Object poll(Object[] params, String[] signature, FactoryService factoryService) throws PoolException
+ public <T> T poll(Object[] params, String[] signature, FactoryService factoryService) throws PoolException
{
- Object instance = pool.poll();
+ T instance = pool.poll();
if (instance != null)
{
if (arrayCtorRecyclable)
Modified: turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolService.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolService.java?rev=1851054&r1=1851053&r2=1851054&view=diff
==============================================================================
--- turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolService.java (original)
+++ turbine/fulcrum/trunk/pool/src/java/org/apache/fulcrum/pool/PoolService.java Fri Jan 11 14:19:15 2019
@@ -50,23 +50,25 @@ public interface PoolService
* Gets an instance of a specified class either from the pool or by
* instantiating from the class if the pool is empty.
*
+ * @param <T> type of the instance
* @param clazz the class.
* @return the instance.
* @throws PoolException if recycling fails.
*/
- public Object getInstance(Class clazz) throws PoolException;
+ public <T> T getInstance(Class<?> clazz) throws PoolException;
/**
* Gets an instance of a specified class either from the pool or by
* instantiating from the class if the pool is empty.
*
+ * @param <T> type of the instance class
* @param clazz the class.
* @param params an array containing the parameters of the constructor.
* @param signature an array containing the signature of the constructor.
* @return the instance.
* @throws PoolException if recycling fails.
*/
- public Object getInstance(Class clazz, Object params[], String signature[]) throws PoolException;
+ public <T> T getInstance(Class<?> clazz, Object params[], String signature[]) throws PoolException;
/**
* Puts a used object back to the pool. Objects implementing the Recyclable