You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2010/03/03 15:41:01 UTC
svn commit: r918491 - in /jackrabbit/trunk:
jackrabbit-jcr-client/src/test/java/org/apache/jackrabbit/client/
jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/
jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ jac...
Author: angela
Date: Wed Mar 3 14:41:00 2010
New Revision: 918491
URL: http://svn.apache.org/viewvc?rev=918491&view=rev
Log:
JCR-2104: JSR 283 Full Versioning
- checkpoint must be aware of current activity for the checkout part
- minor improvements such as @Override annotations, removal of unused params, methods, use generics whereever possible
Modified:
jackrabbit/trunk/jackrabbit-jcr-client/src/test/java/org/apache/jackrabbit/client/RepositoryFactoryImplTest.java
jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/ActivitiesTest.java
jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java
jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java
jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Checkpoint.java
jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManager.java
jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManagerImpl.java
jackrabbit/trunk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/AbstractJCR2SPITest.java
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/AbstractRepositoryService.java
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/logging/RepositoryServiceLogger.java
jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/RepositoryService.java
jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/RepositoryServiceImpl.java
jackrabbit/trunk/jackrabbit-spi2dav/src/test/java/org/apache/jackrabbit/spi2dav/RepositoryStubImpl.java
jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/BatchReadConfig.java
jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/EventSubscription.java
jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/IdFactoryImpl.java
jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/LockInfoImpl.java
jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/NodeInfoImpl.java
jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/PropertyInfoImpl.java
jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/QueryInfoImpl.java
jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/RepositoryServiceImpl.java
jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/SessionInfoImpl.java
Modified: jackrabbit/trunk/jackrabbit-jcr-client/src/test/java/org/apache/jackrabbit/client/RepositoryFactoryImplTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-client/src/test/java/org/apache/jackrabbit/client/RepositoryFactoryImplTest.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-client/src/test/java/org/apache/jackrabbit/client/RepositoryFactoryImplTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-client/src/test/java/org/apache/jackrabbit/client/RepositoryFactoryImplTest.java Wed Mar 3 14:41:00 2010
@@ -107,14 +107,14 @@
public void testGetRepositoryWithLogger() throws RepositoryException {
List<Object> lwprovider = new ArrayList<Object>();
lwprovider.add(null);
- lwprovider.add(new Boolean(true));
+ lwprovider.add(true);
lwprovider.add(new Slf4jLogWriterProvider());
Map<String, Object> params = new HashMap<String, Object>();
params.put("org.apache.jackrabbit.jcr2spi.RepositoryConfig", RepositoryConfigImpl.INSTANCE);
- for (int i = 0; i < lwprovider.size(); i++) {
- params.put("org.apache.jackrabbit.spi.commons.logging.LogWriterProvider", lwprovider.get(i));
+ for (Object aLwprovider : lwprovider) {
+ params.put("org.apache.jackrabbit.spi.commons.logging.LogWriterProvider", aLwprovider);
Repository repo = factory.getRepository(params);
assertNotNull(repo);
}
@@ -181,7 +181,7 @@
}
public void testGetRepositoryUnknownParams() throws RepositoryException {
- Repository repo = factory.getRepository(Collections.EMPTY_MAP);
+ Repository repo = factory.getRepository(Collections.emptyMap());
assertNull(repo);
}
@@ -381,6 +381,10 @@
return null;
}
+ public NodeId checkpoint(SessionInfo sessionInfo, NodeId nodeId, NodeId activityId) throws UnsupportedRepositoryOperationException, RepositoryException {
+ return null;
+ }
+
public void removeVersion(SessionInfo sessionInfo, NodeId versionHistoryId, NodeId versionId) throws ReferentialIntegrityException, AccessDeniedException, UnsupportedRepositoryOperationException, VersionException, RepositoryException {
// empty
}
Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/ActivitiesTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/ActivitiesTest.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/ActivitiesTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/ActivitiesTest.java Wed Mar 3 14:41:00 2010
@@ -154,5 +154,32 @@
}
}
+ public void testActivitiesRelationWithCheckpoint() throws Exception {
+
+ Node an = null;
+
+ try {
+ an = vm.createActivity("foobar2");
+ vm.setActivity(an);
+
+ String path = versionableNode.getPath();
+
+ vm.checkpoint(path);
+
+ versionableNode = superuser.getNode(path);
+ Property act = versionableNode.getProperty(Property.JCR_ACTIVITY);
+ assertNotNull(act);
+ assertEquals(PropertyType.REFERENCE, act.getType());
+ assertTrue(act.getNode().isSame(an));
+
+ versionableNode.remove();
+ superuser.save();
+ }
+ finally {
+ if (an != null) {
+ vm.removeActivity(an);
+ }
+ }
+ }
}
Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java Wed Mar 3 14:41:00 2010
@@ -902,7 +902,14 @@
checkout();
return getBaseVersion();
} else {
- NodeEntry newVersion = session.getVersionStateManager().checkpoint(getNodeState());
+ NodeEntry newVersion;
+ if (session.isSupportedOption(Repository.OPTION_ACTIVITIES_SUPPORTED)) {
+ NodeImpl activity = (NodeImpl) session.getWorkspace().getVersionManager().getActivity();
+ NodeId activityId = (activity == null) ? null : activity.getNodeState().getNodeId();
+ newVersion = session.getVersionStateManager().checkpoint(getNodeState(), activityId);
+ } else {
+ newVersion = session.getVersionStateManager().checkpoint(getNodeState());
+ }
return (Version) getItemManager().getItem(newVersion);
}
}
@@ -1304,9 +1311,8 @@
return true;
}
// check if contained in mixin types
- Name[] mixins = getNodeState().getMixinTypeNames();
- for (int i = 0; i < mixins.length; i++) {
- if (mixins[i].equals(qName)) {
+ for (Name mixin : getNodeState().getMixinTypeNames()) {
+ if (mixin.equals(qName)) {
return true;
}
}
@@ -1521,7 +1527,7 @@
}
/**
- * Create a new multivalue property
+ * Create a new multi valued property
*
* @param qName
* @param type
@@ -1539,9 +1545,9 @@
if (type == PropertyType.UNDEFINED) {
// try to retrieve type from the values array
if (values.length > 0) {
- for (int i = 0; i < values.length; i++) {
- if (values[i] != null) {
- targetType = values[i].getType();
+ for (Value value : values) {
+ if (value != null) {
+ targetType = value.getType();
break;
}
}
Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java Wed Mar 3 14:41:00 2010
@@ -977,7 +977,12 @@
* @see OperationVisitor#visit(Checkpoint)
*/
public void visit(Checkpoint operation) throws UnsupportedRepositoryOperationException, LockException, InvalidItemStateException, RepositoryException {
- NodeId newId = service.checkpoint(sessionInfo, operation.getNodeId());
+ NodeId newId;
+ if (operation.supportsActivity()) {
+ newId = service.checkpoint(sessionInfo, operation.getNodeId(), operation.getActivityId());
+ } else {
+ newId = service.checkpoint(sessionInfo, operation.getNodeId());
+ }
operation.setNewVersionId(newId);
}
Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Checkpoint.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Checkpoint.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Checkpoint.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Checkpoint.java Wed Mar 3 14:41:00 2010
@@ -42,13 +42,26 @@
private final NodeState nodeState;
private final VersionManager mgr;
-
+
+ private final NodeId activityId;
+ private final boolean supportsActivity;
+
private NodeId newVersionId;
private Checkpoint(NodeState nodeState, VersionManager mgr) {
this.nodeState = nodeState;
this.mgr = mgr;
// NOTE: affected-states only needed for transient modifications
+ supportsActivity = false;
+ activityId = null;
+ }
+
+ private Checkpoint(NodeState nodeState, NodeId activityId, VersionManager mgr) {
+ this.nodeState = nodeState;
+ this.activityId = activityId;
+ this.mgr = mgr;
+ supportsActivity = true;
+ // NOTE: affected-states only needed for transient modifications
}
//----------------------------------------------------------< Operation >---
@@ -92,6 +105,26 @@
return nodeState.getNodeEntry().getWorkspaceId();
}
+ /**
+ * The id of the current activity present on the editing session or <code>null</code>.
+ *
+ * @return id of the current activity present on the editing session or <code>null</code>.
+ */
+ public NodeId getActivityId() {
+ return activityId;
+ }
+
+ /**
+ * Returns <code>true</code>, if activities are supported,
+ * <code>false</code> otherwise.
+ *
+ * @return <code>true</code>, if activities are supported,
+ * <code>false</code> otherwise.
+ */
+ public boolean supportsActivity() {
+ return supportsActivity;
+ }
+
public void setNewVersionId(NodeId newVersionId) {
this.newVersionId = newVersionId;
}
@@ -104,4 +137,8 @@
public static Checkpoint create(NodeState nodeState, VersionManager mgr) {
return new Checkpoint(nodeState, mgr);
}
+
+ public static Checkpoint create(NodeState nodeState, NodeId activityId, VersionManager mgr) {
+ return new Checkpoint(nodeState, activityId, mgr);
+ }
}
\ No newline at end of file
Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManager.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManager.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManager.java Wed Mar 3 14:41:00 2010
@@ -78,6 +78,12 @@
/**
* @param nodeState
+ * @throws RepositoryException
+ * @see javax.jcr.version.VersionManager#checkpoint(String)
+ */
+ public NodeEntry checkpoint(NodeState nodeState, NodeId activityId) throws RepositoryException;
+ /**
+ * @param nodeState
* @return
* @throws RepositoryException
* @see javax.jcr.Node#isCheckedOut()
Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManagerImpl.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManagerImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManagerImpl.java Wed Mar 3 14:41:00 2010
@@ -85,6 +85,12 @@
return workspaceManager.getHierarchyManager().getNodeEntry(cp.getNewVersionId());
}
+ public NodeEntry checkpoint(NodeState nodeState, NodeId activityId) throws RepositoryException {
+ Checkpoint cp = Checkpoint.create(nodeState, activityId, this);
+ workspaceManager.execute(cp);
+ return workspaceManager.getHierarchyManager().getNodeEntry(cp.getNewVersionId());
+ }
+
/**
* Search nearest ancestor that is versionable. If no versionable ancestor
* can be found, <code>true</code> is returned.
Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/AbstractJCR2SPITest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/AbstractJCR2SPITest.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/AbstractJCR2SPITest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/AbstractJCR2SPITest.java Wed Mar 3 14:41:00 2010
@@ -427,6 +427,11 @@
return repositoryService.checkpoint(sessionInfo, nodeId);
}
+ public NodeId checkpoint(SessionInfo sessionInfo, NodeId nodeId, NodeId activityId)
+ throws RepositoryException {
+ return repositoryService.checkpoint(sessionInfo, nodeId, activityId);
+ }
+
public void removeVersion(SessionInfo sessionInfo, NodeId versionHistoryId, NodeId versionId)
throws RepositoryException {
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/AbstractRepositoryService.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/AbstractRepositoryService.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/AbstractRepositoryService.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/AbstractRepositoryService.java Wed Mar 3 14:41:00 2010
@@ -643,6 +643,14 @@
/**
* @throws UnsupportedRepositoryOperationException always.
*/
+ public NodeId checkpoint(SessionInfo sessionInfo, NodeId nodeId, NodeId activityId)
+ throws UnsupportedRepositoryOperationException, LockException, RepositoryException {
+ throw new UnsupportedRepositoryOperationException();
+ }
+
+ /**
+ * @throws UnsupportedRepositoryOperationException always.
+ */
public void removeVersion(SessionInfo sessionInfo,
NodeId versionHistoryId,
NodeId versionId)
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/logging/RepositoryServiceLogger.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/logging/RepositoryServiceLogger.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/logging/RepositoryServiceLogger.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/logging/RepositoryServiceLogger.java Wed Mar 3 14:41:00 2010
@@ -426,6 +426,14 @@
}, "checkpoint(SessionInfo, NodeId)", new Object[]{unwrap(sessionInfo), nodeId});
}
+ public NodeId checkpoint(final SessionInfo sessionInfo, final NodeId nodeId, final NodeId activityId) throws UnsupportedRepositoryOperationException, RepositoryException {
+ return (NodeId) execute(new Callable() {
+ public Object call() throws RepositoryException {
+ return service.checkpoint(unwrap(sessionInfo), nodeId, activityId);
+ }
+ }, "checkpoint(SessionInfo, NodeId, NodeId)", new Object[]{unwrap(sessionInfo), nodeId, activityId});
+ }
+
public void removeVersion(final SessionInfo sessionInfo, final NodeId versionHistoryId,
final NodeId versionId) throws RepositoryException {
@@ -538,8 +546,8 @@
new Object[]{unwrap(sessionInfo), activityId});
}
- public Iterator mergeActivity(final SessionInfo sessionInfo, final NodeId activityId) throws UnsupportedRepositoryOperationException, RepositoryException {
- return (Iterator) execute(new Callable() {
+ public Iterator<NodeId> mergeActivity(final SessionInfo sessionInfo, final NodeId activityId) throws UnsupportedRepositoryOperationException, RepositoryException {
+ return (Iterator<NodeId>) execute(new Callable() {
public Object call() throws RepositoryException {
return service.mergeActivity(unwrap(sessionInfo), activityId);
}
Modified: jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/RepositoryService.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/RepositoryService.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/RepositoryService.java (original)
+++ jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/RepositoryService.java Wed Mar 3 14:41:00 2010
@@ -665,6 +665,21 @@
public NodeId checkpoint(SessionInfo sessionInfo, NodeId nodeId) throws UnsupportedRepositoryOperationException, RepositoryException;
/**
+ * Performs a checkpoint for the <code>Node</code> identified by the given
+ * <code>NodeId</code>. For the checkout part the specified <code>activityId</code>
+ * is taken into account as specified in {@link #checkout(SessionInfo, NodeId, NodeId)}.
+ *
+ * @param sessionInfo
+ * @param nodeId
+ * @param activityId Id of the activity node set to the editing session or
+ * <code>null</code> if no activity is in effect.
+ * @throws UnsupportedRepositoryOperationException
+ * @throws LockException
+ * @throws RepositoryException
+ * @since JCR 2.0
+ */
+ public NodeId checkpoint(SessionInfo sessionInfo, NodeId nodeId, NodeId activityId) throws UnsupportedRepositoryOperationException, RepositoryException;
+ /**
* Remove the version inditified by the specified <code>versionId</code>.
*
* @param sessionInfo
Modified: jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/RepositoryServiceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/RepositoryServiceImpl.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/RepositoryServiceImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/RepositoryServiceImpl.java Wed Mar 3 14:41:00 2010
@@ -1528,6 +1528,18 @@
}
/**
+ * @see RepositoryService#checkpoint(SessionInfo, NodeId, NodeId)
+ */
+ public NodeId checkpoint(SessionInfo sessionInfo, NodeId nodeId, NodeId activityId) throws UnsupportedRepositoryOperationException, RepositoryException {
+ if (activityId == null) {
+ return checkpoint(sessionInfo, nodeId);
+ } else {
+ // TODO
+ throw new UnsupportedOperationException("JCR-2104: JSR 283 Versioning. Implementation missing");
+ }
+ }
+
+ /**
* @see RepositoryService#removeVersion(SessionInfo, NodeId, NodeId)
*/
public void removeVersion(SessionInfo sessionInfo, NodeId versionHistoryId, NodeId versionId) throws RepositoryException {
Modified: jackrabbit/trunk/jackrabbit-spi2dav/src/test/java/org/apache/jackrabbit/spi2dav/RepositoryStubImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2dav/src/test/java/org/apache/jackrabbit/spi2dav/RepositoryStubImpl.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2dav/src/test/java/org/apache/jackrabbit/spi2dav/RepositoryStubImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2dav/src/test/java/org/apache/jackrabbit/spi2dav/RepositoryStubImpl.java Wed Mar 3 14:41:00 2010
@@ -41,7 +41,7 @@
/**
* <code>RepositoryStubImpl</code>...
*/
-public class RepositoryStubImpl extends RepositoryStub {
+public class RepositoryStubImpl extends RepositoryStub {
/**
* Property for the repository url
Modified: jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/BatchReadConfig.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/BatchReadConfig.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/BatchReadConfig.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/BatchReadConfig.java Wed Mar 3 14:41:00 2010
@@ -31,7 +31,7 @@
public static final int DEPTH_DEFAULT = 0;
public static final int DEPTH_INFINITE = -1;
- private Map depthMap = new HashMap(0);
+ private Map<Name, Integer> depthMap = new HashMap<Name, Integer>(0);
/**
* Return the depth for the given node type name. If the name is
@@ -47,7 +47,7 @@
*/
public int getDepth(Name ntName) {
if (depthMap.containsKey(ntName)) {
- return ((Integer) (depthMap.get(ntName))).intValue();
+ return depthMap.get(ntName);
} else {
return DEPTH_DEFAULT;
}
@@ -63,6 +63,6 @@
if (ntName == null || depth < DEPTH_INFINITE) {
throw new IllegalArgumentException();
}
- depthMap.put(ntName, new Integer(depth));
+ depthMap.put(ntName, depth);
}
}
Modified: jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/EventSubscription.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/EventSubscription.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/EventSubscription.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/EventSubscription.java Wed Mar 3 14:41:00 2010
@@ -101,13 +101,6 @@
}
/**
- * @return the session info associated with this event subscription.
- */
- SessionInfoImpl getSessionInfo() {
- return sessionInfo;
- }
-
- /**
* Sets a new list of event filters for this subscription.
*
* @param filters the new filters.
@@ -175,22 +168,21 @@
// continue
}
}
- bundles = (EventBundle[]) eventBundles.toArray(new EventBundle[eventBundles.size()]);
+ bundles = eventBundles.toArray(new EventBundle[eventBundles.size()]);
eventBundles.clear();
}
- EventFilter[] eventFilters = (EventFilter[]) filters.toArray(
- new EventFilter[filters.size()]);
+ EventFilter[] eventFilters = filters.toArray(new EventFilter[filters.size()]);
// apply filters to bundles
for (int i = 0; i < bundles.length; i++) {
- List filteredEvents = new ArrayList();
- for (Iterator it = bundles[i].getEvents(); it.hasNext(); ) {
- Event e = (Event) it.next();
+ List<Event> filteredEvents = new ArrayList<Event>();
+ for (Iterator<Event> it = bundles[i].getEvents(); it.hasNext(); ) {
+ Event e = it.next();
// TODO: this is actually not correct. if filters are empty no event should go out
if (eventFilters == null || eventFilters.length == 0) {
filteredEvents.add(e);
} else {
- for (int j = 0; j < eventFilters.length; j++) {
- if (eventFilters[j].accept(e, bundles[i].isLocal())) {
+ for (EventFilter eventFilter : eventFilters) {
+ if (eventFilter.accept(e, bundles[i].isLocal())) {
filteredEvents.add(e);
break;
}
Modified: jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/IdFactoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/IdFactoryImpl.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/IdFactoryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/IdFactoryImpl.java Wed Mar 3 14:41:00 2010
@@ -17,7 +17,6 @@
package org.apache.jackrabbit.spi2jcr;
import org.apache.jackrabbit.spi.commons.name.PathFactoryImpl;
-import org.apache.jackrabbit.spi.commons.name.PathBuilder;
import org.apache.jackrabbit.spi.IdFactory;
import org.apache.jackrabbit.spi.PropertyId;
import org.apache.jackrabbit.spi.NodeId;
@@ -44,6 +43,7 @@
return INSTANCE;
}
+ @Override
protected PathFactory getPathFactory() {
return PathFactoryImpl.getInstance();
}
@@ -51,15 +51,11 @@
* Creates a <code>NodeId</code> for the given <code>node</code>.
*
* @param node the JCR Node.
- * @param resolver
* @return the <code>NodeId</code> for <code>node</code>.
* @throws RepositoryException if an error occurs while reading from
* <code>node</code>.
*/
- public NodeId createNodeId(Node node, NamePathResolver resolver)
- throws RepositoryException {
- PathBuilder builder = new PathBuilder();
- int pathElements = 0;
+ public NodeId createNodeId(Node node) throws RepositoryException {
String uniqueId = node.getIdentifier();
return createNodeId(uniqueId);
}
@@ -77,7 +73,7 @@
NamePathResolver resolver)
throws RepositoryException {
Node parent = property.getParent();
- NodeId nodeId = createNodeId(parent, resolver);
+ NodeId nodeId = createNodeId(parent);
String jcrName = property.getName();
Name name;
try {
@@ -87,4 +83,4 @@
}
return createPropertyId(nodeId, name);
}
-}
\ No newline at end of file
+}
Modified: jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/LockInfoImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/LockInfoImpl.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/LockInfoImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/LockInfoImpl.java Wed Mar 3 14:41:00 2010
@@ -33,15 +33,13 @@
*
* @param lock the lock.
* @param idFactory the id factory.
- * @param resolver the name and path resolver.
* @throws RepositoryException if an error occurs while the node from the
* given lock or while creating the node id.
*/
- private LockInfoImpl(Lock lock, IdFactoryImpl idFactory,
- NamePathResolver resolver) throws RepositoryException {
+ private LockInfoImpl(Lock lock, IdFactoryImpl idFactory) throws RepositoryException {
super(lock.getLockToken(), lock.getLockOwner(), lock.isDeep(),
lock.isSessionScoped(), lock.getSecondsRemaining(), lock.isLockOwningSession(),
- idFactory.createNodeId(lock.getNode(), resolver));
+ idFactory.createNodeId(lock.getNode()));
}
/**
@@ -49,11 +47,10 @@
*
* @param lock the JCR lock.
* @param idFactory the id factory.
- * @param resolver the name and path resolver.
* @return a new <code>LockInfo</code>
* @throws RepositoryException If an error occurs while creating the info.
*/
- public static LockInfo createLockInfo(Lock lock, IdFactoryImpl idFactory, NamePathResolver resolver) throws RepositoryException {
- return new LockInfoImpl(lock, idFactory, resolver);
+ public static LockInfo createLockInfo(Lock lock, IdFactoryImpl idFactory) throws RepositoryException {
+ return new LockInfoImpl(lock, idFactory);
}
}
\ No newline at end of file
Modified: jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/NodeInfoImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/NodeInfoImpl.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/NodeInfoImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/NodeInfoImpl.java Wed Mar 3 14:41:00 2010
@@ -17,6 +17,8 @@
package org.apache.jackrabbit.spi2jcr;
import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.spi.PropertyId;
+import org.apache.jackrabbit.spi.ChildInfo;
import org.apache.jackrabbit.spi.commons.conversion.NameException;
import org.apache.jackrabbit.spi.commons.conversion.NamePathResolver;
@@ -50,7 +52,7 @@
NamePathResolver resolver)
throws RepositoryException, NameException {
super(resolver.getQPath(node.getPath()),
- idFactory.createNodeId(node, resolver), node.getIndex(),
+ idFactory.createNodeId(node), node.getIndex(),
resolver.getQName(node.getPrimaryNodeType().getName()),
getNodeTypeNames(node.getMixinNodeTypes(), resolver),
getPropertyIds(node.getReferences(), resolver, idFactory),
@@ -90,20 +92,20 @@
* @throws RepositoryException if an error occurs while reading from the
* properties.
*/
- private static Iterator getPropertyIds(PropertyIterator props,
- NamePathResolver resolver,
- IdFactoryImpl idFactory)
+ private static Iterator<PropertyId> getPropertyIds(PropertyIterator props,
+ NamePathResolver resolver,
+ IdFactoryImpl idFactory)
throws RepositoryException {
- List references = new ArrayList();
+ List<PropertyId> references = new ArrayList<PropertyId>();
while (props.hasNext()) {
references.add(idFactory.createPropertyId(props.nextProperty(), resolver));
}
return references.iterator();
}
- private static Iterator getChildInfos(NodeIterator childNodes,
- NamePathResolver resolver) throws RepositoryException {
- List childInfos = new ArrayList();
+ private static Iterator<ChildInfo> getChildInfos(NodeIterator childNodes,
+ NamePathResolver resolver) throws RepositoryException {
+ List<ChildInfo> childInfos = new ArrayList<ChildInfo>();
while (childNodes.hasNext()) {
childInfos.add(new ChildInfoImpl(childNodes.nextNode(), resolver));
}
Modified: jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/PropertyInfoImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/PropertyInfoImpl.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/PropertyInfoImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/PropertyInfoImpl.java Wed Mar 3 14:41:00 2010
@@ -46,8 +46,7 @@
public PropertyInfoImpl(Property property,
IdFactoryImpl idFactory,
NamePathResolver resolver,
- QValueFactory qValueFactory)
- throws RepositoryException, NameException {
+ QValueFactory qValueFactory) throws RepositoryException, NameException {
super(resolver.getQPath(property.getPath()),
idFactory.createPropertyId(property, resolver),
property.getType(), property.isMultiple(),
@@ -65,8 +64,7 @@
*/
private static QValue[] getValues(Property property,
NamePathResolver resolver,
- QValueFactory factory)
- throws RepositoryException {
+ QValueFactory factory) throws RepositoryException {
boolean isMultiValued = property.isMultiple();
QValue[] values;
if (isMultiValued) {
@@ -77,7 +75,8 @@
}
} else {
values = new QValue[]{
- ValueFormat.getQValue(property.getValue(), resolver, factory)};
+ ValueFormat.getQValue(property.getValue(), resolver, factory)
+ };
}
return values;
}
Modified: jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/QueryInfoImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/QueryInfoImpl.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/QueryInfoImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/QueryInfoImpl.java Wed Mar 3 14:41:00 2010
@@ -103,6 +103,7 @@
public RangeIterator getRows() {
try {
return new RangeIteratorDecorator(result.getRows()) {
+ @Override
public Object next() {
try {
return new QueryResultRowImpl(
Modified: jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/RepositoryServiceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/RepositoryServiceImpl.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/RepositoryServiceImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/RepositoryServiceImpl.java Wed Mar 3 14:41:00 2010
@@ -16,115 +16,116 @@
*/
package org.apache.jackrabbit.spi2jcr;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.security.AccessControlException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import org.apache.jackrabbit.spi.ItemInfoCache;
+import org.apache.jackrabbit.spi.RepositoryService;
+import org.apache.jackrabbit.spi.IdFactory;
+import org.apache.jackrabbit.spi.QValueFactory;
+import org.apache.jackrabbit.spi.SessionInfo;
+import org.apache.jackrabbit.spi.ItemId;
+import org.apache.jackrabbit.spi.NodeId;
+import org.apache.jackrabbit.spi.QNodeDefinition;
+import org.apache.jackrabbit.spi.QPropertyDefinition;
+import org.apache.jackrabbit.spi.PropertyId;
+import org.apache.jackrabbit.spi.NodeInfo;
+import org.apache.jackrabbit.spi.PropertyInfo;
+import org.apache.jackrabbit.spi.Batch;
+import org.apache.jackrabbit.spi.LockInfo;
+import org.apache.jackrabbit.spi.QueryInfo;
+import org.apache.jackrabbit.spi.EventFilter;
+import org.apache.jackrabbit.spi.EventBundle;
+import org.apache.jackrabbit.spi.QValue;
+import org.apache.jackrabbit.spi.NameFactory;
+import org.apache.jackrabbit.spi.PathFactory;
+import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.spi.Path;
+import org.apache.jackrabbit.spi.Subscription;
+import org.apache.jackrabbit.spi.QNodeTypeDefinition;
+import org.apache.jackrabbit.spi.Event;
+import org.apache.jackrabbit.spi.ItemInfo;
+import org.apache.jackrabbit.spi.ChildInfo;
+import org.apache.jackrabbit.spi.commons.EventFilterImpl;
+import org.apache.jackrabbit.spi.commons.EventBundleImpl;
+import org.apache.jackrabbit.spi.commons.ItemInfoCacheImpl;
+import org.apache.jackrabbit.spi.commons.QPropertyDefinitionImpl;
+import org.apache.jackrabbit.spi.commons.QNodeDefinitionImpl;
+import org.apache.jackrabbit.spi.commons.QNodeTypeDefinitionImpl;
+import org.apache.jackrabbit.spi.commons.namespace.NamespaceResolver;
+import org.apache.jackrabbit.spi.commons.nodetype.NodeTypeDefinitionImpl;
+import org.apache.jackrabbit.spi.commons.name.NameFactoryImpl;
+import org.apache.jackrabbit.spi.commons.name.PathFactoryImpl;
+import org.apache.jackrabbit.spi.commons.name.NameConstants;
+import org.apache.jackrabbit.spi.commons.name.PathBuilder;
+import org.apache.jackrabbit.spi.commons.conversion.NameException;
+import org.apache.jackrabbit.spi.commons.conversion.NamePathResolver;
+import org.apache.jackrabbit.spi.commons.conversion.MalformedPathException;
+import org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver;
+import org.apache.jackrabbit.spi.commons.value.QValueFactoryImpl;
+import org.apache.jackrabbit.spi.commons.value.ValueFormat;
+import org.apache.jackrabbit.spi.commons.value.ValueFactoryQImpl;
+import org.apache.jackrabbit.JcrConstants;
-import javax.jcr.AccessDeniedException;
+import javax.jcr.RepositoryException;
import javax.jcr.Credentials;
-import javax.jcr.GuestCredentials;
-import javax.jcr.ImportUUIDBehavior;
-import javax.jcr.InvalidItemStateException;
-import javax.jcr.ItemExistsException;
-import javax.jcr.ItemNotFoundException;
-import javax.jcr.ItemVisitor;
import javax.jcr.LoginException;
-import javax.jcr.MergeException;
-import javax.jcr.NamespaceException;
-import javax.jcr.NamespaceRegistry;
import javax.jcr.NoSuchWorkspaceException;
-import javax.jcr.Node;
-import javax.jcr.NodeIterator;
+import javax.jcr.ItemNotFoundException;
import javax.jcr.PathNotFoundException;
-import javax.jcr.Property;
-import javax.jcr.PropertyIterator;
+import javax.jcr.ValueFormatException;
+import javax.jcr.AccessDeniedException;
+import javax.jcr.UnsupportedRepositoryOperationException;
+import javax.jcr.ItemExistsException;
+import javax.jcr.InvalidItemStateException;
import javax.jcr.ReferentialIntegrityException;
+import javax.jcr.MergeException;
+import javax.jcr.NamespaceException;
import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
import javax.jcr.Session;
-import javax.jcr.UnsupportedRepositoryOperationException;
+import javax.jcr.Node;
+import javax.jcr.Property;
+import javax.jcr.NodeIterator;
+import javax.jcr.NamespaceRegistry;
+import javax.jcr.Workspace;
+import javax.jcr.ImportUUIDBehavior;
import javax.jcr.Value;
+import javax.jcr.ItemVisitor;
import javax.jcr.ValueFactory;
-import javax.jcr.ValueFormatException;
-import javax.jcr.Workspace;
-import javax.jcr.lock.Lock;
-import javax.jcr.lock.LockException;
-import javax.jcr.nodetype.ConstraintViolationException;
-import javax.jcr.nodetype.InvalidNodeTypeDefinitionException;
-import javax.jcr.nodetype.NoSuchNodeTypeException;
-import javax.jcr.nodetype.NodeType;
-import javax.jcr.nodetype.NodeTypeDefinition;
-import javax.jcr.nodetype.NodeTypeExistsException;
-import javax.jcr.nodetype.NodeTypeIterator;
-import javax.jcr.nodetype.NodeTypeManager;
-import javax.jcr.observation.EventJournal;
-import javax.jcr.observation.EventListener;
+import javax.jcr.GuestCredentials;
+import javax.jcr.PropertyIterator;
+import javax.jcr.util.TraversingItemVisitor;
import javax.jcr.observation.ObservationManager;
+import javax.jcr.observation.EventListener;
+import javax.jcr.observation.EventJournal;
import javax.jcr.query.InvalidQueryException;
-import javax.jcr.query.Query;
import javax.jcr.query.QueryManager;
-import javax.jcr.util.TraversingItemVisitor;
-import javax.jcr.version.Version;
+import javax.jcr.query.Query;
+import javax.jcr.lock.LockException;
+import javax.jcr.lock.Lock;
import javax.jcr.version.VersionException;
import javax.jcr.version.VersionHistory;
+import javax.jcr.version.Version;
import javax.jcr.version.VersionManager;
-
-import org.apache.jackrabbit.JcrConstants;
-import org.apache.jackrabbit.spi.Batch;
-import org.apache.jackrabbit.spi.Event;
-import org.apache.jackrabbit.spi.EventBundle;
-import org.apache.jackrabbit.spi.EventFilter;
-import org.apache.jackrabbit.spi.IdFactory;
-import org.apache.jackrabbit.spi.ItemId;
-import org.apache.jackrabbit.spi.ItemInfoCache;
-import org.apache.jackrabbit.spi.LockInfo;
-import org.apache.jackrabbit.spi.Name;
-import org.apache.jackrabbit.spi.NameFactory;
-import org.apache.jackrabbit.spi.NodeId;
-import org.apache.jackrabbit.spi.NodeInfo;
-import org.apache.jackrabbit.spi.Path;
-import org.apache.jackrabbit.spi.PathFactory;
-import org.apache.jackrabbit.spi.PropertyId;
-import org.apache.jackrabbit.spi.PropertyInfo;
-import org.apache.jackrabbit.spi.QNodeDefinition;
-import org.apache.jackrabbit.spi.QNodeTypeDefinition;
-import org.apache.jackrabbit.spi.QPropertyDefinition;
-import org.apache.jackrabbit.spi.QValue;
-import org.apache.jackrabbit.spi.QValueFactory;
-import org.apache.jackrabbit.spi.QueryInfo;
-import org.apache.jackrabbit.spi.RepositoryService;
-import org.apache.jackrabbit.spi.SessionInfo;
-import org.apache.jackrabbit.spi.Subscription;
-import org.apache.jackrabbit.spi.commons.EventBundleImpl;
-import org.apache.jackrabbit.spi.commons.EventFilterImpl;
-import org.apache.jackrabbit.spi.commons.ItemInfoCacheImpl;
-import org.apache.jackrabbit.spi.commons.QNodeDefinitionImpl;
-import org.apache.jackrabbit.spi.commons.QNodeTypeDefinitionImpl;
-import org.apache.jackrabbit.spi.commons.QPropertyDefinitionImpl;
-import org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver;
-import org.apache.jackrabbit.spi.commons.conversion.MalformedPathException;
-import org.apache.jackrabbit.spi.commons.conversion.NameException;
-import org.apache.jackrabbit.spi.commons.conversion.NamePathResolver;
-import org.apache.jackrabbit.spi.commons.name.NameConstants;
-import org.apache.jackrabbit.spi.commons.name.NameFactoryImpl;
-import org.apache.jackrabbit.spi.commons.name.PathBuilder;
-import org.apache.jackrabbit.spi.commons.name.PathFactoryImpl;
-import org.apache.jackrabbit.spi.commons.namespace.NamespaceResolver;
-import org.apache.jackrabbit.spi.commons.nodetype.NodeTypeDefinitionImpl;
-import org.apache.jackrabbit.spi.commons.value.QValueFactoryImpl;
-import org.apache.jackrabbit.spi.commons.value.ValueFactoryQImpl;
-import org.apache.jackrabbit.spi.commons.value.ValueFormat;
+import javax.jcr.nodetype.NoSuchNodeTypeException;
+import javax.jcr.nodetype.ConstraintViolationException;
+import javax.jcr.nodetype.NodeTypeManager;
+import javax.jcr.nodetype.NodeTypeIterator;
+import javax.jcr.nodetype.NodeType;
+import javax.jcr.nodetype.InvalidNodeTypeDefinitionException;
+import javax.jcr.nodetype.NodeTypeExistsException;
+import javax.jcr.nodetype.NodeTypeDefinition;
+import java.util.Map;
+import java.util.Iterator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Collection;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.ByteArrayInputStream;
+import java.security.AccessControlException;
/**
* <code>RepositoryServiceImpl</code> implements a repository service on top
@@ -218,6 +219,9 @@
return qValueFactory;
}
+ /**
+ * {@inheritDoc}
+ */
public ItemInfoCache getItemInfoCache(SessionInfo sessionInfo) throws RepositoryException {
return new ItemInfoCacheImpl(itemInfoCacheSize);
}
@@ -226,7 +230,7 @@
* {@inheritDoc}
*/
public Map<String, QValue[]> getRepositoryDescriptors() throws RepositoryException {
- Map<String, QValue[]> descriptors = new HashMap();
+ Map<String, QValue[]> descriptors = new HashMap<String, QValue[]>();
for (String key : repository.getDescriptorKeys()) {
if (key.equals(Repository.OPTION_TRANSACTIONS_SUPPORTED)) {
descriptors.put(key, new QValue[] {qValueFactory.create(false)});
@@ -238,10 +242,10 @@
// as Name/Path values are not expected to occur in the
// descriptors. TODO: check again.
NamePathResolver resolver = new DefaultNamePathResolver(new NamespaceResolver() {
- public String getURI(String prefix) throws NamespaceException {
+ public String getURI(String prefix) {
return prefix;
}
- public String getPrefix(String uri) throws NamespaceException {
+ public String getPrefix(String uri) {
return uri;
}
});
@@ -286,8 +290,7 @@
*/
public void dispose(SessionInfo sessionInfo) throws RepositoryException {
SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
- for (Iterator it = sInfo.getSubscriptions().iterator(); it.hasNext(); ) {
- EventSubscription s = (EventSubscription) it.next();
+ for (EventSubscription s : sInfo.getSubscriptions()) {
s.dispose();
}
sInfo.getSession().logout();
@@ -318,9 +321,9 @@
} else {
String comma = "";
actStr = "";
- for (int i = 0; i < actions.length; i++) {
+ for (String action : actions) {
actStr += comma;
- actStr += actions[i];
+ actStr += action;
comma = ",";
}
}
@@ -380,7 +383,7 @@
/**
* {@inheritDoc}
*/
- public Iterator getItemInfos(SessionInfo sessionInfo, NodeId nodeId)
+ public Iterator<? extends ItemInfo> getItemInfos(SessionInfo sessionInfo, NodeId nodeId)
throws ItemNotFoundException, RepositoryException {
final SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
Node node = getNode(nodeId, sInfo);
@@ -400,8 +403,9 @@
}
return Collections.singletonList(info).iterator();
} else {
- final List itemInfos = new ArrayList();
+ final List<ItemInfo> itemInfos = new ArrayList<ItemInfo>();
ItemVisitor visitor = new TraversingItemVisitor(false, depth) {
+ @Override
protected void entering(Property property, int i) throws RepositoryException {
try {
itemInfos.add(new PropertyInfoImpl(property, idFactory, sInfo.getNamePathResolver(), getQValueFactory()));
@@ -409,6 +413,7 @@
throw new RepositoryException(e);
}
}
+ @Override
protected void entering(Node node, int i) throws RepositoryException {
try {
itemInfos.add(new NodeInfoImpl(node, idFactory, sInfo.getNamePathResolver()));
@@ -416,9 +421,11 @@
throw new RepositoryException(e);
}
}
+ @Override
protected void leaving(Property property, int i) {
// nothing to do
}
+ @Override
protected void leaving(Node node, int i) {
// nothing to do
}
@@ -431,11 +438,11 @@
/**
* {@inheritDoc}
*/
- public Iterator getChildInfos(SessionInfo sessionInfo, NodeId parentId)
+ public Iterator<ChildInfo> getChildInfos(SessionInfo sessionInfo, NodeId parentId)
throws ItemNotFoundException, RepositoryException {
SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
NodeIterator children = getNode(parentId, sInfo).getNodes();
- List childInfos = new ArrayList();
+ List<ChildInfo> childInfos = new ArrayList<ChildInfo>();
try {
while (children.hasNext()) {
childInfos.add(new ChildInfoImpl(children.nextNode(),
@@ -628,7 +635,7 @@
SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
try {
Lock lock = getNode(nodeId, sInfo).getLock();
- return LockInfoImpl.createLockInfo(lock, idFactory, sInfo.getNamePathResolver());
+ return LockInfoImpl.createLockInfo(lock, idFactory);
} catch (LockException e) {
// no lock present on this node.
return null;
@@ -648,7 +655,7 @@
public Object run() throws RepositoryException {
Node n = getNode(nodeId, sInfo);
Lock lock = n.lock(deep, sessionScoped);
- return LockInfoImpl.createLockInfo(lock, idFactory, sInfo.getNamePathResolver());
+ return LockInfoImpl.createLockInfo(lock, idFactory);
}
}, sInfo);
}
@@ -662,14 +669,9 @@
public Object run() throws RepositoryException {
Node n = getNode(nodeId, sInfo);
Lock lock;
- // TODO: remove check once jsr283 is released
- if (sInfo.getSession() instanceof javax.jcr.Session) {
- javax.jcr.lock.LockManager lMgr = ((sInfo.getSession().getWorkspace()).getLockManager());
- lock = lMgr.lock(n.getPath(), deep, sessionScoped, timeoutHint, ownerHint);
- } else {
- lock = n.lock(deep, sessionScoped);
- }
- return LockInfoImpl.createLockInfo(lock, idFactory, sInfo.getNamePathResolver());
+ javax.jcr.lock.LockManager lMgr = (sInfo.getSession().getWorkspace()).getLockManager();
+ lock = lMgr.lock(n.getPath(), deep, sessionScoped, timeoutHint, ownerHint);
+ return LockInfoImpl.createLockInfo(lock, idFactory);
}
}, sInfo);
}
@@ -707,7 +709,7 @@
return getNode(nodeId, getSessionInfoImpl(sessionInfo)).checkin();
}
}, sInfo);
- return idFactory.createNodeId(newVersion, sInfo.getNamePathResolver());
+ return idFactory.createNodeId(newVersion);
}
/**
@@ -730,15 +732,23 @@
public void checkout(final SessionInfo sessionInfo, final NodeId nodeId, NodeId activityId) throws UnsupportedRepositoryOperationException, LockException, RepositoryException {
final SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
Node activity = (activityId == null) ? null : getNode(activityId, sInfo);
- sInfo.getSession().getWorkspace().getVersionManager().setActivity(activity);
- executeWithLocalEvents(new Callable() {
- public Object run() throws RepositoryException {
- getNode(nodeId, sInfo).checkout();
- return null;
- }
- }, sInfo);
+ VersionManager vMgr = sInfo.getSession().getWorkspace().getVersionManager();
+ vMgr.setActivity(activity);
+ try {
+ executeWithLocalEvents(new Callable() {
+ public Object run() throws RepositoryException {
+ getNode(nodeId, sInfo).checkout();
+ return null;
+ }
+ }, sInfo);
+ } finally {
+ vMgr.setActivity(null);
+ }
}
+ /**
+ * {@inheritDoc}
+ */
public NodeId checkpoint(SessionInfo sessionInfo, final NodeId nodeId) throws UnsupportedRepositoryOperationException, RepositoryException {
final SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
Version newVersion = (Version) executeWithLocalEvents(new Callable() {
@@ -747,7 +757,28 @@
return vMgr.checkpoint(getNodePath(nodeId, sInfo));
}
}, sInfo);
- return idFactory.createNodeId(newVersion, sInfo.getNamePathResolver());
+ return idFactory.createNodeId(newVersion);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public NodeId checkpoint(SessionInfo sessionInfo, final NodeId nodeId, final NodeId activityId) throws UnsupportedRepositoryOperationException, RepositoryException {
+ final SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
+ Node activity = (activityId == null) ? null : getNode(activityId, sInfo);
+ VersionManager vMgr = sInfo.getSession().getWorkspace().getVersionManager();
+ vMgr.setActivity(activity);
+ try {
+ Version newVersion = (Version) executeWithLocalEvents(new Callable() {
+ public Object run() throws RepositoryException {
+ VersionManager vMgr = sInfo.getSession().getWorkspace().getVersionManager();
+ return vMgr.checkpoint(getNodePath(nodeId, sInfo));
+ }
+ }, sInfo);
+ return idFactory.createNodeId(newVersion);
+ } finally {
+ vMgr.setActivity(null);
+ }
}
/**
@@ -857,20 +888,20 @@
/**
* {@inheritDoc}
*/
- public Iterator merge(final SessionInfo sessionInfo,
+ public Iterator<NodeId> merge(final SessionInfo sessionInfo,
final NodeId nodeId,
final String srcWorkspaceName,
final boolean bestEffort)
throws NoSuchWorkspaceException, AccessDeniedException, MergeException, LockException, InvalidItemStateException, RepositoryException {
final SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
- return (Iterator) executeWithLocalEvents(new Callable() {
+ return (Iterator<NodeId>) executeWithLocalEvents(new Callable() {
public Object run() throws RepositoryException {
String nodePath = getNodePath(nodeId, sInfo);
NodeIterator it = getVersionManager(sInfo).merge(nodePath, srcWorkspaceName, bestEffort);
- List ids = new ArrayList();
+ List<NodeId> ids = new ArrayList<NodeId>();
while (it.hasNext()) {
- ids.add(idFactory.createNodeId(it.nextNode(),
- sInfo.getNamePathResolver()));
+ ids.add(idFactory.createNodeId(it.nextNode()
+ ));
}
return ids.iterator();
}
@@ -880,21 +911,21 @@
/**
* {@inheritDoc}
*/
- public Iterator merge(final SessionInfo sessionInfo,
+ public Iterator<NodeId> merge(final SessionInfo sessionInfo,
final NodeId nodeId,
final String srcWorkspaceName,
final boolean bestEffort,
final boolean isShallow)
throws NoSuchWorkspaceException, AccessDeniedException, MergeException, LockException, InvalidItemStateException, RepositoryException {
final SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
- return (Iterator) executeWithLocalEvents(new Callable() {
+ return (Iterator<NodeId>) executeWithLocalEvents(new Callable() {
public Object run() throws RepositoryException {
String nodePath = getNodePath(nodeId, sInfo);
NodeIterator it = getVersionManager(sInfo).merge(nodePath, srcWorkspaceName, bestEffort, isShallow);
- List ids = new ArrayList();
+ List<NodeId> ids = new ArrayList<NodeId>();
while (it.hasNext()) {
- ids.add(idFactory.createNodeId(it.nextNode(),
- sInfo.getNamePathResolver()));
+ ids.add(idFactory.createNodeId(it.nextNode()
+ ));
}
return ids.iterator();
}
@@ -916,23 +947,21 @@
Version version = null;
boolean cancel;
NamePathResolver resolver = sInfo.getNamePathResolver();
- List l = Arrays.asList(mergeFailedIds);
+ List<NodeId> l = Arrays.asList(mergeFailedIds);
Property mergeFailed = node.getProperty(resolver.getJCRName(NameConstants.JCR_MERGEFAILED));
- Value[] values = mergeFailed.getValues();
- for (int i = 0; i < values.length; i++) {
- String uuid = values[i].getString();
+ for (Value value : mergeFailed.getValues()) {
+ String uuid = value.getString();
if (!l.contains(idFactory.createNodeId(uuid))) {
- version = (Version) sInfo.getSession().getNodeByUUID(uuid);
+ version = (Version) sInfo.getSession().getNodeByIdentifier(uuid);
break;
}
}
- l = new ArrayList(predecessorIds.length);
+ l = new ArrayList<NodeId>(predecessorIds.length);
l.addAll(Arrays.asList(predecessorIds));
Property predecessors = node.getProperty(resolver.getJCRName(NameConstants.JCR_PREDECESSORS));
- values = predecessors.getValues();
- for (int i = 0; i < values.length; i++) {
- NodeId vId = idFactory.createNodeId(values[i].getString());
+ for (Value value : predecessors.getValues()) {
+ NodeId vId = idFactory.createNodeId(value.getString());
l.remove(vId);
}
cancel = l.isEmpty();
@@ -1006,7 +1035,7 @@
return vMgr.createActivity(title);
}
}, getSessionInfoImpl(sessionInfo));
- return idFactory.createNodeId(activity, sInfo.getNamePathResolver());
+ return idFactory.createNodeId(activity);
}
/**
@@ -1026,16 +1055,16 @@
/**
* {@inheritDoc}
*/
- public Iterator mergeActivity(SessionInfo sessionInfo, final NodeId activityId) throws UnsupportedRepositoryOperationException, RepositoryException {
+ public Iterator<NodeId> mergeActivity(SessionInfo sessionInfo, final NodeId activityId) throws UnsupportedRepositoryOperationException, RepositoryException {
final SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
- return (Iterator) executeWithLocalEvents(new Callable() {
+ return (Iterator<NodeId>) executeWithLocalEvents(new Callable() {
public Object run() throws RepositoryException {
Node node = getNode(activityId, sInfo);
NodeIterator it = getVersionManager(sInfo).merge(node);
- List ids = new ArrayList();
+ List<NodeId> ids = new ArrayList<NodeId>();
while (it.hasNext()) {
- ids.add(idFactory.createNodeId(it.nextNode(),
- sInfo.getNamePathResolver()));
+ ids.add(idFactory.createNodeId(it.nextNode()
+ ));
}
return ids.iterator();
}
@@ -1054,7 +1083,7 @@
return vMgr.createConfiguration(getNodePath(nodeId, sInfo));
}
}, getSessionInfoImpl(sessionInfo));
- return idFactory.createNodeId(configuration, sInfo.getNamePathResolver());
+ return idFactory.createNodeId(configuration);
}
/**
@@ -1072,7 +1101,7 @@
public String[] checkQueryStatement(SessionInfo sessionInfo,
String statement,
String language,
- Map namespaces)
+ Map<String, String> namespaces)
throws InvalidQueryException, RepositoryException {
Query q = createQuery(getSessionInfoImpl(sessionInfo).getSession(),
statement, language, namespaces);
@@ -1113,9 +1142,9 @@
Name[] nodeTypeName,
boolean noLocal)
throws UnsupportedRepositoryOperationException, RepositoryException {
- Set ntNames = null;
+ Set<Name> ntNames = null;
if (nodeTypeName != null) {
- ntNames = new HashSet(Arrays.asList(nodeTypeName));
+ ntNames = new HashSet<Name>(Arrays.asList(nodeTypeName));
}
return new EventFilterImpl(eventTypes, absPath, isDeep, uuid, ntNames, noLocal);
}
@@ -1192,14 +1221,13 @@
/**
* {@inheritDoc}
*/
- public Map getRegisteredNamespaces(SessionInfo sessionInfo)
+ public Map<String, String> getRegisteredNamespaces(SessionInfo sessionInfo)
throws RepositoryException {
SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
NamespaceRegistry nsReg = sInfo.getSession().getWorkspace().getNamespaceRegistry();
- Map namespaces = new HashMap();
- String[] prefixes = nsReg.getPrefixes();
- for (int i = 0; i < prefixes.length; i++) {
- namespaces.put(prefixes[i], nsReg.getURI(prefixes[i]));
+ Map<String, String> namespaces = new HashMap<String, String>();
+ for (String prefix : nsReg.getPrefixes()) {
+ namespaces.put(prefix, nsReg.getURI(prefix));
}
return namespaces;
}
@@ -1348,7 +1376,7 @@
from lower index, the index of the following siblings must be reset
in order to avoid PathNotFoundException.
*/
- private final Set removedNodeIds = new HashSet();
+ private final Set<NodeId> removedNodeIds = new HashSet<NodeId>();
private boolean failed = false;
@@ -1478,7 +1506,7 @@
NodeId nodeId = (NodeId) itemId;
Path p = itemId.getPath();
if (p != null) {
- removedNodeIds.add(itemId);
+ removedNodeIds.add(nodeId);
int index = p.getNameElement().getNormalizedIndex();
if (index > Path.INDEX_DEFAULT) {
Path.Element[] elems = p.getElements();
@@ -1531,24 +1559,23 @@
throws RepositoryException {
executeGuarded(new Callable() {
public Object run() throws RepositoryException {
- Set mixinNames = new HashSet();
- for (int i = 0; i < mixinNodeTypeIds.length; i++) {
- mixinNames.add(getJcrName(mixinNodeTypeIds[i]));
+ Set<String> mixinNames = new HashSet<String>();
+ for (Name mixinNodeTypeId : mixinNodeTypeIds) {
+ mixinNames.add(getJcrName(mixinNodeTypeId));
}
Node n = getNode(nodeId, sInfo);
- NodeType[] nts = n.getMixinNodeTypes();
- Set currentMixins = new HashSet();
- for (int i = 0; i < nts.length; i++) {
- currentMixins.add(nts[i].getName());
+ Set<String> currentMixins = new HashSet<String>();
+ for (NodeType nt : n.getMixinNodeTypes()) {
+ currentMixins.add(nt.getName());
}
- Set remove = new HashSet(currentMixins);
+ Set<String> remove = new HashSet<String>(currentMixins);
remove.removeAll(mixinNames);
mixinNames.removeAll(currentMixins);
- for (Iterator it = remove.iterator(); it.hasNext(); ) {
- n.removeMixin((String) it.next());
+ for (String mixName : remove) {
+ n.removeMixin(mixName);
}
- for (Iterator it = mixinNames.iterator(); it.hasNext(); ) {
- n.addMixin((String) it.next());
+ for (String mixName : mixinNames) {
+ n.addMixin(mixName);
}
return null;
}
@@ -1739,7 +1766,7 @@
}
private String getNodePath(NodeId nodeId, SessionInfoImpl sessionInfo) throws RepositoryException {
- // TODO: improve. avoid roundtrip over node access.
+ // TODO: improve. avoid round trip over node access.
return getNode(nodeId, sessionInfo).getPath();
}
@@ -1766,12 +1793,12 @@
private Query createQuery(Session session,
String statement,
String language,
- Map namespaces)
+ Map<String, String> namespaces)
throws InvalidQueryException, RepositoryException {
QueryManager qMgr = session.getWorkspace().getQueryManager();
// apply namespace mappings to session
- Map previous = setNamespaceMappings(session, namespaces);
+ Map<String, String> previous = setNamespaceMappings(session, namespaces);
try {
return qMgr.createQuery(statement, language);
} finally {
@@ -1789,15 +1816,13 @@
* @return the previous namespace mappings that were modified
* @throws RepositoryException if a repository error occurs
*/
- private Map setNamespaceMappings(Session session, Map namespaces)
+ private Map<String, String> setNamespaceMappings(Session session, Map<String, String> namespaces)
throws RepositoryException {
- Map previous = new HashMap();
+ Map<String, String> previous = new HashMap<String, String>();
- Iterator iterator = namespaces.entrySet().iterator();
- while (iterator.hasNext()) {
- Map.Entry entry = (Map.Entry) iterator.next();
- String uri = (String) entry.getValue();
- String prefix = (String) entry.getKey();
+ for (Map.Entry<String, String> entry : namespaces.entrySet()) {
+ String uri = entry.getValue();
+ String prefix = entry.getKey();
// Get the previous prefix for this URI, throws if
// URI not found (which is OK, as that's an error)
@@ -1848,13 +1873,12 @@
throws RepositoryException {
if (supportsObservation) {
// register local event listener
- Collection subscr = sInfo.getSubscriptions();
+ Collection<EventSubscription> subscr = sInfo.getSubscriptions();
if (subscr.size() != 0) {
ObservationManager obsMgr = sInfo.getSession().getWorkspace().getObservationManager();
- List listeners = new ArrayList(subscr.size());
+ List<EventListener> listeners = new ArrayList<EventListener>(subscr.size());
try {
- for (Iterator it = subscr.iterator(); it.hasNext(); ) {
- EventSubscription s = (EventSubscription) it.next();
+ for (EventSubscription s : subscr) {
EventListener listener = s.getLocalEventListener();
listeners.add(listener);
obsMgr.addEventListener(listener, EventSubscription.ALL_EVENTS,
@@ -1862,9 +1886,9 @@
}
return call.run();
} finally {
- for (Iterator it = listeners.iterator(); it.hasNext(); ) {
+ for (EventListener listener : listeners) {
try {
- obsMgr.removeEventListener((EventListener) it.next());
+ obsMgr.removeEventListener(listener);
} catch (RepositoryException e) {
// ignore and remove next
}
Modified: jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/SessionInfoImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/SessionInfoImpl.java?rev=918491&r1=918490&r2=918491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/SessionInfoImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/SessionInfoImpl.java Wed Mar 3 14:41:00 2010
@@ -71,12 +71,12 @@
/**
* The subscriptions that are currently in place for this session info.
*/
- private List subscriptions = Collections.EMPTY_LIST;
+ private List<EventSubscription> subscriptions = Collections.emptyList();
/**
* Monitor object for subscription changes.
*/
- private Object subscriptionChange = new Object();
+ private final Object subscriptionChange = new Object();
/**
* Creates a new session info based on the given <code>session</code>.
@@ -144,7 +144,7 @@
return duplicateCredentials(credentials);
}
- Collection getSubscriptions() {
+ Collection<EventSubscription> getSubscriptions() {
synchronized (subscriptionChange) {
return subscriptions;
}
@@ -162,7 +162,7 @@
Subscription createSubscription(IdFactory idFactory, QValueFactory qValueFactory, EventFilter[] filters)
throws RepositoryException {
synchronized (subscriptionChange) {
- List tmp = new ArrayList(subscriptions);
+ List<EventSubscription> tmp = new ArrayList<EventSubscription>(subscriptions);
EventSubscription s = new EventSubscription(idFactory, qValueFactory, this, filters);
tmp.add(s);
subscriptions = Collections.unmodifiableList(tmp);
@@ -175,9 +175,9 @@
*
* @param subscription the subscription to remove.
*/
- void removeSubscription(Subscription subscription) {
+ void removeSubscription(EventSubscription subscription) {
synchronized (subscriptionChange) {
- List tmp = new ArrayList(subscriptions);
+ List<EventSubscription> tmp = new ArrayList<EventSubscription>(subscriptions);
tmp.remove(subscription);
subscriptions = Collections.unmodifiableList(tmp);
}