Class: PHXCVSLibrarian
Last update: 16.07.2025Package: com.phoenix_int.aserver.library
Class Hierarchy
↳ java.lang.Object
↳ com.phoenix_int.aserver.library.PHXCVSLibrarian
Implemented Interfaces
IPHXLibrarian,IPHXLibrarian2,IPHXVersionedLibrarian,IPHXVersionedLibrarian2,IPHXVersionedLibrarian3
Declaration
public class PHXCVSLibrarian
extends java.lang.Object
implements com.phoenix_int.aserver.library.IPHXVersionedLibrarian3
Implementation of IPHXLibrarian which loads files out of CVS. This class generates a directory in the scratch directory called "CVSLIB" which contains its cache data. A single copy of the latest version out of cvs is kept there for component browsing. When a component is requested with "instantiate", it generates a temp directory in CVSLIB and checks out the entire directory that contains that component into the temp dir. The temp dir gets deleted when the connection is dropped. In order to have consistent files, it figures out the commit time for the component requested, and then checks out all the files in the directory from that same date.
The required configuration parameters are defined on the initialize method.
This class requires passwordless access to cvs and does not currently provide any access control functions (.mcre files do not work).
Constructor Summary
| Constructor and Description |
|---|
PHXCVSLibrarian() |
Method Summary
| Modifier and Type | Method and Description |
|---|---|
void |
cleanUpDelete all the temp directories |
PHXComponentDescription |
describe(java.lang.String compClass, java.lang.String virtualDir)Describes the specified component. |
java.lang.String |
getBranchesAndTags()Does not support branching and tagging |
PHXComponentBranch |
getComponentHistory(java.lang.String compClass, java.lang.String virtualDir)Gets all version information about a particular component |
java.lang.String |
getQueues(java.lang.String compClass, java.lang.String virtualDir)Method for getting Queues from CenterLink, MCRE just returns blank string |
void |
initialize(com.phoenix_int.aserver.ascore.PHXConnection connection, IPHXFactory factories, com.phoenix_int.aserver.ascore.PHXAServerArgs args, org.w3c.dom.Node xmlOptions)There are 2 options for this class. |
IPHXComponent |
instantiate(java.lang.String compClass, java.lang.String virtualDir)Creates an instance of the specified component. |
IPHXComponent |
instantiate(java.lang.String compClass, java.lang.String virtualDir, java.lang.String connector, java.lang.String queue)Creates an instance of the specified component. |
PHXComponentResourcePair |
instantiateManaged(java.lang.String compClass, java.lang.String virtualDir)Creates an instance of the specified component. |
PHXComponentResourcePair |
instantiateManaged(java.lang.String compClass, java.lang.String virtualDir, java.lang.String connector, java.lang.String queue)Creates an instance of the specified component. |
java.util.Collection |
listComponents(java.lang.String virtualDir)Returns the components in a specific directory |
java.util.Collection |
listDirectories(java.lang.String virtualDir)Lists available sub-directories for the specified path |
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Constructor Detail
PHXCVSLibrarian
public PHXCVSLibrarian()
Method Detail
initialize
public void initialize(com.phoenix_int.aserver.ascore.PHXConnection connection,
IPHXFactory factories,
com.phoenix_int.aserver.ascore.PHXAServerArgs args,
org.w3c.dom.Node xmlOptions)
throws java.lang.Exception
There are 2 options for this class. The CVSROOT which should be set as if you were using the command line tools and the module in CVS which is the base for all the published components. The startModule cannot be blank.
The XML format is:
<librarianoptions>
<cvsroot>pathfinder:/shared/cvs</cvsroot>
<startmodule>analyses</startmodule>
</librarianoptions>
Specified by:
initializein interfaceIPHXLibrarian
Throws:
java.lang.Exception
cleanUp
public void cleanUp()
Delete all the temp directories
Specified by:
cleanUpin interfaceIPHXLibrarian
listComponents
public java.util.Collection listComponents(java.lang.String virtualDir)
throws PHXNoSuchCategoryException,
com.phoenix_int.aserver.security.PHXAccessDeniedException
Returns the components in a specific directory
Specified by:
listComponentsin interfaceIPHXLibrarian
Parameters:
virtualDir- The directory the client asked for
Returns:
- an array of class names
Throws:
com.phoenix_int.aserver.security.PHXAccessDeniedException- if the directory could not be scannedPHXNoSuchCategoryException
listDirectories
public java.util.Collection listDirectories(java.lang.String virtualDir)
throws PHXNoSuchCategoryException,
com.phoenix_int.aserver.security.PHXAccessDeniedException
Lists available sub-directories for the specified path
Specified by:
listDirectoriesin interfaceIPHXLibrarian
Parameters:
virtualDir- The directory the client asked for
Returns:
- a Collection of Strings
Throws:
PHXNoSuchCategoryExceptioncom.phoenix_int.aserver.security.PHXAccessDeniedException
instantiate
public IPHXComponent instantiate(java.lang.String compClass,
java.lang.String virtualDir,
java.lang.String connector,
java.lang.String queue)
throws java.lang.ClassNotFoundException,
java.lang.IllegalAccessException,
java.lang.InstantiationException,
java.lang.reflect.InvocationTargetException,
java.io.IOException,
PHXServerSideException,
java.net.MalformedURLException,
com.phoenix_int.aserver.util.proxywrapper.PHXProxyNotAllowedException,
PHXNoSuchCategoryException
Creates an instance of the specified component.
Specified by:
instantiatein interfaceIPHXLibrarian
Parameters:
compClass- the class name for the componentvirtualDir- the directory to search for the component class
Returns:
- an instance of the associated component class with the file loaded
Throws:
java.lang.ClassNotFoundException- if the class is not foundjava.lang.IllegalAccessException- cannot call constructorjava.lang.InstantiationException- cannot call constructorjava.lang.reflect.InvocationTargetException- if an exception if the specified component exists, but is not of the right type, or if an exception occurs while creating the class or loading the setup filejava.io.IOExceptionPHXServerSideExceptionjava.net.MalformedURLExceptioncom.phoenix_int.aserver.util.proxywrapper.PHXProxyNotAllowedExceptionPHXNoSuchCategoryException
instantiate
public IPHXComponent instantiate(java.lang.String compClass,
java.lang.String virtualDir)
throws java.lang.ClassNotFoundException,
java.lang.IllegalAccessException,
java.lang.InstantiationException,
java.lang.reflect.InvocationTargetException,
java.io.IOException,
PHXServerSideException,
java.net.MalformedURLException,
com.phoenix_int.aserver.util.proxywrapper.PHXProxyNotAllowedException,
PHXNoSuchCategoryException
Creates an instance of the specified component. Typically a librarian will find the appropriate files and pass the request off to the IPHXFactory. It is important that this class throws PHXNoSuchCategoryException and ClassNotFoundException in the appropriate cases as they are handled in special ways by the librarian mounter and librarian combiner.
Specified by:
instantiatein interfaceIPHXLibrarian
Parameters:
compClass- the class name for the componentvirtualDir- The directory the client asked for
Returns:
- an instance of the specified component class
Throws:
java.lang.ClassNotFoundException- IfcompClassdoesn't indicate a valid class for the specified directoryPHXNoSuchCategoryException- If thevirtualDirNamepassed in is invalidjava.lang.IllegalAccessExceptionjava.lang.InstantiationExceptionjava.lang.reflect.InvocationTargetExceptionjava.io.IOExceptionPHXServerSideExceptionjava.net.MalformedURLExceptioncom.phoenix_int.aserver.util.proxywrapper.PHXProxyNotAllowedException
instantiateManaged
public com.phoenix_int.aserver.PHXComponentResourcePair instantiateManaged(java.lang.String compClass,
java.lang.String virtualDir,
java.lang.String connector,
java.lang.String queue)
throws java.lang.ClassNotFoundException,
java.lang.IllegalAccessException,
java.lang.InstantiationException,
java.lang.reflect.InvocationTargetException,
java.io.IOException,
PHXServerSideException,
java.net.MalformedURLException,
com.phoenix_int.aserver.util.proxywrapper.PHXProxyNotAllowedException,
PHXNoSuchCategoryException
Creates an instance of the specified component. Typically a librarian will find the appropriate files and pass the request off to the IPHXFactory. It is important that this class throws PHXNoSuchCategoryException and ClassNotFoundException in the appropriate cases as they are handled in special ways by the librarian mounter and librarian combiner.
Specified by:
instantiateManagedin interfaceIPHXLibrarian2
Parameters:
compClass- the class name for the componentvirtualDir- The directory the client asked forconnector- name of the connector object to usequeue- name of the queue object to use
Returns:
- an instance of the specified component class and its managed resources
Throws:
java.lang.ClassNotFoundException- IfcompClassdoesn't indicate a valid class for the specified directoryPHXNoSuchCategoryException- If thevirtualDirNamepassed in is invalidjava.lang.IllegalAccessExceptionjava.lang.InstantiationExceptionjava.lang.reflect.InvocationTargetExceptionjava.io.IOExceptionPHXServerSideExceptionjava.net.MalformedURLExceptioncom.phoenix_int.aserver.util.proxywrapper.PHXProxyNotAllowedException
instantiateManaged
public com.phoenix_int.aserver.PHXComponentResourcePair instantiateManaged(java.lang.String compClass,
java.lang.String virtualDir)
throws java.lang.ClassNotFoundException,
java.lang.IllegalAccessException,
java.lang.InstantiationException,
java.lang.reflect.InvocationTargetException,
java.io.IOException,
PHXServerSideException,
java.net.MalformedURLException,
com.phoenix_int.aserver.util.proxywrapper.PHXProxyNotAllowedException,
PHXNoSuchCategoryException
Creates an instance of the specified component. Typically a librarian will find the appropriate files and pass the request off to the IPHXFactory. It is important that this class throws PHXNoSuchCategoryException and ClassNotFoundException in the appropriate cases as they are handled in special ways by the librarian mounter and librarian combiner.
Specified by:
instantiateManagedin interfaceIPHXLibrarian2
Parameters:
compClass- the class name for the componentvirtualDir- The directory the client asked for
Returns:
- an instance of the specified component class and its managed resources
Throws:
java.lang.ClassNotFoundException- IfcompClassdoesn't indicate a valid class for the specified directoryPHXNoSuchCategoryException- If thevirtualDirNamepassed in is invalidjava.lang.IllegalAccessExceptionjava.lang.InstantiationExceptionjava.lang.reflect.InvocationTargetExceptionjava.io.IOExceptionPHXServerSideExceptionjava.net.MalformedURLExceptioncom.phoenix_int.aserver.util.proxywrapper.PHXProxyNotAllowedException
getComponentHistory
public PHXComponentBranch getComponentHistory(java.lang.String compClass,
java.lang.String virtualDir)
throws java.lang.ClassNotFoundException,
PHXNoSuchCategoryException,
java.io.IOException
Gets all version information about a particular component. It is important that this class throws PHXNoSuchCategoryException and ClassNotFoundException in the appropriate cases as they are handled in special ways by the librarian mounter and librarian combiner.
Specified by:
getComponentHistoryin interfaceIPHXVersionedLibrarian
Parameters:
compClass- the class name for the componentvirtualDir- The directory the client asked for
Returns:
- An instance of
PHXComponentBranchwhich contains all the versions and sub-branches available
Throws:
java.lang.ClassNotFoundException- IfcompClassdoesn't indicate a valid class for the specified directoryPHXNoSuchCategoryException- If thevirtualDirNamepassed in is invalidjava.io.IOException
describe
public PHXComponentDescription describe(java.lang.String compClass,
java.lang.String virtualDir)
throws java.lang.ClassNotFoundException,
java.io.IOException,
PHXServerSideException,
java.net.MalformedURLException,
PHXNoSuchCategoryException
Describes the specified component.
Specified by:
describein interfaceIPHXLibrarian
Parameters:
compClass- the class name for the componentvirtualDir- the directory to search for the component class
Returns:
- a description of the specified component class
Throws:
java.lang.ClassNotFoundException- if the class is not foundPHXNoSuchCategoryException- If thevirtualDirNamepassed in is invalidjava.io.IOExceptionPHXServerSideExceptionjava.net.MalformedURLException
getQueues
public java.lang.String getQueues(java.lang.String compClass,
java.lang.String virtualDir)
throws java.lang.Exception
Method for getting Queues from CenterLink, MCRE just returns blank string
Specified by:
getQueuesin interfaceIPHXLibrarian
Parameters:
compClass- the class name for the componentvirtualDir- The directory the client asked for
Returns:
- a list of queues for the specified component class
Throws:
PHXNoSuchCategoryException- If thevirtualDirNamepassed in is invalidjava.lang.ClassNotFoundException- IfcompClassdoesn't indicate a valid class for the specified directoryjava.lang.Exception- If anything goes wrong
getBranchesAndTags
public java.lang.String getBranchesAndTags()
Does not support branching and tagging
Specified by:
getBranchesAndTagsin interfaceIPHXVersionedLibrarian2
Returns:
- always returns empty string