|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.jackrabbit.core.version.InternalXAVersionManager
public class InternalXAVersionManager
Implementation of a InternalVersionManager that works in an XA environment.
Works as a filter between a version manager client and the global version
manager.
| Field Summary | |
|---|---|
protected NodeId |
activitiesId
|
protected NodeId |
historiesId
|
protected NodeTypeRegistry |
ntReg
Node type registry. |
protected LocalItemStateManager |
stateMgr
State manager for the version storage. |
| Constructor Summary | |
|---|---|
InternalXAVersionManager(InternalVersionManagerImpl vMgr,
NodeTypeRegistry ntReg,
SessionImpl session,
ItemStateCacheFactory cacheFactory)
Creates a new instance of this class. |
|
| Method Summary | |
|---|---|
protected ISMLocking.ReadLock |
acquireReadLock()
acquires the read lock on this version manager. |
protected ISMLocking.WriteLock |
acquireWriteLock()
Acquires the write lock on this version manager. |
void |
addListener(ItemStateListener listener)
Add an ItemStateListener |
void |
afterOperation(TransactionContext tx)
Invoked after one of the InternalXAResource.prepare(org.apache.jackrabbit.core.TransactionContext), InternalXAResource.commit(org.apache.jackrabbit.core.TransactionContext) or
InternalXAResource.rollback(org.apache.jackrabbit.core.TransactionContext) method has been called. |
void |
associate(TransactionContext tx)
Associate this resource with a transaction. |
void |
beforeOperation(TransactionContext tx)
Invoked before one of the InternalXAResource.prepare(org.apache.jackrabbit.core.TransactionContext), InternalXAResource.commit(org.apache.jackrabbit.core.TransactionContext) or
InternalXAResource.rollback(org.apache.jackrabbit.core.TransactionContext) method is called. |
protected String |
calculateCheckinVersionName(org.apache.jackrabbit.core.version.InternalVersionHistoryImpl history,
NodeStateEx node,
boolean simple)
Calculates the name of the new version that will be created by a checkin call. |
NodeId |
canCheckout(NodeStateEx state,
NodeId activityId)
invokes the checkout() on the persistent version manager. |
InternalVersion |
checkin(Session session,
NodeStateEx node,
Calendar created)
invokes the checkin() on the persistent version manager and remaps the newly created version objects. |
void |
close()
Close this version manager. |
void |
commit(TransactionContext tx)
Commit transaction. |
NodeId |
createActivity(Session session,
String title)
Creates a new activity |
EventStateCollection |
createEventStateCollection()
Creates an EventStateCollection. |
protected InternalVersionItem |
createInternalVersionItem(NodeId id)
Creates an InternalVersionItem based on the NodeState
identified by id. |
VirtualNodeState |
createNodeState(VirtualNodeState parent,
Name name,
NodeId id,
Name nodeTypeName)
Creates a new virtual node state |
VirtualPropertyState |
createPropertyState(VirtualNodeState parent,
Name name,
int type,
boolean multiValued)
Creats a new virtual property state |
protected VersionHistoryInfo |
createVersionHistory(Session session,
NodeState node,
NodeId copiedFrom)
Creates a new version history. |
protected NodeStateEx |
getActivitiesRoot()
returns the id of the activities root node |
InternalActivity |
getActivity(NodeId id)
Returns the activity with the given id |
InternalBaseline |
getBaseline(NodeId id)
Returns the baseline with the given id |
InternalVersion |
getHeadVersionOfNode(NodeId id)
Returns the head version of the node with the given id. |
protected NodeStateEx |
getHistoryRoot()
returns the id of the version history root node |
protected InternalVersionItem |
getItem(NodeId id)
Returns the item with the given persistent id. |
ItemState |
getItemState(ItemId id)
Return an item state, given its item id. |
protected static Name |
getName(String name)
Utility method that returns the given string as a name in the default namespace. |
NodeReferences |
getNodeReferences(NodeId id)
Return a node references object, given its target id |
protected NodeStateEx |
getNodeStateEx(NodeId parentNodeId)
Returns the node with the given persistent id. |
protected static NodeStateEx |
getParentNode(NodeStateEx parent,
String uuid,
Name interNT)
Utility method that returns the parent node under which the version history of the identified versionable node is or will be stored. |
InternalVersion |
getVersion(NodeId id)
Returns the version with the given id |
InternalVersionHistory |
getVersionHistory(NodeId id)
Returns the version history with the given id |
VersionHistoryInfo |
getVersionHistory(Session session,
NodeState node,
NodeId copiedFrom)
Returns information about the version history of the specified node. |
InternalVersionHistory |
getVersionHistoryOfNode(NodeId id)
Returns the version history for the versionable node with the given id. |
VirtualItemStateProvider |
getVirtualItemStateProvider()
returns the virtual item state provider that exposes the internal versions as items. |
NodeId |
getVirtualRootId()
Returns the id of the root node of the virtual tree. |
NodeId[] |
getVirtualRootIds()
Returns the ids of the root nodes of the virtual tree. |
InternalXAResource |
getXAResourceBegin()
Returns an InternalXAResource that acquires a write lock on the
version manager in InternalXAResource.prepare(TransactionContext). |
InternalXAResource |
getXAResourceEnd()
Returns an InternalXAResource that releases the write lock on the
version manager in InternalXAResource.commit(TransactionContext)
or InternalXAResource.rollback(TransactionContext). |
protected boolean |
hasItem(NodeId id)
Return a flag indicating if the item specified exists. |
protected boolean |
hasItemReferences(NodeId id)
Checks if there are item references (from outside the version storage) that reference the given node. |
boolean |
hasItemState(ItemId id)
Return a flag indicating whether an item state for a given item id exists. |
boolean |
hasNodeReferences(NodeId id)
Return a flag indicating whether a node references object for a given target id exists. |
protected InternalVersion |
internalCheckin(org.apache.jackrabbit.core.version.InternalVersionHistoryImpl history,
NodeStateEx node,
boolean simple,
Calendar created)
Checks in a node |
protected void |
internalRemoveActivity(org.apache.jackrabbit.core.version.InternalActivityImpl activity)
Removes the specified activity |
protected void |
internalRemoveVersion(org.apache.jackrabbit.core.version.InternalVersionHistoryImpl history,
Name name)
Removes the specified version from the history |
boolean |
isVirtualRoot(ItemId id)
Checks if the id refers to the root of a virtual tree. |
protected void |
itemDiscarded(InternalVersionItem item)
Invoked by the internal version item itself, when it's underlying persistence state was discarded. |
void |
prepare(TransactionContext tx)
Prepare transaction. |
void |
removeActivity(Session session,
NodeId nodeId)
Removes an activity and all |
void |
removeListener(ItemStateListener listener)
Remove an ItemStateListener |
void |
removeVersion(Session session,
InternalVersionHistory history,
Name versionName)
Removes the specified version from the given version history. |
void |
rollback(TransactionContext tx)
Rollback transaction. |
boolean |
setNodeReferences(ChangeLog references)
Informs this provider that the node references to some of its states have changed. |
protected InternalVersion |
setVersionLabel(org.apache.jackrabbit.core.version.InternalVersionHistoryImpl history,
Name version,
Name label,
boolean move)
Set version label on the specified version. |
InternalVersion |
setVersionLabel(Session session,
InternalVersionHistory history,
Name version,
Name label,
boolean move)
Sets the version label to the given version. |
protected void |
versionCreated(InternalVersion version)
Invoked when a new internal item has been created. |
protected void |
versionDestroyed(InternalVersion version)
Invoked when a new internal item has been destroyed. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected LocalItemStateManager stateMgr
protected final NodeTypeRegistry ntReg
protected final NodeId historiesId
protected final NodeId activitiesId
| Constructor Detail |
|---|
public InternalXAVersionManager(InternalVersionManagerImpl vMgr,
NodeTypeRegistry ntReg,
SessionImpl session,
ItemStateCacheFactory cacheFactory)
throws RepositoryException
vMgr - the underlying version managerntReg - node type registrysession - the sessioncacheFactory - cache factory
RepositoryException - if a an error occurs| Method Detail |
|---|
public EventStateCollection createEventStateCollection()
throws RepositoryException
EventStateCollectionFactoryEventStateCollection.
createEventStateCollection in interface EventStateCollectionFactoryEventStateCollection
RepositoryException - if creation fails for some reasonpublic VirtualItemStateProvider getVirtualItemStateProvider()
getVirtualItemStateProvider in interface InternalVersionManager
protected VersionHistoryInfo createVersionHistory(Session session,
NodeState node,
NodeId copiedFrom)
throws RepositoryException
session - repository sessionnode - versionable node statecopiedFrom - node id for the jcr:copiedFrom property
RepositoryException - if an error occurrsgetVersionHistory(Session, NodeState, NodeId)
public NodeId createActivity(Session session,
String title)
throws RepositoryException
createActivity in interface InternalVersionManagersession - the current sessiontitle - title of the new activity
RepositoryException - if an error occurs
public void removeActivity(Session session,
NodeId nodeId)
throws RepositoryException
removeActivity in interface InternalVersionManagersession - the current sessionnodeId - id of the activity to remove
RepositoryException - if an error occurs
protected void internalRemoveActivity(org.apache.jackrabbit.core.version.InternalActivityImpl activity)
throws VersionException,
RepositoryException
activity - the acitvity to remove
RepositoryException - if any other error occurs.
VersionException
public NodeId canCheckout(NodeStateEx state,
NodeId activityId)
throws RepositoryException
canCheckout in interface InternalVersionManagerstate - node to checkoutactivityId - node id if the current activity
RepositoryException - if an error occurs
public InternalVersion checkin(Session session,
NodeStateEx node,
Calendar created)
throws RepositoryException
checkin in interface InternalVersionManagersession - session that invokes the checkinnode - node to checkincreated - create time of the new version,
or null for the current time
RepositoryException - if an error occurs
public void removeVersion(Session session,
InternalVersionHistory history,
Name versionName)
throws RepositoryException
removeVersion in interface InternalVersionManagersession - the session that performs the removehistory - version history to remove the version fromversionName - name of the version
RepositoryException - if an error occurs
public InternalVersion setVersionLabel(Session session,
InternalVersionHistory history,
Name version,
Name label,
boolean move)
throws RepositoryException
label to the given version.
If the label is already assigned to another version, a VersionException is
thrown unless move is true. If version
is null, the label is removed from the respective version.
In either case, the version the label was previously assigned is returned,
or null of the label was not moved.
setVersionLabel in interface InternalVersionManagersession - the session that performs the operationhistory - version historyversion - name of the versionlabel - new labelmove - if true label will be moved
null
RepositoryException - if an error occurs
public void close()
throws Exception
close in interface InternalVersionManagerException - if an error occurspublic boolean isVirtualRoot(ItemId id)
isVirtualRoot in interface VirtualItemStateProvidertrue if it is the rootpublic NodeId getVirtualRootId()
getVirtualRootId in interface VirtualItemStateProviderpublic NodeId[] getVirtualRootIds()
VirtualItemStateProvider
getVirtualRootIds in interface VirtualItemStateProvider
public VirtualPropertyState createPropertyState(VirtualNodeState parent,
Name name,
int type,
boolean multiValued)
throws RepositoryException
createPropertyState in interface VirtualItemStateProviderRepositoryException
public VirtualNodeState createNodeState(VirtualNodeState parent,
Name name,
NodeId id,
Name nodeTypeName)
throws RepositoryException
createNodeState in interface VirtualItemStateProviderRepositoryExceptionpublic boolean setNodeReferences(ChangeLog references)
setNodeReferences in interface VirtualItemStateProviderreferences - collection of NodeReferences instances
true if the reference target is one of its items.
public ItemState getItemState(ItemId id)
throws NoSuchItemStateException,
ItemStateException
getItemState in interface ItemStateManagerid - item id
NoSuchItemStateException - if the item does not exist
ItemStateException - if an error occurspublic boolean hasItemState(ItemId id)
hasItemState in interface ItemStateManagerid - item id
true if an item state exists,
otherwise false
public NodeReferences getNodeReferences(NodeId id)
throws NoSuchItemStateException,
ItemStateException
getNodeReferences in interface ItemStateManagerid - target id
NoSuchItemStateException - if the item does not exist
ItemStateException - if an error occurspublic boolean hasNodeReferences(NodeId id)
hasNodeReferences in interface ItemStateManagerid - target id
true if a node reference object exists for the given
id, otherwise false.public void addListener(ItemStateListener listener)
ItemStateListener
Not needed.
addListener in interface VirtualItemStateProviderlistener - the new listener to be informed on modificationspublic void removeListener(ItemStateListener listener)
ItemStateListener
Not needed.
removeListener in interface VirtualItemStateProviderlistener - an existing listenerprotected NodeStateEx getHistoryRoot()
protected NodeStateEx getActivitiesRoot()
protected InternalVersionItem getItem(NodeId id)
throws RepositoryException
id - the id of the item
RepositoryException - if an error occursprotected boolean hasItem(NodeId id)
id - the id of the item
true if the item exists;
false otherwise
protected boolean hasItemReferences(NodeId id)
throws RepositoryException
id - the id of the node
true if there are item references from outside the
version storage; false otherwise.
RepositoryException - if an error occurs while reading from the
repository.
protected NodeStateEx getNodeStateEx(NodeId parentNodeId)
throws RepositoryException
parentNodeId - the id of the node
RepositoryException - if an error occurs while reading from the
repository.
protected InternalVersion internalCheckin(org.apache.jackrabbit.core.version.InternalVersionHistoryImpl history,
NodeStateEx node,
boolean simple,
Calendar created)
throws RepositoryException
history - the version historynode - node to checkinsimple - flag indicates simple versioningcreated - optional created date.
RepositoryException - if an error occursNode.checkin()
protected void internalRemoveVersion(org.apache.jackrabbit.core.version.InternalVersionHistoryImpl history,
Name name)
throws VersionException,
RepositoryException
history - the version history from where to remove the version.name - the name of the version to remove.
VersionException - if the version history does
not have a version with name.
RepositoryException - if any other error occurs.
protected InternalVersion setVersionLabel(org.apache.jackrabbit.core.version.InternalVersionHistoryImpl history,
Name version,
Name label,
boolean move)
throws RepositoryException
history - version historyversion - version namelabel - version labelmove - true to move from existing version;
false otherwise.
RepositoryException - if an error occursprotected void versionCreated(InternalVersion version)
version - internal version itemprotected void versionDestroyed(InternalVersion version)
version - internal version itempublic void associate(TransactionContext tx)
associate in interface InternalXAResourcetx - transaction context, if null disassociatepublic void beforeOperation(TransactionContext tx)
InternalXAResource.prepare(org.apache.jackrabbit.core.TransactionContext), InternalXAResource.commit(org.apache.jackrabbit.core.TransactionContext) or
InternalXAResource.rollback(org.apache.jackrabbit.core.TransactionContext) method is called.
Delegate the call to our XA item state manager.
beforeOperation in interface InternalXAResourcetx - transaction context
public void prepare(TransactionContext tx)
throws TransactionException
prepare in interface InternalXAResourcetx - transaction context
TransactionException - if an error occurs
public void commit(TransactionContext tx)
throws TransactionException
commit in interface InternalXAResourcetx - transaction context
TransactionException - if an error occurspublic void rollback(TransactionContext tx)
rollback in interface InternalXAResourcetx - transaction context.public void afterOperation(TransactionContext tx)
InternalXAResource.prepare(org.apache.jackrabbit.core.TransactionContext), InternalXAResource.commit(org.apache.jackrabbit.core.TransactionContext) or
InternalXAResource.rollback(org.apache.jackrabbit.core.TransactionContext) method has been called.
Delegate the call to our XA item state manager.
afterOperation in interface InternalXAResourcetx - transaction contextpublic InternalXAResource getXAResourceBegin()
InternalXAResource that acquires a write lock on the
version manager in InternalXAResource.prepare(TransactionContext).
public InternalXAResource getXAResourceEnd()
InternalXAResource that releases the write lock on the
version manager in InternalXAResource.commit(TransactionContext)
or InternalXAResource.rollback(TransactionContext).
public InternalVersion getVersion(NodeId id)
throws RepositoryException
getVersion in interface InternalVersionManagerid - id of the version to retrieve
null
RepositoryException - if an error occurs
public InternalBaseline getBaseline(NodeId id)
throws RepositoryException
getBaseline in interface InternalVersionManagerid - id of the baseline version to retrieve
null if not found
RepositoryException - if an error occurs
public InternalActivity getActivity(NodeId id)
throws RepositoryException
getActivity in interface InternalVersionManagerid - id of the activity to retrieve
RepositoryException - if an error occurs
public InternalVersionHistory getVersionHistory(NodeId id)
throws RepositoryException
getVersionHistory in interface InternalVersionManagerid - id of the version history
RepositoryException - if an error occurs
public InternalVersionHistory getVersionHistoryOfNode(NodeId id)
throws RepositoryException
getVersionHistoryOfNode in interface InternalVersionManagerid - id of the node to retrieve the version history for
RepositoryException - if an error occurs or the history does not exit
public InternalVersion getHeadVersionOfNode(NodeId id)
throws RepositoryException
getHeadVersionOfNode in interface InternalVersionManagerid - id of the node to retrieve the version for
RepositoryException - if an error occursprotected ISMLocking.WriteLock acquireWriteLock()
protected ISMLocking.ReadLock acquireReadLock()
public VersionHistoryInfo getVersionHistory(Session session,
NodeState node,
NodeId copiedFrom)
throws RepositoryException
getVersionHistory in interface InternalVersionManagersession - workspace sessionnode - node whose version history should be returnedcopiedFrom - the node id for the jcr:copiedFrom property use for copied nodes
RepositoryException - if an error occursprotected static Name getName(String name)
name - string name
Name object.
protected static NodeStateEx getParentNode(NodeStateEx parent,
String uuid,
Name interNT)
throws RepositoryException
interNT is not null then the returned
parent node and any ancestor nodes are automatically created if they do
not already exist. Otherwise
null is returned if the parent node does not exist.
parent - the parent nodeuuid - UUID of a versionable nodeinterNT - intermediate nodetype.
null
RepositoryException - if an error occurs
protected String calculateCheckinVersionName(org.apache.jackrabbit.core.version.InternalVersionHistoryImpl history,
NodeStateEx node,
boolean simple)
throws RepositoryException
history - the version historynode - the node to checkinsimple - if true indicates simple versioning
RepositoryException - if an error occurs.protected void itemDiscarded(InternalVersionItem item)
item - item that was discarded
protected InternalVersionItem createInternalVersionItem(NodeId id)
throws RepositoryException
InternalVersionItem based on the NodeState
identified by id.
id - the node id of the version item.
null if there is no node state
with the given id.
RepositoryException - if an error occurs while reading from the
version storage.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||