blob: 918aa39dc0244a17b9a75b734c3e050e2303ae03 [file] [log] [blame]
/*
* 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.geode.admin;
/**
* Common configuration for all entities that can be managed using the GemFire administration API.
* Note that once a managed entity has been {@linkplain ManagedEntity#start started}, attempts to
* modify its configuration will cause an {@link IllegalStateException} to be thrown.
*
* @see ManagedEntity
*
* @since GemFire 4.0
* @deprecated as of 7.0 use the <code><a href=
* "{@docRoot}/org/apache/geode/management/package-summary.html">management</a></code>
* package instead
*/
public interface ManagedEntityConfig extends Cloneable {
/**
* Returns the name of the host on which the managed entity runs or will run.
*/
String getHost();
/**
* Sets the name of the host on which the managed entity will run.
*/
void setHost(String host);
/**
* Returns the name of the working directory in which the managed entity runs or will run.
*/
String getWorkingDirectory();
/**
* Sets the name of the working directory in which the managed entity will run.
*/
void setWorkingDirectory(String dir);
/**
* Returns the name of the GemFire product directory to use when administering the managed entity.
*/
String getProductDirectory();
/**
* Sets the name of the GemFire product directory to use when administering the managed entity.
*/
void setProductDirectory(String dir);
/**
* Returns the command prefix used to administer a managed entity that is hosted on a remote
* machine. If the remote command is <code>null</code> (the default value), then the remote
* command associated with the {@linkplain AdminDistributedSystem#getRemoteCommand() distributed
* system} will be used.
*/
String getRemoteCommand();
/**
* Sets the command prefix used to administer a managed entity that is hosted on a remote machine.
*/
void setRemoteCommand(String remoteCommand);
/**
* Validates this configuration.
*
* @throws IllegalStateException If a managed entity cannot be administered using this
* configuration
*/
void validate();
/**
* Returns a new <code>ManagedEntityConfig</code> with the same configuration as this
* <code>ManagedEntityConfig</code>.
*/
Object clone() throws CloneNotSupportedException;
}