SLING-3451 : Support for deep reads from a value map
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/jmxprovider@1577531 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index 09fe8c0..ef3a62f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -64,7 +64,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.api</artifactId>
- <version>2.5.0</version>
+ <version>2.6.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
diff --git a/src/main/java/org/apache/sling/jmx/provider/impl/AttributeResource.java b/src/main/java/org/apache/sling/jmx/provider/impl/AttributeResource.java
index eabf9d2..64d7e32 100644
--- a/src/main/java/org/apache/sling/jmx/provider/impl/AttributeResource.java
+++ b/src/main/java/org/apache/sling/jmx/provider/impl/AttributeResource.java
@@ -43,6 +43,7 @@
import org.apache.sling.api.resource.ResourceMetadata;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.api.wrappers.DeepReadValueMapDecorator;
import org.apache.sling.api.wrappers.ValueMapDecorator;
public class AttributeResource extends AbstractResource {
@@ -115,7 +116,7 @@
public <AdapterType> AdapterType adaptTo(final Class<AdapterType> type) {
if ( type == ValueMap.class || type == Map.class ) {
final Map<String, Object> propMap = this.getPropertiesMap();
- return (AdapterType) new ValueMapDecorator(propMap);
+ return (AdapterType) new DeepReadValueMapDecorator(this, new ValueMapDecorator(propMap));
}
return super.adaptTo(type);
}
diff --git a/src/main/java/org/apache/sling/jmx/provider/impl/AttributesResource.java b/src/main/java/org/apache/sling/jmx/provider/impl/AttributesResource.java
index b3d65f6..24490b7 100644
--- a/src/main/java/org/apache/sling/jmx/provider/impl/AttributesResource.java
+++ b/src/main/java/org/apache/sling/jmx/provider/impl/AttributesResource.java
@@ -26,6 +26,7 @@
import org.apache.sling.api.resource.ResourceMetadata;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.api.wrappers.DeepReadValueMapDecorator;
import org.apache.sling.api.wrappers.ValueMapDecorator;
public class AttributesResource extends AbstractResource {
@@ -88,7 +89,7 @@
public <AdapterType> AdapterType adaptTo(final Class<AdapterType> type) {
if ( type == ValueMap.class || type == Map.class ) {
final Map<String, Object> propMap = this.getPropertiesMap();
- return (AdapterType) new ValueMapDecorator(propMap);
+ return (AdapterType) new DeepReadValueMapDecorator(this, new ValueMapDecorator(propMap));
}
return super.adaptTo(type);
}
diff --git a/src/main/java/org/apache/sling/jmx/provider/impl/MBeanResource.java b/src/main/java/org/apache/sling/jmx/provider/impl/MBeanResource.java
index 78c9e5a..2364541 100644
--- a/src/main/java/org/apache/sling/jmx/provider/impl/MBeanResource.java
+++ b/src/main/java/org/apache/sling/jmx/provider/impl/MBeanResource.java
@@ -35,6 +35,7 @@
import org.apache.sling.api.resource.ResourceMetadata;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.api.wrappers.DeepReadValueMapDecorator;
import org.apache.sling.api.wrappers.ValueMapDecorator;
public class MBeanResource extends AbstractResource {
@@ -136,7 +137,7 @@
public <AdapterType> AdapterType adaptTo(final Class<AdapterType> type) {
if ( type == ValueMap.class || type == Map.class ) {
final Map<String, Object> propMap = this.getPropertiesMap();
- return (AdapterType) new ValueMapDecorator(propMap);
+ return (AdapterType) new DeepReadValueMapDecorator(this, new ValueMapDecorator(propMap));
}
return super.adaptTo(type);
}
diff --git a/src/main/java/org/apache/sling/jmx/provider/impl/MapResource.java b/src/main/java/org/apache/sling/jmx/provider/impl/MapResource.java
index 596f4e0..2e75e96 100644
--- a/src/main/java/org/apache/sling/jmx/provider/impl/MapResource.java
+++ b/src/main/java/org/apache/sling/jmx/provider/impl/MapResource.java
@@ -26,6 +26,7 @@
import org.apache.sling.api.resource.ResourceMetadata;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.api.wrappers.DeepReadValueMapDecorator;
import org.apache.sling.api.wrappers.ValueMapDecorator;
public class MapResource extends AbstractResource {
@@ -98,7 +99,7 @@
public <AdapterType> AdapterType adaptTo(final Class<AdapterType> type) {
if ( type == ValueMap.class || type == Map.class ) {
final Map<String, Object> propMap = Collections.unmodifiableMap(this.properties);
- return (AdapterType) new ValueMapDecorator(propMap);
+ return (AdapterType) new DeepReadValueMapDecorator(this, new ValueMapDecorator(propMap));
}
return super.adaptTo(type);
}
diff --git a/src/main/java/org/apache/sling/jmx/provider/impl/RootResource.java b/src/main/java/org/apache/sling/jmx/provider/impl/RootResource.java
index 34fd064..0a56c8a 100644
--- a/src/main/java/org/apache/sling/jmx/provider/impl/RootResource.java
+++ b/src/main/java/org/apache/sling/jmx/provider/impl/RootResource.java
@@ -25,6 +25,7 @@
import org.apache.sling.api.resource.ResourceMetadata;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.api.wrappers.DeepReadValueMapDecorator;
import org.apache.sling.api.wrappers.ValueMapDecorator;
public class RootResource extends AbstractResource {
@@ -80,7 +81,7 @@
public <AdapterType> AdapterType adaptTo(final Class<AdapterType> type) {
if ( type == ValueMap.class || type == Map.class ) {
final Map<String, Object> propMap = this.getPropertiesMap();
- return (AdapterType) new ValueMapDecorator(propMap);
+ return (AdapterType) new DeepReadValueMapDecorator(this, new ValueMapDecorator(propMap));
}
return super.adaptTo(type);
}