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
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>>
>

Reply via email to