update checkstyle & pmd plugins
diff --git a/examples/simpleWebapp/src/main/java/org/apache/cxf/fediz/example/FederationServlet.java b/examples/simpleWebapp/src/main/java/org/apache/cxf/fediz/example/FederationServlet.java
index f181b00..fda5dfe 100644
--- a/examples/simpleWebapp/src/main/java/org/apache/cxf/fediz/example/FederationServlet.java
+++ b/examples/simpleWebapp/src/main/java/org/apache/cxf/fediz/example/FederationServlet.java
@@ -92,19 +92,15 @@
 
         Element el = SecurityTokenThreadLocal.getToken();
         if (el != null) {
-            out.println("<p>Bootstrap token...");
-            String token = null;
+            out.println("<p>Bootstrap token...<p>");
             try {
-                TransformerFactory transFactory = TransformerFactory.newInstance();
-                Transformer transformer = transFactory.newTransformer();
-                StringWriter buffer = new StringWriter();
+                Transformer transformer = TransformerFactory.newInstance().newTransformer();
                 transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
-                transformer.transform(new DOMSource(el),
-                                      new StreamResult(buffer));
-                token = buffer.toString();
-                out.println("<p>" + StringEscapeUtils.escapeXml11(token));
+                StringWriter token = new StringWriter();
+                transformer.transform(new DOMSource(el), new StreamResult(token));
+                out.println(StringEscapeUtils.escapeXml11(token.toString()));
             } catch (Exception ex) {
-                out.println("<p>Failed to transform cached element to string: " + ex.toString());
+                out.println("Failed to transform cached element to string: " + ex.toString());
             }
         } else {
             out.println("<p>Bootstrap token not cached in thread local storage");
diff --git a/examples/springWebapp/src/main/java/org/apache/cxf/fediz/example/FederationServlet.java b/examples/springWebapp/src/main/java/org/apache/cxf/fediz/example/FederationServlet.java
index 4efa793..fcdca32 100644
--- a/examples/springWebapp/src/main/java/org/apache/cxf/fediz/example/FederationServlet.java
+++ b/examples/springWebapp/src/main/java/org/apache/cxf/fediz/example/FederationServlet.java
@@ -100,19 +100,15 @@
 
         Element el = SecurityTokenThreadLocal.getToken();
         if (el != null) {
-            out.println("<p>Bootstrap token...");
-            String token = null;
+            out.println("<p>Bootstrap token...<p>");
             try {
-                TransformerFactory transFactory = TransformerFactory.newInstance();
-                Transformer transformer = transFactory.newTransformer();
-                StringWriter buffer = new StringWriter();
+                Transformer transformer = TransformerFactory.newInstance().newTransformer();
                 transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
-                transformer.transform(new DOMSource(el),
-                                      new StreamResult(buffer));
-                token = buffer.toString();
-                out.println("<p>" + HtmlUtils.htmlEscape(token));
+                StringWriter token = new StringWriter();
+                transformer.transform(new DOMSource(el), new StreamResult(token));
+                out.println(HtmlUtils.htmlEscape(token.toString()));
             } catch (Exception ex) {
-                out.println("<p>Failed to transform cached element to string: " + ex.toString());
+                out.println("Failed to transform cached element to string: " + ex.toString());
             }
         } else {
             out.println("<p>Bootstrap token not cached in thread local storage");
diff --git a/examples/wsclientWebapp/webapp/src/main/java/org/apache/cxf/fediz/example/FederationServlet.java b/examples/wsclientWebapp/webapp/src/main/java/org/apache/cxf/fediz/example/FederationServlet.java
index 6fe6727..3a8da16 100644
--- a/examples/wsclientWebapp/webapp/src/main/java/org/apache/cxf/fediz/example/FederationServlet.java
+++ b/examples/wsclientWebapp/webapp/src/main/java/org/apache/cxf/fediz/example/FederationServlet.java
@@ -94,16 +94,12 @@
         Element el = SecurityTokenThreadLocal.getToken();
         if (el != null) {
             out.println("<p>Bootstrap token...");
-            String token = null;
             try {
-                TransformerFactory transFactory = TransformerFactory.newInstance();
-                Transformer transformer = transFactory.newTransformer();
-                StringWriter buffer = new StringWriter();
+                Transformer transformer = TransformerFactory.newInstance().newTransformer();
+                StringWriter token = new StringWriter();
                 transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
-                transformer.transform(new DOMSource(el),
-                                      new StreamResult(buffer));
-                token = buffer.toString();
-                out.println("<p>" + HtmlUtils.htmlEscape(token));
+                transformer.transform(new DOMSource(el), new StreamResult(token));
+                out.println("<p>" + HtmlUtils.htmlEscape(token.toString()));
             } catch (Exception ex) {
                 out.println("<p>Failed to transform cached element to string: " + ex.toString());
             }
diff --git a/plugins/core/src/main/java/org/apache/cxf/fediz/core/config/FedizContext.java b/plugins/core/src/main/java/org/apache/cxf/fediz/core/config/FedizContext.java
index ef38e67..6fb4a7f 100644
--- a/plugins/core/src/main/java/org/apache/cxf/fediz/core/config/FedizContext.java
+++ b/plugins/core/src/main/java/org/apache/cxf/fediz/core/config/FedizContext.java
@@ -119,15 +119,14 @@
         for (TrustManagersType manager : trustManagers) {
             TrustManager tm = new TrustManager(manager);
 
-            Crypto crypto = null;
             try {
-                if (manager.getKeyStore().getType().equalsIgnoreCase("PEM")) {
-                    X509Certificate[] certificates = new X509Certificate[1];
-                    certificates[0] = CertsUtils.getX509CertificateFromFile(tm.getName(), classloader);
-                    crypto = new CertificateStore(certificates);
+                final Crypto crypto;
+                if ("PEM".equalsIgnoreCase(manager.getKeyStore().getType())) {
+                    crypto = new CertificateStore(new X509Certificate[] {
+                        CertsUtils.getX509CertificateFromFile(tm.getName(), classloader)
+                    });
                 } else {
-                    Properties sigProperties = createCryptoProperties(manager);
-                    crypto = CryptoFactory.getInstance(sigProperties);
+                    crypto = CryptoFactory.getInstance(createCryptoProperties(manager));
                 }
                 tm.setCrypto(crypto);
                 certificateStores.add(tm);
diff --git a/plugins/core/src/main/java/org/apache/cxf/fediz/core/handler/LogoutHandler.java b/plugins/core/src/main/java/org/apache/cxf/fediz/core/handler/LogoutHandler.java
index 80a4c96..1861309 100644
--- a/plugins/core/src/main/java/org/apache/cxf/fediz/core/handler/LogoutHandler.java
+++ b/plugins/core/src/main/java/org/apache/cxf/fediz/core/handler/LogoutHandler.java
@@ -205,10 +205,10 @@
             LOG.warn("Could not write logout.jpg");
             return;
         }
-        int read = 0;
         byte[] buf = new byte[1024];
         try (ServletOutputStream responseOutputStream = response.getOutputStream()) {
             response.setContentType("image/jpeg");
+            int read;
             while ((read = inputStream.read(buf)) != -1) {
                 responseOutputStream.write(buf, 0, read);
             }
diff --git a/plugins/core/src/main/java/org/apache/cxf/fediz/core/handler/SigninHandler.java b/plugins/core/src/main/java/org/apache/cxf/fediz/core/handler/SigninHandler.java
index ea1d023..8f5bdec 100644
--- a/plugins/core/src/main/java/org/apache/cxf/fediz/core/handler/SigninHandler.java
+++ b/plugins/core/src/main/java/org/apache/cxf/fediz/core/handler/SigninHandler.java
@@ -66,7 +66,7 @@
 
     @Override
     public T handleRequest(HttpServletRequest request, HttpServletResponse response) {
-        if (request.getMethod().equals("POST")) {
+        if ("POST".equals(request.getMethod())) {
             LOG.debug("Sign-In-Response received");
             String responseToken = getResponseToken(request);
             if (responseToken != null) {
diff --git a/plugins/core/src/main/java/org/apache/cxf/fediz/core/metadata/MetadataWriter.java b/plugins/core/src/main/java/org/apache/cxf/fediz/core/metadata/MetadataWriter.java
index 10fd10d..2e33d85 100644
--- a/plugins/core/src/main/java/org/apache/cxf/fediz/core/metadata/MetadataWriter.java
+++ b/plugins/core/src/main/java/org/apache/cxf/fediz/core/metadata/MetadataWriter.java
@@ -24,8 +24,6 @@
 import java.io.InputStream;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
-import java.net.MalformedURLException;
-import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.security.cert.X509Certificate;
 import java.util.Base64;
@@ -47,6 +45,7 @@
 import org.apache.cxf.fediz.core.util.CertsUtils;
 import org.apache.cxf.fediz.core.util.DOMUtils;
 import org.apache.cxf.fediz.core.util.SignatureUtils;
+import org.apache.cxf.fediz.core.util.StringUtils;
 import org.apache.xml.security.stax.impl.util.IDGenerator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -62,7 +61,6 @@
 
     private static final XMLOutputFactory XML_OUTPUT_FACTORY = XMLOutputFactory.newInstance();
 
-    //CHECKSTYLE:OFF
     public Document getMetaData(
         HttpServletRequest request, FedizContext config
     ) throws ProcessingException {
@@ -81,7 +79,7 @@
 
             String serviceURL = protocol.getApplicationServiceURL();
             if (serviceURL == null) {
-                serviceURL = extractFullContextPath(request);
+                serviceURL = StringUtils.extractFullContextPath(request);
             }
 
             writer.writeAttribute("entityID", serviceURL);
@@ -235,9 +233,9 @@
 
             String logoutURL = config.getLogoutURL();
             if (logoutURL.startsWith("/")) {
-                logoutURL = extractFullContextPath(request).concat(logoutURL.substring(1));
+                logoutURL = StringUtils.extractFullContextPath(request).concat(logoutURL.substring(1));
             } else {
-                logoutURL = extractFullContextPath(request).concat(logoutURL);
+                logoutURL = StringUtils.extractFullContextPath(request).concat(logoutURL);
             }
             writer.writeAttribute("Location", logoutURL);
 
@@ -315,24 +313,4 @@
         writer.writeEndElement(); // SPSSODescriptor
     }
 
-    private String extractFullContextPath(HttpServletRequest request) throws MalformedURLException {
-        String result = null;
-        String contextPath = request.getContextPath();
-        String requestUrl = request.getRequestURL().toString();
-        String requestPath = new URL(requestUrl).getPath();
-        // Cut request path of request url and add context path if not ROOT
-        if (requestPath != null && requestPath.length() > 0) {
-            int lastIndex = requestUrl.lastIndexOf(requestPath);
-            result = requestUrl.substring(0, lastIndex);
-        } else {
-            result = requestUrl;
-        }
-        if (contextPath != null && contextPath.length() > 0) {
-            // contextPath contains starting slash
-            result = result + contextPath + "/";
-        } else {
-            result = result + "/";
-        }
-        return result;
-    }
 }
diff --git a/plugins/core/src/main/java/org/apache/cxf/fediz/core/processor/FederationProcessorImpl.java b/plugins/core/src/main/java/org/apache/cxf/fediz/core/processor/FederationProcessorImpl.java
index b760dec..701e917 100644
--- a/plugins/core/src/main/java/org/apache/cxf/fediz/core/processor/FederationProcessorImpl.java
+++ b/plugins/core/src/main/java/org/apache/cxf/fediz/core/processor/FederationProcessorImpl.java
@@ -121,10 +121,9 @@
 
     protected FedizResponse processSignInRequest(FedizRequest request, FedizContext config) throws ProcessingException {
 
-        final Document doc;
-        Element el = null;
+        Element el;
         try {
-            doc = DOMUtils.readXml(new StringReader(request.getResponseToken()));
+            final Document doc = DOMUtils.readXml(new StringReader(request.getResponseToken()));
             el = doc.getDocumentElement();
 
         } catch (Exception e) {
diff --git a/plugins/core/src/main/java/org/apache/cxf/fediz/core/processor/SAMLProcessorImpl.java b/plugins/core/src/main/java/org/apache/cxf/fediz/core/processor/SAMLProcessorImpl.java
index 78a8056..49adc25 100644
--- a/plugins/core/src/main/java/org/apache/cxf/fediz/core/processor/SAMLProcessorImpl.java
+++ b/plugins/core/src/main/java/org/apache/cxf/fediz/core/processor/SAMLProcessorImpl.java
@@ -20,7 +20,6 @@
 package org.apache.cxf.fediz.core.processor;
 
 import java.io.ByteArrayInputStream;
-import java.io.IOException;
 import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -436,16 +435,16 @@
     public RedirectionResponse createSignInRequest(HttpServletRequest request, FedizContext config)
         throws ProcessingException {
 
-        String redirectURL = null;
         try {
             if (!(config.getProtocol() instanceof SAMLProtocol)) {
                 LOG.error("Unsupported protocol");
                 throw new IllegalStateException("Unsupported protocol");
             }
 
+            String redirectURL = null;
             String issuerURL = resolveIssuer(request, config);
             LOG.info("Issuer url: " + issuerURL);
-            if (issuerURL != null && issuerURL.length() > 0) {
+            if (issuerURL != null && !issuerURL.isEmpty()) {
                 redirectURL = issuerURL;
             }
 
@@ -457,7 +456,7 @@
 
             // Create the AuthnRequest
             String reply = resolveReply(request, config);
-            if (reply == null || reply.length() == 0) {
+            if (reply == null || reply.isEmpty()) {
                 reply = request.getRequestURL().toString();
             } else {
                 try {
@@ -496,9 +495,8 @@
 
             String signInQuery = resolveSignInQuery(request, config);
 
-            StringBuilder sb = new StringBuilder();
-            sb.append(SAMLSSOConstants.SAML_REQUEST).append('=').append(urlEncodedRequest);
-            sb.append('&').append(SAMLSSOConstants.RELAY_STATE).append('=').append(relayState);
+            StringBuilder sb = new StringBuilder(SAMLSSOConstants.SAML_REQUEST).append('=').append(urlEncodedRequest)
+                .append('&').append(SAMLSSOConstants.RELAY_STATE).append('=').append(relayState);
 
             if (((SAMLProtocol)config.getProtocol()).isSignRequest()) {
                 String signature = signRequest(config, sb);
@@ -515,8 +513,7 @@
             response.addHeader("Pragma", "no-cache");
             response.setRequestState(requestState);
 
-            redirectURL = redirectURL + "?" + sb.toString();
-            response.setRedirectionURL(redirectURL);
+            response.setRedirectionURL(redirectURL + '?' + sb.toString());
 
             return response;
         } catch (Exception ex) {
@@ -558,7 +555,7 @@
         String sigAlgo = WSConstants.RSA_SHA1;
         String jceSigAlgo = "SHA1withRSA";
         LOG.debug("automatic sig algo detection: " + privateKey.getAlgorithm());
-        if (privateKey.getAlgorithm().equalsIgnoreCase("DSA")) {
+        if ("DSA".equalsIgnoreCase(privateKey.getAlgorithm())) {
             sigAlgo = WSConstants.DSA;
             jceSigAlgo = "SHA1withDSA";
         } else {
@@ -599,7 +596,7 @@
         return URLEncoder.encode(encodedSignature, "UTF-8");
     }
 
-    protected String encodeAuthnRequest(Element authnRequest) throws IOException {
+    protected String encodeAuthnRequest(Element authnRequest) {
         String requestMessage = DOM2Writer.nodeToString(authnRequest);
 
         byte[] deflatedBytes = CompressionUtils.deflate(requestMessage.getBytes(StandardCharsets.UTF_8));
@@ -613,18 +610,17 @@
                                                     FedizContext config)
         throws ProcessingException {
 
-        String redirectURL = null;
         try {
             if (!(config.getProtocol() instanceof SAMLProtocol)) {
                 LOG.error("Unsupported protocol");
                 throw new IllegalStateException("Unsupported protocol");
             }
 
-            redirectURL = ((SAMLProtocol)config.getProtocol()).getIssuerLogoutURL();
+            String redirectURL = ((SAMLProtocol)config.getProtocol()).getIssuerLogoutURL();
             if (redirectURL == null) {
                 String issuerURL = resolveIssuer(request, config);
                 LOG.info("Issuer url: " + issuerURL);
-                if (issuerURL != null && issuerURL.length() > 0) {
+                if (issuerURL != null && !issuerURL.isEmpty()) {
                     redirectURL = issuerURL;
                 }
             }
@@ -657,9 +653,8 @@
             String urlEncodedRequest =
                 URLEncoder.encode(logoutRequestEncoded, "UTF-8");
 
-            StringBuilder sb = new StringBuilder();
-            sb.append(SAMLSSOConstants.SAML_REQUEST).append('=').append(urlEncodedRequest);
-            sb.append('&').append(SAMLSSOConstants.RELAY_STATE).append('=').append(relayState);
+            StringBuilder sb = new StringBuilder(SAMLSSOConstants.SAML_REQUEST).append('=').append(urlEncodedRequest)
+                .append('&').append(SAMLSSOConstants.RELAY_STATE).append('=').append(relayState);
 
             if (((SAMLProtocol)config.getProtocol()).isSignRequest()) {
                 String signature = signRequest(config, sb);
@@ -671,8 +666,7 @@
             response.addHeader("Pragma", "no-cache");
             response.setState(relayState);
 
-            redirectURL = redirectURL + "?" + sb.toString();
-            response.setRedirectionURL(redirectURL);
+            response.setRedirectionURL(redirectURL + '?' + sb.toString());
 
             return response;
         } catch (Exception ex) {
diff --git a/plugins/core/src/main/java/org/apache/cxf/fediz/core/saml/SAMLTokenValidator.java b/plugins/core/src/main/java/org/apache/cxf/fediz/core/saml/SAMLTokenValidator.java
index 7cb6125..a6d29f9 100644
--- a/plugins/core/src/main/java/org/apache/cxf/fediz/core/saml/SAMLTokenValidator.java
+++ b/plugins/core/src/main/java/org/apache/cxf/fediz/core/saml/SAMLTokenValidator.java
@@ -95,12 +95,10 @@
         //Iterate through all trust certificates
         for (TrustManager trustManager : config.getCertificateStores()) {
             try {
-                if (trustManager.getTrustManagersType().getKeyStore().getType().equalsIgnoreCase("PEM")) {
-                    X509Certificate[] certificates = new X509Certificate[1];
-                    certificates[0] = CertsUtils.
-                            getX509CertificateFromFile(trustManager.getName(), config.getClassloader());
-                    
-                    SAMLKeyInfo samlKeyInfo = new SAMLKeyInfo(certificates);
+                if ("PEM".equalsIgnoreCase(trustManager.getTrustManagersType().getKeyStore().getType())) {
+                    SAMLKeyInfo samlKeyInfo = new SAMLKeyInfo(new X509Certificate[] {
+                        CertsUtils.getX509CertificateFromFile(trustManager.getName(), config.getClassloader())
+                    });
                     assertion.verifySignature(samlKeyInfo);
                     return samlKeyInfo;
                 } else {
@@ -110,11 +108,9 @@
                         while (allAliases.hasMoreElements()) {
                             String keyAlias = allAliases.nextElement();
                             
-                            X509Certificate[] certificates = new X509Certificate[1];
-                            certificates[0] = CertsUtils.
-                                    getX509CertificateFromCrypto(trustManager.getCrypto(), keyAlias);
-                            
-                            SAMLKeyInfo samlKeyInfo = new SAMLKeyInfo(certificates);
+                            SAMLKeyInfo samlKeyInfo = new SAMLKeyInfo(new X509Certificate[] {
+                                CertsUtils.getX509CertificateFromCrypto(trustManager.getCrypto(), keyAlias)
+                            });
                             try {
                                 assertion.verifySignature(samlKeyInfo);
                                 return samlKeyInfo;
@@ -167,7 +163,7 @@
                 // Verify the signature
                 Signature sig = assertion.getSignature();
                 KeyInfo keyInfo = sig.getKeyInfo();
-                SAMLKeyInfo samlKeyInfo = null;
+                final SAMLKeyInfo samlKeyInfo;
                 if (keyInfo != null) {
                     samlKeyInfo =
                         org.apache.wss4j.common.saml.SAMLUtil.getCredentialFromKeyInfo(
@@ -255,7 +251,7 @@
             }
 
             String audience = null;
-            List<Claim> claims = null;
+            List<Claim> claims;
             if (assertion.getSamlVersion().equals(SAMLVersion.VERSION_20)) {
                 claims = parseClaimsInAssertion(assertion.getSaml2());
                 audience = getAudienceRestriction(assertion.getSaml2());
@@ -507,7 +503,7 @@
 
 
     private Instant getExpires(SamlAssertionWrapper assertion) {
-        DateTime validTill = null;
+        final DateTime validTill;
         if (assertion.getSamlVersion().equals(SAMLVersion.VERSION_20)) {
             validTill = assertion.getSaml2().getConditions().getNotOnOrAfter();
         } else {
@@ -521,7 +517,7 @@
     }
 
     private Instant getCreated(SamlAssertionWrapper assertion) {
-        DateTime validFrom = null;
+        final DateTime validFrom;
         if (assertion.getSamlVersion().equals(SAMLVersion.VERSION_20)) {
             validFrom = assertion.getSaml2().getConditions().getNotBefore();
         } else {
diff --git a/plugins/core/src/main/java/org/apache/cxf/fediz/core/samlsso/SAMLProtocolResponseValidator.java b/plugins/core/src/main/java/org/apache/cxf/fediz/core/samlsso/SAMLProtocolResponseValidator.java
index 2e942cf..9c83dd5 100644
--- a/plugins/core/src/main/java/org/apache/cxf/fediz/core/samlsso/SAMLProtocolResponseValidator.java
+++ b/plugins/core/src/main/java/org/apache/cxf/fediz/core/samlsso/SAMLProtocolResponseValidator.java
@@ -255,7 +255,7 @@
             throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "invalidSAMLsecurity");
         }
 
-        BasicCredential credential = null;
+        final BasicCredential credential;
         if (samlKeyInfo.getCerts() != null) {
             credential = new BasicX509Credential(samlKeyInfo.getCerts()[0]);
         } else if (samlKeyInfo.getPublicKey() != null) {
diff --git a/plugins/core/src/main/java/org/apache/cxf/fediz/core/util/CertsUtils.java b/plugins/core/src/main/java/org/apache/cxf/fediz/core/util/CertsUtils.java
index 83b329d..10ad907 100644
--- a/plugins/core/src/main/java/org/apache/cxf/fediz/core/util/CertsUtils.java
+++ b/plugins/core/src/main/java/org/apache/cxf/fediz/core/util/CertsUtils.java
@@ -160,13 +160,10 @@
      * Get a Crypto instance from a file
      */
     public static Crypto getCryptoFromFile(String filename) {
-        Crypto crypto = null;
         Properties prop = new Properties();
-        try {
-            //load a properties file
-            InputStream is = Merlin.loadInputStream(Thread.currentThread().getContextClassLoader(), filename);
+        try (InputStream is = Merlin.loadInputStream(Thread.currentThread().getContextClassLoader(), filename)) {
             prop.load(is);
-            crypto = CryptoFactory.getInstance(prop);
+            return CryptoFactory.getInstance(prop);
         } catch (WSSecurityException ex) {
             LOG.error("Failed to load keystore " + prop.toString(), ex);
             throw new RuntimeException("Failed to load keystore " + prop.toString());
@@ -174,7 +171,6 @@
             LOG.error("Failed to read signing metadata key", ex);
             throw new RuntimeException("Failed to read signing metadata key");
         }
-        return crypto;
     }
 
     /**
diff --git a/plugins/core/src/main/java/org/apache/cxf/fediz/core/util/SignatureUtils.java b/plugins/core/src/main/java/org/apache/cxf/fediz/core/util/SignatureUtils.java
index 45bdcb0..440d9f6 100644
--- a/plugins/core/src/main/java/org/apache/cxf/fediz/core/util/SignatureUtils.java
+++ b/plugins/core/src/main/java/org/apache/cxf/fediz/core/util/SignatureUtils.java
@@ -88,7 +88,7 @@
         }
         X509Certificate cert = issuerCerts[0];
 */
-        String signatureMethod = null;
+        final String signatureMethod;
         if ("SHA1withDSA".equals(cert.getSigAlgName())) {
             signatureMethod = SignatureMethod.DSA_SHA1;
         } else if ("SHA1withRSA".equals(cert.getSigAlgName())) {
diff --git a/plugins/core/src/main/java/org/apache/cxf/fediz/core/util/StringUtils.java b/plugins/core/src/main/java/org/apache/cxf/fediz/core/util/StringUtils.java
index 6117a3e..36111da 100644
--- a/plugins/core/src/main/java/org/apache/cxf/fediz/core/util/StringUtils.java
+++ b/plugins/core/src/main/java/org/apache/cxf/fediz/core/util/StringUtils.java
@@ -19,14 +19,8 @@
 
 package org.apache.cxf.fediz.core.util;
 
-import java.io.File;
 import java.net.MalformedURLException;
 import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -38,43 +32,6 @@
     private StringUtils() {
     }
 
-    public static String extract(String string, String startToken,
-            String endToken) {
-        int start = string.indexOf(startToken) + startToken.length();
-        int end = string.lastIndexOf(endToken);
-
-        if (start == -1 || end == -1) {
-            return null;
-        }
-
-        return string.substring(start, end);
-    }
-
-    public static String wrapper(String string, String startToken,
-            String endToken) {
-        StringBuilder sb = new StringBuilder();
-        sb.append(startToken);
-        sb.append(string);
-        sb.append(endToken);
-        return sb.toString();
-    }
-
-    public static boolean isFileExist(String file) {
-        return new File(file).exists() && new File(file).isFile();
-    }
-
-    public static boolean isFileAbsolute(String file) {
-        return isFileExist(file) && new File(file).isAbsolute();
-    }
-
-    public static URL getURL(String spec) throws MalformedURLException {
-        try {
-            return new URL(spec);
-        } catch (MalformedURLException e) {
-            return new File(spec).toURI().toURL();
-        }
-    }
-
     public static boolean isEmpty(String str) {
         if (str != null) {
             int len = str.length();
@@ -87,169 +44,23 @@
         return true;
     }
 
-    public static boolean isEmpty(List<String> list) {
-        if (list == null || list.isEmpty()) {
-            return true;
-        }
-        return list.size() == 1 && isEmpty(list.get(0));
-    }
-
-    public static boolean isEqualUri(String uri1, String uri2) {
-
-        if (uri1.substring(uri1.length() - 1).equals("/")
-                && !uri2.substring(uri2.length() - 1).equals("/")) {
-            return uri1.substring(0, uri1.length() - 1).equals(uri2);
-        } else if (uri2.substring(uri2.length() - 1).equals("/")
-                && !uri1.substring(uri1.length() - 1).equals("/")) {
-            return uri2.substring(0, uri2.length() - 1).equals(uri1);
-        } else {
-            return uri1.equals(uri2);
-        }
-    }
-
-    public static String diff(String str1, String str2) {
-        int index = str1.lastIndexOf(str2);
-        if (index > -1) {
-            return str1.substring(str2.length());
-        }
-        return str1;
-    }
-
-    public static List<String> getParts(String str, String sperator) {
-        List<String> ret = new ArrayList<>();
-        List<String> parts = Arrays.asList(str.split("/"));
-        for (String part : parts) {
-            if (!isEmpty(part)) {
-                ret.add(part);
-            }
-        }
-        return ret;
-    }
-
-    public static String getFirstNotEmpty(String str, String sperator) {
-        List<String> parts = Arrays.asList(str.split("/"));
-        for (String part : parts) {
-            if (!isEmpty(part)) {
-                return part;
-            }
-        }
-        return str;
-    }
-
-    public static String getFirstNotEmpty(List<String> list) {
-        if (isEmpty(list)) {
-            return null;
-        }
-        for (String item : list) {
-            if (!isEmpty(item)) {
-                return item;
-            }
-        }
-        return null;
-    }
-
-    public static List<String> getFound(String contents, String regex) {
-        if (isEmpty(regex) || isEmpty(contents)) {
-            return null;
-        }
-        List<String> results = new ArrayList<>();
-        Pattern pattern = Pattern.compile(regex, Pattern.UNICODE_CASE);
-        Matcher matcher = pattern.matcher(contents);
-
-        while (matcher.find()) {
-            if (matcher.groupCount() > 0) {
-                results.add(matcher.group(1));
-            } else {
-                results.add(matcher.group());
-            }
-        }
-        return results;
-    }
-
-    public static String getFirstFound(String contents, String regex) {
-        List<String> founds = getFound(contents, regex);
-        if (isEmpty(founds)) {
-            return null;
-        }
-        return founds.get(0);
-    }
-
-    public static String formatVersionNumber(String target) {
-        List<String> found = StringUtils
-                .getFound(target, "\\d+\\.\\d+\\.?\\d*");
-        if (isEmpty(found)) {
-            return target;
-        }
-        return getFirstNotEmpty(found);
-    }
-
-    public static String addDefaultPortIfMissing(String urlString) {
-        return addDefaultPortIfMissing(urlString, "80");
-    }
-
-    public static String addDefaultPortIfMissing(String urlString,
-            String defaultPort) {
-        URL url = null;
-        try {
-            url = new URL(urlString);
-        } catch (MalformedURLException e) {
-            return urlString;
-        }
-        if (url.getPort() != -1) {
-            return urlString;
-        }
-        String regex = "http://([^/]+)";
-        String found = StringUtils.getFirstFound(urlString, regex);
-        String replacer = "http://" + found + ":" + defaultPort;
-
-        if (!StringUtils.isEmpty(found)) {
-            urlString = urlString.replaceFirst(regex, replacer);
-        }
-        return urlString;
-    }
-
-    /**
-     * Return input string with first character in upper case.
-     *
-     * @param name
-     *            input string.
-     * @return capitalized form.
-     */
-    public static String capitalize(String name) {
-        if (name == null || name.length() == 0) {
-            return name;
-        }
-        char[] chars = name.toCharArray();
-        chars[0] = Character.toUpperCase(chars[0]);
-        return new String(chars);
-    }
-
-    public static String uncapitalize(String str) {
-        if (str == null || str.length() == 0) {
-            return str;
-        }
-        return new StringBuilder(str.length())
-                .append(Character.toLowerCase(str.charAt(0)))
-                .append(str.substring(1)).toString();
-    }
-
     public static String extractFullContextPath(HttpServletRequest request) throws MalformedURLException {
-        String result = null;
+        String result;
         String contextPath = request.getContextPath();
         String requestUrl = request.getRequestURL().toString();
         String requestPath = new URL(requestUrl).getPath();
         // Cut request path of request url and add context path if not ROOT
-        if (requestPath != null && requestPath.length() > 0) {
+        if (requestPath != null && !requestPath.isEmpty()) {
             int lastIndex = requestUrl.lastIndexOf(requestPath);
             result = requestUrl.substring(0, lastIndex);
         } else {
             result = requestUrl;
         }
-        if (contextPath != null && contextPath.length() > 0) {
+        if (contextPath != null && !contextPath.isEmpty()) {
             // contextPath contains starting slash
-            result = result + contextPath + "/";
+            result = result + contextPath + '/';
         } else {
-            result = result + "/";
+            result = result + '/';
         }
         return result;
     }
diff --git a/plugins/core/src/test/java/org/apache/cxf/fediz/core/config/CallbackHandlerTest.java b/plugins/core/src/test/java/org/apache/cxf/fediz/core/config/CallbackHandlerTest.java
index 92b58bd..48c7e20 100644
--- a/plugins/core/src/test/java/org/apache/cxf/fediz/core/config/CallbackHandlerTest.java
+++ b/plugins/core/src/test/java/org/apache/cxf/fediz/core/config/CallbackHandlerTest.java
@@ -114,7 +114,7 @@
         audienceUris.getAudienceItem().add(AUDIENCE_URI);
         config.setAudienceUris(audienceUris);
 
-        ProtocolType protocol = null;
+        final ProtocolType protocol;
 
         if (federation) {
             protocol = new FederationProtocolType();
diff --git a/plugins/core/src/test/java/org/apache/cxf/fediz/core/config/FedizConfigurationTest.java b/plugins/core/src/test/java/org/apache/cxf/fediz/core/config/FedizConfigurationTest.java
index cc72508..d8c3ac1 100644
--- a/plugins/core/src/test/java/org/apache/cxf/fediz/core/config/FedizConfigurationTest.java
+++ b/plugins/core/src/test/java/org/apache/cxf/fediz/core/config/FedizConfigurationTest.java
@@ -163,7 +163,7 @@
 
         config.setTrustedIssuers(trustedIssuers);
 
-        ProtocolType protocol = null;
+        final ProtocolType protocol;
 
         if (federation) {
             protocol = new FederationProtocolType();
diff --git a/plugins/core/src/test/java/org/apache/cxf/fediz/core/config/FedizConfigurationWriterTest.java b/plugins/core/src/test/java/org/apache/cxf/fediz/core/config/FedizConfigurationWriterTest.java
index cb58585..d401909 100644
--- a/plugins/core/src/test/java/org/apache/cxf/fediz/core/config/FedizConfigurationWriterTest.java
+++ b/plugins/core/src/test/java/org/apache/cxf/fediz/core/config/FedizConfigurationWriterTest.java
@@ -151,7 +151,7 @@
         audienceUris.getAudienceItem().add(AUDIENCE_URI_1);
         config.setAudienceUris(audienceUris);
 
-        ProtocolType protocol = null;
+        final ProtocolType protocol;
 
         if (federation) {
             protocol = new FederationProtocolType();
diff --git a/plugins/core/src/test/java/org/apache/cxf/fediz/core/federation/FederationResponseTest.java b/plugins/core/src/test/java/org/apache/cxf/fediz/core/federation/FederationResponseTest.java
index abdc062..733750a 100644
--- a/plugins/core/src/test/java/org/apache/cxf/fediz/core/federation/FederationResponseTest.java
+++ b/plugins/core/src/test/java/org/apache/cxf/fediz/core/federation/FederationResponseTest.java
@@ -320,7 +320,7 @@
 
         wfProc = new FederationProcessorImpl();
         try {
-            wfRes = wfProc.processRequest(wfReq, config);
+            wfProc.processRequest(wfReq, config);
             Assert.fail("Processing must fail because of invalid subject cert constraint");
         } catch (ProcessingException ex) {
             // expected
diff --git a/plugins/cxf/src/main/java/org/apache/cxf/fediz/cxf/plugin/FedizRedirectBindingFilter.java b/plugins/cxf/src/main/java/org/apache/cxf/fediz/cxf/plugin/FedizRedirectBindingFilter.java
index 6a5963e..4445bdd 100644
--- a/plugins/cxf/src/main/java/org/apache/cxf/fediz/cxf/plugin/FedizRedirectBindingFilter.java
+++ b/plugins/cxf/src/main/java/org/apache/cxf/fediz/cxf/plugin/FedizRedirectBindingFilter.java
@@ -146,7 +146,7 @@
 
             long currentTime = System.currentTimeMillis();
             Instant notOnOrAfter = wfRes.getTokenExpires();
-            long expiresAt = 0;
+            final long expiresAt;
             if (notOnOrAfter != null) {
                 expiresAt = notOnOrAfter.toEpochMilli();
             } else {
@@ -402,7 +402,7 @@
                     LOG.warn("Could not write logout.jpg");
                     return true;
                 }
-                int read = 0;
+                int read;
                 byte[] buf = new byte[1024];
                 while ((read = inputStream.read(buf)) != -1) {
                     responseOutputStream.write(buf, 0, read);
diff --git a/plugins/jetty9/src/main/java/org/apache/cxf/fediz/jetty9/FederationAuthenticator.java b/plugins/jetty9/src/main/java/org/apache/cxf/fediz/jetty9/FederationAuthenticator.java
index 013e007..d77b3d1 100644
--- a/plugins/jetty9/src/main/java/org/apache/cxf/fediz/jetty9/FederationAuthenticator.java
+++ b/plugins/jetty9/src/main/java/org/apache/cxf/fediz/jetty9/FederationAuthenticator.java
@@ -336,7 +336,7 @@
             LOG.warn("Could not write logout.jpg");
             return Authentication.SEND_FAILURE;
         }
-        int read = 0;
+        int read;
         byte[] buf = new byte[1024];
         while ((read = inputStream.read(buf)) != -1) {
             responseOutputStream.write(buf, 0, read);
diff --git a/plugins/jetty9/src/main/java/org/apache/cxf/fediz/jetty9/FederationLoginService.java b/plugins/jetty9/src/main/java/org/apache/cxf/fediz/jetty9/FederationLoginService.java
index 5a04bec..73efa3d 100644
--- a/plugins/jetty9/src/main/java/org/apache/cxf/fediz/jetty9/FederationLoginService.java
+++ b/plugins/jetty9/src/main/java/org/apache/cxf/fediz/jetty9/FederationLoginService.java
@@ -79,7 +79,7 @@
     public UserIdentity login(String username, Object credentials, FedizContext config) {
 
         try {
-            FedizResponse wfRes = null;
+            final FedizResponse wfRes;
             FedizRequest wfReq = (FedizRequest)credentials;
 
             if (LOG.isDebugEnabled()) {
diff --git a/plugins/spring/src/main/java/org/apache/cxf/fediz/spring/web/FederationAuthenticationEntryPoint.java b/plugins/spring/src/main/java/org/apache/cxf/fediz/spring/web/FederationAuthenticationEntryPoint.java
index aac5e27..dcd2113 100644
--- a/plugins/spring/src/main/java/org/apache/cxf/fediz/spring/web/FederationAuthenticationEntryPoint.java
+++ b/plugins/spring/src/main/java/org/apache/cxf/fediz/spring/web/FederationAuthenticationEntryPoint.java
@@ -107,7 +107,7 @@
             return;
         }
 
-        String redirectUrl = null;
+        final String redirectUrl;
         try {
             FedizProcessor wfProc =
                 FedizProcessorFactory.newFedizProcessor(fedContext.getProtocol());
diff --git a/plugins/spring/src/main/java/org/apache/cxf/fediz/spring/web/FederationSignOutCleanupFilter.java b/plugins/spring/src/main/java/org/apache/cxf/fediz/spring/web/FederationSignOutCleanupFilter.java
index e242944..0677c51 100644
--- a/plugins/spring/src/main/java/org/apache/cxf/fediz/spring/web/FederationSignOutCleanupFilter.java
+++ b/plugins/spring/src/main/java/org/apache/cxf/fediz/spring/web/FederationSignOutCleanupFilter.java
@@ -53,7 +53,7 @@
                 LOG.warn("Could not write logout.jpg");
                 return;
             }
-            int read = 0;
+            int read;
             byte[] buf = new byte[1024];
             while ((read = inputStream.read(buf)) != -1) {
                 responseOutputStream.write(buf, 0, read);
diff --git a/pom.xml b/pom.xml
index c1e68c2..344246e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -451,7 +451,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-checkstyle-plugin</artifactId>
-                    <version>3.1.1</version>
+                    <version>3.1.2</version>
                     <dependencies>
                         <dependency>
                             <groupId>org.apache.cxf.build-utils</groupId>
@@ -461,7 +461,7 @@
                         <dependency>
                             <groupId>com.puppycrawl.tools</groupId>
                             <artifactId>checkstyle</artifactId>
-                            <version>8.37</version>
+                            <version>8.41</version>
                        </dependency>
                     </dependencies>
                     <configuration>
@@ -490,7 +490,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-pmd-plugin</artifactId>
-                    <version>3.13.0</version>
+                    <version>3.14.0</version>
                     <dependencies>
                         <dependency>
                             <groupId>org.apache.cxf.build-utils</groupId>
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/STSKrbAuthenticationProvider.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/STSKrbAuthenticationProvider.java
index 32c01c7..24a46bb 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/STSKrbAuthenticationProvider.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/STSKrbAuthenticationProvider.java
@@ -164,10 +164,10 @@
                 + "credential delegation");
             return null;
         }
-        KerberosServiceContext kerberosContext;
-        Principal kerberosPrincipal = null;
+
+        final Principal kerberosPrincipal;
         try {
-            kerberosContext = kerberosTokenValidator.validate(token);
+            KerberosServiceContext kerberosContext = kerberosTokenValidator.validate(token);
             if (kerberosContext == null || kerberosContext.getDelegationCredential() == null) {
                 LOG.info("Kerberos Validation failure");
                 return null;
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/beans/STSClientAction.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/beans/STSClientAction.java
index 8ddbc9c..2c33731 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/beans/STSClientAction.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/beans/STSClientAction.java
@@ -291,7 +291,7 @@
             }
         }
 
-        Element rpToken = null;
+        final Element rpToken;
         try {
             rpToken = sts.requestSecurityTokenResponse(realm);
         } catch (SoapFault ex) {
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/beans/samlsso/AuthnRequestParser.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/beans/samlsso/AuthnRequestParser.java
index f501458..5de9ff8 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/beans/samlsso/AuthnRequestParser.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/beans/samlsso/AuthnRequestParser.java
@@ -26,9 +26,9 @@
 import java.security.cert.X509Certificate;
 import java.util.Arrays;
 import java.util.Base64;
-import java.util.Collections;
 import java.util.Date;
-import java.util.List;
+import java.util.HashSet;
+import java.util.Set;
 
 import org.w3c.dom.Document;
 
@@ -89,13 +89,15 @@
     private static final String RSA_SHA1_MGF1 = "http://www.w3.org/2007/05/xmldsig-more#sha1-rsa-MGF1";
     private static final String RSA_SHA256_MGF1 = "http://www.w3.org/2007/05/xmldsig-more#sha256-rsa-MGF1";
     private static final String DSA_SHA256 = "http://www.w3.org/2009/xmldsig11#dsa-sha256";
-    private static final List<String> SIG_ALGS;
-
-    static {
-        List<String> sigAlgs = Arrays.asList(SSOConstants.RSA_SHA1, SSOConstants.DSA_SHA1, RSA_SHA256, RSA_SHA384,
-                                             RSA_SHA512, RSA_SHA1_MGF1, RSA_SHA256_MGF1, DSA_SHA256);
-        SIG_ALGS = Collections.unmodifiableList(sigAlgs);
-    }
+    private static final Set<String> SIG_ALGS = new HashSet<>(Arrays.asList(
+        SSOConstants.RSA_SHA1,
+        SSOConstants.DSA_SHA1,
+        RSA_SHA256,
+        RSA_SHA384,
+        RSA_SHA512,
+        RSA_SHA1_MGF1,
+        RSA_SHA256_MGF1,
+        DSA_SHA256));
 
     private boolean supportDeflateEncoding;
     private boolean requireSignature = true;
@@ -108,7 +110,7 @@
             WebUtils.removeAttribute(context, IdpConstants.SAML_AUTHN_REQUEST);
             throw new ProcessingException(TYPE.BAD_REQUEST);
         } else {
-            RequestAbstractType parsedRequest = null;
+            final RequestAbstractType parsedRequest;
             try {
                 parsedRequest = extractRequest(context, samlRequest);
             } catch (Exception ex) {
@@ -325,7 +327,7 @@
         X509Certificate validatingCert = getValidatingCertificate(idp, realm);
 
         // Process the received SigAlg parameter - fall back to RSA SHA1
-        String processedSigAlg = null;
+        final String processedSigAlg;
         if (sigAlg != null && SIG_ALGS.contains(sigAlg)) {
             processedSigAlg = sigAlg;
         } else {
@@ -339,9 +341,9 @@
 
         // Recreate request to sign
         String requestToSign =
-                SSOConstants.SAML_REQUEST + "=" + URLEncoder.encode(samlRequest, StandardCharsets.UTF_8.name())
-                + "&" + SSOConstants.RELAY_STATE + "=" + URLEncoder.encode(relayState, StandardCharsets.UTF_8.name())
-                + "&" + SSOConstants.SIG_ALG + "=" + URLEncoder.encode(processedSigAlg, StandardCharsets.UTF_8.name());
+                SSOConstants.SAML_REQUEST + '=' + URLEncoder.encode(samlRequest, StandardCharsets.UTF_8.name())
+                + '&' + SSOConstants.RELAY_STATE + '=' + URLEncoder.encode(relayState, StandardCharsets.UTF_8.name())
+                + '&' + SSOConstants.SIG_ALG + '=' + URLEncoder.encode(processedSigAlg, StandardCharsets.UTF_8.name());
 
         sig.update(requestToSign.getBytes(StandardCharsets.UTF_8));
 
@@ -442,7 +444,7 @@
             throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "invalidSAMLsecurity");
         }
 
-        BasicCredential credential = null;
+        final BasicCredential credential;
         if (samlKeyInfo.getCerts() != null) {
             credential = new BasicX509Credential(samlKeyInfo.getCerts()[0]);
         } else if (samlKeyInfo.getPublicKey() != null) {
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/beans/samlsso/SamlResponseErrorCreator.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/beans/samlsso/SamlResponseErrorCreator.java
index f6996c2..7487aa2 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/beans/samlsso/SamlResponseErrorCreator.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/beans/samlsso/SamlResponseErrorCreator.java
@@ -53,7 +53,7 @@
 
         Status status =
             SAML2PResponseComponentBuilder.createStatus(statusValue, null);
-        Element responseElement = null;
+        final Element responseElement;
         try {
             if (logout) {
                 responseElement = createLogoutResponse(idp, statusValue, destination, requestID);
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/kerberos/KerberosTokenValidator.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/kerberos/KerberosTokenValidator.java
index c318ef2..2414939 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/kerberos/KerberosTokenValidator.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/kerberos/KerberosTokenValidator.java
@@ -109,7 +109,7 @@
         }
 
         // Get a TGT from the KDC using JAAS
-        LoginContext loginContext = null;
+        final LoginContext loginContext;
         if (callbackHandler != null) {
             loginContext = new LoginContext(getContextName(), callbackHandler);
         } else {
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/metadata/ServiceMetadataWriter.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/metadata/ServiceMetadataWriter.java
index 8755d33..70bfdb4 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/metadata/ServiceMetadataWriter.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/metadata/ServiceMetadataWriter.java
@@ -50,7 +50,6 @@
 
     private static final Logger LOG = LoggerFactory.getLogger(ServiceMetadataWriter.class);
 
-    //CHECKSTYLE:OFF
     public Document getMetaData(Idp config, TrustedIdp serviceConfig) throws ProcessingException {
 
         try {
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/protocols/TrustedIdpSAMLProtocolHandler.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/protocols/TrustedIdpSAMLProtocolHandler.java
index 0fc37a6..f42e400 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/protocols/TrustedIdpSAMLProtocolHandler.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/protocols/TrustedIdpSAMLProtocolHandler.java
@@ -23,6 +23,8 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.StringReader;
 import java.io.UnsupportedEncodingException;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -292,32 +294,31 @@
 
         String samlResponseDecoded = samlResponse;
 
-        InputStream tokenStream = null;
+        final Reader reader;
         if (isBooleanPropertyConfigured(trustedIdp, SUPPORT_BASE64_ENCODING, true)) {
             try {
                 byte[] deflatedToken = Base64Utility.decode(samlResponseDecoded);
-                tokenStream = isBooleanPropertyConfigured(trustedIdp, SUPPORT_DEFLATE_ENCODING, false)
+                final InputStream tokenStream = isBooleanPropertyConfigured(trustedIdp, SUPPORT_DEFLATE_ENCODING, false)
                     ? new DeflateEncoderDecoder().inflateToken(deflatedToken)
                     : new ByteArrayInputStream(deflatedToken);
-            } catch (Base64Exception ex) {
-                throw ExceptionUtils.toBadRequestException(ex, null);
-            } catch (DataFormatException ex) {
+                reader = new InputStreamReader(tokenStream, StandardCharsets.UTF_8);
+            } catch (Base64Exception | DataFormatException ex) {
                 throw ExceptionUtils.toBadRequestException(ex, null);
             }
         } else {
-            tokenStream = new ByteArrayInputStream(samlResponseDecoded.getBytes(StandardCharsets.UTF_8));
+            reader = new StringReader(samlResponseDecoded);
         }
 
-        Document responseDoc = null;
+        final Document responseDoc;
         try {
-            responseDoc = StaxUtils.read(new InputStreamReader(tokenStream, StandardCharsets.UTF_8));
+            responseDoc = StaxUtils.read(reader);
         } catch (Exception ex) {
             throw new WebApplicationException(400);
         }
 
         LOG.debug("Received response: " + DOM2Writer.nodeToString(responseDoc.getDocumentElement()));
 
-        XMLObject responseObject = null;
+        final XMLObject responseObject;
         try {
             responseObject = OpenSAMLUtil.fromDom(responseDoc.getDocumentElement());
         } catch (WSSecurityException ex) {
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/protocols/TrustedIdpWSFedProtocolHandler.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/protocols/TrustedIdpWSFedProtocolHandler.java
index 210c8ca..3aeca38 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/protocols/TrustedIdpWSFedProtocolHandler.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/protocols/TrustedIdpWSFedProtocolHandler.java
@@ -207,8 +207,6 @@
 
         FedizContext fedContext = new FedizContext(config);
         if (!isCertificateLocation) {
-            CertificateStore cs = null;
-
             X509Certificate cert;
             try {
                 cert = CertsUtils.parseX509Certificate(trustedIdpConfig.getCertificate());
@@ -216,7 +214,7 @@
                 LOG.error("Failed to parse trusted certificate", ex);
                 throw new ProcessingException("Failed to parse trusted certificate");
             }
-            cs = new CertificateStore(Collections.singletonList(cert).toArray(new X509Certificate[0]));
+            CertificateStore cs = new CertificateStore(Collections.singletonList(cert).toArray(new X509Certificate[0]));
 
             TrustManager tm = new TrustManager(cs);
             fedContext.getCertificateStores().add(tm);
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/ApplicationDAOJPAImpl.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/ApplicationDAOJPAImpl.java
index 42962e4..25b1551 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/ApplicationDAOJPAImpl.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/ApplicationDAOJPAImpl.java
@@ -59,10 +59,8 @@
     public List<Application> getApplications(int start, int size, List<String> expandList) {
         List<Application> list = new ArrayList<>();
 
-        Query query = null;
-        query = em.createQuery("select a from Application a");
+        Query query = em.createQuery("select a from Application a");
 
-        //@SuppressWarnings("rawtypes")
         List<?> serviceEntities = query
             .setFirstResult(start)
             .setMaxResults(size)
@@ -93,11 +91,9 @@
 
     @Override
     public void updateApplication(String realm, Application application) {
-        Query query = null;
-        query = em.createQuery("select a from Application a where a.realm=:realm");
+        Query query = em.createQuery("select a from Application a where a.realm=:realm");
         query.setParameter("realm", realm);
 
-        //@SuppressWarnings("rawtypes")
         ApplicationEntity applicationEntity = (ApplicationEntity)query.getSingleResult();
 
         domain2entity(application, applicationEntity);
@@ -110,11 +106,9 @@
 
     @Override
     public void deleteApplication(String realm) {
-        Query query = null;
-        query = em.createQuery("select a from Application a where a.realm=:realm");
+        Query query = em.createQuery("select a from Application a where a.realm=:realm");
         query.setParameter("realm", realm);
 
-        //@SuppressWarnings("rawtypes")
         Object applObj = query.getSingleResult();
         em.remove(applObj);
 
@@ -124,12 +118,11 @@
 
     @Override
     public void addClaimToApplication(Application application, RequestClaim claim) {
-        ApplicationEntity applicationEntity = null;
+        final ApplicationEntity applicationEntity;
         if (application.getId() != 0) {
             applicationEntity = em.find(ApplicationEntity.class, application.getId());
         } else {
-            Query query = null;
-            query = em.createQuery("select a from Application a where a.realm=:realm");
+            Query query = em.createQuery("select a from Application a where a.realm=:realm");
             query.setParameter("realm", application.getRealm());
 
             applicationEntity = (ApplicationEntity)query.getSingleResult();
@@ -148,12 +141,11 @@
 
     @Override
     public void removeClaimFromApplication(Application application, RequestClaim claim) {
-        ApplicationEntity applicationEntity = null;
+        final ApplicationEntity applicationEntity;
         if (application.getId() != 0) {
             applicationEntity = em.find(ApplicationEntity.class, application.getId());
         } else {
-            Query query = null;
-            query = em.createQuery("select a from Application a where a.realm=:realm");
+            Query query = em.createQuery("select a from Application a where a.realm=:realm");
             query.setParameter("realm", application.getRealm());
 
             applicationEntity = (ApplicationEntity)query.getSingleResult();
@@ -175,11 +167,9 @@
 
 
     static ApplicationEntity getApplicationEntity(String realm, EntityManager em) {
-        Query query = null;
-        query = em.createQuery("select a from Application a where a.realm=:realm");
+        Query query = em.createQuery("select a from Application a where a.realm=:realm");
         query.setParameter("realm", realm);
 
-        //@SuppressWarnings("rawtypes")
         return (ApplicationEntity)query.getSingleResult();
     }
 
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/ClaimDAOJPAImpl.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/ClaimDAOJPAImpl.java
index bddeb43..be6510d 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/ClaimDAOJPAImpl.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/ClaimDAOJPAImpl.java
@@ -51,10 +51,8 @@
     public List<Claim> getClaims(int start, int size) {
         List<Claim> list = new ArrayList<>();
 
-        Query query = null;
-        query = em.createQuery("select c from Claim c");
+        Query query = em.createQuery("select c from Claim c");
 
-        //@SuppressWarnings("rawtypes")
         List<?> claimEntities = query
             .setFirstResult(start)
             .setMaxResults(size)
@@ -85,11 +83,9 @@
 
     @Override
     public void updateClaim(String claimType, Claim claim) {
-        Query query = null;
-        query = em.createQuery("select c from Claim c where c.claimtype=:claimtype");
+        Query query = em.createQuery("select c from Claim c where c.claimtype=:claimtype");
         query.setParameter("claimtype", claimType);
 
-        //@SuppressWarnings("rawtypes")
         ClaimEntity claimEntity = (ClaimEntity)query.getSingleResult();
 
         domain2entity(claim, claimEntity);
@@ -100,11 +96,9 @@
 
     @Override
     public void deleteClaim(String claimType) {
-        Query query = null;
-        query = em.createQuery("select c from Claim c where c.claimType=:claimtype");
+        Query query = em.createQuery("select c from Claim c where c.claimType=:claimtype");
         query.setParameter("claimtype", claimType);
 
-        //@SuppressWarnings("rawtypes")
         Object claimObj = query.getSingleResult();
         em.remove(claimObj);
 
@@ -112,11 +106,9 @@
     }
 
     static ClaimEntity getClaimEntity(String claimType, EntityManager em) {
-        Query query = null;
-        query = em.createQuery("select c from Claim c where c.claimType=:claimtype");
+        Query query = em.createQuery("select c from Claim c where c.claimType=:claimtype");
         query.setParameter("claimtype", claimType);
 
-        //@SuppressWarnings("rawtypes")
         return (ClaimEntity)query.getSingleResult();
     }
 
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/DBLoaderImpl.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/DBLoaderImpl.java
index 78dfb41..5defe8c 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/DBLoaderImpl.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/DBLoaderImpl.java
@@ -19,10 +19,8 @@
 package org.apache.cxf.fediz.service.idp.service.jpa;
 
 import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.Arrays;
+import java.util.Collections;
 
 import javax.persistence.EntityManager;
 import javax.persistence.PersistenceContext;
@@ -35,7 +33,6 @@
 import org.springframework.transaction.annotation.Transactional;
 
 @Transactional
-//CHECKSTYLE:OFF
 public class DBLoaderImpl implements DBLoader {
 
     public static final String NAME = "DEMODBLOADER";
@@ -54,6 +51,7 @@
         return NAME;
     }
 
+    //CHECKSTYLE:OFF: ExecutableStatementCount
     @Override
     public void load() {
 
@@ -137,21 +135,21 @@
             idpEntity.setServiceDescription("IDP of Realm A");
             idpEntity.setUri("realma");
             idpEntity.setProvideIdpList(true);
-            Map<String, String> authUris = new HashMap<>();
-            authUris.put("default", "/login/default");
-            idpEntity.setAuthenticationURIs(authUris);
-            List<String> protocols = new ArrayList<>();
-            protocols.add("http://docs.oasis-open.org/wsfed/federation/200706");
-            protocols.add("http://docs.oasis-open.org/ws-sx/ws-trust/200512");
-            idpEntity.setSupportedProtocols(protocols);
+            idpEntity.setAuthenticationURIs(
+                Collections.singletonMap("default", "/login/default")
+            );
+            idpEntity.setSupportedProtocols(Arrays.asList(
+                "http://docs.oasis-open.org/wsfed/federation/200706",
+                "http://docs.oasis-open.org/ws-sx/ws-trust/200512"
+            ));
             idpEntity.getClaimTypesOffered().add(claimEntity1);
             idpEntity.getClaimTypesOffered().add(claimEntity2);
             idpEntity.getClaimTypesOffered().add(claimEntity3);
             idpEntity.getClaimTypesOffered().add(claimEntity4);
-            List<String> tokenTypes = new ArrayList<>();
-            tokenTypes.add(WSConstants.SAML2_NS);
-            tokenTypes.add(WSConstants.SAML_NS);
-            idpEntity.setTokenTypesOffered(tokenTypes);
+            idpEntity.setTokenTypesOffered(Arrays.asList(
+                WSConstants.SAML2_NS,
+                WSConstants.SAML_NS
+            ));
             idpEntity.setUseCurrentIdp(true);
             em.persist(idpEntity);
 
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/EntitlementDAOJPAImpl.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/EntitlementDAOJPAImpl.java
index 6a4c5c4..c4682d8 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/EntitlementDAOJPAImpl.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/EntitlementDAOJPAImpl.java
@@ -50,10 +50,8 @@
     public List<Entitlement> getEntitlements(int start, int size) {
         List<Entitlement> list = new ArrayList<>();
 
-        Query query = null;
-        query = em.createQuery("select e from Entitlement e");
+        Query query = em.createQuery("select e from Entitlement e");
 
-        //@SuppressWarnings("rawtypes")
         List<?> entitlementEntities = query
             .setFirstResult(start)
             .setMaxResults(size)
@@ -84,11 +82,9 @@
 
     @Override
     public void updateEntitlement(String name, Entitlement entitlement) {
-        Query query = null;
-        query = em.createQuery("select e from Entitlement e where e.name=:name");
+        Query query = em.createQuery("select e from Entitlement e where e.name=:name");
         query.setParameter("name", name);
 
-        //@SuppressWarnings("rawtypes")
         EntitlementEntity entitlementEntity = (EntitlementEntity)query.getSingleResult();
 
         domain2entity(entitlement, entitlementEntity);
@@ -99,11 +95,9 @@
 
     @Override
     public void deleteEntitlement(String name) {
-        Query query = null;
-        query = em.createQuery("select e from Entitlement e where e.name=:name");
+        Query query = em.createQuery("select e from Entitlement e where e.name=:name");
         query.setParameter("name", name);
 
-        //@SuppressWarnings("rawtypes")
         Object entitlementObj = query.getSingleResult();
         em.remove(entitlementObj);
 
@@ -111,11 +105,9 @@
     }
 
     static EntitlementEntity getEntitlementEntity(String name, EntityManager em) {
-        Query query = null;
-        query = em.createQuery("select e from Entitlement e where e.name=:name");
+        Query query = em.createQuery("select e from Entitlement e where e.name=:name");
         query.setParameter("name", name);
 
-        //@SuppressWarnings("rawtypes")
         return (EntitlementEntity)query.getSingleResult();
     }
 
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/IdpDAOJPAImpl.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/IdpDAOJPAImpl.java
index 44ba864..c59a831 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/IdpDAOJPAImpl.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/IdpDAOJPAImpl.java
@@ -55,14 +55,12 @@
     public List<Idp> getIdps(int start, int size, List<String> expandList) {
         List<Idp> list = new ArrayList<>();
 
-        Query query = null;
-        query = em.createQuery("select i from IDP i");
+        Query query = em.createQuery("select i from IDP i");
 
         /*List serviceEntities = query.setFirstResult(start)
             .setMaxResults(size)
             .getResultList();*/
 
-        //@SuppressWarnings("rawtypes")
         List<?> idpEntities = query
             .setFirstResult(start)
             .setMaxResults(size)
@@ -77,11 +75,9 @@
 
     @Override
     public Idp getIdp(String realm, List<String> expandList) {
-        Query query = null;
-        query = em.createQuery("select i from IDP i where i.realm=:realm");
+        Query query = em.createQuery("select i from IDP i where i.realm=:realm");
         query.setParameter("realm", realm);
 
-        //@SuppressWarnings("rawtypes")
         Object idpObj = query.getSingleResult();
         return entity2domain((IdpEntity)idpObj, expandList);
     }
@@ -98,11 +94,9 @@
 
     @Override
     public void updateIdp(String realm, Idp idp) {
-        Query query = null;
-        query = em.createQuery("select i from IDP i where i.realm=:realm");
+        Query query = em.createQuery("select i from IDP i where i.realm=:realm");
         query.setParameter("realm", realm);
 
-        //@SuppressWarnings("rawtypes")
         IdpEntity idpEntity = (IdpEntity)query.getSingleResult();
 
         domain2entity(idp, idpEntity);
@@ -114,11 +108,9 @@
 
     @Override
     public void deleteIdp(String realm) {
-        Query query = null;
-        query = em.createQuery("select i from IDP i where i.realm=:realm");
+        Query query = em.createQuery("select i from IDP i where i.realm=:realm");
         query.setParameter("realm", realm);
 
-        //@SuppressWarnings("rawtypes")
         Object idpObj = query.getSingleResult();
         em.remove(idpObj);
 
@@ -127,14 +119,14 @@
 
     @Override
     public void addApplicationToIdp(Idp idp, Application application) {
-        IdpEntity idpEntity = null;
+        final IdpEntity idpEntity;
         if (idp.getId() != 0) {
             idpEntity = em.find(IdpEntity.class, idp.getId());
         } else {
             idpEntity = getIdpEntity(idp.getRealm(), em);
         }
 
-        ApplicationEntity applicationEntity = null;
+        final ApplicationEntity applicationEntity;
         if (application.getId() != 0) {
             applicationEntity = em.find(ApplicationEntity.class, application.getId());
         } else {
@@ -148,14 +140,14 @@
 
     @Override
     public void removeApplicationFromIdp(Idp idp, Application application) {
-        IdpEntity idpEntity = null;
+        final IdpEntity idpEntity;
         if (idp.getId() != 0) {
             idpEntity = em.find(IdpEntity.class, idp.getId());
         } else {
             idpEntity = getIdpEntity(idp.getRealm(), em);
         }
 
-        ApplicationEntity applicationEntity = null;
+        final ApplicationEntity applicationEntity;
         if (application.getId() != 0) {
             applicationEntity = em.find(ApplicationEntity.class, application.getId());
         } else {
@@ -175,14 +167,14 @@
 
     @Override
     public void addTrustedIdpToIdp(Idp idp, TrustedIdp trustedIdp) {
-        IdpEntity idpEntity = null;
+        final IdpEntity idpEntity;
         if (idp.getId() != 0) {
             idpEntity = em.find(IdpEntity.class, idp.getId());
         } else {
             idpEntity = getIdpEntity(idp.getRealm(), em);
         }
 
-        TrustedIdpEntity trustedIdpEntity = null;
+        final TrustedIdpEntity trustedIdpEntity;
         if (trustedIdp.getId() != 0) {
             trustedIdpEntity = em.find(TrustedIdpEntity.class, trustedIdp.getId());
         } else {
@@ -196,14 +188,14 @@
 
     @Override
     public void removeTrustedIdpFromIdp(Idp idp, TrustedIdp trustedIdp) {
-        IdpEntity idpEntity = null;
+        final IdpEntity idpEntity;
         if (idp.getId() != 0) {
             idpEntity = em.find(IdpEntity.class, idp.getId());
         } else {
             idpEntity = getIdpEntity(idp.getRealm(), em);
         }
 
-        TrustedIdpEntity trustedIdpEntity = null;
+        final TrustedIdpEntity trustedIdpEntity;
         if (trustedIdp.getId() != 0) {
             trustedIdpEntity = em.find(TrustedIdpEntity.class, trustedIdp.getId());
         } else {
@@ -217,14 +209,14 @@
 
     @Override
     public void addClaimToIdp(Idp idp, Claim claim) {
-        IdpEntity idpEntity = null;
+        final IdpEntity idpEntity;
         if (idp.getId() != 0) {
             idpEntity = em.find(IdpEntity.class, idp.getId());
         } else {
             idpEntity = getIdpEntity(idp.getRealm(), em);
         }
 
-        ClaimEntity claimEntity = null;
+        final ClaimEntity claimEntity;
         if (claim.getId() != 0) {
             claimEntity = em.find(ClaimEntity.class, claim.getId());
         } else {
@@ -238,7 +230,7 @@
 
     @Override
     public void removeClaimFromIdp(Idp idp, Claim claim) {
-        IdpEntity idpEntity = null;
+        final IdpEntity idpEntity;
         if (idp.getId() != 0) {
             idpEntity = em.find(IdpEntity.class, idp.getId());
         } else {
@@ -248,7 +240,7 @@
             throw new EntityNotFoundException("IdpEntity not found");
         }
 
-        ClaimEntity claimEntity = null;
+        final ClaimEntity claimEntity;
         if (claim.getId() != 0) {
             claimEntity = em.find(ClaimEntity.class, claim.getId());
         } else {
@@ -266,11 +258,9 @@
     }
 
     static IdpEntity getIdpEntity(String realm, EntityManager em) {
-        Query query = null;
-        query = em.createQuery("select i from IDP i where i.realm=:realm");
+        Query query = em.createQuery("select i from IDP i where i.realm=:realm");
         query.setParameter("realm", realm);
 
-        //@SuppressWarnings("rawtypes")
         return (IdpEntity)query.getSingleResult();
     }
 
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/RoleDAOJPAImpl.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/RoleDAOJPAImpl.java
index 3066bf9..8feb126 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/RoleDAOJPAImpl.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/RoleDAOJPAImpl.java
@@ -52,10 +52,8 @@
     public List<Role> getRoles(int start, int size, List<String> expandList) {
         List<Role> list = new ArrayList<>();
 
-        Query query = null;
-        query = em.createQuery("select r from Role r");
+        Query query = em.createQuery("select r from Role r");
 
-        //@SuppressWarnings("rawtypes")
         List<?> roleEntities = query
             .setFirstResult(start)
             .setMaxResults(size)
@@ -70,11 +68,9 @@
 
     @Override
     public Role getRole(String name, List<String> expandList) {
-        Query query = null;
-        query = em.createQuery("select r from Role r where r.name=:name");
+        Query query = em.createQuery("select r from Role r where r.name=:name");
         query.setParameter("name", name);
 
-        //@SuppressWarnings("rawtypes")
         Object roleObj = query.getSingleResult();
         return entity2domain((RoleEntity)roleObj, expandList);
     }
@@ -91,11 +87,9 @@
 
     @Override
     public void updateRole(String name, Role role) {
-        Query query = null;
-        query = em.createQuery("select r from Role r where r.name=:name");
+        Query query = em.createQuery("select r from Role r where r.name=:name");
         query.setParameter("name", name);
 
-        //@SuppressWarnings("rawtypes")
         RoleEntity roleEntity = (RoleEntity)query.getSingleResult();
 
         domain2entity(role, roleEntity);
@@ -107,11 +101,9 @@
 
     @Override
     public void deleteRole(String name) {
-        Query query = null;
-        query = em.createQuery("select r from Role r where r.name=:name");
+        Query query = em.createQuery("select r from Role r where r.name=:name");
         query.setParameter("name", name);
 
-        //@SuppressWarnings("rawtypes")
         Object roleObj = query.getSingleResult();
         em.remove(roleObj);
 
@@ -120,14 +112,14 @@
 
     @Override
     public void addEntitlementToRole(Role role, Entitlement entitlement) {
-        RoleEntity roleEntity = null;
+        final RoleEntity roleEntity;
         if (role.getId() != 0) {
             roleEntity = em.find(RoleEntity.class, role.getId());
         } else {
             roleEntity = getRoleEntity(role.getName(), em);
         }
 
-        EntitlementEntity entitlementEntity = null;
+        final EntitlementEntity entitlementEntity;
         if (entitlement.getId() != 0) {
             entitlementEntity = em.find(EntitlementEntity.class, entitlement.getId());
         } else {
@@ -141,14 +133,14 @@
 
     @Override
     public void removeEntitlementFromRole(Role role, Entitlement entitlement) {
-        RoleEntity roleEntity = null;
+        final RoleEntity roleEntity;
         if (role.getId() != 0) {
             roleEntity = em.find(RoleEntity.class, role.getId());
         } else {
             roleEntity = getRoleEntity(role.getName(), em);
         }
 
-        EntitlementEntity entitlementEntity = null;
+        final EntitlementEntity entitlementEntity;
         if (entitlement.getId() != 0) {
             entitlementEntity = em.find(EntitlementEntity.class, entitlement.getId());
         } else {
@@ -167,11 +159,9 @@
     }
 
     static RoleEntity getRoleEntity(String realm, EntityManager em) {
-        Query query = null;
-        query = em.createQuery("select i from IDP i where i.realm=:realm");
+        Query query = em.createQuery("select i from IDP i where i.realm=:realm");
         query.setParameter("realm", realm);
 
-        //@SuppressWarnings("rawtypes")
         return (RoleEntity)query.getSingleResult();
     }
 
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/TrustedIdpDAOJPAImpl.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/TrustedIdpDAOJPAImpl.java
index 4da5279..07cb430 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/TrustedIdpDAOJPAImpl.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/TrustedIdpDAOJPAImpl.java
@@ -50,8 +50,7 @@
     public List<TrustedIdp> getTrustedIDPs(int start, int size) {
         List<TrustedIdp> list = new ArrayList<>();
 
-        Query query = null;
-        query = em.createQuery("select t from TrustedIDP t");
+        Query query = em.createQuery("select t from TrustedIDP t");
 
         List<?> idpEntities = query
             .setFirstResult(start)
@@ -93,11 +92,9 @@
 
     @Override
     public void deleteTrustedIDP(String realm) {
-        Query query = null;
-        query = em.createQuery("select t from TrustedIDP t where t.realm=:realm");
+        Query query = em.createQuery("select t from TrustedIDP t where t.realm=:realm");
         query.setParameter("realm", realm);
 
-        //@SuppressWarnings("rawtypes")
         Object trustedIdpObj = query.getSingleResult();
         em.remove(trustedIdpObj);
 
@@ -105,11 +102,9 @@
     }
 
     static TrustedIdpEntity getTrustedIdpEntity(String realm, EntityManager em) {
-        Query query = null;
-        query = em.createQuery("select t from TrustedIDP t where t.realm=:realm");
+        Query query = em.createQuery("select t from TrustedIDP t where t.realm=:realm");
         query.setParameter("realm", realm);
 
-        //@SuppressWarnings("rawtypes")
         return (TrustedIdpEntity)query.getSingleResult();
     }
 
diff --git a/services/idp-core/src/test/java/org/apache/cxf/fediz/service/idp/beans/STSClientActionTest.java b/services/idp-core/src/test/java/org/apache/cxf/fediz/service/idp/beans/STSClientActionTest.java
index 18c40ba..c35fe3f 100644
--- a/services/idp-core/src/test/java/org/apache/cxf/fediz/service/idp/beans/STSClientActionTest.java
+++ b/services/idp-core/src/test/java/org/apache/cxf/fediz/service/idp/beans/STSClientActionTest.java
@@ -18,7 +18,6 @@
  */
 package org.apache.cxf.fediz.service.idp.beans;
 
-import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
 import org.springframework.mock.web.MockHttpServletRequest;
@@ -34,7 +33,7 @@
     private static final int LOCAL_PORT = 8080;
 
     @Test
-    public void testWsdlWithDefaultPort() {
+    public void testWsdlWithDefaultPort() throws Exception {
         String wsdlLocation = "http://someserver/sts";
         STSClientAction action = new STSClientAction();
         action.setWsdlLocation(wsdlLocation);
@@ -43,7 +42,7 @@
     }
 
     @Test
-    public void testWsdlWithExplicitPort() {
+    public void testWsdlWithExplicitPort() throws Exception {
         String wsdlLocation = "http://someserver:91/sts";
         STSClientAction action = new STSClientAction();
         action.setWsdlLocation(wsdlLocation);
@@ -52,7 +51,7 @@
     }
 
     @Test
-    public void testWsdlWithPort0() {
+    public void testWsdlWithPort0() throws Exception {
         String wsdlLocation = "http://someserver:0/sts";
         STSClientAction action = new STSClientAction();
         action.setWsdlLocation(wsdlLocation);
@@ -60,26 +59,18 @@
         assertEquals("http://someserver:" + LOCAL_PORT + "/sts", action.getWsdlLocation());
     }
 
-    private void callProcessWsdlLocation(STSClientAction action, RequestContext requestContext) {
-        Method method = null;
-        try {
-            method = action.getClass().getDeclaredMethod("processWsdlLocation", RequestContext.class);
-        } catch (NoSuchMethodException e) {
-            throw new RuntimeException(e);
-        }
+    private static void callProcessWsdlLocation(STSClientAction action, RequestContext requestContext)
+        throws ReflectiveOperationException, SecurityException {
+        Method method = action.getClass().getDeclaredMethod("processWsdlLocation", RequestContext.class);
         method.setAccessible(true);
-        try {
-            method.invoke(action, requestContext);
-        } catch (IllegalAccessException | InvocationTargetException e) {
-            throw new RuntimeException(e);
-        }
+        method.invoke(action, requestContext);
     }
 
     /**
      * Forces local port to pre-defined value to test if it's used
      * by STSClientAction to compute STS urls.
      */
-    private RequestContext mockRequestContext() {
+    private static RequestContext mockRequestContext() {
         MockRequestContext requestContext = new MockRequestContext();
         MockHttpServletRequest servletRequest = new MockHttpServletRequest();
         servletRequest.setLocalPort(LOCAL_PORT);
diff --git a/services/oidc/src/main/java/org/apache/cxf/fediz/service/oidc/clients/ClientCodeGrants.java b/services/oidc/src/main/java/org/apache/cxf/fediz/service/oidc/clients/ClientCodeGrants.java
index c7b16c9..fe5b4bd 100644
--- a/services/oidc/src/main/java/org/apache/cxf/fediz/service/oidc/clients/ClientCodeGrants.java
+++ b/services/oidc/src/main/java/org/apache/cxf/fediz/service/oidc/clients/ClientCodeGrants.java
@@ -19,14 +19,13 @@
 package org.apache.cxf.fediz.service.oidc.clients;
 
 import java.util.Collection;
-import java.util.Collections;
 
 import org.apache.cxf.rs.security.oauth2.common.Client;
 import org.apache.cxf.rs.security.oauth2.grants.code.ServerAuthorizationCodeGrant;
 
 public class ClientCodeGrants {
     private Client client;
-    private Collection<ServerAuthorizationCodeGrant> codeGrants = Collections.emptyList();
+    private Collection<ServerAuthorizationCodeGrant> codeGrants;
     public ClientCodeGrants(Client c, Collection<ServerAuthorizationCodeGrant> codeGrants) {
         this.client = c;
         this.codeGrants = codeGrants;
diff --git a/services/oidc/src/main/java/org/apache/cxf/fediz/service/oidc/clients/ClientTokens.java b/services/oidc/src/main/java/org/apache/cxf/fediz/service/oidc/clients/ClientTokens.java
index 90a0992..b3c0fcb 100644
--- a/services/oidc/src/main/java/org/apache/cxf/fediz/service/oidc/clients/ClientTokens.java
+++ b/services/oidc/src/main/java/org/apache/cxf/fediz/service/oidc/clients/ClientTokens.java
@@ -19,7 +19,6 @@
 package org.apache.cxf.fediz.service.oidc.clients;
 
 import java.util.Collection;
-import java.util.Collections;
 
 import org.apache.cxf.rs.security.oauth2.common.Client;
 import org.apache.cxf.rs.security.oauth2.common.ServerAccessToken;
@@ -27,8 +26,8 @@
 
 public class ClientTokens {
     private Client client;
-    private Collection<ServerAccessToken> accessTokens = Collections.emptyList();
-    private Collection<RefreshToken> refreshTokens = Collections.emptyList();
+    private final Collection<ServerAccessToken> accessTokens;
+    private final Collection<RefreshToken> refreshTokens;
     public ClientTokens(Client c,
         Collection<ServerAccessToken> accessTokens,
         Collection<RefreshToken> refreshTokens) {
diff --git a/services/oidc/src/main/java/org/apache/cxf/fediz/service/oidc/logout/LogoutService.java b/services/oidc/src/main/java/org/apache/cxf/fediz/service/oidc/logout/LogoutService.java
index a3e7df0..278cd9b 100644
--- a/services/oidc/src/main/java/org/apache/cxf/fediz/service/oidc/logout/LogoutService.java
+++ b/services/oidc/src/main/java/org/apache/cxf/fediz/service/oidc/logout/LogoutService.java
@@ -21,7 +21,6 @@
 import java.net.URI;
 import java.util.Arrays;
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.List;
 
 import javax.ws.rs.BadRequestException;
@@ -102,7 +101,7 @@
         if (tokenHint == null) {
             return null;
         }
-        JwtToken token = null;
+        final JwtToken token;
         try {
             token = super.getJwtToken(tokenHint);
         } catch (JoseException ex) {
@@ -119,7 +118,7 @@
         final String uriStr;
         if (uris.length > 1) {
             if (clientLogoutUriParam == null
-                    || !new HashSet<>(Arrays.asList(uris)).contains(clientLogoutUriParam)) {
+                    || !Arrays.asList(uris).contains(clientLogoutUriParam)) {
                 throw new BadRequestException();
             }
             uriStr = clientLogoutUriParam;
diff --git a/systests/federation/samlIdpWebapp/src/main/java/org/apache/cxf/fediz/samlsso/example/BasicAuthFilter.java b/systests/federation/samlIdpWebapp/src/main/java/org/apache/cxf/fediz/samlsso/example/BasicAuthFilter.java
index 54dea8b..54264b5 100644
--- a/systests/federation/samlIdpWebapp/src/main/java/org/apache/cxf/fediz/samlsso/example/BasicAuthFilter.java
+++ b/systests/federation/samlIdpWebapp/src/main/java/org/apache/cxf/fediz/samlsso/example/BasicAuthFilter.java
@@ -74,7 +74,7 @@
             credential = validator.validate(credential, data);
 
             // Create a Principal/SecurityContext
-            Principal p = null;
+            final Principal p;
             if (credential != null && credential.getPrincipal() != null) {
                 p = credential.getPrincipal();
             } else {
diff --git a/systests/federation/samlIdpWebapp/src/main/java/org/apache/cxf/fediz/samlsso/example/SamlSso.java b/systests/federation/samlIdpWebapp/src/main/java/org/apache/cxf/fediz/samlsso/example/SamlSso.java
index ba85f40..c04a8fa 100644
--- a/systests/federation/samlIdpWebapp/src/main/java/org/apache/cxf/fediz/samlsso/example/SamlSso.java
+++ b/systests/federation/samlIdpWebapp/src/main/java/org/apache/cxf/fediz/samlsso/example/SamlSso.java
@@ -169,7 +169,7 @@
         String responseMessage = DOM2Writer.nodeToString(response);
         System.out.println("RESP: " + responseMessage);
 
-        byte[] deflatedBytes = null;
+        final byte[] deflatedBytes;
         if (redirect) {
             DeflateEncoderDecoder encoder = new DeflateEncoderDecoder();
             deflatedBytes = encoder.deflateToken(responseMessage.getBytes(StandardCharsets.UTF_8));
diff --git a/systests/kerberos/src/test/java/org/apache/cxf/fediz/systests/kerberos/KerberosTest.java b/systests/kerberos/src/test/java/org/apache/cxf/fediz/systests/kerberos/KerberosTest.java
index 482341d..6279078 100644
--- a/systests/kerberos/src/test/java/org/apache/cxf/fediz/systests/kerberos/KerberosTest.java
+++ b/systests/kerberos/src/test/java/org/apache/cxf/fediz/systests/kerberos/KerberosTest.java
@@ -290,7 +290,7 @@
 
     private String getEncodedKerberosTicket(boolean spnego) throws Exception {
 
-        Oid kerberos5Oid = null;
+        final Oid kerberos5Oid;
         if (spnego) {
             kerberos5Oid = new Oid("1.3.6.1.5.5.2");
         } else {
diff --git a/systests/ldap/src/test/java/org/apache/cxf/fediz/systests/ldap/LDAPTest.java b/systests/ldap/src/test/java/org/apache/cxf/fediz/systests/ldap/LDAPTest.java
index 348bbda..40edf4f 100644
--- a/systests/ldap/src/test/java/org/apache/cxf/fediz/systests/ldap/LDAPTest.java
+++ b/systests/ldap/src/test/java/org/apache/cxf/fediz/systests/ldap/LDAPTest.java
@@ -62,23 +62,24 @@
         allowAnonAccess = false,
         enableChangeLog = true,
         partitions = {
-      @CreatePartition(
-          name = "fediz",
-          suffix = "dc=fediz,dc=org",
-          indexes = {
-              @CreateIndex(attribute = "objectClass"),
-              @CreateIndex(attribute = "dc"),
-              @CreateIndex(attribute = "ou")
-          }
-      ) }
+            @CreatePartition(
+                name = "fediz",
+                suffix = "dc=fediz,dc=org",
+                indexes = {
+                    @CreateIndex(attribute = "objectClass"),
+                    @CreateIndex(attribute = "dc"),
+                    @CreateIndex(attribute = "ou")
+                }
+            )
+        }
   )
 
 @CreateLdapServer(
-  transports = {
-      @CreateTransport(protocol = "LDAP", address = "localhost")
-      // @CreateTransport(protocol = "LDAP", address = "localhost", port = 12345)
-      }
-  )
+    transports = {
+        @CreateTransport(protocol = "LDAP", address = "localhost")
+        // @CreateTransport(protocol = "LDAP", address = "localhost", port = 12345)
+    }
+)
 
 //Inject an file containing entries
 @ApplyLdifFiles("ldap.ldif")
diff --git a/systests/webapps/cxfWebapp/src/main/java/org/apache/cxf/fediz/example/Service.java b/systests/webapps/cxfWebapp/src/main/java/org/apache/cxf/fediz/example/Service.java
index 4e07bfb..7f2d5ce 100644
--- a/systests/webapps/cxfWebapp/src/main/java/org/apache/cxf/fediz/example/Service.java
+++ b/systests/webapps/cxfWebapp/src/main/java/org/apache/cxf/fediz/example/Service.java
@@ -79,7 +79,7 @@
         return "<html>\n"
             + "<head><title>WS Federation Systests Examples</title></head>\n"
             + "<body>\n"
-            + "<P><H3>Secure Test</H3><P></P>"
+            + "<P><H3>Secure Test</H3></P>"
             + "</body>\n";
     }
 
@@ -99,9 +99,9 @@
 
         String[] roleListToCheck = new String[]{"Admin", "Manager", "User", "Authenticated"};
         for (String item: roleListToCheck) {
-            out.append("<p>role:" + item + "="
-                + ((messageContext.getSecurityContext().isUserInRole(item)) ? "true" : "false")
-                + "</p>\n");
+            out.append("<p>role:").append(item).append('=')
+                .append(messageContext.getSecurityContext().isUserInRole(item) ? "true" : "false")
+                .append("</p>\n");
         }
 
         if (p instanceof FedizPrincipal) {
@@ -109,7 +109,7 @@
 
             ClaimCollection claims = fp.getClaims();
             for (Claim c: claims) {
-                out.append("<p>" + c.getClaimType().toString() + "=" + c.getValue() + "</p>\n");
+                out.append("<p>").append(c.getClaimType()).append('=').append(c.getValue()).append("</p>\n");
             }
 
             Element el = fp.getLoginToken();
diff --git a/systests/webapps/simpleWebapp/src/main/java/org/apache/cxf/fediz/example/FederationServlet.java b/systests/webapps/simpleWebapp/src/main/java/org/apache/cxf/fediz/example/FederationServlet.java
index 5888352..26fb241 100644
--- a/systests/webapps/simpleWebapp/src/main/java/org/apache/cxf/fediz/example/FederationServlet.java
+++ b/systests/webapps/simpleWebapp/src/main/java/org/apache/cxf/fediz/example/FederationServlet.java
@@ -91,23 +91,18 @@
             el = SecurityTokenThreadLocal.getToken();
             if (el != null) {
                 out.println("loginToken=FOUND{SecurityTokenThreadLocal}<p>");
-                String token = null;
                 try {
-                    TransformerFactory transFactory = TransformerFactory.newInstance();
-                    Transformer transformer = transFactory.newTransformer();
-                    StringWriter buffer = new StringWriter();
+                    Transformer transformer = TransformerFactory.newInstance().newTransformer();
                     transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
-                    transformer.transform(new DOMSource(el),
-                                      new StreamResult(buffer));
-                    token = buffer.toString();
-                    out.println("<p>" + StringEscapeUtils.escapeXml11(token));
+                    StringWriter token = new StringWriter();
+                    transformer.transform(new DOMSource(el), new StreamResult(token));
+                    out.println("<p>" + StringEscapeUtils.escapeXml11(token.toString()));
                 } catch (Exception ex) {
                     out.println("<p>Failed to transform cached element to string: " + ex.toString());
                 }
             } else {
                 out.println("<p>Bootstrap token not cached in thread local storage");
             }
-
         }
 
         out.println("</body>");