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

com.gemstone.gemfire.admin.jmx.AgentConfig Maven / Gradle / Ivy

There is a newer version: 2.0-BETA
Show newest version
/*
 * Copyright (c) 2010-2015 Pivotal Software, Inc. All rights reserved.
 *
 * 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. See accompanying
 * LICENSE file.
 */
package com.gemstone.gemfire.admin.jmx;

import com.gemstone.gemfire.admin.DistributedSystemConfig;
//import com.gemstone.gemfire.admin.internal.InetAddressUtil;

/**
 * A configuration object for a JMX administration {@linkplain Agent
 * agent} that is hosted by a GemFire application VM.  A file named
 * {@link #DEFAULT_PROPERTY_FILE "agent.properties"} can be used to
 * override the default values of AgentConfig attributes.
 * The "gfAgentPropertyFile" {@linkplain System#getProperty(java.lang.String) system
 * property} can be used to specify an agent properties file other
 * than "agent.properties".  System properties prefixed with
 * {@linkplain #SYSTEM_PROPERTY_PREFIX "gemfire.agent."} can be used to
 * override the values in the properties file.  For instance
 * "-Dgemfire.agent.http-port=8081" can be used to override the
 * default port for the HTTP adapter.  Configuration related to the
 * distributed system that the JMX agent administers is inherited from
 * and described in AgentConfig's superinterface, {@link
 * DistributedSystemConfig}.
 *
 * 

* * An AgentConfig can be modified using a number of * mutator methods until it is used to create an Agent. * After that, attempts to modify most attributes in the * AgentConfig will result in an {@link * IllegalStateException} being thrown. If you wish to use the same * AgentConfig to configure multiple Agents, * a copy of the AgentConfig object can be made by * invoking its {@link #clone} method. * *

* * JMX Administation Agent Configuration Properties * *

*
{@linkplain #AUTO_CONNECT_NAME auto-connect}
*
Description: whether or not a JMX agent will * automatically connect to the distributed system it is configured to * administer.
*
{@linkplain #DEFAULT_AUTO_CONNECT Default}: false
*
* * JMX Agent SSL Configuration Properties * *

* * These parameters configure sockets that are created by the GemFire * JMX Agent regardless of which adapters are enabled. These setting * apply to all adapters. For example, if clients connect to the RMI * adapter using SSL, then clients must also connect to the HTTP * adapter using SSL (HTTPS). Note that these configuration * attributes do not effect how the agent connects to the * distributed system it administers, only how JMX clients connect to * the agent. * *

*
{@linkplain #AGENT_SSL_ENABLED_NAME agent-ssl-enabled}
*
Description: whether or not connections to the JMX agent * require SSL *
*
{@linkplain #DEFAULT_AGENT_SSL_ENABLED Default}: false
*
* *
*
{@linkplain #AGENT_SSL_PROTOCOLS_NAME agent-ssl-protocols}
*
Description: the SSL protocols to be used when connecting * to the JMX agent *
*
{@linkplain #DEFAULT_AGENT_SSL_PROTOCOLS Default}: any
*
* *
*
{@linkplain #AGENT_SSL_CIPHERS_NAME agent-ssl-ciphers}
*
Description: the SSL ciphers to be used when connecting * to the JMX agent *
*
{@linkplain #DEFAULT_AGENT_SSL_CIPHERS Default}: any
*
* *
*
{@linkplain #AGENT_SSL_REQUIRE_AUTHENTICATION_NAME agent-ssl-require-authentication}
*
Description: whether or not SSL connections to the RMI * adapter require authentication *
*
{@linkplain #DEFAULT_AGENT_SSL_REQUIRE_AUTHENTICATION Default}: true
*
* *
*
{@linkplain #HTTP_SSL_REQUIRE_AUTHENTICATION_NAME http-ssl-require-authentication}
*
Description: whether or not SSL connections to the HTTP * adapter require authentication *
*
{@linkplain #DEFAULT_HTTP_SSL_REQUIRE_AUTHENTICATION Default}: false
*
* * HTTP Adapter Configuration * *
*
{@linkplain #HTTP_ENABLED_NAME http-enabled}
*
Description: whether or not the HTTP adapter is * enabled in the JMX agent.
*
{@linkplain #DEFAULT_HTTP_ENABLED Default}: true
*
* *
*
{@linkplain #HTTP_PORT_NAME http-port}
*
Description: the port on which the HTTP adapter should * listen for client connections. *
*
{@linkplain #DEFAULT_HTTP_PORT Default}: 8080
*
* *
*
{@linkplain #HTTP_BIND_ADDRESS_NAME http-bind-address}
*
Description: the machine name or IP address to which * the HTTP listening socket should be bound. If this value is * "localhost", then the socket will be bound to the loopback * address (127.0.0.1) and the adapter will only be accessible via * the URL http://localhost:8080.
*
{@linkplain #DEFAULT_HTTP_BIND_ADDRESS Default}: "" * (all network addresses)
*
* *
*
{@linkplain #HTTP_AUTHENTICATION_ENABLED_NAME http-authentication-enabled}
*
Description: Whether or not connections to the HTTP * adapter should be authenticated with a user name and password. *
*
{@linkplain #DEFAULT_HTTP_AUTHENTICATION_ENABLED Default}: false
*
* *
*
{@linkplain #HTTP_AUTHENTICATION_USER_NAME http-authentication-user}
*
Description: the user name for authenticating secure * communication. *
*
{@linkplain #DEFAULT_HTTP_AUTHENTICATION_USER Default}: admin
*
* *
*
{@linkplain #HTTP_AUTHENTICATION_PASSWORD_NAME http-authentication-password}
*
Description: the password for authenticating secure * communication. *
*
{@linkplain #DEFAULT_HTTP_AUTHENTICATION_PASSWORD Default}: password
*
* * RMI Adapter Configuration Properties * *
*
{@linkplain #RMI_ENABLED_NAME rmi-enabled}
*
Description: whether or not the RMI JMX adapter is enabled *
*
{@linkplain #DEFAULT_RMI_ENABLED Default}: true
*
* *
*
{@linkplain #RMI_REGISTRY_ENABLED_NAME rmi-registry-enabled}
*
Description: whether or not the JMX agent should start * an RMI registry. Alternatively, a registry outside of the JMX * agent VM can be used. *
*
{@linkplain #DEFAULT_RMI_REGISTRY_ENABLED Default}: true
*
* *
*
{@linkplain #RMI_PORT_NAME rmi-port}
*
Description: the port of the RMI registry in which the * JMX Agent should bind remote objects. *
*
{@linkplain #DEFAULT_RMI_PORT Default}: 1099
*
* *
*
{@linkplain #RMI_PORT_NAME rmi-server-port}
*
Description: the port to be used by the RMI Server started by * JMX Agent. *
*
{@linkplain #DEFAULT_RMI_SERVER_PORT Default}: 0
*
* *
*
{@linkplain #RMI_BIND_ADDRESS_NAME rmi-bind-address}
*
Description: the bind address on which the RMI * registry binds its sockets. *
*
{@linkplain #DEFAULT_RMI_BIND_ADDRESS Default}: "" * (all network addresses)
*
* * AdventNet SNMP Adapter Configuration Properties * *
*
{@linkplain #SNMP_ENABLED_NAME snmp-enabled}
*
Description: whether or not the SNMP JMX adapter is * enabled *
*
{@linkplain #DEFAULT_SNMP_ENABLED Default}: false
*
* *
*
{@linkplain #SNMP_BIND_ADDRESS_NAME snmp-bind-address}
*
Description: the host name to which sockets used by the * SNMP adapter should be bound. *
*
{@linkplain #DEFAULT_SNMP_BIND_ADDRESS Default}: the name of * the local machine (not localhost)
*
* *
*
{@linkplain #SNMP_DIRECTORY_NAME snmp-directory}
*
Description: the deployment directory for AdventNet * SNMP Adaptor *
*
{@linkplain #DEFAULT_SNMP_DIRECTORY Default}: ""
*
* * JMX Agent Email Notification Properties (for statistics alerts) * *
*
{@linkplain #EMAIL_NOTIFICATIONS_ENABLED_NAME email-notification-enabled}
*
Description: Whether or not email notifications are enabled for statistics alerts. *
*
{@linkplain #DEFAULT_EMAIL_NOTIFICATIONS_ENABLED Default}: false
*
* *
*
{@linkplain #EMAIL_NOTIFICATIONS_FROM_NAME email-notification-from}
*
Description: Email address to be used to send email notifications. *
*
{@linkplain #DEFAULT_EMAIL_FROM Default}: ""
*
* *
*
{@linkplain #EMAIL_NOTIFICATIONS_HOST_NAME email-notification-host}
*
Description: The host name of the mail server to be used for email communication. *
*
{@linkplain #DEFAULT_EMAIL_HOST Default}: ""
*
* *
*
{@linkplain #EMAIL_NOTIFICATIONS_TO_LIST_NAME email-notification-to}
*
Description: Email address where the email notifications should be sent. *
*
{@linkplain #DEFAULT_EMAIL_TO_LIST Default}: ""
*
* *
*
{@linkplain #STATE_SAVE_FILE_NAME state-save-file}
*
Description: The name of the file to be used for saving agent state. The file is stored in the same directory in which the agent.properties file is located *
*
{@linkplain #DEFAULT_STATE_SAVE_FILE Default}: ""
*
* * * @author David Whitlock * @since 4.0 * @deprecated as of 7.0 use the {@link com.gemstone.gemfire.management} package instead */ public interface AgentConfig extends DistributedSystemConfig { /** The prefix for JMX Agent configuration system properties */ public static final String SYSTEM_PROPERTY_PREFIX = "gemfire.agent."; /** The default "propertyFile" value */ public static final String DEFAULT_PROPERTY_FILE = "agent.properties"; /** The default name for file that has "agent state saved serialized" */ public static final String DEFAULT_STATE_SAVE_FILE = "agent.ser"; /** The name of the "auto-connect" property */ public static final String AUTO_CONNECT_NAME = "auto-connect"; /** The default value of the "auto-connect" property */ public static final boolean DEFAULT_AUTO_CONNECT = true; // ------------------------------------------------------------------------- // HttpAdaptor properties... // ------------------------------------------------------------------------- /** The name of the "httpEnabled" property */ public static final String HTTP_ENABLED_NAME = "http-enabled"; /** The default value of the "httpEnabled" property */ public static final boolean DEFAULT_HTTP_ENABLED = true; /** The name of the "httpBindAddress" property */ public static final String HTTP_BIND_ADDRESS_NAME = "http-bind-address"; /** The default value of the "httpBindAddress" property */ public static final String DEFAULT_HTTP_BIND_ADDRESS = ""; /** The name of the "httpPort" property */ public static final String HTTP_PORT_NAME = "http-port"; /** The default value of the "httpPort" property (8080) */ public static final int DEFAULT_HTTP_PORT = 8080; /** The minimum httpPort (0) */ public static final int MIN_HTTP_PORT = 0; /** The maximum httpPort (65535) */ public static final int MAX_HTTP_PORT = 65535; /** The name of the "state-save-file-name" property */ public static final String STATE_SAVE_FILE_NAME = "state-save-file"; /** The name of the "http-authentication-enabled" property */ public static final String HTTP_AUTHENTICATION_ENABLED_NAME = "http-authentication-enabled"; /** The default value of the "http-authentication-enabled" property * */ public static final boolean DEFAULT_HTTP_AUTHENTICATION_ENABLED = false; /** The name of the "http-authentication-user" property */ public static final String HTTP_AUTHENTICATION_USER_NAME = "http-authentication-user"; /** The default value of the "http-authentication-user" property */ public static final String DEFAULT_HTTP_AUTHENTICATION_USER = "admin"; /** The name of the "http-authentication-password" property */ public static final String HTTP_AUTHENTICATION_PASSWORD_NAME = "http-authentication-password"; /** The default value of the "http-authentication-password" property * */ public static final String DEFAULT_HTTP_AUTHENTICATION_PASSWORD = "password"; /** The name of the "email-notification-enabled" property */ public static final String EMAIL_NOTIFICATIONS_ENABLED_NAME = "email-notification-enabled"; /** The default value of the "email-notification-enabled" property * */ public static final boolean DEFAULT_EMAIL_NOTIFICATIONS_ENABLED = false; /** The name of the "email-notification-from" property */ public static final String EMAIL_NOTIFICATIONS_FROM_NAME = "email-notification-from"; /** The default value of the "email-notification-from" property * */ public static final String DEFAULT_EMAIL_FROM = ""; /** The name of the "email-notification-host" property */ public static final String EMAIL_NOTIFICATIONS_HOST_NAME = "email-notification-host"; /** The default value of the "email-notification-host" property * */ public static final String DEFAULT_EMAIL_HOST = ""; /** The name of the "email-notification-to" property */ public static final String EMAIL_NOTIFICATIONS_TO_LIST_NAME = "email-notification-to"; /** The default value of the "email-notification-to" property * */ public static final String DEFAULT_EMAIL_TO_LIST = ""; // ------------------------------------------------------------------------- // RMIConnectorServer properties... // ------------------------------------------------------------------------- /** The name of the "rmiEnabled" property */ public static final String RMI_ENABLED_NAME = "rmi-enabled"; /** The default value of the {@linkplain #RMI_ENABLED_NAME rmi-enabled} property */ public static final boolean DEFAULT_RMI_ENABLED = true; /** The name of the "rmi-registry-enabled" property */ public static final String RMI_REGISTRY_ENABLED_NAME = "rmi-registry-enabled"; /** The default value of the {@linkplain #RMI_REGISTRY_ENABLED_NAME rmi-registry-enabled} property*/ public static final boolean DEFAULT_RMI_REGISTRY_ENABLED = true; /** The name of the "rmiBindAddress" property */ public static final String RMI_BIND_ADDRESS_NAME = "rmi-bind-address"; /** The default value of the {@linkplain #RMI_BIND_ADDRESS_NAME rmi-bind-address} property */ public static final String DEFAULT_RMI_BIND_ADDRESS = ""; /** The name of the "rmiPort" property */ public static final String RMI_PORT_NAME = "rmi-port"; /** The default value of the {@linkplain #RMI_PORT_NAME rmi-port} property (1099) */ public static final int DEFAULT_RMI_PORT = 1099; /** * The name of the "rmi-server-port" property * * @since 6.5 */ public static final String RMI_SERVER_PORT_NAME = "rmi-server-port"; /** * The default value of the {@linkplain #RMI_SERVER_PORT_NAME rmi-server-port} * property (0) * * @since 6.5 */ public static final int DEFAULT_RMI_SERVER_PORT = 0; /** * The minimum value for {@linkplain #RMI_PORT_NAME rmi-port} or * {@linkplain #RMI_SERVER_PORT_NAME rmi-server-port} (0) */ public static final int MIN_RMI_PORT = 0; /** * The maximum value for {@linkplain #RMI_PORT_NAME rmi-port} or * {@linkplain #RMI_SERVER_PORT_NAME rmi-server-port} (65535) */ public static final int MAX_RMI_PORT = 65535; // ------------------------------------------------------------------------- // AdventNetSNMPAdaptor properties... // ------------------------------------------------------------------------- /** The name of the "snmpEnabled" property */ public static final String SNMP_ENABLED_NAME = "snmp-enabled"; /** The default value of the "snmpEnabled" property */ public static final boolean DEFAULT_SNMP_ENABLED = false; /** The name of the "snmpBindAddress" property */ public static final String SNMP_BIND_ADDRESS_NAME = "snmp-bind-address"; /** The default value of the "snmpBindAddress" property */ public static final String DEFAULT_SNMP_BIND_ADDRESS = ""; /** The name of the "snmpDirectory" property */ public static final String SNMP_DIRECTORY_NAME = "snmp-directory"; /** The default value of the "snmpDirectory" property */ public static final String DEFAULT_SNMP_DIRECTORY = ""; // ------------------------------------------------------------------------- // JMX SSL properties... // ------------------------------------------------------------------------- /** The name of the "agent-ssl-enabled" property */ public static final String AGENT_SSL_ENABLED_NAME = "agent-ssl-enabled"; /** The default value of the "agent-ssl-enabled" property */ public static final boolean DEFAULT_AGENT_SSL_ENABLED = false; /** The name of the "agent-ssl-protocols" property */ public static final String AGENT_SSL_PROTOCOLS_NAME = "agent-ssl-protocols"; /** The default value of the "agent-ssl-protocols" property */ public static final String DEFAULT_AGENT_SSL_PROTOCOLS = "any"; /** The name of the "agent-ssl-ciphers" property */ public static final String AGENT_SSL_CIPHERS_NAME = "agent-ssl-ciphers"; /** The default value of the "agent-ssl-ciphers" property */ public static final String DEFAULT_AGENT_SSL_CIPHERS = "any"; /** The name of the "agent-ssl-require-authentication" property */ public static final String AGENT_SSL_REQUIRE_AUTHENTICATION_NAME = "agent-ssl-require-authentication"; /** The default value of the "agent-ssl-require-authentication" * property */ public static final boolean DEFAULT_AGENT_SSL_REQUIRE_AUTHENTICATION = true; /** The name of the "http-ssl-require-authentication" property */ public static final String HTTP_SSL_REQUIRE_AUTHENTICATION_NAME = "http-ssl-require-authentication"; /** The default value of the "http-ssl-require-authentication" * property */ public static final boolean DEFAULT_HTTP_SSL_REQUIRE_AUTHENTICATION = false; ////////////////////// Instance Methods ////////////////////// /** * Returns whether or not the JMX agent will automatically connect * to the distributed system it administers. * * See description above. */ public boolean getAutoConnect(); /** * Sets whether or not the JMX agent will automatically connect * to the distributed system it administers. * * See description above. */ public void setAutoConnect(boolean autoConnect); /** * Returns whether or not the HTTP adapter is enabled. * * See description above. */ public boolean isHttpEnabled(); /** * Sets whether or not the HTTP adapter is enabled. * * See description above. */ public void setHttpEnabled(boolean httpEnabled); /** * Returns the port of the HTTP adapter. * * See description above. */ public int getHttpPort(); /** * Sets the port of the HTTP adapter. * * See description above. */ public void setHttpPort(int port); /** * Returns the bind address to which the HTTP adapter's listening * socket is bound. * * See description above. */ public String getHttpBindAddress(); /** * Sets the bind address to which the HTTP adapter's listening * socket is bound. * * See description above. */ public void setHttpBindAddress(String address); /** * Returns whether or not the HTTP adapter authenticates * connections. * * See description * above. */ public boolean isHttpAuthEnabled(); /** * Sets whether or not the HTTP adapter authenticates connections. * * See description * above. */ public void setHttpAuthEnabled(boolean enabled); /** * Returns the user name for HTTP adapter authentication. * * See description * above. */ public String getHttpAuthUser(); /** * Sets the user name for HTTP adapter authentication. * * See description * above. */ public void setHttpAuthUser(String user); /** * Returns the password for HTTP adapter authentication. * * See description * above. */ public String getHttpAuthPassword(); /** * Sets the password for HTTP adapter authentication. * * See description * above. */ public void setHttpAuthPassword(String password); /** * Returns whether or not the RMI adapter is enabled. * * See description above. */ public boolean isRmiEnabled(); /** * Sets whether or not the RMI adapter is enabled. * * See description above. */ public void setRmiEnabled(boolean rmiEnabled); /** * Returns whether or not the agent hosts an RMI registry. * * See description above. */ public boolean isRmiRegistryEnabled(); /** * Sets whether or not the agent hosts an RMI registry. * * See description above. */ public void setRmiRegistryEnabled(boolean enabled); /** * Returns the port of the RMI adapter. * * See description above. */ public int getRmiPort(); /** * Sets the port of the RMI adapter. * * See description above. */ public void setRmiPort(int port); /** * Returns the port of the RMI Connector Server. * * See description above. * * @return the value set for rmi-server-port * @since 6.5 */ public int getRmiServerPort(); /** * Sets the port of the RMI Connector Server. * * See description above. * * @param port rmi-server-port to set. * @since 6.5 */ public void setRmiServerPort(int port); /** * Returns the bind address to which the RMI adapter's listening * sockets are bound. * * See description above. */ public String getRmiBindAddress(); /** * Sets the bind address to which the RMI adapter's listening * sockets are bound. * * See description above. */ public void setRmiBindAddress(String address); /** * Returns whether or not the SNMP adapter is enabled. * * See description above. */ public boolean isSnmpEnabled(); /** * Sets whether or not the SNMP adapter is enabled. * * See description above. */ public void setSnmpEnabled(boolean enabled); /** * Returns the bind address used with the SNMP adapter. * * See description above. */ public String getSnmpBindAddress(); /** * Sets the bind address used with the SNMP adapter. * * See description above. */ public void setSnmpBindAddress(String address); /** * Returns the directory for the SNMP adapater. * * See description above. */ public String getSnmpDirectory(); /** * Sets the directory for the SNMP adapater. * * See description above. */ public void setSnmpDirectory(String snmpDirectory); /** * Returns whether or not SSL is required for the JMX agent. * * See description above. */ public boolean isAgentSSLEnabled(); /** * Sets whether or not SSL is required for the JMX agent. * * See description above. */ public void setAgentSSLEnabled(boolean enabled); /** * Returns the SSL protocols used when connecting to the JMX agent. * * See description above. */ public String getAgentSSLProtocols(); /** * Sets the SSL protocols used when connecting to the JMX agent. * * See description above. */ public void setAgentSSLProtocols(String protocols); /** * Returns the SSL ciphers used when connecting to the JMX agent. * * See description above. */ public String getAgentSSLCiphers(); /** * Sets the SSL ciphers used when connecting to the JMX agent. * * See description above. */ public void setAgentSSLCiphers(String ciphers); /** * Returns whether SSL authentication is used when connecting to the * RMI connector. * * See description above. */ public boolean isAgentSSLRequireAuth(); /** * Sets whether SSL authentication is used when connecting to the * RMI connector. * * See description above. */ public void setAgentSSLRequireAuth(boolean require); /** * Returns whether SSL authentication is used when connecting to the * HTTP connector. * * See description above. */ public boolean isHttpSSLRequireAuth(); /** * Sets whether SSL authentication is used when connecting to the * HTTP connector. * * See description above. */ public void setHttpSSLRequireAuth(boolean require); /** * Returns whether Emails for Notifications is enabled * * See description above. */ public boolean isEmailNotificationEnabled(); /** * Sets whether Emails for Notifications is enabled * * See description above. */ public void setEmailNotificationEnabled(boolean enabled); /** * Returns the EmailID from whom notification emails are sent. * * See description above. */ public String getEmailNotificationFrom(); /** * Sets the EmailID from whom notification emails are sent. * * See description above. */ public void setEmailNotificationFrom(String emailID); /** * Returns the Host Name using which notification emails are sent. * * See description above. */ public String getEmailNotificationHost(); /** * Sets the Host Name from whom notification emails are sent. * * See description above. */ public void setEmailNotificationHost(String hostName); /** * Returns the comma separated EmailID list to whom notification * emails are sent. * * See description above. */ public String getEmailNotificationToList(); /** * Sets the EmailID from whom notification emails are sent as a * comma separated list. * * See description above. */ public void setEmailNotificationToList(String emailIDs); /** * Returns the name of the file to be used for saving agent state * * See description above. */ public String getStateSaveFile(); /** * Sets the name of the file to be used for saving agent state * * See description above. */ public void setStateSaveFile(String file); /** * Returns an AgentConfig with the same configuration * as this AgentConfig. */ public Object clone() throws CloneNotSupportedException; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy