Guys,
There has been a refactoring of all the dependency injection by Mattias and Rickard very recently. This unifies the kernel modules and other extensions and as I see it opens the way to do something like DI friendly from the outside even for index providers. Before doing anything, check out current master...
Rickard, git any details?
Send from a device with crappy keyboard and autocorrection.
/peter
Cheers,
/peter neubauer
G: neubauer.peter
S: peter.neubauer
P: +46 704 106975
L: http://www.linkedin.com/in/neubauer
T: @peterneubauer
Neo4j 1.6 released - dzone.com/6S4K
The Neo4j Heroku Challenge - http://neo4j-challenge.herokuapp.com/
Cheers,
/peter neubauer
G: neubauer.peter
S: peter.neubauer
P: +46 704 106975
L: http://www.linkedin.com/in/neubauer
T: @peterneubauer
Neo4j 1.6 released - dzone.com/6S4K
The Neo4j Heroku Challenge - http://neo4j-challenge.herokuapp.com/
Cheers,
/peter neubauer
G: neubauer.peter
S: peter.neubauer
P: +46 704 106975
L: http://www.linkedin.com/in/neubauer
T: @peterneubauer
Neo4j 1.6 released - dzone.com/6S4K
The Neo4j Heroku Challenge - http://neo4j-challenge.herokuapp.com/
Cheers,
/peter neubauer
G: neubauer.peter
S: peter.neubauer
P: +46 704 106975
L: http://www.linkedin.com/in/neubauer
T: @peterneubauer
Neo4j 1.6 released - dzone.com/6S4K
The Neo4j Heroku Challenge - http://neo4j-challenge.herokuapp.com/
Man,
That is fantastic news! I think the rest of the team will be very happy to review a pull request with some of the superbundle tests (especially bare bones and Springs Data Neo4j) added.
I promise a T-Shirt.
Send from a device with crappy keyboard and autocorrection.
/peter
I was responsible for the code refactoring that now allows for
dependency injection. I'm now looking at the stuff you did, and will
clean that up and extend with a factory+builder pattern, with a
fallback on being able to do "new EmbeddedGraphDatabase" for legacy
purposes.
A key goal is definitely to be able to specify clearly what the SPI
is, and the refactoring was one step in that direction. Merging in
your stuff, with an additional builder step, will finish that, I hope.
/Rickard
Agree. I did something similar to this already in my Reloaded experiment:
https://github.com/rickardoberg/neo4j-reloaded/blob/master/src/test/java/org/neo4j/graph/ImdbTest.java
So a fluent type builder pattern, with additional support for
supplying SPI level services, is what I'm looking at doing.
> "new EmbeddedGraphDatabase" was not a good approach (especially since it
> immediately calls run() ), but I agree about supporting it for backward
> compatibility.
Yes and yes.
/Rickard
If only one JAR needs the service (e.g. kettle-core), a quick hack is to put Fragment-Host on the JARs providing the service (e.g. kettle-engine and kettle-db).
I haven't tried this on neo4j, but I think it might work for "supporting" OSGi quickly in neo4j 1.6 (by fragment-hosting neo4j-lucene-index to neo4j-kernel).
Hendy
Hendy,
Let's wait for Rickards additional refactoring coming through, and then set up the different scenarios in the neo4j-osgi repo. Maybe you could start with this already if you want?
Send from a device with crappy keyboard and autocorrection.
/peter