Thanks Andreas for the input,

I guess if Stuart McCulloch is doing it in PaxConstruct, we can stop
arguing :) So, no problems from the OSGi side for root-package-APIs :)

Cheers,

/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 11:12 PM, Andreas Kollegger
<akolleg...@tembopublic.org> wrote:
> Honestly, I've handled package naming both ways and have yet to settle
> on a preferred scheme. I like the explicitness of a *.api making it
> obvious where to find the public interface for bundle services. But,
> if a bundle is more of a library, then I expect the top-level package
> to have what I want. Also, when I don't see a *.api, I assume the
> top-level has the public interfaces for services.
>
> So, for services: *.api and !*.impl !*.internal
> For libraries: !*.internal
>
> But, I haven't got strong feelings about it. Just export !*.internal
> and OSGi is happy.
>
> -Andreas
>
> ps. For reference, the excellent pax-construct example code uses the
> top-level package for the public interfaces and *.internal for the
> implementation classes, making it a pseudo-standard in my mind.
>
> On Jan 6, 2010, at 4:26 PM, Peter Neubauer wrote:
>
>> 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?
>>
>> Cheers,
>>
>> /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 <e...@neotechnology.com> wrote:
>>> On Wed, Jan 6, 2010 at 21:48, Craig Taverner <cr...@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 [e...@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@lists.neo4j.org
>>> https://lists.neo4j.org/mailman/listinfo/user
>>>
>> _______________________________________________
>> Neo mailing list
>> User@lists.neo4j.org
>> https://lists.neo4j.org/mailman/listinfo/user
>
> _______________________________________________
> Neo mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>
_______________________________________________
Neo mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to