Author: hlship
Date: Thu Apr  7 21:16:56 2011
New Revision: 1090019

URL: http://svn.apache.org/viewvc?rev=1090019&view=rev
Log:
TAP5-853: Copy annotations from implementation class (if known) to proxy class

Modified:
    
tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ModuleImpl.java

Modified: 
tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ModuleImpl.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ModuleImpl.java?rev=1090019&r1=1090018&r2=1090019&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ModuleImpl.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ModuleImpl.java
 Thu Apr  7 21:16:56 2011
@@ -103,6 +103,11 @@ public class ModuleImpl implements Modul
      */
     private final static ConcurrentBarrier BARRIER = new ConcurrentBarrier();
 
+    /** "Magic" method related to Externalizable that allows the Proxy object 
to replace itself with the token. */
+    private static final MethodDescription WRITE_REPLACE = new 
MethodDescription(Modifier.PRIVATE, "java.lang.Object",
+            "writeReplace", null, new String[]
+            { ObjectStreamException.class.getName() });
+
     public ModuleImpl(InternalRegistry registry, ServiceActivityTracker 
tracker, ModuleDef moduleDef,
             ClassFactory classFactory, PlasticProxyFactory proxyFactory, 
Logger logger)
     {
@@ -488,13 +493,8 @@ public class ModuleImpl implements Modul
         return createProxyInstance(creator, token, serviceInterface, 
resources.getImplementationClass(), toString);
     }
 
-    /** "Magic" method related to Externalizable that allows the Proxy object 
to replace itself with the token. */
-    private static final MethodDescription WRITE_REPLACE = new 
MethodDescription(Modifier.PRIVATE, "java.lang.Object",
-            "writeReplace", null, new String[]
-            { ObjectStreamException.class.getName() });
-
     private Object createProxyInstance(final ObjectCreator creator, final 
ServiceProxyToken token,
-            final Class serviceInterface, Class serviceImplementation, final 
String description)
+            final Class serviceInterface, final Class serviceImplementation, 
final String description)
     {
         ClassInstantiator instantiator = 
proxyFactory.createProxy(serviceInterface, new PlasticClassTransformer()
         {
@@ -540,16 +540,10 @@ public class ModuleImpl implements Modul
                     }
                 });
 
-                /*
-                 * TODO:
-                 * if (serviceImplementation != null)
-                 * {
-                 * 
classFab.copyClassAnnotationsFromDelegate(serviceImplementation);
-                 * 
classFab.copyMethodAnnotationsFromDelegate(serviceInterface, 
serviceImplementation);
-                 * }
-                 */
-
                 plasticClass.addToString(description);
+
+                if (serviceImplementation != null)
+                    plasticClass.copyAnnotations(serviceImplementation);
             }
         });
 


Reply via email to