[Neo] RFC: Potentially breaking changes in the upcoming 1.0 release

Peter Neubauer peter.neubauer at neotechnology.com
Wed Jan 6 22:26:33 CET 2010

Hi there,
from an OSGi perspective, everything between bundles is handled on
package level. From that perspective, separation of api and impl (and
others) is better separated via org.neo4j.api and org.neo4j.impl etc.
Otherwise, e.g. the org.neo4j.* would be exported from the bundle
containing the api, and any other bundle exporting e.g. some
implementation would be hard to separate from that since it exports
"child" package names to the first one. So, in the OSGi world of
things this is handled by parallel naming schemes like *.api and
*.impl.simple, *.internal etc etc.

Just my 2c, WDYT Andreas Kolleger?


/peter neubauer

COO and Sales, Neo Technology

GTalk:      neubauer.peter
Skype       peter.neubauer
Phone       +46 704 106975
LinkedIn   http://www.linkedin.com/in/neubauer
Twitter      http://twitter.com/peterneubauer

http://www.neo4j.org                - Relationships count.
http://gremlin.tinkerpop.com    - PageRank in 2 lines of code.
http://www.linkedprocess.org   - Computing at LinkedData scale.

On Wed, Jan 6, 2010 at 9:55 PM, Emil Eifrem <emil at neotechnology.com> wrote:
> On Wed, Jan 6, 2010 at 21:48, Craig Taverner <craig at amanzi.com> wrote:
>>  1. Will a restructuring like this cause problems for your projects?
>> Yes, but minor. Should be a simple search and replace to upgrade.
> And if you need backwards compatibility then you can just go through
> the 'retro' component.
>> 2. Do you think this change will result in a positive overall effect for
>> Neo4j?
>> Perhaps. You're pushing for more use of the terms 'graph' and 'graph
>> database', and I can see the marketing value in that.
> That's not the biggest deal although I like that. The biggest deal is
> that it's a consistent naming scheme with -- hopefully -- proper api /
> impl separation.
>> 3. Do these positive effects outweigh any potential problems the change
>> causes?
>> Hard to say. Can swing either way.
>> Reading the wiki page, I noticed a question regarding the rdf package names,
>> and a suggestion to add .api and .impl packages. I can answer this with my
>> opinion, which I doubt you will agree with, but I'll add it here so at least
>> it is said.
>> If you had the freedom to make the change, I think that the API packages
>> should have simple package names without the .api extension, and
>> implementations should live in the impl packages. I think this goes even for
>> the core api, which would be at org.neo4j.graphdb with the default
>> implementations at org.neo4j.graphdb.impl (alternatively
>> org.neo4j.graphdb.internal, since you explicitly state it is not of interest
>> to users). If you had such a scheme, the location of implementations is much
>> more flexible. You do not need to make the decision about the RDF package
>> names now, and when you do split them, they still conform to the global
>> naming strategy.
> I'd love to get some input from the OSGi experienced crowd on this.
> Cheers,
> --
> Emil Eifrém, CEO [emil at neotechnology.com]
> Neo Technology, www.neotechnology.com
> Cell: +46 733 462 271 | US: 206 403 8808
> http://blogs.neotechnology.com/emil
> http://twitter.com/emileifrem
> _______________________________________________
> Neo mailing list
> User at lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user

More information about the User mailing list