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 2021/02/06 16:54:04 UTC

svn commit: r1886259 [1/2] - in /turbine/core/trunk/src: java/org/apache/turbine/ java/org/apache/turbine/annotation/ java/org/apache/turbine/modules/ java/org/apache/turbine/modules/actions/ java/org/apache/turbine/modules/screens/ java/org/apache/tur...

Author: tv
Date: Sat Feb  6 16:54:03 2021
New Revision: 1886259

URL: http://svn.apache.org/viewvc?rev=1886259&view=rev
Log:
Generic (Eclipse-) cleanup: Modernize code

Modified:
    turbine/core/trunk/src/java/org/apache/turbine/Turbine.java
    turbine/core/trunk/src/java/org/apache/turbine/TurbineConstants.java
    turbine/core/trunk/src/java/org/apache/turbine/annotation/AnnotationProcessor.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/ActionEvent.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/actions/InitContextsAction.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/screens/JSONScreen.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONScreen.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONSecureAnnotatedScreen.java
    turbine/core/trunk/src/java/org/apache/turbine/om/OMTool.java
    turbine/core/trunk/src/java/org/apache/turbine/om/security/DefaultUserImpl.java
    turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultLoginValve.java
    turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultPipelineData.java
    turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSessionTimeoutValve.java
    turbine/core/trunk/src/java/org/apache/turbine/pipeline/TurbinePipeline.java
    turbine/core/trunk/src/java/org/apache/turbine/services/BaseInitableBroker.java
    turbine/core/trunk/src/java/org/apache/turbine/services/BaseService.java
    turbine/core/trunk/src/java/org/apache/turbine/services/BaseServiceBroker.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaActionFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaBaseFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaLayoutFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaNavigationFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaPageFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScheduledJobFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScreenFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonActionFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonLayoutFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonNavigationFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonPageFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonScreenFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/intake/IntakeTool.java
    turbine/core/trunk/src/java/org/apache/turbine/services/jsp/TurbineJspService.java
    turbine/core/trunk/src/java/org/apache/turbine/services/naming/TurbineNamingService.java
    turbine/core/trunk/src/java/org/apache/turbine/services/pull/TurbinePullService.java
    turbine/core/trunk/src/java/org/apache/turbine/services/pull/util/SessionData.java
    turbine/core/trunk/src/java/org/apache/turbine/services/rundata/DefaultTurbineRunData.java
    turbine/core/trunk/src/java/org/apache/turbine/services/rundata/TurbineRunDataService.java
    turbine/core/trunk/src/java/org/apache/turbine/services/schedule/AbstractSchedulerService.java
    turbine/core/trunk/src/java/org/apache/turbine/services/schedule/JobQueue.java
    turbine/core/trunk/src/java/org/apache/turbine/services/schedule/QuartzSchedulerService.java
    turbine/core/trunk/src/java/org/apache/turbine/services/schedule/TurbineNonPersistentSchedulerService.java
    turbine/core/trunk/src/java/org/apache/turbine/services/security/DefaultUserManager.java
    turbine/core/trunk/src/java/org/apache/turbine/services/security/SecurityService.java
    turbine/core/trunk/src/java/org/apache/turbine/services/security/UserManager.java
    turbine/core/trunk/src/java/org/apache/turbine/services/session/TurbineSessionService.java
    turbine/core/trunk/src/java/org/apache/turbine/services/template/BaseTemplateEngineService.java
    turbine/core/trunk/src/java/org/apache/turbine/services/template/TurbineTemplateService.java
    turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/BaseMapper.java
    turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/ClassMapper.java
    turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/LayoutTemplateMapper.java
    turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/ScreenDefaultTemplateMapper.java
    turbine/core/trunk/src/java/org/apache/turbine/services/ui/TurbineUIService.java
    turbine/core/trunk/src/java/org/apache/turbine/services/urlmapper/MappedTemplateLink.java
    turbine/core/trunk/src/java/org/apache/turbine/services/urlmapper/TurbineURLMapperService.java
    turbine/core/trunk/src/java/org/apache/turbine/services/urlmapper/model/URLMappingContainer.java
    turbine/core/trunk/src/java/org/apache/turbine/services/velocity/TurbineVelocityService.java
    turbine/core/trunk/src/java/org/apache/turbine/util/FormMessage.java
    turbine/core/trunk/src/java/org/apache/turbine/util/FormMessages.java
    turbine/core/trunk/src/java/org/apache/turbine/util/LocaleUtils.java
    turbine/core/trunk/src/java/org/apache/turbine/util/SecurityCheck.java
    turbine/core/trunk/src/java/org/apache/turbine/util/TurbineConfig.java
    turbine/core/trunk/src/java/org/apache/turbine/util/TurbineException.java
    turbine/core/trunk/src/java/org/apache/turbine/util/TurbineXmlConfig.java
    turbine/core/trunk/src/java/org/apache/turbine/util/template/HtmlPageAttributes.java
    turbine/core/trunk/src/java/org/apache/turbine/util/template/TemplateInfo.java
    turbine/core/trunk/src/java/org/apache/turbine/util/template/TemplateSecurityCheck.java
    turbine/core/trunk/src/java/org/apache/turbine/util/uri/TemplateURI.java
    turbine/core/trunk/src/java/org/apache/turbine/util/uri/TurbineURI.java
    turbine/core/trunk/src/java/org/apache/turbine/util/velocity/VelocityHtmlEmail.java
    turbine/core/trunk/src/test/org/apache/turbine/ConfigurationTest.java
    turbine/core/trunk/src/test/org/apache/turbine/TurbineTest.java
    turbine/core/trunk/src/test/org/apache/turbine/annotation/AnnotationProcessorTest.java
    turbine/core/trunk/src/test/org/apache/turbine/modules/ActionLoaderTest.java
    turbine/core/trunk/src/test/org/apache/turbine/om/MockRetrieverFactory.java
    turbine/core/trunk/src/test/org/apache/turbine/pipeline/DefaultLoginValveTest.java
    turbine/core/trunk/src/test/org/apache/turbine/pipeline/DefaultSessionTimeoutValveTest.java
    turbine/core/trunk/src/test/org/apache/turbine/pipeline/DefaultSessionValidationValveTest.java
    turbine/core/trunk/src/test/org/apache/turbine/pipeline/DetermineActionValveTest.java
    turbine/core/trunk/src/test/org/apache/turbine/pipeline/DetermineTargetValveTest.java
    turbine/core/trunk/src/test/org/apache/turbine/pipeline/ExecutePageValveTest.java
    turbine/core/trunk/src/test/org/apache/turbine/pipeline/PipelineTest.java
    turbine/core/trunk/src/test/org/apache/turbine/services/jsonrpc/JsonrpcServicelTest.java
    turbine/core/trunk/src/test/org/apache/turbine/services/localization/BarBundle_en_US.java
    turbine/core/trunk/src/test/org/apache/turbine/services/pull/tools/UIToolTest.java
    turbine/core/trunk/src/test/org/apache/turbine/services/urlmapper/TurbineURLMapperYAMLServiceTest.java
    turbine/core/trunk/src/test/org/apache/turbine/test/BaseTestCase.java
    turbine/core/trunk/src/test/org/apache/turbine/test/BaseTurbineTest.java
    turbine/core/trunk/src/test/org/apache/turbine/test/HsqlDB.java
    turbine/core/trunk/src/test/org/apache/turbine/test/TestComponent.java
    turbine/core/trunk/src/test/org/apache/turbine/testcontainer/BuildContainerWithDockerfileTest.java
    turbine/core/trunk/src/test/org/apache/turbine/testcontainer/UserManagerWithContainerTest.java
    turbine/core/trunk/src/test/org/apache/turbine/util/template/HtmlPageAttributesTest.java
    turbine/core/trunk/src/test/org/apache/turbine/util/uri/TurbineURITest.java

Modified: turbine/core/trunk/src/java/org/apache/turbine/Turbine.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/Turbine.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/Turbine.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/Turbine.java Sat Feb  6 16:54:03 2021
@@ -365,7 +365,7 @@ public class Turbine extends HttpServlet
      * Checks configuraton style, resolves the location of the configuration and
      * loads it to internal {@link Configuration} object
      * ({@link #configuration}).
-     * 
+     *
      * Allows reading from a {@link CombinedConfigurationBuilder} xml configuration file.
      *
      * @param config
@@ -764,7 +764,7 @@ public class Turbine extends HttpServlet
             try
             {
                 // Perform turbine specific initialization below.
-                Map<Class<?>, Object> runDataMap = new HashMap<Class<?>, Object>();
+                Map<Class<?>, Object> runDataMap = new HashMap<>();
                 runDataMap.put(RunData.class, pipelineData);
                 // put the data into the pipeline
                 pipelineData.put(RunData.class, runDataMap);

Modified: turbine/core/trunk/src/java/org/apache/turbine/TurbineConstants.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/TurbineConstants.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/TurbineConstants.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/TurbineConstants.java Sat Feb  6 16:54:03 2021
@@ -221,7 +221,7 @@ public interface TurbineConstants
 	String DEFAULT_HTML_CONTENT_TYPE = "text/html";
 	String DEFAULT_TEXT_CONTENT_TYPE = "text/plain";
 	String DEFAULT_CSS_CONTENT_TYPE = "text/css";
-	
+
 	/** Default Language property */
 	String LOCALE_DEFAULT_LANGUAGE_KEY = "locale.default.language";
 

Modified: turbine/core/trunk/src/java/org/apache/turbine/annotation/AnnotationProcessor.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/annotation/AnnotationProcessor.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/annotation/AnnotationProcessor.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/annotation/AnnotationProcessor.java Sat Feb  6 16:54:03 2021
@@ -51,7 +51,7 @@ public class AnnotationProcessor
     private static Logger log = LogManager.getLogger(AnnotationProcessor.class);
 
     /** Annotation cache */
-    private static ConcurrentMap<String, Annotation[]> annotationCache = new ConcurrentHashMap<String, Annotation[]>();
+    private static ConcurrentMap<String, Annotation[]> annotationCache = new ConcurrentHashMap<>();
 
     /**
      * Get cached annotations for field, class or method

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/ActionEvent.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/ActionEvent.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/ActionEvent.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/ActionEvent.java Sat Feb  6 16:54:03 2021
@@ -119,7 +119,7 @@ public abstract class ActionEvent implem
 	/**
 	 * Cache for the methods to invoke
 	 */
-	private ConcurrentMap<String, Method> methodCache = new ConcurrentHashMap<String, Method>();
+	private ConcurrentMap<String, Method> methodCache = new ConcurrentHashMap<>();
 
 	/**
 	 * Retrieve a method of the given name and signature. The value is cached.

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/actions/InitContextsAction.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/actions/InitContextsAction.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/actions/InitContextsAction.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/actions/InitContextsAction.java Sat Feb  6 16:54:03 2021
@@ -68,7 +68,7 @@ public class InitContextsAction implemen
         // used by the InitialContext class to create a new context
         // instance.
 
-        Hashtable<String, Properties> contextPropsList = new Hashtable<String, Properties>();
+        Hashtable<String, Properties> contextPropsList = new Hashtable<>();
         for (Iterator<String> contextKeys = conf.getKeys("context."); contextKeys.hasNext();)
         {
             String key = contextKeys.next();

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/screens/JSONScreen.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/screens/JSONScreen.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/screens/JSONScreen.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/screens/JSONScreen.java Sat Feb  6 16:54:03 2021
@@ -132,10 +132,12 @@ public class JSONScreen extends RawScree
         // Process the request
         Object json_res = jsonRpcService.processCall(cdata, json_bridge, request);
 
-        PrintWriter out = new PrintWriter(
-                new OutputStreamWriter(data.getResponse().getOutputStream(), charset));
-        out.print(json_res.toString());
-        out.flush();
-        out.close();
+        try (PrintWriter out = new PrintWriter(
+                new OutputStreamWriter(
+                    data.getResponse().getOutputStream(), charset)))
+        {
+            out.print(json_res.toString());
+            out.flush();
+        }
     }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONScreen.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONScreen.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONScreen.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONScreen.java Sat Feb  6 16:54:03 2021
@@ -41,13 +41,13 @@ import org.slf4j.LoggerFactory;
  * <p>Here is an example from a subclass:
  *
  * <code>
- * 
+ *
  *
  * public void doOutput(PipelineData pipelineData) throws Exception
  * {
  *     RunData data = pipelineData.getRunData();
  *     JSONStrategy strategy = null;
- *     
+ *
  *     try
  *     {
  *        strategy = new XYStrategy();
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  *          String msg = new JSONObject().put("error", e.getMessage()).toString();
  *          data.setMessage( msg );
  *       }
- *     
+ *
  *     super.doOutput(data);
  * }
  * </code>
@@ -74,7 +74,7 @@ public class PlainJSONScreen extends Raw
     protected static final String JSON_TYPE = "application/json;charset=utf-8";
 
     protected final static int BUFFER_SIZE = 4096;
-    
+
     static final Logger log = LoggerFactory.getLogger(PlainJSONScreen.class);
 
     /** Injected service instance */
@@ -103,14 +103,16 @@ public class PlainJSONScreen extends Raw
         RunData data = pipelineData.getRunData();
         // read in json!
         Charset charset = StandardCharsets.UTF_8; //request.getCharacterEncoding();
-        
+
         String json_res = data.getMessage();
 
         log.debug( "json_res output: {}", json_res );
-        PrintWriter out = new PrintWriter(
-                new OutputStreamWriter(data.getResponse().getOutputStream(),charset));
-        out.print(json_res.toString());
-        out.flush();
-        out.close();
+        try (PrintWriter out = new PrintWriter(
+                new OutputStreamWriter(
+                    data.getResponse().getOutputStream(),charset)))
+        {
+            out.print(json_res.toString());
+            out.flush();
+        }
     }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONSecureAnnotatedScreen.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONSecureAnnotatedScreen.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONSecureAnnotatedScreen.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONSecureAnnotatedScreen.java Sat Feb  6 16:54:03 2021
@@ -30,7 +30,7 @@ import org.apache.turbine.util.RunData;
 
 public class PlainJSONSecureAnnotatedScreen extends PlainJSONScreen
 {
-    
+
     /**
      * This method overrides the method in JSONScreen to perform a security
      * check prior to producing the output.
@@ -48,12 +48,12 @@ public class PlainJSONSecureAnnotatedScr
     }
 
     /**
-     * Use this method to perform the necessary security check with Turbine annotations {@link TurbineRequiredRole} in 
+     * Use this method to perform the necessary security check with Turbine annotations {@link TurbineRequiredRole} in
      * a newly overridden {@link #doOutput(PipelineData)} method.
      *
      * @param pipelineData Turbine information.
      * @return <code>true</code> if the user is authorized to access the screen, by default it is required ACL is populated.
-     * If {@link TurbineRequiredRole} is not set, it is allowed by default 
+     * If {@link TurbineRequiredRole} is not set, it is allowed by default
      * @throws Exception A generic exception.
      */
     protected boolean isAuthorized(PipelineData pipelineData) throws Exception {

Modified: turbine/core/trunk/src/java/org/apache/turbine/om/OMTool.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/om/OMTool.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/om/OMTool.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/om/OMTool.java Sat Feb  6 16:54:03 2021
@@ -47,7 +47,7 @@ public class OMTool implements Applicati
 
     /** The cache of PullHelpers. **/
     private ConcurrentMap<String, OMTool.PullHelper> pullMap =
-            new ConcurrentHashMap<String, OMTool.PullHelper>();
+            new ConcurrentHashMap<>();
 
     /**
      *  The Factory responsible for retrieving the
@@ -61,7 +61,7 @@ public class OMTool implements Applicati
      */
     public OMTool() throws Exception
     {
-        omMap = new ConcurrentHashMap<String, Object>();
+        omMap = new ConcurrentHashMap<>();
         String className = Turbine.getConfiguration().getString("tool.om.factory");
         this.omFactory = (RetrieverFactory)Class.forName(className).newInstance();
     }

Modified: turbine/core/trunk/src/java/org/apache/turbine/om/security/DefaultUserImpl.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/om/security/DefaultUserImpl.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/om/security/DefaultUserImpl.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/om/security/DefaultUserImpl.java Sat Feb  6 16:54:03 2021
@@ -68,7 +68,7 @@ public class DefaultUserImpl implements
         super();
         setUserDelegate( user );
         setCreateDate(new Date());
-        tempStorage = new HashMap<String, Object>(10);
+        tempStorage = new HashMap<>(10);
         setHasLoggedIn(Boolean.FALSE);
     }
 
@@ -459,7 +459,7 @@ public class DefaultUserImpl implements
 
             if (permStorage == null)
             {
-                permStorage = new HashMap<String, Object>();
+                permStorage = new HashMap<>();
             }
         }
 
@@ -492,7 +492,7 @@ public class DefaultUserImpl implements
     {
         if (tempStorage == null)
         {
-            tempStorage = new HashMap<String, Object>();
+            tempStorage = new HashMap<>();
         }
         return tempStorage;
     }

Modified: turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultLoginValve.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultLoginValve.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultLoginValve.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultLoginValve.java Sat Feb  6 16:54:03 2021
@@ -120,7 +120,7 @@ public class DefaultLoginValve
                 {
                     // copy keys into a new list, so we can clear the session
                     // and not get ConcurrentModificationException
-                    List<String> nameList = new ArrayList<String>();
+                    List<String> nameList = new ArrayList<>();
                     while (names.hasMoreElements())
                     {
                         nameList.add(names.nextElement());

Modified: turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultPipelineData.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultPipelineData.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultPipelineData.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultPipelineData.java Sat Feb  6 16:54:03 2021
@@ -44,7 +44,7 @@ import org.apache.turbine.util.RunData;
 public class DefaultPipelineData implements PipelineData
 {
     private final Map<Class<?>, Map<Class<?>, ? super Object>> map =
-        new HashMap<Class<?>, Map<Class<?>, ? super Object>>();
+        new HashMap<>();
 
     /**
      * Put a configured map of objects into the pipeline data object

Modified: turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSessionTimeoutValve.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSessionTimeoutValve.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSessionTimeoutValve.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSessionTimeoutValve.java Sat Feb  6 16:54:03 2021
@@ -36,8 +36,8 @@ import org.apache.turbine.util.TurbineEx
  * @author <a href="mailto:mpoeschl@marmot.at">Martin Poeschl</a>
  * @author <a href="mailto:peter@courcoux.biz">Peter Courcoux</a>
  * @version $Id$
- * 
- * No replacement. Delegate session timeout to the container e.g. in web.xml, which allows to create a session at any place. 
+ *
+ * No replacement. Delegate session timeout to the container e.g. in web.xml, which allows to create a session at any place.
  */
 @Deprecated
 public class DefaultSessionTimeoutValve

Modified: turbine/core/trunk/src/java/org/apache/turbine/pipeline/TurbinePipeline.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/pipeline/TurbinePipeline.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/pipeline/TurbinePipeline.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/pipeline/TurbinePipeline.java Sat Feb  6 16:54:03 2021
@@ -62,12 +62,12 @@ public class TurbinePipeline
     /**
      * The set of Valves associated with this Pipeline.
      */
-    private CopyOnWriteArrayList<Valve> valves = new CopyOnWriteArrayList<Valve>();
+    private CopyOnWriteArrayList<Valve> valves = new CopyOnWriteArrayList<>();
 
     /**
      * The per-thread execution state for processing through this pipeline.
      */
-    private ThreadLocal<Iterator<Valve>> state = new ThreadLocal<Iterator<Valve>>();
+    private ThreadLocal<Iterator<Valve>> state = new ThreadLocal<>();
 
     /**
      * @see org.apache.turbine.pipeline.Pipeline#initialize()
@@ -137,7 +137,7 @@ public class TurbinePipeline
      */
     protected void setValves(Valve[] valves)
     {
-        this.valves = new CopyOnWriteArrayList<Valve>(valves);
+        this.valves = new CopyOnWriteArrayList<>(valves);
     }
 
     /**

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/BaseInitableBroker.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/BaseInitableBroker.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/BaseInitableBroker.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/BaseInitableBroker.java Sat Feb  6 16:54:03 2021
@@ -60,14 +60,14 @@ public abstract class BaseInitableBroker
         implements InitableBroker
 {
     /** A repository of Initable instances. */
-    protected Hashtable<String, Initable> initables = new Hashtable<String, Initable>();
+    protected Hashtable<String, Initable> initables = new Hashtable<>();
 
     /**
      * Names of classes being early-initialized are pushed onto this
      * stack.  A name appearing twice indicates a circular dependency
      * chain.
      */
-    protected Stack<String> stack = new Stack<String>();
+    protected Stack<String> stack = new Stack<>();
 
     /** Logging */
     private final Logger log = LogManager.getLogger(this.getClass());

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/BaseService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/BaseService.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/BaseService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/BaseService.java Sat Feb  6 16:54:03 2021
@@ -54,6 +54,7 @@ public class BaseService
      *
      * @param broker The ServiceBroker that instantiated this object.
      */
+    @Override
     public void setServiceBroker(ServiceBroker broker)
     {
         this.serviceBroker = broker;
@@ -64,6 +65,7 @@ public class BaseService
      *
      * @param name The name of this Service.
      */
+    @Override
     public void setName(String name)
     {
         this.name = name;
@@ -74,6 +76,7 @@ public class BaseService
      *
      * @return The name of this Service.
      */
+    @Override
     public String getName()
     {
         return name;
@@ -94,6 +97,7 @@ public class BaseService
      *
      * @return The Properties of this Service.
      */
+    @Override
     public Properties getProperties()
     {
         return ConfigurationConverter.getProperties(getConfiguration());
@@ -104,6 +108,7 @@ public class BaseService
      *
      * @return The Configuration of this Service.
      */
+    @Override
     public Configuration getConfiguration()
     {
         if (name == null)

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/BaseServiceBroker.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/BaseServiceBroker.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/BaseServiceBroker.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/BaseServiceBroker.java Sat Feb  6 16:54:03 2021
@@ -60,12 +60,12 @@ public abstract class BaseServiceBroker
     /**
      * Mapping of Service names to class names, keep order.
      */
-    private final Map<String, Class<?>> mapping = new LinkedHashMap<String, Class<?>>();
+    private final Map<String, Class<?>> mapping = new LinkedHashMap<>();
 
     /**
      * A repository of Service instances.
      */
-    private final ConcurrentHashMap<String, Service> services = new ConcurrentHashMap<String, Service>();
+    private final ConcurrentHashMap<String, Service> services = new ConcurrentHashMap<>();
 
     /**
      * Lock access during service initialization
@@ -102,7 +102,7 @@ public abstract class BaseServiceBroker
      * the requirement of having init(Object) all
      * together.
      */
-    private final ConcurrentHashMap<String, Object> serviceObjects = new ConcurrentHashMap<String, Object>();
+    private final ConcurrentHashMap<String, Object> serviceObjects = new ConcurrentHashMap<>();
 
     /** Logging */
     private static final Logger log = LogManager.getLogger(BaseServiceBroker.class);
@@ -116,7 +116,7 @@ public abstract class BaseServiceBroker
     /**
      * mapping from service names to instances of TurbineServiceProviders
      */
-    private final ConcurrentHashMap<String, Service> serviceProviderInstanceMap = new ConcurrentHashMap<String, Service>();
+    private final ConcurrentHashMap<String, Service> serviceProviderInstanceMap = new ConcurrentHashMap<>();
 
     /**
      * Default constructor, protected as to only be usable by subclasses.
@@ -246,7 +246,7 @@ public abstract class BaseServiceBroker
     {
         // we need to temporarily store the earlyInit flags to avoid
         // ConcurrentModificationExceptions
-        Map<String, String> earlyInitFlags = new LinkedHashMap<String, String>();
+        Map<String, String> earlyInitFlags = new LinkedHashMap<>();
 
         /*
          * These keys returned in an order that corresponds
@@ -336,7 +336,7 @@ public abstract class BaseServiceBroker
      */
     public Iterator<String> getServiceNames(String prefix)
     {
-        Set<String> keys = new LinkedHashSet<String>(mapping.keySet());
+        Set<String> keys = new LinkedHashSet<>(mapping.keySet());
         for(Iterator<String> key = keys.iterator(); key.hasNext();)
         {
             if (!key.next().startsWith(prefix))
@@ -500,7 +500,7 @@ public abstract class BaseServiceBroker
          * this will fix the problem for now.
          */
 
-        ArrayList<String> reverseServicesList = new ArrayList<String>();
+        ArrayList<String> reverseServicesList = new ArrayList<>();
 
         for (Iterator<String> serviceNames = getServiceNames(); serviceNames.hasNext();)
         {

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=1886259&r1=1886258&r2=1886259&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 Sat Feb  6 16:54:03 2021
@@ -104,9 +104,9 @@ public class TurbineAssemblerBrokerServi
 
         log.info("Registering {} {} factories.", Integer.valueOf(names.size()), type);
 
-        for (Iterator<Object> it = names.iterator(); it.hasNext(); )
+        for (Object name2 : names)
         {
-            String factory = (String) it.next();
+            String factory = (String) name2;
             try
             {
                 @SuppressWarnings("unchecked")
@@ -139,7 +139,7 @@ public class TurbineAssemblerBrokerServi
     public void init()
         throws InitializationException
     {
-        factories = new HashMap<Class<?>, List<?>>();
+        factories = new HashMap<>();
 
         try
         {
@@ -171,8 +171,8 @@ public class TurbineAssemblerBrokerServi
                 .getInt(TurbineConstants.MODULE_CACHE_SIZE_KEY,
                         TurbineConstants.MODULE_CACHE_SIZE_DEFAULT);
 
-            assemblerCache = new ConcurrentHashMap<String, Assembler>(cacheSize);
-            loaderCache = new ConcurrentHashMap<Class<?>, Loader<? extends Assembler>>(cacheSize);
+            assemblerCache = new ConcurrentHashMap<>(cacheSize);
+            loaderCache = new ConcurrentHashMap<>(cacheSize);
         }
 
         setInit(true);

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaActionFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaActionFactory.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaActionFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaActionFactory.java Sat Feb  6 16:54:03 2021
@@ -42,6 +42,7 @@ public class JavaActionFactory
      * @param name name of the requested Assembler
      * @return an Assembler
      */
+    @Override
     public Action getAssembler(String name)
     {
         return getAssembler(Action.PREFIX, name);
@@ -52,6 +53,7 @@ public class JavaActionFactory
      *
      * @return a Loader
      */
+    @Override
     public Loader<Action> getLoader()
     {
         return ActionLoader.getInstance();
@@ -62,6 +64,7 @@ public class JavaActionFactory
      *
      * @return a class
      */
+    @Override
     public Class<Action> getManagedClass()
     {
         return Action.class;

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaBaseFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaBaseFactory.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaBaseFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaBaseFactory.java Sat Feb  6 16:54:03 2021
@@ -52,7 +52,7 @@ public abstract class JavaBaseFactory<T
      * A cache for previously obtained Class instances, which we keep in order
      * to reduce the Class.forName() overhead (which can be sizable).
      */
-    private final ConcurrentHashMap<String, Class<T>> classCache = new ConcurrentHashMap<String, Class<T>>();
+    private final ConcurrentHashMap<String, Class<T>> classCache = new ConcurrentHashMap<>();
 
     /**
      * Get an Assembler.

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaLayoutFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaLayoutFactory.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaLayoutFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaLayoutFactory.java Sat Feb  6 16:54:03 2021
@@ -42,6 +42,7 @@ public class JavaLayoutFactory
      * @param name name of the requested Assembler
      * @return an Assembler
      */
+    @Override
     public Layout getAssembler(String name)
     {
         return getAssembler(Layout.PREFIX, name);
@@ -63,6 +64,7 @@ public class JavaLayoutFactory
      *
      * @return a class
      */
+    @Override
     public Class<Layout> getManagedClass()
     {
         return Layout.class;

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaNavigationFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaNavigationFactory.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaNavigationFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaNavigationFactory.java Sat Feb  6 16:54:03 2021
@@ -42,6 +42,7 @@ public class JavaNavigationFactory
      * @param name name of the requested Assembler
      * @return an Assembler
      */
+    @Override
     public Navigation getAssembler(String name)
     {
         return getAssembler(Navigation.PREFIX, name);
@@ -63,6 +64,7 @@ public class JavaNavigationFactory
      *
      * @return a class
      */
+    @Override
     public Class<Navigation> getManagedClass()
     {
         return Navigation.class;

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaPageFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaPageFactory.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaPageFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaPageFactory.java Sat Feb  6 16:54:03 2021
@@ -42,6 +42,7 @@ public class JavaPageFactory
      * @param name name of the requested Assembler
      * @return an Assembler
      */
+    @Override
     public Page getAssembler(String name)
     {
         return getAssembler(Page.PREFIX, name);
@@ -63,6 +64,7 @@ public class JavaPageFactory
      *
      * @return a class
      */
+    @Override
     public Class<Page> getManagedClass()
     {
         return Page.class;

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScheduledJobFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScheduledJobFactory.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScheduledJobFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScheduledJobFactory.java Sat Feb  6 16:54:03 2021
@@ -42,6 +42,7 @@ public class JavaScheduledJobFactory
      * @param name name of the requested Assembler
      * @return an Assembler
      */
+    @Override
     public ScheduledJob getAssembler(String name)
     {
         return getAssembler(ScheduledJob.PREFIX, name);
@@ -63,6 +64,7 @@ public class JavaScheduledJobFactory
      *
      * @return a class
      */
+    @Override
     public Class<ScheduledJob> getManagedClass()
     {
         return ScheduledJob.class;

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScreenFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScreenFactory.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScreenFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScreenFactory.java Sat Feb  6 16:54:03 2021
@@ -42,6 +42,7 @@ public class JavaScreenFactory
      * @param name name of the requested Assembler
      * @return an Assembler
      */
+    @Override
     public Screen getAssembler(String name)
     {
         return getAssembler(Screen.PREFIX, name);
@@ -63,6 +64,7 @@ public class JavaScreenFactory
      *
      * @return a class
      */
+    @Override
     public Class<Screen> getManagedClass()
     {
         return Screen.class;

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonActionFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonActionFactory.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonActionFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonActionFactory.java Sat Feb  6 16:54:03 2021
@@ -45,6 +45,7 @@ public class PythonActionFactory
      * @return an Assembler
      * @throws Exception generic exception
      */
+    @Override
     public Action getAssembler(String name)
         throws Exception
     {
@@ -56,6 +57,7 @@ public class PythonActionFactory
      *
      * @return a Loader
      */
+    @Override
     public Loader<Action> getLoader()
     {
         return ActionLoader.getInstance();
@@ -66,6 +68,7 @@ public class PythonActionFactory
      *
      * @return a class
      */
+    @Override
     public Class<Action> getManagedClass()
     {
         return Action.class;

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonLayoutFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonLayoutFactory.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonLayoutFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonLayoutFactory.java Sat Feb  6 16:54:03 2021
@@ -45,6 +45,7 @@ public class PythonLayoutFactory
      * @return an Assembler
      * @throws Exception generic exception
      */
+    @Override
     public Layout getAssembler(String name)
         throws Exception
     {
@@ -67,6 +68,7 @@ public class PythonLayoutFactory
      *
      * @return a class
      */
+    @Override
     public Class<Layout> getManagedClass()
     {
         return Layout.class;

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonNavigationFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonNavigationFactory.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonNavigationFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonNavigationFactory.java Sat Feb  6 16:54:03 2021
@@ -45,6 +45,7 @@ public class PythonNavigationFactory
      * @return an Assembler
      * @throws Exception generic exception
      */
+    @Override
     public Navigation getAssembler(String name)
         throws Exception
     {
@@ -67,6 +68,7 @@ public class PythonNavigationFactory
      *
      * @return a class
      */
+    @Override
     public Class<Navigation> getManagedClass()
     {
         return Navigation.class;

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonPageFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonPageFactory.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonPageFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonPageFactory.java Sat Feb  6 16:54:03 2021
@@ -45,6 +45,7 @@ public class PythonPageFactory
      * @return an Assembler
      * @throws Exception generic exception
      */
+    @Override
     public Page getAssembler(String name)
         throws Exception
     {
@@ -67,6 +68,7 @@ public class PythonPageFactory
      *
      * @return a class
      */
+    @Override
     public Class<Page> getManagedClass()
     {
         return Page.class;

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonScreenFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonScreenFactory.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonScreenFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonScreenFactory.java Sat Feb  6 16:54:03 2021
@@ -45,6 +45,7 @@ public class PythonScreenFactory
      * @return an Assembler
      * @throws Exception generic exception
      */
+    @Override
     public Screen getAssembler(String name)
         throws Exception
     {
@@ -67,6 +68,7 @@ public class PythonScreenFactory
      *
      * @return a class
      */
+    @Override
     public Class<Screen> getManagedClass()
     {
         return Screen.class;

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=1886259&r1=1886258&r2=1886259&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 Sat Feb  6 16:54:03 2021
@@ -67,7 +67,7 @@ public class IntakeTool
     /** ValueParser instance */
     protected ValueParser pp;
 
-    private final HashMap<String, Group> declaredGroups = new HashMap<String, Group>();
+    private final HashMap<String, Group> declaredGroups = new HashMap<>();
     private final StringBuilder allGroupsSB = new StringBuilder(256);
     private final StringBuilder groupSB = new StringBuilder(128);
 
@@ -101,8 +101,8 @@ public class IntakeTool
             {
                 groupCount = groupNames.length;
             }
-            groups = new HashMap<String, Group>((int) (1.25 * groupCount + 1));
-            pullMap = new HashMap<String, IntakeTool.PullHelper>((int) (1.25 * groupCount + 1));
+            groups = new HashMap<>((int) (1.25 * groupCount + 1));
+            pullMap = new HashMap<>((int) (1.25 * groupCount + 1));
 
             for (int i = groupCount - 1; i >= 0; i--)
             {
@@ -445,11 +445,11 @@ public class IntakeTool
 
 			if (groupKeys != null)
 			{
-		        for (int i = 0; i < groupKeys.length; i++)
-		        {
-		            if (!groupKeys[i].equals(group.getGID()))
+		        for (String groupKey : groupKeys)
+                {
+		            if (!groupKey.equals(group.getGID()))
 		            {
-		                 pp.add(INTAKE_GRP, groupKeys[i]);
+		                 pp.add(INTAKE_GRP, groupKey);
 		            }
                 }
 		    }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/jsp/TurbineJspService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/jsp/TurbineJspService.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/jsp/TurbineJspService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/jsp/TurbineJspService.java Sat Feb  6 16:54:03 2021
@@ -242,9 +242,9 @@ public class TurbineJspService
     @Override
     public boolean templateExists(String template)
     {
-        for (int i = 0; i < templatePaths.length; i++)
+        for (String templatePath : templatePaths)
         {
-            if (templateExists(templatePaths[i], template))
+            if (templateExists(templatePath, template))
             {
                 return true;
             }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/naming/TurbineNamingService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/naming/TurbineNamingService.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/naming/TurbineNamingService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/naming/TurbineNamingService.java Sat Feb  6 16:54:03 2021
@@ -61,7 +61,7 @@ public class TurbineNamingService
     private static Map<String, Properties> contextPropsList = null;
 
     /** All initial contexts known to this service */
-    private final Map<String, InitialContext> initialContexts = new HashMap<String, InitialContext>();
+    private final Map<String, InitialContext> initialContexts = new HashMap<>();
 
     /**
      * Called the first time the Service is used.<br>
@@ -81,7 +81,7 @@ public class TurbineNamingService
         Configuration conf = Turbine.getConfiguration();
         try
         {
-            contextPropsList = new HashMap<String, Properties>();
+            contextPropsList = new HashMap<>();
 
             for (Iterator<String> contextKeys = conf.subset("context").getKeys();
                  contextKeys.hasNext();)
@@ -142,6 +142,7 @@ public class TurbineNamingService
      * @return The context with the specified name, or null if no
      * context exists with that name.
      */
+    @Override
     public Context getContext(String contextName)
     {
         // Get just the properties for the context with the specified

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=1886259&r1=1886258&r2=1886259&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 Sat Feb  6 16:54:03 2021
@@ -315,7 +315,7 @@ public class TurbinePullService
     @SuppressWarnings("unchecked")
     private List<ToolData> getTools(Configuration toolConfig)
     {
-        List<ToolData> tools = new ArrayList<ToolData>();
+        List<ToolData> tools = new ArrayList<>();
 
         // There might not be any tools for this prefix
         // so return an empty list.

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/pull/util/SessionData.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/pull/util/SessionData.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/pull/util/SessionData.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/pull/util/SessionData.java Sat Feb  6 16:54:03 2021
@@ -49,7 +49,7 @@ public class SessionData implements Appl
     @Override
     public void init(Object data)
     {
-        dataStorage = new HashMap<String, Object>();
+        dataStorage = new HashMap<>();
     }
 
     /**

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/rundata/DefaultTurbineRunData.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/rundata/DefaultTurbineRunData.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/rundata/DefaultTurbineRunData.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/rundata/DefaultTurbineRunData.java Sat Feb  6 16:54:03 2021
@@ -123,7 +123,7 @@ public class DefaultTurbineRunData
     private int statusCode = HttpServletResponse.SC_OK;
 
     /** This is a List to hold critical system errors. */
-    private final List<SystemError> errors = new ArrayList<SystemError>();
+    private final List<SystemError> errors = new ArrayList<>();
 
     /** JNDI Contexts. */
     private Map<String, Context> jndiContexts;
@@ -148,7 +148,7 @@ public class DefaultTurbineRunData
      * screen.  This is great for debugging variable values when an
      * exception is thrown.
      */
-    private final Map<String, Object> debugVariables = new HashMap<String, Object>();
+    private final Map<String, Object> debugVariables = new HashMap<>();
 
     /** Logging */
     private static final Logger log = LogManager.getLogger(DefaultTurbineRunData.class);
@@ -1054,7 +1054,7 @@ public class DefaultTurbineRunData
     {
         if (jndiContexts == null)
         {
-            jndiContexts = new HashMap<String, Context>();
+            jndiContexts = new HashMap<>();
         }
         return jndiContexts;
     }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/rundata/TurbineRunDataService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/rundata/TurbineRunDataService.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/rundata/TurbineRunDataService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/rundata/TurbineRunDataService.java Sat Feb  6 16:54:03 2021
@@ -239,9 +239,9 @@ public class TurbineRunDataService
         TurbineRunData data;
         try
         {
-    		Class<?> runDataClazz = classCache.computeIfAbsent(cfg[0], className -> classForName(className));
-            Class<?> parameterParserClazz = classCache.computeIfAbsent(cfg[1], className -> classForName(className));
-            Class<?> cookieParserClazz = classCache.computeIfAbsent(cfg[2], className -> classForName(className));
+    		Class<?> runDataClazz = classCache.computeIfAbsent(cfg[0], this::classForName);
+            Class<?> parameterParserClazz = classCache.computeIfAbsent(cfg[1], this::classForName);
+            Class<?> cookieParserClazz = classCache.computeIfAbsent(cfg[2], this::classForName);
 
             data = (TurbineRunData) pool.getInstance(runDataClazz);
             @SuppressWarnings("unchecked") // ok

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/schedule/AbstractSchedulerService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/schedule/AbstractSchedulerService.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/schedule/AbstractSchedulerService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/schedule/AbstractSchedulerService.java Sat Feb  6 16:54:03 2021
@@ -72,7 +72,7 @@ public abstract class AbstractSchedulerS
         try
         {
             setEnabled(getConfiguration().getBoolean("enabled", true));
-            scheduleQueue = new JobQueue<JobEntry>();
+            scheduleQueue = new JobQueue<>();
             mainLoop = new MainLoop();
 
             @SuppressWarnings("unchecked") // Why is this cast necessary?

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/schedule/JobQueue.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/schedule/JobQueue.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/schedule/JobQueue.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/schedule/JobQueue.java Sat Feb  6 16:54:03 2021
@@ -46,7 +46,7 @@ public class JobQueue<J extends JobEntry
      */
     public JobQueue()
     {
-        queue = new Vector<J>(10);
+        queue = new Vector<>(10);
     }
 
     /**
@@ -181,15 +181,10 @@ public class JobQueue<J extends JobEntry
      */
     private void sortQueue()
     {
-        Comparator<J> aComparator = new Comparator<J>()
-        {
-            @Override
-            public int compare(J o1, J o2)
-            {
-                Long time1 = Long.valueOf(o1.getNextRuntime());
-                Long time2 = Long.valueOf(o2.getNextRuntime());
-                return time1.compareTo(time2);
-            }
+        Comparator<J> aComparator = (o1, o2) -> {
+            Long time1 = Long.valueOf(o1.getNextRuntime());
+            Long time2 = Long.valueOf(o2.getNextRuntime());
+            return time1.compareTo(time2);
         };
 
         Collections.sort(queue, aComparator);

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/schedule/QuartzSchedulerService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/schedule/QuartzSchedulerService.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/schedule/QuartzSchedulerService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/schedule/QuartzSchedulerService.java Sat Feb  6 16:54:03 2021
@@ -260,7 +260,7 @@ public class QuartzSchedulerService
     @Override
     public List<? extends JobEntry> listJobs()
     {
-        List<JobEntryQuartz> jobs = new ArrayList<JobEntryQuartz>();
+        List<JobEntryQuartz> jobs = new ArrayList<>();
 
         try
         {

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/schedule/TurbineNonPersistentSchedulerService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/schedule/TurbineNonPersistentSchedulerService.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/schedule/TurbineNonPersistentSchedulerService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/schedule/TurbineNonPersistentSchedulerService.java Sat Feb  6 16:54:03 2021
@@ -75,7 +75,7 @@ public class TurbineNonPersistentSchedul
     {
         Configuration conf = getConfiguration();
         List<Object> jobProps = conf.getList("scheduler.jobs");
-        List<JobEntry> jobs = new ArrayList<JobEntry>();
+        List<JobEntry> jobs = new ArrayList<>();
 
         // If there are scheduler.jobs defined then set up a job vector
         // for the scheduleQueue

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/security/DefaultUserManager.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/security/DefaultUserManager.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/security/DefaultUserManager.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/security/DefaultUserManager.java Sat Feb  6 16:54:03 2021
@@ -256,7 +256,7 @@ public class DefaultUserManager implemen
             throws DataBackendException
     {
         UserSet<org.apache.fulcrum.security.entity.User> uset = umDelegate.getAllUsers();
-        List<User> userList = new ArrayList<User>();
+        List<User> userList = new ArrayList<>();
 
         for (org.apache.fulcrum.security.entity.User u : uset)
         {

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/security/SecurityService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/security/SecurityService.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/security/SecurityService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/security/SecurityService.java Sat Feb  6 16:54:03 2021
@@ -42,7 +42,7 @@ import org.apache.turbine.services.secur
  * The Security Service manages Users, Groups Roles and Permissions in the
  * system.
  * </p>
- * 
+ *
  * <p>
  * The task performed by the security service include creation and removal of
  * accounts, groups, roles, and permissions; assigning users roles in groups;
@@ -50,7 +50,7 @@ import org.apache.turbine.services.secur
  * representing these logical entities.
  * </p>
  *
- * <p> 
+ * <p>
  * Because of pluggable nature of the Services, it is possible to create
  * multiple implementations of SecurityService, for example employing database
  * and directory server as the data backend.
@@ -477,13 +477,13 @@ public interface SecurityService
      */
     void revokeAll(Role role)
             throws DataBackendException, UnknownEntityException;
-    
+
     /**
      * Revokes by default all permissions from a Role and if flag is set
      * all groups and users for this role
-     * 
+     *
      * This method is used when deleting a Role.
-     * 
+     *
      * @param role
      *            the Role
      * @param cascadeDelete
@@ -541,7 +541,7 @@ public interface SecurityService
 
     /**
      * Retrieve a Role object with specified name.
-     * 
+     *
      * @param <R> role class
      * @param name the name of the Role.
      * @return an object representing the Role with specified name.
@@ -741,12 +741,12 @@ public interface SecurityService
     void renamePermission(Permission permission, String name)
             throws DataBackendException, UnknownEntityException;
     /**
-     * Replaces transactionally the first given role with the second role for the given user. 
-     * 
+     * Replaces transactionally the first given role with the second role for the given user.
+     *
      * @param user the user.
      * @param role the old role
      * @param newRole the new role
-     * 
+     *
      * @throws DataBackendException if there was an error accessing the data
      *         backend.
      * @throws UnknownEntityException if the permission does not exist.

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/security/UserManager.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/security/UserManager.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/security/UserManager.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/security/UserManager.java Sat Feb  6 16:54:03 2021
@@ -289,7 +289,7 @@ public interface UserManager
     /**
      * Return a Class object representing the system's chosen implementation of
      * of ACL interface for the given user
-     * 
+     *
      * @param <A> ACL class
      * @param user the user
      * @return systems's chosen implementation of ACL interface.

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/session/TurbineSessionService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/session/TurbineSessionService.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/session/TurbineSessionService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/session/TurbineSessionService.java Sat Feb  6 16:54:03 2021
@@ -67,7 +67,7 @@ public class TurbineSessionService
     @Override
     public Collection<HttpSession> getActiveSessions()
     {
-        return new ArrayList<HttpSession>(activeSessions.values());
+        return new ArrayList<>(activeSessions.values());
     }
 
     /**
@@ -124,7 +124,7 @@ public class TurbineSessionService
         Collection<User> users;
         // Pre-allocate a list which won't need expansion more
         // than once.
-        users = new ArrayList<User>((int) (activeSessions.size() * 0.7));
+        users = new ArrayList<>((int) (activeSessions.size() * 0.7));
         for (HttpSession session : activeSessions.values())
         {
             User u = getUserFromSession(session);
@@ -181,7 +181,7 @@ public class TurbineSessionService
     @Override
     public Collection<HttpSession> getSessionsForUser(User user)
     {
-        Collection<HttpSession> sessions = new ArrayList<HttpSession>();
+        Collection<HttpSession> sessions = new ArrayList<>();
         for (HttpSession session : activeSessions.values())
         {
             User u = this.getUserFromSession(session);
@@ -203,7 +203,7 @@ public class TurbineSessionService
     @Override
     public void init()
     {
-        this.activeSessions = new ConcurrentHashMap<String, HttpSession>();
+        this.activeSessions = new ConcurrentHashMap<>();
 
         setInit(true);
     }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/template/BaseTemplateEngineService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/template/BaseTemplateEngineService.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/template/BaseTemplateEngineService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/template/BaseTemplateEngineService.java Sat Feb  6 16:54:03 2021
@@ -50,7 +50,7 @@ public abstract class BaseTemplateEngine
      * 5) default navigation
      * 6) default error screen
      */
-    private final Hashtable<String, Object> configuration = new Hashtable<String, Object>();
+    private final Hashtable<String, Object> configuration = new Hashtable<>();
 
     /**
      * @see org.apache.turbine.services.template.TemplateEngineService#registerConfiguration
@@ -131,9 +131,9 @@ public abstract class BaseTemplateEngine
             DEFAULT_SCREEN_TEMPLATE
         };
 
-        for (int i = 0; i < copyParams.length; i++)
+        for (String copyParam : copyParams)
         {
-            configuration.put(copyParams[i], config.getString(copyParams[i], ""));
+            configuration.put(copyParam, config.getString(copyParam, ""));
         }
     }
 

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/template/TurbineTemplateService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/template/TurbineTemplateService.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/template/TurbineTemplateService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/template/TurbineTemplateService.java Sat Feb  6 16:54:03 2021
@@ -293,7 +293,7 @@ public class TurbineTemplateService
         log.debug("Default Template:  {}", defaultTemplate);
         log.debug("Use Caching:       {}", Boolean.valueOf(useCache));
 
-        templateEngineRegistry = new ConcurrentHashMap<String, TemplateEngineService>();
+        templateEngineRegistry = new ConcurrentHashMap<>();
 
         initMapper(config);
         setInit(true);

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/BaseMapper.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/BaseMapper.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/BaseMapper.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/BaseMapper.java Sat Feb  6 16:54:03 2021
@@ -147,7 +147,7 @@ public abstract class BaseMapper
     {
         if (useCache)
         {
-            templateCache = new HashMap<String, String>(cacheSize);
+            templateCache = new HashMap<>(cacheSize);
         }
     }
 

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/ClassMapper.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/ClassMapper.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/ClassMapper.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/ClassMapper.java Sat Feb  6 16:54:03 2021
@@ -105,7 +105,7 @@ public class ClassMapper
 
         // Copy our elements into an array
         List<String> components
-            = new ArrayList<String>(Arrays.asList(StringUtils.split(
+            = new ArrayList<>(Arrays.asList(StringUtils.split(
                                               template,
                                               String.valueOf(TemplateService.TEMPLATE_PARTS_SEPARATOR))));
         int componentSize = components.size() - 1 ;

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/LayoutTemplateMapper.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/LayoutTemplateMapper.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/LayoutTemplateMapper.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/LayoutTemplateMapper.java Sat Feb  6 16:54:03 2021
@@ -77,7 +77,7 @@ public class LayoutTemplateMapper
         log.debug("doMapping({})", template);
         // Copy our elements into an array
         List<String> components
-            = new ArrayList<String>(Arrays.asList(StringUtils.split(
+            = new ArrayList<>(Arrays.asList(StringUtils.split(
                                               template,
                                               String.valueOf(TemplateService.TEMPLATE_PARTS_SEPARATOR))));
         int componentSize = components.size() - 1 ;

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/ScreenDefaultTemplateMapper.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/ScreenDefaultTemplateMapper.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/ScreenDefaultTemplateMapper.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/template/mapper/ScreenDefaultTemplateMapper.java Sat Feb  6 16:54:03 2021
@@ -73,7 +73,7 @@ public class ScreenDefaultTemplateMapper
         log.debug("doMapping({})", template);
         // Copy our elements into an array
         List<String> components
-            = new ArrayList<String>(Arrays.asList(StringUtils.split(
+            = new ArrayList<>(Arrays.asList(StringUtils.split(
                                               template,
                                               String.valueOf(TemplateService.TEMPLATE_PARTS_SEPARATOR))));
         int componentSize = components.size() - 1 ;

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/ui/TurbineUIService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/ui/TurbineUIService.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/ui/TurbineUIService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/ui/TurbineUIService.java Sat Feb  6 16:54:03 2021
@@ -20,7 +20,6 @@ package org.apache.turbine.services.ui;
  */
 
 import java.io.File;
-import java.io.FilenameFilter;
 import java.io.InputStream;
 import java.util.Properties;
 import java.util.concurrent.ConcurrentHashMap;
@@ -150,7 +149,7 @@ public class TurbineUIService
     /**
      * The skin Properties store.
      */
-    private ConcurrentHashMap<String, Properties> skins = new ConcurrentHashMap<String, Properties>();
+    private ConcurrentHashMap<String, Properties> skins = new ConcurrentHashMap<>();
 
     /**
      * Refresh the service by clearing all skins.
@@ -239,14 +238,9 @@ public class TurbineUIService
     public String[] getSkinNames()
     {
         File skinsDir = new File(servletService.getRealPath(skinsDirectory));
-        return skinsDir.list(new FilenameFilter()
-        {
-            @Override
-            public boolean accept(File dir, String name)
-            {
-                File directory = new File(dir, name);
-                return directory.isDirectory();
-            }
+        return skinsDir.list((dir, name) -> {
+            File directory = new File(dir, name);
+            return directory.isDirectory();
         });
     }
 

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/urlmapper/MappedTemplateLink.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/urlmapper/MappedTemplateLink.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/urlmapper/MappedTemplateLink.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/urlmapper/MappedTemplateLink.java Sat Feb  6 16:54:03 2021
@@ -54,7 +54,7 @@ public class MappedTemplateLink extends
      */
     @TurbineService
     private URLMapperService urlMapperService;
-    
+
 
     /**
      * Builds the URL with all of the data URL-encoded as well as
@@ -78,6 +78,7 @@ public class MappedTemplateLink extends
      *
      * @return A String with the built URL.
      */
+    @Override
     public String getAbsoluteLink()
     {
         urlMapperService.mapToURL(templateURI);
@@ -107,10 +108,11 @@ public class MappedTemplateLink extends
      *
      * @return A String with the built URL.
      */
+    @Override
     public String getRelativeLink()
     {
         urlMapperService.mapToURL(templateURI);
         return super.getRelativeLink();
     }
-    
+
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/urlmapper/TurbineURLMapperService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/urlmapper/TurbineURLMapperService.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/urlmapper/TurbineURLMapperService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/urlmapper/TurbineURLMapperService.java Sat Feb  6 16:54:03 2021
@@ -21,10 +21,11 @@ package org.apache.turbine.services.urlm
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
@@ -94,7 +95,12 @@ public class TurbineURLMapperService
     /**
      * Regex pattern for group names
      */
-    private static final Pattern namedGroupsPattern = Pattern.compile("\\(\\?<([a-zA-Z][a-zA-Z0-9]*)>.+?\\)");
+    private static final Pattern NAMED_GROUPS_PATTERN = Pattern.compile("\\(\\?<([a-zA-Z][a-zA-Z0-9]*)>.+?\\)");
+
+    /**
+     * Regex pattern for multiple slashes
+     */
+    private static final Pattern MULTI_SLASH_PATTERN = Pattern.compile("/+");
 
     /**
      * Symbolic group name for context path
@@ -109,10 +115,10 @@ public class TurbineURLMapperService
     /**
      * Symbolic group names that will not be added to parameters
      */
-    private static final Set<String> DEFAULT_PARAMETERS = Stream.of(
+    private static final Set<String> DEFAULT_PARAMETERS = new HashSet<>(Arrays.asList(
             CONTEXT_PATH_PARAMETER,
             WEBAPP_ROOT_PARAMETER
-    ).collect(Collectors.toSet());
+    ));
 
     /**
      * Map a set of parameters (contained in TurbineURI PathInfo and QueryData)
@@ -123,33 +129,30 @@ public class TurbineURLMapperService
     @Override
     public void mapToURL(TurbineURI uri)
     {
+        if (!uri.hasPathInfo() && !uri.hasQueryData())
+        {
+            return; // no mapping or mapping already done
+        }
+
+        List<URIParam> pathInfo = uri.getPathInfo();
+        List<URIParam> queryData = uri.getQueryData();
+
         // Create map from list, taking only the first appearance of a key
         // PathInfo takes precedence
-        Map<String, Object> uriParameterMap = Stream.concat(
-                uri.getPathInfo().stream(),
-                uri.getQueryData().stream())
-                .collect(Collectors.toMap(
+        Map<String, Object> uriParameterMap =
+                Stream.concat(pathInfo.stream(), queryData.stream())
+                    .collect(Collectors.toMap(
                         URIParam::getKey,
                         URIParam::getValue,
                         (e1, e2) -> e1,
                         LinkedHashMap::new));
 
-        Set<String> keys = new HashSet<>(uriParameterMap.keySet());
-
-        if (keys.isEmpty() && uri.getQueryData().isEmpty() || uri.getPathInfo().isEmpty())
-        {
-            return; // no mapping or mapping already done
-        }
-
         for (URLMapEntry urlMap : container.getMapEntries())
         {
-            Set<String> entryKeys = new HashSet<>();
+            Set<String> keys = new HashSet<>(uriParameterMap.keySet());
+            keys.removeAll(urlMap.getIgnoreParameters().keySet());
 
-            Map<String, Integer> groupNamesMap = urlMap.getGroupNamesMap();
-            if (groupNamesMap != null)
-            {
-                entryKeys.addAll(groupNamesMap.keySet());
-            }
+            Set<String> entryKeys = new HashSet<>(urlMap.getGroupNamesMap().keySet());
 
             Set<String> implicitKeysFound = urlMap.getImplicitParameters().entrySet().stream()
                     .filter(entry -> Objects.equals(uriParameterMap.get(entry.getKey()), entry.getValue()))
@@ -158,15 +161,13 @@ public class TurbineURLMapperService
 
             entryKeys.addAll(implicitKeysFound);
             implicitKeysFound.forEach(key -> {
-                uri.removePathInfo(key);
-                uri.removeQueryData(key);
+                pathInfo.removeIf(uriParam -> key.equals(uriParam.getKey()));
+                queryData.removeIf(uriParam -> key.equals(uriParam.getKey()));
             });
 
-            keys.removeAll(urlMap.getIgnoreParameters().keySet());
-
             if (entryKeys.containsAll(keys))
             {
-                Matcher matcher = namedGroupsPattern.matcher(urlMap.getUrlPattern().pattern());
+                Matcher matcher = NAMED_GROUPS_PATTERN.matcher(urlMap.getUrlPattern().pattern());
                 StringBuffer sb = new StringBuffer();
 
                 while (matcher.find())
@@ -188,15 +189,15 @@ public class TurbineURLMapperService
                                  Matcher.quoteReplacement(
                                         (!ignore)? Objects.toString(uriParameterMap.get(key)):""));
                         // Remove handled parameters (all of them!)
-                        uri.removePathInfo(key);
-                        uri.removeQueryData(key);
+                        pathInfo.removeIf(uriParam -> key.equals(uriParam.getKey()));
+                        queryData.removeIf(uriParam -> key.equals(uriParam.getKey()));
                     }
                 }
-                
+
                 matcher.appendTail(sb);
-                
+
                 // Clean up
-                uri.setScriptName(sb.toString().replaceAll("/+", "/"));
+                uri.setScriptName(MULTI_SLASH_PATTERN.matcher(sb).replaceAll("/"));
                 break;
             }
         }
@@ -217,16 +218,11 @@ public class TurbineURLMapperService
             if (matcher.matches())
             {
                 // extract parameters from URL
-                Map<String, Integer> groupNameMap = urlMap.getGroupNamesMap();
-
-                if (groupNameMap != null)
-                {
-                    groupNameMap.entrySet().stream()
-                            // ignore default parameters
-                            .filter(group -> !DEFAULT_PARAMETERS.contains(group.getKey()))
-                            .forEach(group ->
-                                    pp.setString(group.getKey(), matcher.group(group.getValue().intValue())));
-                }
+                urlMap.getGroupNamesMap().entrySet().stream()
+                        // ignore default parameters
+                        .filter(group -> !DEFAULT_PARAMETERS.contains(group.getKey()))
+                        .forEach(group ->
+                                pp.setString(group.getKey(), matcher.group(group.getValue().intValue())));
 
                 // add implicit parameters
                 urlMap.getImplicitParameters().entrySet().forEach(e ->
@@ -291,22 +287,17 @@ public class TurbineURLMapperService
         }
 
         // Get groupNamesMap for every Pattern and store it in the entry
-        try
+        for (URLMapEntry urlMap : container.getMapEntries())
         {
-            Method namedGroupsMethod = Pattern.class.getDeclaredMethod("namedGroups");
-            namedGroupsMethod.setAccessible(true);
+            int position = 1;
+            Map<String, Integer> groupNamesMap = new HashMap<>();
+            Matcher matcher = NAMED_GROUPS_PATTERN.matcher(urlMap.getUrlPattern().pattern());
 
-            for (URLMapEntry urlMap : container.getMapEntries())
+            while (matcher.find())
             {
-                @SuppressWarnings("unchecked")
-                Map<String, Integer> groupNamesMap = (Map<String, Integer>) namedGroupsMethod.invoke(urlMap.getUrlPattern());
-                urlMap.setGroupNamesMap(groupNamesMap);
+                groupNamesMap.put(matcher.group(1), Integer.valueOf(position++));
             }
-        }
-        catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException
-                | NoSuchMethodException | SecurityException e)
-        {
-            throw new InitializationException("Could not invoke method Pattern.getNamedGroups", e);
+            urlMap.setGroupNamesMap(groupNamesMap);
         }
 
         log.info("Loaded {} url-mappings from {}", Integer.valueOf(container.getMapEntries().size()), configFile);
@@ -320,7 +311,7 @@ public class TurbineURLMapperService
     @Override
     public void shutdown()
     {
-        container = null;
+        container.getMapEntries().clear();
         setInit(false);
     }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/urlmapper/model/URLMappingContainer.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/urlmapper/model/URLMappingContainer.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/urlmapper/model/URLMappingContainer.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/urlmapper/model/URLMappingContainer.java Sat Feb  6 16:54:03 2021
@@ -93,6 +93,6 @@ public class URLMappingContainer
      */
     protected void setMapEntries(List<URLMapEntry> newURLMapEntries)
     {
-        this.urlMapEntries = new CopyOnWriteArrayList<URLMapEntry>(newURLMapEntries);
+        this.urlMapEntries = new CopyOnWriteArrayList<>(newURLMapEntries);
     }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/velocity/TurbineVelocityService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/velocity/TurbineVelocityService.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/velocity/TurbineVelocityService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/velocity/TurbineVelocityService.java Sat Feb  6 16:54:03 2021
@@ -154,7 +154,7 @@ public class TurbineVelocityService
                 {
                     outputEncoding = defaultInputEncoding;
                 }
-                
+
                 defaultOutputEncoding = outputEncoding;
             }
             else
@@ -512,9 +512,9 @@ public class TurbineVelocityService
                 Object value = conf.getProperty(key);
                 if (value instanceof List<?>)
                 {
-                    for (Iterator<?> itr = ((List<?>)value).iterator(); itr.hasNext();)
+                    for (Object name2 : ((List<?>) value))
                     {
-                        velocity.addProperty(key, itr.next());
+                        velocity.addProperty(key, name2);
                     }
                 }
                 else

Modified: turbine/core/trunk/src/java/org/apache/turbine/util/FormMessage.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/util/FormMessage.java?rev=1886259&r1=1886258&r2=1886259&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/util/FormMessage.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/util/FormMessage.java Sat Feb  6 16:54:03 2021
@@ -41,7 +41,7 @@ public class FormMessage
      */
     public FormMessage()
     {
-        fieldNames = new ArrayList<String>();
+        fieldNames = new ArrayList<>();
     }
 
     /**