Class BaseRemoteStore
- java.lang.Object
-
- org.springframework.extensions.webscripts.AbstractWebScript
-
- org.alfresco.repo.web.scripts.bean.BaseRemoteStore
-
- All Implemented Interfaces:
org.springframework.extensions.webscripts.WebScript
- Direct Known Subclasses:
ADMRemoteStore
public abstract class BaseRemoteStore extends org.springframework.extensions.webscripts.AbstractWebScript
Remote Store service.Responsible for providing remote HTTP based access to a store. Designed to be accessed from a web-tier application to remotely mirror a WebScript Store instance.
Request format:
/ / [? ] / /s/ / [? ] / /s/ /w/ / [? ] Example:
/service/remotestore/lastmodified/sites/xyz/pages/page.xml
where:
/service/remotestore -> service path /lastmodified -> method name /sites/../page.xml -> document path
optional request parameters:
s -> the store id
Note: path is relative to the root path as configured for this webscript bean
Further URL arguments may be provided if required by specific API methods.
For content create and update the request should be POSTed and the content sent as the payload of the request content.
Supported API methods:
GET lastmodified -> return timestamp of a document in ms since 1970 as a long string value GET has -> return true or false string as existence for a document GET get -> return raw document content - in addition the appropriate HTTP headers for the character encoding, content type, length and modified date will be set GET list -> return the list of available document paths under a path - UTF-8 response text GET listall -> return the list of available document paths (recursively) under a given path - UTF-8 response text GET listpattern -> return the list of document paths matching a file pattern under a given path - UTF-8 response text POST create -> create a new document with request content payload POST createmulti -> create multiple new documents with request content payload POST update -> update an existing document with request content payload DELETE delete -> delete an existing document
- Author:
- Kevin Roast
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
defaultStore
protected org.alfresco.service.cmr.repository.MimetypeService
mimetypeService
static java.lang.String
REQUEST_PARAM_STORE
static java.lang.String
TOKEN_STORE
protected static java.lang.ThreadLocal<javax.xml.transform.Transformer>
transformer
protected static javax.xml.transform.TransformerFactory
TRANSFORMER_FACTORY
-
Constructor Summary
Constructors Constructor Description BaseRemoteStore()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract void
createDocument(org.springframework.extensions.webscripts.WebScriptResponse res, java.lang.String store, java.lang.String path, java.io.InputStream content)
Creates a document.protected abstract void
createDocuments(org.springframework.extensions.webscripts.WebScriptResponse res, java.lang.String store, java.io.InputStream content)
Creates multiple XML documents encapsulated in a single one.protected abstract void
deleteDocument(org.springframework.extensions.webscripts.WebScriptResponse res, java.lang.String store, java.lang.String path)
Deletes an existing document.protected static java.lang.String
encodePath(java.lang.String s)
void
execute(org.springframework.extensions.webscripts.WebScriptRequest req, org.springframework.extensions.webscripts.WebScriptResponse res)
Execute the webscript based on the request parametersprotected abstract void
getDocument(org.springframework.extensions.webscripts.WebScriptResponse res, java.lang.String store, java.lang.String path)
Gets a document.protected java.util.List<java.lang.String>
getPathParts(java.lang.String[] extPaths)
Helper to break down webscript extension path into path component elementsprotected abstract void
hasDocument(org.springframework.extensions.webscripts.WebScriptResponse res, java.lang.String store, java.lang.String path)
Determines if the document exists.protected abstract void
lastModified(org.springframework.extensions.webscripts.WebScriptResponse res, java.lang.String store, java.lang.String path)
Gets the last modified timestamp for the document.protected abstract void
listDocuments(org.springframework.extensions.webscripts.WebScriptResponse res, java.lang.String store, java.lang.String path, boolean recurse)
Lists the document paths under a given path.protected abstract void
listDocuments(org.springframework.extensions.webscripts.WebScriptResponse res, java.lang.String store, java.lang.String path, java.lang.String pattern)
Lists the document paths matching a file pattern under a given path.void
setMimetypeService(org.alfresco.service.cmr.repository.MimetypeService mimetypeService)
void
setStore(java.lang.String defaultStore)
protected abstract void
updateDocument(org.springframework.extensions.webscripts.WebScriptResponse res, java.lang.String store, java.lang.String path, java.io.InputStream content)
Updates an existing document.-
Methods inherited from class org.springframework.extensions.webscripts.AbstractWebScript
addModuleBundleToCache, checkModuleBundleCache, createArgs, createArgsM, createHeaders, createHeadersM, createScriptParameters, createStatusException, createTemplateParameters, executeScript, getContainer, getDescription, getExecuteScript, getResources, getStatusTemplate, init, renderString, renderString, renderTemplate, sendStatus, setURLModelFactory, toString
-
-
-
-
Field Detail
-
TOKEN_STORE
public static final java.lang.String TOKEN_STORE
- See Also:
- Constant Field Values
-
REQUEST_PARAM_STORE
public static final java.lang.String REQUEST_PARAM_STORE
- See Also:
- Constant Field Values
-
defaultStore
protected java.lang.String defaultStore
-
mimetypeService
protected org.alfresco.service.cmr.repository.MimetypeService mimetypeService
-
TRANSFORMER_FACTORY
protected static final javax.xml.transform.TransformerFactory TRANSFORMER_FACTORY
-
transformer
protected static java.lang.ThreadLocal<javax.xml.transform.Transformer> transformer
-
-
Method Detail
-
setStore
public void setStore(java.lang.String defaultStore)
- Parameters:
defaultStore
- the default store name of the store to process document requests against
-
setMimetypeService
public void setMimetypeService(org.alfresco.service.cmr.repository.MimetypeService mimetypeService)
- Parameters:
mimetypeService
- the MimetypeService to set
-
execute
public void execute(org.springframework.extensions.webscripts.WebScriptRequest req, org.springframework.extensions.webscripts.WebScriptResponse res) throws java.io.IOException
Execute the webscript based on the request parameters- Throws:
java.io.IOException
-
getPathParts
protected java.util.List<java.lang.String> getPathParts(java.lang.String[] extPaths)
Helper to break down webscript extension path into path component elements
-
lastModified
protected abstract void lastModified(org.springframework.extensions.webscripts.WebScriptResponse res, java.lang.String store, java.lang.String path) throws java.io.IOException
Gets the last modified timestamp for the document. The output will be the last modified date as a long toString().- Parameters:
store
- the store idpath
- document path to an existing document- Throws:
java.io.IOException
-
hasDocument
protected abstract void hasDocument(org.springframework.extensions.webscripts.WebScriptResponse res, java.lang.String store, java.lang.String path) throws java.io.IOException
Determines if the document exists. The output will be either the string "true" or the string "false".- Parameters:
store
- the store idpath
- document path- Throws:
java.io.IOException
-
getDocument
protected abstract void getDocument(org.springframework.extensions.webscripts.WebScriptResponse res, java.lang.String store, java.lang.String path) throws java.io.IOException
Gets a document. The output will be the document content stream.- Parameters:
store
- the store idpath
- document path- Throws:
java.io.IOException
- if an error occurs retrieving the document
-
listDocuments
protected abstract void listDocuments(org.springframework.extensions.webscripts.WebScriptResponse res, java.lang.String store, java.lang.String path, boolean recurse) throws java.io.IOException
Lists the document paths under a given path. The output will be the list of relative document paths found under the path. Separated by newline characters.- Parameters:
store
- the store idpath
- document pathrecurse
- true to peform a recursive list, false for direct children only.- Throws:
java.io.IOException
- if an error occurs listing the documents
-
listDocuments
protected abstract void listDocuments(org.springframework.extensions.webscripts.WebScriptResponse res, java.lang.String store, java.lang.String path, java.lang.String pattern) throws java.io.IOException
Lists the document paths matching a file pattern under a given path. The output will be the list of relative document paths found under the path that match the given file pattern. Separated by newline characters.- Parameters:
store
- the store idpath
- document pathpattern
- file pattern to match - allows wildcards e.g. *.xml or site*.xml- Throws:
java.io.IOException
- if an error occurs listing the documents
-
createDocument
protected abstract void createDocument(org.springframework.extensions.webscripts.WebScriptResponse res, java.lang.String store, java.lang.String path, java.io.InputStream content)
Creates a document.- Parameters:
store
- the store idpath
- document pathcontent
- content of the document to write
-
createDocuments
protected abstract void createDocuments(org.springframework.extensions.webscripts.WebScriptResponse res, java.lang.String store, java.io.InputStream content)
Creates multiple XML documents encapsulated in a single one.- Parameters:
res
- WebScriptResponsestore
- the store idcontent
- content of the document to write
-
updateDocument
protected abstract void updateDocument(org.springframework.extensions.webscripts.WebScriptResponse res, java.lang.String store, java.lang.String path, java.io.InputStream content)
Updates an existing document.- Parameters:
store
- the store idpath
- document pathcontent
- content to update the document with
-
deleteDocument
protected abstract void deleteDocument(org.springframework.extensions.webscripts.WebScriptResponse res, java.lang.String store, java.lang.String path)
Deletes an existing document.- Parameters:
store
- the store idpath
- document path
-
encodePath
protected static java.lang.String encodePath(java.lang.String s)
-
-