You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by kr...@apache.org on 2019/11/12 21:19:20 UTC

[knox] branch master updated: KNOX-2122 - Code cleanup from static code analysis (#191)

This is an automated email from the ASF dual-hosted git repository.

krisden pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/knox.git


The following commit(s) were added to refs/heads/master by this push:
     new 2b6cee2  KNOX-2122 - Code cleanup from static code analysis (#191)
2b6cee2 is described below

commit 2b6cee2d9081628348e0925a9e7e7b596292eee3
Author: Kevin Risden <ri...@users.noreply.github.com>
AuthorDate: Tue Nov 12 16:19:11 2019 -0500

    KNOX-2122 - Code cleanup from static code analysis (#191)
    
    * Diamond operator
    * Static method calls instead of on instances
    * Remove null check before instanceof
    * Use computeIfAbsent where possible
    * Remove simple nested if statements
    * Remove redundant cast
    * Use entrySet for iteration of maps
    
    Signed-off-by: Kevin Risden <kr...@apache.org>
---
 .../main/resources/build-tools/pmd/pmd-ruleset.xml |  1 +
 .../security/ldap/SimpleLdapDirectoryServer.java   |  5 +-
 .../ambari/AmbariDynamicServiceURLCreator.java     |  6 +-
 .../discovery/ambari/AmbariServiceDiscovery.java   | 13 ++--
 .../discovery/ambari/ServiceURLPropertyConfig.java | 10 +--
 .../ambari/SparkCommonServiceURLCreator.java       |  4 -
 .../cm/ClouderaManagerServiceDiscovery.java        | 11 ++-
 .../topology/discovery/cm/DiscoveryApiClient.java  |  6 +-
 .../gateway/i18n/messages/MessagesInvoker.java     |  8 +-
 .../knox/gateway/ha/dispatch/AtlasHaDispatch.java  | 13 +---
 .../filter/CommonIdentityAssertionFilter.java      |  2 +-
 .../ext/UrlRewriteActionRewriteProcessorExt.java   |  4 +-
 .../impl/UrlRewriteFunctionProcessorFactory.java   |  7 +-
 .../impl/UrlRewriteStepProcessorFactory.java       |  7 +-
 .../filter/rewrite/impl/json/JsonFilterReader.java | 28 +++----
 .../impl/CompositeAuthzDeploymentContributor.java  |  8 +-
 .../knox/gateway/deploy/impl/ShiroConfig.java      |  6 +-
 .../org/apache/knox/gateway/GatewayServer.java     |  4 +-
 .../knox/gateway/deploy/DeploymentFactory.java     | 25 ++----
 .../impl/instr/InstrHttpClientBuilderProvider.java |  2 +-
 .../security/impl/DefaultAliasService.java         |  8 +-
 .../security/impl/DefaultCryptoService.java        |  9 ++-
 .../token/impl/DefaultTokenStateService.java       |  2 +-
 .../topology/impl/DefaultTopologyService.java      | 12 ++-
 .../monitor/RemoteConfigurationMonitorFactory.java |  2 +-
 .../topology/simple/SimpleDescriptorHandler.java   |  6 +-
 .../java/org/apache/knox/gateway/util/KnoxCLI.java |  8 +-
 .../service/admin/ServiceDefinitionsResource.java  |  2 +-
 .../service/admin/ServiceDiscoveryResource.java    |  6 +-
 .../gateway/service/admin/TopologiesResource.java  | 20 ++---
 .../service/admin/TopologyResourceTest.java        |  6 +-
 .../definition/ServiceDefinitionComparator.java    | 11 ++-
 .../apache/knox/gateway/impala/ImpalaDispatch.java |  5 --
 .../org/apache/knox/gateway/shell/Credentials.java |  2 +-
 .../apache/knox/gateway/shell/ErrorResponse.java   |  4 +-
 .../org/apache/knox/gateway/shell/KnoxSession.java |  6 +-
 .../shell/table/JoinKnoxShellTableBuilder.java     |  8 +-
 .../knox/gateway/shell/table/KnoxShellTable.java   | 45 ++++++-----
 .../gateway/shell/table/KnoxShellTableCall.java    |  2 +-
 .../shell/table/KnoxShellTableCallHistory.java     |  9 +--
 .../shell/table/KnoxShellTableJSONSerializer.java  |  8 +-
 .../shell/table/KnoxShellTableRowDeserializer.java |  7 +-
 .../knox/gateway/dispatch/DefaultDispatch.java     |  4 +-
 .../ServiceDefinitionPairComparator.java           |  8 +-
 .../UrlRewriteRulesDescriptorAdapter.java          |  2 +-
 .../org/apache/knox/gateway/topology/Topology.java |  6 +-
 .../discovery/ServiceDiscoveryFactory.java         | 15 ++--
 .../org/apache/knox/gateway/GatewayTestConfig.java |  5 +-
 .../org/apache/knox/gateway/GatewayTestDriver.java |  2 +-
 .../main/java/org/apache/knox/test/Console.java    |  9 ++-
 .../main/java/org/apache/knox/test/TestUtils.java  |  3 +
 .../config/impl/DefaultConfigurationInjector.java  |  2 +-
 .../org/apache/knox/gateway/launcher/Config.java   |  6 +-
 .../knox/gateway/util/urltemplate/Template.java    |  2 +-
 .../knox/gateway/util/urltemplate/ParserTest.java  | 88 ++++++++++------------
 pom.xml                                            |  4 +-
 56 files changed, 211 insertions(+), 303 deletions(-)

diff --git a/build-tools/src/main/resources/build-tools/pmd/pmd-ruleset.xml b/build-tools/src/main/resources/build-tools/pmd/pmd-ruleset.xml
index e20db56..aaad3a1 100644
--- a/build-tools/src/main/resources/build-tools/pmd/pmd-ruleset.xml
+++ b/build-tools/src/main/resources/build-tools/pmd/pmd-ruleset.xml
@@ -57,6 +57,7 @@ limitations under the License.
     <rule ref="category/java/codestyle.xml/PackageCase" />
     <rule ref="category/java/codestyle.xml/UnnecessaryModifier" />
     <rule ref="category/java/codestyle.xml/UnnecessaryReturn" />
+    <rule ref="category/java/codestyle.xml/UseDiamondOperator" />
 
     <!--<rule ref="category/java/design.xml" />-->
     <!--<rule ref="category/java/documentation.xml" />-->
diff --git a/gateway-demo-ldap/src/main/java/org/apache/knox/gateway/security/ldap/SimpleLdapDirectoryServer.java b/gateway-demo-ldap/src/main/java/org/apache/knox/gateway/security/ldap/SimpleLdapDirectoryServer.java
index 724cb0c..6e17c99 100644
--- a/gateway-demo-ldap/src/main/java/org/apache/knox/gateway/security/ldap/SimpleLdapDirectoryServer.java
+++ b/gateway-demo-ldap/src/main/java/org/apache/knox/gateway/security/ldap/SimpleLdapDirectoryServer.java
@@ -82,8 +82,9 @@ public class SimpleLdapDirectoryServer {
         partitionFactory = new JdbmPartitionFactory();
       }
     } catch ( Exception e ) {
-      LOG.error( "Error instantiating custom partiton factory", e );
-      throw new RuntimeException( e );
+      String msg = "Error instantiating custom partition factory";
+      LOG.error(msg, e );
+      throw new RuntimeException(msg, e);
     }
 
     DirectoryServiceFactory factory = new DefaultDirectoryServiceFactory(directoryService, partitionFactory);
diff --git a/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/AmbariDynamicServiceURLCreator.java b/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/AmbariDynamicServiceURLCreator.java
index d2199f7..da7e6b3 100644
--- a/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/AmbariDynamicServiceURLCreator.java
+++ b/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/AmbariDynamicServiceURLCreator.java
@@ -150,10 +150,8 @@ class AmbariDynamicServiceURLCreator implements ServiceURLCreator {
                         log.handlingDerivedProperty(serviceName, configProperty.getType(), configProperty.getName());
                         ServiceURLPropertyConfig.Property p = config.getConfigProperty(serviceName, configProperty.getName());
                         propertyValue = p.getValue();
-                        if (propertyValue == null) {
-                            if (p.getConditionHandler() != null) {
-                                propertyValue = p.getConditionHandler().evaluate(config, cluster);
-                            }
+                        if (propertyValue == null && p.getConditionHandler() != null) {
+                            propertyValue = p.getConditionHandler().evaluate(config, cluster);
                         }
                     }
 
diff --git a/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/AmbariServiceDiscovery.java b/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/AmbariServiceDiscovery.java
index cef6e9c..0693646 100644
--- a/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/AmbariServiceDiscovery.java
+++ b/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/AmbariServiceDiscovery.java
@@ -171,11 +171,9 @@ class AmbariServiceDiscovery implements ServiceDiscovery {
                         ClusterConfigurationMonitorService clusterMonitorService =
                               ((GatewayServices) obj).getService(ServiceType.CLUSTER_CONFIGURATION_MONITOR_SERVICE);
                         ClusterConfigurationMonitor monitor =
-                                                 clusterMonitorService.getMonitor(AmbariConfigurationMonitor.getType());
-                        if (monitor != null) {
-                            if (AmbariConfigurationMonitor.class.isAssignableFrom(monitor.getClass())) {
-                                ambariMonitor = (AmbariConfigurationMonitor) monitor;
-                            }
+                            clusterMonitorService.getMonitor(AmbariConfigurationMonitor.getType());
+                        if (monitor != null && AmbariConfigurationMonitor.class.isAssignableFrom(monitor.getClass())) {
+                            ambariMonitor = (AmbariConfigurationMonitor) monitor;
                         }
                     }
                 }
@@ -323,8 +321,9 @@ class AmbariServiceDiscovery implements ServiceDiscovery {
             }
 
             // Construct the AmbariCluster model
-            for (String componentName : serviceComponents.keySet()) {
-                String serviceName = serviceComponents.get(componentName);
+            for (Entry<String, String> entry : serviceComponents.entrySet()) {
+                String componentName = entry.getKey();
+                String serviceName = entry.getValue();
                 List<String> hostNames = componentHostNames.get(componentName);
 
                 Map<String, AmbariCluster.ServiceConfiguration> configs = serviceConfigurations.get(serviceName);
diff --git a/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/ServiceURLPropertyConfig.java b/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/ServiceURLPropertyConfig.java
index ae2db81..8c2e467 100644
--- a/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/ServiceURLPropertyConfig.java
+++ b/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/ServiceURLPropertyConfig.java
@@ -164,8 +164,8 @@ class ServiceURLPropertyConfig {
                     }
 
                     // Add the override properties
-                    for (String propertyName : serviceProperties.keySet()) {
-                        setConfigProperty(service, propertyName, serviceProperties.get(propertyName));
+                    for (Map.Entry<String, Property> entry : serviceProperties.entrySet()) {
+                        setConfigProperty(service, entry.getKey(), entry.getValue());
                     }
                 }
             }
@@ -173,11 +173,7 @@ class ServiceURLPropertyConfig {
     }
 
     void setConfigProperty(String service, String name, Property value) {
-        Map<String, Property> serviceProperties = properties.get(service);
-        if (serviceProperties == null) {
-            serviceProperties = new HashMap<>();
-            properties.put(service, serviceProperties);
-        }
+        Map<String, Property> serviceProperties = properties.computeIfAbsent(service, k -> new HashMap<>());
         serviceProperties.put(name, value);
     }
 
diff --git a/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/SparkCommonServiceURLCreator.java b/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/SparkCommonServiceURLCreator.java
index ab49b45..ffaf986 100644
--- a/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/SparkCommonServiceURLCreator.java
+++ b/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/SparkCommonServiceURLCreator.java
@@ -49,7 +49,6 @@ public abstract class SparkCommonServiceURLCreator implements ServiceURLCreator
     return comp.getConfigProperty(portConfigProperty);
   }
 
-
   @Override
   public List<String> create(String service, Map<String, String> serviceParams) {
     List<String> urls = new ArrayList<>();
@@ -71,7 +70,4 @@ public abstract class SparkCommonServiceURLCreator implements ServiceURLCreator
 
     return urls;
   }
-
-
-
 }
diff --git a/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/ClouderaManagerServiceDiscovery.java b/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/ClouderaManagerServiceDiscovery.java
index 0a7ba47..b4396ed 100644
--- a/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/ClouderaManagerServiceDiscovery.java
+++ b/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/ClouderaManagerServiceDiscovery.java
@@ -191,12 +191,11 @@ public class ClouderaManagerServiceDiscovery implements ServiceDiscovery {
             List<ServiceModelGenerator> smgList = serviceModelGenerators.get(service.getType());
             if (smgList != null) {
               for (ServiceModelGenerator serviceModelGenerator : smgList) {
-                if (serviceModelGenerator != null) {
-                  if (serviceModelGenerator.handles(service, serviceConfig, role, roleConfig)) {
-                    serviceModelGenerator.setApiClient(client);
-                    ServiceModel serviceModel = serviceModelGenerator.generateService(service, serviceConfig, role, roleConfig);
-                    serviceModels.add(serviceModel);
-                  }
+                if (serviceModelGenerator != null &&
+                    serviceModelGenerator.handles(service, serviceConfig, role, roleConfig)) {
+                  serviceModelGenerator.setApiClient(client);
+                  ServiceModel serviceModel = serviceModelGenerator.generateService(service, serviceConfig, role, roleConfig);
+                  serviceModels.add(serviceModel);
                 }
               }
             }
diff --git a/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/DiscoveryApiClient.java b/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/DiscoveryApiClient.java
index 1f1c854..a29dd39 100644
--- a/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/DiscoveryApiClient.java
+++ b/gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/DiscoveryApiClient.java
@@ -138,10 +138,8 @@ public class DiscoveryApiClient extends ApiClient {
   private String getUsername() {
     String username = null;
     Authentication basicAuth = getAuthentication("basic");
-    if (basicAuth != null) {
-      if (basicAuth instanceof HttpBasicAuth) {
-        username = ((HttpBasicAuth) basicAuth).getUsername();
-      }
+    if (basicAuth instanceof HttpBasicAuth) {
+      username = ((HttpBasicAuth) basicAuth).getUsername();
     }
     return username;
   }
diff --git a/gateway-i18n/src/main/java/org/apache/knox/gateway/i18n/messages/MessagesInvoker.java b/gateway-i18n/src/main/java/org/apache/knox/gateway/i18n/messages/MessagesInvoker.java
index 62dae84..9b69ee8 100644
--- a/gateway-i18n/src/main/java/org/apache/knox/gateway/i18n/messages/MessagesInvoker.java
+++ b/gateway-i18n/src/main/java/org/apache/knox/gateway/i18n/messages/MessagesInvoker.java
@@ -89,11 +89,9 @@ public class MessagesInvoker extends ResourcesInvoker implements InvocationHandl
         Object arg = args[i];
         if( arg instanceof Throwable ) {
           StackTrace anno = getStackTraceAnno( method, i );
-          if( anno != null ) {
-            if( logger.isLoggable( anno.level() ) ) {
-              throwable = (Throwable)arg;
-              break;
-            }
+          if( anno != null && logger.isLoggable( anno.level() ) ) {
+            throwable = (Throwable)arg;
+            break;
           }
         }
       }
diff --git a/gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/dispatch/AtlasHaDispatch.java b/gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/dispatch/AtlasHaDispatch.java
index 7742b28..7885149 100644
--- a/gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/dispatch/AtlasHaDispatch.java
+++ b/gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/dispatch/AtlasHaDispatch.java
@@ -15,7 +15,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.knox.gateway.ha.dispatch;
 
 import org.apache.http.Header;
@@ -26,26 +25,16 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.Set;
 
 public class AtlasHaDispatch extends DefaultHaDispatch {
-    private static Set<String> REQUEST_EXCLUDE_HEADERS = new HashSet<>();
-
-    static {
-        REQUEST_EXCLUDE_HEADERS.add("Content-Length");
-    }
+    private static final Set<String> REQUEST_EXCLUDE_HEADERS = Collections.singleton("Content-Length");
 
     public AtlasHaDispatch() {
         setServiceRole("ATLAS");
     }
 
     @Override
-    public void init() {
-        super.init();
-    }
-
-    @Override
     public Set<String> getOutboundResponseExcludeHeaders() {
         return Collections.emptySet();
     }
diff --git a/gateway-provider-identity-assertion-common/src/main/java/org/apache/knox/gateway/identityasserter/common/filter/CommonIdentityAssertionFilter.java b/gateway-provider-identity-assertion-common/src/main/java/org/apache/knox/gateway/identityasserter/common/filter/CommonIdentityAssertionFilter.java
index 20680c9..f16fa50 100644
--- a/gateway-provider-identity-assertion-common/src/main/java/org/apache/knox/gateway/identityasserter/common/filter/CommonIdentityAssertionFilter.java
+++ b/gateway-provider-identity-assertion-common/src/main/java/org/apache/knox/gateway/identityasserter/common/filter/CommonIdentityAssertionFilter.java
@@ -96,7 +96,7 @@ public class CommonIdentityAssertionFilter extends AbstractIdentityAssertionFilt
 
   private String[] combineGroupMappings(String[] mappedGroups, String[] groups) {
     if (mappedGroups != null && groups != null) {
-      return (String[])ArrayUtils.addAll(mappedGroups, groups);
+      return ArrayUtils.addAll(mappedGroups, groups);
     }
     else {
       return groups != null ? groups : mappedGroups;
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/ext/UrlRewriteActionRewriteProcessorExt.java b/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/ext/UrlRewriteActionRewriteProcessorExt.java
index 0eaf966..c215cf3 100644
--- a/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/ext/UrlRewriteActionRewriteProcessorExt.java
+++ b/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/ext/UrlRewriteActionRewriteProcessorExt.java
@@ -29,7 +29,6 @@ public class UrlRewriteActionRewriteProcessorExt
     implements UrlRewriteStepProcessor<UrlRewriteActionRewriteDescriptorExt> {
 
   private Template template;
-  private Expander expander;
 
   @Override
   public String getType() {
@@ -38,7 +37,6 @@ public class UrlRewriteActionRewriteProcessorExt
 
   @Override
   public void initialize( UrlRewriteEnvironment environment, UrlRewriteActionRewriteDescriptorExt descriptor ) throws Exception {
-    this.expander = new Expander();
     if ( descriptor.parameter() != null ) {
       this.template = Parser.parseTemplate( descriptor.parameter() );
     } else {
@@ -48,7 +46,7 @@ public class UrlRewriteActionRewriteProcessorExt
 
   @Override
   public UrlRewriteStepStatus process( UrlRewriteContext context ) throws Exception {
-    Template rewritten = expander.expandToTemplate( template, context.getParameters(), context.getEvaluator() );
+    Template rewritten = Expander.expandToTemplate( template, context.getParameters(), context.getEvaluator() );
     context.setCurrentUrl( rewritten );
     return UrlRewriteStepStatus.SUCCESS;
   }
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteFunctionProcessorFactory.java b/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteFunctionProcessorFactory.java
index 06cccab..0035c68 100644
--- a/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteFunctionProcessorFactory.java
+++ b/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteFunctionProcessorFactory.java
@@ -66,11 +66,8 @@ public abstract class UrlRewriteFunctionProcessorFactory {
     ServiceLoader<UrlRewriteFunctionProcessor> processors = ServiceLoader.load( UrlRewriteFunctionProcessor.class );
     for( UrlRewriteFunctionProcessor processor : processors ) {
       Class<? extends UrlRewriteFunctionDescriptor> descriptorInterface = getDescriptorInterface( processor );
-      Map<String,Class<? extends UrlRewriteFunctionProcessor>> typeMap = descriptorMap.get( descriptorInterface );
-      if( typeMap == null ) {
-        typeMap = new HashMap<>();
-        descriptorMap.put( descriptorInterface, typeMap );
-      }
+      Map<String, Class<? extends UrlRewriteFunctionProcessor>> typeMap = descriptorMap
+          .computeIfAbsent(descriptorInterface, k -> new HashMap<>());
       String functionName = processor.name();
       typeMap.put( functionName, processor.getClass() );
     }
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteStepProcessorFactory.java b/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteStepProcessorFactory.java
index cd1e724..3851396 100644
--- a/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteStepProcessorFactory.java
+++ b/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteStepProcessorFactory.java
@@ -62,11 +62,8 @@ public abstract class UrlRewriteStepProcessorFactory {
     ServiceLoader<UrlRewriteStepProcessor> processors = ServiceLoader.load( UrlRewriteStepProcessor.class );
     for( UrlRewriteStepProcessor processor : processors ) {
       Class<? extends UrlRewriteStepDescriptor> descriptorInterface = getDescriptorInterface( processor );
-      Map<String,Class<? extends UrlRewriteStepProcessor>> typeMap = descriptorMap.get( descriptorInterface );
-      if( typeMap == null ) {
-        typeMap = new HashMap<>();
-        descriptorMap.put( descriptorInterface, typeMap );
-      }
+      Map<String, Class<? extends UrlRewriteStepProcessor>> typeMap = descriptorMap
+          .computeIfAbsent(descriptorInterface, k -> new HashMap<>());
       String processorType = processor.getType();
       typeMap.put( processorType, processor.getClass() );
     }
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/json/JsonFilterReader.java b/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/json/JsonFilterReader.java
index 3c32604..87bbe51 100644
--- a/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/json/JsonFilterReader.java
+++ b/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/json/JsonFilterReader.java
@@ -189,10 +189,8 @@ class JsonFilterReader extends Reader {
         throw new IllegalStateException();
       }
     }
-    if( bufferingLevel == null ) {
-      if( !startBuffering( child ) ) {
-        generator.writeStartObject();
-      }
+    if( bufferingLevel == null && !startBuffering( child ) ) {
+      generator.writeStartObject();
     }
   }
 
@@ -253,10 +251,8 @@ class JsonFilterReader extends Reader {
         throw new IllegalStateException();
       }
     }
-    if( bufferingLevel == null ) {
-      if( !startBuffering( child ) ) {
-        generator.writeStartArray();
-      }
+    if( bufferingLevel == null && !startBuffering( child ) ) {
+      generator.writeStartArray();
     }
   }
 
@@ -525,12 +521,10 @@ class JsonFilterReader extends Reader {
         List<JsonPath.Match> matches = path.evaluate( node.scopeNode );
         if( matches != null && !matches.isEmpty() ) {
           JsonPath.Match match = matches.get( 0 );
-          if( match.getNode().isTextual() ) {
-            if( selector instanceof UrlRewriteFilterApplyDescriptor ) {
-              UrlRewriteFilterApplyDescriptor apply = (UrlRewriteFilterApplyDescriptor)selector;
-              rule = apply.rule();
-              break;
-            }
+          if( match.getNode().isTextual() && selector instanceof UrlRewriteFilterApplyDescriptor ) {
+            UrlRewriteFilterApplyDescriptor apply = (UrlRewriteFilterApplyDescriptor)selector;
+            rule = apply.rule();
+            break;
           }
         }
       }
@@ -580,10 +574,8 @@ class JsonFilterReader extends Reader {
       JsonPath.Expression path = (JsonPath.Expression)selector.compiledPath( JPATH_COMPILER );
       List<JsonPath.Match> matches = path.evaluate( node.node );
       for( JsonPath.Match match : matches ) {
-        if( match.getNode().isTextual() ) {
-          if( selector instanceof UrlRewriteFilterApplyDescriptor ) {
-            filterBufferedValue( match, (UrlRewriteFilterApplyDescriptor)selector );
-          }
+        if( match.getNode().isTextual() && selector instanceof UrlRewriteFilterApplyDescriptor ) {
+          filterBufferedValue( match, (UrlRewriteFilterApplyDescriptor)selector );
         }
       }
     }
diff --git a/gateway-provider-security-authz-composite/src/main/java/org/apache/knox/gateway/deploy/impl/CompositeAuthzDeploymentContributor.java b/gateway-provider-security-authz-composite/src/main/java/org/apache/knox/gateway/deploy/impl/CompositeAuthzDeploymentContributor.java
index 5e7562c..6d3be5f 100644
--- a/gateway-provider-security-authz-composite/src/main/java/org/apache/knox/gateway/deploy/impl/CompositeAuthzDeploymentContributor.java
+++ b/gateway-provider-security-authz-composite/src/main/java/org/apache/knox/gateway/deploy/impl/CompositeAuthzDeploymentContributor.java
@@ -43,11 +43,6 @@ public class CompositeAuthzDeploymentContributor extends ProviderDeploymentContr
   }
 
   @Override
-  public void initializeContribution(DeploymentContext context) {
-    super.initializeContribution(context);
-  }
-
-  @Override
   public void contributeProvider( DeploymentContext context, Provider provider ) {
   }
 
@@ -71,8 +66,7 @@ public class CompositeAuthzDeploymentContributor extends ProviderDeploymentContr
   }
 
   String[] parseProviderNames(String providerNames) {
-    String[] names = providerNames.split(",\\s*");
-    return names;
+    return providerNames.split(",\\s*");
   }
 
   void getProviderSpecificParams(ResourceDescriptor resource, List<FilterParamDescriptor> params,
diff --git a/gateway-provider-security-shiro/src/main/java/org/apache/knox/gateway/deploy/impl/ShiroConfig.java b/gateway-provider-security-shiro/src/main/java/org/apache/knox/gateway/deploy/impl/ShiroConfig.java
index 60ac744..a783790 100644
--- a/gateway-provider-security-shiro/src/main/java/org/apache/knox/gateway/deploy/impl/ShiroConfig.java
+++ b/gateway-provider-security-shiro/src/main/java/org/apache/knox/gateway/deploy/impl/ShiroConfig.java
@@ -50,11 +50,7 @@ public class ShiroConfig {
   }
 
   private void addNameValueToSection(String name, String value, String sectionName) {
-    Map<String, String> section = sections.get(sectionName);
-    if (section == null) {
-      section = new LinkedHashMap<>();
-      sections.put(sectionName, section);
-    }
+    Map<String, String> section = sections.computeIfAbsent(sectionName, k -> new LinkedHashMap<>());
     section.put(name, value);
   }
 
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java b/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
index db699fc..9fa36ae 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
@@ -126,6 +126,8 @@ public class GatewayServer {
   private static final Auditor auditor = AuditServiceFactory.getAuditService().getAuditor(AuditConstants.DEFAULT_AUDITOR_NAME,
       AuditConstants.KNOX_SERVICE_NAME, AuditConstants.KNOX_COMPONENT_NAME);
 
+  private static final String TOPOLOGY_EXTENSION = ".topo.";
+
   static final String KNOXSESSIONCOOKIENAME = "KNOXSESSIONID";
 
   private static GatewayServer server;
@@ -1032,7 +1034,7 @@ public class GatewayServer {
   }
 
   private String calculateDeploymentExtension() {
-    return ".topo.";
+    return TOPOLOGY_EXTENSION;
   }
 
   private String calculateDeploymentName( Topology topology ) {
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/deploy/DeploymentFactory.java b/gateway-server/src/main/java/org/apache/knox/gateway/deploy/DeploymentFactory.java
index 844ea85..170c76b 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/deploy/DeploymentFactory.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/deploy/DeploymentFactory.java
@@ -137,11 +137,9 @@ public abstract class DeploymentFactory {
           }
           for( String url : urls ) {
             List<Application> dups = findApplicationsByUrl( topology, url );
-            if( dups != null ) {
-              for( Application dup : dups ) {
-                if( dup != app ) { //NOPMD - check for exact same object
-                  throw new DeploymentException( "Topology " + topology.getName() + " contains applications " + app.getName() + " and " + dup.getName() + " with the same url: " + url );
-                }
+            for( Application dup : dups ) {
+              if( dup != app ) { //NOPMD - check for exact same object
+                throw new DeploymentException( "Topology " + topology.getName() + " contains applications " + app.getName() + " and " + dup.getName() + " with the same url: " + url );
               }
             }
           }
@@ -153,9 +151,10 @@ public abstract class DeploymentFactory {
   // Verify that if there are services that there are no applications with a root url.
   static void validateNoAppsWithRootUrlsInServicesTopology( Topology topology ) {
     if( topology != null ) {
-      if( topology.getServices() != null && !topology.getServices().isEmpty() ) {
+      Collection<Service> services = topology.getServices();
+      if( services != null && !services.isEmpty() ) {
         List<Application> dups = findApplicationsByUrl( topology, "/" );
-        if( dups != null && !dups.isEmpty() ) {
+        if(!dups.isEmpty()) {
           throw new DeploymentException( "Topology " + topology.getName() + " contains both services and an application " + dups.get( 0 ).getName() + " with a root url." );
         }
       }
@@ -307,11 +306,7 @@ public abstract class DeploymentFactory {
   private static void collectDefaultProviders( Map<String,List<ProviderDeploymentContributor>> defaults ) {
     for( ProviderDeploymentContributor contributor : PROVIDER_CONTRIBUTORS ) {
       String role = contributor.getRole();
-      List<ProviderDeploymentContributor> list = defaults.get( role );
-      if( list == null ) {
-        list = new ArrayList<>();
-        defaults.put( role, list );
-      }
+      List<ProviderDeploymentContributor> list = defaults.computeIfAbsent(role, k -> new ArrayList<>());
       if( list.isEmpty() ) {
         list.add( contributor );
       }
@@ -327,11 +322,7 @@ public abstract class DeploymentFactory {
       String role = service.getRole();
       ServiceDeploymentContributor contributor = getServiceContributor( role, service.getName(), service.getVersion() );
       if( contributor != null ) {
-        List<ServiceDeploymentContributor> list = defaults.get( role );
-        if( list == null ) {
-          list = new ArrayList<>( 1 );
-          defaults.put( role, list );
-        }
+        List<ServiceDeploymentContributor> list = defaults.computeIfAbsent(role, k -> new ArrayList<>(1));
         if( !list.contains( contributor ) ) {
           list.add( contributor );
         }
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/services/metrics/impl/instr/InstrHttpClientBuilderProvider.java b/gateway-server/src/main/java/org/apache/knox/gateway/services/metrics/impl/instr/InstrHttpClientBuilderProvider.java
index c7bb39d..f113310 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/services/metrics/impl/instr/InstrHttpClientBuilderProvider.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/services/metrics/impl/instr/InstrHttpClientBuilderProvider.java
@@ -58,7 +58,7 @@ public class InstrHttpClientBuilderProvider implements
         RequestLine requestLine = request.getRequestLine();
         URIBuilder uriBuilder = new URIBuilder(requestLine.getUri());
         String resourcePath = InstrUtils.getResourcePath(uriBuilder.removeQuery().build().toString());
-        return MetricRegistry.name("service", new String[]{name, context + resourcePath, methodNameString(request)});
+        return MetricRegistry.name("service", name, context + resourcePath, methodNameString(request));
       } catch (URISyntaxException e) {
         throw new IllegalArgumentException(e);
       }
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/services/security/impl/DefaultAliasService.java b/gateway-server/src/main/java/org/apache/knox/gateway/services/security/impl/DefaultAliasService.java
index 7f40e3b..a3af2c5 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/services/security/impl/DefaultAliasService.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/services/security/impl/DefaultAliasService.java
@@ -117,11 +117,9 @@ public class DefaultAliasService implements AliasService {
     char[] credential;
     try {
       credential = keystoreService.getCredentialForCluster(clusterName, alias);
-      if (credential == null) {
-        if (generate) {
-          generateAliasForCluster(clusterName, alias);
-          credential = keystoreService.getCredentialForCluster(clusterName, alias);
-        }
+      if (credential == null && generate) {
+        generateAliasForCluster(clusterName, alias);
+        credential = keystoreService.getCredentialForCluster(clusterName, alias);
       }
     } catch (KeystoreServiceException e) {
       LOG.failedToGetCredentialForCluster(clusterName, e);
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/services/security/impl/DefaultCryptoService.java b/gateway-server/src/main/java/org/apache/knox/gateway/services/security/impl/DefaultCryptoService.java
index 3aea783..755eb60 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/services/security/impl/DefaultCryptoService.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/services/security/impl/DefaultCryptoService.java
@@ -41,9 +41,10 @@ import org.apache.knox.gateway.services.ServiceLifecycleException;
 public class DefaultCryptoService implements CryptoService {
   private static final GatewayMessages LOG = MessagesFactory.get( GatewayMessages.class );
 
+  private static final Map<String,ConfigurableEncryptor> ENCRYPTOR_CACHE = new HashMap<>();
+
   private AliasService as;
   private KeystoreService ks;
-  private Map<String,ConfigurableEncryptor> encryptorCache = new HashMap<>();
   private GatewayConfig config;
 
   public void setKeystoreService(KeystoreService ks) {
@@ -162,12 +163,12 @@ public class DefaultCryptoService implements CryptoService {
   // The assumption here is that lock contention will be less of a performance issue than the cost of object creation.
   // We have seen via profiling that AESEncryptor instantiation is very expensive.
   private ConfigurableEncryptor getEncryptor( final String clusterName, final char[] password ) {
-    synchronized( encryptorCache ) {
-      ConfigurableEncryptor encryptor = encryptorCache.get( clusterName );
+    synchronized(ENCRYPTOR_CACHE) {
+      ConfigurableEncryptor encryptor = ENCRYPTOR_CACHE.get( clusterName );
       if( encryptor == null ) {
         encryptor = new ConfigurableEncryptor( String.valueOf( password ) );
         encryptor.init(config);
-        encryptorCache.put( clusterName, encryptor );
+        ENCRYPTOR_CACHE.put( clusterName, encryptor );
       }
       return encryptor;
     }
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/services/token/impl/DefaultTokenStateService.java b/gateway-server/src/main/java/org/apache/knox/gateway/services/token/impl/DefaultTokenStateService.java
index b77e678..b3d6d24 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/services/token/impl/DefaultTokenStateService.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/services/token/impl/DefaultTokenStateService.java
@@ -31,7 +31,7 @@ import java.util.Set;
  */
 public class DefaultTokenStateService implements TokenStateService {
 
-  protected static final long DEFAULT_RENEWAL_INTERVAL = 24 * 60 * 60 * 1000; // 24 hours
+  protected static final long DEFAULT_RENEWAL_INTERVAL = 24 * 60 * 60 * 1000L; // 24 hours
 
   protected static final int MAX_RENEWALS = 7;
 
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/services/topology/impl/DefaultTopologyService.java b/gateway-server/src/main/java/org/apache/knox/gateway/services/topology/impl/DefaultTopologyService.java
index 274f693..85470f9 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/services/topology/impl/DefaultTopologyService.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/services/topology/impl/DefaultTopologyService.java
@@ -998,13 +998,11 @@ public class DefaultTopologyService
         // Identify any descriptors associated with the cluster configuration change
         for (File descriptor : topologyService.getDescriptors()) {
           String descriptorContent = FileUtils.readFileToString(descriptor, StandardCharsets.UTF_8);
-          if (descriptorContent.contains(source)) {
-            if (descriptorContent.contains(clusterName)) {
-              affectedDescriptors = true;
-              log.triggeringTopologyRegeneration(source, clusterName, descriptor.getAbsolutePath());
-              // 'Touch' the descriptor to trigger re-generation of the associated topology
-              descriptor.setLastModified(System.currentTimeMillis());
-            }
+          if (descriptorContent.contains(source) && descriptorContent.contains(clusterName)) {
+            affectedDescriptors = true;
+            log.triggeringTopologyRegeneration(source, clusterName, descriptor.getAbsolutePath());
+            // 'Touch' the descriptor to trigger re-generation of the associated topology
+            descriptor.setLastModified(System.currentTimeMillis());
           }
         }
 
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/topology/monitor/RemoteConfigurationMonitorFactory.java b/gateway-server/src/main/java/org/apache/knox/gateway/topology/monitor/RemoteConfigurationMonitorFactory.java
index 6801ac5..15ab3f2 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/topology/monitor/RemoteConfigurationMonitorFactory.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/topology/monitor/RemoteConfigurationMonitorFactory.java
@@ -31,7 +31,7 @@ public class RemoteConfigurationMonitorFactory {
 
     private static RemoteConfigurationRegistryClientService remoteConfigRegistryClientService;
 
-    static void setClientService(RemoteConfigurationRegistryClientService clientService) {
+    static synchronized void setClientService(RemoteConfigurationRegistryClientService clientService) {
         remoteConfigRegistryClientService = clientService;
     }
 
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/topology/simple/SimpleDescriptorHandler.java b/gateway-server/src/main/java/org/apache/knox/gateway/topology/simple/SimpleDescriptorHandler.java
index fd8d7f7..34f2f5b 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/topology/simple/SimpleDescriptorHandler.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/topology/simple/SimpleDescriptorHandler.java
@@ -554,10 +554,10 @@ public class SimpleDescriptorHandler {
                     // Params
                     Map<String, String> appParams = app.getParams();
                     if (appParams != null) {
-                        for (String paramName : appParams.keySet()) {
+                        for (Entry<String, String> entry : appParams.entrySet()) {
                             sw.write("        <param>\n");
-                            sw.write("            <name>" + paramName + "</name>\n");
-                            sw.write("            <value>" + appParams.get(paramName) + "</value>\n");
+                            sw.write("            <name>" + entry.getKey() + "</name>\n");
+                            sw.write("            <value>" + entry.getValue() + "</value>\n");
                             sw.write("        </param>\n");
                         }
                     }
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/util/KnoxCLI.java b/gateway-server/src/main/java/org/apache/knox/gateway/util/KnoxCLI.java
index daae9f3..c4de38d 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/util/KnoxCLI.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/util/KnoxCLI.java
@@ -260,7 +260,7 @@ public class KnoxCLI extends Configured implements Tool {
           return -1;
         }
         this.value = args[++i];
-        if ( command != null && command instanceof MasterCreateCommand ) {
+        if ( command instanceof MasterCreateCommand ) {
           this.master = this.value;
         }
       } else if ( args[i].equals("version") ) {
@@ -290,7 +290,7 @@ public class KnoxCLI extends Configured implements Tool {
           command = new ServiceTestCommand();
         }
       } else if (args[i].equals("--generate")) {
-        if ( command != null && command instanceof MasterCreateCommand ) {
+        if ( command instanceof MasterCreateCommand ) {
           this.master = UUID.randomUUID().toString();
         } else {
           this.generate = "true";
@@ -898,7 +898,7 @@ public class KnoxCLI extends Configured implements Tool {
    private GatewayConfig getGatewayConfig() {
      GatewayConfig result;
      Configuration conf = getConf();
-     if( conf != null && conf instanceof GatewayConfig ) {
+     if( conf instanceof GatewayConfig ) {
        result = (GatewayConfig)conf;
      } else {
        result = new GatewayConfigImpl();
@@ -1649,7 +1649,7 @@ public class KnoxCLI extends Configured implements Tool {
   private GatewayConfig getGatewayConfig() {
     GatewayConfig result;
     Configuration conf = getConf();
-    if(conf != null && conf instanceof GatewayConfig) {
+    if(conf instanceof GatewayConfig) {
       result = (GatewayConfig) conf;
     } else {
       result = new GatewayConfigImpl();
diff --git a/gateway-service-admin/src/main/java/org/apache/knox/gateway/service/admin/ServiceDefinitionsResource.java b/gateway-service-admin/src/main/java/org/apache/knox/gateway/service/admin/ServiceDefinitionsResource.java
index c765baa..e6d669f 100644
--- a/gateway-service-admin/src/main/java/org/apache/knox/gateway/service/admin/ServiceDefinitionsResource.java
+++ b/gateway-service-admin/src/main/java/org/apache/knox/gateway/service/admin/ServiceDefinitionsResource.java
@@ -73,7 +73,7 @@ public class ServiceDefinitionsResource {
   @Produces({ APPLICATION_JSON, APPLICATION_XML })
   @Path("servicedefinitions")
   public ServiceDefinitionsWrapper getServiceDefinitions(@QueryParam("serviceOnly") @DefaultValue("false") boolean serviceOnly) {
-    return getServiceDefinitions((Predicate<? super ServiceDefinitionPair>) null, serviceOnly);
+    return getServiceDefinitions(null, serviceOnly);
   }
 
   @GET
diff --git a/gateway-service-admin/src/main/java/org/apache/knox/gateway/service/admin/ServiceDiscoveryResource.java b/gateway-service-admin/src/main/java/org/apache/knox/gateway/service/admin/ServiceDiscoveryResource.java
index 5cbea74..2845191 100644
--- a/gateway-service-admin/src/main/java/org/apache/knox/gateway/service/admin/ServiceDiscoveryResource.java
+++ b/gateway-service-admin/src/main/java/org/apache/knox/gateway/service/admin/ServiceDiscoveryResource.java
@@ -93,10 +93,8 @@ public class ServiceDiscoveryResource {
     }
 
     void setKnoxServiceDiscoveries(Collection<ServiceDiscovery> serviceDiscoveries) {
-      serviceDiscoveries.forEach(serviceDiscovery -> {
-        this.knoxServiceDiscoveries.add(new KnoxServiceDiscovery(serviceDiscovery.getType(), serviceDiscovery.getClass().getCanonicalName()));
-
-      });
+      serviceDiscoveries.forEach(serviceDiscovery -> this.knoxServiceDiscoveries.add(
+          new KnoxServiceDiscovery(serviceDiscovery.getType(), serviceDiscovery.getClass().getCanonicalName())));
     }
   }
 }
diff --git a/gateway-service-admin/src/main/java/org/apache/knox/gateway/service/admin/TopologiesResource.java b/gateway-service-admin/src/main/java/org/apache/knox/gateway/service/admin/TopologiesResource.java
index 2199da4..00e4e28 100644
--- a/gateway-service-admin/src/main/java/org/apache/knox/gateway/service/admin/TopologiesResource.java
+++ b/gateway-service-admin/src/main/java/org/apache/knox/gateway/service/admin/TopologiesResource.java
@@ -500,9 +500,9 @@ public class TopologiesResource {
   private String getExtensionForMediaType(MediaType type) {
     String extension = null;
 
-    for (MediaType key : mediaTypeFileExtensions.keySet()) {
-      if (type.isCompatible(key)) {
-        extension = mediaTypeFileExtensions.get(key);
+    for (Map.Entry<MediaType, String> entry : mediaTypeFileExtensions.entrySet()) {
+      if (type.isCompatible(entry.getKey())) {
+        extension = entry.getValue();
         break;
       }
     }
@@ -521,19 +521,9 @@ public class TopologiesResource {
     return result;
   }
 
-
   private static boolean isValidResourceName(final String name) {
-    boolean isValid = false;
-
-    if (name != null) {
-      if (name.length() <= RESOURCE_NAME_LENGTH_MAX) {
-        if (RESOURCE_NAME_PATTERN.matcher(name).matches()) {
-          isValid = true;
-        }
-      }
-    }
-
-    return isValid;
+    return name != null && name.length() <= RESOURCE_NAME_LENGTH_MAX &&
+        RESOURCE_NAME_PATTERN.matcher(name).matches();
   }
 
 
diff --git a/gateway-service-admin/src/test/java/org/apache/knox/gateway/service/admin/TopologyResourceTest.java b/gateway-service-admin/src/test/java/org/apache/knox/gateway/service/admin/TopologyResourceTest.java
index 43f69d2..e49015e 100644
--- a/gateway-service-admin/src/test/java/org/apache/knox/gateway/service/admin/TopologyResourceTest.java
+++ b/gateway-service-admin/src/test/java/org/apache/knox/gateway/service/admin/TopologyResourceTest.java
@@ -42,7 +42,11 @@ public class TopologyResourceTest {
   private String reqPort = "9001";
   private String gatewayPath = "gateway-path";
   private String reqContext = "/" + gatewayPath + "/a-topology";
-  private String proto = "proto", port = "1337", server = "my-server", host = server + ":" + port, startContext = "/mycontext";
+  private String proto = "proto";
+  private String port = "1337";
+  private String server = "my-server";
+  private String host = server + ":" + port;
+  private String startContext = "/mycontext";
   private String fullContext = startContext + reqContext;
   private String pathInfo = "/api/version";
   private String topologyName = "topology-name";
diff --git a/gateway-service-definitions/src/main/java/org/apache/knox/gateway/service/definition/ServiceDefinitionComparator.java b/gateway-service-definitions/src/main/java/org/apache/knox/gateway/service/definition/ServiceDefinitionComparator.java
index e55365b..e006c4e 100644
--- a/gateway-service-definitions/src/main/java/org/apache/knox/gateway/service/definition/ServiceDefinitionComparator.java
+++ b/gateway-service-definitions/src/main/java/org/apache/knox/gateway/service/definition/ServiceDefinitionComparator.java
@@ -29,16 +29,19 @@ import java.util.Comparator;
  * </ol>
  */
 public class ServiceDefinitionComparator implements Comparator<ServiceDefinition> {
-
   @Override
   public int compare(ServiceDefinition serviceDefinition, ServiceDefinition otherServiceDefinition) {
     if (serviceDefinition == null || otherServiceDefinition == null) {
       throw new IllegalArgumentException("One (or both) of the supplied service definitions is null");
     }
     final int byName = serviceDefinition.getName().compareTo(otherServiceDefinition.getName());
+    if(byName != 0) {
+      return byName;
+    }
     final int byRole = serviceDefinition.getRole().compareTo(otherServiceDefinition.getRole());
-    final int byVersion = serviceDefinition.getVersion().compareTo(otherServiceDefinition.getVersion());
-    return byName != 0 ? byName : byRole != 0 ? byRole : byVersion;
+    if(byRole != 0) {
+      return byRole;
+    }
+    return serviceDefinition.getVersion().compareTo(otherServiceDefinition.getVersion());
   }
-
 }
diff --git a/gateway-service-impala/src/main/java/org/apache/knox/gateway/impala/ImpalaDispatch.java b/gateway-service-impala/src/main/java/org/apache/knox/gateway/impala/ImpalaDispatch.java
index 1b84ea6..7604a64 100644
--- a/gateway-service-impala/src/main/java/org/apache/knox/gateway/impala/ImpalaDispatch.java
+++ b/gateway-service-impala/src/main/java/org/apache/knox/gateway/impala/ImpalaDispatch.java
@@ -30,11 +30,6 @@ public class ImpalaDispatch extends DefaultDispatch {
   private boolean basicAuthPreemptive;
 
   @Override
-  public void init() {
-    super.init();
-  }
-
-  @Override
   protected void addCredentialsToRequest(HttpUriRequest request) {
     if( isBasicAuthPreemptive() ) {
       ImpalaDispatchUtils.addCredentialsToRequest(request);
diff --git a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/Credentials.java b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/Credentials.java
index 13ac9bf..b0a66b7 100644
--- a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/Credentials.java
+++ b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/Credentials.java
@@ -22,7 +22,7 @@ import java.util.List;
 import java.util.ServiceLoader;
 
 public class Credentials {
-  List<CredentialCollector> collectors = new ArrayList<CredentialCollector>();
+  List<CredentialCollector> collectors = new ArrayList<>();
 
   public Credentials add(String collectorType, String prompt, String name)
     throws CredentialCollectionException {
diff --git a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/ErrorResponse.java b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/ErrorResponse.java
index bf625a3..c60ad00 100644
--- a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/ErrorResponse.java
+++ b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/ErrorResponse.java
@@ -20,8 +20,7 @@ package org.apache.knox.gateway.shell;
 import org.apache.http.HttpResponse;
 
 public class ErrorResponse extends RuntimeException {
-
-  HttpResponse response;
+  private final HttpResponse response;
 
   ErrorResponse(String text, HttpResponse response) {
     super(text + response.getStatusLine());
@@ -31,5 +30,4 @@ public class ErrorResponse extends RuntimeException {
   public HttpResponse getResponse() {
     return response;
   }
-
 }
diff --git a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/KnoxSession.java b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/KnoxSession.java
index 3952a1c..bbfb288 100644
--- a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/KnoxSession.java
+++ b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/KnoxSession.java
@@ -328,10 +328,8 @@ public class KnoxSession implements Closeable {
 
       // (KNOX-2001) Log a warning if the useSubjectCredsOnly restriction is "relaxed"
       String useSubjectCredsOnly = System.getProperty("javax.security.auth.useSubjectCredsOnly");
-      if (useSubjectCredsOnly != null) {
-        if (!Boolean.valueOf(useSubjectCredsOnly)) {
-          LOG.useSubjectCredsOnlyIsFalse();
-        }
+      if (useSubjectCredsOnly != null && !Boolean.parseBoolean(useSubjectCredsOnly)) {
+        LOG.useSubjectCredsOnlyIsFalse();
       }
 
       final Registry<AuthSchemeProvider> authSchemeRegistry =
diff --git a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/JoinKnoxShellTableBuilder.java b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/JoinKnoxShellTableBuilder.java
index 68e44ac..98665cc 100644
--- a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/JoinKnoxShellTableBuilder.java
+++ b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/JoinKnoxShellTableBuilder.java
@@ -63,17 +63,17 @@ public class JoinKnoxShellTableBuilder extends KnoxShellTableBuilder {
       this.table.title(title);
     }
 
-    this.table.headers.addAll(new ArrayList<String>(left.headers));
+    this.table.headers.addAll(new ArrayList<>(left.headers));
     for (List<Comparable<? extends Object>> row : left.rows) {
-      this.table.rows.add(new ArrayList<Comparable<? extends Object>>(row));
+      this.table.rows.add(new ArrayList<>(row));
     }
     List<Comparable<? extends Object>> row;
     Comparable<? extends Object> leftKey;
     int matchedIndex;
 
-    this.table.headers.addAll(new ArrayList<String>(right.headers));
+    this.table.headers.addAll(new ArrayList<>(right.headers));
     for (Iterator<List<Comparable<? extends Object>>> it = this.table.rows.iterator(); it.hasNext();) {
-      row = (List<Comparable<? extends Object>>) it.next();
+      row = it.next();
       leftKey = row.get(leftIndex);
       if (leftKey != null) {
         matchedIndex = right.values(rightIndex).indexOf(leftKey);
diff --git a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTable.java b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTable.java
index 6365a14..560ac20 100644
--- a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTable.java
+++ b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTable.java
@@ -27,7 +27,6 @@ import javax.swing.SortOrder;
 import com.fasterxml.jackson.annotation.JsonFilter;
 import org.apache.commons.math3.stat.StatUtils;
 
-
 /**
  * Simple table representation and text based rendering of a table via
  * toString(). Headers are optional but when used must have the same count as
@@ -48,8 +47,8 @@ public class KnoxShellTable {
 
   private static final String LINE_SEPARATOR = System.getProperty("line.separator");
 
-  List<String> headers = new ArrayList<String>();
-  List<List<Comparable<? extends Object>>> rows = new ArrayList<List<Comparable<? extends Object>>>();
+  List<String> headers = new ArrayList<>();
+  List<List<Comparable<? extends Object>>> rows = new ArrayList<>();
   String title;
   long id;
 
@@ -68,7 +67,7 @@ public class KnoxShellTable {
   }
 
   public KnoxShellTable row() {
-    rows.add(new ArrayList<Comparable<? extends Object>>());
+    rows.add(new ArrayList<>());
     return this;
   }
 
@@ -84,14 +83,14 @@ public class KnoxShellTable {
   }
 
   public List<Comparable<? extends Object>> values(int colIndex) {
-    List<Comparable<? extends Object>> col = new ArrayList<Comparable<? extends Object>>();
+    List<Comparable<? extends Object>> col = new ArrayList<>();
     rows.forEach(row -> col.add(row.get(colIndex)));
     return col;
   }
 
   public List<Comparable<? extends Object>> values(String colName) {
     int colIndex = headers.indexOf(colName);
-    List<Comparable<? extends Object>> col = new ArrayList<Comparable<? extends Object>>();
+    List<Comparable<? extends Object>> col = new ArrayList<>();
     rows.forEach(row -> col.add(row.get(colIndex)));
     return col;
   }
@@ -140,25 +139,25 @@ public class KnoxShellTable {
       }
       switch (conversionMethod) {
         case DOUBLE:
-          colArray[i] = (double) ((Double) col.get(i));
+          colArray[i] = (Double) col.get(i);
           break;
         case INTEGER:
-          colArray[i] = (double) ((Integer) col.get(i)).intValue();
+          colArray[i] = (Integer) col.get(i);
           break;
         case FLOAT:
-          colArray[i] = (double) ((Float) col.get(i)).floatValue();
+          colArray[i] = (Float) col.get(i);
           break;
         case BYTE:
-          colArray[i] = (double) ((Byte) col.get(i)).byteValue();
+          colArray[i] = (Byte) col.get(i);
           break;
         case SHORT:
-          colArray[i] = (double) ((Short) col.get(i)).shortValue();
+          colArray[i] = (Short) col.get(i);
           break;
         case LONG:
-          colArray[i] = (double) ((Long) col.get(i)).longValue();
+          colArray[i] = (double) (Long) col.get(i);
           break;
         case STRING:
-          colArray[i] = (double) (Double.parseDouble((String) col.get(i)));
+          colArray[i] = Double.parseDouble((String) col.get(i));
           break;
       }
     }
@@ -207,7 +206,7 @@ public class KnoxShellTable {
    * @return mode
    */
   public double mode(String colName) {
-    return (double) StatUtils.mode(toDoubleArray(colName))[0];
+    return StatUtils.mode(toDoubleArray(colName))[0];
   }
 
   /**
@@ -312,11 +311,11 @@ public class KnoxShellTable {
   }
 
   public String getCallHistory() {
-    final StringBuilder callHistoryStringBuilder = new StringBuilder("Call history (id=" + id + ")" + LINE_SEPARATOR + LINE_SEPARATOR);
+    final StringBuilder callHistoryStringBuilder = new StringBuilder("Call history (id=")
+        .append(id).append(')').append(LINE_SEPARATOR).append(LINE_SEPARATOR);
     final AtomicInteger index = new AtomicInteger(1);
-    getCallHistoryList().forEach(callHistory -> {
-      callHistoryStringBuilder.append("Step ").append(index.getAndIncrement()).append(":" + LINE_SEPARATOR).append(callHistory).append(LINE_SEPARATOR);
-    });
+    getCallHistoryList().forEach(callHistory -> callHistoryStringBuilder.append("Step ")
+        .append(index.getAndIncrement()).append(':').append(LINE_SEPARATOR).append(callHistory).append(LINE_SEPARATOR));
     return callHistoryStringBuilder.toString();
   }
 
@@ -348,7 +347,7 @@ public class KnoxShellTable {
 
   public KnoxShellTable select(String cols) {
     KnoxShellTable table = new KnoxShellTable();
-    List<List<Comparable<? extends Object>>> columns = new ArrayList<List<Comparable<? extends Object>>>();
+    List<List<Comparable<? extends Object>>> columns = new ArrayList<>();
     String[] colnames = cols.split(",");
     for (String colName : colnames) {
       table.header(colName);
@@ -372,7 +371,7 @@ public class KnoxShellTable {
 
     Comparable<? extends Object> value;
     List<Comparable<? extends Object>> col = values(colName);
-    List<RowIndex> index = new ArrayList<RowIndex>();
+    List<RowIndex> index = new ArrayList<>();
     for (int i = 0; i < col.size(); i++) {
       value = col.get(i);
       index.add(new RowIndex(value, i));
@@ -381,11 +380,11 @@ public class KnoxShellTable {
       Collections.sort(index);
     }
     else {
-      Collections.sort(index, Collections.reverseOrder());
+      index.sort(Collections.reverseOrder());
     }
-    table.headers = new ArrayList<String>(headers);
+    table.headers = new ArrayList<>(headers);
     for (RowIndex i : index) {
-      table.rows.add(new ArrayList<Comparable<? extends Object>>(this.rows.get(i.index)));
+      table.rows.add(new ArrayList<>(this.rows.get(i.index)));
     }
     return table;
   }
diff --git a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableCall.java b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableCall.java
index 5592124..6ef5c2d 100644
--- a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableCall.java
+++ b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableCall.java
@@ -63,7 +63,7 @@ class KnoxShellTableCall {
 
   @JsonIgnore
   Class<?>[] getParameterTypes() {
-    final List<Class<?>> parameterTypes = new ArrayList<Class<?>>(params.size());
+    final List<Class<?>> parameterTypes = new ArrayList<>(params.size());
     if (KNOX_SHELL_TABLE_FILTER_TYPE.equals(invokerClass) && builderMethod) {
       parameterTypes.add(Comparable.class);
     } else {
diff --git a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableCallHistory.java b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableCallHistory.java
index da22495..77451de 100644
--- a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableCallHistory.java
+++ b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableCallHistory.java
@@ -19,7 +19,6 @@ package org.apache.knox.gateway.shell.table;
 
 import java.lang.reflect.Method;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
@@ -46,14 +45,14 @@ class KnoxShellTableCallHistory {
   private final Map<Long, List<KnoxShellTableCall>> callHistory = new ConcurrentHashMap<>();
 
   private KnoxShellTableCallHistory() {
-  };
+  }
 
   static KnoxShellTableCallHistory getInstance() {
     return INSTANCE;
   }
 
   void saveCall(long id, KnoxShellTableCall call) {
-    saveCalls(id, Arrays.asList(call));
+    saveCalls(id, Collections.singletonList(call));
   }
 
   void saveCalls(long id, List<KnoxShellTableCall> calls) {
@@ -64,9 +63,7 @@ class KnoxShellTableCallHistory {
   }
 
   void removeCallsById(long id) {
-    if (callHistory.containsKey(id)) {
-      callHistory.remove(id);
-    }
+    callHistory.remove(id);
   }
 
   public List<KnoxShellTableCall> getCallHistory(long id) {
diff --git a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableJSONSerializer.java b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableJSONSerializer.java
index 748d71f..7ea1ce3 100644
--- a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableJSONSerializer.java
+++ b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableJSONSerializer.java
@@ -34,10 +34,13 @@ import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
  * Object</li>
  * <li>conditionally exclude certain fields from the serialized JSON
  * representation</li>
+ * </ol>
  */
 class KnoxShellTableJSONSerializer {
 
-   static final DateFormat JSON_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.getDefault());
+  // SimpleDateFormat is not thread safe must use as a ThreadLocal
+  static final ThreadLocal<DateFormat> JSON_DATE_FORMAT = ThreadLocal.withInitial(() ->
+       new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.getDefault()));
 
   /**
    * Serializes the given {@link KnoxShellTable}
@@ -57,7 +60,6 @@ class KnoxShellTableJSONSerializer {
     } else {
       filterProvider.addFilter("knoxShellTableFilter", SimpleBeanPropertyFilter.filterOutAllExcept("callHistoryList"));
     }
-    return JsonUtils.renderAsJsonString(table, filterProvider, JSON_DATE_FORMAT);
+    return JsonUtils.renderAsJsonString(table, filterProvider, JSON_DATE_FORMAT.get());
   }
-
 }
diff --git a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableRowDeserializer.java b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableRowDeserializer.java
index 2dc01d1..1838d45 100644
--- a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableRowDeserializer.java
+++ b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableRowDeserializer.java
@@ -31,7 +31,6 @@ import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.TreeNode;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
-import com.fasterxml.jackson.databind.node.ObjectNode;
 
 /**
  * A custom @JsonDeserializer in order to be able to deserialize a previously
@@ -79,7 +78,7 @@ public class KnoxShellTableRowDeserializer extends StdDeserializer<KnoxShellTabl
   }
 
   private List<KnoxShellTableCall> parseCallHistoryListJSONNode(TreeNode callHistoryNode) throws IOException {
-    final List<KnoxShellTableCall> callHistoryList = new LinkedList<KnoxShellTableCall>();
+    final List<KnoxShellTableCall> callHistoryList = new LinkedList<>();
     TreeNode callNode;
     Map<Object, Class<?>> params;
     String invokerClass, method;
@@ -98,7 +97,7 @@ public class KnoxShellTableRowDeserializer extends StdDeserializer<KnoxShellTabl
   private Map<Object, Class<?>> fetchParameterMap(TreeNode paramsNode) throws IOException {
     try {
       final Map<Object, Class<?>> parameterMap = new HashMap<>();
-      final Iterator<String> paramsFieldNamesIterator = ((ObjectNode) paramsNode).fieldNames();
+      final Iterator<String> paramsFieldNamesIterator = paramsNode.fieldNames();
       String parameterValueAsString;
       Class<?> parameterType;
       while (paramsFieldNamesIterator.hasNext()) {
@@ -132,7 +131,7 @@ public class KnoxShellTableRowDeserializer extends StdDeserializer<KnoxShellTabl
     } else if (Boolean.class == type) {
       return Boolean.valueOf(valueAsString);
     } else if (Date.class == type) {
-      return KnoxShellTableJSONSerializer.JSON_DATE_FORMAT.parse(valueAsString);
+      return KnoxShellTableJSONSerializer.JSON_DATE_FORMAT.get().parse(valueAsString);
     }
 
     return type.cast(valueAsString); // may throw ClassCastException
diff --git a/gateway-spi/src/main/java/org/apache/knox/gateway/dispatch/DefaultDispatch.java b/gateway-spi/src/main/java/org/apache/knox/gateway/dispatch/DefaultDispatch.java
index 0f5d1f3..3cf9816 100644
--- a/gateway-spi/src/main/java/org/apache/knox/gateway/dispatch/DefaultDispatch.java
+++ b/gateway-spi/src/main/java/org/apache/knox/gateway/dispatch/DefaultDispatch.java
@@ -332,14 +332,14 @@ public class DefaultDispatch extends AbstractGatewayDispatch {
     if (excludedHeaderDirectives != null && excludedHeaderDirectives.containsKey(headerNameToCheck.toUpperCase(Locale.ROOT))) {
       final Set<String> excludedHeaderValues = excludedHeaderDirectives.get(headerNameToCheck.toUpperCase(Locale.ROOT));
       if (!excludedHeaderValues.isEmpty()) {
-        if (excludedHeaderValues.stream().filter(e -> e.equals(EXCLUDE_ALL)).findAny().isPresent()) {
+        if (excludedHeaderValues.stream().anyMatch(e -> e.equals(EXCLUDE_ALL))) {
           return ""; // we should exclude all -> there should not be any value added with this header
         } else {
           final String separator = SET_COOKIE.equalsIgnoreCase(headerNameToCheck) ? "; " : " ";
           Set<String> headerValuesToCheck = new HashSet<>(Arrays.asList(headerToCheck.getValue().trim().split("\\s+")));
           headerValuesToCheck = headerValuesToCheck.stream().map(h -> h.replaceAll(separator.trim(), "")).collect(Collectors.toSet());
           headerValuesToCheck.removeAll(excludedHeaderValues);
-          return headerValuesToCheck.isEmpty() ? "" : headerValuesToCheck.stream().collect(Collectors.joining(separator));
+          return headerValuesToCheck.isEmpty() ? "" : String.join(separator, headerValuesToCheck);
         }
       }
     }
diff --git a/gateway-spi/src/main/java/org/apache/knox/gateway/service/definition/ServiceDefinitionPairComparator.java b/gateway-spi/src/main/java/org/apache/knox/gateway/service/definition/ServiceDefinitionPairComparator.java
index 251a6a3..cea74c2 100644
--- a/gateway-spi/src/main/java/org/apache/knox/gateway/service/definition/ServiceDefinitionPairComparator.java
+++ b/gateway-spi/src/main/java/org/apache/knox/gateway/service/definition/ServiceDefinitionPairComparator.java
@@ -20,17 +20,15 @@ package org.apache.knox.gateway.service.definition;
 import java.util.Comparator;
 
 public class ServiceDefinitionPairComparator implements Comparator<ServiceDefinitionPair> {
-
-  final ServiceDefinitionComparator serviceDefinitionComparator = new ServiceDefinitionComparator();
+  private static final ServiceDefinitionComparator SERVICE_DEFINITION_COMPARATOR = new ServiceDefinitionComparator();
 
   @Override
   public int compare(ServiceDefinitionPair serviceDefinitionPair, ServiceDefinitionPair otherServiceDefinitionPair) {
     final ServiceDefinition service = serviceDefinitionPair.getService();
     final ServiceDefinition otherService = otherServiceDefinitionPair.getService();
-    if (service == null || otherServiceDefinitionPair == null) {
+    if (service == null || otherService == null) {
       throw new IllegalArgumentException("One (or both) of the supplied service definitions is null");
     }
-    return serviceDefinitionComparator.compare(service, otherService);
+    return SERVICE_DEFINITION_COMPARATOR.compare(service, otherService);
   }
-
 }
diff --git a/gateway-spi/src/main/java/org/apache/knox/gateway/service/definition/UrlRewriteRulesDescriptorAdapter.java b/gateway-spi/src/main/java/org/apache/knox/gateway/service/definition/UrlRewriteRulesDescriptorAdapter.java
index 4928fbc..8acdf89 100644
--- a/gateway-spi/src/main/java/org/apache/knox/gateway/service/definition/UrlRewriteRulesDescriptorAdapter.java
+++ b/gateway-spi/src/main/java/org/apache/knox/gateway/service/definition/UrlRewriteRulesDescriptorAdapter.java
@@ -61,7 +61,7 @@ public class UrlRewriteRulesDescriptorAdapter extends XmlAdapter<Object, UrlRewr
   @Override
   public Object marshal(UrlRewriteRulesDescriptor value) throws Exception {
     try (Writer writer = new StringWriter()) {
-      return (Node) xmlRewriteRulesExporter.store(value, writer, true);
+      return xmlRewriteRulesExporter.store(value, writer, true);
     }
   }
 }
diff --git a/gateway-spi/src/main/java/org/apache/knox/gateway/topology/Topology.java b/gateway-spi/src/main/java/org/apache/knox/gateway/topology/Topology.java
index 7b3066e..8f6e0e2 100644
--- a/gateway-spi/src/main/java/org/apache/knox/gateway/topology/Topology.java
+++ b/gateway-spi/src/main/java/org/apache/knox/gateway/topology/Topology.java
@@ -149,11 +149,7 @@ public class Topology {
   public void addProvider( Provider provider ) {
     providerList.add( provider );
     String role = provider.getRole();
-    Map<String,Provider> nameMap = providerMap.get( role );
-    if( nameMap == null ) {
-      nameMap = new HashMap<>();
-      providerMap.put( role, nameMap );
-    }
+    Map<String, Provider> nameMap = providerMap.computeIfAbsent(role, k -> new HashMap<>());
     nameMap.put( provider.getName(), provider );
   }
 
diff --git a/gateway-spi/src/main/java/org/apache/knox/gateway/topology/discovery/ServiceDiscoveryFactory.java b/gateway-spi/src/main/java/org/apache/knox/gateway/topology/discovery/ServiceDiscoveryFactory.java
index 05b3398..c92cced 100644
--- a/gateway-spi/src/main/java/org/apache/knox/gateway/topology/discovery/ServiceDiscoveryFactory.java
+++ b/gateway-spi/src/main/java/org/apache/knox/gateway/topology/discovery/ServiceDiscoveryFactory.java
@@ -45,9 +45,8 @@ public abstract class ServiceDiscoveryFactory {
 
   public static Set<ServiceDiscovery> getAllServiceDiscoveries() {
     final Set<ServiceDiscovery> serviceDiscoveries = new HashSet<>();
-    ServiceLoader.load(ServiceDiscoveryType.class).forEach((serviceDiscoveryType) -> {
-      serviceDiscoveries.add(serviceDiscoveryType.newInstance());
-    });
+    ServiceLoader.load(ServiceDiscoveryType.class).forEach((serviceDiscoveryType) ->
+        serviceDiscoveries.add(serviceDiscoveryType.newInstance()));
     return serviceDiscoveries;
   }
 
@@ -59,16 +58,14 @@ public abstract class ServiceDiscoveryFactory {
   }
 
   private static void injectGatewayServices(final ServiceDiscovery serviceDiscovery, Service... gatewayServices) {
-    if (ArrayUtils.isNotEmpty(gatewayServices)) {
+    if (serviceDiscovery != null && ArrayUtils.isNotEmpty(gatewayServices)) {
       try {
         for (Field field : serviceDiscovery.getClass().getDeclaredFields()) {
           if (field.getDeclaredAnnotation(GatewayService.class) != null) {
             for (Service gatewayService : gatewayServices) {
-              if (gatewayService != null) {
-                if (field.getType().isAssignableFrom(gatewayService.getClass())) {
-                  field.setAccessible(true);
-                  field.set(serviceDiscovery, gatewayService);
-                }
+              if (gatewayService != null && field.getType().isAssignableFrom(gatewayService.getClass())) {
+                field.setAccessible(true);
+                field.set(serviceDiscovery, gatewayService);
               }
             }
           }
diff --git a/gateway-test-release-utils/src/main/java/org/apache/knox/gateway/GatewayTestConfig.java b/gateway-test-release-utils/src/main/java/org/apache/knox/gateway/GatewayTestConfig.java
index 60a2938..2f3d588 100644
--- a/gateway-test-release-utils/src/main/java/org/apache/knox/gateway/GatewayTestConfig.java
+++ b/gateway-test-release-utils/src/main/java/org/apache/knox/gateway/GatewayTestConfig.java
@@ -34,6 +34,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 
 public class GatewayTestConfig extends Configuration implements GatewayConfig {
 
@@ -67,7 +68,7 @@ public class GatewayTestConfig extends Configuration implements GatewayConfig {
   private String truststoreType = "jks";
   private String keystoreType = "jks";
   private boolean isTopologyPortMappingEnabled = true;
-  private ConcurrentHashMap<String, Integer> topologyPortMapping = new ConcurrentHashMap<>();
+  private ConcurrentMap<String, Integer> topologyPortMapping = new ConcurrentHashMap<>();
   private int backupVersionLimit = -1;
   private long backupAgeLimit = -1;
 
@@ -443,7 +444,7 @@ public class GatewayTestConfig extends Configuration implements GatewayConfig {
     return backupVersionLimit;
   }
 
-  public void setTopologyPortMapping(ConcurrentHashMap<String, Integer> topologyPortMapping) {
+  public void setTopologyPortMapping(ConcurrentMap<String, Integer> topologyPortMapping) {
     this.topologyPortMapping = topologyPortMapping;
   }
 
diff --git a/gateway-test-release-utils/src/main/java/org/apache/knox/gateway/GatewayTestDriver.java b/gateway-test-release-utils/src/main/java/org/apache/knox/gateway/GatewayTestDriver.java
index 4ee6a74..7c1cd1f 100644
--- a/gateway-test-release-utils/src/main/java/org/apache/knox/gateway/GatewayTestDriver.java
+++ b/gateway-test-release-utils/src/main/java/org/apache/knox/gateway/GatewayTestDriver.java
@@ -115,7 +115,7 @@ public class GatewayTestDriver {
   public void setupService( String role, String realUrl, String gatewayPath, boolean mock ) throws Exception {
     Service service = new Service( role, realUrl, gatewayPath, mock );
     services.put( role, service );
-    log.info( role + " port = " + service.server.getPort() );
+    log.info("{} port = {}", role, service.server.getPort());
   }
 
   /**
diff --git a/gateway-test-utils/src/main/java/org/apache/knox/test/Console.java b/gateway-test-utils/src/main/java/org/apache/knox/test/Console.java
index e29c0d0..fe47efa 100644
--- a/gateway-test-utils/src/main/java/org/apache/knox/test/Console.java
+++ b/gateway-test-utils/src/main/java/org/apache/knox/test/Console.java
@@ -24,9 +24,12 @@ import java.nio.charset.StandardCharsets;
 
 public class Console {
 
-  PrintStream oldOut, newOut;
-  PrintStream oldErr, newErr;
-  ByteArrayOutputStream newOutBuf, newErrBuf;
+  PrintStream oldOut;
+  PrintStream newOut;
+  PrintStream oldErr;
+  PrintStream newErr;
+  ByteArrayOutputStream newOutBuf;
+  ByteArrayOutputStream newErrBuf;
 
   public void capture() throws UnsupportedEncodingException {
     oldErr = System.err;
diff --git a/gateway-test-utils/src/main/java/org/apache/knox/test/TestUtils.java b/gateway-test-utils/src/main/java/org/apache/knox/test/TestUtils.java
index 163fd9a..63429cb 100644
--- a/gateway-test-utils/src/main/java/org/apache/knox/test/TestUtils.java
+++ b/gateway-test-utils/src/main/java/org/apache/knox/test/TestUtils.java
@@ -56,6 +56,9 @@ public class TestUtils {
   public static final long MEDIUM_TIMEOUT = 30 * 1000L;
   public static final long LONG_TIMEOUT = 60 * 1000L;
 
+  private TestUtils() {
+  }
+
   public static String getResourceName( Class clazz, String name ) {
     name = clazz.getName().replaceAll( "\\.", "/" ) + "/" + name;
     return name;
diff --git a/gateway-util-configinjector/src/main/java/org/apache/knox/gateway/config/impl/DefaultConfigurationInjector.java b/gateway-util-configinjector/src/main/java/org/apache/knox/gateway/config/impl/DefaultConfigurationInjector.java
index ca57615..bfb191e 100755
--- a/gateway-util-configinjector/src/main/java/org/apache/knox/gateway/config/impl/DefaultConfigurationInjector.java
+++ b/gateway-util-configinjector/src/main/java/org/apache/knox/gateway/config/impl/DefaultConfigurationInjector.java
@@ -199,7 +199,7 @@ public class DefaultConfigurationInjector implements ConfigurationInjector {
   private static String getConfigName( String name, Annotation[] tags ) {
     if( tags != null ) {
       for( Annotation tag : tags ) {
-        if( tag != null && tag instanceof Alias ) {
+        if(tag instanceof Alias) {
           Alias aliasTag = (Alias) tag;
           String aliasValue = aliasTag.value().trim();
           if(!aliasValue.isEmpty()) {
diff --git a/gateway-util-launcher/src/main/java/org/apache/knox/gateway/launcher/Config.java b/gateway-util-launcher/src/main/java/org/apache/knox/gateway/launcher/Config.java
index 20a26ff..b274e1f 100644
--- a/gateway-util-launcher/src/main/java/org/apache/knox/gateway/launcher/Config.java
+++ b/gateway-util-launcher/src/main/java/org/apache/knox/gateway/launcher/Config.java
@@ -134,11 +134,7 @@ public class Config {
   public void set( String section, String name, String value ) {
     section = fixName( section );
     name = fixName( name );
-    Map<String,String> map = sections.get( section );
-    if( map == null ) {
-      map = new LinkedHashMap<>();
-      sections.put( section, map );
-    }
+    Map<String, String> map = sections.computeIfAbsent(section, k -> new LinkedHashMap<>());
     map.put( name, value );
   }
 
diff --git a/gateway-util-urltemplate/src/main/java/org/apache/knox/gateway/util/urltemplate/Template.java b/gateway-util-urltemplate/src/main/java/org/apache/knox/gateway/util/urltemplate/Template.java
index 22f4a9e..b3878ec 100644
--- a/gateway-util-urltemplate/src/main/java/org/apache/knox/gateway/util/urltemplate/Template.java
+++ b/gateway-util-urltemplate/src/main/java/org/apache/knox/gateway/util/urltemplate/Template.java
@@ -336,7 +336,7 @@ public class Template {
   @Override
   public boolean equals(Object object ) {
     boolean equals = false;
-    if( object != null && object instanceof Template ) {
+    if(object instanceof Template) {
       String thisStr = toString();
       String thatStr = object.toString();
       equals = thisStr.equals( thatStr );
diff --git a/gateway-util-urltemplate/src/test/java/org/apache/knox/gateway/util/urltemplate/ParserTest.java b/gateway-util-urltemplate/src/test/java/org/apache/knox/gateway/util/urltemplate/ParserTest.java
index a89b0c0..16ab674 100644
--- a/gateway-util-urltemplate/src/test/java/org/apache/knox/gateway/util/urltemplate/ParserTest.java
+++ b/gateway-util-urltemplate/src/test/java/org/apache/knox/gateway/util/urltemplate/ParserTest.java
@@ -105,10 +105,9 @@ public class ParserTest {
   public void testCompleteUrl() throws URISyntaxException {
     String text;
     Template template;
-    Parser parser = new Parser();
 
     text = "foo://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, true, false, true, 3, 2 );
     assertThat( template.toString(), is( text ) );
   }
@@ -172,82 +171,81 @@ public class ParserTest {
 
   @Test
   public void testStaticPatterns() throws Exception {
-    Parser parser = new Parser();
     String text;
     Template template;
 
     text = "";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, false, false, false, 0, 0 );
     assertThat( template.toString(), is( text ) );
 
     text = "/";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, true, true, false, 0, 0 );
     assertThat( template.toString(), is( text ) );
 
     text = "?";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, false, false, true, 0, 0 );
     assertThat( template.toString(), is( text ) );
 
     text = "#";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, false, false, false, 0, 0 );
     assertThat( template.hasFragment(), is( true ) );
     assertThat( template.getFragment(), nullValue() );
     assertThat( template.toString(), is( text ) );
 
     text = "path";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, false, false, false, 1, 0 );
     assertPath( template, 0, "", "path" );
     assertThat( template.toString(), is( text ) );
 
     text = "/path";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, true, false, false, 1, 0 );
     assertPath( template, 0, "", "path" );
     assertThat( template.toString(), is( text ) );
 
 //    text = "//path";
-//    template = parser.parseTemplate( text );
+//    template = Parser.parseTemplate( text );
 //    assertBasics( template, true, false, false, 1, 0 );
 //    assertPath( template, 0, "", "path" );
 
     text = "path/";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, false, true, false, 1, 0 );
     assertPath( template, 0, "", "path" );
     assertThat( template.toString(), is( text ) );
 
     text = "path//";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, false, true, false, 1, 0 );
     assertPath( template, 0, "", "path" );
     //IMPROVE assertThat( template.toString(), is( text ) );
     assertThat( template.getPattern(), is( text ) );
 
     text = "/path/";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, true, true, false, 1, 0 );
     assertPath( template, 0, "", "path" );
     assertThat( template.toString(), is( text ) );
 
 //    text = "//path//";
-//    template = parser.parseTemplate( text );
+//    template = Parser.parseTemplate( text );
 //    assertBasics( template, true, true, false, 1, 0 );
 //    assertPath( template, 0, "", "path" );
 
     text = "pathA/pathB";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, false, false, false, 2, 0 );
     assertPath( template, 0, "", "pathA" );
     assertPath( template, 1, "", "pathB" );
     assertThat( template.toString(), is( text ) );
 
     text = "pathA//pathB";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, false, false, false, 2, 0 );
     assertPath( template, 0, "", "pathA" );
     assertPath( template, 1, "", "pathB" );
@@ -255,14 +253,14 @@ public class ParserTest {
     assertThat( template.getPattern(), is( text ) );
 
     text = "/pathA/pathB";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, true, false, false, 2, 0 );
     assertPath( template, 0, "", "pathA" );
     assertPath( template, 1, "", "pathB" );
     assertThat( template.toString(), is( text ) );
 
     text = "/pathA//pathB";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, true, false, false, 2, 0 );
     assertPath( template, 0, "", "pathA" );
     assertPath( template, 1, "", "pathB" );
@@ -270,14 +268,14 @@ public class ParserTest {
     assertThat( template.getPattern(), is( text ) );
 
     text = "pathA/pathB/";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, false, true, false, 2, 0 );
     assertPath( template, 0, "", "pathA" );
     assertPath( template, 1, "", "pathB" );
     assertThat( template.toString(), is( text ) );
 
     text = "pathA//pathB/";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, false, true, false, 2, 0 );
     assertPath( template, 0, "", "pathA" );
     assertPath( template, 1, "", "pathB" );
@@ -285,14 +283,14 @@ public class ParserTest {
     assertThat( template.getPattern(), is( text ) );
 
     text = "/pathA/pathB/";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, true, true, false, 2, 0 );
     assertPath( template, 0, "", "pathA" );
     assertPath( template, 1, "", "pathB" );
     assertThat( template.toString(), is( text ) );
 
     text = "/pathA//pathB/";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, true, true, false, 2, 0 );
     assertPath( template, 0, "", "pathA" );
     assertPath( template, 1, "", "pathB" );
@@ -300,29 +298,29 @@ public class ParserTest {
     assertThat( template.getPattern(), is( text ) );
 
     text = "/?";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, true, true, true, 0, 0 );
     assertThat( template.toString(), is( text ) );
 
 //    text = "//??";
-//    template = parser.parseTemplate( text );
+//    template = Parser.parseTemplate( text );
 //    assertBasics( template, true, true, true, 0, 0 );
 
     text = "?name=value";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, false, false, true, 0, 1 );
     assertQuery( template, "name", "", "value" );
     assertThat( template.toString(), is( text ) );
 
     text = "?name1=value1&name2=value2";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, false, false, true, 0, 2 );
     assertQuery( template, "name1", "", "value1" );
     assertQuery( template, "name2", "", "value2" );
     assertThat( template.toString(), is( text ) );
 
     text = "?name1=value1&&name2=value2";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, false, false, true, 0, 2 );
     assertQuery( template, "name1", "", "value1" );
     assertQuery( template, "name2", "", "value2" );
@@ -330,13 +328,13 @@ public class ParserTest {
     assertThat( template.getPattern(), is( text ) );
 
     text = "/?name=value";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, true, true, true, 0, 1 );
     assertQuery( template, "name", "", "value" );
     assertThat( template.toString(), is( text ) );
 
     text = "/?name1=value1&name2=value2";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, true, true, true, 0, 2 );
     assertQuery( template, "name1", "", "value1" );
     assertQuery( template, "name2", "", "value2" );
@@ -349,12 +347,11 @@ public class ParserTest {
    */
   @Test
   public void testEncodedChar() throws URISyntaxException {
-    Parser parser = new Parser();
     String text;
     Template template;
 
     text = "stage?id=007&amp;attempt=0";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, false, false, true, 1, 2 );
     assertQuery( template, "id", "", "007" );
     assertQuery( template, "attempt", "", "0" );
@@ -682,7 +679,6 @@ public class ParserTest {
 
   @Test
   public void testEdgeCases() throws URISyntaxException {
-    Parser parser = new Parser();
     String text;
     Template template;
 
@@ -733,7 +729,7 @@ public class ParserTest {
     assertThat( template.toString(), is( text ) );
 
     text = ":";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertBasics( template, false, false, false, 1, 0 );
     assertThat( template.hasScheme(), is( false ) );
     assertThat( template.getScheme(), nullValue() );
@@ -1045,14 +1041,12 @@ public class ParserTest {
 
   @Test
   public void testQueryNameWithoutValue() throws URISyntaxException {
-    Parser parser = new Parser();
     String text;
     Template template;
     String string;
-    Expander expander = new Expander();
 
     text = "*://*:*/**?X";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertThat( template.hasScheme(), is( true ) );
     assertThat( template.getScheme().getParamName(), is( "" ) );
     assertThat( template.getScheme().getFirstValue().getOriginalPattern(), is( "*" ) );
@@ -1070,7 +1064,7 @@ public class ParserTest {
     assertThat( template.hasAuthority(), is( true ) );
     assertThat( template, notNullValue() );
     assertThat( template.getQuery().get( "X" ), notNullValue() );
-    string = expander.expandToString( template, null, null );
+    string = Expander.expandToString( template, null, null );
     assertThat( string, is( text ) );
     assertThat( template.toString(), is( text ) );
 
@@ -1078,7 +1072,7 @@ public class ParserTest {
     template = Parser.parseTemplate( text );
     assertThat( template, notNullValue() );
     assertThat( template.getQuery().get( "X" ), notNullValue() );
-    string = expander.expandToString( template, null, null );
+    string = Expander.expandToString( template, null, null );
     assertThat( string, is( "*://*:*/**?X" ) );
     //IMPROVE assertThat( template.toString(), is( text ) );
     assertThat( template.getPattern(), is( text ) );
@@ -1087,7 +1081,7 @@ public class ParserTest {
     template = Parser.parseTemplate( text );
     assertThat( template, notNullValue() );
     assertThat( template.getQuery().get( "aG9zdD1sb2NhbGhvc3QmcG9ydD02MjEzOSZvcD1DUkVBVEUmdXNlci5uYW1lPWhkZnM" ), notNullValue() );
-    string = expander.expandToString( template, null, null );
+    string = Expander.expandToString( template, null, null );
     assertThat( string, is( "http://localhost:62142/gateway/cluster/webhdfs/data/v1/tmp/GatewayWebHdfsFuncTest/testBasicHdfsUseCase/dir/file?aG9zdD1sb2NhbGhvc3QmcG9ydD02MjEzOSZvcD1DUkVBVEUmdXNlci5uYW1lPWhkZnM" ) );
     assertThat( template.toString(), is( text ) );
 
@@ -1095,7 +1089,7 @@ public class ParserTest {
     template = Parser.parseTemplate( text );
     assertThat( template, notNullValue() );
     assertThat( template.getQuery().get( "aG9zdD1sb2NhbGhvc3QmcG9ydD02MjEzOSZvcD1DUkVBVEUmdXNlci5uYW1lPWhkZnM" ), notNullValue() );
-    string = expander.expandToString( template, null, null );
+    string = Expander.expandToString( template, null, null );
     assertThat( string, is( "http://localhost:62142/gateway/cluster/webhdfs/data/v1/tmp/GatewayWebHdfsFuncTest/testBasicHdfsUseCase/dir/file?aG9zdD1sb2NhbGhvc3QmcG9ydD02MjEzOSZvcD1DUkVBVEUmdXNlci5uYW1lPWhkZnM" ) );
     //IMPROVE assertThat( template.toString(), is( text ) );
     assertThat( template.getPattern(), is( text ) );
@@ -1105,10 +1099,9 @@ public class ParserTest {
   public void testTemplateWithOnlyAuthority() throws Exception {
     String text;
     Template template;
-    Parser parser = new Parser();
 
     text = "test-host:42";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertThat( template.hasScheme(), is( false ) );
     assertThat( template.getHost().getFirstValue().getOriginalPattern(), is( "test-host" ) );
     assertThat( template.getHost().getFirstValue().getEffectivePattern(), is( "test-host" ) );
@@ -1117,7 +1110,7 @@ public class ParserTest {
     assertThat( template.toString(), is( text ) );
 
     text = "{test-host}:{test-port}";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertThat( template.hasScheme(), is( false ) );
     assertThat( template.getHost().getParamName(), is( "test-host" ) );
     assertThat( template.getHost().getFirstValue().getToken().getOriginalPattern(), nullValue() );
@@ -1132,10 +1125,9 @@ public class ParserTest {
   public void testTemplateWithoutAuthority() throws Exception {
     String text;
     Template template;
-    Parser parser = new Parser();
 
     text = "test-scheme:/test-path";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertThat( template.hasScheme(), is( true ) );
     assertThat( template.getScheme().getFirstValue().getOriginalPattern(), is( "test-scheme" ) );
     assertThat( template.getScheme().getFirstValue().getEffectivePattern(), is( "test-scheme" ) );
@@ -1147,7 +1139,7 @@ public class ParserTest {
     assertThat( template.toString(), is( text ) );
 
     text = "test-scheme:///test-path";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertThat( template.hasScheme(), is( true ) );
     assertThat( template.getScheme().getFirstValue().getOriginalPattern(), is( "test-scheme" ) );
     assertThat( template.getScheme().getFirstValue().getEffectivePattern(), is( "test-scheme" ) );
@@ -1162,7 +1154,7 @@ public class ParserTest {
     assertThat( template.toString(), is( text ) );
 
     text = "{test-scheme}:/{test-path}";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertThat( template.hasScheme(), is( true ) );
     assertThat( template.getScheme().getParamName(), is( "test-scheme" ) );
     assertThat( template.getScheme().getFirstValue().getOriginalPattern(), nullValue() );
@@ -1176,7 +1168,7 @@ public class ParserTest {
     assertThat( template.toString(), is( text ) );
 
     text = "{test-scheme}:///{test-path}";
-    template = parser.parseTemplate( text );
+    template = Parser.parseTemplate( text );
     assertThat( template.hasScheme(), is( true ) );
     assertThat( template.getScheme().getParamName(), is( "test-scheme" ) );
     assertThat( template.getScheme().getFirstValue().getOriginalPattern(), nullValue() );
diff --git a/pom.xml b/pom.xml
index 8685f94..ed141a0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -167,14 +167,14 @@
         <commons-configuration.version>1.10</commons-configuration.version>
         <commons-digester3.version>3.2</commons-digester3.version>
         <commons-io.version>2.6</commons-io.version>
-	<commons-lang.version>2.6</commons-lang.version>
+        <commons-lang.version>2.6</commons-lang.version>
         <commons-lang3.version>3.9</commons-lang3.version>
         <commons-logging.version>1.2</commons-logging.version>
         <commons-math3.version>3.6.1</commons-math3.version>
         <commons-net.version>3.6</commons-net.version>
         <commons-text.version>1.8</commons-text.version>
         <cors-filter.version>2.8</cors-filter.version>
-	<cryptacular.version>1.2.3</cryptacular.version>
+        <cryptacular.version>1.2.3</cryptacular.version>
         <curator.version>4.2.0</curator.version>
         <dependency-check-maven.version>5.2.2</dependency-check-maven.version>
         <dockerfile-maven-plugin.version>1.4.13</dockerfile-maven-plugin.version>