Hi Francesco, I would suggest different git branches or even a new git repository similar to V2. This way you could delete the whole V4 code in the V3 branch/repository and vice versa. This would also mean to have duplicates for the currently shared code.
Best Regards, Christian -----Original Message----- From: Francesco Chicchiriccò [mailto:[email protected]] Sent: Freitag, 6. Februar 2015 17:19 To: [email protected] Subject: Re: [DISCUSS] Seperating V3 code from the V4 code 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/
