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/