blob: ce7cd5474814504b5b5b3fbe4c87d0d46880b705 [file] [log] [blame]
/*
* 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.felix.webconsole;
import java.io.PrintWriter;
/**
* The <code>ConfigurationPrinter</code> is a service interface to be used by
* providers which want to hook into the display of the current configuration
* of the OSGi framework.
* A configuration printer is currently used in three modes: displayed in
* a tab of the configuration web console plugin, included in a downloadable
* zip of the configuration or a downloadable txt file.
* With the {@link WebConsoleConstants#CONFIG_PRINTER_MODES} property this
* service can specify when it should be included.
* The default mode is {@link #MODE_ALWAYS}.
* @deprecated This has been deprecated. Use the org.apache.felix.status
* API instead.
*/
public interface ConfigurationPrinter
{
/**
* The service name under which services of this class must be registered
* to be picked for inclusion in the configuration report.
*/
String SERVICE = ConfigurationPrinter.class.getName();
/**
* The default mode - this printer is used in the web console and the zip.
*
* @since 3.0
*/
String MODE_ALWAYS = "always"; //$NON-NLS-1$
/**
* The web mode - this printer is used in the web console.
* <p>
* Output of the configuration printer is HTML-escaped unless the
* {@link WebConsoleConstants#CONFIG_PRINTER_WEB_UNESCAPED} service
* registration property is set to <code>true</code>.
*
* @since 3.0
*/
String MODE_WEB = "web"; //$NON-NLS-1$
/**
* The zip mode - this printer is used in the zip.
*
* @since 3.0
*/
String MODE_ZIP = "zip"; //$NON-NLS-1$
/**
* The txt mode - this printer is used in the txt.
*
* @since 3.0
*/
String MODE_TXT = "txt"; //$NON-NLS-1$
/**
* The optional service property specifying the modes of the printer.
* If this property is missing or contains an unknown value, the default
* {@link #MODE_ALWAYS} is used.
* The value of this property is either a single string or an
* array of strings.
*
* @since 3.0
* @deprecated Use {@link WebConsoleConstants#CONFIG_PRINTER_MODES}
*/
String PROPERTY_MODES = "modes"; //$NON-NLS-1$
/**
* Returns a human readable title string to be placed in front of the configuration
* report generated by the {@link #printConfiguration(PrintWriter)} method.
*
* @return the configuration title
*/
String getTitle();
/**
* Prints the configuration report to the given <code>printWriter</code>.
* Implementations are free to print whatever information they deem useful.
*
* @param printWriter where to write the configuration data. It might be flushed,
* but must not be closed.
*/
void printConfiguration( PrintWriter printWriter );
}