Author: cziegeler
Date: Tue Feb 2 20:58:20 2016
New Revision: 1728210
URL: http://svn.apache.org/viewvc?rev=1728210&view=rev
Log:
SLING-5470 : Resource providers might not be closed
Added:
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverContext.java
(with props)
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/ResolveContextManager.java
(with props)
Modified:
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControl.java
sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControlTest.java
Modified:
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java?rev=1728210&r1=1728209&r2=1728210&view=diff
==============================================================================
---
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
(original)
+++
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
Tue Feb 2 20:58:20 2016
@@ -53,6 +53,7 @@ import org.apache.sling.api.resource.Res
import org.apache.sling.resourceresolver.impl.helper.RedirectResource;
import org.apache.sling.resourceresolver.impl.helper.ResourceIteratorDecorator;
import org.apache.sling.resourceresolver.impl.helper.ResourcePathIterator;
+import org.apache.sling.resourceresolver.impl.helper.ResourceResolverContext;
import org.apache.sling.resourceresolver.impl.helper.ResourceResolverControl;
import org.apache.sling.resourceresolver.impl.helper.StarResource;
import org.apache.sling.resourceresolver.impl.helper.URI;
@@ -97,9 +98,12 @@ public class ResourceResolverImpl extend
/** The factory which created this resource resolver. */
private final CommonResourceResolverFactoryImpl factory;
- /** Resource resolver context. */
+ /** Resource resolver control. */
private final ResourceResolverControl control;
+ /** Resource resolver context. */
+ private final ResourceResolverContext context;
+
private volatile Exception closedResolverException;
public ResourceResolverImpl(final CommonResourceResolverFactoryImpl
factory, final boolean isAdmin, final Map<String, Object> authenticationInfo)
throws LoginException {
@@ -110,6 +114,7 @@ public class ResourceResolverImpl extend
this.factory = factory;
this.control = createControl(storage, authenticationInfo, isAdmin);
this.factory.register(this, control);
+ this.context = new ResourceResolverContext(this);
}
/**
@@ -129,12 +134,13 @@ public class ResourceResolverImpl extend
}
this.control =
createControl(factory.getResourceProviderTracker().getResourceProviderStorage(),
authInfo, resolver.control.isAdmin());
this.factory.register(this, control);
+ this.context = new ResourceResolverContext(this);
}
private ResourceResolverControl createControl(ResourceProviderStorage
storage, Map<String, Object> authenticationInfo, final boolean isAdmin)
throws LoginException {
final ResourceProviderAuthenticator authenticator = new
ResourceProviderAuthenticator(this, authenticationInfo,
this.factory.getResourceAccessSecurityTracker());
- final ResourceResolverControl provider = new
ResourceResolverControl(isAdmin, authenticationInfo, storage, this,
authenticator);
+ final ResourceResolverControl provider = new
ResourceResolverControl(isAdmin, authenticationInfo, storage, authenticator);
authenticator.authenticateAll(storage.getAuthRequiredHandlers(),
provider);
return provider;
}
@@ -701,7 +707,7 @@ public class ResourceResolverImpl extend
if (parent instanceof ResourceWrapper) {
return listChildren(((ResourceWrapper) parent).getResource());
}
- return new
ResourceIteratorDecorator(this.factory.getResourceDecoratorTracker(),
this.control.listChildren(parent));
+ return new
ResourceIteratorDecorator(this.factory.getResourceDecoratorTracker(),
this.control.listChildren(this.context, parent));
}
/**
@@ -1030,7 +1036,7 @@ public class ResourceResolverImpl extend
parentToUse = null;
}
- final Resource resource = this.control.getResource(path, parentToUse,
parameters, isResolve);
+ final Resource resource = this.control.getResource(this.context, path,
parentToUse, parameters, isResolve);
if (resource != null) {
resource.getResourceMetadata().setResolutionPath(path);
resource.getResourceMetadata().setParameterMap(parameters);
@@ -1181,7 +1187,7 @@ public class ResourceResolverImpl extend
throw new IllegalArgumentException("Can't create child on a
synthetic root");
}
}
- final Resource rsrc = this.control.create(path, properties);
+ final Resource rsrc = this.control.create(this.context, path,
properties);
return this.factory.getResourceDecoratorTracker().decorate(rsrc);
}
@@ -1282,16 +1288,16 @@ public class ResourceResolverImpl extend
@Override
public Resource getParent(final Resource child) {
- return this.control.getParent(child);
+ return this.control.getParent(this.context, child);
}
@Override
public Resource copy(final String srcAbsPath, final String destAbsPath)
throws PersistenceException {
- return this.control.copy(srcAbsPath, destAbsPath);
+ return this.control.copy(this.context, srcAbsPath, destAbsPath);
}
@Override
public Resource move(final String srcAbsPath, final String destAbsPath)
throws PersistenceException {
- return this.control.move(srcAbsPath, destAbsPath);
+ return this.control.move(this.context, srcAbsPath, destAbsPath);
}
}
Added:
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverContext.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverContext.java?rev=1728210&view=auto
==============================================================================
---
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverContext.java
(added)
+++
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverContext.java
Tue Feb 2 20:58:20 2016
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The SF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.sling.resourceresolver.impl.helper;
+
+import org.apache.sling.api.resource.ResourceResolver;
+import
org.apache.sling.resourceresolver.impl.providers.stateful.ResolveContextManager;
+
+/**
+ * The resource resolver context.
+ */
+public class ResourceResolverContext {
+
+ private final ResourceResolver resolver;
+
+ private final ResolveContextManager resolveContextManager;
+
+ public ResourceResolverContext(final ResourceResolver resolver) {
+ this.resolver = resolver;
+ this.resolveContextManager = new ResolveContextManager(resolver);
+ }
+
+ public ResourceResolver getResourceResolver() {
+ return this.resolver;
+ }
+
+ public ResolveContextManager getResolveContextManager() {
+ return this.resolveContextManager;
+ }
+}
Propchange:
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverContext.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverContext.java
------------------------------------------------------------------------------
svn:keywords = author date id revision rev url
Modified:
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControl.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControl.java?rev=1728210&r1=1728209&r2=1728210&view=diff
==============================================================================
---
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControl.java
(original)
+++
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControl.java
Tue Feb 2 20:58:20 2016
@@ -77,8 +77,6 @@ public class ResourceResolverControl {
private final ResourceProviderStorage storage;
- private final ResourceResolver resolver;
-
private final ResourceProviderAuthenticator authenticator;
private final Map<String, Object> authenticationInfo;
@@ -89,12 +87,10 @@ public class ResourceResolverControl {
public ResourceResolverControl(final boolean isAdmin,
final Map<String, Object> authenticationInfo,
ResourceProviderStorage storage,
- ResourceResolver resolver,
ResourceProviderAuthenticator authenticator) {
this.authenticationInfo = authenticationInfo;
this.isAdmin = isAdmin;
this.storage = storage;
- this.resolver = resolver;
this.authenticator = authenticator;
}
@@ -147,7 +143,7 @@ public class ResourceResolverControl {
* resource provider returns parent for this child. See
* {@link #getResource(String, Resource, Map, boolean)} for more details
*/
- public Resource getParent(Resource child) {
+ public Resource getParent(final ResourceResolverContext context, final
Resource child) {
final String path = child.getPath();
try {
final StatefulResourceProvider provider =
getBestMatchingProvider(path);
@@ -162,7 +158,7 @@ public class ResourceResolverControl {
}
final String parentPath = ResourceUtil.getParent(path);
if (parentPath != null && isIntermediatePath(parentPath)) {
- return new SyntheticResource(resolver, parentPath,
ResourceProvider.RESOURCE_TYPE_SYNTHETIC);
+ return new SyntheticResource(context.getResourceResolver(),
parentPath, ResourceProvider.RESOURCE_TYPE_SYNTHETIC);
}
return null;
}
@@ -181,7 +177,9 @@ public class ResourceResolverControl {
* The same behaviour occurs in {@link #getParent(Resource)} and
* {@link #listChildren(Resource)}.
*/
- public Resource getResource(String path, Resource parent, Map<String,
String> parameters, boolean isResolve) {
+ public Resource getResource(final ResourceResolverContext context,
+ String path, Resource parent, Map<String, String> parameters,
+ boolean isResolve) {
if (path == null || path.length() == 0 || path.charAt(0) != '/') {
logger.debug("Not absolute {}", path);
return null; // path must be absolute
@@ -207,7 +205,7 @@ public class ResourceResolverControl {
// to get the parent resource for resource traversal.
if (!isResolve && isIntermediatePath(path)) {
logger.debug("Resolved Synthetic {}", path);
- return new SyntheticResource(resolver, path,
ResourceProvider.RESOURCE_TYPE_SYNTHETIC);
+ return new SyntheticResource(context.getResourceResolver(), path,
ResourceProvider.RESOURCE_TYPE_SYNTHETIC);
}
logger.debug("Resource null {} ", path);
return null;
@@ -226,7 +224,7 @@ public class ResourceResolverControl {
* invocation on the result.
*/
@SuppressWarnings("unchecked")
- public Iterator<Resource> listChildren(final Resource parent) {
+ public Iterator<Resource> listChildren(final ResourceResolverContext
context, final Resource parent) {
final String parentPath = parent.getPath();
// 3 sources are combined: children of the provider which owns
'parent',
@@ -264,7 +262,7 @@ public class ResourceResolverControl {
pathBuilder.append(name);
final String childPath = pathBuilder.toString();
if (handler == null) {
- syntheticList.add(new SyntheticResource(resolver,
childPath, ResourceProvider.RESOURCE_TYPE_SYNTHETIC));
+ syntheticList.add(new
SyntheticResource(context.getResourceResolver(), childPath,
ResourceProvider.RESOURCE_TYPE_SYNTHETIC));
} else {
Resource rsrc = null;
try {
@@ -278,7 +276,7 @@ public class ResourceResolverControl {
// if there is a child provider underneath, we need to
create a synthetic resource
// otherwise we need to make sure that no one else is
providing this child
if ( entry.getValue().getChildren().isEmpty() ) {
- syntheticList.add(new SyntheticResource(resolver,
childPath, ResourceProvider.RESOURCE_TYPE_SYNTHETIC));
+ syntheticList.add(new
SyntheticResource(context.getResourceResolver(), childPath,
ResourceProvider.RESOURCE_TYPE_SYNTHETIC));
} else {
visitedNames.add(name);
}
@@ -336,11 +334,13 @@ public class ResourceResolverControl {
* If creation fails
* @return The new resource
*/
- public Resource create(String path, Map<String, Object> properties) throws
PersistenceException {
+ public Resource create(final ResourceResolverContext context,
+ final String path, final Map<String, Object> properties)
+ throws PersistenceException {
try {
final StatefulResourceProvider provider =
getBestMatchingModifiableProvider(path);
if ( provider != null ) {
- final Resource creationResultResource =
provider.create(resolver, path, properties);
+ final Resource creationResultResource =
provider.create(context.getResourceResolver(), path, properties);
if (creationResultResource != null) {
return creationResultResource;
}
@@ -531,12 +531,12 @@ public class ResourceResolverControl {
return hasMoreProviders;
}
- private void copy(final Resource src, final String dstPath, final
List<Resource> newNodes) throws PersistenceException {
+ private void copy(final ResourceResolverContext context, final Resource
src, final String dstPath, final List<Resource> newNodes) throws
PersistenceException {
final ValueMap vm = src.getValueMap();
final String createPath = new
PathBuilder(dstPath).append(src.getName()).toString();
- newNodes.add(this.create(createPath, vm));
+ newNodes.add(this.create(context, createPath, vm));
for(final Resource c : src.getChildren()) {
- copy(c, createPath, newNodes);
+ copy(context, c, createPath, newNodes);
}
}
@@ -545,17 +545,18 @@ public class ResourceResolverControl {
* {@link StatefulResourceProvider#copy(String, String)} method on it.
* Returns false if there's no such provider.
*/
- public Resource copy(final String srcAbsPath, final String destAbsPath)
throws PersistenceException {
+ public Resource copy(final ResourceResolverContext context,
+ final String srcAbsPath, final String destAbsPath) throws
PersistenceException {
final StatefulResourceProvider optimizedSourceProvider =
checkSourceAndDest(srcAbsPath, destAbsPath);
if ( optimizedSourceProvider != null &&
optimizedSourceProvider.copy(srcAbsPath, destAbsPath) ) {
- return this.getResource(destAbsPath + '/' +
ResourceUtil.getName(srcAbsPath), null, null, false);
+ return this.getResource(context, destAbsPath + '/' +
ResourceUtil.getName(srcAbsPath), null, null, false);
}
- final Resource srcResource = this.getResource(srcAbsPath, null, null,
false);
+ final Resource srcResource = this.getResource(context, srcAbsPath,
null, null, false);
final List<Resource> newResources = new ArrayList<Resource>();
boolean rollback = true;
try {
- this.copy(srcResource, destAbsPath, newResources);
+ this.copy(context, srcResource, destAbsPath, newResources);
rollback = false;
return newResources.get(0);
} finally {
@@ -572,16 +573,17 @@ public class ResourceResolverControl {
* {@link StatefulResourceProvider#move(String, String)} method on it.
* Returns false if there's no such provider.
*/
- public Resource move(String srcAbsPath, String destAbsPath) throws
PersistenceException {
+ public Resource move(final ResourceResolverContext context,
+ String srcAbsPath, String destAbsPath) throws PersistenceException
{
final StatefulResourceProvider optimizedSourceProvider =
checkSourceAndDest(srcAbsPath, destAbsPath);
if ( optimizedSourceProvider != null &&
optimizedSourceProvider.move(srcAbsPath, destAbsPath) ) {
- return this.getResource(destAbsPath + '/' +
ResourceUtil.getName(srcAbsPath), null, null, false);
+ return this.getResource(context, destAbsPath + '/' +
ResourceUtil.getName(srcAbsPath), null, null, false);
}
- final Resource srcResource = this.getResource(srcAbsPath, null, null,
false);
+ final Resource srcResource = this.getResource(context, srcAbsPath,
null, null, false);
final List<Resource> newResources = new ArrayList<Resource>();
boolean rollback = true;
try {
- this.copy(srcResource, destAbsPath, newResources);
+ this.copy(context, srcResource, destAbsPath, newResources);
this.delete(srcResource);
rollback = false;
return newResources.get(0);
Added:
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/ResolveContextManager.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/ResolveContextManager.java?rev=1728210&view=auto
==============================================================================
---
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/ResolveContextManager.java
(added)
+++
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/ResolveContextManager.java
Tue Feb 2 20:58:20 2016
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The SF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.sling.resourceresolver.impl.providers.stateful;
+
+import java.util.IdentityHashMap;
+import java.util.Map;
+
+import org.apache.sling.api.resource.ResourceResolver;
+import
org.apache.sling.resourceresolver.impl.providers.ResourceProviderHandler;
+import org.apache.sling.spi.resource.provider.ResolverContext;
+
+public class ResolveContextManager {
+
+ private final Map<ResourceProviderHandler, ResolverContext<Object>>
contextMap;
+
+ public ResolveContextManager(final ResourceResolver resolver) {
+ this.contextMap = new IdentityHashMap<ResourceProviderHandler,
ResolverContext<Object>>();
+ }
+
+ public ResolverContext<Object> getResolveContext(final
ResourceProviderHandler handler) {
+ return this.contextMap.get(handler);
+ }
+}
Propchange:
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/ResolveContextManager.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/stateful/ResolveContextManager.java
------------------------------------------------------------------------------
svn:keywords = author date id revision rev url
Modified:
sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControlTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControlTest.java?rev=1728210&r1=1728209&r2=1728210&view=diff
==============================================================================
---
sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControlTest.java
(original)
+++
sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControlTest.java
Tue Feb 2 20:58:20 2016
@@ -82,6 +82,7 @@ public class ResourceResolverControlTest
private ResourceProvider<Object> rootProvider;
private Resource subProviderResource;
private Resource somethingResource;
+ private ResourceResolverContext context;
@Before
public void prepare() throws Exception {
@@ -141,7 +142,8 @@ public class ResourceResolverControlTest
ResourceProviderStorage storage = new
ResourceProviderStorage(handlers);
authenticator = new ResourceProviderAuthenticator(rr, authInfo,
securityTracker);
- crp = new ResourceResolverControl(false, authInfo, storage, rr,
authenticator);
+ crp = new ResourceResolverControl(false, authInfo, storage,
authenticator);
+ context = new ResourceResolverContext(rr);
}
/**
@@ -196,7 +198,7 @@ public class ResourceResolverControlTest
@Test
public void getResource_synthetic() {
- Resource resource = crp.getResource("/some", null, null, false);
+ Resource resource = crp.getResource(context, "/some", null, null,
false);
assertTrue("Not a syntethic resource : " + resource,
ResourceUtil.isSyntheticResource(resource));
}
@@ -206,7 +208,7 @@ public class ResourceResolverControlTest
*/
@Test
public void getResource_missing() {
- assertThat(crp.getResource("/nothing", null, null, false),
nullValue());
+ assertThat(crp.getResource(context, "/nothing", null, null, false),
nullValue());
}
/**
@@ -214,8 +216,8 @@ public class ResourceResolverControlTest
*/
@Test
public void getResource_found() {
- assertThat(crp.getResource("/something", null, null, false),
not(nullValue()));
- assertThat(crp.getResource("/some/path/object", null, null, false),
not(nullValue()));
+ assertThat(crp.getResource(context, "/something", null, null, false),
not(nullValue()));
+ assertThat(crp.getResource(context, "/some/path/object", null, null,
false), not(nullValue()));
}
@@ -224,7 +226,7 @@ public class ResourceResolverControlTest
*/
@Test
public void getParent_found() {
- Resource parent = crp.getParent(somethingResource);
+ Resource parent = crp.getParent(context, somethingResource);
assertThat(parent, notNullValue());
assertThat("parent.path", parent.getPath(), equalTo("/"));
}
@@ -236,7 +238,7 @@ public class ResourceResolverControlTest
*/
@Test
public void getParent_synthetic() {
- Resource parent = crp.getParent(subProviderResource);
+ Resource parent = crp.getParent(context, subProviderResource);
assertThat(parent, notNullValue());
assertTrue("parent is a synthetic resource",
ResourceUtil.isSyntheticResource(parent));
}
@@ -246,8 +248,8 @@ public class ResourceResolverControlTest
*/
@Test
public void listChildren_root() {
- Resource root = crp.getResource("/", null, null, false);
- Iterator<Resource> children = crp.listChildren(root);
+ Resource root = crp.getResource(context, "/", null, null, false);
+ Iterator<Resource> children = crp.listChildren(context, root);
Map<String, Resource> all = new HashMap<String, Resource>();
while ( children.hasNext() ) {
@@ -266,8 +268,8 @@ public class ResourceResolverControlTest
@Test
public void listChildren_lowerLevel() {
- Resource root = crp.getResource("/some", null, null, false);
- Iterator<Resource> children = crp.listChildren(root);
+ Resource root = crp.getResource(context, "/some", null, null, false);
+ Iterator<Resource> children = crp.listChildren(context, root);
Map<String, Resource> all = new HashMap<String, Resource>();
while ( children.hasNext() ) {
@@ -293,7 +295,7 @@ public class ResourceResolverControlTest
configureResourceAt(subProvider, "/some/path/new/object");
configureResourceAt(subProvider, "/some/path/new");
- Resource resource = crp.copy("/some/path/object", "/some/path/new");
+ Resource resource = crp.copy(context, "/some/path/object",
"/some/path/new");
assertThat(resource, not(nullValue()));
@@ -311,7 +313,7 @@ public class ResourceResolverControlTest
when(rootProvider.create(mockContext(), Mockito.eq("/object"),
Mockito.anyMap()))
.thenReturn(newRes);
- Resource resource = crp.copy("/some/path/object", "/");
+ Resource resource = crp.copy(context, "/some/path/object", "/");
assertThat(resource, not(nullValue()));
}
@@ -329,7 +331,7 @@ public class ResourceResolverControlTest
configureResourceAt(subProvider, "/some/path/new/object");
configureResourceAt(subProvider, "/some/path/new");
- Resource resource = crp.move("/some/path/object", "/some/path/new");
+ Resource resource = crp.move(context, "/some/path/object",
"/some/path/new");
assertThat(resource, not(nullValue()));
}
@@ -345,7 +347,7 @@ public class ResourceResolverControlTest
Resource newRes = newMockResource("/object");
when(rootProvider.create(mockContext(), Mockito.eq("/object"),
Mockito.anyMap())).thenReturn(newRes);
- Resource resource = crp.move("/some/path/object", "/");
+ Resource resource = crp.move(context, "/some/path/object", "/");
assertThat(resource, not(nullValue()));