You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by tv...@apache.org on 2016/01/08 12:27:14 UTC

svn commit: r1723697 - in /turbine/core/trunk/src/java/org/apache/turbine/services: intake/IntakeTool.java localization/LocalizationTool.java pull/TurbinePullService.java pull/tools/UITool.java schedule/SchedulerTool.java session/SessionTool.java

Author: tv
Date: Fri Jan  8 11:27:14 2016
New Revision: 1723697

URL: http://svn.apache.org/viewvc?rev=1723697&view=rev
Log:
Add annotation processing to pull tools

Modified:
    turbine/core/trunk/src/java/org/apache/turbine/services/intake/IntakeTool.java
    turbine/core/trunk/src/java/org/apache/turbine/services/localization/LocalizationTool.java
    turbine/core/trunk/src/java/org/apache/turbine/services/pull/TurbinePullService.java
    turbine/core/trunk/src/java/org/apache/turbine/services/pull/tools/UITool.java
    turbine/core/trunk/src/java/org/apache/turbine/services/schedule/SchedulerTool.java
    turbine/core/trunk/src/java/org/apache/turbine/services/session/SessionTool.java

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/intake/IntakeTool.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/intake/IntakeTool.java?rev=1723697&r1=1723696&r2=1723697&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/intake/IntakeTool.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/intake/IntakeTool.java Fri Jan  8 11:27:14 2016
@@ -28,11 +28,12 @@ import java.util.Map;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.fulcrum.intake.IntakeException;
-import org.apache.fulcrum.intake.IntakeServiceFacade;
+import org.apache.fulcrum.intake.IntakeService;
 import org.apache.fulcrum.intake.Retrievable;
 import org.apache.fulcrum.intake.model.Group;
 import org.apache.fulcrum.parser.ValueParser;
 import org.apache.fulcrum.pool.Recyclable;
+import org.apache.turbine.annotation.TurbineService;
 import org.apache.turbine.services.pull.ApplicationTool;
 import org.apache.turbine.util.RunData;
 
@@ -60,7 +61,7 @@ public class IntakeTool
     public static final String INTAKE_GRP = "intake-grp";
 
     /** Groups from intake.xml */
-    protected HashMap<String, Group> groups;
+    protected HashMap<String, Group> groups = null;
 
     /** ValueParser instance */
     protected ValueParser pp;
@@ -70,26 +71,19 @@ public class IntakeTool
     private final StringBuilder groupSB = new StringBuilder(128);
 
     /** The cache of PullHelpers. **/
-    private final Map<String, IntakeTool.PullHelper> pullMap;
+    private Map<String, IntakeTool.PullHelper> pullMap = null;
+
+    /**
+     * The Intake service.
+     */
+    @TurbineService
+    private IntakeService intakeService;
 
     /**
      * Constructor
      */
     public IntakeTool()
     {
-        String[] groupNames = IntakeServiceFacade.getGroupNames();
-        int groupCount = 0;
-        if (groupNames != null)
-        {
-            groupCount = groupNames.length;
-        }
-        groups = new HashMap<String, Group>((int) (1.25 * groupCount + 1));
-        pullMap = new HashMap<String, IntakeTool.PullHelper>((int) (1.25 * groupCount + 1));
-
-        for (int i = groupCount - 1; i >= 0; i--)
-        {
-            pullMap.put(groupNames[i], new PullHelper(groupNames[i]));
-        }
     }
 
     /**
@@ -98,20 +92,37 @@ public class IntakeTool
     @Override
     public void init(Object runData)
     {
+        if (groups == null) // Initialize only once
+        {
+            String[] groupNames = intakeService.getGroupNames();
+            int groupCount = 0;
+            if (groupNames != null)
+            {
+                groupCount = groupNames.length;
+            }
+            groups = new HashMap<String, Group>((int) (1.25 * groupCount + 1));
+            pullMap = new HashMap<String, IntakeTool.PullHelper>((int) (1.25 * groupCount + 1));
+
+            for (int i = groupCount - 1; i >= 0; i--)
+            {
+                pullMap.put(groupNames[i], new PullHelper(groupNames[i]));
+            }
+        }
+
         this.pp = ((RunData) runData).getParameters();
 
         String[] groupKeys = pp.getStrings(INTAKE_GRP);
         String[] groupNames = null;
         if (groupKeys == null || groupKeys.length == 0)
         {
-            groupNames = IntakeServiceFacade.getGroupNames();
+            groupNames = intakeService.getGroupNames();
         }
         else
         {
             groupNames = new String[groupKeys.length];
             for (int i = groupKeys.length - 1; i >= 0; i--)
             {
-                groupNames[i] = IntakeServiceFacade.getGroupName(groupKeys[i]);
+                groupNames[i] = intakeService.getGroupName(groupKeys[i]);
             }
 
         }
@@ -120,7 +131,7 @@ public class IntakeTool
         {
             try
             {
-                List<Group> foundGroups = IntakeServiceFacade.getGroup(groupNames[i])
+                List<Group> foundGroups = intakeService.getGroup(groupNames[i])
                     .getObjects(pp);
 
                 if (foundGroups != null)
@@ -289,14 +300,14 @@ public class IntakeTool
         {
             Group g = null;
 
-            String inputKey = IntakeServiceFacade.getGroupKey(groupName) + key;
+            String inputKey = intakeService.getGroupKey(groupName) + key;
             if (groups.containsKey(inputKey))
             {
                 g = groups.get(inputKey);
             }
             else if (create)
             {
-                g = IntakeServiceFacade.getGroup(groupName);
+                g = intakeService.getGroup(groupName);
                 groups.put(inputKey, g);
                 g.init(key, pp);
             }
@@ -316,7 +327,7 @@ public class IntakeTool
 
             try
             {
-                String inputKey = IntakeServiceFacade.getGroupKey(groupName)
+                String inputKey = intakeService.getGroupKey(groupName)
                         + obj.getQueryKey();
                 if (groups.containsKey(inputKey))
                 {
@@ -324,7 +335,7 @@ public class IntakeTool
                 }
                 else
                 {
-                    g = IntakeServiceFacade.getGroup(groupName);
+                    g = intakeService.getGroup(groupName);
                     groups.put(inputKey, g);
                 }
 
@@ -405,11 +416,11 @@ public class IntakeTool
     {
         if (groupName == null)
         {
-            throw new IntakeException("IntakeServiceFacade.get: groupName == null");
+            throw new IntakeException("intakeService.get: groupName == null");
         }
         if (key == null)
         {
-            throw new IntakeException("IntakeServiceFacade.get: key == null");
+            throw new IntakeException("intakeService.get: key == null");
         }
 
         PullHelper ph = get(groupName);
@@ -446,7 +457,7 @@ public class IntakeTool
 
             try
             {
-                IntakeServiceFacade.releaseGroup(group);
+                intakeService.releaseGroup(group);
             }
             catch (IntakeException ie)
             {
@@ -513,7 +524,7 @@ public class IntakeTool
         {
             try
             {
-                IntakeServiceFacade.releaseGroup(group);
+                intakeService.releaseGroup(group);
             }
             catch (IntakeException ie)
             {

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/localization/LocalizationTool.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/localization/LocalizationTool.java?rev=1723697&r1=1723696&r2=1723697&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/localization/LocalizationTool.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/localization/LocalizationTool.java Fri Jan  8 11:27:14 2016
@@ -25,8 +25,7 @@ import java.util.MissingResourceExceptio
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.fulcrum.localization.LocalizationService;
-import org.apache.turbine.services.InstantiationException;
-import org.apache.turbine.services.TurbineServices;
+import org.apache.turbine.annotation.TurbineService;
 import org.apache.turbine.services.pull.ApplicationTool;
 import org.apache.turbine.util.RunData;
 /**
@@ -41,8 +40,11 @@ public class LocalizationTool implements
 {
     /** Logging */
     private static Log log = LogFactory.getLog(LocalizationTool.class);
+
     /** Fulcrum Localization component */
+    @TurbineService
     private LocalizationService localizationService;
+
     /**
      * The language and country information parsed from the request's
      * <code>Accept-Language</code> header.  Reset on each request.
@@ -50,27 +52,6 @@ public class LocalizationTool implements
     protected Locale locale;
 
     /**
-     * Lazy load the LocalizationService.
-     * @return a fulcrum LocalizationService
-     */
-    public LocalizationService getLocalizationService()
-    {
-        if (localizationService == null)
-        {
-            try
-            {
-                localizationService = (LocalizationService)TurbineServices.getInstance()
-                    .getService(LocalizationService.ROLE);
-            }
-            catch (Exception e)
-            {
-                throw new InstantiationException("Problem looking up Localization Service:"+e.getMessage());
-            }
-        }
-        return localizationService;
-    }
-
-    /**
      * Creates a new instance.  Used by <code>PullService</code>.
      */
     public LocalizationTool()
@@ -95,7 +76,7 @@ public class LocalizationTool implements
     {
         try
         {
-            return getLocalizationService().getString(getBundleName(null), getLocale(), key);
+            return localizationService.getString(getBundleName(null), getLocale(), key);
         }
         catch (MissingResourceException noKey)
         {
@@ -125,7 +106,7 @@ public class LocalizationTool implements
      */
     protected String getBundleName(Object data)
     {
-        return getLocalizationService().getDefaultBundleName();
+        return localizationService.getDefaultBundleName();
     }
 
     /**
@@ -138,8 +119,7 @@ public class LocalizationTool implements
      */
     public String format(String key, Object... args)
     {
-        return getLocalizationService()
-                .format(getBundleName(null), getLocale(), key, args);
+        return localizationService.format(getBundleName(null), getLocale(), key, args);
     }
 
     // ApplicationTool implementation
@@ -155,7 +135,7 @@ public class LocalizationTool implements
         {
             // Pull necessary information out of RunData while we have
             // a reference to it.
-            locale = getLocalizationService().getLocale(((RunData) data).getRequest());
+            locale = localizationService.getLocale(((RunData) data).getRequest());
         }
     }
 

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/pull/TurbinePullService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/pull/TurbinePullService.java?rev=1723697&r1=1723696&r2=1723697&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/pull/TurbinePullService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/pull/TurbinePullService.java Fri Jan  8 11:27:14 2016
@@ -31,12 +31,12 @@ import org.apache.commons.logging.LogFac
 import org.apache.fulcrum.pool.PoolService;
 import org.apache.fulcrum.security.model.turbine.TurbineUserManager;
 import org.apache.turbine.Turbine;
+import org.apache.turbine.annotation.AnnotationProcessor;
 import org.apache.turbine.om.security.User;
 import org.apache.turbine.pipeline.PipelineData;
 import org.apache.turbine.services.InitializationException;
 import org.apache.turbine.services.TurbineBaseService;
 import org.apache.turbine.services.TurbineServices;
-import org.apache.turbine.services.velocity.TurbineVelocity;
 import org.apache.turbine.services.velocity.VelocityService;
 import org.apache.turbine.util.RunData;
 import org.apache.velocity.context.Context;
@@ -205,7 +205,7 @@ public class TurbinePullService
             setInit(true);
 
             // Do _NOT_ move this before the setInit(true)
-            velocity = TurbineVelocity.getService();
+            velocity = (VelocityService)TurbineServices.getInstance().getService(VelocityService.SERVICE_NAME);
 
             if (velocity != null)
             {
@@ -218,8 +218,7 @@ public class TurbinePullService
         }
         catch (Exception e)
         {
-            throw new InitializationException(
-                "TurbinePullService failed to initialize", e);
+            throw new InitializationException("TurbinePullService failed to initialize", e);
         }
     }
 
@@ -309,7 +308,7 @@ public class TurbinePullService
     }
 
     /**
-     * Retrieve the tool names and classes for the tools definied
+     * Retrieve the tool names and classes for the tools defined
      * in the configuration file with the prefix given.
      *
      * @param toolConfig The part of the configuration describing some tools
@@ -938,11 +937,13 @@ public class TurbinePullService
      */
     private void refreshGlobalTools()
     {
-        for (Iterator<ToolData> it = globalTools.iterator(); it.hasNext();)
+        if (globalTools != null)
         {
-            ToolData toolData = it.next();
-            Object tool = globalContext.get(toolData.toolName);
-            refreshTool(tool, null);
+            for (ToolData toolData : globalTools)
+            {
+                Object tool = globalContext.get(toolData.toolName);
+                refreshTool(tool, null);
+            }
         }
     }
 
@@ -969,14 +970,16 @@ public class TurbinePullService
      */
     private void releaseTools(Context context, List<ToolData> tools)
     {
-        for (Iterator<ToolData> it = tools.iterator(); it.hasNext();)
+        if (tools != null)
         {
-            ToolData toolData = it.next();
-            Object tool = context.remove(toolData.toolName);
-
-            if (tool != null)
+            for (ToolData toolData : tools)
             {
-                pool.putInstance(tool);
+                Object tool = context.remove(toolData.toolName);
+
+                if (tool != null)
+                {
+                    pool.putInstance(tool);
+                }
             }
         }
     }
@@ -992,6 +995,8 @@ public class TurbinePullService
     private void initTool(Object tool, Object param)
         throws Exception
     {
+        AnnotationProcessor.process(tool);
+
         if (param instanceof PipelineData)
         {
             if (tool instanceof PipelineDataApplicationTool)

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/pull/tools/UITool.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/pull/tools/UITool.java?rev=1723697&r1=1723696&r2=1723697&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/pull/tools/UITool.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/pull/tools/UITool.java Fri Jan  8 11:27:14 2016
@@ -21,10 +21,10 @@ package org.apache.turbine.services.pull
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.turbine.annotation.TurbineService;
 import org.apache.turbine.om.security.User;
 import org.apache.turbine.pipeline.PipelineData;
 import org.apache.turbine.services.pull.ApplicationTool;
-import org.apache.turbine.services.ui.TurbineUI;
 import org.apache.turbine.services.ui.UIService;
 import org.apache.turbine.util.RunData;
 import org.apache.turbine.util.ServerData;
@@ -77,12 +77,18 @@ public class UITool implements Applicati
     private String skinName;
 
     /**
+     * The UI service.
+     */
+    @TurbineService
+    private UIService uiService;
+
+    /**
      * Refresh the tool.
      */
     @Override
     public void refresh()
     {
-        TurbineUI.refresh(getSkin());
+        uiService.refresh(getSkin());
         log.debug("UITool refreshed for skin: " + getSkin());
     }
 
@@ -93,7 +99,7 @@ public class UITool implements Applicati
      */
     public String[] getSkinNames()
     {
-        return TurbineUI.getSkinNames();
+        return uiService.getSkinNames();
     }
 
     /**
@@ -107,7 +113,7 @@ public class UITool implements Applicati
      */
     public String getWebappSkinName()
     {
-        return TurbineUI.getWebappSkinName();
+        return uiService.getWebappSkinName();
     }
 
     /**
@@ -124,7 +130,7 @@ public class UITool implements Applicati
      */
     public String get(String key)
     {
-        return TurbineUI.get(getSkin(), key);
+        return uiService.get(getSkin(), key);
     }
 
     /**
@@ -142,7 +148,7 @@ public class UITool implements Applicati
      */
     public void setSkin()
     {
-        skinName = TurbineUI.getWebappSkinName();
+        skinName = uiService.getWebappSkinName();
     }
 
     /**
@@ -235,7 +241,7 @@ public class UITool implements Applicati
      */
     public String image(String imageId, ServerData serverData)
     {
-        return TurbineUI.image(getSkin(), imageId, serverData);
+        return uiService.image(getSkin(), imageId, serverData);
     }
 
     /**
@@ -247,7 +253,7 @@ public class UITool implements Applicati
      */
     public String image(String imageId)
     {
-        return TurbineUI.image(getSkin(), imageId);
+        return uiService.image(getSkin(), imageId);
     }
 
     /**
@@ -284,7 +290,7 @@ public class UITool implements Applicati
      */
     public String getStylecss(ServerData serverData)
     {
-        return TurbineUI.getStylecss(getSkin(), serverData);
+        return uiService.getStylecss(getSkin(), serverData);
     }
 
     /**
@@ -295,7 +301,7 @@ public class UITool implements Applicati
      */
     public String getStylecss()
     {
-        return TurbineUI.getStylecss(getSkin());
+        return uiService.getStylecss(getSkin());
     }
 
     /**
@@ -332,7 +338,7 @@ public class UITool implements Applicati
      */
     public String getScript(String filename, ServerData serverData)
     {
-        return TurbineUI.getScript(getSkin(), filename, serverData);
+        return uiService.getScript(getSkin(), filename, serverData);
     }
 
     /**
@@ -344,7 +350,7 @@ public class UITool implements Applicati
      */
     public String getScript(String filename)
     {
-        return TurbineUI.getScript(getSkin(), filename);
+        return uiService.getScript(getSkin(), filename);
     }
 
     /**

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/schedule/SchedulerTool.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/schedule/SchedulerTool.java?rev=1723697&r1=1723696&r2=1723697&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/schedule/SchedulerTool.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/schedule/SchedulerTool.java Fri Jan  8 11:27:14 2016
@@ -25,7 +25,7 @@ import java.util.List;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.turbine.services.TurbineServices;
+import org.apache.turbine.annotation.TurbineService;
 import org.apache.turbine.services.pull.ApplicationTool;
 import org.apache.turbine.util.TurbineException;
 
@@ -41,13 +41,19 @@ public class SchedulerTool implements Ap
     private static Log log = LogFactory.getLog(ScheduleService.LOGGER_NAME);
 
     /**
+     * The scheduler service.
+     */
+    @TurbineService
+    private ScheduleService schedulerService;
+
+    /**
      * Initialize the pull tool
      */
     @Override
     public void init(Object data)
     {
-        if (!TurbineServices.getInstance().isRegistered(
-                ScheduleService.SERVICE_NAME))
+        // Rely on injection
+        if (schedulerService == null)
         {
             log.error("You can not use the SchedulerTool unless you enable "
                     +"the Scheduler Service!!!!");
@@ -70,7 +76,7 @@ public class SchedulerTool implements Ap
      */
     public List<? extends JobEntry> getScheduledJobs()
     {
-        return TurbineScheduler.listJobs();
+        return schedulerService.listJobs();
     }
 
     /**
@@ -79,7 +85,7 @@ public class SchedulerTool implements Ap
      */
     public boolean isEnabled()
     {
-        return TurbineScheduler.isEnabled();
+        return schedulerService.isEnabled();
     }
 
     /**
@@ -94,7 +100,7 @@ public class SchedulerTool implements Ap
 
         try
         {
-            je = TurbineScheduler.getJob(Integer.parseInt(jobId));
+            je = schedulerService.getJob(Integer.parseInt(jobId));
         }
         catch (TurbineException e)
         {

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/session/SessionTool.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/session/SessionTool.java?rev=1723697&r1=1723696&r2=1723697&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/session/SessionTool.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/session/SessionTool.java Fri Jan  8 11:27:14 2016
@@ -25,6 +25,7 @@ import java.util.Collection;
 
 import javax.servlet.http.HttpSession;
 
+import org.apache.turbine.annotation.TurbineService;
 import org.apache.turbine.om.security.User;
 import org.apache.turbine.services.pull.ApplicationTool;
 
@@ -37,6 +38,12 @@ import org.apache.turbine.services.pull.
 public class SessionTool
         implements ApplicationTool
 {
+    /**
+     * The session service.
+     */
+    @TurbineService
+    private SessionService sessionService;
+
     @Override
     public void init(Object o)
     {
@@ -56,7 +63,7 @@ public class SessionTool
      */
     public Collection<HttpSession> getActiveSessions()
     {
-        return TurbineSession.getActiveSessions();
+        return sessionService.getActiveSessions();
     }
 
     /**
@@ -67,7 +74,7 @@ public class SessionTool
      */
     public void addSession(HttpSession session)
     {
-        TurbineSession.addSession(session);
+        sessionService.addSession(session);
     }
 
     /**
@@ -78,7 +85,7 @@ public class SessionTool
      */
     public void removeSession(HttpSession session)
     {
-        TurbineSession.removeSession(session);
+        sessionService.removeSession(session);
     }
 
     /**
@@ -94,7 +101,7 @@ public class SessionTool
      */
     public boolean isUserLoggedIn(User user)
     {
-        return TurbineSession.isUserLoggedIn(user);
+        return sessionService.isUserLoggedIn(user);
     }
 
     /**
@@ -106,7 +113,7 @@ public class SessionTool
      */
     public Collection<User> getActiveUsers()
     {
-        return TurbineSession.getActiveUsers();
+        return sessionService.getActiveUsers();
     }
 
     /**
@@ -117,7 +124,7 @@ public class SessionTool
      */
     public User getUserFromSession(HttpSession session)
     {
-        return TurbineSession.getUserFromSession(session);
+        return sessionService.getUserFromSession(session);
     }
 
     /**
@@ -129,6 +136,6 @@ public class SessionTool
      */
     public Collection<HttpSession> getSessionsForUser(User user)
     {
-        return TurbineSession.getSessionsForUser(user);
+        return sessionService.getSessionsForUser(user);
     }
 }