|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.continuent.tungsten.common.cluster.resource.Resource
com.continuent.tungsten.common.directory.ResourceTree
com.continuent.tungsten.common.directory.Directory
public class Directory
This class provides a means to organize cluster resources in an intuitive, hierarchical form. It allows us to, effectively, extend the resources that can be referred to, directly, in the Tungsten ResourceManager.
| Field Summary | |
|---|---|
protected boolean |
absolute
|
static java.lang.String |
AMPERSAND
|
static java.lang.String |
ANY_ELEMENT
|
static java.lang.String |
CD
|
static java.lang.String |
CHKEXEC
|
protected java.lang.String |
clusterName
|
static java.lang.String |
CONNECT
|
static java.lang.String |
CP
|
static java.lang.String |
CREATE
|
protected boolean |
createParents
|
static java.lang.String |
CURRENT_ELEMENT
|
protected java.lang.Long |
currentVersion
|
static java.lang.String |
DEFAULT_CLUSTER_NAME
|
protected boolean |
detailed
|
static java.lang.String |
DIRECTORY
|
static java.lang.String[] |
directoryCommands
|
static java.lang.String |
DISCONNECT
|
static java.lang.String |
DISCONNECT_ALL
|
static java.lang.String |
EXECUTE
|
static java.lang.String |
EXTENSION
|
static char |
FLAG_ABSOLUTE
|
static char |
FLAG_LONG
|
static char |
FLAG_PARENTS
|
static char |
FLAG_RECURSIVE
|
static java.lang.String |
KEY_COMMAND
|
protected java.lang.Long |
lastMergedVersion
|
static java.lang.String |
LIST
|
protected static java.util.ArrayList<ResourceNotificationListener> |
listeners
|
static java.lang.String |
LOCATE_SERVICE
|
protected java.lang.String |
memberName
|
static java.lang.String |
MERGE
|
protected boolean |
merging
|
static java.lang.String |
PARENT_ELEMENT
|
static java.lang.String |
PATH_SEPARATOR
|
static java.lang.String |
PROTOCOL
|
static java.lang.String |
PWD
|
protected boolean |
recursive
|
static java.lang.String |
RM
|
static java.lang.String |
ROOT_ELEMENT
|
static java.lang.String |
SERVICE
|
protected java.util.Map<java.lang.String,ResourceNode> |
servicesFolders
|
protected java.util.Map<java.lang.String,java.util.Map<java.lang.Long,java.util.Vector<java.lang.String>>> |
sessionsByDomain
|
protected java.util.Map<java.lang.String,DirectorySession> |
sessionsByID
|
protected java.lang.String |
systemSessionID
|
static java.lang.String |
WHICH
|
| Fields inherited from class com.continuent.tungsten.common.directory.ResourceTree |
|---|
rootNode |
| Fields inherited from class com.continuent.tungsten.common.cluster.resource.Resource |
|---|
childType, compositeMember, description, isContainer, isExecutable, name, type |
| Constructor Summary | |
|---|---|
Directory()
|
|
| Method Summary | |
|---|---|
void |
addListener(ResourceNotificationListener listener)
|
ResourceNode |
cd(java.lang.String sessionID,
java.lang.String path)
|
java.lang.String |
connect(java.lang.String domain,
long handle,
java.lang.String sessionID)
|
void |
cp(java.lang.String sessionID,
java.lang.String sourcePath,
java.lang.String destinationPath)
Makes a copy of a specific resource node in the destination. |
ResourceNode |
create(java.lang.String sessionID,
java.lang.String name,
boolean createParents)
|
ResourceNode |
create(java.lang.String sessionID,
java.lang.String name,
ResourceNode parent)
|
ResourceNode |
create(java.lang.String sessionID,
java.lang.String path,
ResourceNode startNode,
boolean createParents)
|
static Directory |
createLocalInstance(java.lang.String clusterName,
java.lang.String memberName)
Creates a local directory instance that caller is responsible for managing. |
ResourceNode |
createProcessNode(java.lang.String sessionID,
java.lang.String siteName,
java.lang.String clusterName,
java.lang.String memberName,
java.lang.String componentName,
java.lang.String resourceManagerName,
int port)
|
void |
disconnect(java.lang.String sessionID)
|
void |
disconnect(java.lang.String domain,
long handle,
java.lang.String sessionID)
|
void |
disconnectAll(java.lang.String domain)
|
void |
disconnectAll(java.lang.String domain,
long handle)
|
java.lang.String |
executeExtension(ResourceType extensionType,
java.lang.String extensionName,
java.lang.String commandPrefix,
java.lang.String command,
java.lang.String[] args)
Execute an 'extension' by looking it up in the appropriate cluster configuration directory. |
boolean |
exists(java.lang.String sessionID,
java.lang.String path)
|
void |
flush()
|
static java.lang.String |
formatEntries(java.util.List<ResourceNode> entries,
ResourceNode startNode,
boolean detailed,
boolean absolute)
|
java.lang.String |
formatPath(Directory directory,
java.lang.String sessionID,
ResourceNode node)
|
static java.lang.String |
formatPath(java.util.List<ResourceNode> pathElements,
boolean reverseOrder)
|
java.util.List<ResourceNode> |
getAbsolutePath(Directory directory,
java.lang.String sessionID,
ResourceNode node)
|
static java.util.List<ResourceNode> |
getAbsolutePath(ResourceNode fromNode,
ResourceNode toNode,
boolean includeFromNode)
|
java.lang.String |
getClusterName()
|
ResourceNode |
getCurrentNode(java.lang.String sessionID)
|
java.util.List<ResourceNode> |
getCwd(java.lang.String sessionID)
|
java.util.List<ResourceNode> |
getEntries(ResourceNode nodeToSearch,
java.util.List<ResourceNode> entries,
boolean doRecurse)
|
static Directory |
getInstance(java.lang.String clusterName,
java.lang.String memberName)
Returns a global instance. |
ResourceNode |
getManagerNode(java.lang.String sessionID,
java.lang.String siteName,
java.lang.String clusterName,
java.lang.String host,
java.lang.String beanServiceName,
int port,
java.lang.String component,
java.lang.String managerName)
|
java.lang.String |
getMemberName()
|
java.util.Map<java.lang.String,NotificationGroupMember> |
getNotificationGroupMembers()
|
ResourceNode |
getProcessNode(java.lang.String sessionID,
java.lang.String clusterName,
java.lang.String memberName,
java.lang.String processName)
Processes are found at: / |
java.util.List<TungstenProperties> |
getServiceConfig(java.lang.String sessionID,
java.lang.String hostName,
java.lang.String name)
Returns one or more service configurations as property instances. |
ResourceNode |
getServiceFolder(java.lang.String hostName)
Returns services folder which is created upon construction of this directory and which holds services to execute commands upon. |
DirectorySession |
getSession(java.lang.String sessionID)
Returns an existing session or throws an exception. |
java.util.Map<java.lang.String,DirectorySession> |
getSessionMap()
|
java.util.Map<java.lang.String,java.util.Map<java.lang.Long,java.util.Vector<java.lang.String>>> |
getSessionsByDomain()
|
java.util.Map<java.lang.String,DirectorySession> |
getSessionsByID()
|
java.lang.String |
getSystemSessionID()
|
long |
getVersion()
|
static boolean |
isDirectoryCommand(java.lang.String command)
|
boolean |
isExecutable(java.lang.String sessionID,
java.lang.String path)
A primitive that indicates whether or not the resource associated with a node is executable. |
ResourceNode |
locate(java.lang.String sessionID,
java.lang.String path)
Locates a given resource node, given a path. |
ResourceNode |
locate(java.lang.String sessionID,
java.lang.String path,
ResourceNode startNode)
Locates a given resource give a path and a starting node. |
ResourceNode |
locateRelative(java.lang.String sessionID,
int levels)
Traverse back the indicated number of levels, starting at the current node, and return the node found there. |
ResourceNode |
locateRelative(java.lang.String sessionID,
int levels,
ResourceNode startNode)
Traverse back the indicated number of levels, starting at the current node, and return the node found there. |
java.util.List<ResourceNode> |
ls(java.lang.String sessionID,
java.lang.String path,
boolean doRecurse)
Returns a list of resource nodes according to the path passed in. |
Directory |
merge(Directory source,
Directory destination)
This method merges the current directory with another directory such that the current directory has all elements, by name, which exist in both directories and any elements that have identical names remain in the current directory. |
void |
notifyListeners(ClusterResourceNotification notification)
|
void |
prepare()
|
java.lang.String |
procedure(java.lang.String procedureSpec,
java.lang.String command)
Executes a command on a service. |
java.io.Serializable |
processCommand(java.lang.String sessionID,
java.lang.String commandLine)
This is the main interface for the directory with respect to text-based operations. |
java.lang.String |
pwd(java.lang.String sessionID)
|
void |
removeSession(java.lang.String sessionID)
Removes an existing Directory session. |
void |
rm(java.lang.String sessionID,
ResourceNode node)
|
void |
rm(java.lang.String sessionID,
java.lang.String path)
|
void |
run()
|
java.lang.String |
service(java.lang.String serviceSpec,
java.lang.String serviceCmd)
Executes a command on a service. |
void |
setClusterName(java.lang.String clusterName)
|
void |
setCurrentNode(java.lang.String sessionID,
ResourceNode currentNode)
|
void |
setMemberName(java.lang.String memberName)
|
void |
setSessionsByID(java.util.Map<java.lang.String,DirectorySession> sessionsByID)
|
void |
setSystemSessionID(java.lang.String systemSessionID)
|
java.lang.String |
toString()
Return a representation of this tree in string form. |
java.lang.String |
which(java.lang.String sessionID,
java.lang.String path)
This command returns the full path to a given resource, as long as the resource exists |
| Methods inherited from class com.continuent.tungsten.common.directory.ResourceTree |
|---|
getRootNode, setRootNode, toMap |
| Methods inherited from class com.continuent.tungsten.common.cluster.resource.Resource |
|---|
copyTo, describe, getChildType, getCompositeMember, getKey, getName, getType, isContainer, isExecutable, setChildType, setCompositeMember, setContainer, setExecutable, setName, setType, toJSON, toProperties |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final java.lang.String DEFAULT_CLUSTER_NAME
public static final java.lang.String PROTOCOL
public static final java.lang.String ROOT_ELEMENT
public static final java.lang.String CURRENT_ELEMENT
public static final java.lang.String PARENT_ELEMENT
public static final java.lang.String ANY_ELEMENT
public static final java.lang.String AMPERSAND
public static final java.lang.String PATH_SEPARATOR
public static final java.lang.String DIRECTORY
public static final java.lang.String EXECUTE
public static final java.lang.String LIST
public static final java.lang.String CD
public static final java.lang.String CP
public static final java.lang.String RM
public static final java.lang.String CREATE
public static final java.lang.String PWD
public static final java.lang.String CHKEXEC
public static final java.lang.String WHICH
public static final java.lang.String CONNECT
public static final java.lang.String DISCONNECT
public static final java.lang.String DISCONNECT_ALL
public static final java.lang.String MERGE
public static final java.lang.String SERVICE
public static final java.lang.String EXTENSION
public static final java.lang.String LOCATE_SERVICE
public static final char FLAG_LONG
public static final char FLAG_RECURSIVE
public static final char FLAG_ABSOLUTE
public static final char FLAG_PARENTS
public static final java.lang.String KEY_COMMAND
public static final java.lang.String[] directoryCommands
protected java.lang.String clusterName
protected java.lang.String memberName
protected boolean recursive
protected boolean absolute
protected boolean detailed
protected boolean createParents
protected static java.util.ArrayList<ResourceNotificationListener> listeners
protected java.util.Map<java.lang.String,DirectorySession> sessionsByID
protected java.util.Map<java.lang.String,java.util.Map<java.lang.Long,java.util.Vector<java.lang.String>>> sessionsByDomain
protected java.lang.String systemSessionID
protected java.util.Map<java.lang.String,ResourceNode> servicesFolders
protected java.lang.Long currentVersion
protected java.lang.Long lastMergedVersion
protected boolean merging
| Constructor Detail |
|---|
public Directory()
| Method Detail |
|---|
public static Directory getInstance(java.lang.String clusterName,
java.lang.String memberName)
throws ResourceException,
DirectoryNotFoundException
clusterName - Name of the clustermemberName - Name of the cluster member
ResourceException
DirectoryNotFoundException
public static Directory createLocalInstance(java.lang.String clusterName,
java.lang.String memberName)
throws ResourceException,
DirectoryNotFoundException
clusterName - Name of the clustermemberName - Name of the cluster member
ResourceException
DirectoryNotFoundException
public java.lang.String connect(java.lang.String domain,
long handle,
java.lang.String sessionID)
throws DirectoryNotFoundException
DirectoryNotFoundException
public void disconnect(java.lang.String domain,
long handle,
java.lang.String sessionID)
public void disconnectAll(java.lang.String domain,
long handle)
public void disconnectAll(java.lang.String domain)
public DirectorySession getSession(java.lang.String sessionID)
throws DirectoryNotFoundException
sessionID -
DirectoryNotFoundException
public void removeSession(java.lang.String sessionID)
throws DirectoryException
sessionID -
DirectoryException
public java.io.Serializable processCommand(java.lang.String sessionID,
java.lang.String commandLine)
throws java.lang.Exception
sessionID -
java.lang.Exceptionpublic void disconnect(java.lang.String sessionID)
public java.lang.String which(java.lang.String sessionID,
java.lang.String path)
throws DirectoryNotFoundException
sessionID - path -
DirectoryNotFoundException
public boolean isExecutable(java.lang.String sessionID,
java.lang.String path)
throws DirectoryNotFoundException
sessionID - path -
DirectoryNotFoundExceptionpublic ResourceNode getServiceFolder(java.lang.String hostName)
public java.util.List<TungstenProperties> getServiceConfig(java.lang.String sessionID,
java.lang.String hostName,
java.lang.String name)
sessionID - Session IDhostName - Name of host on which service abidesname - Name of the service or null to select all available services
public ResourceNode locateRelative(java.lang.String sessionID,
int levels)
throws DirectoryException,
DirectoryNotFoundException
levels -
DirectoryException
DirectoryNotFoundException
public ResourceNode locateRelative(java.lang.String sessionID,
int levels,
ResourceNode startNode)
throws DirectoryException,
DirectoryNotFoundException
levels -
DirectoryException
DirectoryNotFoundException
public ResourceNode locate(java.lang.String sessionID,
java.lang.String path)
throws DirectoryNotFoundException
sessionID - path -
DirectoryNotFoundException - if the resource cannot be found
public ResourceNode locate(java.lang.String sessionID,
java.lang.String path,
ResourceNode startNode)
throws DirectoryNotFoundException
path - startNode -
DirectoryNotFoundException - if the resource cannot be found
public java.util.List<ResourceNode> ls(java.lang.String sessionID,
java.lang.String path,
boolean doRecurse)
throws DirectoryNotFoundException
path -
DirectoryNotFoundException - if the specified resources cannot be
found
public void cp(java.lang.String sessionID,
java.lang.String sourcePath,
java.lang.String destinationPath)
throws DirectoryException,
DirectoryNotFoundException
sourcePath - destinationPath -
DirectoryException
DirectoryNotFoundException
public java.util.List<ResourceNode> getEntries(ResourceNode nodeToSearch,
java.util.List<ResourceNode> entries,
boolean doRecurse)
nodeToSearch - entries -
public ResourceNode cd(java.lang.String sessionID,
java.lang.String path)
throws DirectoryNotFoundException,
DirectoryException
path -
DirectoryNotFoundException
DirectoryException
public java.lang.String service(java.lang.String serviceSpec,
java.lang.String serviceCmd)
throws java.lang.Exception
serviceSpec - Name of the service.serviceCmd - Command name to execute on a service.
java.lang.Exception - If service node not found, or service does not support
the requested command.
public java.lang.String procedure(java.lang.String procedureSpec,
java.lang.String command)
throws java.lang.Exception
procedureSpec - Name of the service.command - Command name to execute on a service.
java.lang.Exception - If service node not found, or service does not support
the requested command.
public java.lang.String executeExtension(ResourceType extensionType,
java.lang.String extensionName,
java.lang.String commandPrefix,
java.lang.String command,
java.lang.String[] args)
throws java.lang.Exception
extensionType - - the type of the extension. This determines the
directory that is searched for the extension.extensionName - - the name of the .properties file to look for in
the extension directory.commandPrefix - - the string to look for, in the extension
properties file as an 'introducer' to a specific operation.
This may vary depending on the function of the extension.command - - the command 'key' to use to find the command to execute.args - - any args required by the command. These are treated
positionally
java.lang.Exception
public ResourceNode create(java.lang.String sessionID,
java.lang.String name,
boolean createParents)
throws DirectoryException,
DirectoryNotFoundException
DirectoryException
DirectoryNotFoundException
public ResourceNode create(java.lang.String sessionID,
java.lang.String name,
ResourceNode parent)
throws DirectoryException
name - parent -
DirectoryException - if the parent cannot be found
public ResourceNode create(java.lang.String sessionID,
java.lang.String path,
ResourceNode startNode,
boolean createParents)
throws DirectoryException
path - startNode - createParents -
DirectoryException - if the startNode cannot be found
public void rm(java.lang.String sessionID,
java.lang.String path)
throws DirectoryNotFoundException,
DirectoryException
sessionID - path -
DirectoryNotFoundException
DirectoryException
public java.lang.String pwd(java.lang.String sessionID)
throws DirectoryNotFoundException
sessionID -
DirectoryNotFoundException
public static java.lang.String formatPath(java.util.List<ResourceNode> pathElements,
boolean reverseOrder)
pathElements - reverseOrder -
public static java.lang.String formatEntries(java.util.List<ResourceNode> entries,
ResourceNode startNode,
boolean detailed,
boolean absolute)
entries - detailed -
public static java.util.List<ResourceNode> getAbsolutePath(ResourceNode fromNode,
ResourceNode toNode,
boolean includeFromNode)
public ResourceNode getCurrentNode(java.lang.String sessionID)
throws DirectoryNotFoundException
DirectoryNotFoundException
public void setCurrentNode(java.lang.String sessionID,
ResourceNode currentNode)
throws DirectoryNotFoundException
DirectoryNotFoundException
public java.util.List<ResourceNode> getCwd(java.lang.String sessionID)
throws DirectoryNotFoundException
DirectoryNotFoundException
public Directory merge(Directory source,
Directory destination)
throws DirectoryException
source - destination -
DirectoryExceptionpublic java.util.Map<java.lang.String,DirectorySession> getSessionMap()
public java.util.Map<java.lang.String,java.util.Map<java.lang.Long,java.util.Vector<java.lang.String>>> getSessionsByDomain()
public java.lang.String toString()
ResourceTree
toString in class ResourceTree
public boolean exists(java.lang.String sessionID,
java.lang.String path)
public static boolean isDirectoryCommand(java.lang.String command)
public java.lang.String getSystemSessionID()
public void setSystemSessionID(java.lang.String systemSessionID)
systemSessionID - the systemSessionID to setpublic void addListener(ResourceNotificationListener listener)
addListener in interface ResourceNotifier
public void notifyListeners(ClusterResourceNotification notification)
throws ResourceNotificationException
notifyListeners in interface ResourceNotifierResourceNotificationExceptionpublic void run()
run in interface java.lang.Runnablepublic void flush()
public long getVersion()
public java.util.Map<java.lang.String,NotificationGroupMember> getNotificationGroupMembers()
getNotificationGroupMembers in interface ResourceNotifierpublic java.util.Map<java.lang.String,DirectorySession> getSessionsByID()
public void setSessionsByID(java.util.Map<java.lang.String,DirectorySession> sessionsByID)
public java.lang.String getClusterName()
public void setClusterName(java.lang.String clusterName)
public java.lang.String getMemberName()
public void setMemberName(java.lang.String memberName)
public void prepare()
throws java.lang.Exception
prepare in interface ResourceNotifierjava.lang.Exception
public ResourceNode getManagerNode(java.lang.String sessionID,
java.lang.String siteName,
java.lang.String clusterName,
java.lang.String host,
java.lang.String beanServiceName,
int port,
java.lang.String component,
java.lang.String managerName)
throws java.lang.Exception
siteName - TODOclusterName - host - beanServiceName - port - component - managerName -
java.lang.Exception
public ResourceNode getProcessNode(java.lang.String sessionID,
java.lang.String clusterName,
java.lang.String memberName,
java.lang.String processName)
sessionID - clusterName - memberName -
public void rm(java.lang.String sessionID,
ResourceNode node)
rm(java.lang.String,
com.continuent.tungsten.common.directory.ResourceNode)
public ResourceNode createProcessNode(java.lang.String sessionID,
java.lang.String siteName,
java.lang.String clusterName,
java.lang.String memberName,
java.lang.String componentName,
java.lang.String resourceManagerName,
int port)
throws DirectoryException
DirectoryException
public java.lang.String formatPath(Directory directory,
java.lang.String sessionID,
ResourceNode node)
throws DirectoryNotFoundException
DirectoryNotFoundException
public java.util.List<ResourceNode> getAbsolutePath(Directory directory,
java.lang.String sessionID,
ResourceNode node)
throws DirectoryNotFoundException
DirectoryNotFoundException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||