You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by Justin Edelson <ju...@justinedelson.com> on 2014/03/15 14:30:09 UTC

Re: svn commit: r1577529 - in /sling/trunk/contrib/extensions/mongodb: pom.xml src/main/java/org/apache/sling/mongodb/impl/MongoDBCollectionResource.java src/main/java/org/apache/sling/mongodb/impl/MongoDBResource.java

Hi,

On Fri, Mar 14, 2014 at 9:49 AM,  <cz...@apache.org> wrote:
> Author: cziegeler
> Date: Fri Mar 14 13:49:01 2014
> New Revision: 1577529
>
> URL: http://svn.apache.org/r1577529
> Log:
> SLING-3451 : Support for deep reads from a value map
>
> Modified:
>     sling/trunk/contrib/extensions/mongodb/pom.xml
>     sling/trunk/contrib/extensions/mongodb/src/main/java/org/apache/sling/mongodb/impl/MongoDBCollectionResource.java
>     sling/trunk/contrib/extensions/mongodb/src/main/java/org/apache/sling/mongodb/impl/MongoDBResource.java
>

> Modified: sling/trunk/contrib/extensions/mongodb/src/main/java/org/apache/sling/mongodb/impl/MongoDBResource.java
> URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/mongodb/src/main/java/org/apache/sling/mongodb/impl/MongoDBResource.java?rev=1577529&r1=1577528&r2=1577529&view=diff
> ==============================================================================
> --- sling/trunk/contrib/extensions/mongodb/src/main/java/org/apache/sling/mongodb/impl/MongoDBResource.java (original)
> +++ sling/trunk/contrib/extensions/mongodb/src/main/java/org/apache/sling/mongodb/impl/MongoDBResource.java Fri Mar 14 13:49:01 2014
> @@ -23,6 +23,7 @@ import org.apache.sling.api.resource.Mod
>  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 com.mongodb.DBObject;
>
> @@ -118,10 +119,10 @@ public class MongoDBResource extends Abs
>      public <AdapterType> AdapterType adaptTo(final Class<AdapterType> type) {
>          if ( type == ValueMap.class || type == Map.class ) {
>              this.dbObject = this.provider.getUpdatedDBObject(this.resourcePath, this.dbObject);
> -            return (AdapterType) new ReadableValueMap(this.dbObject);
> +            return (AdapterType) new DeepReadValueMapDecorator(this, new ReadableValueMap(this.dbObject));
>          } else if ( type == ModifiableValueMap.class ) {
>              this.dbObject = this.provider.getUpdatedDBObject(this.resourcePath, this.dbObject);
> -            return (AdapterType) new ChangeableValueMap(this);
> +            return (AdapterType) new DeepReadValueMapDecorator(this, new ChangeableValueMap(this));

This doesn't look right to me. ChangeableValueMap implements
ModifiableValueMap, but DeepReadValueMapDecorator does not.

Regards,
Justin

>          }
>
>          return super.adaptTo(type);
>
>

Re: svn commit: r1577529 - in /sling/trunk/contrib/extensions/mongodb: pom.xml src/main/java/org/apache/sling/mongodb/impl/MongoDBCollectionResource.java src/main/java/org/apache/sling/mongodb/impl/MongoDBResource.java

Posted by Carsten Ziegeler <cz...@apache.org>.
Good catch, thanks - it's fixed now


2014-03-15 14:30 GMT+01:00 Justin Edelson <ju...@justinedelson.com>:

> Hi,
>
> On Fri, Mar 14, 2014 at 9:49 AM,  <cz...@apache.org> wrote:
> > Author: cziegeler
> > Date: Fri Mar 14 13:49:01 2014
> > New Revision: 1577529
> >
> > URL: http://svn.apache.org/r1577529
> > Log:
> > SLING-3451 : Support for deep reads from a value map
> >
> > Modified:
> >     sling/trunk/contrib/extensions/mongodb/pom.xml
> >
> sling/trunk/contrib/extensions/mongodb/src/main/java/org/apache/sling/mongodb/impl/MongoDBCollectionResource.java
> >
> sling/trunk/contrib/extensions/mongodb/src/main/java/org/apache/sling/mongodb/impl/MongoDBResource.java
> >
>
> > Modified:
> sling/trunk/contrib/extensions/mongodb/src/main/java/org/apache/sling/mongodb/impl/MongoDBResource.java
> > URL:
> http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/mongodb/src/main/java/org/apache/sling/mongodb/impl/MongoDBResource.java?rev=1577529&r1=1577528&r2=1577529&view=diff
> >
> ==============================================================================
> > ---
> sling/trunk/contrib/extensions/mongodb/src/main/java/org/apache/sling/mongodb/impl/MongoDBResource.java
> (original)
> > +++
> sling/trunk/contrib/extensions/mongodb/src/main/java/org/apache/sling/mongodb/impl/MongoDBResource.java
> Fri Mar 14 13:49:01 2014
> > @@ -23,6 +23,7 @@ import org.apache.sling.api.resource.Mod
> >  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 com.mongodb.DBObject;
> >
> > @@ -118,10 +119,10 @@ public class MongoDBResource extends Abs
> >      public <AdapterType> AdapterType adaptTo(final Class<AdapterType>
> type) {
> >          if ( type == ValueMap.class || type == Map.class ) {
> >              this.dbObject =
> this.provider.getUpdatedDBObject(this.resourcePath, this.dbObject);
> > -            return (AdapterType) new ReadableValueMap(this.dbObject);
> > +            return (AdapterType) new DeepReadValueMapDecorator(this,
> new ReadableValueMap(this.dbObject));
> >          } else if ( type == ModifiableValueMap.class ) {
> >              this.dbObject =
> this.provider.getUpdatedDBObject(this.resourcePath, this.dbObject);
> > -            return (AdapterType) new ChangeableValueMap(this);
> > +            return (AdapterType) new DeepReadValueMapDecorator(this,
> new ChangeableValueMap(this));
>
> This doesn't look right to me. ChangeableValueMap implements
> ModifiableValueMap, but DeepReadValueMapDecorator does not.
>
> Regards,
> Justin
>
> >          }
> >
> >          return super.adaptTo(type);
> >
> >
>



-- 
Carsten Ziegeler
cziegeler@apache.org