All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.felix.inventory.InventoryPrinter Maven / Gradle / Ivy

There is a newer version: 2024.11.18751.20241128T090041Z-241100
Show newest version
/*
 * 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.inventory;

import java.io.PrintWriter;

import org.osgi.annotation.versioning.ConsumerType;

/**
 * The InventoryPrinter is a service interface to be
 * implemented by providers which want to hook into the display of the
 * current configuration and state of the OSGi framework and application.
 * 

* The following service registration properties further declare the * {@code InventoryPrinter} service: *

    *
  • {@link #FORMAT} - the supported formats
  • *
  • {@link #TITLE} - the printer title
  • *
  • {@link #NAME} - the printer name
  • *
  • {@link #WEBCONSOLE} - whether to confine the printer to the Web Console
  • *
*/ @ConsumerType public interface InventoryPrinter { /** * The service name under which services of this class must be registered * to be picked for inclusion in the configuration report. */ String SERVICE = "org.apache.felix.inventory.InventoryPrinter"; //$NON-NLS-1$ /** * The property defining one or more supported formats. The value of this * property is either a string, a string array or a Collection * containing valid names of the constants defined in the {@link Format} * class. *

* Any unknown formats are ignored. If this property is not declared or does * not declare any known formats, the {@link Format#TEXT} format is assumed * as the printer's supported format. */ String FORMAT = "felix.inventory.printer.format"; //$NON-NLS-1$ /** * The unique name (or label) of the printer. *

* If this property is missing or an empty string, the name is constructed * from the string {@code InventoryPrinter} and the service's * {@code service.id} property. */ String NAME = "felix.inventory.printer.name"; //$NON-NLS-1$ /** * The title displayed by tools when this printer is used. It should be * descriptive but short. *

* If this property is missing or an empty string, the {@link #NAME} value * is used as the title. */ String TITLE = "felix.inventory.printer.title"; //$NON-NLS-1$ /** * The inventory printer feature has first class integration with the * Apache Felix Web Console. This service registration property can be used * to hide an inventory printer service from the Web Console. The service * will still be called to generate the single file or ZIP file output of * inventory printers. *

* By default, a printer is displayed in the web console, unless this * property is set to {@code false}. The property value can either be a * boolean or a string. */ String WEBCONSOLE = "felix.inventory.printer.webconsole"; //$NON-NLS-1$ /** * Prints the configuration report to the given printWriter. * Implementations are free to print whatever information they deem useful. *

* If a printer is invoked with a format it doesn't support ( {@link #FORMAT}) * the printer should just do/print nothing and directly return. *

* A printer might be used in one of two different situations: either for * directly displaying the information to a user (like in the web console) * or the output is included in a ZIP. The printer might want to return * different output depending on the usage situation. * * @param printWriter where to write the data. Implementations may flush the * writer but must not close it. * @param format The render format. * @param isZip whether this is included in a ZIP file or used directly */ void print(PrintWriter printWriter, Format format, boolean isZip); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy