You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2017/06/02 11:08:26 UTC

[1/5] karaf git commit: Small refactoring to make the main list final in the loop

Repository: karaf
Updated Branches:
  refs/heads/master 07a6b9d1a -> 0748a4b4a


Small refactoring to make the main list final in the loop

Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/7eacf6c1
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/7eacf6c1
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/7eacf6c1

Branch: refs/heads/master
Commit: 7eacf6c17192ab03a31e156d61a3e3e2ceb9f371
Parents: ae96ea6
Author: Guillaume Nodet <gn...@apache.org>
Authored: Fri Jun 2 10:57:23 2017 +0200
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Fri Jun 2 13:07:37 2017 +0200

----------------------------------------------------------------------
 .../region/SubsystemResolveContext.java         | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/7eacf6c1/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolveContext.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolveContext.java b/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolveContext.java
index d94754d..bfc87e1 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolveContext.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolveContext.java
@@ -211,38 +211,38 @@ public class SubsystemResolveContext extends ResolveContext {
                     Resource resource = cap.getResource();
                     String id = ResolverUtil.getSymbolicName(resource) + "|" + ResolverUtil.getVersion(resource);
                     if (!providers.contains(resource)) {
-                        Set<Resource> newRes = new HashSet<>();
+                        Set<Resource> oldRes = new HashSet<>(providers);
+                        providers.clear();
                         String r1 = getRegion(resource).getName();
                         boolean superceded = false;
-                        for (Resource r : providers) {
+                        for (Resource r : oldRes) {
                             String id2 = ResolverUtil.getSymbolicName(r) + "|" + ResolverUtil.getVersion(r);
                             if (id.equals(id2)) {
                                 String r2 = getRegion(r).getName();
                                 if (r1.equals(r2)) {
                                     if (r instanceof BundleRevision) {
-                                        newRes.add(r);
+                                        providers.add(r);
                                         superceded = true;
                                     } else if (resource instanceof BundleRevision) {
-                                        newRes.add(resource);
+                                        providers.add(resource);
                                     } else {
                                         throw new InternalError();
                                     }
                                 } else if (r1.startsWith(r2)) {
-                                    newRes.add(r);
+                                    providers.add(r);
                                     superceded = true;
                                 } else if (r2.startsWith(r1)) {
-                                    newRes.add(resource);
+                                    providers.add(resource);
                                 } else {
-                                    newRes.add(r);
+                                    providers.add(r);
                                 }
                             } else {
-                                newRes.add(r);
+                                providers.add(r);
                             }
                         }
                         if (!superceded) {
-                            newRes.add(resource);
+                            providers.add(resource);
                         }
-                        providers = newRes;
                     }
                 }
                 for (Iterator<Capability> it = caps.iterator(); it.hasNext();) {


[4/5] karaf git commit: Various code cleanup

Posted by gn...@apache.org.
Various code cleanup

Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/d5d25169
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/d5d25169
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/d5d25169

Branch: refs/heads/master
Commit: d5d2516916e7ebb1b31248bc34c6c68262cf3422
Parents: 7eacf6c
Author: Guillaume Nodet <gn...@apache.org>
Authored: Fri Jun 2 11:04:37 2017 +0200
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Fri Jun 2 13:08:16 2017 +0200

----------------------------------------------------------------------
 .../apache/karaf/bundle/command/Services.java   |  4 +--
 .../karaf/bundle/command/bundletree/Tree.java   |  4 +--
 .../karaf/bundle/core/BundleStateService.java   |  6 ++--
 .../bundle/core/internal/BundleInfoImpl.java    |  2 +-
 .../karaf/bundle/command/ListServicesTest.java  |  4 +--
 .../main/java/org/apache/karaf/client/Main.java |  3 +-
 .../apache/karaf/client/ClientConfigTest.java   |  2 --
 .../command/ConfigPropertyCommandSupport.java   |  7 +----
 .../deployer/blueprint/BlueprintURLHandler.java |  5 +--
 .../features/FeatureDeploymentListener.java     |  5 +--
 .../deployer/features/FeatureTransformer.java   |  1 -
 .../deployer/features/FeatureURLHandler.java    |  2 +-
 .../deployer/spring/SpringTransformer.java      |  3 --
 .../karaf/deployer/spring/SpringURLHandler.java |  2 +-
 .../deployer/wrap/WrapDeploymentListener.java   |  9 ++----
 .../karaf/diagnostic/command/DumpCommand.java   |  1 -
 .../karaf/diagnostic/internal/Activator.java    |  1 -
 .../karaf/features/command/FeatureExport.java   |  2 +-
 .../features/command/ListFeaturesCommand.java   |  2 +-
 .../features/command/StopFeaturesCommand.java   |  1 -
 .../org/apache/karaf/features/Conditional.java  |  1 -
 .../org/apache/karaf/features/FeatureEvent.java |  2 +-
 .../apache/karaf/features/RepositoryEvent.java  |  2 +-
 .../karaf/features/internal/model/Bundle.java   |  5 +--
 .../features/internal/model/Capability.java     |  5 +--
 .../karaf/features/internal/model/Feature.java  |  5 +--
 .../features/internal/model/Requirement.java    |  5 +--
 .../internal/region/CandidateComparator.java    |  1 -
 .../internal/region/OfflineResolver.java        |  2 --
 .../features/internal/region/Subsystem.java     |  1 -
 .../region/SubsystemResolveContext.java         |  8 +----
 .../internal/region/SubsystemResolver.java      |  9 ++----
 .../internal/resolver/ResolverUtil.java         |  1 -
 .../service/FeatureConfigInstaller.java         |  1 -
 .../karaf/features/FeaturesServiceTest.java     |  2 +-
 .../region/FeaturesDependenciesTest.java        |  3 +-
 .../features/internal/region/SubsystemTest.java |  3 +-
 .../features/internal/service/DeployerTest.java |  3 --
 .../service/FeaturesServiceImplTest.java        |  5 ++-
 .../internal/service/OverridesTest.java         |  2 --
 .../org/apache/karaf/http/core/ServletInfo.java |  1 -
 .../completers/StartedInstanceCompleter.java    |  6 +---
 .../completers/StoppedInstanceCompleter.java    |  6 +---
 .../core/internal/InstanceServiceImpl.java      |  2 +-
 .../java/org/apache/karaf/itests/JmsTest.java   | 10 ++----
 .../ssh/ConfigSshCommandSecurityTest.java       |  6 ++--
 .../karaf/itests/ssh/SshCommandTestBase.java    |  4 +--
 ...tableConfigAdminPropertyPlaceholderTest.java |  1 -
 .../jaas/boot/principal/GroupPrincipal.java     | 11 +++----
 .../karaf/jaas/boot/principal/RolePolicy.java   |  2 +-
 .../jaas/boot/principal/RolePrincipal.java      | 11 +++----
 .../jaas/boot/principal/UserPrincipal.java      | 11 +++----
 .../karaf/jaas/command/JaasCommandSupport.java  |  1 -
 .../karaf/jaas/command/ListGroupsCommand.java   |  7 -----
 .../jaas/command/ManageRealmCommandTest.java    |  1 -
 .../org/apache/karaf/jaas/config/JaasRealm.java |  6 ++--
 .../jaas/jasypt/impl/JasyptEncryption.java      |  2 --
 .../karaf/jaas/modules/BackingEngine.java       |  2 +-
 .../apache/karaf/jaas/modules/Encryption.java   |  4 +--
 .../karaf/jaas/modules/impl/Activator.java      |  1 -
 .../karaf/jaas/modules/impl/KarafRealm.java     |  1 -
 .../jaas/modules/jdbc/JDBCBackingEngine.java    |  3 --
 .../karaf/jaas/modules/jdbc/JDBCUtils.java      |  1 -
 .../jaas/modules/ldap/LDAPLoginModule.java      |  1 -
 .../karaf/jaas/modules/ldap/LDAPOptions.java    |  2 +-
 .../modules/osgi/OsgiConfigLoginModule.java     |  1 -
 .../properties/DigestPasswordLoginModule.java   |  1 -
 .../properties/PropertiesLoginModule.java       |  1 -
 .../publickey/PublickeyBackingEngine.java       |  1 -
 .../modules/publickey/PublickeyLoginModule.java |  1 -
 .../modules/syncope/SyncopeBackingEngine.java   |  1 -
 .../modules/syncope/SyncopeLoginModule.java     |  1 -
 .../modules/ldap/GSSAPILdapLoginModuleTest.java |  2 +-
 .../karaf/jaas/modules/ldap/LdapCacheTest.java  |  2 +-
 .../modules/ldap/LdapCaseInsensitiveDNTest.java |  2 +-
 .../jaas/modules/ldap/LdapLoginModuleTest.java  |  2 +-
 .../ldap/LdapLoginModuleWithEscapesTest.java    |  2 +-
 .../ldap/LdapSpecialCharsInPasswordTest.java    |  6 ++--
 .../jdbc/command/completers/SqlCompleter.java   |  1 -
 .../apache/karaf/jms/internal/JmsConnector.java |  1 -
 .../karaf/jms/internal/osgi/Activator.java      |  1 -
 .../karaf/jms/pool/internal/PooledSession.java  |  1 -
 .../java/org/apache/karaf/jndi/JndiMBean.java   | 18 +++++------
 .../karaf/jndi/internal/JndiServiceImpl.java    |  2 +-
 .../java/org/apache/karaf/kar/internal/Kar.java |  1 -
 .../karaf/kar/internal/KarServiceImpl.java      |  3 +-
 .../org/apache/karaf/log/command/LoadTest.java  |  2 --
 .../karaf/log/core/LogEventFormatter.java       |  2 +-
 .../karaf/main/KarafActivatorManager.java       |  1 -
 .../main/java/org/apache/karaf/main/Status.java |  2 +-
 .../main/java/org/apache/karaf/main/Stop.java   |  2 +-
 .../management/ConnectorServerFactory.java      |  2 +-
 .../karaf/management/JMXSecurityMBean.java      |  8 ++---
 .../karaf/management/RmiRegistryFactory.java    |  4 ---
 .../karaf/packages/core/PackageService.java     |  1 -
 .../core/internal/PackageServiceImpl.java       |  2 --
 .../core/internal/PackagesMBeanImpl.java        |  1 -
 .../core/internal/filter/SimpleItem.java        |  3 +-
 .../packages/command/PackageImportTest.java     |  3 --
 .../apache/karaf/profile/assembly/Builder.java  |  1 -
 .../profile/assembly/CustomDownloadManager.java |  1 -
 .../karaf/profile/command/ProfileEdit.java      |  2 --
 .../profile/impl/PlaceholderResolvers.java      |  2 --
 .../karaf/profile/assembly/BuilderTest.java     |  1 -
 .../org/apache/karaf/scheduler/Scheduler.java   |  1 -
 .../internal/ScrServiceMBeanImpl.java           |  2 +-
 .../guard/tools/ACLConfigurationParser.java     |  2 +-
 .../guard/impl/GuardProxyCatalogTest.java       |  6 ++--
 .../main/java/org/eclipse/osgi/util/NLS.java    |  2 +-
 .../impl/info/InfoBundleTrackerCustomizer.java  |  1 -
 .../karaf/shell/commands/info/InfoProvider.java |  4 +--
 .../apache/felix/gogo/commands/Argument.java    |  2 +-
 .../org/apache/felix/gogo/commands/Option.java  |  2 +-
 .../apache/karaf/shell/commands/Argument.java   |  2 +-
 .../karaf/shell/commands/InfoProvider.java      |  4 +--
 .../org/apache/karaf/shell/commands/Option.java |  2 +-
 .../shell/commands/meta/ActionMetaData.java     |  1 -
 .../karaf/shell/compat/ArgumentCompleter.java   |  1 -
 .../apache/karaf/shell/console/NameScoping.java |  5 +--
 .../apache/karaf/shell/api/action/Argument.java |  2 +-
 .../apache/karaf/shell/api/action/Option.java   |  2 +-
 .../apache/karaf/shell/api/console/Signal.java  |  2 +-
 .../action/command/DefaultActionPreparator.java |  2 +-
 .../karaf/shell/impl/console/KarafTerminal.java |  5 ---
 .../shell/impl/console/parsing/KarafParser.java |  2 --
 .../shell/impl/console/standalone/Main.java     |  2 --
 .../apache/karaf/shell/support/NameScoping.java |  5 +--
 .../shell/support/terminal/SignalSupport.java   |  1 -
 .../org/apache/karaf/shell/ssh/Activator.java   |  1 -
 .../karaf/shell/ssh/KarafAgentFactory.java      |  1 -
 .../karaf/shell/ssh/ShellFactoryImpl.java       |  4 +--
 .../org/apache/karaf/shell/ssh/SshAction.java   |  2 +-
 .../org/apache/karaf/shell/ssh/SshUtils.java    |  1 -
 .../karaf/subsystem/commands/ListAction.java    |  6 ----
 .../subsystem/commands/SubsystemSupport.java    |  1 -
 .../org/apache/karaf/system/SystemService.java  |  2 +-
 .../java/org/apache/karaf/tooling/RunMojo.java  |  4 ---
 .../apache/karaf/tooling/client/ClientMojo.java |  4 ---
 .../tooling/commands/GenerateHelpMojo.java      |  6 ++--
 .../features/GenerateDescriptorMojo.java        |  2 +-
 .../karaf/tooling/utils/Dependency30Helper.java |  4 +--
 .../karaf/tooling/utils/Dependency31Helper.java |  4 +--
 .../karaf/tooling/utils/DependencyHelper.java   | 32 ++++++++++----------
 .../apache/karaf/tooling/VerifyMojoTest.java    |  1 -
 .../features/GenerateDescriptorMojoTest.java    |  1 -
 .../tracker/GenerateServiceMetadata.java        |  1 -
 .../CopyOnWriteArrayIdentityList.java           | 10 ++----
 .../org/apache/karaf/util/BundleUtilsTest.java  |  1 -
 .../karaf/webconsole/gogo/GogoPlugin.java       |  2 +-
 .../karaf/webconsole/gogo/WebTerminal.java      |  1 -
 .../webconsole/instance/InstancePlugin.java     |  2 +-
 .../webconsole/instance/InstancePluginTest.java |  2 +-
 .../apache/karaf/wrapper/WrapperService.java    |  6 ++--
 153 files changed, 147 insertions(+), 340 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/bundle/core/src/main/java/org/apache/karaf/bundle/command/Services.java
----------------------------------------------------------------------
diff --git a/bundle/core/src/main/java/org/apache/karaf/bundle/command/Services.java b/bundle/core/src/main/java/org/apache/karaf/bundle/command/Services.java
index 47167a3..145e832 100644
--- a/bundle/core/src/main/java/org/apache/karaf/bundle/command/Services.java
+++ b/bundle/core/src/main/java/org/apache/karaf/bundle/command/Services.java
@@ -41,10 +41,10 @@ public class Services extends BundlesCommand {
     @Option(name = "-p", aliases = {}, description = "Shows the properties of the services", required = false, multiValued = false)
     boolean showProperties = false;
 
-    Set<String> hidden = new HashSet<>(Arrays.asList(new String[] {
+    Set<String> hidden = new HashSet<>(Arrays.asList(
             "org.apache.felix.service.command.Function",
             "org.apache.karaf.shell.console.Completer"
-    }));
+    ));
 
     @Override
     protected void executeOnBundle(Bundle bundle) throws Exception {

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/bundle/core/src/main/java/org/apache/karaf/bundle/command/bundletree/Tree.java
----------------------------------------------------------------------
diff --git a/bundle/core/src/main/java/org/apache/karaf/bundle/command/bundletree/Tree.java b/bundle/core/src/main/java/org/apache/karaf/bundle/command/bundletree/Tree.java
index 8885d11..0b3398a 100644
--- a/bundle/core/src/main/java/org/apache/karaf/bundle/command/bundletree/Tree.java
+++ b/bundle/core/src/main/java/org/apache/karaf/bundle/command/bundletree/Tree.java
@@ -93,9 +93,9 @@ public class Tree<T> extends Node<T> {
      *
      * @param <T> the object type for the node value
      */
-    public static interface Converter<T> {
+    public interface Converter<T> {
 
-        public String toString(Node<T> node);
+        String toString(Node<T> node);
 
     }
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/bundle/core/src/main/java/org/apache/karaf/bundle/core/BundleStateService.java
----------------------------------------------------------------------
diff --git a/bundle/core/src/main/java/org/apache/karaf/bundle/core/BundleStateService.java b/bundle/core/src/main/java/org/apache/karaf/bundle/core/BundleStateService.java
index f2c8158..73fd2b4 100644
--- a/bundle/core/src/main/java/org/apache/karaf/bundle/core/BundleStateService.java
+++ b/bundle/core/src/main/java/org/apache/karaf/bundle/core/BundleStateService.java
@@ -24,9 +24,9 @@ import org.osgi.framework.Bundle;
  */
 public interface BundleStateService {
 
-    public final static String NAME_BLUEPRINT = "Blueprint";
-    public final static String NAME_SPRING_DM = "Spring DM";
-    public final static String NAME_DS = "Declarative Services";
+    String NAME_BLUEPRINT = "Blueprint";
+    String NAME_SPRING_DM = "Spring DM";
+    String NAME_DS = "Declarative Services";
 
     /**
      * Name of the framework the implementation supports.

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleInfoImpl.java
----------------------------------------------------------------------
diff --git a/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleInfoImpl.java b/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleInfoImpl.java
index 25cb642..89e32e7 100644
--- a/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleInfoImpl.java
+++ b/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleInfoImpl.java
@@ -53,7 +53,7 @@ public class BundleInfoImpl implements BundleInfo {
         bundleStateMap.put(Bundle.RESOLVED, BundleState.Resolved);
         bundleStateMap.put(Bundle.STARTING, BundleState.Starting);
         bundleStateMap.put(Bundle.STOPPING, BundleState.Stopping);
-    };
+    }
 
     public BundleInfoImpl(Bundle bundle, BundleState extState) {
         BundleStartLevel bsl = bundle.adapt(BundleStartLevel.class);

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/bundle/core/src/test/java/org/apache/karaf/bundle/command/ListServicesTest.java
----------------------------------------------------------------------
diff --git a/bundle/core/src/test/java/org/apache/karaf/bundle/command/ListServicesTest.java b/bundle/core/src/test/java/org/apache/karaf/bundle/command/ListServicesTest.java
index 0d095a9..c7a9769 100644
--- a/bundle/core/src/test/java/org/apache/karaf/bundle/command/ListServicesTest.java
+++ b/bundle/core/src/test/java/org/apache/karaf/bundle/command/ListServicesTest.java
@@ -45,14 +45,14 @@ public class ListServicesTest {
     @Test
     public void listAllLong() throws Exception {
         System.out.println("listAllLong");
-        listServices.ids = Arrays.asList(new String[]{"1", "2"});
+        listServices.ids = Arrays.asList("1", "2");
         listServices.execute();
     }
 
     @Test
     public void listAllLongServiceUse() throws Exception {
         System.out.println("listAllLongServicesUse");
-        listServices.ids = Arrays.asList(new String[]{"1", "2"});
+        listServices.ids = Arrays.asList("1", "2");
         listServices.inUse = true;
         listServices.execute();
     }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/client/src/main/java/org/apache/karaf/client/Main.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/karaf/client/Main.java b/client/src/main/java/org/apache/karaf/client/Main.java
index 4162de6..8c8f5a5 100644
--- a/client/src/main/java/org/apache/karaf/client/Main.java
+++ b/client/src/main/java/org/apache/karaf/client/Main.java
@@ -57,7 +57,6 @@ import org.apache.sshd.common.FactoryManager;
 import org.apache.sshd.common.RuntimeSshException;
 import org.apache.sshd.common.channel.PtyMode;
 import org.apache.sshd.common.config.keys.FilePasswordProvider;
-import org.apache.sshd.common.keyprovider.AbstractKeyPairProvider;
 import org.apache.sshd.common.keyprovider.FileKeyPairProvider;
 import org.apache.sshd.common.util.io.NoCloseInputStream;
 import org.jline.terminal.Attributes;
@@ -278,7 +277,7 @@ public class Main {
         client.getProperties().put(SshAgent.SSH_AUTHSOCKET_ENV_NAME, "local");
     }
 
-    private static ClientSession connectWithRetries(SshClient client, ClientConfig config) throws Exception, InterruptedException {
+    private static ClientSession connectWithRetries(SshClient client, ClientConfig config) throws Exception {
         ClientSession session = null;
         int retries = 0;
         do {

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/client/src/test/java/org/apache/karaf/client/ClientConfigTest.java
----------------------------------------------------------------------
diff --git a/client/src/test/java/org/apache/karaf/client/ClientConfigTest.java b/client/src/test/java/org/apache/karaf/client/ClientConfigTest.java
index 7a5c7ca..d5d0b32 100644
--- a/client/src/test/java/org/apache/karaf/client/ClientConfigTest.java
+++ b/client/src/test/java/org/apache/karaf/client/ClientConfigTest.java
@@ -16,8 +16,6 @@
  */
 package org.apache.karaf.client;
 
-import java.io.IOException;
-
 import org.junit.Test;
 
 import static org.hamcrest.CoreMatchers.equalTo;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/config/src/main/java/org/apache/karaf/config/command/ConfigPropertyCommandSupport.java
----------------------------------------------------------------------
diff --git a/config/src/main/java/org/apache/karaf/config/command/ConfigPropertyCommandSupport.java b/config/src/main/java/org/apache/karaf/config/command/ConfigPropertyCommandSupport.java
index 466d462..9982099 100644
--- a/config/src/main/java/org/apache/karaf/config/command/ConfigPropertyCommandSupport.java
+++ b/config/src/main/java/org/apache/karaf/config/command/ConfigPropertyCommandSupport.java
@@ -18,7 +18,6 @@ package org.apache.karaf.config.command;
 
 import java.util.Dictionary;
 import java.util.Hashtable;
-import java.util.Properties;
 
 import org.apache.karaf.config.command.completers.ConfigurationCompleter;
 import org.apache.karaf.shell.api.action.Completion;
@@ -68,11 +67,7 @@ public abstract class ConfigPropertyCommandSupport extends ConfigCommandSupport
      * @return <code>true</code> if the configuration requires an update, <code>false</code> else.
      */
     protected boolean requiresUpdate(String pid) {
-        if (pid != null) {
-            return true;
-        } else {
-            return false;
-        }
+        return pid != null;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/deployer/blueprint/src/main/java/org/apache/karaf/deployer/blueprint/BlueprintURLHandler.java
----------------------------------------------------------------------
diff --git a/deployer/blueprint/src/main/java/org/apache/karaf/deployer/blueprint/BlueprintURLHandler.java b/deployer/blueprint/src/main/java/org/apache/karaf/deployer/blueprint/BlueprintURLHandler.java
index d379a5a..837183f 100644
--- a/deployer/blueprint/src/main/java/org/apache/karaf/deployer/blueprint/BlueprintURLHandler.java
+++ b/deployer/blueprint/src/main/java/org/apache/karaf/deployer/blueprint/BlueprintURLHandler.java
@@ -19,9 +19,6 @@ package org.apache.karaf.deployer.blueprint;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.MalformedURLException;
@@ -78,7 +75,7 @@ public class BlueprintURLHandler extends AbstractURLStreamHandlerService {
                 return new ByteArrayInputStream(os.toByteArray());
             } catch (Exception e) {
                 logger.error("Error opening blueprint xml url", e);
-                throw (IOException) new IOException("Error opening blueprint xml url").initCause(e);
+                throw new IOException("Error opening blueprint xml url", e);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureDeploymentListener.java
----------------------------------------------------------------------
diff --git a/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureDeploymentListener.java b/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureDeploymentListener.java
index 733d585..fa36404 100644
--- a/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureDeploymentListener.java
+++ b/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureDeploymentListener.java
@@ -118,10 +118,7 @@ public class FeatureDeploymentListener implements ArtifactUrlTransformer, Bundle
         if(FeaturesNamespaces.URI_1_3_0.equalsIgnoreCase(uri)){
             return true;
         }
-    	if(FeaturesNamespaces.URI_CURRENT.equalsIgnoreCase(uri)){
-    		return true;
-    	}
-    	return false;
+        return FeaturesNamespaces.URI_CURRENT.equalsIgnoreCase(uri);
     }
 
     private void loadProperties() throws IOException {

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureTransformer.java
----------------------------------------------------------------------
diff --git a/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureTransformer.java b/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureTransformer.java
index 784e71f..b7d4c9d 100644
--- a/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureTransformer.java
+++ b/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureTransformer.java
@@ -17,7 +17,6 @@
  */
 package org.apache.karaf.deployer.features;
 
-import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.net.URL;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureURLHandler.java
----------------------------------------------------------------------
diff --git a/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureURLHandler.java b/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureURLHandler.java
index 20608b3..178a133 100644
--- a/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureURLHandler.java
+++ b/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureURLHandler.java
@@ -80,7 +80,7 @@ public class FeatureURLHandler extends AbstractURLStreamHandlerService {
                 return new ByteArrayInputStream(os.toByteArray());
             } catch (Exception e) {
                 logger.error("Error opening features xml url", e);
-                throw (IOException) new IOException("Error opening features xml url").initCause(e);
+                throw new IOException("Error opening features xml url", e);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/deployer/spring/src/main/java/org/apache/karaf/deployer/spring/SpringTransformer.java
----------------------------------------------------------------------
diff --git a/deployer/spring/src/main/java/org/apache/karaf/deployer/spring/SpringTransformer.java b/deployer/spring/src/main/java/org/apache/karaf/deployer/spring/SpringTransformer.java
index 3153ef7..32e4c30 100644
--- a/deployer/spring/src/main/java/org/apache/karaf/deployer/spring/SpringTransformer.java
+++ b/deployer/spring/src/main/java/org/apache/karaf/deployer/spring/SpringTransformer.java
@@ -46,9 +46,6 @@ import org.apache.karaf.util.XmlUtils;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
 import org.osgi.framework.Constants;
 
 public class SpringTransformer {

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/deployer/spring/src/main/java/org/apache/karaf/deployer/spring/SpringURLHandler.java
----------------------------------------------------------------------
diff --git a/deployer/spring/src/main/java/org/apache/karaf/deployer/spring/SpringURLHandler.java b/deployer/spring/src/main/java/org/apache/karaf/deployer/spring/SpringURLHandler.java
index 44b36a3..70c2452 100644
--- a/deployer/spring/src/main/java/org/apache/karaf/deployer/spring/SpringURLHandler.java
+++ b/deployer/spring/src/main/java/org/apache/karaf/deployer/spring/SpringURLHandler.java
@@ -75,7 +75,7 @@ public class SpringURLHandler extends AbstractURLStreamHandlerService {
                 return new ByteArrayInputStream(os.toByteArray());
             } catch (Exception e) {
                 logger.error("Error opening Spring xml url", e);
-                throw (IOException) new IOException("Error opening Spring xml url").initCause(e);
+                throw new IOException("Error opening Spring xml url", e);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/deployer/wrap/src/main/java/org/apache/karaf/deployer/wrap/WrapDeploymentListener.java
----------------------------------------------------------------------
diff --git a/deployer/wrap/src/main/java/org/apache/karaf/deployer/wrap/WrapDeploymentListener.java b/deployer/wrap/src/main/java/org/apache/karaf/deployer/wrap/WrapDeploymentListener.java
index c02a8dc..eec7b22 100644
--- a/deployer/wrap/src/main/java/org/apache/karaf/deployer/wrap/WrapDeploymentListener.java
+++ b/deployer/wrap/src/main/java/org/apache/karaf/deployer/wrap/WrapDeploymentListener.java
@@ -40,12 +40,9 @@ public class WrapDeploymentListener implements ArtifactUrlTransformer {
             try (JarFile jar = new JarFile(artifact)) {
                 // only handle non OSGi jar
                 Manifest manifest = jar.getManifest();
-                if (manifest != null &&
-                    manifest.getMainAttributes().getValue(new Attributes.Name("Bundle-SymbolicName")) != null &&
-                    manifest.getMainAttributes().getValue(new Attributes.Name("Bundle-Version")) != null) {
-                    return false;
-                }
-                return true;
+                return manifest == null
+                        || manifest.getMainAttributes().getValue(new Attributes.Name("Bundle-SymbolicName")) == null
+                        || manifest.getMainAttributes().getValue(new Attributes.Name("Bundle-Version")) == null;
             }
         } catch (Exception e) {
             return false;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/diagnostic/core/src/main/java/org/apache/karaf/diagnostic/command/DumpCommand.java
----------------------------------------------------------------------
diff --git a/diagnostic/core/src/main/java/org/apache/karaf/diagnostic/command/DumpCommand.java b/diagnostic/core/src/main/java/org/apache/karaf/diagnostic/command/DumpCommand.java
index 20a66a2..05bb78e 100644
--- a/diagnostic/core/src/main/java/org/apache/karaf/diagnostic/command/DumpCommand.java
+++ b/diagnostic/core/src/main/java/org/apache/karaf/diagnostic/command/DumpCommand.java
@@ -19,7 +19,6 @@ package org.apache.karaf.diagnostic.command;
 import java.io.File;
 import java.text.SimpleDateFormat;
 import java.util.Date;
-import java.util.List;
 
 import org.apache.karaf.diagnostic.core.Dump;
 import org.apache.karaf.diagnostic.core.DumpDestination;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/diagnostic/core/src/main/java/org/apache/karaf/diagnostic/internal/Activator.java
----------------------------------------------------------------------
diff --git a/diagnostic/core/src/main/java/org/apache/karaf/diagnostic/internal/Activator.java b/diagnostic/core/src/main/java/org/apache/karaf/diagnostic/internal/Activator.java
index 9a32fa2..1789bd4 100644
--- a/diagnostic/core/src/main/java/org/apache/karaf/diagnostic/internal/Activator.java
+++ b/diagnostic/core/src/main/java/org/apache/karaf/diagnostic/internal/Activator.java
@@ -25,7 +25,6 @@ import org.apache.karaf.diagnostic.management.internal.DiagnosticDumpMBeanImpl;
 import org.apache.karaf.diagnostic.common.FeaturesDumpProvider;
 import org.apache.karaf.diagnostic.common.LogDumpProvider;
 import org.apache.karaf.features.FeaturesService;
-import org.apache.karaf.features.internal.model.Features;
 import org.apache.karaf.util.tracker.SingleServiceTracker;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/command/src/main/java/org/apache/karaf/features/command/FeatureExport.java
----------------------------------------------------------------------
diff --git a/features/command/src/main/java/org/apache/karaf/features/command/FeatureExport.java b/features/command/src/main/java/org/apache/karaf/features/command/FeatureExport.java
index 927bdaa..4c7422f 100644
--- a/features/command/src/main/java/org/apache/karaf/features/command/FeatureExport.java
+++ b/features/command/src/main/java/org/apache/karaf/features/command/FeatureExport.java
@@ -169,7 +169,7 @@ public class FeatureExport extends FeaturesCommandSupport {
      * @throws IOException
      *             If there is an issue performing the copy
      */
-    private static boolean copyFileToDirectory(final File file, final File directory) throws FileNotFoundException, IOException {
+    private static boolean copyFileToDirectory(final File file, final File directory) throws IOException {
         if (!directory.isDirectory()) {
             throw new IOException("Can't copy to non-directory specified: " + directory.getAbsolutePath());
         } else {

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/command/src/main/java/org/apache/karaf/features/command/ListFeaturesCommand.java
----------------------------------------------------------------------
diff --git a/features/command/src/main/java/org/apache/karaf/features/command/ListFeaturesCommand.java b/features/command/src/main/java/org/apache/karaf/features/command/ListFeaturesCommand.java
index fac8003..6bf9f9c 100644
--- a/features/command/src/main/java/org/apache/karaf/features/command/ListFeaturesCommand.java
+++ b/features/command/src/main/java/org/apache/karaf/features/command/ListFeaturesCommand.java
@@ -101,7 +101,7 @@ public class ListFeaturesCommand extends FeaturesCommandSupport {
     }
 
     private boolean isInstalledViaDeployDir(String st) {
-        return (st == null || st.length() <= 1) ? false : (st.charAt(st.length() - 1) == '*');
+        return st != null && st.length() > 1 && st.charAt(st.length() - 1) == '*';
     }
 
     class FeatureComparator implements Comparator<Feature> {

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/command/src/main/java/org/apache/karaf/features/command/StopFeaturesCommand.java
----------------------------------------------------------------------
diff --git a/features/command/src/main/java/org/apache/karaf/features/command/StopFeaturesCommand.java b/features/command/src/main/java/org/apache/karaf/features/command/StopFeaturesCommand.java
index 371e03c..ac87125 100644
--- a/features/command/src/main/java/org/apache/karaf/features/command/StopFeaturesCommand.java
+++ b/features/command/src/main/java/org/apache/karaf/features/command/StopFeaturesCommand.java
@@ -20,7 +20,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.karaf.features.Feature;
 import org.apache.karaf.features.FeatureState;
 import org.apache.karaf.features.FeaturesService;
 import org.apache.karaf.features.command.completers.StartedFeatureCompleter;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/main/java/org/apache/karaf/features/Conditional.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/Conditional.java b/features/core/src/main/java/org/apache/karaf/features/Conditional.java
index adcf812..26463f2 100644
--- a/features/core/src/main/java/org/apache/karaf/features/Conditional.java
+++ b/features/core/src/main/java/org/apache/karaf/features/Conditional.java
@@ -17,7 +17,6 @@
 package org.apache.karaf.features;
 
 import java.util.List;
-import java.util.Map;
 
 public interface Conditional {
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/main/java/org/apache/karaf/features/FeatureEvent.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/FeatureEvent.java b/features/core/src/main/java/org/apache/karaf/features/FeatureEvent.java
index 5a26e46..d6282f4 100644
--- a/features/core/src/main/java/org/apache/karaf/features/FeatureEvent.java
+++ b/features/core/src/main/java/org/apache/karaf/features/FeatureEvent.java
@@ -20,7 +20,7 @@ import java.util.EventObject;
 
 public class FeatureEvent extends EventObject {
 
-    public static enum EventType {
+    public enum EventType {
         FeatureInstalled,
         FeatureUninstalled
     }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/main/java/org/apache/karaf/features/RepositoryEvent.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/RepositoryEvent.java b/features/core/src/main/java/org/apache/karaf/features/RepositoryEvent.java
index 68f287b..4a4e78d 100644
--- a/features/core/src/main/java/org/apache/karaf/features/RepositoryEvent.java
+++ b/features/core/src/main/java/org/apache/karaf/features/RepositoryEvent.java
@@ -20,7 +20,7 @@ import java.util.EventObject;
 
 public class RepositoryEvent extends EventObject {
 
-    public static enum EventType {
+    public enum EventType {
         RepositoryAdded,
         RepositoryRemoved,
     }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/main/java/org/apache/karaf/features/internal/model/Bundle.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/model/Bundle.java b/features/core/src/main/java/org/apache/karaf/features/internal/model/Bundle.java
index 1bd45ef..9749da1 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/model/Bundle.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/model/Bundle.java
@@ -167,10 +167,7 @@ public class Bundle implements BundleInfo {
         if ((startLevel != null ? startLevel : 0) != (bundle.startLevel != null ? bundle.startLevel : 0)) {
             return false;
         }
-        if (value != null ? !value.equals(bundle.value) : bundle.value != null) {
-            return false;
-        }
-        return true;
+        return value != null ? value.equals(bundle.value) : bundle.value == null;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/main/java/org/apache/karaf/features/internal/model/Capability.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/model/Capability.java b/features/core/src/main/java/org/apache/karaf/features/internal/model/Capability.java
index aba425d..d76497e 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/model/Capability.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/model/Capability.java
@@ -65,10 +65,7 @@ public class Capability implements org.apache.karaf.features.Capability {
             return false;
         }
         Capability bundle = (Capability) o;
-        if (value != null ? !value.equals(bundle.value) : bundle.value != null) {
-            return false;
-        }
-        return true;
+        return value != null ? value.equals(bundle.value) : bundle.value == null;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java b/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java
index 9c28174..752d2a8 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java
@@ -391,10 +391,7 @@ public class Feature extends Content implements org.apache.karaf.features.Featur
         if (name != null ? !name.equals(feature.name) : feature.name != null) {
             return false;
         }
-        if (version != null ? !version.equals(feature.version) : feature.version != null) {
-            return false;
-        }
-        return true;
+        return version != null ? version.equals(feature.version) : feature.version == null;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/main/java/org/apache/karaf/features/internal/model/Requirement.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/model/Requirement.java b/features/core/src/main/java/org/apache/karaf/features/internal/model/Requirement.java
index 7fbabc3..2e45bc0 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/model/Requirement.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/model/Requirement.java
@@ -63,10 +63,7 @@ public class Requirement implements org.apache.karaf.features.Requirement {
             return false;
         }
         Requirement bundle = (Requirement) o;
-        if (value != null ? !value.equals(bundle.value) : bundle.value != null) {
-            return false;
-        }
-        return true;
+        return value != null ? value.equals(bundle.value) : bundle.value == null;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/main/java/org/apache/karaf/features/internal/region/CandidateComparator.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/region/CandidateComparator.java b/features/core/src/main/java/org/apache/karaf/features/internal/region/CandidateComparator.java
index f65db51..9fecd4b 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/region/CandidateComparator.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/region/CandidateComparator.java
@@ -19,7 +19,6 @@ package org.apache.karaf.features.internal.region;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
-import java.util.Objects;
 import java.util.function.ToIntFunction;
 
 import org.apache.karaf.features.internal.resolver.ResolverUtil;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/main/java/org/apache/karaf/features/internal/region/OfflineResolver.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/region/OfflineResolver.java b/features/core/src/main/java/org/apache/karaf/features/internal/region/OfflineResolver.java
index 849acd1..cb25236 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/region/OfflineResolver.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/region/OfflineResolver.java
@@ -23,10 +23,8 @@ import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
 import org.apache.felix.resolver.Logger;
 import org.apache.felix.resolver.ResolverImpl;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/main/java/org/apache/karaf/features/internal/region/Subsystem.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/region/Subsystem.java b/features/core/src/main/java/org/apache/karaf/features/internal/region/Subsystem.java
index 7780890..68db79a 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/region/Subsystem.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/region/Subsystem.java
@@ -17,7 +17,6 @@
 package org.apache.karaf.features.internal.region;
 
 import java.io.IOException;
-import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolveContext.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolveContext.java b/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolveContext.java
index bfc87e1..59e334c 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolveContext.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolveContext.java
@@ -23,7 +23,6 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -245,12 +244,7 @@ public class SubsystemResolveContext extends ResolveContext {
                         }
                     }
                 }
-                for (Iterator<Capability> it = caps.iterator(); it.hasNext();) {
-                    Capability cap = it.next();
-                    if (!providers.contains(cap.getResource())) {
-                        it.remove();
-                    }
-                }
+                caps.removeIf(cap -> !providers.contains(cap.getResource()));
             }
             // Sort caps
             if (distance != null) {

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolver.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolver.java b/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolver.java
index d131d65..c477f75 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolver.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolver.java
@@ -222,12 +222,7 @@ public class SubsystemResolver {
         // Remove wiring to the fake environment resource
         if (environmentResource != null) {
             for (List<Wire> wires : wiring.values()) {
-                for (Iterator<Wire> iterator = wires.iterator(); iterator.hasNext();) {
-                    Wire wire = iterator.next();
-                    if (wire.getProvider() == environmentResource) {
-                        iterator.remove();
-                    }
-                }
+                wires.removeIf(wire -> wire.getProvider() == environmentResource);
             }
         }
         // Fragments are always wired to their host only, so create fake wiring to
@@ -470,7 +465,7 @@ public class SubsystemResolver {
         }
     }
 
-    private Requirement getSubsystemRequirement(Resource resource) {
+    static Requirement getSubsystemRequirement(Resource resource) {
         for (Requirement requirement : resource.getRequirements(null)) {
             if (IDENTITY_NAMESPACE.equals(requirement.getNamespace())
                     && TYPE_SUBSYSTEM.equals(requirement.getAttributes().get(CAPABILITY_TYPE_ATTRIBUTE))) {

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/main/java/org/apache/karaf/features/internal/resolver/ResolverUtil.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/resolver/ResolverUtil.java b/features/core/src/main/java/org/apache/karaf/features/internal/resolver/ResolverUtil.java
index f1dceed..2c23201 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/resolver/ResolverUtil.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/resolver/ResolverUtil.java
@@ -30,7 +30,6 @@ import org.osgi.resource.Resource;
 
 import static org.apache.karaf.features.internal.resolver.ResourceUtils.TYPE_SUBSYSTEM;
 import static org.osgi.framework.namespace.IdentityNamespace.CAPABILITY_TYPE_ATTRIBUTE;
-import static org.osgi.service.subsystem.SubsystemConstants.SUBSYSTEM_TYPE;
 
 public class ResolverUtil
 {

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/main/java/org/apache/karaf/features/internal/service/FeatureConfigInstaller.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/service/FeatureConfigInstaller.java b/features/core/src/main/java/org/apache/karaf/features/internal/service/FeatureConfigInstaller.java
index 52de7ae..5474806 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/service/FeatureConfigInstaller.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/service/FeatureConfigInstaller.java
@@ -28,7 +28,6 @@ import java.net.URL;
 import java.util.*;
 
 import org.apache.felix.utils.properties.InterpolationHelper;
-import org.apache.felix.utils.properties.InterpolationHelper.SubstitutionCallback;
 import org.apache.felix.utils.properties.TypedProperties;
 import org.apache.karaf.features.ConfigFileInfo;
 import org.apache.karaf.features.ConfigInfo;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java b/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java
index ab5e31e..5e55819 100644
--- a/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java
+++ b/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java
@@ -58,7 +58,7 @@ public class FeaturesServiceTest extends TestBase {
             + "</features>";
 
     File dataFile;
-    Logger logger = LoggerFactory.getLogger(FeaturesServiceTest.class);;
+    Logger logger = LoggerFactory.getLogger(FeaturesServiceTest.class);
     Resolver resolver = new ResolverImpl(new Slf4jResolverLog(logger));
 
     @Before

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/test/java/org/apache/karaf/features/internal/region/FeaturesDependenciesTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/internal/region/FeaturesDependenciesTest.java b/features/core/src/test/java/org/apache/karaf/features/internal/region/FeaturesDependenciesTest.java
index bf9f24f..6b92352 100644
--- a/features/core/src/test/java/org/apache/karaf/features/internal/region/FeaturesDependenciesTest.java
+++ b/features/core/src/test/java/org/apache/karaf/features/internal/region/FeaturesDependenciesTest.java
@@ -32,7 +32,6 @@ import org.apache.karaf.features.internal.service.RepositoryImpl;
 import org.apache.karaf.features.internal.support.TestDownloadManager;
 import org.junit.Test;
 import org.osgi.framework.namespace.IdentityNamespace;
-import org.osgi.framework.wiring.BundleRevision;
 import org.osgi.resource.Capability;
 import org.osgi.resource.Resource;
 import org.osgi.resource.Wire;
@@ -45,7 +44,7 @@ import static org.junit.Assert.assertEquals;
 
 public class FeaturesDependenciesTest {
 
-    Logger logger = LoggerFactory.getLogger(FeaturesDependenciesTest.class);;
+    Logger logger = LoggerFactory.getLogger(FeaturesDependenciesTest.class);
     Resolver resolver = new ResolverImpl(new Slf4jResolverLog(logger));
 
     @Test

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/test/java/org/apache/karaf/features/internal/region/SubsystemTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/internal/region/SubsystemTest.java b/features/core/src/test/java/org/apache/karaf/features/internal/region/SubsystemTest.java
index 520dc5b..1d56011 100644
--- a/features/core/src/test/java/org/apache/karaf/features/internal/region/SubsystemTest.java
+++ b/features/core/src/test/java/org/apache/karaf/features/internal/region/SubsystemTest.java
@@ -33,7 +33,6 @@ import org.apache.karaf.features.internal.service.RepositoryImpl;
 import org.apache.karaf.features.internal.support.TestDownloadManager;
 import org.junit.Test;
 import org.osgi.framework.namespace.IdentityNamespace;
-import org.osgi.framework.wiring.BundleRevision;
 import org.osgi.resource.Capability;
 import org.osgi.resource.Resource;
 import org.osgi.resource.Wire;
@@ -46,7 +45,7 @@ import static org.junit.Assert.assertEquals;
 
 public class SubsystemTest {
 
-    Logger logger = LoggerFactory.getLogger(SubsystemTest.class);;
+    Logger logger = LoggerFactory.getLogger(SubsystemTest.class);
     Resolver resolver = new ResolverImpl(new Slf4jResolverLog(logger));
 
     @Test

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/test/java/org/apache/karaf/features/internal/service/DeployerTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/internal/service/DeployerTest.java b/features/core/src/test/java/org/apache/karaf/features/internal/service/DeployerTest.java
index 77aeb07..d06e195 100644
--- a/features/core/src/test/java/org/apache/karaf/features/internal/service/DeployerTest.java
+++ b/features/core/src/test/java/org/apache/karaf/features/internal/service/DeployerTest.java
@@ -24,7 +24,6 @@ import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Hashtable;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.jar.Manifest;
@@ -46,8 +45,6 @@ import org.easymock.IMocksControl;
 import org.junit.Test;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleException;
-import org.osgi.resource.Resource;
-import org.osgi.resource.Wire;
 import org.osgi.service.resolver.Resolver;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/test/java/org/apache/karaf/features/internal/service/FeaturesServiceImplTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/internal/service/FeaturesServiceImplTest.java b/features/core/src/test/java/org/apache/karaf/features/internal/service/FeaturesServiceImplTest.java
index 082fc21..15f4f04 100644
--- a/features/core/src/test/java/org/apache/karaf/features/internal/service/FeaturesServiceImplTest.java
+++ b/features/core/src/test/java/org/apache/karaf/features/internal/service/FeaturesServiceImplTest.java
@@ -34,7 +34,6 @@ import org.apache.karaf.features.internal.resolver.Slf4jResolverLog;
 import org.apache.karaf.features.internal.service.BundleInstallSupport.FrameworkInfo;
 import org.easymock.EasyMock;
 import org.junit.After;
-import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.osgi.service.resolver.Resolver;
@@ -53,7 +52,7 @@ import static org.junit.Assert.assertTrue;
  */
 public class FeaturesServiceImplTest extends TestBase {
 
-    Logger logger = LoggerFactory.getLogger(FeaturesServiceImplTest.class);;
+    Logger logger = LoggerFactory.getLogger(FeaturesServiceImplTest.class);
     Resolver resolver = new ResolverImpl(new Slf4jResolverLog(logger));
     File dataFile;
 
@@ -198,7 +197,7 @@ public class FeaturesServiceImplTest extends TestBase {
     }
 
     private void installFeature(final FeaturesService featureService, Feature a1Feature)
-        throws Exception, InterruptedException {
+        throws Exception {
         featureService.installFeature(a1Feature, EnumSet.noneOf(Option.class));
         while (!featureService.isInstalled(a1Feature)) {
             Thread.sleep(100);

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/features/core/src/test/java/org/apache/karaf/features/internal/service/OverridesTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/internal/service/OverridesTest.java b/features/core/src/test/java/org/apache/karaf/features/internal/service/OverridesTest.java
index 660ffb0..033ac7c 100644
--- a/features/core/src/test/java/org/apache/karaf/features/internal/service/OverridesTest.java
+++ b/features/core/src/test/java/org/apache/karaf/features/internal/service/OverridesTest.java
@@ -17,8 +17,6 @@
 package org.apache.karaf.features.internal.service;
 
 import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/http/src/main/java/org/apache/karaf/http/core/ServletInfo.java
----------------------------------------------------------------------
diff --git a/http/src/main/java/org/apache/karaf/http/core/ServletInfo.java b/http/src/main/java/org/apache/karaf/http/core/ServletInfo.java
index c2e2fa3..515eb36 100644
--- a/http/src/main/java/org/apache/karaf/http/core/ServletInfo.java
+++ b/http/src/main/java/org/apache/karaf/http/core/ServletInfo.java
@@ -17,7 +17,6 @@
 package org.apache.karaf.http.core;
 
 import org.ops4j.pax.web.service.spi.WebEvent;
-import org.osgi.framework.Bundle;
 
 public class ServletInfo {
     private String name;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/instance/src/main/java/org/apache/karaf/instance/command/completers/StartedInstanceCompleter.java
----------------------------------------------------------------------
diff --git a/instance/src/main/java/org/apache/karaf/instance/command/completers/StartedInstanceCompleter.java b/instance/src/main/java/org/apache/karaf/instance/command/completers/StartedInstanceCompleter.java
index f9a098d..12f10d2 100644
--- a/instance/src/main/java/org/apache/karaf/instance/command/completers/StartedInstanceCompleter.java
+++ b/instance/src/main/java/org/apache/karaf/instance/command/completers/StartedInstanceCompleter.java
@@ -25,11 +25,7 @@ public class StartedInstanceCompleter extends InstanceCompleter {
 
     protected boolean acceptsInstance(Instance instance) {
         try {
-            if (instance.getState().equals(Instance.STARTED)) {
-                return true;
-            } else {
-                return false;
-            }
+            return instance.getState().equals(Instance.STARTED);
         } catch (Exception e) {
             return false;
         }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/instance/src/main/java/org/apache/karaf/instance/command/completers/StoppedInstanceCompleter.java
----------------------------------------------------------------------
diff --git a/instance/src/main/java/org/apache/karaf/instance/command/completers/StoppedInstanceCompleter.java b/instance/src/main/java/org/apache/karaf/instance/command/completers/StoppedInstanceCompleter.java
index be17ad8..4da614b 100644
--- a/instance/src/main/java/org/apache/karaf/instance/command/completers/StoppedInstanceCompleter.java
+++ b/instance/src/main/java/org/apache/karaf/instance/command/completers/StoppedInstanceCompleter.java
@@ -25,11 +25,7 @@ public class StoppedInstanceCompleter extends InstanceCompleter {
     
     protected boolean acceptsInstance(Instance instance) {
         try {
-            if (instance.getState().equals(Instance.STOPPED)) {
-                return true;
-            } else {
-                return false;
-            }
+            return instance.getState().equals(Instance.STOPPED);
         } catch (Exception e) {
             return false;
         }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/instance/src/main/java/org/apache/karaf/instance/core/internal/InstanceServiceImpl.java
----------------------------------------------------------------------
diff --git a/instance/src/main/java/org/apache/karaf/instance/core/internal/InstanceServiceImpl.java b/instance/src/main/java/org/apache/karaf/instance/core/internal/InstanceServiceImpl.java
index 010b52b..97152d9 100644
--- a/instance/src/main/java/org/apache/karaf/instance/core/internal/InstanceServiceImpl.java
+++ b/instance/src/main/java/org/apache/karaf/instance/core/internal/InstanceServiceImpl.java
@@ -1058,7 +1058,7 @@ public class InstanceServiceImpl implements InstanceService {
 
     protected static Properties loadPropertiesFile(URL configPropURL) throws Exception {
         try (
-            InputStream is = configPropURL.openConnection().getInputStream();
+            InputStream is = configPropURL.openConnection().getInputStream()
         ){
             Properties configProps = new Properties();
             configProps.load(is);

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/itests/src/test/java/org/apache/karaf/itests/JmsTest.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/karaf/itests/JmsTest.java b/itests/src/test/java/org/apache/karaf/itests/JmsTest.java
index f0068de..c05e31c 100644
--- a/itests/src/test/java/org/apache/karaf/itests/JmsTest.java
+++ b/itests/src/test/java/org/apache/karaf/itests/JmsTest.java
@@ -27,17 +27,12 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.features;
 import java.io.IOException;
 import java.lang.management.ManagementFactory;
 import java.net.Socket;
-import java.net.UnknownHostException;
 import java.util.Arrays;
 import java.util.List;
 
 import javax.jms.ConnectionFactory;
-import javax.management.AttributeNotFoundException;
-import javax.management.InstanceNotFoundException;
-import javax.management.MBeanException;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
-import javax.management.ReflectionException;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -111,7 +106,7 @@ public class JmsTest extends KarafTestSupport {
         invoke("delete", JMX_CF_NAME);
     }
 
-    public boolean jmsTransportPresent() throws UnknownHostException, IOException {
+    public boolean jmsTransportPresent() throws IOException {
         try (Socket socket = new Socket("localhost", 61616)) {
             return true;
         } catch (Exception e) {
@@ -125,8 +120,7 @@ public class JmsTest extends KarafTestSupport {
         return output;
     }
 
-    private void checkJMXCreateConnectionFactory() throws Exception, AttributeNotFoundException,
-        MBeanException, InstanceNotFoundException, ReflectionException {
+    private void checkJMXCreateConnectionFactory() throws Exception {
         invoke("create", JMX_CF_NAME, "activemq", "tcp://localhost:61616", "karaf", "karaf");
         waitForConnectionFactory("name=" + JMX_CF_NAME);
         @SuppressWarnings("unchecked")

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/itests/src/test/java/org/apache/karaf/itests/ssh/ConfigSshCommandSecurityTest.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/karaf/itests/ssh/ConfigSshCommandSecurityTest.java b/itests/src/test/java/org/apache/karaf/itests/ssh/ConfigSshCommandSecurityTest.java
index b742851..f7b65b7 100644
--- a/itests/src/test/java/org/apache/karaf/itests/ssh/ConfigSshCommandSecurityTest.java
+++ b/itests/src/test/java/org/apache/karaf/itests/ssh/ConfigSshCommandSecurityTest.java
@@ -13,8 +13,6 @@
  */
 package org.apache.karaf.itests.ssh;
 
-import java.io.IOException;
-
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -55,7 +53,7 @@ public class ConfigSshCommandSecurityTest extends SshCommandTestBase {
         testConfigEdits("karaf", Result.OK, "org.apache.karaf.service.acl.test_" + counter++, true);
     }
 
-    private void testConfigEdits(String user, Result expectedEditResult, String pid, boolean isAdmin) throws Exception, IOException {
+    private void testConfigEdits(String user, Result expectedEditResult, String pid, boolean isAdmin) throws Exception {
         assertCommand(user, "config:edit " + pid + "\n" +
                 "config:property-set x y\n" +
                 "config:property-set a b\n" +
@@ -120,7 +118,7 @@ public class ConfigSshCommandSecurityTest extends SshCommandTestBase {
         testConfigEditsNoSession("karaf", Result.OK, "org.apache.karaf.service.acl.test_" + counter++);
     }
 
-    private void testConfigEditsNoSession(String user, Result expectedResult, String pid) throws Exception, IOException {
+    private void testConfigEditsNoSession(String user, Result expectedResult, String pid) throws Exception {
         assertCommand(user, "config:property-set -p " + pid + " a.b.c d.e.f", expectedResult);
         assertCommand(user, "config:property-append -p " + pid + " a.b.c .g.h", expectedResult);
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/itests/src/test/java/org/apache/karaf/itests/ssh/SshCommandTestBase.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/karaf/itests/ssh/SshCommandTestBase.java b/itests/src/test/java/org/apache/karaf/itests/ssh/SshCommandTestBase.java
index b252506..af1dbae 100644
--- a/itests/src/test/java/org/apache/karaf/itests/ssh/SshCommandTestBase.java
+++ b/itests/src/test/java/org/apache/karaf/itests/ssh/SshCommandTestBase.java
@@ -43,7 +43,7 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 @ExamReactorStrategy(PerClass.class)
 public class SshCommandTestBase extends KarafTestSupport {
 
-    enum Result { OK, NOT_FOUND, NO_CREDENTIALS };
+    enum Result { OK, NOT_FOUND, NO_CREDENTIALS }
 
     private SshClient client;
     private ClientChannel channel;
@@ -88,7 +88,7 @@ public class SshCommandTestBase extends KarafTestSupport {
         System.out.println(new String(out.toByteArray()));
     }
 
-    String assertCommand(String user, String command, Result result) throws Exception, IOException {
+    String assertCommand(String user, String command, Result result) throws Exception {
         if (!command.endsWith("\n"))
             command += "\n";
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/blueprint/jasypt/src/test/java/org/apache/karaf/jaas/blueprint/jasypt/handler/EncryptableConfigAdminPropertyPlaceholderTest.java
----------------------------------------------------------------------
diff --git a/jaas/blueprint/jasypt/src/test/java/org/apache/karaf/jaas/blueprint/jasypt/handler/EncryptableConfigAdminPropertyPlaceholderTest.java b/jaas/blueprint/jasypt/src/test/java/org/apache/karaf/jaas/blueprint/jasypt/handler/EncryptableConfigAdminPropertyPlaceholderTest.java
index b345c7c..388e975 100644
--- a/jaas/blueprint/jasypt/src/test/java/org/apache/karaf/jaas/blueprint/jasypt/handler/EncryptableConfigAdminPropertyPlaceholderTest.java
+++ b/jaas/blueprint/jasypt/src/test/java/org/apache/karaf/jaas/blueprint/jasypt/handler/EncryptableConfigAdminPropertyPlaceholderTest.java
@@ -33,7 +33,6 @@ import org.osgi.service.cm.ConfigurationAdmin;
 import org.osgi.util.tracker.ServiceTracker;
 
 import java.io.*;
-import java.net.URL;
 import java.util.*;
 import java.util.jar.JarInputStream;
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/GroupPrincipal.java
----------------------------------------------------------------------
diff --git a/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/GroupPrincipal.java b/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/GroupPrincipal.java
index 92e58d4..60f2953 100644
--- a/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/GroupPrincipal.java
+++ b/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/GroupPrincipal.java
@@ -19,6 +19,7 @@ import java.security.Principal;
 import java.security.acl.Group;
 import java.util.Enumeration;
 import java.util.Hashtable;
+import java.util.Objects;
 
 public class GroupPrincipal implements Group, Serializable {
     private static final long serialVersionUID = 1L;
@@ -39,18 +40,14 @@ public class GroupPrincipal implements Group, Serializable {
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;
-        if (!(o instanceof GroupPrincipal)) return false;
-
+        if (o == null || getClass() != o.getClass()) return false;
         GroupPrincipal that = (GroupPrincipal) o;
-
-        if (name != null ? !name.equals(that.name) : that.name != null) return false;
-
-        return true;
+        return Objects.equals(name, that.name);
     }
 
     @Override
     public int hashCode() {
-        return name != null ? name.hashCode() : 0;
+        return Objects.hash(name);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/RolePolicy.java
----------------------------------------------------------------------
diff --git a/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/RolePolicy.java b/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/RolePolicy.java
index 93e5add..076435e 100644
--- a/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/RolePolicy.java
+++ b/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/RolePolicy.java
@@ -62,7 +62,7 @@ public enum RolePolicy {
         }
     }
 
-    private RolePolicy(String value) {
+    RolePolicy(String value) {
         this.value = value;
     }
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/RolePrincipal.java
----------------------------------------------------------------------
diff --git a/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/RolePrincipal.java b/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/RolePrincipal.java
index a7dd7ac..def42cb 100644
--- a/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/RolePrincipal.java
+++ b/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/RolePrincipal.java
@@ -18,6 +18,7 @@ package org.apache.karaf.jaas.boot.principal;
 
 import java.io.Serializable;
 import java.security.Principal;
+import java.util.Objects;
 
 public class RolePrincipal implements Principal, Serializable {
     private static final long serialVersionUID = 1L;
@@ -36,18 +37,14 @@ public class RolePrincipal implements Principal, Serializable {
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;
-        if (!(o instanceof RolePrincipal)) return false;
-
+        if (o == null || getClass() != o.getClass()) return false;
         RolePrincipal that = (RolePrincipal) o;
-
-        if (name != null ? !name.equals(that.name) : that.name != null) return false;
-
-        return true;
+        return Objects.equals(name, that.name);
     }
 
     @Override
     public int hashCode() {
-        return name != null ? name.hashCode() : 0;
+        return Objects.hash(name);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/UserPrincipal.java
----------------------------------------------------------------------
diff --git a/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/UserPrincipal.java b/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/UserPrincipal.java
index 4270cd9..9f5318b 100644
--- a/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/UserPrincipal.java
+++ b/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/principal/UserPrincipal.java
@@ -18,6 +18,7 @@ package org.apache.karaf.jaas.boot.principal;
 
 import java.io.Serializable;
 import java.security.Principal;
+import java.util.Objects;
 
 public class UserPrincipal implements Principal, Serializable {
     private static final long serialVersionUID = 1L;
@@ -36,18 +37,14 @@ public class UserPrincipal implements Principal, Serializable {
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;
-        if (!(o instanceof UserPrincipal)) return false;
-
+        if (o == null || getClass() != o.getClass()) return false;
         UserPrincipal that = (UserPrincipal) o;
-
-        if (name != null ? !name.equals(that.name) : that.name != null) return false;
-
-        return true;
+        return Objects.equals(name, that.name);
     }
 
     @Override
     public int hashCode() {
-        return name != null ? name.hashCode() : 0;
+        return Objects.hash(name);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java
index 0ef7a28d..b823fdc 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java
@@ -16,7 +16,6 @@
 package org.apache.karaf.jaas.command;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Queue;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListGroupsCommand.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListGroupsCommand.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListGroupsCommand.java
index cd5c6ec..3c04963 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListGroupsCommand.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListGroupsCommand.java
@@ -15,16 +15,9 @@
  */
 package org.apache.karaf.jaas.command;
 
-import java.security.Principal;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
 import javax.security.auth.login.AppConfigurationEntry;
 
 import org.apache.karaf.jaas.boot.principal.GroupPrincipal;
-import org.apache.karaf.jaas.boot.principal.UserPrincipal;
 import org.apache.karaf.jaas.config.JaasRealm;
 import org.apache.karaf.jaas.modules.BackingEngine;
 import org.apache.karaf.shell.api.action.Command;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/command/src/test/java/org/apache/karaf/jaas/command/ManageRealmCommandTest.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/test/java/org/apache/karaf/jaas/command/ManageRealmCommandTest.java b/jaas/command/src/test/java/org/apache/karaf/jaas/command/ManageRealmCommandTest.java
index 633fbf9..71397a1 100644
--- a/jaas/command/src/test/java/org/apache/karaf/jaas/command/ManageRealmCommandTest.java
+++ b/jaas/command/src/test/java/org/apache/karaf/jaas/command/ManageRealmCommandTest.java
@@ -18,7 +18,6 @@ package org.apache.karaf.jaas.command;
 import java.util.Arrays;
 import java.util.Properties;
 
-import org.apache.karaf.jaas.config.JaasRealm;
 import org.apache.karaf.jaas.config.impl.Config;
 import org.apache.karaf.jaas.config.impl.Module;
 import org.apache.karaf.shell.api.console.Session;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/config/src/main/java/org/apache/karaf/jaas/config/JaasRealm.java
----------------------------------------------------------------------
diff --git a/jaas/config/src/main/java/org/apache/karaf/jaas/config/JaasRealm.java b/jaas/config/src/main/java/org/apache/karaf/jaas/config/JaasRealm.java
index d3fc014..07fc8b8 100644
--- a/jaas/config/src/main/java/org/apache/karaf/jaas/config/JaasRealm.java
+++ b/jaas/config/src/main/java/org/apache/karaf/jaas/config/JaasRealm.java
@@ -20,9 +20,9 @@ import javax.security.auth.login.AppConfigurationEntry;
 
 public interface JaasRealm {
 
-    public String getName();
+    String getName();
 
-    public int getRank();
+    int getRank();
 
-    public AppConfigurationEntry[] getEntries();
+    AppConfigurationEntry[] getEntries();
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/jasypt/src/main/java/org/apache/karaf/jaas/jasypt/impl/JasyptEncryption.java
----------------------------------------------------------------------
diff --git a/jaas/jasypt/src/main/java/org/apache/karaf/jaas/jasypt/impl/JasyptEncryption.java b/jaas/jasypt/src/main/java/org/apache/karaf/jaas/jasypt/impl/JasyptEncryption.java
index 99311a8..0c50e42 100644
--- a/jaas/jasypt/src/main/java/org/apache/karaf/jaas/jasypt/impl/JasyptEncryption.java
+++ b/jaas/jasypt/src/main/java/org/apache/karaf/jaas/jasypt/impl/JasyptEncryption.java
@@ -18,8 +18,6 @@ import java.util.Map;
 
 import org.apache.karaf.jaas.modules.Encryption;
 import org.apache.karaf.jaas.modules.EncryptionService;
-import org.jasypt.digest.config.DigesterConfig;
-import org.jasypt.digest.config.SimpleDigesterConfig;
 import org.jasypt.digest.config.SimpleStringDigesterConfig;
 import org.jasypt.exceptions.EncryptionInitializationException;
 import org.jasypt.util.password.ConfigurablePasswordEncryptor;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/BackingEngine.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/BackingEngine.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/BackingEngine.java
index f0aa084..8638ee6 100644
--- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/BackingEngine.java
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/BackingEngine.java
@@ -24,7 +24,7 @@ import org.apache.karaf.jaas.boot.principal.UserPrincipal;
 
 public interface BackingEngine {
 
-    static final String GROUP_PREFIX = "_g_:";
+    String GROUP_PREFIX = "_g_:";
     
     /**
      * Create a new user.

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/Encryption.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/Encryption.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/Encryption.java
index fa44fd6..9927102 100644
--- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/Encryption.java
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/Encryption.java
@@ -25,7 +25,7 @@ public interface Encryption {
      * @param plain the password in plain format.
      * @return the encrypted password format.
      */
-    public String encryptPassword(String plain);
+    String encryptPassword(String plain);
     
     /**
      * Check password.
@@ -34,6 +34,6 @@ public interface Encryption {
      * @param password the encrypted format to compare with.
      * @return true if the password match, false else.
      */
-    public boolean checkPassword(String input, String password);
+    boolean checkPassword(String input, String password);
 
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/impl/Activator.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/impl/Activator.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/impl/Activator.java
index 8e37aea..3d369ec 100644
--- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/impl/Activator.java
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/impl/Activator.java
@@ -26,7 +26,6 @@ import org.apache.karaf.jaas.modules.ldap.LDAPCache;
 import org.apache.karaf.jaas.modules.properties.AutoEncryptionSupport;
 import org.apache.karaf.jaas.modules.properties.PropertiesBackingEngineFactory;
 import org.apache.karaf.jaas.modules.publickey.PublickeyBackingEngineFactory;
-import org.apache.karaf.util.StreamUtils;
 import org.apache.karaf.util.tracker.BaseActivator;
 import org.apache.karaf.util.tracker.annotation.Managed;
 import org.apache.karaf.util.tracker.annotation.ProvideService;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/impl/KarafRealm.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/impl/KarafRealm.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/impl/KarafRealm.java
index 8e4c99d..eaabbac 100644
--- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/impl/KarafRealm.java
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/impl/KarafRealm.java
@@ -22,7 +22,6 @@ import javax.security.auth.login.AppConfigurationEntry;
 
 import org.apache.karaf.jaas.boot.ProxyLoginModule;
 import org.apache.karaf.jaas.config.JaasRealm;
-import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 
 public class KarafRealm implements JaasRealm {

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/jdbc/JDBCBackingEngine.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/jdbc/JDBCBackingEngine.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/jdbc/JDBCBackingEngine.java
index db0a8e8..11a52cc 100644
--- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/jdbc/JDBCBackingEngine.java
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/jdbc/JDBCBackingEngine.java
@@ -27,12 +27,9 @@ import javax.sql.DataSource;
 
 import java.security.Principal;
 import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/jdbc/JDBCUtils.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/jdbc/JDBCUtils.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/jdbc/JDBCUtils.java
index 6459a50..4e1cda8 100644
--- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/jdbc/JDBCUtils.java
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/jdbc/JDBCUtils.java
@@ -20,7 +20,6 @@ import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 
 import org.osgi.framework.BundleContext;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java
index b189057..1838f58 100644
--- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java
@@ -25,7 +25,6 @@ import javax.security.auth.callback.PasswordCallback;
 import javax.security.auth.callback.UnsupportedCallbackException;
 import javax.security.auth.login.LoginException;
 import java.io.IOException;
-import java.security.Principal;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Hashtable;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPOptions.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPOptions.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPOptions.java
index f2c130b..90c3333 100644
--- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPOptions.java
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPOptions.java
@@ -266,7 +266,7 @@ public class LDAPOptions {
 
     public boolean getDisableCache() {
         final Object object = options.get(DISABLE_CACHE);
-        return object == null ? true : Boolean.parseBoolean((String) object);
+        return object == null || Boolean.parseBoolean((String) object);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/osgi/OsgiConfigLoginModule.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/osgi/OsgiConfigLoginModule.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/osgi/OsgiConfigLoginModule.java
index c5d03f0..8ce320e 100644
--- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/osgi/OsgiConfigLoginModule.java
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/osgi/OsgiConfigLoginModule.java
@@ -17,7 +17,6 @@
 package org.apache.karaf.jaas.modules.osgi;
 
 import java.io.IOException;
-import java.security.Principal;
 import java.util.Dictionary;
 import java.util.HashSet;
 import java.util.Map;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/DigestPasswordLoginModule.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/DigestPasswordLoginModule.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/DigestPasswordLoginModule.java
index 5ddf7d4..4ae2afa 100644
--- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/DigestPasswordLoginModule.java
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/DigestPasswordLoginModule.java
@@ -20,7 +20,6 @@ import java.io.File;
 import java.io.IOException;
 import java.lang.reflect.Field;
 import java.security.MessageDigest;
-import java.security.Principal;
 import java.util.HashSet;
 import java.util.Map;
 import javax.security.auth.Subject;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/PropertiesLoginModule.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/PropertiesLoginModule.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/PropertiesLoginModule.java
index d4da774..9fe11ed 100644
--- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/PropertiesLoginModule.java
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/PropertiesLoginModule.java
@@ -18,7 +18,6 @@ package org.apache.karaf.jaas.modules.properties;
 
 import java.io.File;
 import java.io.IOException;
-import java.security.Principal;
 import java.util.HashSet;
 import java.util.Map;
 import javax.security.auth.Subject;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/publickey/PublickeyBackingEngine.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/publickey/PublickeyBackingEngine.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/publickey/PublickeyBackingEngine.java
index 2eb246b..fcbe41c 100644
--- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/publickey/PublickeyBackingEngine.java
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/publickey/PublickeyBackingEngine.java
@@ -26,7 +26,6 @@ import org.apache.karaf.jaas.boot.principal.GroupPrincipal;
 import org.apache.karaf.jaas.boot.principal.RolePrincipal;
 import org.apache.karaf.jaas.boot.principal.UserPrincipal;
 import org.apache.karaf.jaas.modules.BackingEngine;
-import org.apache.karaf.jaas.modules.encryption.EncryptionSupport;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/publickey/PublickeyLoginModule.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/publickey/PublickeyLoginModule.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/publickey/PublickeyLoginModule.java
index e7cfdaf..d04f0ab 100644
--- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/publickey/PublickeyLoginModule.java
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/publickey/PublickeyLoginModule.java
@@ -20,7 +20,6 @@ import java.io.DataOutputStream;
 import java.io.File;
 import java.io.IOException;
 import java.math.BigInteger;
-import java.security.Principal;
 import java.security.PublicKey;
 import java.security.interfaces.DSAPublicKey;
 import java.security.interfaces.RSAKey;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/syncope/SyncopeBackingEngine.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/syncope/SyncopeBackingEngine.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/syncope/SyncopeBackingEngine.java
index 16c7352..9558e53 100644
--- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/syncope/SyncopeBackingEngine.java
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/syncope/SyncopeBackingEngine.java
@@ -32,7 +32,6 @@ import org.apache.karaf.jaas.modules.BackingEngine;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.naming.OperationNotSupportedException;
 import java.security.Principal;
 import java.util.ArrayList;
 import java.util.List;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/syncope/SyncopeLoginModule.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/syncope/SyncopeLoginModule.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/syncope/SyncopeLoginModule.java
index 1af9751..aa977e4 100644
--- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/syncope/SyncopeLoginModule.java
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/syncope/SyncopeLoginModule.java
@@ -32,7 +32,6 @@ import javax.security.auth.Subject;
 import javax.security.auth.callback.*;
 import javax.security.auth.login.LoginException;
 import java.io.IOException;
-import java.security.Principal;
 import java.util.*;
 
 /**

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/GSSAPILdapLoginModuleTest.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/GSSAPILdapLoginModuleTest.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/GSSAPILdapLoginModuleTest.java
index 63382d7..47ea240 100644
--- a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/GSSAPILdapLoginModuleTest.java
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/GSSAPILdapLoginModuleTest.java
@@ -171,7 +171,7 @@ public class GSSAPILdapLoginModuleTest extends AbstractKerberosITest {
             FileInputStream inputStream = new FileInputStream(f);
             String content = IOUtils.toString(inputStream, "UTF-8");
             inputStream.close();
-            content = content.replaceAll("portno", "" + super.getLdapServer().getPort());
+            content = content.replaceAll("portno", "" + getLdapServer().getPort());
             content = content.replaceAll("address", KerberosTestUtils.getHostName());
 
             File f2 = new File(basedir + "/target/test-classes/org/apache/karaf/jaas/modules/ldap/gssapi.ldap.properties");


[5/5] karaf git commit: Move karaf's json reader/writer to util

Posted by gn...@apache.org.
Move karaf's json reader/writer to util

Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/0748a4b4
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/0748a4b4
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/0748a4b4

Branch: refs/heads/master
Commit: 0748a4b4ac993a5c881447121f9ffe127d822a5e
Parents: d5d2516
Author: Guillaume Nodet <gn...@apache.org>
Authored: Fri Jun 2 13:07:15 2017 +0200
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Fri Jun 2 13:08:16 2017 +0200

----------------------------------------------------------------------
 features/core/pom.xml                           |   1 +
 .../features/internal/region/DigraphHelper.java |   4 +-
 .../internal/region/OfflineResolver.java        |   2 +-
 .../internal/region/SubsystemResolver.java      |   2 +-
 .../internal/repository/JsonRepository.java     |   2 +-
 .../internal/service/FeaturesServiceImpl.java   |   4 +-
 .../features/internal/service/StateStorage.java |   4 +-
 .../features/internal/util/JsonReader.java      | 352 -------------------
 .../features/internal/util/JsonWriter.java      | 192 ----------
 jms/core/pom.xml                                |   3 +-
 .../ArtemisDestinationSourceFactory.java        |   2 +
 .../apache/karaf/jms/internal/JsonReader.java   | 352 -------------------
 .../org/apache/karaf/util/json/JsonReader.java  | 352 +++++++++++++++++++
 .../org/apache/karaf/util/json/JsonWriter.java  | 192 ++++++++++
 14 files changed, 558 insertions(+), 906 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/0748a4b4/features/core/pom.xml
----------------------------------------------------------------------
diff --git a/features/core/pom.xml b/features/core/pom.xml
index ac2f504..d4f5944 100644
--- a/features/core/pom.xml
+++ b/features/core/pom.xml
@@ -147,6 +147,7 @@
                             org.apache.karaf.util,
                             org.apache.karaf.util.bundles,
                             org.apache.karaf.util.collections,
+                            org.apache.karaf.util.json,
                             org.apache.karaf.util.maven,
                             org.eclipse.equinox.internal.region.*;-split-package:=merge-first,
                             org.apache.felix.resolver.*,

http://git-wip-us.apache.org/repos/asf/karaf/blob/0748a4b4/features/core/src/main/java/org/apache/karaf/features/internal/region/DigraphHelper.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/region/DigraphHelper.java b/features/core/src/main/java/org/apache/karaf/features/internal/region/DigraphHelper.java
index ac7d38b..31056b4 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/region/DigraphHelper.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/region/DigraphHelper.java
@@ -35,8 +35,8 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.karaf.features.internal.service.FeaturesServiceImpl;
-import org.apache.karaf.features.internal.util.JsonReader;
-import org.apache.karaf.features.internal.util.JsonWriter;
+import org.apache.karaf.util.json.JsonReader;
+import org.apache.karaf.util.json.JsonWriter;
 import org.eclipse.equinox.internal.region.StandardRegionDigraph;
 import org.eclipse.equinox.region.Region;
 import org.eclipse.equinox.region.RegionDigraph;

http://git-wip-us.apache.org/repos/asf/karaf/blob/0748a4b4/features/core/src/main/java/org/apache/karaf/features/internal/region/OfflineResolver.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/region/OfflineResolver.java b/features/core/src/main/java/org/apache/karaf/features/internal/region/OfflineResolver.java
index cb25236..1ff7ec5 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/region/OfflineResolver.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/region/OfflineResolver.java
@@ -33,7 +33,7 @@ import org.apache.karaf.features.internal.resolver.RequirementImpl;
 import org.apache.karaf.features.internal.resolver.ResourceBuilder;
 import org.apache.karaf.features.internal.resolver.ResourceImpl;
 import org.apache.karaf.features.internal.resolver.SimpleFilter;
-import org.apache.karaf.features.internal.util.JsonReader;
+import org.apache.karaf.util.json.JsonReader;
 import org.osgi.framework.BundleException;
 import org.osgi.resource.Capability;
 import org.osgi.resource.Requirement;

http://git-wip-us.apache.org/repos/asf/karaf/blob/0748a4b4/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolver.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolver.java b/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolver.java
index c477f75..b39c965 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolver.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolver.java
@@ -37,7 +37,7 @@ import org.apache.karaf.features.internal.resolver.ResolverUtil;
 import org.apache.karaf.features.internal.resolver.ResourceBuilder;
 import org.apache.karaf.features.internal.resolver.ResourceImpl;
 import org.apache.karaf.features.internal.resolver.SimpleFilter;
-import org.apache.karaf.features.internal.util.JsonWriter;
+import org.apache.karaf.util.json.JsonWriter;
 import org.eclipse.equinox.internal.region.StandardRegionDigraph;
 import org.eclipse.equinox.region.Region;
 import org.eclipse.equinox.region.RegionDigraph;

http://git-wip-us.apache.org/repos/asf/karaf/blob/0748a4b4/features/core/src/main/java/org/apache/karaf/features/internal/repository/JsonRepository.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/repository/JsonRepository.java b/features/core/src/main/java/org/apache/karaf/features/internal/repository/JsonRepository.java
index 92d8d73..c105b8d 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/repository/JsonRepository.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/repository/JsonRepository.java
@@ -25,7 +25,7 @@ import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
 import org.apache.karaf.features.internal.resolver.ResourceBuilder;
-import org.apache.karaf.features.internal.util.JsonReader;
+import org.apache.karaf.util.json.JsonReader;
 import org.osgi.resource.Capability;
 import org.osgi.resource.Requirement;
 import org.osgi.resource.Resource;

http://git-wip-us.apache.org/repos/asf/karaf/blob/0748a4b4/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java b/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java
index 5d65c03..5f79fba 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java
@@ -62,8 +62,8 @@ import org.apache.karaf.features.internal.download.DownloadManager;
 import org.apache.karaf.features.internal.download.DownloadManagers;
 import org.apache.karaf.features.internal.region.DigraphHelper;
 import org.apache.karaf.features.internal.service.BundleInstallSupport.FrameworkInfo;
-import org.apache.karaf.features.internal.util.JsonReader;
-import org.apache.karaf.features.internal.util.JsonWriter;
+import org.apache.karaf.util.json.JsonReader;
+import org.apache.karaf.util.json.JsonWriter;
 import org.apache.karaf.util.collections.CopyOnWriteArrayIdentityList;
 import org.eclipse.equinox.region.RegionDigraph;
 import org.ops4j.pax.url.mvn.MavenResolver;

http://git-wip-us.apache.org/repos/asf/karaf/blob/0748a4b4/features/core/src/main/java/org/apache/karaf/features/internal/service/StateStorage.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/service/StateStorage.java b/features/core/src/main/java/org/apache/karaf/features/internal/service/StateStorage.java
index 36cdc69..0d1fa98 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/service/StateStorage.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/service/StateStorage.java
@@ -25,8 +25,8 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
 
-import org.apache.karaf.features.internal.util.JsonReader;
-import org.apache.karaf.features.internal.util.JsonWriter;
+import org.apache.karaf.util.json.JsonReader;
+import org.apache.karaf.util.json.JsonWriter;
 
 @SuppressWarnings({
     "rawtypes"

http://git-wip-us.apache.org/repos/asf/karaf/blob/0748a4b4/features/core/src/main/java/org/apache/karaf/features/internal/util/JsonReader.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/util/JsonReader.java b/features/core/src/main/java/org/apache/karaf/features/internal/util/JsonReader.java
deleted file mode 100644
index 7ce1b76..0000000
--- a/features/core/src/main/java/org/apache/karaf/features/internal/util/JsonReader.java
+++ /dev/null
@@ -1,352 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.karaf.features.internal.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- */
-public final class JsonReader {
-
-    //
-    // Implementation
-    //
-
-    private final Reader reader;
-    private final StringBuilder recorder;
-    private int current;
-    private int line = 1;
-    private int column;
-
-    private JsonReader(Reader reader) {
-        this.reader = reader;
-        recorder = new StringBuilder();
-    }
-
-    public static Object read(Reader reader) throws IOException {
-        return new JsonReader(reader).parse();
-    }
-
-    public static Object read(InputStream is) throws IOException {
-        return new JsonReader(new InputStreamReader(is)).parse();
-    }
-
-    private Object parse() throws IOException {
-        read();
-        skipWhiteSpace();
-        Object result = readValue();
-        skipWhiteSpace();
-        if (!endOfText()) {
-            throw error("Unexpected character");
-        }
-        return result;
-    }
-
-    private Object readValue() throws IOException {
-        switch (current) {
-        case 'n':
-            return readNull();
-        case 't':
-            return readTrue();
-        case 'f':
-            return readFalse();
-        case '"':
-            return readString();
-        case '[':
-            return readArray();
-        case '{':
-            return readObject();
-        case '-':
-        case '0':
-        case '1':
-        case '2':
-        case '3':
-        case '4':
-        case '5':
-        case '6':
-        case '7':
-        case '8':
-        case '9':
-            return readNumber();
-        default:
-            throw expected("value");
-        }
-    }
-
-    private Collection<?> readArray() throws IOException {
-        read();
-        Collection<Object> array = new ArrayList<>();
-        skipWhiteSpace();
-        if (readChar(']')) {
-            return array;
-        }
-        do {
-            skipWhiteSpace();
-            array.add(readValue());
-            skipWhiteSpace();
-        } while (readChar(','));
-        if (!readChar(']')) {
-            throw expected("',' or ']'");
-        }
-        return array;
-    }
-
-    private Map<String, Object> readObject() throws IOException {
-        read();
-        Map<String, Object> object = new HashMap<>();
-        skipWhiteSpace();
-        if (readChar('}')) {
-            return object;
-        }
-        do {
-            skipWhiteSpace();
-            String name = readName();
-            skipWhiteSpace();
-            if (!readChar(':')) {
-                throw expected("':'");
-            }
-            skipWhiteSpace();
-            object.put(name, readValue());
-            skipWhiteSpace();
-        } while (readChar(','));
-        if (!readChar('}')) {
-            throw expected("',' or '}'");
-        }
-        return object;
-    }
-
-    private Object readNull() throws IOException {
-        read();
-        readRequiredChar('u');
-        readRequiredChar('l');
-        readRequiredChar('l');
-        return null;
-    }
-
-    private Boolean readTrue() throws IOException {
-        read();
-        readRequiredChar('r');
-        readRequiredChar('u');
-        readRequiredChar('e');
-        return Boolean.TRUE;
-    }
-
-    private Boolean readFalse() throws IOException {
-        read();
-        readRequiredChar('a');
-        readRequiredChar('l');
-        readRequiredChar('s');
-        readRequiredChar('e');
-        return Boolean.FALSE;
-    }
-
-    private void readRequiredChar(char ch) throws IOException {
-        if (!readChar(ch)) {
-            throw expected("'" + ch + "'");
-        }
-    }
-
-    private String readString() throws IOException {
-        read();
-        recorder.setLength(0);
-        while (current != '"') {
-            if (current == '\\') {
-                readEscape();
-            } else if (current < 0x20) {
-                throw expected("valid string character");
-            } else {
-                recorder.append((char) current);
-                read();
-            }
-        }
-        read();
-        return recorder.toString();
-    }
-
-    private void readEscape() throws IOException {
-        read();
-        switch (current) {
-        case '"':
-        case '/':
-        case '\\':
-            recorder.append((char) current);
-            break;
-        case 'b':
-            recorder.append('\b');
-            break;
-        case 'f':
-            recorder.append('\f');
-            break;
-        case 'n':
-            recorder.append('\n');
-            break;
-        case 'r':
-            recorder.append('\r');
-            break;
-        case 't':
-            recorder.append('\t');
-            break;
-        case 'u':
-            char[] hexChars = new char[4];
-            for (int i = 0; i < 4; i++) {
-                read();
-                if (!isHexDigit(current)) {
-                    throw expected("hexadecimal digit");
-                }
-                hexChars[i] = (char) current;
-            }
-            recorder.append((char) Integer.parseInt(String.valueOf(hexChars), 16));
-            break;
-        default:
-            throw expected("valid escape sequence");
-        }
-        read();
-    }
-
-    private Number readNumber() throws IOException {
-        recorder.setLength(0);
-        readAndAppendChar('-');
-        int firstDigit = current;
-        if (!readAndAppendDigit()) {
-            throw expected("digit");
-        }
-        if (firstDigit != '0') {
-            while (readAndAppendDigit()) {
-                // Do nothing
-            }
-        }
-        readFraction();
-        readExponent();
-        return Double.parseDouble(recorder.toString());
-    }
-
-    private boolean readFraction() throws IOException {
-        if (!readAndAppendChar('.')) {
-            return false;
-        }
-        if (!readAndAppendDigit()) {
-            throw expected("digit");
-        }
-        while (readAndAppendDigit()) {
-            // Do nothing
-        }
-        return true;
-    }
-
-    private boolean readExponent() throws IOException {
-        if (!readAndAppendChar('e') && !readAndAppendChar('E')) {
-            return false;
-        }
-        if (!readAndAppendChar('+')) {
-            readAndAppendChar('-');
-        }
-        if (!readAndAppendDigit()) {
-            throw expected("digit");
-        }
-        while (readAndAppendDigit()) {
-            // Do nothing
-        }
-        return true;
-    }
-
-    private String readName() throws IOException {
-        if (current != '"') {
-            throw expected("name");
-        }
-        readString();
-        return recorder.toString();
-    }
-
-    private boolean readAndAppendChar(char ch) throws IOException {
-        if (current != ch) {
-            return false;
-        }
-        recorder.append(ch);
-        read();
-        return true;
-    }
-
-    private boolean readChar(char ch) throws IOException {
-        if (current != ch) {
-            return false;
-        }
-        read();
-        return true;
-    }
-
-    private boolean readAndAppendDigit() throws IOException {
-        if (!isDigit(current)) {
-            return false;
-        }
-        recorder.append((char) current);
-        read();
-        return true;
-    }
-
-    private void skipWhiteSpace() throws IOException {
-        while (isWhiteSpace(current) && !endOfText()) {
-            read();
-        }
-    }
-
-    private void read() throws IOException {
-        if (endOfText()) {
-            throw error("Unexpected end of input");
-        }
-        column++;
-        if (current == '\n') {
-            line++;
-            column = 0;
-        }
-        current = reader.read();
-    }
-
-    private boolean endOfText() {
-        return current == -1;
-    }
-
-    private IOException expected(String expected) {
-        if (endOfText()) {
-            return error("Unexpected end of input");
-        }
-        return error("Expected " + expected);
-    }
-
-    private IOException error(String message) {
-        return new IOException(message + " at " + line + ":" + column);
-    }
-
-    private static boolean isWhiteSpace(int ch) {
-        return ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r';
-    }
-
-    private static boolean isDigit(int ch) {
-        return ch >= '0' && ch <= '9';
-    }
-
-    private static boolean isHexDigit(int ch) {
-        return ch >= '0' && ch <= '9' || ch >= 'a' && ch <= 'f' || ch >= 'A' && ch <= 'F';
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/0748a4b4/features/core/src/main/java/org/apache/karaf/features/internal/util/JsonWriter.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/util/JsonWriter.java b/features/core/src/main/java/org/apache/karaf/features/internal/util/JsonWriter.java
deleted file mode 100644
index 71c4b9f..0000000
--- a/features/core/src/main/java/org/apache/karaf/features/internal/util/JsonWriter.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.karaf.features.internal.util;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Map;
-
-/**
- */
-public final class JsonWriter {
-
-    private JsonWriter() {
-    }
-
-    public static void write(OutputStream stream, Object value) throws IOException {
-        write(stream, value, false);
-    }
-
-    public static void write(OutputStream stream, Object value, boolean format) throws IOException {
-        Writer writer = new OutputStreamWriter(stream);
-        write(writer, value, format);
-        writer.flush();
-    }
-
-    public static void write(Writer writer, Object value) throws IOException {
-        write(writer, value, false);
-    }
-
-    public static void write(Writer writer, Object value, boolean format) throws IOException {
-        int indent = format ? 0 : -1;
-        write(writer, value, indent);
-    }
-
-    @SuppressWarnings("rawtypes")
-    private static void write(Writer writer, Object value, int indent) throws IOException {
-        if (value instanceof Map) {
-            writeObject(writer, (Map) value, indent);
-        } else if (value instanceof Collection) {
-            writeArray(writer, (Collection) value, indent);
-        } else if (value instanceof Number) {
-            writeNumber(writer, (Number) value);
-        } else if (value instanceof String) {
-            writeString(writer, (String) value);
-        } else if (value instanceof Boolean) {
-            writeBoolean(writer, (Boolean) value);
-        } else if (value == null) {
-            writeNull(writer);
-        } else {
-            throw new IllegalArgumentException("Unsupported value: " + value);
-        }
-    }
-
-    @SuppressWarnings("rawtypes")
-    private static void writeObject(Writer writer, Map<?, ?> value, int indent) throws IOException {
-        writer.append('{');
-        boolean first = true;
-        for (Map.Entry entry : value.entrySet()) {
-            if (!first) {
-                writer.append(',');
-            } else {
-                first = false;
-            }
-            if (indent >= 0) {
-                indent(writer, indent + 1);
-            }
-            writeString(writer, (String) entry.getKey());
-            if (indent >= 0) {
-                writer.append(' ');
-            }
-            writer.append(':');
-            if (indent >= 0) {
-                writer.append(' ');
-            }
-            write(writer, entry.getValue(), indent >= 0 ? indent + 1 : -1);
-        }
-        if (indent >= 0) {
-            indent(writer, indent);
-        }
-        writer.append('}');
-    }
-
-    private static void writeString(Writer writer, String value) throws IOException {
-        writer.append('"');
-        for (int i = 0; i < value.length(); i++) {
-            char c = value.charAt(i);
-            switch (c) {
-            case '\"':
-                writer.append("\\\"");
-                break;
-            case '\\':
-                writer.append("\\\\");
-                break;
-            case '\b':
-                writer.append("\\b");
-                break;
-            case '\f':
-                writer.append("\\f");
-                break;
-            case '\n':
-                writer.append("\\n");
-                break;
-            case '\r':
-                writer.append("\\r");
-                break;
-            case '\t':
-                writer.append("\\t");
-                break;
-            default:
-                if (c < ' ' || (c >= '\u0080' && c < '\u00a0') || (c >= '\u2000' && c < '\u2100')) {
-                    String s = Integer.toHexString(c);
-                    writer.append('\\');
-                    writer.append('u');
-                    for (int j = s.length(); j < 4; j++) {
-                        writer.append('0');
-                    }
-                    writer.append(s);
-                } else {
-                    writer.append(c);
-                }
-                break;
-            }
-        }
-        writer.append('"');
-    }
-
-    private static void writeNumber(Writer writer, Number value) throws IOException {
-        writer.append(value.toString());
-    }
-
-    private static void writeBoolean(Writer writer, Boolean value) throws IOException {
-        writer.append(Boolean.toString(value));
-    }
-
-    private static void writeArray(Writer writer, Collection<?> value, int indent) throws IOException {
-        writer.append('[');
-        boolean first = true;
-        for (Object obj : value) {
-            if (!first) {
-                writer.append(',');
-            } else {
-                first = false;
-            }
-            if (indent >= 0) {
-                indent(writer, indent + 1);
-            }
-            write(writer, obj, indent + 1);
-        }
-        if (indent >= 0) {
-            indent(writer, indent);
-        }
-        writer.append(']');
-    }
-
-    private static void writeNull(Writer writer) throws IOException {
-        writer.append("null");
-    }
-
-    static char[] INDENT;
-    static {
-        INDENT = new char[1];
-        Arrays.fill(INDENT, '\t');
-    }
-
-    private static void indent(Writer writer, int indent) throws IOException {
-        writer.write("\n");
-        while (indent > INDENT.length) {
-            char[] a = new char[INDENT.length * 2];
-            Arrays.fill(a, '\t');
-            INDENT = a;
-        }
-        writer.write(INDENT, 0, indent);
-    }
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/0748a4b4/jms/core/pom.xml
----------------------------------------------------------------------
diff --git a/jms/core/pom.xml b/jms/core/pom.xml
index 22da830..8d2d485 100644
--- a/jms/core/pom.xml
+++ b/jms/core/pom.xml
@@ -111,7 +111,8 @@
                             org.apache.karaf.jms.command.completers,
                             org.apache.karaf.jms.internal,
                             org.apache.karaf.jms.internal.osgi,
-                            org.apache.karaf.util
+                            org.apache.karaf.util,
+                            org.apache.karaf.util.json
                         </Private-Package>
                     </instructions>
                 </configuration>

http://git-wip-us.apache.org/repos/asf/karaf/blob/0748a4b4/jms/core/src/main/java/org/apache/karaf/jms/internal/ArtemisDestinationSourceFactory.java
----------------------------------------------------------------------
diff --git a/jms/core/src/main/java/org/apache/karaf/jms/internal/ArtemisDestinationSourceFactory.java b/jms/core/src/main/java/org/apache/karaf/jms/internal/ArtemisDestinationSourceFactory.java
index 3659a23..b3ea458 100644
--- a/jms/core/src/main/java/org/apache/karaf/jms/internal/ArtemisDestinationSourceFactory.java
+++ b/jms/core/src/main/java/org/apache/karaf/jms/internal/ArtemisDestinationSourceFactory.java
@@ -16,6 +16,8 @@
  */
 package org.apache.karaf.jms.internal;
 
+import org.apache.karaf.util.json.JsonReader;
+
 import javax.jms.Connection;
 import javax.jms.JMSException;
 import javax.jms.Message;

http://git-wip-us.apache.org/repos/asf/karaf/blob/0748a4b4/jms/core/src/main/java/org/apache/karaf/jms/internal/JsonReader.java
----------------------------------------------------------------------
diff --git a/jms/core/src/main/java/org/apache/karaf/jms/internal/JsonReader.java b/jms/core/src/main/java/org/apache/karaf/jms/internal/JsonReader.java
deleted file mode 100644
index 6c08a19..0000000
--- a/jms/core/src/main/java/org/apache/karaf/jms/internal/JsonReader.java
+++ /dev/null
@@ -1,352 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.karaf.jms.internal;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- */
-public final class JsonReader {
-
-    //
-    // Implementation
-    //
-
-    private final Reader reader;
-    private final StringBuilder recorder;
-    private int current;
-    private int line = 1;
-    private int column;
-
-    private JsonReader(Reader reader) {
-        this.reader = reader;
-        recorder = new StringBuilder();
-    }
-
-    public static Object read(Reader reader) throws IOException {
-        return new JsonReader(reader).parse();
-    }
-
-    public static Object read(InputStream is) throws IOException {
-        return new JsonReader(new InputStreamReader(is)).parse();
-    }
-
-    private Object parse() throws IOException {
-        read();
-        skipWhiteSpace();
-        Object result = readValue();
-        skipWhiteSpace();
-        if (!endOfText()) {
-            throw error("Unexpected character");
-        }
-        return result;
-    }
-
-    private Object readValue() throws IOException {
-        switch (current) {
-        case 'n':
-            return readNull();
-        case 't':
-            return readTrue();
-        case 'f':
-            return readFalse();
-        case '"':
-            return readString();
-        case '[':
-            return readArray();
-        case '{':
-            return readObject();
-        case '-':
-        case '0':
-        case '1':
-        case '2':
-        case '3':
-        case '4':
-        case '5':
-        case '6':
-        case '7':
-        case '8':
-        case '9':
-            return readNumber();
-        default:
-            throw expected("value");
-        }
-    }
-
-    private Collection<?> readArray() throws IOException {
-        read();
-        Collection<Object> array = new ArrayList<>();
-        skipWhiteSpace();
-        if (readChar(']')) {
-            return array;
-        }
-        do {
-            skipWhiteSpace();
-            array.add(readValue());
-            skipWhiteSpace();
-        } while (readChar(','));
-        if (!readChar(']')) {
-            throw expected("',' or ']'");
-        }
-        return array;
-    }
-
-    private Map<String, Object> readObject() throws IOException {
-        read();
-        Map<String, Object> object = new HashMap<>();
-        skipWhiteSpace();
-        if (readChar('}')) {
-            return object;
-        }
-        do {
-            skipWhiteSpace();
-            String name = readName();
-            skipWhiteSpace();
-            if (!readChar(':')) {
-                throw expected("':'");
-            }
-            skipWhiteSpace();
-            object.put(name, readValue());
-            skipWhiteSpace();
-        } while (readChar(','));
-        if (!readChar('}')) {
-            throw expected("',' or '}'");
-        }
-        return object;
-    }
-
-    private Object readNull() throws IOException {
-        read();
-        readRequiredChar('u');
-        readRequiredChar('l');
-        readRequiredChar('l');
-        return null;
-    }
-
-    private Boolean readTrue() throws IOException {
-        read();
-        readRequiredChar('r');
-        readRequiredChar('u');
-        readRequiredChar('e');
-        return Boolean.TRUE;
-    }
-
-    private Boolean readFalse() throws IOException {
-        read();
-        readRequiredChar('a');
-        readRequiredChar('l');
-        readRequiredChar('s');
-        readRequiredChar('e');
-        return Boolean.FALSE;
-    }
-
-    private void readRequiredChar(char ch) throws IOException {
-        if (!readChar(ch)) {
-            throw expected("'" + ch + "'");
-        }
-    }
-
-    private String readString() throws IOException {
-        read();
-        recorder.setLength(0);
-        while (current != '"') {
-            if (current == '\\') {
-                readEscape();
-            } else if (current < 0x20) {
-                throw expected("valid string character");
-            } else {
-                recorder.append((char) current);
-                read();
-            }
-        }
-        read();
-        return recorder.toString();
-    }
-
-    private void readEscape() throws IOException {
-        read();
-        switch (current) {
-        case '"':
-        case '/':
-        case '\\':
-            recorder.append((char) current);
-            break;
-        case 'b':
-            recorder.append('\b');
-            break;
-        case 'f':
-            recorder.append('\f');
-            break;
-        case 'n':
-            recorder.append('\n');
-            break;
-        case 'r':
-            recorder.append('\r');
-            break;
-        case 't':
-            recorder.append('\t');
-            break;
-        case 'u':
-            char[] hexChars = new char[4];
-            for (int i = 0; i < 4; i++) {
-                read();
-                if (!isHexDigit(current)) {
-                    throw expected("hexadecimal digit");
-                }
-                hexChars[i] = (char) current;
-            }
-            recorder.append((char) Integer.parseInt(String.valueOf(hexChars), 16));
-            break;
-        default:
-            throw expected("valid escape sequence");
-        }
-        read();
-    }
-
-    private Number readNumber() throws IOException {
-        recorder.setLength(0);
-        readAndAppendChar('-');
-        int firstDigit = current;
-        if (!readAndAppendDigit()) {
-            throw expected("digit");
-        }
-        if (firstDigit != '0') {
-            while (readAndAppendDigit()) {
-                // Do nothing
-            }
-        }
-        readFraction();
-        readExponent();
-        return Double.parseDouble(recorder.toString());
-    }
-
-    private boolean readFraction() throws IOException {
-        if (!readAndAppendChar('.')) {
-            return false;
-        }
-        if (!readAndAppendDigit()) {
-            throw expected("digit");
-        }
-        while (readAndAppendDigit()) {
-            // Do nothing
-        }
-        return true;
-    }
-
-    private boolean readExponent() throws IOException {
-        if (!readAndAppendChar('e') && !readAndAppendChar('E')) {
-            return false;
-        }
-        if (!readAndAppendChar('+')) {
-            readAndAppendChar('-');
-        }
-        if (!readAndAppendDigit()) {
-            throw expected("digit");
-        }
-        while (readAndAppendDigit()) {
-            // Do nothing
-        }
-        return true;
-    }
-
-    private String readName() throws IOException {
-        if (current != '"') {
-            throw expected("name");
-        }
-        readString();
-        return recorder.toString();
-    }
-
-    private boolean readAndAppendChar(char ch) throws IOException {
-        if (current != ch) {
-            return false;
-        }
-        recorder.append(ch);
-        read();
-        return true;
-    }
-
-    private boolean readChar(char ch) throws IOException {
-        if (current != ch) {
-            return false;
-        }
-        read();
-        return true;
-    }
-
-    private boolean readAndAppendDigit() throws IOException {
-        if (!isDigit(current)) {
-            return false;
-        }
-        recorder.append((char) current);
-        read();
-        return true;
-    }
-
-    private void skipWhiteSpace() throws IOException {
-        while (isWhiteSpace(current) && !endOfText()) {
-            read();
-        }
-    }
-
-    private void read() throws IOException {
-        if (endOfText()) {
-            throw error("Unexpected end of input");
-        }
-        column++;
-        if (current == '\n') {
-            line++;
-            column = 0;
-        }
-        current = reader.read();
-    }
-
-    private boolean endOfText() {
-        return current == -1;
-    }
-
-    private IOException expected(String expected) {
-        if (endOfText()) {
-            return error("Unexpected end of input");
-        }
-        return error("Expected " + expected);
-    }
-
-    private IOException error(String message) {
-        return new IOException(message + " at " + line + ":" + column);
-    }
-
-    private static boolean isWhiteSpace(int ch) {
-        return ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r';
-    }
-
-    private static boolean isDigit(int ch) {
-        return ch >= '0' && ch <= '9';
-    }
-
-    private static boolean isHexDigit(int ch) {
-        return ch >= '0' && ch <= '9' || ch >= 'a' && ch <= 'f' || ch >= 'A' && ch <= 'F';
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/0748a4b4/util/src/main/java/org/apache/karaf/util/json/JsonReader.java
----------------------------------------------------------------------
diff --git a/util/src/main/java/org/apache/karaf/util/json/JsonReader.java b/util/src/main/java/org/apache/karaf/util/json/JsonReader.java
new file mode 100644
index 0000000..b629eaf
--- /dev/null
+++ b/util/src/main/java/org/apache/karaf/util/json/JsonReader.java
@@ -0,0 +1,352 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.util.json;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ */
+public final class JsonReader {
+
+    //
+    // Implementation
+    //
+
+    private final Reader reader;
+    private final StringBuilder recorder;
+    private int current;
+    private int line = 1;
+    private int column;
+
+    private JsonReader(Reader reader) {
+        this.reader = reader;
+        recorder = new StringBuilder();
+    }
+
+    public static Object read(Reader reader) throws IOException {
+        return new JsonReader(reader).parse();
+    }
+
+    public static Object read(InputStream is) throws IOException {
+        return new JsonReader(new InputStreamReader(is)).parse();
+    }
+
+    private Object parse() throws IOException {
+        read();
+        skipWhiteSpace();
+        Object result = readValue();
+        skipWhiteSpace();
+        if (!endOfText()) {
+            throw error("Unexpected character");
+        }
+        return result;
+    }
+
+    private Object readValue() throws IOException {
+        switch (current) {
+        case 'n':
+            return readNull();
+        case 't':
+            return readTrue();
+        case 'f':
+            return readFalse();
+        case '"':
+            return readString();
+        case '[':
+            return readArray();
+        case '{':
+            return readObject();
+        case '-':
+        case '0':
+        case '1':
+        case '2':
+        case '3':
+        case '4':
+        case '5':
+        case '6':
+        case '7':
+        case '8':
+        case '9':
+            return readNumber();
+        default:
+            throw expected("value");
+        }
+    }
+
+    private Collection<?> readArray() throws IOException {
+        read();
+        Collection<Object> array = new ArrayList<>();
+        skipWhiteSpace();
+        if (readChar(']')) {
+            return array;
+        }
+        do {
+            skipWhiteSpace();
+            array.add(readValue());
+            skipWhiteSpace();
+        } while (readChar(','));
+        if (!readChar(']')) {
+            throw expected("',' or ']'");
+        }
+        return array;
+    }
+
+    private Map<String, Object> readObject() throws IOException {
+        read();
+        Map<String, Object> object = new HashMap<>();
+        skipWhiteSpace();
+        if (readChar('}')) {
+            return object;
+        }
+        do {
+            skipWhiteSpace();
+            String name = readName();
+            skipWhiteSpace();
+            if (!readChar(':')) {
+                throw expected("':'");
+            }
+            skipWhiteSpace();
+            object.put(name, readValue());
+            skipWhiteSpace();
+        } while (readChar(','));
+        if (!readChar('}')) {
+            throw expected("',' or '}'");
+        }
+        return object;
+    }
+
+    private Object readNull() throws IOException {
+        read();
+        readRequiredChar('u');
+        readRequiredChar('l');
+        readRequiredChar('l');
+        return null;
+    }
+
+    private Boolean readTrue() throws IOException {
+        read();
+        readRequiredChar('r');
+        readRequiredChar('u');
+        readRequiredChar('e');
+        return Boolean.TRUE;
+    }
+
+    private Boolean readFalse() throws IOException {
+        read();
+        readRequiredChar('a');
+        readRequiredChar('l');
+        readRequiredChar('s');
+        readRequiredChar('e');
+        return Boolean.FALSE;
+    }
+
+    private void readRequiredChar(char ch) throws IOException {
+        if (!readChar(ch)) {
+            throw expected("'" + ch + "'");
+        }
+    }
+
+    private String readString() throws IOException {
+        read();
+        recorder.setLength(0);
+        while (current != '"') {
+            if (current == '\\') {
+                readEscape();
+            } else if (current < 0x20) {
+                throw expected("valid string character");
+            } else {
+                recorder.append((char) current);
+                read();
+            }
+        }
+        read();
+        return recorder.toString();
+    }
+
+    private void readEscape() throws IOException {
+        read();
+        switch (current) {
+        case '"':
+        case '/':
+        case '\\':
+            recorder.append((char) current);
+            break;
+        case 'b':
+            recorder.append('\b');
+            break;
+        case 'f':
+            recorder.append('\f');
+            break;
+        case 'n':
+            recorder.append('\n');
+            break;
+        case 'r':
+            recorder.append('\r');
+            break;
+        case 't':
+            recorder.append('\t');
+            break;
+        case 'u':
+            char[] hexChars = new char[4];
+            for (int i = 0; i < 4; i++) {
+                read();
+                if (!isHexDigit(current)) {
+                    throw expected("hexadecimal digit");
+                }
+                hexChars[i] = (char) current;
+            }
+            recorder.append((char) Integer.parseInt(String.valueOf(hexChars), 16));
+            break;
+        default:
+            throw expected("valid escape sequence");
+        }
+        read();
+    }
+
+    private Number readNumber() throws IOException {
+        recorder.setLength(0);
+        readAndAppendChar('-');
+        int firstDigit = current;
+        if (!readAndAppendDigit()) {
+            throw expected("digit");
+        }
+        if (firstDigit != '0') {
+            while (readAndAppendDigit()) {
+                // Do nothing
+            }
+        }
+        readFraction();
+        readExponent();
+        return Double.parseDouble(recorder.toString());
+    }
+
+    private boolean readFraction() throws IOException {
+        if (!readAndAppendChar('.')) {
+            return false;
+        }
+        if (!readAndAppendDigit()) {
+            throw expected("digit");
+        }
+        while (readAndAppendDigit()) {
+            // Do nothing
+        }
+        return true;
+    }
+
+    private boolean readExponent() throws IOException {
+        if (!readAndAppendChar('e') && !readAndAppendChar('E')) {
+            return false;
+        }
+        if (!readAndAppendChar('+')) {
+            readAndAppendChar('-');
+        }
+        if (!readAndAppendDigit()) {
+            throw expected("digit");
+        }
+        while (readAndAppendDigit()) {
+            // Do nothing
+        }
+        return true;
+    }
+
+    private String readName() throws IOException {
+        if (current != '"') {
+            throw expected("name");
+        }
+        readString();
+        return recorder.toString();
+    }
+
+    private boolean readAndAppendChar(char ch) throws IOException {
+        if (current != ch) {
+            return false;
+        }
+        recorder.append(ch);
+        read();
+        return true;
+    }
+
+    private boolean readChar(char ch) throws IOException {
+        if (current != ch) {
+            return false;
+        }
+        read();
+        return true;
+    }
+
+    private boolean readAndAppendDigit() throws IOException {
+        if (!isDigit(current)) {
+            return false;
+        }
+        recorder.append((char) current);
+        read();
+        return true;
+    }
+
+    private void skipWhiteSpace() throws IOException {
+        while (isWhiteSpace(current) && !endOfText()) {
+            read();
+        }
+    }
+
+    private void read() throws IOException {
+        if (endOfText()) {
+            throw error("Unexpected end of input");
+        }
+        column++;
+        if (current == '\n') {
+            line++;
+            column = 0;
+        }
+        current = reader.read();
+    }
+
+    private boolean endOfText() {
+        return current == -1;
+    }
+
+    private IOException expected(String expected) {
+        if (endOfText()) {
+            return error("Unexpected end of input");
+        }
+        return error("Expected " + expected);
+    }
+
+    private IOException error(String message) {
+        return new IOException(message + " at " + line + ":" + column);
+    }
+
+    private static boolean isWhiteSpace(int ch) {
+        return ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r';
+    }
+
+    private static boolean isDigit(int ch) {
+        return ch >= '0' && ch <= '9';
+    }
+
+    private static boolean isHexDigit(int ch) {
+        return ch >= '0' && ch <= '9' || ch >= 'a' && ch <= 'f' || ch >= 'A' && ch <= 'F';
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/karaf/blob/0748a4b4/util/src/main/java/org/apache/karaf/util/json/JsonWriter.java
----------------------------------------------------------------------
diff --git a/util/src/main/java/org/apache/karaf/util/json/JsonWriter.java b/util/src/main/java/org/apache/karaf/util/json/JsonWriter.java
new file mode 100644
index 0000000..35c8f12
--- /dev/null
+++ b/util/src/main/java/org/apache/karaf/util/json/JsonWriter.java
@@ -0,0 +1,192 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.util.json;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ */
+public final class JsonWriter {
+
+    private JsonWriter() {
+    }
+
+    public static void write(OutputStream stream, Object value) throws IOException {
+        write(stream, value, false);
+    }
+
+    public static void write(OutputStream stream, Object value, boolean format) throws IOException {
+        Writer writer = new OutputStreamWriter(stream);
+        write(writer, value, format);
+        writer.flush();
+    }
+
+    public static void write(Writer writer, Object value) throws IOException {
+        write(writer, value, false);
+    }
+
+    public static void write(Writer writer, Object value, boolean format) throws IOException {
+        int indent = format ? 0 : -1;
+        write(writer, value, indent);
+    }
+
+    @SuppressWarnings("rawtypes")
+    private static void write(Writer writer, Object value, int indent) throws IOException {
+        if (value instanceof Map) {
+            writeObject(writer, (Map) value, indent);
+        } else if (value instanceof Collection) {
+            writeArray(writer, (Collection) value, indent);
+        } else if (value instanceof Number) {
+            writeNumber(writer, (Number) value);
+        } else if (value instanceof String) {
+            writeString(writer, (String) value);
+        } else if (value instanceof Boolean) {
+            writeBoolean(writer, (Boolean) value);
+        } else if (value == null) {
+            writeNull(writer);
+        } else {
+            throw new IllegalArgumentException("Unsupported value: " + value);
+        }
+    }
+
+    @SuppressWarnings("rawtypes")
+    private static void writeObject(Writer writer, Map<?, ?> value, int indent) throws IOException {
+        writer.append('{');
+        boolean first = true;
+        for (Map.Entry entry : value.entrySet()) {
+            if (!first) {
+                writer.append(',');
+            } else {
+                first = false;
+            }
+            if (indent >= 0) {
+                indent(writer, indent + 1);
+            }
+            writeString(writer, (String) entry.getKey());
+            if (indent >= 0) {
+                writer.append(' ');
+            }
+            writer.append(':');
+            if (indent >= 0) {
+                writer.append(' ');
+            }
+            write(writer, entry.getValue(), indent >= 0 ? indent + 1 : -1);
+        }
+        if (indent >= 0) {
+            indent(writer, indent);
+        }
+        writer.append('}');
+    }
+
+    private static void writeString(Writer writer, String value) throws IOException {
+        writer.append('"');
+        for (int i = 0; i < value.length(); i++) {
+            char c = value.charAt(i);
+            switch (c) {
+            case '\"':
+                writer.append("\\\"");
+                break;
+            case '\\':
+                writer.append("\\\\");
+                break;
+            case '\b':
+                writer.append("\\b");
+                break;
+            case '\f':
+                writer.append("\\f");
+                break;
+            case '\n':
+                writer.append("\\n");
+                break;
+            case '\r':
+                writer.append("\\r");
+                break;
+            case '\t':
+                writer.append("\\t");
+                break;
+            default:
+                if (c < ' ' || (c >= '\u0080' && c < '\u00a0') || (c >= '\u2000' && c < '\u2100')) {
+                    String s = Integer.toHexString(c);
+                    writer.append('\\');
+                    writer.append('u');
+                    for (int j = s.length(); j < 4; j++) {
+                        writer.append('0');
+                    }
+                    writer.append(s);
+                } else {
+                    writer.append(c);
+                }
+                break;
+            }
+        }
+        writer.append('"');
+    }
+
+    private static void writeNumber(Writer writer, Number value) throws IOException {
+        writer.append(value.toString());
+    }
+
+    private static void writeBoolean(Writer writer, Boolean value) throws IOException {
+        writer.append(Boolean.toString(value));
+    }
+
+    private static void writeArray(Writer writer, Collection<?> value, int indent) throws IOException {
+        writer.append('[');
+        boolean first = true;
+        for (Object obj : value) {
+            if (!first) {
+                writer.append(',');
+            } else {
+                first = false;
+            }
+            if (indent >= 0) {
+                indent(writer, indent + 1);
+            }
+            write(writer, obj, indent + 1);
+        }
+        if (indent >= 0) {
+            indent(writer, indent);
+        }
+        writer.append(']');
+    }
+
+    private static void writeNull(Writer writer) throws IOException {
+        writer.append("null");
+    }
+
+    static char[] INDENT;
+    static {
+        INDENT = new char[1];
+        Arrays.fill(INDENT, '\t');
+    }
+
+    private static void indent(Writer writer, int indent) throws IOException {
+        writer.write("\n");
+        while (indent > INDENT.length) {
+            char[] a = new char[INDENT.length * 2];
+            Arrays.fill(a, '\t');
+            INDENT = a;
+        }
+        writer.write(INDENT, 0, indent);
+    }
+}


[2/5] karaf git commit: [KARAF-5175] Provide a debugs option for the karaf script to make it easier to debug karaf startup sequence

Posted by gn...@apache.org.
[KARAF-5175] Provide a debugs option for the karaf script to make it easier to debug karaf startup sequence

Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/ae96ea65
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/ae96ea65
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/ae96ea65

Branch: refs/heads/master
Commit: ae96ea6574095dd013f9771b56aa1c7ac097ae33
Parents: 07a6b9d
Author: Guillaume Nodet <gn...@apache.org>
Authored: Fri Jun 2 10:42:16 2017 +0200
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Fri Jun 2 13:07:37 2017 +0200

----------------------------------------------------------------------
 .../base/src/main/filtered-resources/resources/bin/inc  |  1 +
 .../src/main/filtered-resources/resources/bin/karaf     | 12 +++++++++++-
 .../src/main/filtered-resources/resources/bin/karaf.bat |  8 ++++++++
 3 files changed, 20 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/ae96ea65/assemblies/features/base/src/main/filtered-resources/resources/bin/inc
----------------------------------------------------------------------
diff --git a/assemblies/features/base/src/main/filtered-resources/resources/bin/inc b/assemblies/features/base/src/main/filtered-resources/resources/bin/inc
index a79841b..99302be 100644
--- a/assemblies/features/base/src/main/filtered-resources/resources/bin/inc
+++ b/assemblies/features/base/src/main/filtered-resources/resources/bin/inc
@@ -290,6 +290,7 @@ setupDefaults() {
         JAVA_DEBUG_PORT="${DEFAULT_JAVA_DEBUG_PORT}"
     fi
     DEFAULT_JAVA_DEBUG_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=${JAVA_DEBUG_PORT}"
+    DEFAULT_JAVA_DEBUGS_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=${JAVA_DEBUG_PORT}"
 
     ##
     ## TODO: Move to conf/profiler/yourkit.{sh|cmd}

http://git-wip-us.apache.org/repos/asf/karaf/blob/ae96ea65/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf
----------------------------------------------------------------------
diff --git a/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf b/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf
index 5b06aa9..06cf35f 100755
--- a/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf
+++ b/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf
@@ -164,6 +164,7 @@ run() {
     fi
 
     debug=false
+    debugs=false
     nodebug=false
     while [ "${1}" != "" ]; do
         case "${1}" in
@@ -175,6 +176,11 @@ run() {
                 debug=true
                 shift
                 ;;
+            'debugs')
+                debug=true
+                debugs=true
+                shift
+                ;;
             'status')
                 MAIN=org.apache.karaf.main.Status
                 CHECK_ROOT_INSTANCE_RUNNING=false
@@ -226,7 +232,11 @@ run() {
     fi
     if ${debug}; then
         if [ "x${JAVA_DEBUG_OPTS}" = "x" ]; then
-            JAVA_DEBUG_OPTS="${DEFAULT_JAVA_DEBUG_OPTS}"
+            if ${debugs}; then
+                JAVA_DEBUG_OPTS="${DEFAULT_JAVA_DEBUGS_OPTS}"
+            else
+                JAVA_DEBUG_OPTS="${DEFAULT_JAVA_DEBUG_OPTS}"
+            fi
         fi
         JAVA_OPTS="${JAVA_DEBUG_OPTS} ${JAVA_OPTS}"
     fi

http://git-wip-us.apache.org/repos/asf/karaf/blob/ae96ea65/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf.bat
----------------------------------------------------------------------
diff --git a/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf.bat b/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf.bat
index 91321b9..23c08a1 100644
--- a/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf.bat
+++ b/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf.bat
@@ -99,6 +99,7 @@ set LOCAL_CLASSPATH=%CLASSPATH%
 
 set CLASSPATH=%LOCAL_CLASSPATH%;%KARAF_BASE%\conf
 set DEFAULT_JAVA_DEBUG_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
+set DEFAULT_JAVA_DEBUGS_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
 
 if "%LOCAL_CLASSPATH%" == "" goto :KARAF_CLASSPATH_EMPTY
     set CLASSPATH=%LOCAL_CLASSPATH%;%KARAF_BASE%\conf
@@ -308,6 +309,7 @@ if "%KARAF_PROFILER%" == "" goto :RUN
     if "%1" == "client" goto :EXECUTE_CLIENT
     if "%1" == "clean" goto :EXECUTE_CLEAN
     if "%1" == "debug" goto :EXECUTE_DEBUG
+    if "%1" == "debugs" goto :EXECUTE_DEBUGS
     goto :EXECUTE
 
 :EXECUTE_STOP
@@ -360,6 +362,12 @@ if "%KARAF_PROFILER%" == "" goto :RUN
     shift
     goto :RUN_LOOP
 
+:EXECUTE_DEBUGS
+    if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUGS_OPTS%
+    set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS%
+    shift
+    goto :RUN_LOOP
+
 :EXECUTE
     SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8
     rem Execute the Java Virtual Machine


[3/5] karaf git commit: Various code cleanup

Posted by gn...@apache.org.
http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCacheTest.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCacheTest.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCacheTest.java
index d998cf6..87dde8f 100644
--- a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCacheTest.java
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCacheTest.java
@@ -73,7 +73,7 @@ public class LdapCacheTest extends AbstractLdapTestUnit {
             FileInputStream inputStream = new FileInputStream(f);
             String content = IOUtils.toString(inputStream, "UTF-8");
             inputStream.close();
-            content = content.replaceAll("portno", "" + super.getLdapServer().getPort());
+            content = content.replaceAll("portno", "" + getLdapServer().getPort());
 
             File f2 = new File(basedir + "/target/test-classes/org/apache/karaf/jaas/modules/ldap/ldap.properties");
             FileOutputStream outputStream = new FileOutputStream(f2);

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCaseInsensitiveDNTest.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCaseInsensitiveDNTest.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCaseInsensitiveDNTest.java
index ac5ba0e..e4d2035 100644
--- a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCaseInsensitiveDNTest.java
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCaseInsensitiveDNTest.java
@@ -67,7 +67,7 @@ public class LdapCaseInsensitiveDNTest extends LdapLoginModuleTest {
             FileInputStream inputStream = new FileInputStream(f);
             String content = IOUtils.toString(inputStream, "UTF-8");
             inputStream.close();
-            content = content.replaceAll("portno", "" + super.getLdapServer().getPort());
+            content = content.replaceAll("portno", "" + getLdapServer().getPort());
 
             File f2 = new File(basedir + "/target/test-classes/org/apache/karaf/jaas/modules/ldap/ldapCaseInsensitiveDN.properties");
             FileOutputStream outputStream = new FileOutputStream(f2);

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleTest.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleTest.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleTest.java
index a514283..e2c374a 100644
--- a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleTest.java
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleTest.java
@@ -74,7 +74,7 @@ public class LdapLoginModuleTest extends AbstractLdapTestUnit {
             FileInputStream inputStream = new FileInputStream(f);
             String content = IOUtils.toString(inputStream, "UTF-8");
             inputStream.close();
-            content = content.replaceAll("portno", "" + super.getLdapServer().getPort());
+            content = content.replaceAll("portno", "" + getLdapServer().getPort());
 
             File f2 = new File(basedir + "/target/test-classes/org/apache/karaf/jaas/modules/ldap/ldap.properties");
             FileOutputStream outputStream = new FileOutputStream(f2);

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleWithEscapesTest.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleWithEscapesTest.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleWithEscapesTest.java
index 017eb27..9dc2272 100644
--- a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleWithEscapesTest.java
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleWithEscapesTest.java
@@ -56,7 +56,7 @@ public class LdapLoginModuleWithEscapesTest extends LdapLoginModuleTest {
             FileInputStream inputStream = new FileInputStream(f);
             String content = IOUtils.toString(inputStream, "UTF-8");
             inputStream.close();
-            content = content.replaceAll("portno", "" + super.getLdapServer().getPort());
+            content = content.replaceAll("portno", "" + getLdapServer().getPort());
 
             File f2 = new File(basedir + "/target/test-classes/org/apache/karaf/jaas/modules/ldap/ldap.properties");
             FileOutputStream outputStream = new FileOutputStream(f2);

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapSpecialCharsInPasswordTest.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapSpecialCharsInPasswordTest.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapSpecialCharsInPasswordTest.java
index f02bc53..7f5a90a 100644
--- a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapSpecialCharsInPasswordTest.java
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapSpecialCharsInPasswordTest.java
@@ -65,7 +65,7 @@ public class LdapSpecialCharsInPasswordTest extends LdapLoginModuleTest {
             FileInputStream inputStream = new FileInputStream(f);
             String content = IOUtils.toString(inputStream, "UTF-8");
             inputStream.close();
-            content = content.replaceAll("portno", "" + super.getLdapServer().getPort());
+            content = content.replaceAll("portno", "" + getLdapServer().getPort());
 
             File f2 = new File(basedir + "/target/test-classes/org/apache/karaf/jaas/modules/ldap/ldap_special_char_in_password.properties");
             FileOutputStream outputStream = new FileOutputStream(f2);
@@ -86,7 +86,7 @@ public class LdapSpecialCharsInPasswordTest extends LdapLoginModuleTest {
     
     @Before
     public void changeAdminPassword() throws Exception {
-        LdapConnection connection = new LdapNetworkConnection( "localhost", super.getLdapServer().getPort() );
+        LdapConnection connection = new LdapNetworkConnection( "localhost", getLdapServer().getPort() );
         connection.bind( "uid=admin,ou=system", "secret");
         Dn adminDn = new Dn( "uid=admin,ou=system" );
         ModifyRequest modReq = new ModifyRequestImpl();
@@ -96,7 +96,7 @@ public class LdapSpecialCharsInPasswordTest extends LdapLoginModuleTest {
         connection.close();
         
         // check that we actually changed the admin connection password
-        connection = new LdapNetworkConnection( "localhost", super.getLdapServer().getPort() );
+        connection = new LdapNetworkConnection( "localhost", getLdapServer().getPort() );
         connection.bind( "uid=admin,ou=system", NEW_CONNECTION_PASSWORD);
         connection.close();
     }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jdbc/src/main/java/org/apache/karaf/jdbc/command/completers/SqlCompleter.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/karaf/jdbc/command/completers/SqlCompleter.java b/jdbc/src/main/java/org/apache/karaf/jdbc/command/completers/SqlCompleter.java
index eb3015d..75d8b2c 100644
--- a/jdbc/src/main/java/org/apache/karaf/jdbc/command/completers/SqlCompleter.java
+++ b/jdbc/src/main/java/org/apache/karaf/jdbc/command/completers/SqlCompleter.java
@@ -24,7 +24,6 @@ import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.apache.karaf.shell.api.console.CommandLine;
 import org.apache.karaf.shell.api.console.Completer;
 import org.apache.karaf.shell.api.console.Session;
-import org.apache.karaf.shell.support.completers.StringsCompleter;
 
 /**
  * Completer SQL

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jms/core/src/main/java/org/apache/karaf/jms/internal/JmsConnector.java
----------------------------------------------------------------------
diff --git a/jms/core/src/main/java/org/apache/karaf/jms/internal/JmsConnector.java b/jms/core/src/main/java/org/apache/karaf/jms/internal/JmsConnector.java
index 63ff95a..75c52ce 100644
--- a/jms/core/src/main/java/org/apache/karaf/jms/internal/JmsConnector.java
+++ b/jms/core/src/main/java/org/apache/karaf/jms/internal/JmsConnector.java
@@ -19,7 +19,6 @@ package org.apache.karaf.jms.internal;
 import java.io.Closeable;
 import java.io.IOException;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Comparator;
 
 import javax.jms.Connection;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jms/core/src/main/java/org/apache/karaf/jms/internal/osgi/Activator.java
----------------------------------------------------------------------
diff --git a/jms/core/src/main/java/org/apache/karaf/jms/internal/osgi/Activator.java b/jms/core/src/main/java/org/apache/karaf/jms/internal/osgi/Activator.java
index 863a092..1dd1c09 100644
--- a/jms/core/src/main/java/org/apache/karaf/jms/internal/osgi/Activator.java
+++ b/jms/core/src/main/java/org/apache/karaf/jms/internal/osgi/Activator.java
@@ -7,7 +7,6 @@ import org.apache.karaf.shell.api.console.CommandLoggingFilter;
 import org.apache.karaf.shell.support.RegexCommandLoggingFilter;
 import org.apache.karaf.util.tracker.BaseActivator;
 import org.apache.karaf.util.tracker.annotation.ProvideService;
-import org.apache.karaf.util.tracker.annotation.RequireService;
 import org.apache.karaf.util.tracker.annotation.Services;
 
 @Services(

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jms/pool/src/main/java/org/apache/karaf/jms/pool/internal/PooledSession.java
----------------------------------------------------------------------
diff --git a/jms/pool/src/main/java/org/apache/karaf/jms/pool/internal/PooledSession.java b/jms/pool/src/main/java/org/apache/karaf/jms/pool/internal/PooledSession.java
index fe72394..941732e 100644
--- a/jms/pool/src/main/java/org/apache/karaf/jms/pool/internal/PooledSession.java
+++ b/jms/pool/src/main/java/org/apache/karaf/jms/pool/internal/PooledSession.java
@@ -46,7 +46,6 @@ import javax.jms.TopicSubscriber;
 import javax.jms.XASession;
 import javax.transaction.xa.XAResource;
 import java.io.Serializable;
-import java.util.Iterator;
 import java.util.concurrent.CopyOnWriteArrayList;
 
 public class PooledSession implements Session, TopicSession, QueueSession, XASession {

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jndi/src/main/java/org/apache/karaf/jndi/JndiMBean.java
----------------------------------------------------------------------
diff --git a/jndi/src/main/java/org/apache/karaf/jndi/JndiMBean.java b/jndi/src/main/java/org/apache/karaf/jndi/JndiMBean.java
index 2a4f4f9..ff5c619 100644
--- a/jndi/src/main/java/org/apache/karaf/jndi/JndiMBean.java
+++ b/jndi/src/main/java/org/apache/karaf/jndi/JndiMBean.java
@@ -31,7 +31,7 @@ public interface JndiMBean {
      * @return The MBean attribute containing the {@link Map} of names/class names.
      * @throws MBeanException If the MBean fails.
      */
-    public Map<String, String> getNames() throws MBeanException;
+    Map<String, String> getNames() throws MBeanException;
 
     /**
      * Get a list of JNDI sub-contexts (as attribute).
@@ -39,7 +39,7 @@ public interface JndiMBean {
      * @return The MBean attribute containing the {@link List} of sub-contexts.
      * @throws MBeanException If the MBean fails.
      */
-    public List<String> getContexts() throws MBeanException;
+    List<String> getContexts() throws MBeanException;
 
     /**
      * Get a {@link Map} of JNDI names/class names children of a given base context.
@@ -48,7 +48,7 @@ public interface JndiMBean {
      * @return The {@link Map} of names/class names.
      * @throws MBeanException If the MBean fails.
      */
-    public Map<String, String> getNames(String context) throws MBeanException;
+    Map<String, String> getNames(String context) throws MBeanException;
 
     /**
      * Get a {@link List} of JNDI sub-contexts children of a given base context.
@@ -57,7 +57,7 @@ public interface JndiMBean {
      * @return The {@link List} of sub-contexts.
      * @throws MBeanException If the MBean fails.
      */
-    public List<String> getContexts(String context) throws MBeanException;
+    List<String> getContexts(String context) throws MBeanException;
 
     /**
      * Create a JNDI sub-context.
@@ -65,7 +65,7 @@ public interface JndiMBean {
      * @param context The JNDI sub-context name.
      * @throws MBeanException If the MBean fails.
      */
-    public void create(String context) throws MBeanException;
+    void create(String context) throws MBeanException;
 
     /**
      * Delete a JNDI sub-context.
@@ -73,7 +73,7 @@ public interface JndiMBean {
      * @param context The JNDI sub-context name.
      * @throws MBeanException If the MBean fails.
      */
-    public void delete(String context) throws MBeanException;
+    void delete(String context) throws MBeanException;
 
     /**
      * Create another JNDI name (alias) for a given one.
@@ -82,7 +82,7 @@ public interface JndiMBean {
      * @param alias The JNDI alias name.
      * @throws MBeanException If the MBean fails.
      */
-    public void alias(String name, String alias) throws MBeanException;
+    void alias(String name, String alias) throws MBeanException;
 
     /**
      * Bind an OSGi service with a JNDI name.
@@ -91,7 +91,7 @@ public interface JndiMBean {
      * @param name The JNDI name.
      * @throws MBeanException If the MBean fails.
      */
-    public void bind(Long serviceId, String name) throws MBeanException;
+    void bind(Long serviceId, String name) throws MBeanException;
 
     /**
      * Unbind a given JNDI name.
@@ -99,6 +99,6 @@ public interface JndiMBean {
      * @param name The JNDI name.
      * @throws MBeanException If the MBean fails.
      */
-    public void unbind(String name) throws MBeanException;
+    void unbind(String name) throws MBeanException;
 
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/jndi/src/main/java/org/apache/karaf/jndi/internal/JndiServiceImpl.java
----------------------------------------------------------------------
diff --git a/jndi/src/main/java/org/apache/karaf/jndi/internal/JndiServiceImpl.java b/jndi/src/main/java/org/apache/karaf/jndi/internal/JndiServiceImpl.java
index 83afe4e..9df0f33 100644
--- a/jndi/src/main/java/org/apache/karaf/jndi/internal/JndiServiceImpl.java
+++ b/jndi/src/main/java/org/apache/karaf/jndi/internal/JndiServiceImpl.java
@@ -241,7 +241,7 @@ public class JndiServiceImpl implements JndiService {
                 ServiceReference<?>[] services = bundle.getRegisteredServices();
                 if (services != null) {
                     for (ServiceReference service : services) {
-                        if (service.getProperty(OSGI_JNDI_SERVICE_PROPERTY) != null && ((String) service.getProperty(OSGI_JNDI_SERVICE_PROPERTY)).equals(name.substring(OSGI_JNDI_CONTEXT_PREFIX.length() + 1))) {
+                        if (service.getProperty(OSGI_JNDI_SERVICE_PROPERTY) != null && service.getProperty(OSGI_JNDI_SERVICE_PROPERTY).equals(name.substring(OSGI_JNDI_CONTEXT_PREFIX.length() + 1))) {
                             Object actualService = bundleContext.getService(service);
                             try {
                                 if (proxyManager.isProxy(actualService)) {

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/kar/src/main/java/org/apache/karaf/kar/internal/Kar.java
----------------------------------------------------------------------
diff --git a/kar/src/main/java/org/apache/karaf/kar/internal/Kar.java b/kar/src/main/java/org/apache/karaf/kar/internal/Kar.java
index c4d459f..22e45c4 100644
--- a/kar/src/main/java/org/apache/karaf/kar/internal/Kar.java
+++ b/kar/src/main/java/org/apache/karaf/kar/internal/Kar.java
@@ -20,7 +20,6 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.OutputStream;
 import java.net.MalformedURLException;
 import java.net.URI;
 import java.util.ArrayList;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/kar/src/main/java/org/apache/karaf/kar/internal/KarServiceImpl.java
----------------------------------------------------------------------
diff --git a/kar/src/main/java/org/apache/karaf/kar/internal/KarServiceImpl.java b/kar/src/main/java/org/apache/karaf/kar/internal/KarServiceImpl.java
index c8f270c..c48b029 100644
--- a/kar/src/main/java/org/apache/karaf/kar/internal/KarServiceImpl.java
+++ b/kar/src/main/java/org/apache/karaf/kar/internal/KarServiceImpl.java
@@ -28,7 +28,6 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.PrintStream;
-import java.io.UnsupportedEncodingException;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.ArrayList;
@@ -365,7 +364,7 @@ public class KarServiceImpl implements KarService {
         return featureSet;
     }
 
-    private Manifest createNonAutoStartManifest(URI repoUri) throws UnsupportedEncodingException, IOException {
+    private Manifest createNonAutoStartManifest(URI repoUri) throws IOException {
         String manifestSt = "Manifest-Version: 1.0\n" +
             Kar.MANIFEST_ATTR_KARAF_FEATURE_START +": false\n" +
             Kar.MANIFEST_ATTR_KARAF_FEATURE_REPOS + ": " + repoUri.toString() + "\n";

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/log/src/main/java/org/apache/karaf/log/command/LoadTest.java
----------------------------------------------------------------------
diff --git a/log/src/main/java/org/apache/karaf/log/command/LoadTest.java b/log/src/main/java/org/apache/karaf/log/command/LoadTest.java
index ab8514f..c6dbead 100644
--- a/log/src/main/java/org/apache/karaf/log/command/LoadTest.java
+++ b/log/src/main/java/org/apache/karaf/log/command/LoadTest.java
@@ -16,11 +16,9 @@
  */
 package org.apache.karaf.log.command;
 
-import org.apache.karaf.log.core.LogService;
 import org.apache.karaf.shell.api.action.Action;
 import org.apache.karaf.shell.api.action.Command;
 import org.apache.karaf.shell.api.action.Option;
-import org.apache.karaf.shell.api.action.lifecycle.Reference;
 import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/log/src/main/java/org/apache/karaf/log/core/LogEventFormatter.java
----------------------------------------------------------------------
diff --git a/log/src/main/java/org/apache/karaf/log/core/LogEventFormatter.java b/log/src/main/java/org/apache/karaf/log/core/LogEventFormatter.java
index 71fe275..b27fc3a 100644
--- a/log/src/main/java/org/apache/karaf/log/core/LogEventFormatter.java
+++ b/log/src/main/java/org/apache/karaf/log/core/LogEventFormatter.java
@@ -20,6 +20,6 @@ import org.ops4j.pax.logging.spi.PaxLoggingEvent;
 
 public interface LogEventFormatter {
 
-    public abstract String format(PaxLoggingEvent event, String overridenPattern, boolean noColor);
+    String format(PaxLoggingEvent event, String overridenPattern, boolean noColor);
 
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/main/src/main/java/org/apache/karaf/main/KarafActivatorManager.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/KarafActivatorManager.java b/main/src/main/java/org/apache/karaf/main/KarafActivatorManager.java
index 6d8c99a..a0c7a39 100644
--- a/main/src/main/java/org/apache/karaf/main/KarafActivatorManager.java
+++ b/main/src/main/java/org/apache/karaf/main/KarafActivatorManager.java
@@ -25,7 +25,6 @@ import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.List;
 import java.util.jar.Manifest;
-import java.util.logging.Handler;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/main/src/main/java/org/apache/karaf/main/Status.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/Status.java b/main/src/main/java/org/apache/karaf/main/Status.java
index 4ac8b1a..10ccf51 100644
--- a/main/src/main/java/org/apache/karaf/main/Status.java
+++ b/main/src/main/java/org/apache/karaf/main/Status.java
@@ -72,7 +72,7 @@ public class Status {
         }
     }
 
-    private static int getPortFromShutdownPortFile(String portFile) throws FileNotFoundException, IOException {
+    private static int getPortFromShutdownPortFile(String portFile) throws IOException {
         int port;
         BufferedReader r = new BufferedReader(new InputStreamReader(new FileInputStream(portFile)));
         String portStr = r.readLine();

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/main/src/main/java/org/apache/karaf/main/Stop.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/Stop.java b/main/src/main/java/org/apache/karaf/main/Stop.java
index d6af16d..060854f 100644
--- a/main/src/main/java/org/apache/karaf/main/Stop.java
+++ b/main/src/main/java/org/apache/karaf/main/Stop.java
@@ -72,7 +72,7 @@ public class Stop {
 
     }
 
-    private static int getPortFromShutdownPortFile(String portFile) throws FileNotFoundException, IOException {
+    private static int getPortFromShutdownPortFile(String portFile) throws IOException {
         int port;
         BufferedReader r = new BufferedReader(new InputStreamReader(new FileInputStream(portFile)));
         String portStr = r.readLine();

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java
----------------------------------------------------------------------
diff --git a/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java b/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java
index 3fa02b8..d32e081 100644
--- a/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java
+++ b/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java
@@ -44,7 +44,7 @@ import javax.rmi.ssl.SslRMIClientSocketFactory;
 
 public class ConnectorServerFactory {
 
-    private enum AuthenticatorType {NONE, PASSWORD, CERTIFICATE};
+    private enum AuthenticatorType {NONE, PASSWORD, CERTIFICATE}
 
     private MBeanServer server;
     private KarafMBeanServerGuard guard;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/management/server/src/main/java/org/apache/karaf/management/JMXSecurityMBean.java
----------------------------------------------------------------------
diff --git a/management/server/src/main/java/org/apache/karaf/management/JMXSecurityMBean.java b/management/server/src/main/java/org/apache/karaf/management/JMXSecurityMBean.java
index 93dc784..5068766 100644
--- a/management/server/src/main/java/org/apache/karaf/management/JMXSecurityMBean.java
+++ b/management/server/src/main/java/org/apache/karaf/management/JMXSecurityMBean.java
@@ -33,13 +33,13 @@ public interface JMXSecurityMBean {
      * {@link #CAN_INVOKE_RESULT_ROW_TYPE} entries.
      * It has a composite key composed by the "ObjectName" and "Method" columns.
      */
-    static final TabularType CAN_INVOKE_TABULAR_TYPE = SecurityMBeanOpenTypeInitializer.TABULAR_TYPE;
+    TabularType CAN_INVOKE_TABULAR_TYPE = SecurityMBeanOpenTypeInitializer.TABULAR_TYPE;
 
     /**
      * A row as returned by the {@link #CAN_INVOKE_TABULAR_TYPE}. The columns of the row are defined
      * by {@link #CAN_INVOKE_RESULT_COLUMNS}
      */
-    static final CompositeType CAN_INVOKE_RESULT_ROW_TYPE = SecurityMBeanOpenTypeInitializer.ROW_TYPE;
+    CompositeType CAN_INVOKE_RESULT_ROW_TYPE = SecurityMBeanOpenTypeInitializer.ROW_TYPE;
 
     /**
      * The columns contained in a {@link #CAN_INVOKE_RESULT_ROW_TYPE}. The data types for these columns are
@@ -50,7 +50,7 @@ public interface JMXSecurityMBean {
      *     <li>"CanInvoke": {@link SimpleType#BOOLEAN}</li>
      * </ul>
      */
-    static final String[] CAN_INVOKE_RESULT_COLUMNS = SecurityMBeanOpenTypeInitializer.COLUMNS;
+    String[] CAN_INVOKE_RESULT_COLUMNS = SecurityMBeanOpenTypeInitializer.COLUMNS;
 
     /**
      * Checks whether the current user can invoke any methods on a JMX MBean.
@@ -109,7 +109,7 @@ public interface JMXSecurityMBean {
     TabularData canInvoke(Map<String, List<String>> bulkQuery) throws Exception;
 
     // a member class is used to initialize final fields, as this needs to do some exception handling...
-    static class SecurityMBeanOpenTypeInitializer {
+    class SecurityMBeanOpenTypeInitializer {
 
         private static final String[] COLUMNS = new String[]{ "ObjectName", "Method", "CanInvoke" };
         private static final CompositeType ROW_TYPE;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/management/server/src/main/java/org/apache/karaf/management/RmiRegistryFactory.java
----------------------------------------------------------------------
diff --git a/management/server/src/main/java/org/apache/karaf/management/RmiRegistryFactory.java b/management/server/src/main/java/org/apache/karaf/management/RmiRegistryFactory.java
index 360b9cd..a08ef20 100644
--- a/management/server/src/main/java/org/apache/karaf/management/RmiRegistryFactory.java
+++ b/management/server/src/main/java/org/apache/karaf/management/RmiRegistryFactory.java
@@ -20,7 +20,6 @@ import org.osgi.framework.BundleContext;
 
 import java.io.IOException;
 import java.lang.reflect.Field;
-import java.net.Inet4Address;
 import java.net.InetAddress;
 import java.net.ServerSocket;
 import java.net.UnknownHostException;
@@ -35,9 +34,6 @@ import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.Map;
 
-import javax.net.ServerSocketFactory;
-import javax.net.SocketFactory;
-
 public class RmiRegistryFactory {
 
     private int port = Registry.REGISTRY_PORT;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/package/src/main/java/org/apache/karaf/packages/core/PackageService.java
----------------------------------------------------------------------
diff --git a/package/src/main/java/org/apache/karaf/packages/core/PackageService.java b/package/src/main/java/org/apache/karaf/packages/core/PackageService.java
index 0e68b43..b6ef349 100644
--- a/package/src/main/java/org/apache/karaf/packages/core/PackageService.java
+++ b/package/src/main/java/org/apache/karaf/packages/core/PackageService.java
@@ -17,7 +17,6 @@
 package org.apache.karaf.packages.core;
 
 import java.util.List;
-import java.util.SortedMap;
 
 public interface PackageService {
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/package/src/main/java/org/apache/karaf/packages/core/internal/PackageServiceImpl.java
----------------------------------------------------------------------
diff --git a/package/src/main/java/org/apache/karaf/packages/core/internal/PackageServiceImpl.java b/package/src/main/java/org/apache/karaf/packages/core/internal/PackageServiceImpl.java
index ce80ffa..9bb7bd5 100644
--- a/package/src/main/java/org/apache/karaf/packages/core/internal/PackageServiceImpl.java
+++ b/package/src/main/java/org/apache/karaf/packages/core/internal/PackageServiceImpl.java
@@ -17,8 +17,6 @@
 package org.apache.karaf.packages.core.internal;
 
 import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
 import java.util.SortedMap;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/package/src/main/java/org/apache/karaf/packages/core/internal/PackagesMBeanImpl.java
----------------------------------------------------------------------
diff --git a/package/src/main/java/org/apache/karaf/packages/core/internal/PackagesMBeanImpl.java b/package/src/main/java/org/apache/karaf/packages/core/internal/PackagesMBeanImpl.java
index 57d098f..a929ec2 100644
--- a/package/src/main/java/org/apache/karaf/packages/core/internal/PackagesMBeanImpl.java
+++ b/package/src/main/java/org/apache/karaf/packages/core/internal/PackagesMBeanImpl.java
@@ -17,7 +17,6 @@
 package org.apache.karaf.packages.core.internal;
 
 import java.util.List;
-import java.util.SortedMap;
 
 import javax.management.NotCompliantMBeanException;
 import javax.management.StandardMBean;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/package/src/main/java/org/apache/karaf/packages/core/internal/filter/SimpleItem.java
----------------------------------------------------------------------
diff --git a/package/src/main/java/org/apache/karaf/packages/core/internal/filter/SimpleItem.java b/package/src/main/java/org/apache/karaf/packages/core/internal/filter/SimpleItem.java
index 6c71341..6563c44 100644
--- a/package/src/main/java/org/apache/karaf/packages/core/internal/filter/SimpleItem.java
+++ b/package/src/main/java/org/apache/karaf/packages/core/internal/filter/SimpleItem.java
@@ -17,7 +17,8 @@
 package org.apache.karaf.packages.core.internal.filter;
 
 public class SimpleItem implements Expression {
-    enum FilterType { equal, gt, lt }; 
+    enum FilterType { equal, gt, lt }
+
     public String attr;
     public FilterType filterType;
     public String value;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/package/src/test/java/org/apache/karaf/packages/command/PackageImportTest.java
----------------------------------------------------------------------
diff --git a/package/src/test/java/org/apache/karaf/packages/command/PackageImportTest.java b/package/src/test/java/org/apache/karaf/packages/command/PackageImportTest.java
index 311dcf0..65dfc39 100644
--- a/package/src/test/java/org/apache/karaf/packages/command/PackageImportTest.java
+++ b/package/src/test/java/org/apache/karaf/packages/command/PackageImportTest.java
@@ -16,9 +16,6 @@
  */
 package org.apache.karaf.packages.command;
 
-import org.apache.karaf.packages.core.internal.filter.Expression;
-import org.apache.karaf.packages.core.internal.filter.FilterParser;
-import org.junit.Assert;
 import org.junit.Test;
 
 public class PackageImportTest {

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java
----------------------------------------------------------------------
diff --git a/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java b/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java
index 604b00d..790846f 100644
--- a/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java
+++ b/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java
@@ -53,7 +53,6 @@ import java.util.zip.ZipInputStream;
 
 import org.apache.felix.resolver.ResolverImpl;
 import org.apache.felix.utils.manifest.Clause;
-import org.apache.felix.utils.properties.InterpolationHelper;
 import org.apache.felix.utils.properties.Properties;
 import org.apache.felix.utils.version.VersionRange;
 import org.apache.felix.utils.version.VersionTable;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/profile/src/main/java/org/apache/karaf/profile/assembly/CustomDownloadManager.java
----------------------------------------------------------------------
diff --git a/profile/src/main/java/org/apache/karaf/profile/assembly/CustomDownloadManager.java b/profile/src/main/java/org/apache/karaf/profile/assembly/CustomDownloadManager.java
index b8bf017..ff49f11 100644
--- a/profile/src/main/java/org/apache/karaf/profile/assembly/CustomDownloadManager.java
+++ b/profile/src/main/java/org/apache/karaf/profile/assembly/CustomDownloadManager.java
@@ -19,7 +19,6 @@ package org.apache.karaf.profile.assembly;
 import java.util.Map;
 import java.util.concurrent.ScheduledExecutorService;
 
-import org.apache.karaf.features.FeaturesService;
 import org.apache.karaf.features.internal.download.Downloader;
 import org.apache.karaf.features.internal.download.impl.AbstractDownloadTask;
 import org.apache.karaf.features.internal.download.impl.MavenDownloadManager;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/profile/src/main/java/org/apache/karaf/profile/command/ProfileEdit.java
----------------------------------------------------------------------
diff --git a/profile/src/main/java/org/apache/karaf/profile/command/ProfileEdit.java b/profile/src/main/java/org/apache/karaf/profile/command/ProfileEdit.java
index 553d9fa..1b986ee 100644
--- a/profile/src/main/java/org/apache/karaf/profile/command/ProfileEdit.java
+++ b/profile/src/main/java/org/apache/karaf/profile/command/ProfileEdit.java
@@ -16,8 +16,6 @@
  */
 package org.apache.karaf.profile.command;
 
-import java.io.IOException;
-import java.nio.charset.Charset;
 import java.util.Arrays;
 import java.util.Dictionary;
 import java.util.Enumeration;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/profile/src/main/java/org/apache/karaf/profile/impl/PlaceholderResolvers.java
----------------------------------------------------------------------
diff --git a/profile/src/main/java/org/apache/karaf/profile/impl/PlaceholderResolvers.java b/profile/src/main/java/org/apache/karaf/profile/impl/PlaceholderResolvers.java
index dc46a23..898a619 100644
--- a/profile/src/main/java/org/apache/karaf/profile/impl/PlaceholderResolvers.java
+++ b/profile/src/main/java/org/apache/karaf/profile/impl/PlaceholderResolvers.java
@@ -21,8 +21,6 @@ import java.util.Map;
 import org.apache.karaf.profile.PlaceholderResolver;
 import org.osgi.framework.BundleContext;
 
-import static org.apache.karaf.profile.impl.Utils.assertNotNull;
-
 public final class PlaceholderResolvers {
 
     private PlaceholderResolvers() { }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/profile/src/test/java/org/apache/karaf/profile/assembly/BuilderTest.java
----------------------------------------------------------------------
diff --git a/profile/src/test/java/org/apache/karaf/profile/assembly/BuilderTest.java b/profile/src/test/java/org/apache/karaf/profile/assembly/BuilderTest.java
index a0e2315..623a2ca 100644
--- a/profile/src/test/java/org/apache/karaf/profile/assembly/BuilderTest.java
+++ b/profile/src/test/java/org/apache/karaf/profile/assembly/BuilderTest.java
@@ -18,7 +18,6 @@ package org.apache.karaf.profile.assembly;
 
 import java.io.BufferedWriter;
 import java.io.IOException;
-import java.io.Writer;
 import java.nio.file.DirectoryStream;
 import java.nio.file.Files;
 import java.nio.file.Path;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/scheduler/src/main/java/org/apache/karaf/scheduler/Scheduler.java
----------------------------------------------------------------------
diff --git a/scheduler/src/main/java/org/apache/karaf/scheduler/Scheduler.java b/scheduler/src/main/java/org/apache/karaf/scheduler/Scheduler.java
index 90bd766..7bb3a8b 100644
--- a/scheduler/src/main/java/org/apache/karaf/scheduler/Scheduler.java
+++ b/scheduler/src/main/java/org/apache/karaf/scheduler/Scheduler.java
@@ -17,7 +17,6 @@
 package org.apache.karaf.scheduler;
 
 import java.util.Date;
-import java.util.List;
 import java.util.Map;
 
 import org.quartz.SchedulerException;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/scr/management/src/main/java/org/apache/karaf/scr/management/internal/ScrServiceMBeanImpl.java
----------------------------------------------------------------------
diff --git a/scr/management/src/main/java/org/apache/karaf/scr/management/internal/ScrServiceMBeanImpl.java b/scr/management/src/main/java/org/apache/karaf/scr/management/internal/ScrServiceMBeanImpl.java
index 47315db..480eecf 100644
--- a/scr/management/src/main/java/org/apache/karaf/scr/management/internal/ScrServiceMBeanImpl.java
+++ b/scr/management/src/main/java/org/apache/karaf/scr/management/internal/ScrServiceMBeanImpl.java
@@ -128,7 +128,7 @@ public class ScrServiceMBeanImpl extends StandardMBean implements ScrServiceMBea
 
     public boolean isComponentActive(String componentName) throws MBeanException {
         try {
-            return (componentState(componentName) == Component.STATE_ACTIVE) ? true : false;
+            return componentState(componentName) == Component.STATE_ACTIVE;
         } catch (Exception e) {
             throw new MBeanException(null, e.toString());
         }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/service/guard/src/main/java/org/apache/karaf/service/guard/tools/ACLConfigurationParser.java
----------------------------------------------------------------------
diff --git a/service/guard/src/main/java/org/apache/karaf/service/guard/tools/ACLConfigurationParser.java b/service/guard/src/main/java/org/apache/karaf/service/guard/tools/ACLConfigurationParser.java
index 55e4577..2bf6f03 100644
--- a/service/guard/src/main/java/org/apache/karaf/service/guard/tools/ACLConfigurationParser.java
+++ b/service/guard/src/main/java/org/apache/karaf/service/guard/tools/ACLConfigurationParser.java
@@ -29,7 +29,7 @@ public class ACLConfigurationParser {
         NAME_MATCH,
         WILDCARD_MATCH,
         NO_MATCH
-    };
+    }
 
     static String compulsoryRoles;
     

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/service/guard/src/test/java/org/apache/karaf/service/guard/impl/GuardProxyCatalogTest.java
----------------------------------------------------------------------
diff --git a/service/guard/src/test/java/org/apache/karaf/service/guard/impl/GuardProxyCatalogTest.java b/service/guard/src/test/java/org/apache/karaf/service/guard/impl/GuardProxyCatalogTest.java
index 64e51ec..9045ec9 100644
--- a/service/guard/src/test/java/org/apache/karaf/service/guard/impl/GuardProxyCatalogTest.java
+++ b/service/guard/src/test/java/org/apache/karaf/service/guard/impl/GuardProxyCatalogTest.java
@@ -280,7 +280,7 @@ public class GuardProxyCatalogTest {
     @SuppressWarnings({ "unchecked", "rawtypes" })
     @Test
     public void testAssignRoles3() throws Exception {
-        abstract class MyAbstractClass implements TestServiceAPI, TestServiceAPI2 {};
+        abstract class MyAbstractClass implements TestServiceAPI, TestServiceAPI2 {}
 
         Dictionary<String, Object> config = new Hashtable<>();
         config.put(Constants.SERVICE_PID, "foobar");
@@ -406,7 +406,7 @@ public class GuardProxyCatalogTest {
             public String doit() {
                 return "Doing it";
             }
-        };
+        }
 
         Dictionary<String, Object> c1 = new Hashtable<>();
         c1.put(Constants.SERVICE_PID, "foobar");
@@ -613,7 +613,7 @@ public class GuardProxyCatalogTest {
             public String getName() {
                 return "role1";
             }
-        };
+        }
 
         Dictionary<String, Object> c1 = new Hashtable<>();
         c1.put(Constants.SERVICE_PID, "foobar");

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/services/coordinator/src/main/java/org/eclipse/osgi/util/NLS.java
----------------------------------------------------------------------
diff --git a/services/coordinator/src/main/java/org/eclipse/osgi/util/NLS.java b/services/coordinator/src/main/java/org/eclipse/osgi/util/NLS.java
index 7466346..517963d 100644
--- a/services/coordinator/src/main/java/org/eclipse/osgi/util/NLS.java
+++ b/services/coordinator/src/main/java/org/eclipse/osgi/util/NLS.java
@@ -82,7 +82,7 @@ public class NLS {
                     try {
                         number = Integer.parseInt(message.substring(i, index));
                     } catch (NumberFormatException e) {
-                        throw (IllegalArgumentException) new IllegalArgumentException().initCause(e);
+                        throw new IllegalArgumentException(e);
                     }
                     if (bindings == null || number >= bindings.length || number < 0) {
                         buffer.append("<missing argument>"); //$NON-NLS-1$

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/info/InfoBundleTrackerCustomizer.java
----------------------------------------------------------------------
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/info/InfoBundleTrackerCustomizer.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/info/InfoBundleTrackerCustomizer.java
index c2c7589..020badd 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/info/InfoBundleTrackerCustomizer.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/info/InfoBundleTrackerCustomizer.java
@@ -18,7 +18,6 @@ package org.apache.karaf.shell.commands.impl.info;
 
 import org.apache.karaf.shell.commands.info.InfoProvider;
 import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
 import org.osgi.framework.BundleEvent;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.util.tracker.BundleTrackerCustomizer;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/commands/src/main/java/org/apache/karaf/shell/commands/info/InfoProvider.java
----------------------------------------------------------------------
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/info/InfoProvider.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/info/InfoProvider.java
index b66cfae..d6bd0ab 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/info/InfoProvider.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/info/InfoProvider.java
@@ -23,8 +23,8 @@ import java.util.Properties;
  */
 public interface InfoProvider {
 
-    public String getName();
+    String getName();
 
-    public Properties getProperties();
+    Properties getProperties();
 
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/console/src/main/java/org/apache/felix/gogo/commands/Argument.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/felix/gogo/commands/Argument.java b/shell/console/src/main/java/org/apache/felix/gogo/commands/Argument.java
index 33c15bf..6916da8 100644
--- a/shell/console/src/main/java/org/apache/felix/gogo/commands/Argument.java
+++ b/shell/console/src/main/java/org/apache/felix/gogo/commands/Argument.java
@@ -31,7 +31,7 @@ import java.lang.annotation.ElementType;
 @Deprecated
 public @interface Argument {
 
-    public static final String DEFAULT_STRING = "DEFAULT";
+    String DEFAULT_STRING = "DEFAULT";
 
     String DEFAULT = "##default";
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/console/src/main/java/org/apache/felix/gogo/commands/Option.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/felix/gogo/commands/Option.java b/shell/console/src/main/java/org/apache/felix/gogo/commands/Option.java
index 1ce6f75..166fd5e 100644
--- a/shell/console/src/main/java/org/apache/felix/gogo/commands/Option.java
+++ b/shell/console/src/main/java/org/apache/felix/gogo/commands/Option.java
@@ -31,7 +31,7 @@ import java.lang.annotation.ElementType;
 @Deprecated
 public @interface Option {
 
-    public static final String DEFAULT_STRING = "DEFAULT";
+    String DEFAULT_STRING = "DEFAULT";
 
     String name();
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/console/src/main/java/org/apache/karaf/shell/commands/Argument.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/Argument.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/Argument.java
index d878cec..ca5679a 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/Argument.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/Argument.java
@@ -31,7 +31,7 @@ import java.lang.annotation.ElementType;
 @Deprecated
 public @interface Argument
 {
-    public static final String DEFAULT_STRING= "DEFAULT";
+    String DEFAULT_STRING= "DEFAULT";
 
     String DEFAULT = "##default";
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/console/src/main/java/org/apache/karaf/shell/commands/InfoProvider.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/InfoProvider.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/InfoProvider.java
index 2945e83..00af0ec 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/InfoProvider.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/InfoProvider.java
@@ -24,8 +24,8 @@ import java.util.Properties;
 @Deprecated
 public interface InfoProvider {
 
-	public String getName();
+	String getName();
 
-	public Properties getProperties();
+	Properties getProperties();
 
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/console/src/main/java/org/apache/karaf/shell/commands/Option.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/Option.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/Option.java
index 44a3e0a..58c5400 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/Option.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/Option.java
@@ -31,7 +31,7 @@ import java.lang.annotation.Target;
 @Deprecated
 public @interface Option
 {
-    public static final String DEFAULT_STRING= "DEFAULT";
+    String DEFAULT_STRING= "DEFAULT";
 
     String name();
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/console/src/main/java/org/apache/karaf/shell/commands/meta/ActionMetaData.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/meta/ActionMetaData.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/meta/ActionMetaData.java
index fd97055..7b561e5 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/meta/ActionMetaData.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/meta/ActionMetaData.java
@@ -43,7 +43,6 @@ import org.apache.karaf.shell.commands.Argument;
 import org.apache.karaf.shell.commands.Command;
 import org.apache.karaf.shell.commands.HelpOption;
 import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.commands.ansi.SimpleAnsi;
 import org.apache.karaf.shell.console.Completer;
 
 public class ActionMetaData {

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/console/src/main/java/org/apache/karaf/shell/compat/ArgumentCompleter.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/compat/ArgumentCompleter.java b/shell/console/src/main/java/org/apache/karaf/shell/compat/ArgumentCompleter.java
index 4ca0d6b..3c1b4d1 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/compat/ArgumentCompleter.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/compat/ArgumentCompleter.java
@@ -35,7 +35,6 @@ import java.util.Set;
 import org.apache.felix.gogo.commands.Action;
 import org.apache.felix.service.command.CommandSession;
 import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
 import org.apache.karaf.shell.commands.CommandWithAction;
 import org.apache.karaf.shell.commands.CompleterValues;
 import org.apache.karaf.shell.commands.HelpOption;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/console/src/main/java/org/apache/karaf/shell/console/NameScoping.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/NameScoping.java b/shell/console/src/main/java/org/apache/karaf/shell/console/NameScoping.java
index 90d5b21..0511324 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/NameScoping.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/NameScoping.java
@@ -82,9 +82,6 @@ public class NameScoping {
             return false;
 
         Object value = session.get(MULTI_SCOPE_MODE_KEY);
-        if (value != null && value.equals("false")) {
-            return false;
-        }
-        return true;
+        return !(value != null && value.equals("false"));
     }
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/core/src/main/java/org/apache/karaf/shell/api/action/Argument.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/api/action/Argument.java b/shell/core/src/main/java/org/apache/karaf/shell/api/action/Argument.java
index 6fc25b3..b0268a2 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/api/action/Argument.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/api/action/Argument.java
@@ -30,7 +30,7 @@ import java.lang.annotation.Target;
 @Target({ElementType.FIELD})
 public @interface Argument
 {
-    public static final String DEFAULT_STRING= "DEFAULT";
+    String DEFAULT_STRING= "DEFAULT";
 
     String DEFAULT = "##default";
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/core/src/main/java/org/apache/karaf/shell/api/action/Option.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/api/action/Option.java b/shell/core/src/main/java/org/apache/karaf/shell/api/action/Option.java
index 62c9510..bd15244 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/api/action/Option.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/api/action/Option.java
@@ -44,7 +44,7 @@ import java.lang.annotation.Target;
 @Target({ElementType.FIELD})
 public @interface Option
 {
-    public static final String DEFAULT_STRING= "DEFAULT";
+    String DEFAULT_STRING= "DEFAULT";
 
     /**
      * The name of this option.  Usually starting with a '-'.

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/core/src/main/java/org/apache/karaf/shell/api/console/Signal.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/api/console/Signal.java b/shell/core/src/main/java/org/apache/karaf/shell/api/console/Signal.java
index a4b59af..f8224dd 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/api/console/Signal.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/api/console/Signal.java
@@ -70,7 +70,7 @@ public enum Signal {
 
     private final int numeric;
 
-    private Signal(int numeric) {
+    Signal(int numeric) {
         this.numeric = numeric;
     }
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/DefaultActionPreparator.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/DefaultActionPreparator.java b/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/DefaultActionPreparator.java
index a1f3c60..d32703a 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/DefaultActionPreparator.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/DefaultActionPreparator.java
@@ -112,7 +112,7 @@ public class DefaultActionPreparator {
                 paramValue = (String)param;
             }
             if (param instanceof Token) {
-                paramValue = ((Token)param).toString();
+                paramValue = param.toString();
             }
 
             if (processOptions

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/core/src/main/java/org/apache/karaf/shell/impl/console/KarafTerminal.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/KarafTerminal.java b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/KarafTerminal.java
index b5004bc..f6eec8e 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/KarafTerminal.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/KarafTerminal.java
@@ -22,17 +22,12 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.PrintWriter;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
 
 import org.apache.karaf.shell.api.console.Terminal;
 import org.jline.terminal.Attributes;
 import org.jline.terminal.Size;
 import org.jline.terminal.impl.AbstractTerminal;
 import org.jline.utils.InfoCmp;
-import org.jline.utils.InfoCmp.Capability;
 import org.jline.utils.NonBlockingReader;
 
 public class KarafTerminal extends AbstractTerminal implements org.jline.terminal.Terminal {

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/core/src/main/java/org/apache/karaf/shell/impl/console/parsing/KarafParser.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/parsing/KarafParser.java b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/parsing/KarafParser.java
index 6c0cad4..0b87ccc 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/parsing/KarafParser.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/parsing/KarafParser.java
@@ -27,12 +27,10 @@ import org.apache.felix.gogo.runtime.EOFError;
 import org.apache.felix.gogo.runtime.Parser.Program;
 import org.apache.felix.gogo.runtime.Parser.Statement;
 import org.apache.felix.gogo.runtime.SyntaxError;
-import org.apache.felix.gogo.runtime.Token;
 import org.apache.karaf.shell.api.console.Command;
 import org.apache.karaf.shell.api.console.CommandLine;
 import org.apache.karaf.shell.api.console.Parser;
 import org.apache.karaf.shell.api.console.Session;
-import org.apache.karaf.shell.support.parsing.DefaultParser;
 import org.jline.reader.ParsedLine;
 
 public class KarafParser implements org.jline.reader.Parser {

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/core/src/main/java/org/apache/karaf/shell/impl/console/standalone/Main.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/standalone/Main.java b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/standalone/Main.java
index b37178a..ee29c82 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/standalone/Main.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/standalone/Main.java
@@ -24,10 +24,8 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
-import java.io.OutputStream;
 import java.io.PrintStream;
 import java.io.Reader;
-import java.lang.reflect.Method;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLClassLoader;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/core/src/main/java/org/apache/karaf/shell/support/NameScoping.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/support/NameScoping.java b/shell/core/src/main/java/org/apache/karaf/shell/support/NameScoping.java
index 4249fed..561f39d 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/support/NameScoping.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/support/NameScoping.java
@@ -81,9 +81,6 @@ public class NameScoping {
             return false;
 
         Object value = session.get(MULTI_SCOPE_MODE_KEY);
-        if (value != null && value.equals("false")) {
-            return false;
-        }
-        return true;
+        return !(value != null && value.equals("false"));
     }
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/core/src/main/java/org/apache/karaf/shell/support/terminal/SignalSupport.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/support/terminal/SignalSupport.java b/shell/core/src/main/java/org/apache/karaf/shell/support/terminal/SignalSupport.java
index b0c2b8c..42afbb9 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/support/terminal/SignalSupport.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/support/terminal/SignalSupport.java
@@ -19,7 +19,6 @@
 package org.apache.karaf.shell.support.terminal;
 
 import java.util.EnumSet;
-import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/Activator.java
----------------------------------------------------------------------
diff --git a/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/Activator.java b/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/Activator.java
index c5d1781..ab254aa 100644
--- a/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/Activator.java
+++ b/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/Activator.java
@@ -32,7 +32,6 @@ import org.apache.karaf.util.tracker.BaseActivator;
 import org.apache.karaf.util.tracker.annotation.Managed;
 import org.apache.karaf.util.tracker.annotation.RequireService;
 import org.apache.karaf.util.tracker.annotation.Services;
-import org.apache.sshd.common.NamedFactory;
 import org.apache.sshd.common.file.virtualfs.VirtualFileSystemFactory;
 import org.apache.sshd.server.SshServer;
 import org.apache.sshd.server.forward.AcceptAllForwardingFilter;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/KarafAgentFactory.java
----------------------------------------------------------------------
diff --git a/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/KarafAgentFactory.java b/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/KarafAgentFactory.java
index 38a25e1..0f3e4e4 100644
--- a/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/KarafAgentFactory.java
+++ b/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/KarafAgentFactory.java
@@ -40,7 +40,6 @@ import org.apache.sshd.common.channel.Channel;
 import org.apache.sshd.common.session.ConnectionService;
 import org.apache.sshd.common.session.Session;
 import org.apache.sshd.server.session.ServerSession;
-import org.omg.PortableInterceptor.INACTIVE;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java
----------------------------------------------------------------------
diff --git a/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java b/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java
index 364bafe..2a11a88 100644
--- a/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java
+++ b/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java
@@ -24,14 +24,12 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.PrintStream;
 import java.nio.charset.Charset;
-import java.security.PrivilegedAction;
 import java.util.Map;
 
 import javax.security.auth.Subject;
 
 import org.apache.karaf.shell.api.console.Session;
 import org.apache.karaf.shell.api.console.SessionFactory;
-import org.apache.karaf.shell.api.console.Terminal;
 import org.apache.karaf.shell.support.ShellUtil;
 import org.apache.karaf.util.jaas.JaasHelper;
 import org.apache.sshd.common.Factory;
@@ -109,7 +107,7 @@ public class ShellFactoryImpl implements Factory<Command> {
                 JaasHelper.runAs(subject, () ->
                     new Thread(shell, "Karaf ssh console user " + ShellUtil.getCurrentUserName()).start());
             } catch (Exception e) {
-                throw (IOException) new IOException("Unable to start shell").initCause(e);
+                throw new IOException("Unable to start shell", e);
             }
         }
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/SshAction.java
----------------------------------------------------------------------
diff --git a/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/SshAction.java b/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/SshAction.java
index 256bb3b..badbf1b 100644
--- a/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/SshAction.java
+++ b/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/SshAction.java
@@ -304,7 +304,7 @@ public class SshAction implements Action {
         return term != null ? term.getHeight() : 25;
     }
 
-    private static ClientSession connectWithRetries(SshClient client, String username, String host, int port, int maxAttempts) throws Exception, InterruptedException {
+    private static ClientSession connectWithRetries(SshClient client, String username, String host, int port, int maxAttempts) throws Exception {
         ClientSession session = null;
         int retries = 0;
         do {

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/SshUtils.java
----------------------------------------------------------------------
diff --git a/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/SshUtils.java b/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/SshUtils.java
index bc2bb41..7985e25 100644
--- a/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/SshUtils.java
+++ b/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/SshUtils.java
@@ -25,7 +25,6 @@ import java.util.List;
 import org.apache.sshd.server.ServerBuilder;
 import org.apache.sshd.server.SshServer;
 import org.apache.sshd.common.NamedFactory;
-import org.apache.sshd.common.cipher.BuiltinCiphers;
 import org.apache.sshd.common.cipher.Cipher;
 import org.apache.sshd.common.compression.Compression;
 import org.apache.sshd.common.kex.KeyExchange;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/subsystem/src/main/java/org/apache/karaf/subsystem/commands/ListAction.java
----------------------------------------------------------------------
diff --git a/subsystem/src/main/java/org/apache/karaf/subsystem/commands/ListAction.java b/subsystem/src/main/java/org/apache/karaf/subsystem/commands/ListAction.java
index 8b7ee12..4d5c976 100644
--- a/subsystem/src/main/java/org/apache/karaf/subsystem/commands/ListAction.java
+++ b/subsystem/src/main/java/org/apache/karaf/subsystem/commands/ListAction.java
@@ -13,12 +13,6 @@
  */
 package org.apache.karaf.subsystem.commands;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
 import org.apache.karaf.shell.api.action.Action;
 import org.apache.karaf.shell.api.action.Command;
 import org.apache.karaf.shell.api.action.lifecycle.Service;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/subsystem/src/main/java/org/apache/karaf/subsystem/commands/SubsystemSupport.java
----------------------------------------------------------------------
diff --git a/subsystem/src/main/java/org/apache/karaf/subsystem/commands/SubsystemSupport.java b/subsystem/src/main/java/org/apache/karaf/subsystem/commands/SubsystemSupport.java
index fa22350..dc970b1 100644
--- a/subsystem/src/main/java/org/apache/karaf/subsystem/commands/SubsystemSupport.java
+++ b/subsystem/src/main/java/org/apache/karaf/subsystem/commands/SubsystemSupport.java
@@ -24,7 +24,6 @@ import java.util.regex.Pattern;
 
 import org.apache.karaf.shell.api.action.lifecycle.Reference;
 import org.osgi.service.subsystem.Subsystem;
-import org.osgi.service.subsystem.SubsystemConstants;
 
 public abstract class SubsystemSupport {
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/system/src/main/java/org/apache/karaf/system/SystemService.java
----------------------------------------------------------------------
diff --git a/system/src/main/java/org/apache/karaf/system/SystemService.java b/system/src/main/java/org/apache/karaf/system/SystemService.java
index ce4d9ef..fc930f4 100644
--- a/system/src/main/java/org/apache/karaf/system/SystemService.java
+++ b/system/src/main/java/org/apache/karaf/system/SystemService.java
@@ -24,7 +24,7 @@ public interface SystemService {
     /**
      * Types defining what to remove on a restart of Karaf
      */
-    public enum Swipe {
+    enum Swipe {
         /** Delete nothing; simple restart */
         NONE,
         /** Delete only the cache; everything else remains */

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/RunMojo.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/RunMojo.java b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/RunMojo.java
index 16023bf..f9d965a 100644
--- a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/RunMojo.java
+++ b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/RunMojo.java
@@ -26,9 +26,6 @@ import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
 import org.apache.commons.compress.utils.IOUtils;
 import org.apache.commons.io.FileUtils;
 import org.apache.karaf.features.BootFinished;
-import org.apache.karaf.features.Feature;
-import org.apache.karaf.features.FeaturesListener;
-import org.apache.karaf.features.FeaturesService;
 import org.apache.karaf.main.Main;
 import org.apache.karaf.tooling.utils.MojoSupport;
 import org.apache.maven.artifact.Artifact;
@@ -43,7 +40,6 @@ import org.apache.maven.plugins.annotations.ResolutionScope;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
-import org.osgi.util.tracker.ServiceTracker;
 
 import java.io.*;
 import java.util.regex.Matcher;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/client/ClientMojo.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/client/ClientMojo.java b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/client/ClientMojo.java
index 7ab1908..6819944 100644
--- a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/client/ClientMojo.java
+++ b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/client/ClientMojo.java
@@ -51,11 +51,7 @@ import java.io.ObjectInputStream;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.net.URL;
-import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.security.KeyPair;
-import java.util.Arrays;
-import java.util.Collections;
 import java.util.EnumSet;
 import java.util.List;
 import java.util.concurrent.TimeUnit;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/commands/GenerateHelpMojo.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/commands/GenerateHelpMojo.java b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/commands/GenerateHelpMojo.java
index fec7490..c1faa3a 100644
--- a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/commands/GenerateHelpMojo.java
+++ b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/commands/GenerateHelpMojo.java
@@ -20,7 +20,6 @@ package org.apache.karaf.tooling.commands;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.PrintStream;
-import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.ArrayList;
@@ -32,7 +31,6 @@ import java.util.TreeSet;
 
 import org.apache.karaf.shell.api.action.Action;
 import org.apache.karaf.shell.api.action.Command;
-import org.apache.maven.artifact.DependencyResolutionRequiredException;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
@@ -163,8 +161,8 @@ public class GenerateHelpMojo extends AbstractMojo {
         }
     }
 
-    private ClassFinder createFinder(String classloaderType) throws DependencyResolutionRequiredException, MalformedURLException,
-        Exception, MojoFailureException {
+    private ClassFinder createFinder(String classloaderType) throws
+            Exception {
         ClassFinder finder;
         if ("project".equals(classloaderType)) {
             List<URL> urls = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateDescriptorMojo.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateDescriptorMojo.java b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateDescriptorMojo.java
index 74768c7..76878f0 100644
--- a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateDescriptorMojo.java
+++ b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateDescriptorMojo.java
@@ -751,7 +751,7 @@ public class GenerateDescriptorMojo extends MojoSupport {
     @Parameter
     protected Map<String, String> systemProperties;
 
-    private void checkChanges(Features newFeatures, ObjectFactory objectFactory) throws Exception, IOException, JAXBException, XMLStreamException {
+    private void checkChanges(Features newFeatures, ObjectFactory objectFactory) throws Exception {
         if (checkDependencyChange) {
             //combine all the dependencies to one feature and strip out versions
             Features features = objectFactory.createFeaturesRoot();

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/utils/Dependency30Helper.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/utils/Dependency30Helper.java b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/utils/Dependency30Helper.java
index 533eb26..29e1464 100644
--- a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/utils/Dependency30Helper.java
+++ b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/utils/Dependency30Helper.java
@@ -184,7 +184,7 @@ public class Dependency30Helper implements DependencyHelper {
 
     private static class Scanner {
 
-        private static enum Accept {
+        private enum Accept {
             ACCEPT(true, true),
             PROVIDED(true, false),
             STOP(false, false);
@@ -192,7 +192,7 @@ public class Dependency30Helper implements DependencyHelper {
             private final boolean more;
             private final boolean local;
 
-            private Accept(boolean more, boolean local) {
+            Accept(boolean more, boolean local) {
                 this.more = more;
                 this.local = local;
             }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/utils/Dependency31Helper.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/utils/Dependency31Helper.java b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/utils/Dependency31Helper.java
index 89a1762..232f680 100644
--- a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/utils/Dependency31Helper.java
+++ b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/utils/Dependency31Helper.java
@@ -183,7 +183,7 @@ public class Dependency31Helper implements DependencyHelper {
 
     private static class Scanner {
 
-        private static enum Accept {
+        private enum Accept {
             ACCEPT(true, true),
             PROVIDED(true, false),
             STOP(false, false);
@@ -191,7 +191,7 @@ public class Dependency31Helper implements DependencyHelper {
             private final boolean more;
             private final boolean local;
 
-            private Accept(boolean more, boolean local) {
+            Accept(boolean more, boolean local) {
                 this.more = more;
                 this.local = local;
             }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/utils/DependencyHelper.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/utils/DependencyHelper.java b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/utils/DependencyHelper.java
index 62e5a68..0657f7e 100644
--- a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/utils/DependencyHelper.java
+++ b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/utils/DependencyHelper.java
@@ -36,27 +36,27 @@ import org.apache.maven.project.ProjectBuildingRequest;
  */
 public interface DependencyHelper {
 
-    public abstract Collection<LocalDependency> getLocalDependencies();
+    Collection<LocalDependency> getLocalDependencies();
 
-    public abstract String getTreeListing();
+    String getTreeListing();
 
-    public abstract void getDependencies(MavenProject project, boolean useTransitiveDependencies) throws MojoExecutionException;
+    void getDependencies(MavenProject project, boolean useTransitiveDependencies) throws MojoExecutionException;
 
-    public boolean isArtifactAFeature(Object artifact);
+    boolean isArtifactAFeature(Object artifact);
 
-    public abstract String getArtifactId(Object artifact);
+    String getArtifactId(Object artifact);
 
-	public abstract String getBaseVersion(Object artifact);
+	String getBaseVersion(Object artifact);
 
-	public abstract String getGroupId(Object artifact);
+	String getGroupId(Object artifact);
     
-    public abstract String getClassifier(Object artifact);
+    String getClassifier(Object artifact);
 
-    public abstract File resolve(Object artifact, Log log);
+    File resolve(Object artifact, Log log);
 
-    public abstract File resolveById(String id, Log log) throws MojoFailureException;
+    File resolveById(String id, Log log) throws MojoFailureException;
 
-    public abstract void setRepositorySession(ProjectBuildingRequest request) throws MojoExecutionException;
+    void setRepositorySession(ProjectBuildingRequest request) throws MojoExecutionException;
     
     /**
      * Convert a Maven <code>Artifact</code> into a PAX URL mvn format.
@@ -65,7 +65,7 @@ public interface DependencyHelper {
      * @return The corresponding PAX URL mvn format (mvn:groupId/artifactId/version/type/classifier)
      * @throws MojoExecutionException If the plugin execution fails.
      */
-    public String artifactToMvn(Artifact artifact, String versionOrRange) throws MojoExecutionException;
+    String artifactToMvn(Artifact artifact, String versionOrRange) throws MojoExecutionException;
 
     /**
      * Convert an Aether (Sonatype or Eclipse) artifact into a PAX URL mvn format.
@@ -74,9 +74,9 @@ public interface DependencyHelper {
      * @return The corresponding PAX URL mvn format (mvn:groupId/artifactId/version/type/classifier).
      * @throws MojoExecutionException If the plugin execution fails.
      */
-    public String artifactToMvn(Object object, String versionOrRange) throws MojoExecutionException;
+    String artifactToMvn(Object object, String versionOrRange) throws MojoExecutionException;
 
-    public Artifact mvnToArtifact(String name) throws MojoExecutionException;
+    Artifact mvnToArtifact(String name) throws MojoExecutionException;
 
     /**
      * Convert a PAX URL mvn format into a filesystem path.
@@ -85,7 +85,7 @@ public interface DependencyHelper {
      * @return The filesystem path.
      * @throws MojoExecutionException If the plugin execution fails.
      */
-    public String pathFromMaven(String name) throws MojoExecutionException;
+    String pathFromMaven(String name) throws MojoExecutionException;
 
     /**
      * Convert an Aether coordinate format into a filesystem path.
@@ -94,5 +94,5 @@ public interface DependencyHelper {
      * @return The filesystem path.
      * @throws MojoExecutionException If the plugin execution fails.
      */
-    public String pathFromAether(String name) throws MojoExecutionException;
+    String pathFromAether(String name) throws MojoExecutionException;
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/tooling/karaf-maven-plugin/src/test/java/org/apache/karaf/tooling/VerifyMojoTest.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/test/java/org/apache/karaf/tooling/VerifyMojoTest.java b/tooling/karaf-maven-plugin/src/test/java/org/apache/karaf/tooling/VerifyMojoTest.java
index 78683e1..ce51e27 100644
--- a/tooling/karaf-maven-plugin/src/test/java/org/apache/karaf/tooling/VerifyMojoTest.java
+++ b/tooling/karaf-maven-plugin/src/test/java/org/apache/karaf/tooling/VerifyMojoTest.java
@@ -22,7 +22,6 @@ import org.apache.karaf.tooling.VerifyMojo;
 import org.junit.Test;
 
 import java.util.Arrays;
-import java.util.HashSet;
 import java.util.regex.Pattern;
 
 import static org.junit.Assert.assertFalse;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/tooling/karaf-maven-plugin/src/test/java/org/apache/karaf/tooling/features/GenerateDescriptorMojoTest.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/test/java/org/apache/karaf/tooling/features/GenerateDescriptorMojoTest.java b/tooling/karaf-maven-plugin/src/test/java/org/apache/karaf/tooling/features/GenerateDescriptorMojoTest.java
index 0eecbd0..3a4a010 100644
--- a/tooling/karaf-maven-plugin/src/test/java/org/apache/karaf/tooling/features/GenerateDescriptorMojoTest.java
+++ b/tooling/karaf-maven-plugin/src/test/java/org/apache/karaf/tooling/features/GenerateDescriptorMojoTest.java
@@ -22,7 +22,6 @@ package org.apache.karaf.tooling.features;
 import static org.junit.Assert.*;
 
 import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
 import java.net.URL;
 import java.util.List;
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/tooling/karaf-services-maven-plugin/src/main/java/org/apache/karaf/tooling/tracker/GenerateServiceMetadata.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-services-maven-plugin/src/main/java/org/apache/karaf/tooling/tracker/GenerateServiceMetadata.java b/tooling/karaf-services-maven-plugin/src/main/java/org/apache/karaf/tooling/tracker/GenerateServiceMetadata.java
index 203108d..ba4fac1 100644
--- a/tooling/karaf-services-maven-plugin/src/main/java/org/apache/karaf/tooling/tracker/GenerateServiceMetadata.java
+++ b/tooling/karaf-services-maven-plugin/src/main/java/org/apache/karaf/tooling/tracker/GenerateServiceMetadata.java
@@ -17,7 +17,6 @@
 package org.apache.karaf.tooling.tracker;
 
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.OutputStream;
 import java.net.URL;
 import java.net.URLClassLoader;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/util/src/main/java/org/apache/karaf/util/collections/CopyOnWriteArrayIdentityList.java
----------------------------------------------------------------------
diff --git a/util/src/main/java/org/apache/karaf/util/collections/CopyOnWriteArrayIdentityList.java b/util/src/main/java/org/apache/karaf/util/collections/CopyOnWriteArrayIdentityList.java
index f3da875..3548db1 100644
--- a/util/src/main/java/org/apache/karaf/util/collections/CopyOnWriteArrayIdentityList.java
+++ b/util/src/main/java/org/apache/karaf/util/collections/CopyOnWriteArrayIdentityList.java
@@ -282,10 +282,7 @@ public class CopyOnWriteArrayIdentityList<E> implements List<E>, RandomAccess, C
                 return false;
             }
         }
-        if (ourIt.hasNext()) {
-            return false;
-        }
-        return true;
+        return !ourIt.hasNext();
     }
 
     public E get(int index) {
@@ -740,10 +737,7 @@ public class CopyOnWriteArrayIdentityList<E> implements List<E>, RandomAccess, C
         }
 
         public boolean hasNext() {
-            if (current < size) {
-                return true;
-            }
-            return false;
+            return current < size;
         }
 
         public boolean hasPrevious() {

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/util/src/test/java/org/apache/karaf/util/BundleUtilsTest.java
----------------------------------------------------------------------
diff --git a/util/src/test/java/org/apache/karaf/util/BundleUtilsTest.java b/util/src/test/java/org/apache/karaf/util/BundleUtilsTest.java
index 39f45f5..08f134b 100644
--- a/util/src/test/java/org/apache/karaf/util/BundleUtilsTest.java
+++ b/util/src/test/java/org/apache/karaf/util/BundleUtilsTest.java
@@ -21,7 +21,6 @@ import org.junit.Test;
 
 import java.io.File;
 import java.io.FileInputStream;
-import java.net.URL;
 
 public class BundleUtilsTest {
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java
----------------------------------------------------------------------
diff --git a/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java b/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java
index 7b285c1..d95af9c 100644
--- a/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java
+++ b/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java
@@ -201,7 +201,7 @@ public class GogoPlugin extends AbstractWebConsolePlugin {
                 throw e;
             } catch (Exception e) {
                 e.printStackTrace();
-                throw (IOException) new IOException().initCause(e);
+                throw new IOException(e);
             }
             new Thread(this).start();
         }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/WebTerminal.java
----------------------------------------------------------------------
diff --git a/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/WebTerminal.java b/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/WebTerminal.java
index e7fe2a8..c916c0b 100644
--- a/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/WebTerminal.java
+++ b/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/WebTerminal.java
@@ -21,7 +21,6 @@ package org.apache.karaf.webconsole.gogo;
  import java.io.OutputStream;
  import java.util.EnumSet;
 
- import org.apache.karaf.shell.api.console.Signal;
  import org.apache.karaf.shell.api.console.SignalListener;
  import org.apache.karaf.shell.api.console.Terminal;
  import org.jline.terminal.impl.ExternalTerminal;

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/webconsole/instance/src/main/java/org/apache/karaf/webconsole/instance/InstancePlugin.java
----------------------------------------------------------------------
diff --git a/webconsole/instance/src/main/java/org/apache/karaf/webconsole/instance/InstancePlugin.java b/webconsole/instance/src/main/java/org/apache/karaf/webconsole/instance/InstancePlugin.java
index 60bca0c..70793a9 100644
--- a/webconsole/instance/src/main/java/org/apache/karaf/webconsole/instance/InstancePlugin.java
+++ b/webconsole/instance/src/main/java/org/apache/karaf/webconsole/instance/InstancePlugin.java
@@ -230,7 +230,7 @@ public class InstancePlugin extends AbstractWebConsolePlugin {
         }
     }
 
-    private void instanceInfo(JSONWriter jw, Instance instance) throws IOException, Exception {
+    private void instanceInfo(JSONWriter jw, Instance instance) throws Exception {
         jw.object();
         jw.key("pid");
         jw.value(instance.getPid());

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/webconsole/instance/src/test/java/org/apache/karaf/webconsole/instance/InstancePluginTest.java
----------------------------------------------------------------------
diff --git a/webconsole/instance/src/test/java/org/apache/karaf/webconsole/instance/InstancePluginTest.java b/webconsole/instance/src/test/java/org/apache/karaf/webconsole/instance/InstancePluginTest.java
index 88e243f..3ba4c87 100644
--- a/webconsole/instance/src/test/java/org/apache/karaf/webconsole/instance/InstancePluginTest.java
+++ b/webconsole/instance/src/test/java/org/apache/karaf/webconsole/instance/InstancePluginTest.java
@@ -47,7 +47,7 @@ public class InstancePluginTest extends TestCase {
     @SuppressWarnings("unchecked")
     private List<String> testParseStringList(String s) throws Exception {
         InstancePlugin ap = new InstancePlugin();
-        Method m = ap.getClass().getDeclaredMethod("parseStringList", new Class [] {String.class});
+        Method m = ap.getClass().getDeclaredMethod("parseStringList", String.class);
         m.setAccessible(true);
         return (List<String>) m.invoke(ap, s);
     }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d5d25169/wrapper/src/main/java/org/apache/karaf/wrapper/WrapperService.java
----------------------------------------------------------------------
diff --git a/wrapper/src/main/java/org/apache/karaf/wrapper/WrapperService.java b/wrapper/src/main/java/org/apache/karaf/wrapper/WrapperService.java
index 814e9a2..767eb54 100644
--- a/wrapper/src/main/java/org/apache/karaf/wrapper/WrapperService.java
+++ b/wrapper/src/main/java/org/apache/karaf/wrapper/WrapperService.java
@@ -28,7 +28,7 @@ public interface WrapperService {
      *
      * @throws Exception If the wrapper install fails.
      */
-    public void install() throws Exception;
+    void install() throws Exception;
 
     /**
      * Install the Karaf container as a system service in the OS.
@@ -40,7 +40,7 @@ public interface WrapperService {
      * @return An array containing the wrapper configuration file (index 0) and the service file (index 1).
      * @throws Exception If the wrapper install fails.
      */
-    public File[] install(String name, String displayName, String description, String startType) throws Exception;
+    File[] install(String name, String displayName, String description, String startType) throws Exception;
     
     /**
      * Install the Karaf container as a system service in the OS.
@@ -54,6 +54,6 @@ public interface WrapperService {
      * @return An array containing the wrapper configuration file (index 0) and the service file (index 1).
      * @throws Exception If the wrapper install fails.
      */
-    public File[] install(String name, String displayName, String description, String startType, String[] envs, String[] includes) throws Exception;
+    File[] install(String name, String displayName, String description, String startType, String[] envs, String[] includes) throws Exception;
 
 }