commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mben...@apache.org
Subject svn commit: r979754 - in /commons/proper/proxy/branches/version-2.0-work/core: pom.xml src/main/java/org/apache/commons/proxy2/invoker/recorder/InvocationRecorder.java src/test/java/org/apache/commons/proxy2/util/AbstractTestCase.java
Date Tue, 27 Jul 2010 15:40:21 GMT
Author: mbenson
Date: Tue Jul 27 15:40:21 2010
New Revision: 979754

URL: http://svn.apache.org/viewvc?rev=979754&view=rev
Log:
use lang3 TypeUtils in commons-proxy core

Modified:
    commons/proper/proxy/branches/version-2.0-work/core/pom.xml
    commons/proper/proxy/branches/version-2.0-work/core/src/main/java/org/apache/commons/proxy2/invoker/recorder/InvocationRecorder.java
    commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/util/AbstractTestCase.java

Modified: commons/proper/proxy/branches/version-2.0-work/core/pom.xml
URL: http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/core/pom.xml?rev=979754&r1=979753&r2=979754&view=diff
==============================================================================
--- commons/proper/proxy/branches/version-2.0-work/core/pom.xml (original)
+++ commons/proper/proxy/branches/version-2.0-work/core/pom.xml Tue Jul 27 15:40:21 2010
@@ -73,10 +73,10 @@
             <optional>true</optional>
         </dependency>
         <dependency>
-            <groupId>commons-lang</groupId>
-            <artifactId>commons-lang</artifactId>
-            <version>2.3</version>
-            <scope>test</scope>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>3.0-SNAPSHOT</version>
+            <optional>true</optional>
         </dependency>
         <dependency>
             <groupId>jmock</groupId>

Modified: commons/proper/proxy/branches/version-2.0-work/core/src/main/java/org/apache/commons/proxy2/invoker/recorder/InvocationRecorder.java
URL: http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/core/src/main/java/org/apache/commons/proxy2/invoker/recorder/InvocationRecorder.java?rev=979754&r1=979753&r2=979754&view=diff
==============================================================================
--- commons/proper/proxy/branches/version-2.0-work/core/src/main/java/org/apache/commons/proxy2/invoker/recorder/InvocationRecorder.java
(original)
+++ commons/proper/proxy/branches/version-2.0-work/core/src/main/java/org/apache/commons/proxy2/invoker/recorder/InvocationRecorder.java
Tue Jul 27 15:40:21 2010
@@ -17,15 +17,14 @@
 
 package org.apache.commons.proxy2.invoker.recorder;
 
+import org.apache.commons.lang3.reflect.TypeUtils;
 import org.apache.commons.proxy2.Invoker;
 import org.apache.commons.proxy2.ProxyFactory;
 import org.apache.commons.proxy2.ProxyUtils;
 import org.apache.commons.proxy2.invoker.RecordedInvocation;
 
 import java.lang.reflect.Method;
-import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
-import java.lang.reflect.TypeVariable;
 import java.util.LinkedList;
 import java.util.List;
 
@@ -103,7 +102,8 @@ public class InvocationRecorder
         public Object invoke( Object o, Method method, Object[] args ) throws Throwable
         {
             recordedInvocations.add(new RecordedInvocation(method, args));
-            final Class<?> returnType = getReturnType(targetType, method);
+            final Class<?> returnType = TypeUtils.getRawType(method.getGenericReturnType(),
targetType);
+            //what to do if returnType is null?
             return proxy(method.getGenericReturnType(), returnType);
         }
     }
@@ -116,58 +116,4 @@ public class InvocationRecorder
         recordedInvocations.clear();
     }
 
-    /**
-     * Get the raw return type of a method qualified with regard to a particular target type.
-     * @param enclosingType
-     * @param method
-     * @return {@link Class} instance
-     * @throws Exception
-     */
-    public static Class<?> getReturnType( Type enclosingType, Method method ) throws
Exception
-    {
-        Type returnType = method.getGenericReturnType();
-        if( returnType instanceof Class<?> )
-        {
-            return ( Class<?> ) returnType;
-        }
-        else if( returnType instanceof TypeVariable<?> )
-        {
-            return resolveVariable(enclosingType, ( TypeVariable<?> ) returnType);
-        }
-        else if( returnType instanceof ParameterizedType )
-        {
-            return ( Class<?> ) ( ( ParameterizedType ) returnType ).getRawType();
-        }
-        return null;
-    }
-
-    /**
-     * Resolve the raw type of a type variable against a particular owning/inheriting type.
-     * @param enclosingType
-     * @param typeVar
-     * @return {@link Class} instance
-     * @throws Exception
-     */
-    public static Class<?> resolveVariable( Type enclosingType, TypeVariable<?>
typeVar ) throws Exception
-    {
-        if( enclosingType instanceof ParameterizedType )
-        {
-            ParameterizedType pt = ( ParameterizedType ) enclosingType;
-            final Class<?> rawType = ( Class<?> ) pt.getRawType();
-            TypeVariable<?>[] typeParameters = rawType.getTypeParameters();
-            for( int i = 0; i < typeParameters.length; i++ )
-            {
-                TypeVariable<?> typeParameter = typeParameters[i];
-                if( typeParameter == typeVar )
-                {
-                    return ( Class<?> ) pt.getActualTypeArguments()[i];
-                }
-            }
-        }
-        else if( enclosingType instanceof Class<?> )
-        {
-            return resolveVariable(( ( Class<?> ) enclosingType ).getGenericSuperclass(),
typeVar);
-        }
-        return null;
-    }
 }

Modified: commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/util/AbstractTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/util/AbstractTestCase.java?rev=979754&r1=979753&r2=979754&view=diff
==============================================================================
--- commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/util/AbstractTestCase.java
(original)
+++ commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/util/AbstractTestCase.java
Tue Jul 27 15:40:21 2010
@@ -1,10 +1,11 @@
 package org.apache.commons.proxy2.util;
 
 import junit.framework.TestCase;
-import org.apache.commons.lang.SerializationUtils;
 
 import java.io.Serializable;
 
+import org.apache.commons.lang3.SerializationUtils;
+
 /**
  * @author James Carman
  * @since 1.1



Mime
View raw message