Details
Assignee
Davide D'AltoDavide D'AltoReporter
Markus GritschMarkus GritschParticipants
Davide D'AltoMarkus GritschComponents
Priority
Major
Details
Details
Assignee
Davide D'Alto
Davide D'AltoReporter
Markus Gritsch
Markus GritschParticipants
Davide D'Alto
Markus Gritsch
Components
Priority
Created October 19, 2016 at 8:08 AM
Updated December 22, 2017 at 10:25 AM
The current implementation requires the embedded datastore implementation even a remote datastore strategy is used by an application. In the case of Neo4j both the neo4j and neo4j-java-driver are required. The neo4j dependency introduces a lot of further dependencies because it provides the entire stack of functionality of what is provided by an external neo4j installation.
What I`m trying to say is to customise the build strategy. Our application runs within a OSGi runtime container, which resolves dependencies of a component in this case hibernate-ogm-neo4j to outside dependencies in a strict manner. If the dependencies are not fulfilled the hibernate-ogm-neo4j and (neo4j) bundles does not get resolved.
Remote - Bolt
hibernate-ogm-neo4j --> neo4j-java-driver + replace neo4j with neo4j-graphdb-api
Remote - Http
hibernate-ogm-neo4j --> resteasy + replace neo4j with neo4j-graphdb-api
Embedded
hibernate-ogm-neo4j --> neo4j
Maybe this can be resolved by adapting the maven profiles in the hibernate-ogm-neo4j - pom file. I haven`t looked at the strategy the determination process works in order to select the defined datastore provider, but maybe maven supports an option to declare an entry point in order to respect an environment parameter of the developer providing a separate compilation output for each the supported profiles. This principle could be applied to other datastores as well which supports different transport protocols.
Thanks!