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)
{