Great. So what technically will the code that is contributed to Shindig do? How does it talk to the neo4j backend?
On Thu, Jul 18, 2013 at 9:25 AM, René Peinl <rene.pe...@hof-university.de> wrote: > Dear Ryan, > fair question. The main contribution is to allow usage of neo4j as an > alternative database backend which improves performance significantly in > some areas compared to ORM and MySQL (see > http://www.edbt.org/Proceedings/2013-Genova/papers/workshops/a29-holzschuher > .pdf). > In addition to that, we have also implemented some of the missing features > from Open Social 2.0 like adding friends to the friend network and some > additional features not mentioned in the Open Social specification, but > state-of-the-art in social networks like friend and group recommendations > based on friends in common and groups of friends. > The limitation is, that these do only work or are only tested with neo4j > backend. > Regards > René > > -----Ursprüngliche Nachricht----- > Von: Ryan Baxter [mailto:rbaxte...@apache.org] > Gesendet: Mittwoch, 17. Juli 2013 02:32 > An: dev@shindig.apache.org > Cc: Ate Douma; Peter Neubauer; Florian Holzschuher > Betreff: Re: Review Request: Alternative database backend based on graph > database neo4j > > The split proposal sounds like a good approach, but what exactly would be > contributed to Shindig? > > On Tue, Jul 16, 2013 at 9:46 AM, René Peinl <rene.pe...@hof-university.de> > wrote: >> Dear Ate, dear Shindig developers, >> it's been some time since this discussion because we were a bit >> frustrated and the project on our side was frozen for some time. >> Fortunately, I came up with an idea of how to circumvent this problem >> and this time wanted to do the legal check BEFORE we start the coding. >> >> The current code has a direct compilation dependency on either neo4j >> directly or at least their REST/JSON wrapper, which is also GPLv3 > licensed. >> That seems to be the problem. >> We therefore propose to split our code into two parts. One part should >> become part of the Apache Shindig project and will be licensed APLv2. >> The other part will directly use neo4j and therefore be licensed under >> GPLv3 and published on sourceforge or somewhere. Between those two >> parts there will be only network communication, no compilation dependency. >> >> Could somebody from the core team please confirm, that >> a) this new proposal will have no licensing problem (my German lawyer, >> who is specialized in OSS licensing confirmed that, but the ASF may >> still see it >> differently) >> b) the community is still interested in the neo4j backend as an option >> for Shindig >> >> Otherwise, we would not invest any more time in this issue. >> Regards >> René >> >> -----Ursprüngliche Nachricht----- >> Von: Ate Douma [mailto:a...@douma.nu] >> Gesendet: Mittwoch, 27. März 2013 15:22 >> An: dev@shindig.apache.org >> Cc: Peter Neubauer; René Peinl; Florian Holzschuher >> Betreff: Re: Review Request: Alternative database backend based on >> graph database neo4j >> >> Sorry about top posting (and dropping legal-discuss@) but as we didn't >> get any feedback yet on the below question from legal-discuss@, I've >> dived into it myself a bit further. >> >> I already came to the conclusion (and discussed this internally with >> another ASF >> member) that the current proposed contribution which directly uses >> Neo4J >> GPL3 licensed APIs cannot be allowed, as that (source) dependency will >> enforce the >> GPL3 license upon this contribution as a whole, optional or not. >> >> The possible 'workaround' of using a 3rd party library like >> spring-data-neo4j >> (only) which is ALv2 licensed I am also very doubtful about, because >> that library itself has direct usage and dependency on the Neo4J APIs, >> so it really is only 'hiding' the same problem. >> If this is a correct assumption, and I created an specific JIRA >> question [1] for legal-discuss@ for it, then the spring data >> 'workaround' is also tainted and not to be allowed either. >> >> I've also brought this forward to someone at Apache Camel which intend >> to (but hasn't yet) release a Camel Neo4J component, and it looks like >> they will decide also that Neo4J cannot be supported after all, at the > ASF. >> >> Pending the resolution of [1], it now seems doubtful to me Apache >> Shindig can accept the neo4j support contribution. >> If this becomes the case, I see two possible solutions, in preferred >> order (besides dropping it): >> >> a) NeoTechnology provides an additional (probably API only) library of >> its own under an ALv2 compatible license, which can be used to create >> integrations like these. This would be the most practical and >> beneficial solution IMO, similar to for instance the MongoDB (AGPL3 >> licensed) mongodb-java-driver library which is >> ALv2 licensed, see [2]. >> >> b) Provide the Shindig Neo4J support in a separate project outside the >> ASF, maybe at Apache Extras [3]. Downside of this of course is that >> alignment with Apache Shindig itself will be more difficult and likely >> trailing the development @Shindig. >> >> I'll keep the list noted on any progress or conclusion of [1]. >> >> Regards, Ate >> >> [1] https://issues.apache.org/jira/browse/LEGAL-162 >> [2] https://github.com/mongodb/mongo-java-driver >> [3] http://community.apache.org/apache-extras/faq.html >> >> On 03/11/2013 11:09 AM, Ate Douma wrote: >>> Now replying again, but to the proper mail address, see inline below. >>> >>> Cheers, Ate >>> >>> On 03/11/2013 11:05 AM, Ate Douma wrote: >>>> Another forward of an incorrectly addressed email for legal-discuss@ >>>> >>>> On 03/11/2013 09:41 AM, Peter Neubauer wrote: >>>>> Also, >>>>> keep in mind that only the enterprise components of Neo4j are AGPL, >>>>> the community edition, which I believe is the most interesting part >>>>> here, is GPL. >>> >>> That is useful information indeed. Thanks for correcting me in this! >>> >>> So for this case at hand I assume we only need to consider the >>> possibilities to use the GPL3 licensed community edition of neo4j. >>> >>> The question then is if at the ASF we may reference and explicitly >>> use >>> GPL3 licensed APIs in our AL2.0 licensed code, in an optional module, >>> which also requires these GPL3 libraries at runtime. >>> Even if we don't distribute those 3rd party GPL3 libraries ourselves. >>> >>>>> >>>>> /peter >>>>> >>>>> >>>>> Cheers, >>>>> >>>>> /peter neubauer >>>>> >>>>> G: neubauer.peter >>>>> S: peter.neubauer >>>>> P: +46 704 106975 >>>>> L: http://www.linkedin.com/in/neubauer >>>>> T: @peterneubauer >>>>> >>>>> Graph database introduction book for the uninitiated - >>>>> http://graphdatabases.com Neo4j questions? Please use SO - >>>>> http://stackoverflow.com/search?q=neo4j >>>>> >>>>> >>>>> On Mon, Mar 11, 2013 at 9:22 AM, René Peinl >> <rene.pe...@hof-university.de>wrote: >>>>> >>>>>> Dear Apache legal advisors, dear Shindig developers, as you can >>>>>> see from the discussion below, we have a possible license conflict >>>>>> between AGPL and APL v2. >>>>>> We want to integrate code that uses neo4j, a graph database which >>>>>> is licensed under AGPL, into Shindig. From my perspective it is >>>>>> not necessary to include any neo4j binaries nor code, but I'm not >>>>>> sure how this affects compilability. Maybe we can only use the >>>>>> REST API then and don't offer to run neo4j in embedded mode. >>>>>> I'm not a lawyer nor a licensing specialist, so please advise on >>>>>> how to proceed. Maybe we can find a workaround that ensures we are >>>>>> conforming to the licensing terms and still get the new >>>>>> functionality >> into Shindig. >>>>>> One suggestion that seems a good one was to check how Apache Camel >>>>>> deals with this issue. >>>>>> Regards and many thanks for clarification in advance René >>>>>> >>>>>> -----Ursprüngliche Nachricht----- >>>>>> Von: Ate Douma [mailto:a...@douma.nu] >>>>>> Gesendet: Montag, 11. März 2013 08:49 >>>>>> An: dev@shindig.apache.org >>>>>> Cc: Peter Neubauer >>>>>> Betreff: Re: Review Request: Alternative database backend based on >>>>>> graph database neo4j >>>>>> >>>>>> On 03/10/2013 11:59 PM, Matt Franklin wrote: >>>>>>> On Sunday, March 10, 2013, wrote: >>>>>>> >>>>>>>> Thanks for the insight Ate. >>>>>>>> >>>>>>>> Rene, I think we should take Ate's suggestion and send an email >>>>>>>> to legal-discussion@ (please CC shindig-dev@). If they say it >>>>>>>> is OK than we continue the discussion about integrating the patch. >>>>>>> >>>>>> >>>>>> Although the answer from Peter Neubauer / neotechnology is >>>>>> accommodating on this matter and seems to indicate *they* might >>>>>> think this is not a problem, reading the AGPL [1] license tells me >> something differently. >>>>>> I definitely would like this contribution to be acceptable, but we >>>>>> must be very sure we're not opening a can of worms here. >>>>>> >>>>>>> >>>>>>> I agree that legal should be consulted if we intent to ship a war >>>>>>> or other archive with any neo4j (or other agpl) licensed binaries >> included. >>>>>> I don't think we can do that anyway. AGPL is a variant of GPL, and >>>>>> we're not allowed, by ASF policy, to distribute any GPL artifact. >>>>>> >>>>>>> >>>>>>> As a first mitigation step, why don't we make this a separate >>>>>>> maven module and only ship the source and non-inclusive jar? It >>>>>>> should not be a problem to ship a jar and source that only >>>>>>> references the neo4j libs as runtime dependencies. >>>>>> That might be a possibility to investigate. As Chris noted in >>>>>> another email, it might be doable as Camel seemingly also has a >>>>>> neo4j component. >>>>>> >>>>>> But also note: it will also depend on the type of reference such >>>>>> an optional module uses. If it requires explicit Java imports and >>>>>> direct usage of the neo4j APIs, this might qualifies as what is >>>>>> called in the AGPL 'Corresponding Source'. >>>>>> Especially as neo4j and Shindig provide and expect 'Remote Network >>>>>> Interaction' >>>>>> for which the AGPL is especially created to enforce its license to >>>>>> downstream users. IMO this can lead to a conflict with the AS2.0 >>>>>> license, to possibly not even be allowed distribution under that >>>>>> license from within the ASF, or not even its sources be checked >>>>>> into svn... >>>>>> >>>>>> But IANAL so indeed this should be run through legal-discuss@ first. >>>>>> >>>>>> [1] http://www.gnu.org/licenses/agpl-3.0.html >>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Mar 9, 2013, at 7:56 AM, René Peinl >>>>>>>> <rene.pe...@hof-university.de> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Dear Ate, >>>>>>>>> thanks for your comments. I already thought about this and >>>>>>>>> asked the >>>>>>>> guys from neo technologies. Here is the answer from Peter Neubauer. >>>>>>>>> >>>>>>>>> in principle (IANAL) it is ok to have ALv2 licensed code >>>>>>>>> binding to GPL >>>>>>>> code. In runtime, the user will not be shielded from the GPL >>>>>>>> core, which means the runtime will have GPL characteristics when >>>>>>>> you plug in >>>>>> Neo4j. >>>>>>>> That is exactly the intent, and should be ok. The bindings-code >>>>>>>> is development-time Apache license, regarding contributions and >>>>>>>> copyright etc, so I think this should be ok. >>>>>>>>> >>>>>>>>> I'm not quite sure if that answers your question. I can further >>>>>>>> investigate if necessary. >>>>>>>>> Regards >>>>>>>>> René >>>>>>>>> >>>>>>>>> -----Ursprüngliche Nachricht----- >>>>>>>>> Von: Ate Douma [mailto:a...@douma.nu] >>>>>>>>> Gesendet: Freitag, 8. März 2013 14:18 >>>>>>>>> An: dev@shindig.apache.org >>>>>>>>> Betreff: Re: Review Request: Alternative database backend based >>>>>>>>> on graph >>>>>>>> database neo4j >>>>>>>>> >>>>>>>>> Just from the peanut gallery, but neo4j is AGPL licensed. >>>>>>>>> Normally any database backend access which is abstracted away >>>>>>>>> behind >>>>>>>> 'plain' >>>>>>>>> JDBC interfaces are allright to use, commercial versions or >>>>>>>>> otherwise >>>>>>>> licensed, because the end-user would have the option to choose >>>>>>>> whatever >>>>>>>> (compatible) database they want to use. >>>>>>>>> >>>>>>>>> However with neo4j this seems different. Even with only >>>>>>>>> optional support >>>>>>>> for neo4j, the neo4j integration might require explicit neo4j >>>>>>>> (Java) APIs and dependencies? I haven't reviewed the code for >>>>>>>> this, but if it imports neo4j APIs then their AGPL license can >>>>>>>> be too invasive and then possibly not acceptable for uses within >>>>>>>> our >>>>>>>> AL2.0 licensed >>>>>> codebase. >>>>>>>>> Or even if that could be allowed, I would make sure to check >>>>>>>>> and ask >>>>>>>> (legal-discuss@ etc.) if it would be acceptable from ASF policy POV. >>>>>>>>> >>>>>>>>> Regards, Ate >>>>>>>>> >>>>>>>>> On 03/07/2013 07:46 PM, Henry Saputra wrote: >>>>>>>>>> This is good news. >>>>>>>>>> >>>>>>>>>> One immediate comment is about the package name. >>>>>>>>>> Would it be possible to put it under org.apache.shindig rather >>>>>>>>>> than the de.hofuniversity? >>>>>>>>>> >>>>>>>>>> This would make the contributions uniform like from other >>>>>>>>>> companies and organizations. >>>>>>>>>> >>>>>>>>>> - Henry >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> 2013/3/6 René Peinl <rene.pe...@hof-university.de> >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> ----------------------------------------------------------- >>>>>>>>>>> This is an automatically generated e-mail. To reply, visit: >>>>>>>>>>> https://reviews.apache.org/r/9773/ >>>>>>>>>>> ----------------------------------------------------------- >>>>>>>>>>> >>>>>>>>>>> Review request for shindig. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Description >>>>>>>>>>> ------- >>>>>>>>>>> >>>>>>>>>>> Review for Shindig-1911 >>>>>>>>>>> Alternative database backend based on graph database neo4j >>>>>>>>>>> Any comments welcome. We are committed to further improve this. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> This addresses bug Shindig-1911. >>>>>>>>>>> https://issues.apache.org/jira/browse/Shindig-1911 >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Diffs >>>>>>>>>>> ----- >>>>>>>>>>> >>>>>>>>>>> /trunk/java/neo4j-backend/pom.xml PRE-CREATION >>>>>>>>>>> >>>>>>>>>>> /trunk/java/neo4j-backend/src/main/java/de/hofuniversity/iisy >>>>>>>>>>> s >>>>>>>>>>> /gra >>>>>>>>>>> phb >>>>>>>>>>> ackend/Constants.java >>>>>>>>>>> PRE-CREATION >>>>>>>>>>> >>>>>>>>>>> /trunk/java/neo4j-backend/src/main/java/de/hofuniversity/iisy >>>>>>>>>>> s >>>>>>>>>>> /gra >>>>>>>>>>> phb >>>>>>>>>>> ackend/GraphAPIModule.java >>>>>>>>>>> PRE-CREATION >>>>>>>>>>> >>>>>>>>>>> /trunk/java/neo4j-backend/src/main/java/de/hofuniversity/iisy >>>>>>>>>>> s >>>>>>>>>>> /gra >>>>>>>>>>> phb >>>>>>>>>>> ackend/GraphConfig.java >>>>>>>>>>> PRE-CREATION >>>>>>>>>>> >>>>>>>>>>> /trunk/java/neo4j-backend/src/main/java/de/hofuniversity/iisy >>>>>>>>>>> s >>>>>>>>>>> /gra >>>>>>>>>>> phb >>>>>>>>>>> ackend/GuiceModule.java >>>>>>>>>>> PRE-CREATION >>>>>>>>>>> >>>>>>>>>>> /trunk/java/neo4j-backend/src/main/java/de/hofuniversity/iisy >>>>>>>>>>> s >>>>>>>>>>> /gra >>>>>>>>>>> phb >>>>>>>>>>> acke >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>> >>>> >>> >>> >> >> >> >