JMXUtils.java

/*
 * GovWay - A customizable API Gateway 
 * https://govway.org
 * 
 * Copyright (c) 2005-2024 Link.it srl (https://link.it).
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 3, as published by
 * the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 */
package org.openspcoop2.pdd.core.jmx;

import javax.management.MBeanAttributeInfo;
import javax.management.MBeanOperationInfo;
import javax.management.MBeanParameterInfo;

/**
 * JMXUtils
 * 
 * @author Poli Andrea (apoli@link.it)
 * @author $Author$
 * @version $Rev$, $Date$
 */
public class JMXUtils {

	/** Nomi attributi */
	public static final String CACHE_ATTRIBUTE_ABILITATA = "cacheAbilitata";
	
	/** Nomi metodi */
	public static final String CACHE_METHOD_NAME_RESET = "resetCache"; 
	public static final String CACHE_METHOD_NAME_PREFILL = "prefillCache"; 
	public static final String CACHE_METHOD_NAME_PRINT_STATS = "printStatsCache"; 
	public static final String CACHE_METHOD_NAME_ABILITA = "abilitaCache";
	public static final String CACHE_METHOD_NAME_DISABILITA = "disabilitaCache";
	public static final String CACHE_METHOD_NAME_LIST_KEYS = "listKeysCache";
	public static final String CACHE_METHOD_NAME_GET_OBJECT = "getObjectCache";
	public static final String CACHE_METHOD_NAME_REMOVE_OBJECT = "removeObjectCache";
	
	/** Messaggi */
	public static final String MSG_OPERAZIONE_REGISTRATA_SUCCESSO_TEMPLATE_SECONDI = "SECONDI";
	public static final String MSG_OPERAZIONE_REGISTRATA_SUCCESSO = "la richiesta è stata registrata e verrà evasa entro "+MSG_OPERAZIONE_REGISTRATA_SUCCESSO_TEMPLATE_SECONDI+" secondi";
	public static final String MSG_OPERAZIONE_NON_EFFETTUATA = "Operazione non riuscita: ";
	public static final String MSG_OPERAZIONE_EFFETTUATA_SUCCESSO = "Operazione effettuata con successo";
	public static final String MSG_OPERAZIONE_EFFETTUATA_SUCCESSO_PREFIX = "Operazione effettuata con successo; ";
	public static final String MSG_RESET_CACHE_EFFETTUATO_SUCCESSO = "Operazione di reset effettuata con successo";
	public static final String MSG_PREFILL_CACHE_EFFETTUATO_SUCCESSO = "Operazione pre-fill cache effettuata con successo";
	public static final String MSG_ABILITAZIONE_CACHE_EFFETTUATA = "Abilitazione cache effettuata con successo";
	public static final String MSG_DISABILITAZIONE_CACHE_EFFETTUATA = "Disabilitazione cache effettuata con successo";
	public static final String MSG_RIMOZIONE_CACHE_EFFETTUATA = "Rimozione elemento dalla cache effettuata con successo";

	/** Per determinare se l'attributo e' leggibile/scrivibile */
	public static final boolean JMX_ATTRIBUTE_READABLE = true;
	public static final boolean JMX_ATTRIBUTE_WRITABLE = true;
	/** Per determinare se l'attributo e' ricavabile nella forma booleana isAttribute() */
	public static final boolean JMX_ATTRIBUTE_IS_GETTER = true;
	
	/** MBean Attribute */
	public static final MBeanAttributeInfo MBEAN_ATTRIBUTE_INFO_CACHE_ABILITATA = 
			new MBeanAttributeInfo(CACHE_ATTRIBUTE_ABILITATA,boolean.class.getName(),
					"Indicazione se e' abilita una cache",
					JMX_ATTRIBUTE_READABLE,JMX_ATTRIBUTE_WRITABLE,!JMX_ATTRIBUTE_IS_GETTER);
	
	/** MBean Operation */
	// Reset Cache
	public static final MBeanOperationInfo MBEAN_OPERATION_RESET_CACHE 
		= new MBeanOperationInfo(CACHE_METHOD_NAME_RESET,"Svuota la cache",
				null,
				String.class.getName(),
				MBeanOperationInfo.ACTION);
	
	// PreFill Cache
	public static final MBeanOperationInfo MBEAN_OPERATION_PREFILL_CACHE 
		= new MBeanOperationInfo(CACHE_METHOD_NAME_PREFILL,"Pre-fill della cache",
				null,
				String.class.getName(),
				MBeanOperationInfo.ACTION);
			
	// Print Stats Cache
	public static final MBeanOperationInfo MBEAN_OPERATION_PRINT_STATS_CACHE 
		= new MBeanOperationInfo(CACHE_METHOD_NAME_PRINT_STATS,"Visualizza le informazioni statistiche sugli oggetti presenti in cache",
			null,
			String.class.getName(),
			MBeanOperationInfo.ACTION);
			
	// Disabilita Cache
	public static final MBeanOperationInfo MBEAN_OPERATION_DISABILITA_CACHE 
		= new MBeanOperationInfo(CACHE_METHOD_NAME_DISABILITA,"Disabilita la cache",
			null,
			String.class.getName(),
			MBeanOperationInfo.ACTION);
			
	// Abilita Cache con parametri
	public static final MBeanOperationInfo MBEAN_OPERATION_ABILITA_CACHE_CON_PARAMETRI 
		= new MBeanOperationInfo(CACHE_METHOD_NAME_ABILITA,"Abilita la cache",
			new MBeanParameterInfo[]{
				new MBeanParameterInfo("dimensioneCache",long.class.getName(),"Dimensione della cache"),
				new MBeanParameterInfo("algoritmoCacheLRU",boolean.class.getName(),"Algoritmo utilizzato (lru/mru)"),
				new MBeanParameterInfo("itemIdleTime",long.class.getName(),"Indica il massimo intervallo di tempo che un item può esistere senza essere acceduto (con -1 verra' assegnato un tempo infinito)"),
				new MBeanParameterInfo("itemLifeSecond",long.class.getName(),"Vita di un elemento inserito in cache (secondi)")
			},
			String.class.getName(),
			MBeanOperationInfo.ACTION);
	
	// List keys Cache
	public static final MBeanOperationInfo MBEAN_OPERATION_LIST_KEYS_CACHE 
		= new MBeanOperationInfo(CACHE_METHOD_NAME_LIST_KEYS,"Visualizza le chiavi attualmente presenti nella cache",
			null,
			String.class.getName(),
			MBeanOperationInfo.ACTION);
	
	// get Object Cache
	public static final MBeanOperationInfo MBEAN_OPERATION_GET_OBJECT_CACHE 
		= new MBeanOperationInfo(CACHE_METHOD_NAME_GET_OBJECT,"Recupera l'oggetto registrato nella cache con chiave fornita come parametro",
			new MBeanParameterInfo[]{
				new MBeanParameterInfo("key",String.class.getName(),"Chiave dell'oggetto in cache"),
			},
			String.class.getName(),
			MBeanOperationInfo.ACTION);
	
	// remove Object Cache
	public static final MBeanOperationInfo MBEAN_OPERATION_REMOVE_OBJECT_CACHE 
		= new MBeanOperationInfo(CACHE_METHOD_NAME_REMOVE_OBJECT,"Rimuove l'oggetto registrato nella cache con chiave fornita come parametro",
			new MBeanParameterInfo[]{
				new MBeanParameterInfo("key",String.class.getName(),"Chiave dell'oggetto in cache"),
			},
			String.class.getName(),
			MBeanOperationInfo.ACTION);
	
}