Interface ConfigManagerLocal
-
public interface ConfigManagerLocalLocal Interface for ConfigManager
Loads and saves configuration files and their revisions using the Document Manager.
-
-
Field Summary
Fields Modifier and Type Field Description static intCONVERT_INPUT_STREAM_FAILEDstatic intFILE_LOCKEDstatic intFILE_NOT_EXISTstatic intFILE_NOT_FOUNDstatic intINVALID_JCR_SESSIONstatic intINVALID_PUBSERVER_SESSIONIDstatic intJAXB_ERRORstatic intPLUGIN_VALIDATION_EXCEPTIONstatic intREPOSITORY_ACCESS_FAILEDstatic intTRANSACTION_ERRORstatic intVALIDATION_FAILED
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.lang.StringcheckinConfig(java.lang.String sessionId, java.lang.String path, PluginConfigDataHandler config, java.lang.Class<?>... customClazz)Check-in a single configurationjava.lang.StringcheckinConfig(java.lang.String sessionId, java.lang.String path, PluginConfigDataHandler config, java.lang.String notificationMode, java.lang.Class<?>... customClazz)replication of checkinConfig but with notification mode, notification mode can be CREATE, UPDATE or DELETEjava.lang.StringcheckinConfigFile(java.lang.String sessionId, DocumentContent document)Check-in a documentvoidcheckinListOfConfigFiles(java.lang.String sessionId, PluginConfigCollection configurations, boolean validateXML)Check-in multiple files as string arrayPluginConfigDataHandlercheckoutConfig(java.lang.String sessionId, java.lang.String path, java.lang.Class<?>... customClazz)Checkout a single file stringPluginConfigCollectioncheckoutListOfConfigFiles(java.lang.String sessionId, java.util.List<java.lang.String> files, java.lang.Class<?>... customClazz)Check a list of files from the repository.java.lang.StringcreateConfiguration(java.lang.String sessionId, java.lang.String pluginName, java.lang.String customTypeName, java.util.Map<java.lang.String,java.lang.Object> initialValues)Create and save a new configuration for a plug-in.voiddeleteFileOrFolder(java.lang.String sessionId, java.lang.String path)Remove files and/or folders physically from the repositoryvoiddeleteFileOrFolder(java.lang.String sessionId, java.lang.String path, boolean updateDependencies)Remove files and/or folders physically from the repositoryjava.util.List<java.lang.String>deleteListOfConfigFiles(java.lang.String sessionId, java.util.List<java.lang.String> deletefiles)Delete configuration files from the provided list.java.util.List<java.lang.String>deleteListOfConfigFiles(java.lang.String sessionId, java.util.List<java.lang.String> deletefiles, boolean updateDependencies)Delete configuration files from the provided list.voidemptyConfigTrash()Clears the trash bin of the repository.voidemptyTrash(java.lang.String sessionId)Remove all files in the trash folder of the repositorybooleanexists(java.lang.String path)Check whether a file or folder exists at the given pathjava.util.List<PluginConfig.Dependencies.PluginDependency>getAllDependencies(java.lang.String path, java.util.List<PluginConfig.Dependencies.PluginDependency> dependencies, boolean recursive)Read all dependencies of a configuration file.java.util.List<Client>getClients()Get a list of clients (tenants)PluginConfigDataHandlergetConfig(java.lang.String path, java.lang.Class<?>... customClazz)Get the content of the a configuration file from the Document Manager (HEAD Revision)ConfigFilePropertiesgetConfigProperties(java.lang.String path)Get the configuration properties of a file at a specific location.PluginConfigDataHandlergetConfigRevision(java.lang.String path, java.lang.String revision, java.lang.Class<?>... customClazz)Get the content of the a specific revision of a configuration file from the Document Managerjava.util.List<ConfigFileProperties>getConfigRevisionsProperties(java.lang.String path)Get properties of all revisions of this config filePluginConfigCollectiongetConfigs(java.lang.String folder, java.lang.Class<?>... customClazz)Get a collection of config files from 'folder'.java.util.List<java.lang.String>getConnectors()Get a list of connector plug-ins (i.e.intgetCurrentId(boolean useServerId)Get the current value of this ID sequence.java.util.List<ConfigFileProperties>getFiles(java.lang.String folder)Get a list of files for a path (excluding sub-folders).intgetNextID(boolean useServerId)Read the next ID from the data source.intgetNextIDs(boolean useServerId, int poolSize)Get the next value of this ID sequence.java.util.List<PluginInfo>getPlugins(boolean active)Gets a list of all plugin libraries with their plugins and configurations.java.util.List<java.lang.String>getSubFolders(java.lang.String folderPath)Get List of sub foldersjava.util.List<ConfigFileProperties>getSubNodes(java.lang.String folderPath)Get a list of files and sub folders for a path.booleanisAlive(java.lang.String path)Check whether a file exists AND is alive, i.e.: the file is not deleted.voidlockFile(java.lang.String path, java.lang.String sessionId)Lock a single filevoidsetMinimumInitialServerId(boolean useServerId, int minInitialValue)Set the sequence initial value on this machine to minimum minInitialValue.voidunlockFile(java.lang.String path, java.lang.String sessionId)Unlock a single filejava.lang.Stringupload(java.io.InputStream content, java.lang.String path, ConfigFileProperties properties)Upload content stream to a config file at a specific location.java.lang.Stringupload(java.lang.String filePath, java.lang.String path, ConfigFileProperties properties)upload a local config file to the Repository
-
-
-
Field Detail
-
FILE_NOT_FOUND
static final int FILE_NOT_FOUND
- See Also:
- Constant Field Values
-
INVALID_PUBSERVER_SESSIONID
static final int INVALID_PUBSERVER_SESSIONID
- See Also:
- Constant Field Values
-
TRANSACTION_ERROR
static final int TRANSACTION_ERROR
- See Also:
- Constant Field Values
-
FILE_NOT_EXIST
static final int FILE_NOT_EXIST
- See Also:
- Constant Field Values
-
FILE_LOCKED
static final int FILE_LOCKED
- See Also:
- Constant Field Values
-
VALIDATION_FAILED
static final int VALIDATION_FAILED
- See Also:
- Constant Field Values
-
INVALID_JCR_SESSION
static final int INVALID_JCR_SESSION
- See Also:
- Constant Field Values
-
REPOSITORY_ACCESS_FAILED
static final int REPOSITORY_ACCESS_FAILED
- See Also:
- Constant Field Values
-
JAXB_ERROR
static final int JAXB_ERROR
- See Also:
- Constant Field Values
-
CONVERT_INPUT_STREAM_FAILED
static final int CONVERT_INPUT_STREAM_FAILED
- See Also:
- Constant Field Values
-
PLUGIN_VALIDATION_EXCEPTION
static final int PLUGIN_VALIDATION_EXCEPTION
- See Also:
- Constant Field Values
-
-
Method Detail
-
getConfig
PluginConfigDataHandler getConfig(java.lang.String path, java.lang.Class<?>... customClazz) throws ConfigManagerException
Get the content of the a configuration file from the Document Manager (HEAD Revision)- Parameters:
path- Repository path (e.g. /pubserver/com.priint.plugin.demo/config_2.1.xml)customClazz- class representing an XML root element defined via JAXB- Returns:
- String content (XML) of the configuration file.
- Throws:
ConfigManagerException
-
getConfigRevision
PluginConfigDataHandler getConfigRevision(java.lang.String path, java.lang.String revision, java.lang.Class<?>... customClazz) throws ConfigManagerException
Get the content of the a specific revision of a configuration file from the Document Manager- Parameters:
path- Repository path (e.g. /pubserver/com.priint.plugin.demo/config_2.1.xml)revision- Revision numbercustomClazz- class representing an XML root element defined via JAXB- Returns:
- String content (XML) of the configuration file.
- Throws:
ConfigManagerException
-
checkinConfig
java.lang.String checkinConfig(java.lang.String sessionId, java.lang.String path, PluginConfigDataHandler config, java.lang.Class<?>... customClazz) throws ConfigManagerCheckinExceptionCheck-in a single configuration- Parameters:
sessionId-config-customClazz- class representing an XML root element defined via JAXB- Returns:
- the path of the configuration checked in
- Throws:
ConfigManagerCheckinException
-
checkinConfig
java.lang.String checkinConfig(java.lang.String sessionId, java.lang.String path, PluginConfigDataHandler config, java.lang.String notificationMode, java.lang.Class<?>... customClazz) throws ConfigManagerCheckinExceptionreplication of checkinConfig but with notification mode, notification mode can be CREATE, UPDATE or DELETE- Throws:
ConfigManagerCheckinException
-
getConfigRevisionsProperties
java.util.List<ConfigFileProperties> getConfigRevisionsProperties(java.lang.String path) throws ConfigManagerException
Get properties of all revisions of this config file- Parameters:
path-- Returns:
- List of config file properties
- Throws:
ConfigManagerException
-
getConfigs
PluginConfigCollection getConfigs(java.lang.String folder, java.lang.Class<?>... customClazz) throws ConfigManagerException
Get a collection of config files from 'folder'.- Parameters:
folder- repository folder (e.g. /pubserver/com.priint.plugin.demo/myfolder/)customClazz- class representing an XML root element defined via JAXB- Returns:
- Collection of config files Key: config file path in repository
- Throws:
ConfigManagerException
-
getSubFolders
java.util.List<java.lang.String> getSubFolders(java.lang.String folderPath) throws ConfigManagerExceptionGet List of sub folders- Parameters:
folderPath- repository folder (e.g. /pubserver/com.priint.plugin.demo/myfolder/)- Returns:
- List of sub folders (path)
- Throws:
ConfigManagerException
-
exists
boolean exists(java.lang.String path) throws ConfigManagerExceptionCheck whether a file or folder exists at the given path- Parameters:
path-- Returns:
- true if the configuration exists
- Throws:
ConfigManagerException
-
isAlive
boolean isAlive(java.lang.String path) throws ConfigManagerExceptionCheck whether a file exists AND is alive, i.e.: the file is not deleted.- Parameters:
path-- Returns:
- true, if file exists and has not been tagged as deleted.
- Throws:
ConfigManagerException
-
getPlugins
java.util.List<PluginInfo> getPlugins(boolean active) throws ConfigManagerException
Gets a list of all plugin libraries with their plugins and configurations.- Parameters:
active- if true only active plugin libraries are return, if false all plugin libraries are returned- Returns:
- list of configurations (empty list if nothing was found)
- Throws:
ConfigManagerException
-
getNextID
int getNextID(boolean useServerId)
Read the next ID from the data source.Note:
Purpose of this method is to retrieve unique IDs for a single server instance or a server instance within a deployment environment (e.g. Developing Server, Integration Server, Test Server, Productive System).
This will only work, if each of this server has a unique instance ID.
Please take care to configure these values properly. SeeConstants.PUBSERVER_NUM_INSTANCESandConstants.PUBSERVER_INSTANCE_IDfor more information.- Parameters:
useServerId-- Returns:
- integer containing a sequential incrementing server dependent ID
-
getConnectors
java.util.List<java.lang.String> getConnectors()
Get a list of connector plug-ins (i.e. string IDs of the plug-ins)- Returns:
- a list of connector plug-ins
-
getClients
java.util.List<Client> getClients()
Get a list of clients (tenants)- Returns:
- a list of clients (tenants)
-
upload
java.lang.String upload(java.lang.String filePath, java.lang.String path, ConfigFileProperties properties) throws ConfigManagerException, java.io.FileNotFoundExceptionupload a local config file to the Repository- Parameters:
filePath- local system path of the config filepath- target folder in repositoryproperties- properties of the config file- Returns:
- target path
- Throws:
ConfigManagerExceptionjava.io.FileNotFoundException
-
deleteFileOrFolder
void deleteFileOrFolder(java.lang.String sessionId, java.lang.String path, boolean updateDependencies) throws ConfigManagerExceptionRemove files and/or folders physically from the repository- Parameters:
sessionId- SessionIdpath- target file or folder in repositoryupdateDependencies-- Throws:
ConfigManagerException
-
deleteFileOrFolder
void deleteFileOrFolder(java.lang.String sessionId, java.lang.String path) throws ConfigManagerExceptionRemove files and/or folders physically from the repository- Parameters:
sessionId- SessionIdpath- target file or folder in repository- Throws:
ConfigManagerException
-
emptyTrash
void emptyTrash(java.lang.String sessionId) throws ConfigManagerDeleteExceptionRemove all files in the trash folder of the repository- Throws:
ConfigManagerDeleteException
-
checkoutConfig
PluginConfigDataHandler checkoutConfig(java.lang.String sessionId, java.lang.String path, java.lang.Class<?>... customClazz) throws ConfigManagerCheckoutException
Checkout a single file string- Parameters:
sessionId- SessionIDpath- Path to the config file in repositorycustomClazz- class representing an XML root element defined via JAXB- Returns:
- config file as String
- Throws:
ConfigManagerCheckoutException
-
checkoutListOfConfigFiles
PluginConfigCollection checkoutListOfConfigFiles(java.lang.String sessionId, java.util.List<java.lang.String> files, java.lang.Class<?>... customClazz) throws ConfigManagerCheckoutException
Check a list of files from the repository. The files that are checked out are locked for other users- Parameters:
sessionId- valid PubServer SessionIDfiles- List of config files for checking out (path in repository)customClazz- class representing an XML root element defined via JAXB- Throws:
ConfigManagerCheckoutException
-
checkinListOfConfigFiles
void checkinListOfConfigFiles(java.lang.String sessionId, PluginConfigCollection configurations, boolean validateXML) throws ConfigManagerCheckinExceptionCheck-in multiple files as string array- Parameters:
sessionId- SessionIDconfigurations- Collection of config files as String array. Key: path to the file in repositoryvalidateXML- validate XML files against the PluginConfig.xsd schema- Throws:
ConfigManagerCheckinException
-
lockFile
void lockFile(java.lang.String path, java.lang.String sessionId) throws ConfigManagerExceptionLock a single file- Parameters:
path-sessionId-- Throws:
ConfigManagerException
-
unlockFile
void unlockFile(java.lang.String path, java.lang.String sessionId) throws ConfigManagerExceptionUnlock a single file- Parameters:
path-sessionId-- Throws:
ConfigManagerException
-
getSubNodes
java.util.List<ConfigFileProperties> getSubNodes(java.lang.String folderPath) throws ConfigManagerException
Get a list of files and sub folders for a path.- Parameters:
folderPath-- Returns:
- list of properties of the files
- Throws:
ConfigManagerException
-
deleteListOfConfigFiles
java.util.List<java.lang.String> deleteListOfConfigFiles(java.lang.String sessionId, java.util.List<java.lang.String> deletefiles, boolean updateDependencies) throws ConfigManagerDeleteExceptionDelete configuration files from the provided list.- Parameters:
sessionId-deletefiles- Paths of the files to delete.updateDependencies- If true dependencies will be automatically updated.- Returns:
- list of paths of files actually deleted
- Throws:
ConfigManagerDeleteException
-
deleteListOfConfigFiles
java.util.List<java.lang.String> deleteListOfConfigFiles(java.lang.String sessionId, java.util.List<java.lang.String> deletefiles) throws ConfigManagerDeleteExceptionDelete configuration files from the provided list.- Parameters:
sessionId-deletefiles- Paths of the files to delete.- Returns:
- list of paths of files actually deleted
- Throws:
ConfigManagerDeleteException
-
createConfiguration
java.lang.String createConfiguration(java.lang.String sessionId, java.lang.String pluginName, java.lang.String customTypeName, java.util.Map<java.lang.String,java.lang.Object> initialValues) throws ConfigManagerExceptionCreate and save a new configuration for a plug-in. The resulting configuration XML will be returned.The actual config creation will be delegated to the plug-in itself.
- Parameters:
sessionId-pluginName- Mapped name of the plug-in. Used as first part of the full path to the configuration file.customTypeName- Plug-in specific type string.initialValues- HashMap of values to be used for the configuration creation. Interpretation of the entries is plugin specific.- Returns:
- Created XML as string.
- Throws:
ConfigManagerException
-
getConfigProperties
ConfigFileProperties getConfigProperties(java.lang.String path) throws ConfigManagerException
Get the configuration properties of a file at a specific location.- Parameters:
path- location- Returns:
- configuration properties
- Throws:
ConfigManagerException
-
getFiles
java.util.List<ConfigFileProperties> getFiles(java.lang.String folder) throws ConfigManagerException
Get a list of files for a path (excluding sub-folders).- Parameters:
folder-- Returns:
- list of properties of the files
- Throws:
ConfigManagerException
-
upload
java.lang.String upload(java.io.InputStream content, java.lang.String path, ConfigFileProperties properties) throws ConfigManagerExceptionUpload content stream to a config file at a specific location.- Parameters:
content- streampath- locationproperties- additional properties of the configuration file- Returns:
- path
- Throws:
ConfigManagerException
-
checkinConfigFile
java.lang.String checkinConfigFile(java.lang.String sessionId, DocumentContent document) throws ConfigManagerCheckinExceptionCheck-in a document- Parameters:
sessionId-document-- Returns:
- path
- Throws:
ConfigManagerCheckinException
-
getAllDependencies
java.util.List<PluginConfig.Dependencies.PluginDependency> getAllDependencies(java.lang.String path, java.util.List<PluginConfig.Dependencies.PluginDependency> dependencies, boolean recursive)
Read all dependencies of a configuration file.- Parameters:
path- of the filedependencies- list of known dependenciesrecursive- if true, system performs a deep traversal of dependencies- Returns:
- List of dependencies found
-
setMinimumInitialServerId
void setMinimumInitialServerId(boolean useServerId, int minInitialValue)Set the sequence initial value on this machine to minimum minInitialValue.Warning!
Use this function for sanity checks only. In normal operation there should be no need to manually change the sequence value. If anything, doing so is a dangerous operation and can cause ID conflicts later.
Calling this method can be necessary after importing repository dumps into a newly installed system (with newly initialized ID sequences). In that case you would use the following code:// maximum ID calculated from the last import - in real life, this piece // of code will probably look more complex: int maxId = 132456; ConfigManagerRemote configManager; // lookup etc. int currentSequenceId = configManager.getCurrentId(false); if (currentSequenceId < maxId) { // this is OK. The next time we call getNextID, the value // will be incremented before return: configManager.setMinimumInitialServerId(false, maxId); }- Parameters:
useServerId- if true, use instance name for the sequence nameminInitialValue-
-
getCurrentId
int getCurrentId(boolean useServerId)
Get the current value of this ID sequence. This is the value that was returned on the last call ofgetNextID(boolean)or the initial value of this sequence, if it has not been initialized yet.
If you want to retrieve a unique ID for this server instance, usegetNextID(boolean)instead.- Parameters:
useServerId- if true, use instance name for the sequence name- Returns:
- the current value of sequence
-
emptyConfigTrash
void emptyConfigTrash()
Clears the trash bin of the repository. Files cannot be undeleted after this operation.
-
getNextIDs
int getNextIDs(boolean useServerId, int poolSize)Get the next value of this ID sequence.- Parameters:
useServerId- if true, use instance name for the sequence namepoolSize- initial size of (untouchable) IDs- Returns:
- the next (incremented) value of sequence
-
-