SLING-11103 - Improvements in synchronization and additional logging - Clean up code
diff --git a/src/main/java/org/apache/sling/rewriter/impl/ProcessorManagerImpl.java b/src/main/java/org/apache/sling/rewriter/impl/ProcessorManagerImpl.java
index 5640ef6..f0c1514 100644
--- a/src/main/java/org/apache/sling/rewriter/impl/ProcessorManagerImpl.java
+++ b/src/main/java/org/apache/sling/rewriter/impl/ProcessorManagerImpl.java
@@ -65,8 +65,11 @@
           ResourceChangeListener.CHANGES + "=REMOVED",
           ResourceChangeListener.CHANGES + "=PROVIDER_ADDED",
           ResourceChangeListener.CHANGES + "=PROVIDER_REMOVED",
-          ResourceChangeListener.PATHS + "=glob:*" + ProcessorManagerImpl.CONFIG_PATH + "/**"
-  })
+          ResourceChangeListener.PATHS + "=glob:*" + ProcessorManagerImpl.CONFIG_PATH + "/**",
+          "felix.webconsole.label=slingrewriter",
+          "felix.webconsole.title=Sling Rewriter",
+          "felix.webconsole.configprinter.modes=always"
+    })
 public class ProcessorManagerImpl
     implements ProcessorManager, ResourceChangeListener, ExternalResourceChangeListener  {
 
@@ -91,7 +94,7 @@
     private final Map<String, ConfigEntry[]> processors = new HashMap<>();
 
     /** Ordered processor configurations. */
-    private List<ProcessorConfiguration> orderedProcessors = new ArrayList<>();
+    private final List<ProcessorConfiguration> orderedProcessors = new ArrayList<>();
 
     /** Search path */
     private String[] searchPath;
@@ -111,8 +114,6 @@
         // create array of search paths for actions and constraints
         this.searchPath = this.initProcessors();
     	this.factoryCache.start();
-
-        WebConsoleConfigPrinter.register(ctx, this);
     }
 
     private ResourceResolver createResourceResolver() throws LoginException {
@@ -126,8 +127,6 @@
     protected void deactivate(final ComponentContext ctx) {
         this.factoryCache.stop();
         this.factoryCache = null;
-
-        WebConsoleConfigPrinter.unregister();
     }
 
     @Override
@@ -261,7 +260,11 @@
         pw.println(entry.path);
     }
 
-    synchronized void printConfiguration(final PrintWriter pw) {
+    /**
+     * Print out the rewriter configs.
+     * See org.apache.felix.webconsole.ConfigurationPrinter#printConfiguration(java.io.PrintWriter).
+     */
+    public synchronized void printConfiguration(final PrintWriter pw) {
         pw.println("Current Apache Sling Rewriter Configuration");
         pw.println("=================================================================");
         pw.println("Active Configurations");
diff --git a/src/main/java/org/apache/sling/rewriter/impl/WebConsoleConfigPrinter.java b/src/main/java/org/apache/sling/rewriter/impl/WebConsoleConfigPrinter.java
deleted file mode 100644
index d5b576a..0000000
--- a/src/main/java/org/apache/sling/rewriter/impl/WebConsoleConfigPrinter.java
+++ /dev/null
@@ -1,74 +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.sling.rewriter.impl;
-
-import java.io.PrintWriter;
-import java.util.Dictionary;
-import java.util.Hashtable;
-
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Constants;
-import org.osgi.framework.ServiceRegistration;
-
-/**
- * This is a configuration printer for the web console which
- * prints out the currently configured processors/pipelines.
- *
- */
-public class WebConsoleConfigPrinter {
-
-    final ProcessorManagerImpl manager;
-
-    private static ServiceRegistration REG;
-
-    public WebConsoleConfigPrinter(final ProcessorManagerImpl manager) {
-        this.manager = manager;
-    }
-
-    public static void register(final BundleContext bundleContext,
-                                final ProcessorManagerImpl manager) {
-        final WebConsoleConfigPrinter printer = new WebConsoleConfigPrinter(manager);
-        final Dictionary<String, String> serviceProps = new Hashtable<String, String>();
-        serviceProps.put(Constants.SERVICE_DESCRIPTION,
-            "Apache Sling Rewriter Configuration Printer");
-        serviceProps.put(Constants.SERVICE_VENDOR, "The Apache Software Foundation");
-        serviceProps.put("felix.webconsole.label", "slingrewriter");
-        serviceProps.put("felix.webconsole.title", "Sling Rewriter");
-        serviceProps.put("felix.webconsole.configprinter.modes", "always");
-
-        REG = bundleContext.registerService(WebConsoleConfigPrinter.class.getName(),
-                printer,
-                serviceProps);
-    }
-
-    public static void unregister() {
-        if ( REG != null) {
-            REG.unregister();
-            REG = null;
-        }
-    }
-
-    /**
-     * Print out the rewriter configs.
-     * See org.apache.felix.webconsole.ConfigurationPrinter#printConfiguration(java.io.PrintWriter).
-     */
-    public void printConfiguration(PrintWriter pw) {
-        this.manager.printConfiguration(pw);
-    }
-}