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