|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.jackrabbit.mk.client.Client
public class Client
Client exposing a MicroKernel interface, that "remotes" commands
to a server.
| Constructor Summary | |
|---|---|
Client(InetSocketAddress addr)
Create a new instance of this class. |
|
Client(InetSocketAddress addr,
SocketFactory socketFactory)
Create a new instance of this class. |
|
Client(String url)
Create a new instance of this class. |
|
| Method Summary | |
|---|---|
String |
branch(String trunkRevisionId)
Creates a private branch revision off the specified public trunk revision. |
String |
commit(String path,
String jsonDiff,
String revisionId,
String message)
Applies the specified changes on the specified target node. |
String |
diff(String fromRevisionId,
String toRevisionId,
String filter)
Returns the JSON diff representation of the changes between the specified revisions. |
void |
dispose()
Dispose this instance. |
long |
getChildNodeCount(String path,
String revisionId)
Returns the number of child nodes of the specified node. |
String |
getHeadRevision()
Return the id of the current head revision. |
String |
getJournal(String fromRevisionId,
String toRevisionId,
String filter)
Returns a revision journal, starting with fromRevisionId
and ending with toRevisionId in chronological order. |
long |
getLength(String blobId)
Returns the length of the specified blob. |
String |
getNodes(String path,
String revisionId)
Returns the node tree rooted at the specified parent node with depth 1. |
String |
getNodes(String path,
String revisionId,
int depth,
long offset,
int count,
String filter)
Returns the node tree rooted at the specified parent node with the specified depth, maximum child node count and offset. |
String |
getRevisionHistory(long since,
int maxEntries)
Returns a list of all currently available (historical) head revisions in chronological order since a specific point. |
String |
merge(String branchRevisionId,
String message)
Merges the specified private branch revision with the current head revision. |
boolean |
nodeExists(String path,
String revisionId)
Determines whether the specified node exists. |
int |
read(String blobId,
long pos,
byte[] buff,
int off,
int length)
Reads up to length bytes of data from the specified blob into
the given array of bytes. |
String |
waitForCommit(String oldHeadRevisionId,
long maxWaitMillis)
Waits for a commit to occur that is more recent than oldHeadRevisionId. |
String |
write(InputStream in)
Stores the content of the given stream and returns an associated identifier for later retrieval. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public Client(String url)
url - socket addresspublic Client(InetSocketAddress addr)
addr - socket address
public Client(InetSocketAddress addr,
SocketFactory socketFactory)
addr - socket address| Method Detail |
|---|
public void dispose()
MicroKernel
dispose in interface MicroKernel
public String getHeadRevision()
throws MicroKernelException
MicroKernel
getHeadRevision in interface MicroKernelMicroKernelException - if an error occurs
public String getRevisionHistory(long since,
int maxEntries)
throws MicroKernelException
MicroKernel
[
{
"id" : "<revisionId>",
"ts" : <revisionTimestamp>,
"msg" : "<commitMessage>"
},
...
]
getRevisionHistory in interface MicroKernelsince - timestamp (ms) of earliest revision to be returnedmaxEntries - maximum #entries to be returned;
if < 0, no limit will be applied.
MicroKernelException - if an error occurs
public String waitForCommit(String oldHeadRevisionId,
long maxWaitMillis)
throws MicroKernelException,
InterruptedException
MicroKerneloldHeadRevisionId.
This method allows for efficient polling for new revisions. The method
will return the id of the current head revision if it is more recent than
oldHeadRevisionId, or waits if either the specified amount of time
has elapsed or a new head revision has become available.
if a zero or negative timeout value has been specified the method
will return immediately, i.e. calling waitForCommit(0) is
equivalent to calling getHeadRevision().
waitForCommit in interface MicroKerneloldHeadRevisionId - id of earlier head revisionmaxWaitMillis - the maximum time to wait in milliseconds
MicroKernelException - if an error occurs
InterruptedException - if the thread was interrupted
public String getJournal(String fromRevisionId,
String toRevisionId,
String filter)
throws MicroKernelException
MicroKernelfromRevisionId
and ending with toRevisionId in chronological order.
Format:
[
{
"id" : "<revisionId>",
"ts" : <revisionTimestamp>,
"msg" : "<commitMessage>",
"changes" : "<JSON diff>"
},
...
]
If fromRevisionId and toRevisionId are not in chronological
order the returned journal will be empty (i.e. [])
A MicroKernelException is thrown if either fromRevisionId
or toRevisionId doesn't exist, denotes a private branch
revision or if another error occurs.
getJournal in interface MicroKernelfromRevisionId - id of first revision to be returned in journaltoRevisionId - id of last revision to be returned in journal,
if null the current head revision is assumedfilter - (optional) filter criteria
(e.g. path, property names, etc);
TODO specify format and semantics
MicroKernelException - if an error occurs
public String diff(String fromRevisionId,
String toRevisionId,
String filter)
throws MicroKernelException
MicroKernelfromRevisionId and toRevisionId
don't need not be in a specific chronological order.
diff in interface MicroKernelfromRevisionId - a revision id, if null the current head revision is assumedtoRevisionId - another revision id, if null the current head revision is assumedfilter - (optional) filter criteria
(e.g. path, property names, etc);
TODO specify format and semantics
MicroKernelException - if an error occurs
public boolean nodeExists(String path,
String revisionId)
throws MicroKernelException
MicroKernel
nodeExists in interface MicroKernelpath - path denoting noderevisionId - revision id, if null the current head revision is assumed
true if the specified node exists, otherwise false
MicroKernelException - if an error occurs
public long getChildNodeCount(String path,
String revisionId)
throws MicroKernelException
MicroKernelgetNodes(path, revisionId, 0, 0, 0) and evaluating
the :childNodeCount property.
getChildNodeCount in interface MicroKernelpath - path denoting noderevisionId - revision id, if null the current head revision is assumed
MicroKernelException - if the specified node does not exist or if an error occurs
public String getNodes(String path,
String revisionId)
throws MicroKernelException
MicroKernel:childNodeCount). Example:
{
"someprop": "someval",
":childNodeCount": 2,
"child1" : {
"prop1": "foo",
":childNodeCount": 2
},
"child2": {
"prop1": "bar"
":childNodeCount": 0
}
}
Remarks:
:childNodeCount equals 0, then the
node does not have any child nodes.
:childNodeCount is larger than the number
of returned child nodes, then the node has more child nodes than those
included in the tree. Large number of child nodes can be retrieved in
chunks using MicroKernel.getNodes(String, String, int, long, int, String)getNodes(path, revisionId, 1, 0, -1, null)
getNodes in interface MicroKernelpath - path denoting root of node tree to be retrievedrevisionId - revision id, if null the current head revision is assumed
null if the specified node does not exist
MicroKernelException - if the specified revision does not exist or if another error occurs
public String getNodes(String path,
String revisionId,
int depth,
long offset,
int count,
String filter)
throws MicroKernelException
MicroKerneldepth parameter:
| depth = 0 | properties, including :childNodeCount and
child node names (i.e. empty child node objects) |
| depth = 1 | properties, child nodes and their properties (including
:childNodeCount) |
| depth = 2 | [and so on...] |
offset and count parameters are only applied to the
direct child nodes of the root of the returned node tree.
getNodes in interface MicroKernelpath - path denoting root of node tree to be retrievedrevisionId - revision id, if null the current head revision is assumeddepth - maximum depth of returned treeoffset - start position in the iteration order of child nodes (0 to start at the
beginning)count - maximum number of child nodes to retrieve (-1 for all)filter - (optional) filter criteria
(e.g. names of properties to be included, etc);
TODO specify format and semantics
null if the specified node does not exist
MicroKernelException - if the specified revision does not exist or if another error occurs
public String commit(String path,
String jsonDiff,
String revisionId,
String message)
throws MicroKernelException
MicroKernel
If path.length() == 0 the paths specified in the
jsonDiff are expected to be absolute.
The implementation tries to merge changes if the revision id of the commit is set accordingly. As an example, deleting a node is allowed if the node existed in the given revision, even if it was deleted in the meantime.
commit in interface MicroKernelpath - path denoting target nodejsonDiff - changes to be applied in JSON diff format.revisionId - id of revision the changes are based on,
if null the current head revision is assumedmessage - commit message
MicroKernelException - if an error occurs
public String branch(String trunkRevisionId)
throws MicroKernelException
MicroKernelMicroKernelException is thrown if trunkRevisionId doesn't
exist, if it's not a trunk revision (i.e. it's not reachable
by traversing the revision history in reverse chronological order starting
from the current head revision) or if another error occurs.
branch in interface MicroKerneltrunkRevisionId - id of public trunk revision to base branch on,
if null the current head revision is assumed
MicroKernelException - if trunkRevisionId doesn't exist,
if it's not a trunk revision
or if another error occursMicroKernel.merge(String, String)
public String merge(String branchRevisionId,
String message)
throws MicroKernelException
MicroKernelMicroKernelException is thrown if branchRevisionId doesn't
exist, if it's not a branch revision, if the merge fails because of
conflicting changes or if another error occurs.
merge in interface MicroKernelbranchRevisionId - id of private branch revisionmessage - commit message
MicroKernelException - if branchRevisionId doesn't exist,
if it's not a branch revision, if the merge
fails because of conflicting changes or if
another error occurs.MicroKernel.branch(String)
public long getLength(String blobId)
throws MicroKernelException
MicroKernel
getLength in interface MicroKernelblobId - blob identifier
MicroKernelException - if an error occurs
public int read(String blobId,
long pos,
byte[] buff,
int off,
int length)
throws MicroKernelException
MicroKernellength bytes of data from the specified blob into
the given array of bytes. An attempt is made to read as many as
length bytes, but a smaller number may be read.
The number of bytes actually read is returned as an integer.
read in interface MicroKernelblobId - blob identifierpos - the offset within the blobbuff - the buffer into which the data is read.off - the start offset in array buff
at which the data is written.length - the maximum number of bytes to read
-1 if there is no more data because the end of
the blob content has been reached.
MicroKernelException - if an error occurs
public String write(InputStream in)
throws MicroKernelException
MicroKernelIf identical stream content has been stored previously, then the existing identifier will be returned instead of storing a redundant copy.
The stream is closed by this method.
write in interface MicroKernelin - InputStream providing the blob content
MicroKernelException - if an error occurs
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||