You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@chemistry.apache.org by Florian Müller <fm...@apache.org> on 2012/02/01 18:08:39 UTC

Re: Difference between document version accessed by VersioningService or session.getObject

 Hi Mano,

 I can't tell you what's going wrong here. Probably a caching issue.

 But before I dig deeper, two questions:
 1) Does the CMIS Workbench show the correct property values?
 2) Is there any reason not to use Document.getAllVersions()?


 Cheers,

 Florian


 [1] 
 http://chemistry.apache.org/java/0.6.0/maven/apidocs/org/apache/chemistry/opencmis/client/api/Document.html#getAllVersions%28%29


 Am Mittwoch, den 01.02.2012, 16:37 +0100 schrieb Mano Swerts 
 <m....@aca-it.be>:
> Hi all,
>
> I seem to have a little problem with the display of all versions of a
> particular document to users. I do not know if this is a bug in CMIS, 
> in
> Alfresco or if this is as designed.
>
> I fetch all versions of a particular document using the
> VersioningService object.
> Then I loop over these versions to get convert them to a CMIS 
> Document to
> be able to fetch all properties. In the my custom user interface I 
> noticed
> that the first version did not have any custom properties filled in. 
> Then I
> also noticed that the last version in my listing (which is equal to 
> the
> current working version in the repository and therefore also in my 
> app)
> does not reflect the latest metadata as the current working document 
> does
> in the rest of the application. So it seems that when I list the 
> metadata
> of all versions, that they are 1 off. So this means metadata for 
> version
> 1.0 is not filled in (when it actually is), metadata for version 2.0 
> seems
> to be the metadata for version 1.0, and so forth.
>
> When I look into node browser that comes with Alfresco, I can only 
> see the
> current version. The current version is *3.0* and contains a data 
> property
> called park:documentCreationDate. It is set to the *2nd of February*.
> However when I list versions using the VersioningService, it shows 
> the same
> property with a value of the *1th of February*, also version *3.0*.
>
> I confirmed the above behavior with the following code:
>
> String repositoryId = cmisSession.getRepositoryInfo().getId();
>
> String documentId =
> "workspace://SpacesStore/81b81e8c-ec20-4cdd-b650-552cb9eb5e5b";
>
> List<ObjectData> versions =
> 
> cmisSession.getBinding().getVersioningService().getAllVersions(repositoryId,
> documentId, null, null, null, null);
>
> ObjectFactoryImpl factory = new ObjectFactoryImpl();
>
> factory.initialize(cmisSession, null);
>
>
> Document cmisDocument = (Document) 
> factory.convertObject(versions.get(0),
> cmisSession.createOperationContext());
>
>
> cmisDocument.getPropertyValue("cmis:objectId"); //
> output 
> workspace://SpacesStore/81b81e8c-ec20-4cdd-b650-552cb9eb5e5b;3.0
>
> cmisDocument.getPropertyValue("cmis:versionLabel"); // output 3.0
>
> cmisDocument.getPropertyValue("park:documentCreationDate"); // output
> GregorianCalendar with value of 1th of February 2012
>
>
> Document cmisDocument2 = cmisSession.getObject(new 
> ObjectIdImpl(documentId
> ));
>
> cmisDocument2.getPropertyValue("cmis:versionLabel"); // output 3.0
> cmisDocument2.getPropertyValue("park:documentCreationDate"); // 
> output
> GregorianCalendar with value of 2th of February 2012
>
> So it seems that although they have the same version and should point 
> to
> the same document, it seems that putting the version number in the ID
> directs to an other document. However then the second way to access 
> it
> should return 4.0 and not 3.0. I am very confused of what is going on 
> here,
> because I request the versions for a specific ID and they can have
> different values for the same version.
>
> Thanks.
>
> -- Mano


Re: Difference between document version accessed by VersioningService or session.getObject

Posted by Mano Swerts <m....@aca-it.be>.
Florian,

I wil try to upgrade to 4.0 and test this. I will get back to you with the
results.

Met vriendelijke groeten,
Kind regards,
Bien à vous,

Mano Swerts
Solution Engineer

_______________________________________________________

ACA IT-Solutions

Ilgatlaan 5C                        Clovislaan 82
B-3500 Hasselt                   B-1000 Brussel
Belgium                              Belgium

T: +32 (0)11 26 50 10          E: m.swerts@aca-it.be
F: +32 (0)11 26 50 11          U: www.aca-it.be
M: +32 (0)484 80 81 45
______________________________________________________



On Thu, Feb 2, 2012 at 12:49 PM, Florian Müller <fm...@apache.org> wrote:

>
> Hi Mano,
>
> That looks like a question for Alfresco. OpenCMIS only converts the
> properties; it doesn't verify or change property values.
> That could be a bug in Alfresco 3.x. (Alfresco 4.x probably does it right.)
>
>
> - Florian
>
>
>
>
> Am Donnerstag, den 02.02.2012, 08:46 +0100 schrieb Mano Swerts <
> m.swerts@aca-it.be>:
>
>> Hi Florian,
>>
>> Thanks for the quick reply.
>>
>> It is definitely not a caching issue, stopping and starting the
>> server is does not resolve the issue.
>>
>> I was not aware of the Document.getAllVersions() method. I tried it
>> out, but the result was the same:
>>
>> Document cmisDocument = (Document) cmisSession.getObject(new
>> ObjectIdImpl(documentId));
>>
>> List documentVersions = cmisDocument.getAllVersions();
>>
>>
>> Document cmisDocument2 = documentVersions.get(0);
>>
>> cmisDocument.getId(); //
>> output workspace://**SpacesStore/dd3ddd5f-8205-**426c-9002-9867804d3a25
>>
>> cmisDocument.getVersionLabel()**; // output 3.0
>>
>> ((GregorianCalendar)
>>
>> cmisDocument.getPropertyValue(**"park:documentCreationDate")).**
>> getTime(); //
>> output 2nd of February 2012
>>
>>  cmisDocument2.getId(); // output
>> workspace://SpacesStore/**dd3ddd5f-8205-426c-9002-**9867804d3a25;3.0
>>
>>  cmisDocument2.getVersionLabel(**); // output 3.0
>>
>>  ((GregorianCalendar)
>>
>> cmisDocument2.**getPropertyValue("park:**documentCreationDate")).**
>> getTime(); //
>> output 1th of February 2012
>>
>> In the Workbench I can see the latest version as version 3.0 with the
>> value "2nd of February" as I expected. I can see that there are 3
>> versions for this document, but I cannot see my custom properties for
>> each version. I attached screenshots of the workbench.
>>
>> Met vriendelijke groeten,
>> Kind regards,
>> Bien à vous,
>>
>> Mano Swerts
>> Solution Engineer
>>
>> ______________________________**_________________________
>>
>> ACA IT-Solutions
>>
>> Ilgatlaan 5C                        **Clovislaan
>> 82
>> B-3500 Hasselt                   B-1000 Brussel
>> Belgium                              Belgium
>>
>> T: +32 (0)11 26 50 10          E: m.swerts@aca-it.be [1]
>> F: +32 (0)11 26 50 11          U: www.aca-it.be [2]
>>
>>  M: +32 (0)484 80 81 45
>> ______________________________**________________________
>>
>> On Wed, Feb 1, 2012 at 6:08 PM, Florian Müller  wrote:
>>
>>
>>  Hi Mano,
>>
>>  I can't tell you what's going wrong here. Probably a caching issue.
>>
>>  But before I dig deeper, two questions:
>>  1) Does the CMIS Workbench show the correct property values?
>>  2) Is there any reason not to use Document.getAllVersions()?
>>
>>  Cheers,
>>
>>  Florian
>>
>>  [1]
>>
>> http://chemistry.apache.org/**java/0.6.0/maven/apidocs/org/**
>> apache/chemistry/opencmis/**client/api/Document.html#**
>> getAllVersions%28%29<http://chemistry.apache.org/java/0.6.0/maven/apidocs/org/apache/chemistry/opencmis/client/api/Document.html#getAllVersions%28%29>
>> [4]
>>
>>  Am Mittwoch, den 01.02.2012, 16:37 +0100 schrieb Mano Swerts :
>>
>>
>>  Hi all,
>>
>>  I seem to have a little problem with the display of all versions of
>> a
>>  particular document to users. I do not know if this is a bug in
>> CMIS, in
>>  Alfresco or if this is as designed.
>>
>>  I fetch all versions of a particular document using the
>>  VersioningService object.
>>  Then I loop over these versions to get convert them to a CMIS
>> Document to
>>  be able to fetch all properties. In the my custom user interface I
>> noticed
>>  that the first version did not have any custom properties filled in.
>> Then I
>>  also noticed that the last version in my listing (which is equal to
>> the
>>  current working version in the repository and therefore also in my
>> app)
>>  does not reflect the latest metadata as the current working document
>> does
>>  in the rest of the application. So it seems that when I list the
>> metadata
>>  of all versions, that they are 1 off. So this means metadata for
>> version
>>  1.0 is not filled in (when it actually is), metadata for version 2.0
>> seems
>>  to be the metadata for version 1.0, and so forth.
>>
>>  When I look into node browser that comes with Alfresco, I can only
>> see the
>>  current version. The current version is *3.0* and contains a data
>> property
>>  called park:documentCreationDate. It is set to the *2nd of
>> February*.
>>
>>  However when I list versions using the VersioningService, it shows
>> the same
>>  property with a value of the *1th of February*, also version *3.0*.
>>
>>  I confirmed the above behavior with the following code:
>>
>>  String repositoryId = cmisSession.getRepositoryInfo(**).getId();
>>
>>  String documentId =
>>  "workspace://SpacesStore/**81b81e8c-ec20-4cdd-b650-**552cb9eb5e5b";
>>
>>  List versions =
>>
>>
>>
>>
>> cmisSession.getBinding().**getVersioningService().**
>> getAllVersions(repositoryId,
>>  documentId, null, null, null, null);
>>
>>  ObjectFactoryImpl factory = new ObjectFactoryImpl();
>>
>>  factory.initialize(**cmisSession, null);
>>
>>  Document cmisDocument = (Document)
>> factory.convertObject(**versions.get(0),
>>  cmisSession.**createOperationContext());
>>
>>  cmisDocument.getPropertyValue(**"cmis:objectId"); //
>>  output
>> workspace://SpacesStore/**81b81e8c-ec20-4cdd-b650-**552cb9eb5e5b;3.0
>>
>>  cmisDocument.getPropertyValue(**"cmis:versionLabel"); // output 3.0
>>
>>  cmisDocument.getPropertyValue(**"park:documentCreationDate"); //
>> output
>>  GregorianCalendar with value of 1th of February 2012
>>
>>  Document cmisDocument2 = cmisSession.getObject(new
>> ObjectIdImpl(documentId
>>  ));
>>
>>  cmisDocument2.**getPropertyValue("cmis:**versionLabel"); // output 3.0
>>  cmisDocument2.**getPropertyValue("park:**documentCreationDate"); //
>> output
>>  GregorianCalendar with value of 2th of February 2012
>>
>>  So it seems that although they have the same version and should
>> point to
>>  the same document, it seems that putting the version number in the
>> ID
>>  directs to an other document. However then the second way to access
>> it
>>  should return 4.0 and not 3.0. I am very confused of what is going
>> on here,
>>  because I request the versions for a specific ID and they can have
>>  different values for the same version.
>>
>>  Thanks.
>>
>>  -- Mano
>>
>>
>>
>> Links:
>> ------
>> [1] mailto:m.swerts@aca-it.be
>> [2] http://www.aca-it.be/
>> [3] mailto:fmui@apache.org
>> [4]
>>
>> http://chemistry.apache.org/**java/0.6.0/maven/apidocs/org/**
>> apache/chemistry/opencmis/**client/api/Document.html#**
>> getAllVersions%28%29<http://chemistry.apache.org/java/0.6.0/maven/apidocs/org/apache/chemistry/opencmis/client/api/Document.html#getAllVersions%28%29>
>> [5] mailto:m.swerts@aca-it.be
>>
>
>

Re: Difference between document version accessed by VersioningService or session.getObject

Posted by Florian Müller <fm...@apache.org>.
 Hi Mano,

 That looks like a question for Alfresco. OpenCMIS only converts the 
 properties; it doesn't verify or change property values.
 That could be a bug in Alfresco 3.x. (Alfresco 4.x probably does it 
 right.)


 - Florian




 Am Donnerstag, den 02.02.2012, 08:46 +0100 schrieb Mano Swerts 
 <m....@aca-it.be>:
> Hi Florian,
>
> Thanks for the quick reply.
>
> It is definitely not a caching issue, stopping and starting the
> server is does not resolve the issue.
>
> I was not aware of the Document.getAllVersions() method. I tried it
> out, but the result was the same:
>
> Document cmisDocument = (Document) cmisSession.getObject(new
> ObjectIdImpl(documentId));
>
> List documentVersions = cmisDocument.getAllVersions();
>
> Document cmisDocument2 = documentVersions.get(0);
>
> cmisDocument.getId(); //
> output workspace://SpacesStore/dd3ddd5f-8205-426c-9002-9867804d3a25
>
> cmisDocument.getVersionLabel(); // output 3.0
>
> ((GregorianCalendar)
> 
> cmisDocument.getPropertyValue("park:documentCreationDate")).getTime(); //
> output 2nd of February 2012
>
>  cmisDocument2.getId(); // output
> workspace://SpacesStore/dd3ddd5f-8205-426c-9002-9867804d3a25;3.0
>
>  cmisDocument2.getVersionLabel(); // output 3.0
>
>  ((GregorianCalendar)
> 
> cmisDocument2.getPropertyValue("park:documentCreationDate")).getTime(); //
> output 1th of February 2012
>
> In the Workbench I can see the latest version as version 3.0 with the
> value "2nd of February" as I expected. I can see that there are 3
> versions for this document, but I cannot see my custom properties for
> each version. I attached screenshots of the workbench.
>
> Met vriendelijke groeten, 
> Kind regards, 
> Bien à vous, 
>
> Mano Swerts
> Solution Engineer
>
> _______________________________________________________
>
> ACA IT-Solutions
>
> Ilgatlaan 5C                        Clovislaan
> 82
> B-3500 Hasselt                   B-1000 Brussel
> Belgium                              Belgium
>
> T: +32 (0)11 26 50 10          E: m.swerts@aca-it.be [1]
> F: +32 (0)11 26 50 11          U: www.aca-it.be [2]  
>  M: +32 (0)484 80 81 45
> ______________________________________________________
>
> On Wed, Feb 1, 2012 at 6:08 PM, Florian Müller  wrote:
>
>  Hi Mano,
>
>  I can't tell you what's going wrong here. Probably a caching issue.
>
>  But before I dig deeper, two questions:
>  1) Does the CMIS Workbench show the correct property values?
>  2) Is there any reason not to use Document.getAllVersions()?
>
>  Cheers,
>
>  Florian
>
>  [1]
> 
> http://chemistry.apache.org/java/0.6.0/maven/apidocs/org/apache/chemistry/opencmis/client/api/Document.html#getAllVersions%28%29
> [4]
>
>  Am Mittwoch, den 01.02.2012, 16:37 +0100 schrieb Mano Swerts :
>
>  Hi all,
>
>  I seem to have a little problem with the display of all versions of
> a
>  particular document to users. I do not know if this is a bug in
> CMIS, in
>  Alfresco or if this is as designed.
>
>  I fetch all versions of a particular document using the
>  VersioningService object.
>  Then I loop over these versions to get convert them to a CMIS
> Document to
>  be able to fetch all properties. In the my custom user interface I
> noticed
>  that the first version did not have any custom properties filled in.
> Then I
>  also noticed that the last version in my listing (which is equal to
> the
>  current working version in the repository and therefore also in my
> app)
>  does not reflect the latest metadata as the current working document
> does
>  in the rest of the application. So it seems that when I list the
> metadata
>  of all versions, that they are 1 off. So this means metadata for
> version
>  1.0 is not filled in (when it actually is), metadata for version 2.0
> seems
>  to be the metadata for version 1.0, and so forth.
>
>  When I look into node browser that comes with Alfresco, I can only
> see the
>  current version. The current version is *3.0* and contains a data
> property
>  called park:documentCreationDate. It is set to the *2nd of
> February*.
>
>  However when I list versions using the VersioningService, it shows
> the same
>  property with a value of the *1th of February*, also version *3.0*.
>
>  I confirmed the above behavior with the following code:
>
>  String repositoryId = cmisSession.getRepositoryInfo().getId();
>
>  String documentId =
>  "workspace://SpacesStore/81b81e8c-ec20-4cdd-b650-552cb9eb5e5b";
>
>  List versions =
>
>
> 
> cmisSession.getBinding().getVersioningService().getAllVersions(repositoryId,
>  documentId, null, null, null, null);
>
>  ObjectFactoryImpl factory = new ObjectFactoryImpl();
>
>  factory.initialize(cmisSession, null);
>
>  Document cmisDocument = (Document)
> factory.convertObject(versions.get(0),
>  cmisSession.createOperationContext());
>
>  cmisDocument.getPropertyValue("cmis:objectId"); //
>  output
> workspace://SpacesStore/81b81e8c-ec20-4cdd-b650-552cb9eb5e5b;3.0
>
>  cmisDocument.getPropertyValue("cmis:versionLabel"); // output 3.0
>
>  cmisDocument.getPropertyValue("park:documentCreationDate"); //
> output
>  GregorianCalendar with value of 1th of February 2012
>
>  Document cmisDocument2 = cmisSession.getObject(new
> ObjectIdImpl(documentId
>  ));
>
>  cmisDocument2.getPropertyValue("cmis:versionLabel"); // output 3.0
>  cmisDocument2.getPropertyValue("park:documentCreationDate"); //
> output
>  GregorianCalendar with value of 2th of February 2012
>
>  So it seems that although they have the same version and should
> point to
>  the same document, it seems that putting the version number in the
> ID
>  directs to an other document. However then the second way to access
> it
>  should return 4.0 and not 3.0. I am very confused of what is going
> on here,
>  because I request the versions for a specific ID and they can have
>  different values for the same version.
>
>  Thanks.
>
>  -- Mano
>
>
>
> Links:
> ------
> [1] mailto:m.swerts@aca-it.be
> [2] http://www.aca-it.be/
> [3] mailto:fmui@apache.org
> [4]
> 
> http://chemistry.apache.org/java/0.6.0/maven/apidocs/org/apache/chemistry/opencmis/client/api/Document.html#getAllVersions%28%29
> [5] mailto:m.swerts@aca-it.be


Re: Difference between document version accessed by VersioningService or session.getObject

Posted by Mano Swerts <m....@aca-it.be>.
Hi Florian,

Thanks for the quick reply.

It is definitely not a caching issue, stopping and starting the server is
does not resolve the issue.

I was not aware of the Document.getAllVersions() method. I tried it out,
but the result was the same:

Document cmisDocument = (Document)
cmisSession.getObject(newObjectIdImpl(documentId));

List<Document> documentVersions = cmisDocument.getAllVersions();

Document cmisDocument2 = documentVersions.get(0);


cmisDocument.getId(); //
output workspace://SpacesStore/dd3ddd5f-8205-426c-9002-9867804d3a25

cmisDocument.getVersionLabel(); // output 3.0

((GregorianCalendar) cmisDocument.getPropertyValue(
"park:documentCreationDate")).getTime(); // output 2nd of February 2012


cmisDocument2.getId(); // output
workspace://SpacesStore/dd3ddd5f-8205-426c-9002-9867804d3a25;3.0

cmisDocument2.getVersionLabel(); // output 3.0

((GregorianCalendar) cmisDocument2.getPropertyValue(
"park:documentCreationDate")).getTime(); // output 1th of February 2012

In the Workbench I can see the latest version as version 3.0 with the value
"2nd of February" as I expected. I can see that there are 3 versions for
this document, but I cannot see my custom properties for each version. I
attached screenshots of the workbench.

Met vriendelijke groeten,
Kind regards,
Bien à vous,

Mano Swerts
Solution Engineer

_______________________________________________________

ACA IT-Solutions

Ilgatlaan 5C                        Clovislaan 82
B-3500 Hasselt                   B-1000 Brussel
Belgium                              Belgium

T: +32 (0)11 26 50 10          E: m.swerts@aca-it.be
F: +32 (0)11 26 50 11          U: www.aca-it.be
M: +32 (0)484 80 81 45
______________________________________________________



On Wed, Feb 1, 2012 at 6:08 PM, Florian Müller <fm...@apache.org> wrote:

>
> Hi Mano,
>
> I can't tell you what's going wrong here. Probably a caching issue.
>
> But before I dig deeper, two questions:
> 1) Does the CMIS Workbench show the correct property values?
> 2) Is there any reason not to use Document.getAllVersions()?
>
>
> Cheers,
>
> Florian
>
>
> [1] http://chemistry.apache.org/**java/0.6.0/maven/apidocs/org/**
> apache/chemistry/opencmis/**client/api/Document.html#**
> getAllVersions%28%29<http://chemistry.apache.org/java/0.6.0/maven/apidocs/org/apache/chemistry/opencmis/client/api/Document.html#getAllVersions%28%29>
>
>
> Am Mittwoch, den 01.02.2012, 16:37 +0100 schrieb Mano Swerts <
> m.swerts@aca-it.be>:
>
>> Hi all,
>>
>> I seem to have a little problem with the display of all versions of a
>> particular document to users. I do not know if this is a bug in CMIS, in
>> Alfresco or if this is as designed.
>>
>> I fetch all versions of a particular document using the
>> VersioningService object.
>> Then I loop over these versions to get convert them to a CMIS Document to
>> be able to fetch all properties. In the my custom user interface I noticed
>> that the first version did not have any custom properties filled in. Then
>> I
>> also noticed that the last version in my listing (which is equal to the
>> current working version in the repository and therefore also in my app)
>> does not reflect the latest metadata as the current working document does
>> in the rest of the application. So it seems that when I list the metadata
>> of all versions, that they are 1 off. So this means metadata for version
>> 1.0 is not filled in (when it actually is), metadata for version 2.0 seems
>> to be the metadata for version 1.0, and so forth.
>>
>> When I look into node browser that comes with Alfresco, I can only see the
>> current version. The current version is *3.0* and contains a data property
>> called park:documentCreationDate. It is set to the *2nd of February*.
>>
>> However when I list versions using the VersioningService, it shows the
>> same
>> property with a value of the *1th of February*, also version *3.0*.
>>
>>
>> I confirmed the above behavior with the following code:
>>
>> String repositoryId = cmisSession.getRepositoryInfo(**).getId();
>>
>> String documentId =
>> "workspace://SpacesStore/**81b81e8c-ec20-4cdd-b650-**552cb9eb5e5b";
>>
>> List<ObjectData> versions =
>>
>> cmisSession.getBinding().**getVersioningService().**
>> getAllVersions(repositoryId,
>> documentId, null, null, null, null);
>>
>> ObjectFactoryImpl factory = new ObjectFactoryImpl();
>>
>> factory.initialize(**cmisSession, null);
>>
>>
>> Document cmisDocument = (Document) factory.convertObject(**
>> versions.get(0),
>> cmisSession.**createOperationContext());
>>
>>
>> cmisDocument.getPropertyValue(**"cmis:objectId"); //
>> output workspace://SpacesStore/**81b81e8c-ec20-4cdd-b650-**
>> 552cb9eb5e5b;3.0
>>
>> cmisDocument.getPropertyValue(**"cmis:versionLabel"); // output 3.0
>>
>> cmisDocument.getPropertyValue(**"park:documentCreationDate"); // output
>> GregorianCalendar with value of 1th of February 2012
>>
>>
>> Document cmisDocument2 = cmisSession.getObject(new ObjectIdImpl(documentId
>> ));
>>
>> cmisDocument2.**getPropertyValue("cmis:**versionLabel"); // output 3.0
>> cmisDocument2.**getPropertyValue("park:**documentCreationDate"); //
>> output
>> GregorianCalendar with value of 2th of February 2012
>>
>> So it seems that although they have the same version and should point to
>> the same document, it seems that putting the version number in the ID
>> directs to an other document. However then the second way to access it
>> should return 4.0 and not 3.0. I am very confused of what is going on
>> here,
>> because I request the versions for a specific ID and they can have
>> different values for the same version.
>>
>> Thanks.
>>
>> -- Mano
>>
>
>