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); - } -}