Author: tv
Date: Wed Sep 11 19:26:21 2013
New Revision: 1521999

URL: http://svn.apache.org/r1521999
Log:
- Refactor handling of annotated fields into AnnotationProcessor

Modified:
    
turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java

Modified: 
turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java
URL: 
http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java?rev=1521999&r1=1521998&r2=1521999&view=diff
==============================================================================
--- 
turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java
 (original)
+++ 
turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java
 Wed Sep 11 19:26:21 2013
@@ -21,7 +21,6 @@ package org.apache.turbine.services.asse
  */
 
 
-import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -34,13 +33,11 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.turbine.Turbine;
 import org.apache.turbine.TurbineConstants;
-import org.apache.turbine.annotation.InjectService;
+import org.apache.turbine.annotation.AnnotationProcessor;
 import org.apache.turbine.modules.Assembler;
 import org.apache.turbine.modules.Loader;
 import org.apache.turbine.services.InitializationException;
-import org.apache.turbine.services.ServiceManager;
 import org.apache.turbine.services.TurbineBaseService;
-import org.apache.turbine.services.TurbineServices;
 import org.apache.turbine.services.assemblerbroker.util.AssemblerFactory;
 import org.apache.turbine.util.TurbineException;
 
@@ -238,35 +235,7 @@ public class TurbineAssemblerBrokerServi
 
                 if (assembler != null)
                 {
-                    // Search for annotated fields and provide them with the 
appropriate
-                    // TurbineService
-                    ServiceManager manager = TurbineServices.getInstance();
-                    Field[] fields = assembler.getClass().getDeclaredFields();
-
-                    for (Field field : fields)
-                    {
-                        if (field.isAnnotationPresent(InjectService.class))
-                        {
-                            InjectService sa = 
field.getAnnotation(InjectService.class);
-                            Object service = manager.getService(sa.value()); 
// throws Exception on unknown service
-                            field.setAccessible(true);
-
-                            try
-                            {
-                                field.set(assembler, service);
-                            }
-                            catch (IllegalArgumentException e)
-                            {
-                                throw new TurbineException("Could not inject 
service "
-                                        + sa.value() + " into assembler " + 
assembler, e);
-                            }
-                            catch (IllegalAccessException e)
-                            {
-                                throw new TurbineException("Could not inject 
service "
-                                        + sa.value() + " into assembler " + 
assembler, e);
-                            }
-                        }
-                    }
+                    AnnotationProcessor.process(assembler);
 
                     if (isCaching)
                     {


Reply via email to