Package org.glite.authz.pap.monitoring

Source Code of org.glite.authz.pap.monitoring.MonitoredProperties

/**
* Copyright (c) Members of the EGEE Collaboration. 2006-2009.
* See http://www.eu-egee.org/partners/ for details on the copyright holders.
*
* Licensed 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.glite.authz.pap.monitoring;

import java.util.Map;
import java.util.TreeMap;

import org.glite.authz.pap.common.PAPConfiguration;
import org.glite.authz.pap.common.Version;

/**
*
* Creates a runtime snapshot of pap monitored properties.
*
*/
public class MonitoredProperties {

    /**
     * Number of policies property name
     */
    public static final String NUM_OF_POLICIES_PROP_NAME = "NumberOfPolicies";
    /**
     * Number of local policies property name
     */
    public static final String NUM_OF_LOCAL_POLICIES_PROP_NAME = "NumberOfLocalPolicies";
   
    /**
     * Number of remote policies property name
     */
    public static final String NUM_OF_REMOTE_POLICIES_PROP_NAME = "NumberOfRemotePolicies";
    /**
     * Policy last modification time property name
     */
    public static final String POLICY_LAST_MODIFICATION_TIME_PROP_NAME = "PolicyLastModificationTime";
   
    /**
     * Policy last modification time millis property name
     */
    public static final String POLICY_LAST_MODIFICATION_TIME_MILLIS_PROP_NAME = "PolicyLastModificationTimeMillis";
   
    /**
     * Service startup time property name
     */
    public static final String SERVICE_STARTUP_TIME_PROP_NAME = "ServiceStartupTime";
   
    /**
     * Service startup time millis property name
     */
    public static final String SERVICE_STARTUP_TIME_MILLIS_PROP_NAME = "ServiceStartupTimeMillis";
   
    /**
     * Status property name
     */
    public static final String STATUS_PROP_NAME = "Status";
    /**
     * Used memory property name
     */
    public static final String USED_MEMORY_PROP_NAME = "UsedMemory";
    /**
     * Max memory property name
     */
    public static final String MAX_MEMORY_PROP_NAME = "MaxMemory";
   
    /**
     * Pap version property name
     */
    public static final String SERVICE_VERSION_PROP_NAME = "ServiceVersion";
   
    /**
     * Service name property name
     */
    public static final String SERVICE_NAME_PROP_NAME = "Service";
   
   
    private static final String[] propertyOrdering = {
        STATUS_PROP_NAME,
        SERVICE_NAME_PROP_NAME,
        SERVICE_VERSION_PROP_NAME,
        SERVICE_STARTUP_TIME_PROP_NAME,
        SERVICE_STARTUP_TIME_MILLIS_PROP_NAME,
        MAX_MEMORY_PROP_NAME,
        USED_MEMORY_PROP_NAME,
        POLICY_LAST_MODIFICATION_TIME_PROP_NAME,
        POLICY_LAST_MODIFICATION_TIME_MILLIS_PROP_NAME,
        NUM_OF_POLICIES_PROP_NAME,
        NUM_OF_LOCAL_POLICIES_PROP_NAME,
        NUM_OF_REMOTE_POLICIES_PROP_NAME
    };
   

    /**
     * The map that holds the monitored properties
     */
    TreeMap<String, String> props;

   
    /**
     * Constructor
     */
    private MonitoredProperties() {

        props = new TreeMap<String, String>();

        PAPConfiguration conf = PAPConfiguration.instance();
       
        props.put(STATUS_PROP_NAME, "OK");
        props.put(SERVICE_NAME_PROP_NAME, "Argus PAP");
        props.put(SERVICE_VERSION_PROP_NAME, Version.getServiceVersion() );
        props.put(SERVICE_STARTUP_TIME_PROP_NAME, conf.getMonitoringProperty(SERVICE_STARTUP_TIME_PROP_NAME).toString());
        props.put(SERVICE_STARTUP_TIME_MILLIS_PROP_NAME, conf.getMonitoringProperty(SERVICE_STARTUP_TIME_MILLIS_PROP_NAME).toString());
       
        props.put(NUM_OF_POLICIES_PROP_NAME, conf.getMonitoringProperty(NUM_OF_POLICIES_PROP_NAME).toString());
        props.put(NUM_OF_LOCAL_POLICIES_PROP_NAME, conf.getMonitoringProperty(NUM_OF_LOCAL_POLICIES_PROP_NAME).toString());
        props.put(NUM_OF_REMOTE_POLICIES_PROP_NAME, conf.getMonitoringProperty(NUM_OF_REMOTE_POLICIES_PROP_NAME).toString());
        props.put(POLICY_LAST_MODIFICATION_TIME_PROP_NAME, conf.getMonitoringProperty(POLICY_LAST_MODIFICATION_TIME_PROP_NAME)
                .toString());
       
        props.put(POLICY_LAST_MODIFICATION_TIME_MILLIS_PROP_NAME, conf.getMonitoringProperty(POLICY_LAST_MODIFICATION_TIME_MILLIS_PROP_NAME)
                .toString());

        Runtime r = Runtime.getRuntime();
        props.put(USED_MEMORY_PROP_NAME, "" + r.totalMemory() + " bytes");
        props.put(MAX_MEMORY_PROP_NAME, "" + r.maxMemory() + " bytes");

    }

    /**
     *
     * @return an updated instance of {@link MonitoredProperties}
     */
    public static MonitoredProperties instance() {

        return new MonitoredProperties();
    }

    private String propertyString(String propName){
     
      return propName + ": "+props.get(propName);
    }
   
    @Override
    public String toString() {

        StringBuilder builder = new StringBuilder();
       
        for (String s: propertyOrdering)
          builder.append(propertyString(s)+"\n");
       
        return builder.toString();
    }

}
TOP

Related Classes of org.glite.authz.pap.monitoring.MonitoredProperties

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.