chemistry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Florian Müller <f...@apache.org>
Subject Re: CmisService interface
Date Tue, 23 Aug 2016 12:22:21 GMT
Hi Michael,

Changing this interface is rather difficult. It is composed of other 
interfaces that are the core interfaces for the client and server 
implementations. Changing the interfaces would break a lot in the 
OpenCMIS code and would break applications currently using these 
interfaces.

What we could do is introducing a new additional low-level interface for 
the Browser binding (and the AtomPub binding), which contains the 
methods in question with a slightly different name and a new return data 
type.

On the client side, you would then have the choice of calling the old or 
the new method. On the server side, the OpenCMIS code could check if the 
new interface is implemented and if so, calls the new instead of the old 
method.

But that's a lot of work. Could you explain your problem with the 
current approach?

I understand that testing with the TCK is restricted - but not really. 
The OpenCMIS server calls getObject after it created the object and 
testing getObject is possible with the TCK. This is only an issue if the 
server returns different data when getObject is called twice for the 
same object.
On the client side, you may save one getObject call after a create call 
- but not reliably.  Servers may not return all data. They are only 
forced to return the cmis:objectId property. Everything else is 
voluntary and beyond the control of the client. To be save, the client 
must call getObject.

 From a generic client of view, I don't see much value in introducing 
this new interface.

- Florian


> Hi,
> 
> Can the CmisService interface be changed to be more in line with the
> browser binding?
> 
> For example, the create methods could return ObjectData instead of 
> String.
> Or, alternatively, they could return an ObjectId and the server
> implementation can choose to return only an id or a full object; 
> similar to
> what was done with PropertyDataWithDefinition.
> 
> In general the service methods could return all the needed information 
> to
> construct the browser binding response.
> 
> This could also help solve the client side issue that the java client
> cannot access the response from services, and thus that they cannot be
> tested (e.g. in the TCK).
> 
> Michael

Mime
View raw message