Hi Florent,

Well, I actually just completed what was unfinished before. Some interfaces were Serializable, some weren't.

The interfaces don't have to be Serializable, but the implementations, that we are shipping have to be in order to support the HTTP session scenario.

In other words, I don't see a strong reason to keep the interfaces Serializable. We could change that.


On the other hand, how do you make sure that a statefull implementation behaves exactly like a the default stateless implementations? An application that uses the OpenCMIS interface should not have to care which implementation it is using underneath. And, if the statefull implementation behaves like the stateless implementation, why is the local binding not sufficient? Are you hitting an issue with the local binding ?

- Florian


On 25/11/2010 15:12, Florent Guillaume wrote:
I'm still having a hard time coming to terms with some of the aspects
of the refactored code.

I don't see why there's a link between a high-level interface like
CmisObject and the fact that it has to be Serializable.
Session/CmisObject/etc. are deemed "client" interfaces but they are
really only "high-level" interfaces, the API as opposed to the SPI.
The fact that the default implementation uses a stateless
client/server model (which allows for a Serializable implementation)
doesn't mean that all implementations have to be like that.

In my local client bindings my implementations of these interfaces are
tied to a connection-like object which is not Serializable. And nobody
will try to put them in a HTTP session, it's perfectly all right for
them.

So I'd like to remove the Serializable interface from Session,
CmisObject&  co and put it on SessionImpl, AbstractCmisObject, etc.

Florent


On Mon, Nov 22, 2010 at 3:44 PM, Florian Müller
<florian.muel...@alfresco.com>  wrote:
The requirement that Session objects and objects attached it should be
Serializable is not new. It has been there right from the beginning of
OpenCMIS but wasn't implemented properly.

We want to make sure that you can put a Session object into a HttpSession.
That allows Servlet engines to swap out HttpSessions to disk or transfer
sessions to other cluster nodes.


- Florian


On 22/11/2010 13:18, Florent Guillaume wrote:

Another question:

Why the new requirement that Session, CmisObject&    co be Serializable?
In my local bindings, sessions and objects are created from
non-Serializable objects from the underlying repository API, and I
cannot easily make them truly Serializable. I have underlying
connection-like objects that come from a transactional context which
are definitely not Serializable.
What do you think?

Florent

On Wed, Nov 17, 2010 at 11:01 AM, Florian Müller
<florian.muel...@alfresco.com>    wrote:

Hi all,

Merge is done. Please test and provide feedback.


Thanks,

Florian


On 15/11/2010 13:50, Florian Müller wrote:

Hi all,

If nobody objects, I will merge the client API refactoring branch into
trunk this Wednesday.
If there are any reasons not to merge, please let me know as soon as
possible!


Cheers,

Florian











Reply via email to