On 06/02/2015 17:01, Amend, Christian wrote:
Hi all,

When working with the server part of the Olingo V4 library I came across the 
fact that there is a lot of V3 specific code within the commons module which is 
visible from the server perspective. This is because the client supports the 
consumption of V3 services as well as V4 services. On server side the main goal 
was to only support V4.
This can be quite confusing as to which classes to use and defining which 
feature is working on client side or server side only.

So I would suggest we split the codeline at the current state and have two 
separate codelines. One for V3 functionality only and one for V4 functionality 
only.
The V4 codeline would contain a V4 client, a V4 server and the commons module.
The V3 codeline would only contain a V3 client. No server and commons module 
there for the time being.

This would make it much easier to implement new features in the V4 codeline 
without introducing regressions with the V3 code. Also in my opinion the 
architecture would be easier to understand for developers. Also the code base 
could be significantly reduced by deleting all the forks between specification 
versions.

The ultimate goal would of course be a way to use a V4 and V3 library in the 
same Java Client. As of now a client developer has to specify which service he 
wants to consume anyway via a property. In the future this could be done via 
another ODataV3 object or so.

So WDYT? I hope for a lot of comments as this is a major refactoring!

Hi Christian,
when you say "different codelines", do you mean different maven modules? Could you explain how will you re-organize the current codebase?

I believe there is still a substantial amount of common code shared by V4 and V3 classes (for client and common), so I'd like to understand if you are proposing to replicate such shared code or to keep it anyway in a single place.

Also I would volunteer to perform the refactoring if there are no objections.

Oh, great :-)
Regards.

--
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Involved at The Apache Software Foundation:
member, Syncope PMC chair, Cocoon PMC, Olingo PMC
http://people.apache.org/~ilgrosso/


Reply via email to