This issue can't be edited

Because it belongs to an archived project. Jira admins can restore projects from the archive.

Improve dependency strategy for embedded datastores

Description

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!

Environment

None

Activity

Davide D'AltoNovember 8, 2016 at 11:34 AM

I think we are going to split the module in 3 separates artifacts

Details

Assignee

Reporter

Participants

Davide D'Alto
Markus Gritsch

Components

Priority

Created October 19, 2016 at 8:08 AM
Updated December 22, 2017 at 10:25 AM