org.exist.xmlrpc
Class RpcConnection

java.lang.Object
  extended byjava.lang.Thread
      extended byorg.exist.xmlrpc.RpcConnection
All Implemented Interfaces:
java.lang.Runnable

public class RpcConnection
extends java.lang.Thread

This class implements the actual methods defined by RpcAPI.

Author:
Wolfgang Meier (wolfgang@exist-db.org)

Field Summary
protected  BrokerPool brokerPool
           
protected  java.util.List cachedExpressions
           
protected  org.exist.xmlrpc.RpcServer.ConnectionPool connectionPool
           
protected  java.lang.String databaseid
          id of the database registred against the BrokerPool
protected  java.util.WeakHashMap documentCache
           
static java.lang.String EXIST_NS
           
protected  boolean terminate
           
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
RpcConnection(Configuration conf, org.exist.xmlrpc.RpcServer.ConnectionPool pool, java.lang.String id)
           
 
Method Summary
protected  void checkPragmas(XQueryContext context, java.util.Hashtable parameters)
          Check if the XQuery contains pragmas that define serialization settings.
 java.util.Hashtable compile(User user, java.lang.String query, java.util.Hashtable parameters)
           
 void configureCollection(User user, java.lang.String collName, java.lang.String configuration)
           
 void createCollection(User user, java.lang.String name, java.util.Date created)
           
 java.lang.String createId(User user, java.lang.String collName)
           
 java.lang.String createResourceId(User user, java.lang.String collectionName)
           
 boolean dataBackup(User user, java.lang.String dest)
           
 java.util.Hashtable describeCollection(User user, java.lang.String rootCollection)
           
 java.util.Hashtable describeResource(User user, java.lang.String resourceName)
           
protected  QueryResult doQuery(User user, DBBroker broker, java.lang.String xpath, NodeSet contextSet, java.util.Hashtable parameters)
           
 java.util.Hashtable execute(User user, java.lang.String xpath, java.util.Hashtable parameters)
           
 int executeQuery(User user, java.lang.String xpath, java.util.Hashtable parameters)
           
protected  java.lang.String formatErrorMsg(java.lang.String message)
           
protected  java.lang.String formatErrorMsg(java.lang.String type, java.lang.String message)
           
 byte[] getBinaryResource(User user, java.lang.String name)
           
 java.util.Hashtable getCollectionDesc(User user, java.lang.String rootCollection)
           
 java.util.Date getCreationDate(User user, java.lang.String collectionPath)
           
 java.util.Vector getDocType(User user, java.lang.String documentPath)
           
 java.lang.String getDocument(User user, java.lang.String name, java.util.Hashtable parametri)
           
 byte[] getDocumentChunk(User user, java.lang.String name, int start, int len)
           
 java.util.Hashtable getDocumentData(User user, java.lang.String name, java.util.Hashtable parameters)
           
 java.util.Vector getDocumentListing(User user)
           
 java.util.Vector getDocumentListing(User user, java.lang.String name)
           
 java.util.Vector getGroups(User user)
           
 int getHits(User user, int resultId)
           
 java.util.Vector getIndexedElements(User user, java.lang.String collectionName, boolean inclusive)
           
 java.util.Hashtable getNextChunk(User user, java.lang.String handle, int offset)
           
 java.util.Hashtable getPermissions(User user, java.lang.String name)
           
 int getResourceCount(User user, java.lang.String collectionName)
           
 java.util.Vector getTimestamps(User user, java.lang.String documentPath)
           
 java.util.Hashtable getUser(User user, java.lang.String name)
           
 java.util.Vector getUsers(User user)
           
 boolean hasCollection(User user, java.lang.String name)
           
 boolean hasDocument(User user, java.lang.String name)
           
 java.lang.String hasUserLock(User user, java.lang.String path)
           
 boolean isValid(User user, java.lang.String docPath)
          Validate if specified document is Valid.
 boolean isXACMLEnabled()
           
 java.util.Hashtable listCollectionPermissions(User user, java.lang.String name)
           
 java.util.Hashtable listDocumentPermissions(User user, java.lang.String name)
           
 boolean lockResource(User user, java.lang.String path, java.lang.String userName)
           
 boolean moveOrCopyCollection(User user, java.lang.String collectionPath, java.lang.String destinationPath, java.lang.String newName, boolean move)
           
 boolean moveOrCopyResource(User user, java.lang.String docPath, java.lang.String destinationPath, java.lang.String newName, boolean move)
           
 boolean parse(User user, byte[] xml, java.lang.String path, boolean replace)
           
 boolean parse(User user, byte[] xml, java.lang.String path, boolean replace, java.util.Date created, java.util.Date modified)
           
 boolean parseLocal(User user, java.lang.String localFile, java.lang.String docName, boolean replace)
          Parse a file previously uploaded with upload.
 boolean parseLocal(User user, java.lang.String localFile, java.lang.String docName, boolean replace, java.util.Date created, java.util.Date modified)
           
protected  java.lang.String printAll(DBBroker broker, Sequence resultSet, int howmany, int start, java.util.Hashtable properties, long queryTime)
           
 java.lang.String printDiagnostics(User user, java.lang.String query, java.util.Hashtable parameters)
           
 java.lang.String query(User user, java.lang.String xpath, int howmany, int start, java.util.Hashtable parameters)
           
 java.util.Hashtable queryP(User user, java.lang.String xpath, java.lang.String docName, java.lang.String s_id, java.util.Hashtable parameters)
           
 void reindexCollection(User user, java.lang.String name)
           
 void releaseQueryResult(int handle)
           
 void remove(User user, java.lang.String docPath)
           
 boolean removeCollection(User user, java.lang.String name)
           
 boolean removeUser(User user, java.lang.String name)
           
 java.lang.String retrieve(User user, int resultId, int num, java.util.Hashtable parameters)
           
 java.lang.String retrieve(User user, java.lang.String docName, java.lang.String s_id, java.util.Hashtable parameters)
           
 java.lang.String retrieveAll(User user, int resultId, java.util.Hashtable parameters)
           
 void run()
           
 java.util.Vector scanIndexTerms(User user, java.lang.String xpath, java.lang.String start, java.lang.String end)
           
 java.util.Vector scanIndexTerms(User user, java.lang.String collectionName, java.lang.String start, java.lang.String end, boolean inclusive)
           
 boolean setDocType(User user, java.lang.String documentName, java.lang.String doctypename, java.lang.String publicid, java.lang.String systemid)
           
 boolean setPermissions(User user, java.lang.String resource, java.lang.String owner, java.lang.String ownerGroup, int permissions)
           
 boolean setPermissions(User user, java.lang.String resource, java.lang.String owner, java.lang.String ownerGroup, java.lang.String permissions)
           
 boolean setUser(User user, java.lang.String name, java.lang.String passwd, java.util.Vector groups, java.lang.String home)
           
 boolean storeBinary(User user, byte[] data, java.lang.String docName, java.lang.String mimeType, boolean replace)
           
 boolean storeBinary(User user, byte[] data, java.lang.String docName, java.lang.String mimeType, boolean replace, java.util.Date created, java.util.Date modified)
           
 java.util.Hashtable summary(User user, int resultId)
           
 java.util.Hashtable summary(User user, java.lang.String xpath)
           
 boolean sync()
           
 void synchronize()
           
 void terminate()
           
 boolean unlockResource(User user, java.lang.String path)
           
 java.lang.String upload(User user, byte[] chunk, int length, java.lang.String fileName, boolean compressed)
           
 int xupdate(User user, java.lang.String collectionName, java.lang.String xupdate)
           
 int xupdateResource(User user, java.lang.String resource, java.lang.String xupdate)
           
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

EXIST_NS

public static final java.lang.String EXIST_NS
See Also:
Constant Field Values

brokerPool

protected BrokerPool brokerPool

documentCache

protected java.util.WeakHashMap documentCache

terminate

protected boolean terminate

cachedExpressions

protected java.util.List cachedExpressions

connectionPool

protected org.exist.xmlrpc.RpcServer.ConnectionPool connectionPool

databaseid

protected java.lang.String databaseid
id of the database registred against the BrokerPool

Constructor Detail

RpcConnection

public RpcConnection(Configuration conf,
                     org.exist.xmlrpc.RpcServer.ConnectionPool pool,
                     java.lang.String id)
              throws EXistException
Method Detail

createCollection

public void createCollection(User user,
                             java.lang.String name,
                             java.util.Date created)
                      throws java.lang.Exception,
                             PermissionDeniedException
Throws:
java.lang.Exception
PermissionDeniedException

configureCollection

public void configureCollection(User user,
                                java.lang.String collName,
                                java.lang.String configuration)
                         throws EXistException
Throws:
EXistException

createId

public java.lang.String createId(User user,
                                 java.lang.String collName)
                          throws EXistException
Throws:
EXistException

doQuery

protected QueryResult doQuery(User user,
                              DBBroker broker,
                              java.lang.String xpath,
                              NodeSet contextSet,
                              java.util.Hashtable parameters)
                       throws java.lang.Exception
Throws:
java.lang.Exception

printDiagnostics

public java.lang.String printDiagnostics(User user,
                                         java.lang.String query,
                                         java.util.Hashtable parameters)
                                  throws java.lang.Exception
Throws:
java.lang.Exception

checkPragmas

protected void checkPragmas(XQueryContext context,
                            java.util.Hashtable parameters)
                     throws XPathException
Check if the XQuery contains pragmas that define serialization settings. If yes, copy the corresponding settings to the current set of output properties.

Parameters:
context -
Throws:
XPathException

executeQuery

public int executeQuery(User user,
                        java.lang.String xpath,
                        java.util.Hashtable parameters)
                 throws java.lang.Exception
Throws:
java.lang.Exception

formatErrorMsg

protected java.lang.String formatErrorMsg(java.lang.String message)

formatErrorMsg

protected java.lang.String formatErrorMsg(java.lang.String type,
                                          java.lang.String message)

getCollectionDesc

public java.util.Hashtable getCollectionDesc(User user,
                                             java.lang.String rootCollection)
                                      throws java.lang.Exception
Throws:
java.lang.Exception

describeResource

public java.util.Hashtable describeResource(User user,
                                            java.lang.String resourceName)
                                     throws EXistException,
                                            PermissionDeniedException
Throws:
EXistException
PermissionDeniedException

describeCollection

public java.util.Hashtable describeCollection(User user,
                                              java.lang.String rootCollection)
                                       throws java.lang.Exception
Throws:
java.lang.Exception

getDocument

public java.lang.String getDocument(User user,
                                    java.lang.String name,
                                    java.util.Hashtable parametri)
                             throws java.lang.Exception
Throws:
java.lang.Exception

getDocumentData

public java.util.Hashtable getDocumentData(User user,
                                           java.lang.String name,
                                           java.util.Hashtable parameters)
                                    throws java.lang.Exception
Throws:
java.lang.Exception

getNextChunk

public java.util.Hashtable getNextChunk(User user,
                                        java.lang.String handle,
                                        int offset)
                                 throws java.lang.Exception
Throws:
java.lang.Exception

getBinaryResource

public byte[] getBinaryResource(User user,
                                java.lang.String name)
                         throws EXistException,
                                PermissionDeniedException
Throws:
EXistException
PermissionDeniedException

xupdate

public int xupdate(User user,
                   java.lang.String collectionName,
                   java.lang.String xupdate)
            throws org.xml.sax.SAXException,
                   LockException,
                   PermissionDeniedException,
                   EXistException,
                   XPathException
Throws:
org.xml.sax.SAXException
LockException
PermissionDeniedException
EXistException
XPathException

xupdateResource

public int xupdateResource(User user,
                           java.lang.String resource,
                           java.lang.String xupdate)
                    throws org.xml.sax.SAXException,
                           LockException,
                           PermissionDeniedException,
                           EXistException,
                           XPathException
Throws:
org.xml.sax.SAXException
LockException
PermissionDeniedException
EXistException
XPathException

sync

public boolean sync()

isXACMLEnabled

public boolean isXACMLEnabled()

dataBackup

public boolean dataBackup(User user,
                          java.lang.String dest)

getDocumentListing

public java.util.Vector getDocumentListing(User user)
                                    throws EXistException
Throws:
EXistException

getDocumentListing

public java.util.Vector getDocumentListing(User user,
                                           java.lang.String name)
                                    throws EXistException,
                                           PermissionDeniedException
Throws:
EXistException
PermissionDeniedException

getResourceCount

public int getResourceCount(User user,
                            java.lang.String collectionName)
                     throws EXistException,
                            PermissionDeniedException
Throws:
EXistException
PermissionDeniedException

createResourceId

public java.lang.String createResourceId(User user,
                                         java.lang.String collectionName)
                                  throws EXistException,
                                         PermissionDeniedException
Throws:
EXistException
PermissionDeniedException

listDocumentPermissions

public java.util.Hashtable listDocumentPermissions(User user,
                                                   java.lang.String name)
                                            throws EXistException,
                                                   PermissionDeniedException
Throws:
EXistException
PermissionDeniedException

listCollectionPermissions

public java.util.Hashtable listCollectionPermissions(User user,
                                                     java.lang.String name)
                                              throws EXistException,
                                                     PermissionDeniedException
Throws:
EXistException
PermissionDeniedException

getHits

public int getHits(User user,
                   int resultId)
            throws EXistException
Throws:
EXistException

getPermissions

public java.util.Hashtable getPermissions(User user,
                                          java.lang.String name)
                                   throws EXistException,
                                          PermissionDeniedException
Throws:
EXistException
PermissionDeniedException

getCreationDate

public java.util.Date getCreationDate(User user,
                                      java.lang.String collectionPath)
                               throws PermissionDeniedException,
                                      EXistException
Throws:
PermissionDeniedException
EXistException

getTimestamps

public java.util.Vector getTimestamps(User user,
                                      java.lang.String documentPath)
                               throws PermissionDeniedException,
                                      EXistException
Throws:
PermissionDeniedException
EXistException

getUser

public java.util.Hashtable getUser(User user,
                                   java.lang.String name)
                            throws EXistException,
                                   PermissionDeniedException
Throws:
EXistException
PermissionDeniedException

getUsers

public java.util.Vector getUsers(User user)
                          throws EXistException,
                                 PermissionDeniedException
Throws:
EXistException
PermissionDeniedException

getGroups

public java.util.Vector getGroups(User user)
                           throws EXistException,
                                  PermissionDeniedException
Throws:
EXistException
PermissionDeniedException

hasDocument

public boolean hasDocument(User user,
                           java.lang.String name)
                    throws java.lang.Exception
Throws:
java.lang.Exception

hasCollection

public boolean hasCollection(User user,
                             java.lang.String name)
                      throws java.lang.Exception
Throws:
java.lang.Exception

parse

public boolean parse(User user,
                     byte[] xml,
                     java.lang.String path,
                     boolean replace)
              throws java.lang.Exception
Throws:
java.lang.Exception

parse

public boolean parse(User user,
                     byte[] xml,
                     java.lang.String path,
                     boolean replace,
                     java.util.Date created,
                     java.util.Date modified)
              throws java.lang.Exception
Throws:
java.lang.Exception

parseLocal

public boolean parseLocal(User user,
                          java.lang.String localFile,
                          java.lang.String docName,
                          boolean replace)
                   throws java.lang.Exception
Parse a file previously uploaded with upload. The temporary file will be removed.

Parameters:
user -
localFile -
Throws:
EXistException
java.io.IOException
java.lang.Exception

parseLocal

public boolean parseLocal(User user,
                          java.lang.String localFile,
                          java.lang.String docName,
                          boolean replace,
                          java.util.Date created,
                          java.util.Date modified)
                   throws java.lang.Exception
Throws:
java.lang.Exception

storeBinary

public boolean storeBinary(User user,
                           byte[] data,
                           java.lang.String docName,
                           java.lang.String mimeType,
                           boolean replace)
                    throws java.lang.Exception
Throws:
java.lang.Exception

storeBinary

public boolean storeBinary(User user,
                           byte[] data,
                           java.lang.String docName,
                           java.lang.String mimeType,
                           boolean replace,
                           java.util.Date created,
                           java.util.Date modified)
                    throws java.lang.Exception
Throws:
java.lang.Exception

upload

public java.lang.String upload(User user,
                               byte[] chunk,
                               int length,
                               java.lang.String fileName,
                               boolean compressed)
                        throws EXistException,
                               java.io.IOException
Throws:
EXistException
java.io.IOException

printAll

protected java.lang.String printAll(DBBroker broker,
                                    Sequence resultSet,
                                    int howmany,
                                    int start,
                                    java.util.Hashtable properties,
                                    long queryTime)
                             throws java.lang.Exception
Throws:
java.lang.Exception

compile

public java.util.Hashtable compile(User user,
                                   java.lang.String query,
                                   java.util.Hashtable parameters)
                            throws java.lang.Exception
Throws:
java.lang.Exception

query

public java.lang.String query(User user,
                              java.lang.String xpath,
                              int howmany,
                              int start,
                              java.util.Hashtable parameters)
                       throws java.lang.Exception
Throws:
java.lang.Exception

queryP

public java.util.Hashtable queryP(User user,
                                  java.lang.String xpath,
                                  java.lang.String docName,
                                  java.lang.String s_id,
                                  java.util.Hashtable parameters)
                           throws java.lang.Exception
Throws:
java.lang.Exception

execute

public java.util.Hashtable execute(User user,
                                   java.lang.String xpath,
                                   java.util.Hashtable parameters)
                            throws java.lang.Exception
Throws:
java.lang.Exception

releaseQueryResult

public void releaseQueryResult(int handle)

remove

public void remove(User user,
                   java.lang.String docPath)
            throws java.lang.Exception
Throws:
java.lang.Exception

removeCollection

public boolean removeCollection(User user,
                                java.lang.String name)
                         throws java.lang.Exception
Throws:
java.lang.Exception

removeUser

public boolean removeUser(User user,
                          java.lang.String name)
                   throws EXistException,
                          PermissionDeniedException
Throws:
EXistException
PermissionDeniedException

retrieve

public java.lang.String retrieve(User user,
                                 java.lang.String docName,
                                 java.lang.String s_id,
                                 java.util.Hashtable parameters)
                          throws java.lang.Exception
Throws:
java.lang.Exception

retrieve

public java.lang.String retrieve(User user,
                                 int resultId,
                                 int num,
                                 java.util.Hashtable parameters)
                          throws java.lang.Exception
Throws:
java.lang.Exception

retrieveAll

public java.lang.String retrieveAll(User user,
                                    int resultId,
                                    java.util.Hashtable parameters)
                             throws java.lang.Exception
Throws:
java.lang.Exception

run

public void run()

setPermissions

public boolean setPermissions(User user,
                              java.lang.String resource,
                              java.lang.String owner,
                              java.lang.String ownerGroup,
                              java.lang.String permissions)
                       throws EXistException,
                              PermissionDeniedException
Throws:
EXistException
PermissionDeniedException

setPermissions

public boolean setPermissions(User user,
                              java.lang.String resource,
                              java.lang.String owner,
                              java.lang.String ownerGroup,
                              int permissions)
                       throws EXistException,
                              PermissionDeniedException
Throws:
EXistException
PermissionDeniedException

setUser

public boolean setUser(User user,
                       java.lang.String name,
                       java.lang.String passwd,
                       java.util.Vector groups,
                       java.lang.String home)
                throws EXistException,
                       PermissionDeniedException
Throws:
EXistException
PermissionDeniedException

lockResource

public boolean lockResource(User user,
                            java.lang.String path,
                            java.lang.String userName)
                     throws java.lang.Exception
Throws:
java.lang.Exception

hasUserLock

public java.lang.String hasUserLock(User user,
                                    java.lang.String path)
                             throws java.lang.Exception
Throws:
java.lang.Exception

unlockResource

public boolean unlockResource(User user,
                              java.lang.String path)
                       throws java.lang.Exception
Throws:
java.lang.Exception

summary

public java.util.Hashtable summary(User user,
                                   java.lang.String xpath)
                            throws java.lang.Exception
Throws:
java.lang.Exception

summary

public java.util.Hashtable summary(User user,
                                   int resultId)
                            throws EXistException,
                                   XPathException
Throws:
EXistException
XPathException

getIndexedElements

public java.util.Vector getIndexedElements(User user,
                                           java.lang.String collectionName,
                                           boolean inclusive)
                                    throws EXistException,
                                           PermissionDeniedException
Throws:
EXistException
PermissionDeniedException

scanIndexTerms

public java.util.Vector scanIndexTerms(User user,
                                       java.lang.String collectionName,
                                       java.lang.String start,
                                       java.lang.String end,
                                       boolean inclusive)
                                throws PermissionDeniedException,
                                       EXistException
Throws:
PermissionDeniedException
EXistException

scanIndexTerms

public java.util.Vector scanIndexTerms(User user,
                                       java.lang.String xpath,
                                       java.lang.String start,
                                       java.lang.String end)
                                throws PermissionDeniedException,
                                       EXistException,
                                       XPathException
Throws:
PermissionDeniedException
EXistException
XPathException

synchronize

public void synchronize()

terminate

public void terminate()

getDocumentChunk

public byte[] getDocumentChunk(User user,
                               java.lang.String name,
                               int start,
                               int len)
                        throws EXistException,
                               PermissionDeniedException,
                               java.io.IOException
Throws:
EXistException
PermissionDeniedException
java.io.IOException

moveOrCopyResource

public boolean moveOrCopyResource(User user,
                                  java.lang.String docPath,
                                  java.lang.String destinationPath,
                                  java.lang.String newName,
                                  boolean move)
                           throws EXistException,
                                  PermissionDeniedException
Throws:
EXistException
PermissionDeniedException

moveOrCopyCollection

public boolean moveOrCopyCollection(User user,
                                    java.lang.String collectionPath,
                                    java.lang.String destinationPath,
                                    java.lang.String newName,
                                    boolean move)
                             throws EXistException,
                                    PermissionDeniedException
Throws:
EXistException
PermissionDeniedException

reindexCollection

public void reindexCollection(User user,
                              java.lang.String name)
                       throws java.lang.Exception,
                              PermissionDeniedException
Throws:
java.lang.Exception
PermissionDeniedException

isValid

public boolean isValid(User user,
                       java.lang.String docPath)
                throws PermissionDeniedException,
                       java.lang.Exception
Validate if specified document is Valid.

Parameters:
user - Name of user
docPath - Path to XML document in database
Returns:
TRUE if document is valid, FALSE if not or errors or.....
Throws:
java.lang.Exception - Generic exception
PermissionDeniedException - User is not allowed to perform action.

getDocType

public java.util.Vector getDocType(User user,
                                   java.lang.String documentPath)
                            throws PermissionDeniedException,
                                   EXistException
Throws:
PermissionDeniedException
EXistException

setDocType

public boolean setDocType(User user,
                          java.lang.String documentName,
                          java.lang.String doctypename,
                          java.lang.String publicid,
                          java.lang.String systemid)
                   throws java.lang.Exception
Throws:
java.lang.Exception


<oXygen/> XML Editor provides support for editing and debugging XQuery expressions against the eXist XML Database.