You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fg...@apache.org on 2010/04/16 12:53:05 UTC

svn commit: r934741 - in /incubator/chemistry/opencmis/trunk: chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/ chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/test/java/org...

Author: fguillaume
Date: Fri Apr 16 10:53:04 2010
New Revision: 934741

URL: http://svn.apache.org/viewvc?rev=934741&view=rev
Log:
Refactor to get rid of duplicate DTOs (and their interfaces): Rendition

Modified:
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/Rendition.java
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/test/java/org/apache/chemistry/opencmis/client/bindings/framework/AbstractCmisTestCase.java
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/RenditionImpl.java
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/repository/PersistentObjectFactoryImpl.java
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/api/RenditionData.java
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/Converter.java
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RenditionDataImpl.java
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/ObjectInfoHelper.java

Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/Rendition.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/Rendition.java?rev=934741&r1=934740&r2=934741&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/Rendition.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/Rendition.java Fri Apr 16 10:53:04 2010
@@ -19,23 +19,18 @@
 package org.apache.chemistry.opencmis.client.api;
 
 import org.apache.chemistry.opencmis.commons.api.ContentStream;
+import org.apache.chemistry.opencmis.commons.api.RenditionData;
 
 /**
  * {@see Document#getRenditions()}. Domain Model 2.4.2
  */
-public interface Rendition {
-
-  String getMimeType();
+public interface Rendition extends RenditionData {
 
   long getLength();
 
-  String getKind();
-
-  String getTitle();
-
-  int getHeight();
+  long getHeight();
 
-  int getWidth();
+  long getWidth();
 
   Document getRenditionDocument();
 

Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/test/java/org/apache/chemistry/opencmis/client/bindings/framework/AbstractCmisTestCase.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/test/java/org/apache/chemistry/opencmis/client/bindings/framework/AbstractCmisTestCase.java?rev=934741&r1=934740&r2=934741&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/test/java/org/apache/chemistry/opencmis/client/bindings/framework/AbstractCmisTestCase.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/test/java/org/apache/chemistry/opencmis/client/bindings/framework/AbstractCmisTestCase.java Fri Apr 16 10:53:04 2010
@@ -1199,11 +1199,11 @@ public abstract class AbstractCmisTestCa
 
     assertEquals("Rendition kind:", expected.getKind(), actual.getKind());
     assertEquals("Rendition MIME type:", expected.getMimeType(), actual.getMimeType());
-    assertEquals("Rendition length:", expected.getLength(), actual.getLength());
+    assertEquals("Rendition length:", expected.getBigLength(), actual.getBigLength());
     assertEquals("Rendition stream id:", expected.getStreamId(), actual.getStreamId());
     assertEquals("Rendition title:", expected.getTitle(), actual.getTitle());
-    assertEquals("Rendition height:", expected.getHeight(), actual.getHeight());
-    assertEquals("Rendition width:", expected.getWidth(), actual.getWidth());
+    assertEquals("Rendition height:", expected.getBigHeight(), actual.getBigHeight());
+    assertEquals("Rendition width:", expected.getBigWidth(), actual.getBigWidth());
     assertEquals("Rendition document id:", expected.getRenditionDocumentId(), actual
         .getRenditionDocumentId());
   }

Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/RenditionImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/RenditionImpl.java?rev=934741&r1=934740&r2=934741&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/RenditionImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/RenditionImpl.java Fri Apr 16 10:53:04 2010
@@ -18,7 +18,7 @@
  */
 package org.apache.chemistry.opencmis.client.runtime;
 
-import java.io.Serializable;
+import java.math.BigInteger;
 
 import org.apache.chemistry.opencmis.client.api.CmisObject;
 import org.apache.chemistry.opencmis.client.api.Document;
@@ -26,118 +26,52 @@ import org.apache.chemistry.opencmis.cli
 import org.apache.chemistry.opencmis.client.api.Rendition;
 import org.apache.chemistry.opencmis.client.api.Session;
 import org.apache.chemistry.opencmis.commons.api.ContentStream;
+import org.apache.chemistry.opencmis.commons.impl.dataobjects.RenditionDataImpl;
 
 /**
  * Implementation of <code>Rendition</code>.
  */
-public class RenditionImpl implements Rendition, Serializable {
-
-  private static final long serialVersionUID = 1L;
+public class RenditionImpl extends RenditionDataImpl implements Rendition {
 
   private Session session;
   private String objectId;
-  private String streamId;
-  private String renditionDocumentId;
-  private String kind;
-  private long length;
-  private String mimetype;
-  private String title;
-  private int height;
-  private int width;
 
   /**
    * Constructor.
    */
   public RenditionImpl(Session session, String objectId, String streamId,
-      String renditionDocumentId, String kind, long length, String mimetype, String title,
+      String renditionDocumentId, String kind, long length, String mimeType, String title,
       int height, int width) {
+        super(streamId, mimeType, BigInteger.valueOf(length), kind, title,
+                BigInteger.valueOf(width), BigInteger.valueOf(height),
+                renditionDocumentId);
     this.session = session;
     this.objectId = objectId;
-    this.streamId = streamId;
-    this.renditionDocumentId = renditionDocumentId;
-    this.kind = kind;
-    this.mimetype = mimetype;
-    this.title = title;
-    this.height = height;
-    this.width = width;
   }
 
-  /*
-   * (non-Javadoc)
-   *
-   * @see org.apache.opencmis.client.api.Rendition#getKind()
-   */
-  public String getKind() {
-    return this.kind;
-  }
 
-  /*
-   * (non-Javadoc)
-   *
-   * @see org.apache.opencmis.client.api.Rendition#getLength()
-   */
   public long getLength() {
-    return this.length;
+    return fLength == null ? -1 : fLength.longValue();
   }
 
-  /*
-   * (non-Javadoc)
-   *
-   * @see org.apache.opencmis.client.api.Rendition#getMimeType()
-   */
-  public String getMimeType() {
-    return this.mimetype;
-  }
 
-  /*
-   * (non-Javadoc)
-   *
-   * @see org.apache.opencmis.client.api.Rendition#getTitle()
-   */
-  public String getTitle() {
-    return this.title;
+  public long getHeight() {
+    return fHeight == null ? -1 : fHeight.longValue();
   }
 
-  /*
-   * (non-Javadoc)
-   *
-   * @see org.apache.opencmis.client.api.Rendition#getHeight()
-   */
-  public int getHeight() {
-    return this.height;
+  public long getWidth() {
+    return fWidth == null ? -1 : fWidth.longValue();
   }
 
-  /*
-   * (non-Javadoc)
-   *
-   * @see org.apache.opencmis.client.api.Rendition#getWidth()
-   */
-  public int getWidth() {
-    return this.width;
-  }
-
-  /*
-   * (non-Javadoc)
-   *
-   * @see org.apache.opencmis.client.api.Rendition#getRenditionDocument()
-   */
   public Document getRenditionDocument() {
     return getRenditionDocument(session.getDefaultContext());
   }
 
-  /*
-   * (non-Javadoc)
-   *
-   * @see
-   * org.apache.opencmis.client.api.Rendition#getRenditionDocument(org.apache.opencmis.client.api
-   * .OperationContext)
-   */
   public Document getRenditionDocument(OperationContext context) {
-    if (this.renditionDocumentId == null) {
+    if (fRenditionDocumentId == null) {
       return null;
     }
-
-    CmisObject rendDoc = session.getObject(session.createObjectId(this.renditionDocumentId),
+    CmisObject rendDoc = session.getObject(session.createObjectId(fRenditionDocumentId),
         context);
     if (!(rendDoc instanceof Document)) {
       return null;
@@ -146,24 +80,18 @@ public class RenditionImpl implements Re
     return (Document) rendDoc;
   }
 
-  /*
-   * (non-Javadoc)
-   *
-   * @see org.apache.opencmis.client.api.Rendition#getContentStream()
-   */
   public ContentStream getContentStream() {
-    if ((objectId == null) || (streamId == null)) {
+    if ((objectId == null) || (fStreamId == null)) {
       return null;
     }
 
     ContentStream contentStream = session.getBinding().getObjectService().getContentStream(
-        session.getRepositoryInfo().getId(), objectId, streamId, null, null, null);
+        session.getRepositoryInfo().getId(), objectId, fStreamId, null, null, null);
     if (contentStream == null) {
       return null;
     }
 
-    // TODO: what should happen if the length is not set?
-    long length = (contentStream.getBigLength() == null ? -1 : contentStream.getBigLength().longValue());
+    long length = contentStream.getBigLength() == null ? -1 : contentStream.getBigLength().longValue();
 
     return session.getObjectFactory().createContentStream(contentStream.getFileName(), length,
         contentStream.getMimeType(), contentStream.getStream());

Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/repository/PersistentObjectFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/repository/PersistentObjectFactoryImpl.java?rev=934741&r1=934740&r2=934741&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/repository/PersistentObjectFactoryImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/repository/PersistentObjectFactoryImpl.java Fri Apr 16 10:53:04 2010
@@ -172,9 +172,9 @@ public class PersistentObjectFactoryImpl
     }
 
     // TODO: what should happen if the length is not set?
-    long length = (rendition.getLength() == null ? -1 : rendition.getLength().longValue());
-    int height = (rendition.getHeight() == null ? -1 : rendition.getHeight().intValue());
-    int width = (rendition.getWidth() == null ? -1 : rendition.getWidth().intValue());
+    long length = (rendition.getBigLength() == null ? -1 : rendition.getBigLength().longValue());
+    int height = (rendition.getBigHeight() == null ? -1 : rendition.getBigHeight().intValue());
+    int width = (rendition.getBigWidth() == null ? -1 : rendition.getBigWidth().intValue());
 
     return new RenditionImpl(this.session, objectId, rendition.getStreamId(), rendition
         .getRenditionDocumentId(), rendition.getKind(), length, rendition.getMimeType(), rendition

Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/api/RenditionData.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/api/RenditionData.java?rev=934741&r1=934740&r2=934741&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/api/RenditionData.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/api/RenditionData.java Fri Apr 16 10:53:04 2010
@@ -27,15 +27,15 @@ public interface RenditionData extends E
 
   String getMimeType();
 
-  BigInteger getLength();
+  BigInteger getBigLength();
 
   String getKind();
 
   String getTitle();
 
-  BigInteger getHeight();
+  BigInteger getBigHeight();
 
-  BigInteger getWidth();
+  BigInteger getBigWidth();
 
   String getRenditionDocumentId();
 }

Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/Converter.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/Converter.java?rev=934741&r1=934740&r2=934741&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/Converter.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/Converter.java Fri Apr 16 10:53:04 2010
@@ -1576,14 +1576,14 @@ public final class Converter {
 
     RenditionDataImpl result = new RenditionDataImpl();
 
-    result.setHeight(rendition.getHeight());
+    result.setBigHeight(rendition.getHeight());
     result.setKind(rendition.getKind());
-    result.setLength(rendition.getLength());
+    result.setBigLength(rendition.getLength());
     result.setMimeType(rendition.getMimetype());
     result.setRenditionDocumentId(rendition.getRenditionDocumentId());
     result.setStreamId(rendition.getStreamId());
     result.setTitle(rendition.getTitle());
-    result.setWidth(rendition.getWidth());
+    result.setBigWidth(rendition.getWidth());
 
     // handle extensions
     convertExtension(rendition, result);
@@ -1601,14 +1601,14 @@ public final class Converter {
 
     CmisRenditionType result = new CmisRenditionType();
 
-    result.setHeight(rendition.getHeight());
+    result.setHeight(rendition.getBigHeight());
     result.setKind(rendition.getKind());
-    result.setLength(rendition.getLength());
+    result.setLength(rendition.getBigLength());
     result.setMimetype(rendition.getMimeType());
     result.setRenditionDocumentId(rendition.getRenditionDocumentId());
     result.setStreamId(rendition.getStreamId());
     result.setTitle(rendition.getTitle());
-    result.setWidth(rendition.getWidth());
+    result.setWidth(rendition.getBigWidth());
 
     // handle extensions
     convertExtension(rendition, result);

Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RenditionDataImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RenditionDataImpl.java?rev=934741&r1=934740&r2=934741&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RenditionDataImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RenditionDataImpl.java Fri Apr 16 10:53:04 2010
@@ -24,22 +24,38 @@ import org.apache.chemistry.opencmis.com
 
 /**
  * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
- * 
+ *
  */
 public class RenditionDataImpl extends AbstractExtensionData implements RenditionData {
 
-  private String fStreamId;
+  protected String fStreamId;
   private String fMimeType;
-  private BigInteger fLength;
+  protected BigInteger fLength;
   private String fKind;
   private String fTitle;
-  private BigInteger fHeight;
-  private BigInteger fWidth;
-  private String fRenditionDocumentId;
+  protected BigInteger fWidth;
+  protected BigInteger fHeight;
+  protected String fRenditionDocumentId;
+
+  public RenditionDataImpl() {
+  }
+
+  public RenditionDataImpl(String streamId, String mimeType, BigInteger length,
+          String kind, String title, BigInteger width, BigInteger height,
+          String renditionDocumentId) {
+      setStreamId(streamId);
+      setMimeType(mimeType);
+      setBigLength(length);
+      setKind(kind);
+      setTitle(title);
+      setBigWidth(width);
+      setBigHeight(height);
+      setRenditionDocumentId(renditionDocumentId);
+  }
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see org.apache.opencmis.client.provider.RenditionData#getStreamId()
    */
   public String getStreamId() {
@@ -52,7 +68,7 @@ public class RenditionDataImpl extends A
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see org.apache.opencmis.client.provider.RenditionData#getMimeType()
    */
   public String getMimeType() {
@@ -65,20 +81,20 @@ public class RenditionDataImpl extends A
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see org.apache.opencmis.client.provider.RenditionData#getLength()
    */
-  public BigInteger getLength() {
+  public BigInteger getBigLength() {
     return fLength;
   }
 
-  public void setLength(BigInteger length) {
+  public void setBigLength(BigInteger length) {
     fLength = length;
   }
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see org.apache.opencmis.client.provider.RenditionData#getKind()
    */
   public String getKind() {
@@ -91,7 +107,7 @@ public class RenditionDataImpl extends A
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see org.apache.opencmis.client.provider.RenditionData#getTitle()
    */
   public String getTitle() {
@@ -104,33 +120,33 @@ public class RenditionDataImpl extends A
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see org.apache.opencmis.client.provider.RenditionData#getHeight()
    */
-  public BigInteger getHeight() {
+  public BigInteger getBigHeight() {
     return fHeight;
   }
 
-  public void setHeight(BigInteger height) {
+  public void setBigHeight(BigInteger height) {
     fHeight = height;
   }
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see org.apache.opencmis.client.provider.RenditionData#getWidth()
    */
-  public BigInteger getWidth() {
+  public BigInteger getBigWidth() {
     return fWidth;
   }
 
-  public void setWidth(BigInteger width) {
+  public void setBigWidth(BigInteger width) {
     fWidth = width;
   }
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see org.apache.opencmis.client.provider.RenditionData#getRenditionDocumentId()
    */
   public String getRenditionDocumentId() {
@@ -143,7 +159,7 @@ public class RenditionDataImpl extends A
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see java.lang.Object#toString()
    */
   @Override

Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/ObjectInfoHelper.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/ObjectInfoHelper.java?rev=934741&r1=934740&r2=934741&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/ObjectInfoHelper.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/ObjectInfoHelper.java Fri Apr 16 10:53:04 2010
@@ -53,14 +53,14 @@ import org.apache.chemistry.opencmis.ser
 
 
 /**
- * A helper class used from various methods to fill the ObjectInfoHolder structure with 
- * the required information to generate all the links in the AtomPub binding. Use this 
+ * A helper class used from various methods to fill the ObjectInfoHolder structure with
+ * the required information to generate all the links in the AtomPub binding. Use this
  * class as a convenience class for starting the implementation. For productive use it
  * is highly recommended that a server implementation replaces this implementation by
  * a more efficient one. This default implementation can only rely on the services and
- * therefore requires a round-trip for each object to the server once again. This can 
+ * therefore requires a round-trip for each object to the server once again. This can
  * be avoided in a repository specific implementation.
- * 
+ *
  */
 
 public class ObjectInfoHelper
@@ -68,25 +68,25 @@ public class ObjectInfoHelper
     private CmisObjectService _objSvc;
     private CmisRepositoryService _repSvc;
     private CmisNavigationService _navSvc;
-    
+
     private Map<String, RepositoryCapabilities > _repos = new HashMap<String, RepositoryCapabilities >();
     private Map<String, Boolean > _mapPolicies = new HashMap<String, Boolean >();
     private Map<String, Boolean > _mapRelationships = new HashMap<String, Boolean >();
-    
+
     public ObjectInfoHelper(CmisRepositoryService repSvc, CmisObjectService objSvc, CmisNavigationService navSvc) {
         _objSvc = objSvc;
         _repSvc = repSvc;
         _navSvc = navSvc;
     }
-    
+
     /**
-     * fill an ObjectInfoHolder object with required information needed for Atom binding 
+     * fill an ObjectInfoHolder object with required information needed for Atom binding
      * to be able to generate the necessary links in AtomPub
-     * 
+     *
      * @param context
      *          call context of the current request
      * @param repositoryId
-     *          id of repository 
+     *          id of repository
      * @param objectId
      *          object to retrieve information for
      * @param objectInfos
@@ -94,17 +94,17 @@ public class ObjectInfoHelper
      */
     public ObjectData fillObjectInfoHolder(CallContext context, String repositoryId, String objectId,
         ObjectInfoHolder objectInfos) {
-        
+
       if (null == objectInfos || null == objectId)
         return null;
-      
+
       // call getObject to get the required information to fill ObjectInfoHolder
       ObjectData objData = getObject(context, repositoryId, objectId);
       fillObjectInfoHolder(context, repositoryId, objData, objectInfos);
-      
+
       return objData; // might be useful as return value in some service methods
     }
-    
+
     /**
      * Fill object in
      * @param context
@@ -119,9 +119,9 @@ public class ObjectInfoHelper
         if (filterContainsRequiredProperties(filter))
             fillObjectInfoHolder(context, repositoryId, objData, objectInfos);
         else // get object again as we need almost all system properties
-            fillObjectInfoHolder(context, repositoryId, objData.getId(), objectInfos);        
+            fillObjectInfoHolder(context, repositoryId, objData.getId(), objectInfos);
     }
-    
+
     public boolean filterContainsRequiredProperties(String filter) {
         if (filter==null)
             return false;
@@ -146,16 +146,16 @@ public class ObjectInfoHelper
         if (!filter.contains(PropertyIds.CONTENT_STREAM_ID))
             return false;
         return true;
-        
+
     }
     /**
-     * fill an ObjectInfoHolder object with required information needed for Atom binding 
+     * fill an ObjectInfoHolder object with required information needed for Atom binding
      * to be able to generate the necessary links in AtomPub
-     * 
+     *
      * @param context
      *          call context of the current request
      * @param repositoryId
-     *          id of repository 
+     *          id of repository
      * @param objData
      *          object data to grab information from
      * @param objectInfos
@@ -163,20 +163,20 @@ public class ObjectInfoHelper
      */
     public void fillObjectInfoHolder(CallContext context, String repositoryId, ObjectData objData,
         ObjectInfoHolder objectInfos) {
-        
+
         if (null==objData || null==objectInfos)
             return;
-                
+
         // Get required information about the repository and cache it for later use:
-        
+
         Map<String, PropertyData<?>> properties = objData.getProperties().getProperties();
         RepositoryCapabilities repoCaps = _repos.get(repositoryId);
         if (null == repoCaps) {
             RepositoryInfo repoInfo = _repSvc.getRepositoryInfo(null, repositoryId, null);
             repoCaps = repoInfo.getCapabilities();
-            _repos.put(repositoryId, repoCaps);          
+            _repos.put(repositoryId, repoCaps);
         }
-        
+
         Boolean supportsRelationships = _mapRelationships.get(repositoryId);
         Boolean supportsPolicies = _mapPolicies.get(repositoryId);
         if (null == supportsRelationships || null == supportsPolicies) {
@@ -192,32 +192,32 @@ public class ObjectInfoHelper
             _mapRelationships.put(repositoryId, supportsRelationships);
             _mapPolicies.put(repositoryId, supportsPolicies);
         }
-        
+
         ObjectInfoImpl objInfo = new ObjectInfoImpl();
        // Fill all setters:
         objInfo.setId(objData.getId());
         objInfo.setName(getStringProperty(properties, PropertyIds.NAME));
-        objInfo.setCreatedBy(getStringProperty(properties, PropertyIds.CREATED_BY)); 
-        objInfo.setCreationDate(getDateProperty(properties, PropertyIds.CREATION_DATE)); 
+        objInfo.setCreatedBy(getStringProperty(properties, PropertyIds.CREATED_BY));
+        objInfo.setCreationDate(getDateProperty(properties, PropertyIds.CREATION_DATE));
         objInfo.setLastModificationDate(getDateProperty(properties, PropertyIds.LAST_MODIFICATION_DATE));
         objInfo.setTypeId(getStringProperty(properties, PropertyIds.OBJECT_TYPE_ID));
         String baseId = getStringProperty(properties, PropertyIds.BASE_TYPE_ID);
         objInfo.setBaseType(BaseTypeId.fromValue(baseId));
-        
+
         boolean isVersioned = getStringProperty(properties, PropertyIds.VERSION_SERIES_ID) != null;
-        // versioning information: 
-        if (isVersioned) {          
-          objInfo.setIsCurrentVersion(getBooleanProperty(properties, PropertyIds.IS_LATEST_VERSION)); 
+        // versioning information:
+        if (isVersioned) {
+          objInfo.setIsCurrentVersion(getBooleanProperty(properties, PropertyIds.IS_LATEST_VERSION));
           objInfo.setVersionSeriesId(getStringProperty(properties, PropertyIds.VERSION_SERIES_ID));
           objInfo.setWorkingCopyId(getStringProperty(properties, PropertyIds.VERSION_SERIES_CHECKED_OUT_ID));
           objInfo.setWorkingCopyOriginalId(null);
         } else { // unversioned document
-          objInfo.setIsCurrentVersion (true); 
+          objInfo.setIsCurrentVersion (true);
           objInfo.setVersionSeriesId(null);
           objInfo.setWorkingCopyId(null);
           objInfo.setWorkingCopyOriginalId(null);
         }
-        
+
         String fileName = getStringProperty(properties, PropertyIds.CONTENT_STREAM_FILE_NAME);
         String mimeType = getStringProperty(properties, PropertyIds.CONTENT_STREAM_MIME_TYPE);
         String streamId = getStringProperty(properties, PropertyIds.CONTENT_STREAM_ID);
@@ -232,7 +232,7 @@ public class ObjectInfoHelper
           objInfo.setContentType(null);
           objInfo.setFileName(null);
         }
-        
+
         if (objInfo.getBaseType() == BaseTypeId.CMIS_FOLDER)
             objInfo.setHasParent(getStringProperty(properties, PropertyIds.PARENT_ID) != null);
         else if (objInfo.getBaseType() == BaseTypeId.CMIS_DOCUMENT) {
@@ -241,44 +241,44 @@ public class ObjectInfoHelper
             else
                 objInfo.setHasParent(true);
         } else
-            objInfo.setHasParent(false);            
-        
+            objInfo.setHasParent(false);
+
         // Renditions, currently not supported by in-memory provider
         objInfo.setRenditionInfos(convertRenditions(objData.getRenditions()));
-        
+
         List<String> sourceIds = new ArrayList<String>();
         List<String> targetIds = new ArrayList<String>();
         getRelationshipIds(objData, sourceIds, targetIds);
-        
+
         // Relationships, currently not supported
         objInfo.setSupportsRelationships(supportsRelationships);
         objInfo.setRelationshipSourceIds(sourceIds);
         objInfo.setRelationshipTargetIds(targetIds);
-        
+
         objInfo.setSupportsPolicies(supportsPolicies);
-        
+
         objInfo.setHasAcl(repoCaps.getAclCapability() != CapabilityAcl.NONE);
-        
+
         String baseTypeId = getStringProperty(properties, PropertyIds.BASE_TYPE_ID);
         boolean isFolder = baseTypeId != null && baseTypeId.equals(BaseTypeId.CMIS_FOLDER.value());
-        
+
         objInfo.setSupportsDescendants(isFolder && repoCaps.isGetDescendantsSupported());;
         objInfo.setSupportsFolderTree(isFolder && repoCaps.isGetFolderTreeSupported());
-        
+
         objectInfos.addObjectInfo(objInfo);
     }
 
-        
-        
+
+
 
     /**
-     * fill an ObjectInfoHolder object with required information needed for Atom binding 
+     * fill an ObjectInfoHolder object with required information needed for Atom binding
      * to be able to generate the necessary links in AtomPub
-     * 
+     *
      * @param context
      *          call context of the current request
      * @param repositoryId
-     *          id of repository 
+     *          id of repository
      * @param objList
      *          object list, fill information for each element
      * @param objectInfos
@@ -290,25 +290,25 @@ public class ObjectInfoHelper
         ObjectList objList,
         ObjectInfoHolder objectInfos)
     {
-          
+
         if (null != objectInfos && null != objList && null != objList.getObjects()) {
             // Fill object information for all children in result list
             List<ObjectData> listObjects = objList.getObjects();
             if (null != listObjects)
                 for (ObjectData object : listObjects) {
                     fillObjectInfoHolder(context, repositoryId, object.getId(), objectInfos);
-                }    
+                }
         }
     }
 
     /**
-     * fill an ObjectInfoHolder object with required information needed for Atom binding 
+     * fill an ObjectInfoHolder object with required information needed for Atom binding
      * to be able to generate the necessary links in AtomPub
-     * 
+     *
      * @param context
      *          call context of the current request
      * @param repositoryId
-     *          id of repository 
+     *          id of repository
      * @param objList
      *          object list, fill information for each element
      * @param objectInfos
@@ -330,13 +330,13 @@ public class ObjectInfoHelper
     }
 
     /**
-     * fill an ObjectInfoHolder object with required information needed for Atom binding 
+     * fill an ObjectInfoHolder object with required information needed for Atom binding
      * to be able to generate the necessary links in AtomPub
-     * 
+     *
      * @param context
      *          call context of the current request
      * @param repositoryId
-     *          id of repository 
+     *          id of repository
      * @param objList
      *          object list, fill information for each element
      * @param objectInfos
@@ -358,13 +358,13 @@ public class ObjectInfoHelper
     }
 
     /**
-     * fill an ObjectInfoHolder object with required information needed for Atom binding 
+     * fill an ObjectInfoHolder object with required information needed for Atom binding
      * to be able to generate the necessary links in AtomPub
-     * 
+     *
      * @param context
      *          call context of the current request
      * @param repositoryId
-     *          id of repository 
+     *          id of repository
      * @param objList
      *          object list, fill information for each element
      * @param objectInfos
@@ -381,17 +381,17 @@ public class ObjectInfoHelper
 
         for (ObjectParentData object : objParents) {
             fillObjectInfoHolder(context, repositoryId, object.getObject().getId(), objectInfos);
-        }        
+        }
     }
-        
+
     /**
-     * fill an ObjectInfoHolder object with required information needed for Atom binding 
+     * fill an ObjectInfoHolder object with required information needed for Atom binding
      * to be able to generate the necessary links in AtomPub
-     * 
+     *
      * @param context
      *          call context of the current request
      * @param repositoryId
-     *          id of repository 
+     *          id of repository
      * @param objList
      *          object list, fill information for each element recursively
      * @param objectInfos
@@ -405,12 +405,12 @@ public class ObjectInfoHelper
     {
         if (null == objectInfos || null == oifcList)
             return;
-          
+
         for (ObjectInFolderContainer object : oifcList) {
             fillObjectInfoHolderFolderContainer(context, repositoryId, object, objectInfos);
-        }    
+        }
     }
-    
+
     private void fillObjectInfoHolderFolderContainer(
         CallContext context,
         String repositoryId,
@@ -427,7 +427,7 @@ public class ObjectInfoHelper
         for (ObjectInFolderContainer object : oifc.getChildren()) {
           // call recursively
           fillObjectInfoHolderFolderContainer(context, repositoryId, object, objectInfos);
-        }    
+        }
     }
 
     private Boolean getBooleanProperty(Map<String, PropertyData<?>> props, String key) {
@@ -441,7 +441,7 @@ public class ObjectInfoHelper
         String val = null==pdVal ? null : (String) pdVal.getFirstValue();
         return val;
     }
-    
+
     private GregorianCalendar getDateProperty(Map<String, PropertyData<?>> props, String key) {
         PropertyData<?> pdVal = props.get(key);
         GregorianCalendar val = null==pdVal ? null : (GregorianCalendar) pdVal.getFirstValue();
@@ -455,34 +455,34 @@ public class ObjectInfoHelper
     }
 
     private ObjectData getObject(CallContext context, String repositoryId, String objectId) {
-        
-        ObjectData od = _objSvc.getObject(context, repositoryId, objectId, null, false, 
+
+        ObjectData od = _objSvc.getObject(context, repositoryId, objectId, null, false,
             IncludeRelationships.BOTH, "*", true, true, null, null);
         return od;
     }
 
     private List<RenditionInfo> convertRenditions(List<RenditionData> renditions) {
-        
+
         if (null==renditions)
             return null;
-        
+
         List<RenditionInfo> rendInfos = new ArrayList<RenditionInfo>(renditions.size());
         RenditionInfosImpl ri = new RenditionInfosImpl();
         for (RenditionData rd : renditions) {
             ri.setContentType(rd.getMimeType());
             ri.setId(rd.getStreamId());
             ri.setKind(rd.getKind());
-            ri.setLength(rd.getLength());
+            ri.setLength(rd.getBigLength());
             ri.setTitle(rd.getTitle());
-            rendInfos.add(ri);            
+            rendInfos.add(ri);
         }
         return rendInfos;
     }
-    
+
     private void getRelationshipIds(ObjectData objData, List<String> sourceIds, List<String> targetIds) {
         if (null==objData || null == objData.getRelationships())
             return;
-        
+
         String objectId = objData.getId();
         for (ObjectData rel : objData.getRelationships()) {
             String relId = getStringProperty(rel.getProperties().getProperties(), PropertyIds.OBJECT_ID);
@@ -497,7 +497,7 @@ public class ObjectInfoHelper
 
     private boolean documentHasParent(CallContext context, String repositoryId, String objectId)
     {
-        List<ObjectParentData> opd = _navSvc.getObjectParents(context, repositoryId, objectId, null, false, IncludeRelationships.NONE, 
+        List<ObjectParentData> opd = _navSvc.getObjectParents(context, repositoryId, objectId, null, false, IncludeRelationships.NONE,
             null, false, null, null);
 
         return opd!= null && opd.size()>0;