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

org.apache.felix.webconsole.DefaultBrandingPlugin Maven / Gradle / Ivy

/*
 * 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.IOException;
import java.io.InputStream;
import java.util.Properties;

import org.apache.commons.io.IOUtils;


/**
 * The DefaultBrandingPlugin class is the default implementation
 * of the {@link BrandingPlugin} interface. The singleton instance of this
 * class is used as branding plugin if no BrandingPlugin service is registered
 * in the system.
 * 

* This default implementation provides Apache Felix based default branding * as follows: *

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
NameProperty NameDefault Value
Brand Namewebconsole.brand.nameApache Felix Web Console
Product Namewebconsole.product.nameApache Felix
Product URLwebconsole.product.urlhttp://felix.apache.org
Product Imagewebconsole.product.image/res/imgs/logo.png
Vendor Namewebconsole.vendor.nameThe Apache Software Foundation
Vendor URLwebconsole.vendor.urlhttp://www.apache.org
Vendor Imagewebconsole.vendor.image/res/imgs/logo.png
Favourite Iconwebconsole.favicon/res/imgs/favicon.ico
Main Stylesheetwebconsole.stylesheet/res/ui/admin.css
*

* If a properties file META-INF/webconsole.properties is available * through the class loader of this class, the properties overwrite the default * settings according to the property names listed above. The easiest way to * add such a properties file is to provide a fragment bundle with the file. */ public class DefaultBrandingPlugin implements BrandingPlugin { /** * The name of the bundle entry providing branding properties for this * default branding plugin (value is "/META-INF/webconsole.properties"). */ private static final String BRANDING_PROPERTIES = "/META-INF/webconsole.properties"; //$NON-NLS-1$ private static DefaultBrandingPlugin instance; private final String brandName; private final String productName; private final String productURL; private final String productImage; private final String vendorName; private final String vendorURL; private final String vendorImage; private final String favIcon; private final String mainStyleSheet; private DefaultBrandingPlugin() { Properties props = new Properties(); // try to load the branding properties InputStream ins = getClass().getResourceAsStream( BRANDING_PROPERTIES ); if ( ins != null ) { try { props.load( ins ); } catch ( IOException ignore ) { /* ignore - will use defaults */ } finally { IOUtils.closeQuietly( ins ); } } // set the fields from the properties now brandName = props.getProperty( "webconsole.brand.name", "Apache Felix Web Console" ); //$NON-NLS-1$ productName = props.getProperty( "webconsole.product.name", "Apache Felix" ); //$NON-NLS-1$ productURL = props.getProperty( "webconsole.product.url", "http://felix.apache.org" ); //$NON-NLS-1$ productImage = props.getProperty( "webconsole.product.image", "/res/imgs/logo.png" ); //$NON-NLS-1$ vendorName = props.getProperty( "webconsole.vendor.name", "The Apache Software Foundation" ); //$NON-NLS-1$ vendorURL = props.getProperty( "webconsole.vendor.url", "http://www.apache.org" ); //$NON-NLS-1$ vendorImage = props.getProperty( "webconsole.vendor.image", "/res/imgs/logo.png" ); //$NON-NLS-1$ favIcon = props.getProperty( "webconsole.favicon", "/res/imgs/favicon.ico" ); //$NON-NLS-1$ mainStyleSheet = props.getProperty( "webconsole.stylesheet", "/res/ui/webconsole.css" ); //$NON-NLS-1$ } /** * Retrieves the shared instance * * @return the singleton instance of the object */ public static DefaultBrandingPlugin getInstance() { if ( instance == null ) { instance = new DefaultBrandingPlugin(); } return instance; } /** * @see org.apache.felix.webconsole.BrandingPlugin#getBrandName() */ public String getBrandName() { return brandName; } /** * @see org.apache.felix.webconsole.BrandingPlugin#getProductName() */ public String getProductName() { return productName; } /** * @see org.apache.felix.webconsole.BrandingPlugin#getProductURL() */ public String getProductURL() { return productURL; } /** * @see org.apache.felix.webconsole.BrandingPlugin#getProductImage() */ public String getProductImage() { return productImage; } /** * @see org.apache.felix.webconsole.BrandingPlugin#getVendorName() */ public String getVendorName() { return vendorName; } /** * @see org.apache.felix.webconsole.BrandingPlugin#getVendorURL() */ public String getVendorURL() { return vendorURL; } /** * @see org.apache.felix.webconsole.BrandingPlugin#getVendorImage() */ public String getVendorImage() { return vendorImage; } /** * @see org.apache.felix.webconsole.BrandingPlugin#getFavIcon() */ public String getFavIcon() { return favIcon; } /** * @see org.apache.felix.webconsole.BrandingPlugin#getMainStyleSheet() */ public String getMainStyleSheet() { return mainStyleSheet; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy