Ticket #634 (closed Enhancement: fixed)

Opened 6 years ago

Last modified 6 years ago

Core API: expose DB vendor object to plugins

Reported by: jri Owned by: jri
Priority: Major Milestone: Release 4.3
Component: DeepaMehta Standard Distribution Version: 4.2
Keywords: Cc: dgf, Malte
Complexity: 2 Area: Application Framework / API
Module: deepamehta-core

Description

Plugins should be able to utilize vendor specific DB extensions. Thus they need access to the underlying DB object, which is Neo4j's GraphDatabaseService object for the moment.

This is a prerequisite to let the envisioned dm4-geospatial plugin utilize the Neo4j Spatial extension (#633).

Change History

comment:1 Changed 6 years ago by jri

  • Status changed from new to accepted

comment:2 Changed 6 years ago by Jörg Richter

  • Status changed from accepted to closed
  • Resolution set to fixed

Core: expose DB vendor object to plugins (#634).

Core Service API has new method:

Object getDatabaseVendorObject()

Close #634.

comment:3 follow-up: ↓ 4 Changed 6 years ago by jri

  • Status changed from closed to reopened
  • Resolution fixed deleted

Also an DeepaMehtaObject should provide access to the underlying vendor specific storage object.

Required by dm4-geospatial to let Neo4j Spatial index our existing Geo Coordinate topics (as introduced by the dm4-geomaps module).

comment:4 in reply to: ↑ 3 ; follow-ups: ↓ 5 ↓ 8 Changed 6 years ago by jri

  • Status changed from reopened to closed
  • Resolution set to fixed

Replying to jri:

Also an DeepaMehtaObject should provide access to the underlying vendor specific storage object.

Not required after all.

Required by dm4-geospatial to let Neo4j Spatial index our existing Geo Coordinate topics (as introduced by the dm4-geomaps module).

We will do another approach: don't relate the spatial index to the existing Geo Coordinate topics but index pure geometry values and attach a property to it. The property might be the ID of the corresponding domain topic. This way after querying the index the IDs of the domain topics are available immediately and require no further traversal.

comment:5 in reply to: ↑ 4 Changed 6 years ago by jri

Replying to jri:

We will do another approach: don't relate the spatial index to the existing Geo Coordinate topics but index pure geometry values [...]

Meanwhile the dm4-geospatial module goes for this approach

comment:6 Changed 6 years ago by jri

  • Status changed from closed to reopened
  • Resolution fixed deleted

The dm4-storage-neo4j bundle must export more Neo4j packages as required by the dm4-geospatial bundle. At least org.neo4j.graphdb.traversal and org.neo4j.kernel.

comment:7 Changed 6 years ago by Jörg Richter

Storage module: export more Neo4j packages (#634).

These packages are exported:

  • org.neo4j.graphdb.traversal
  • org.neo4j.kernel

The dm4-geospatial module needs to import these packages.

See #634.

comment:8 in reply to: ↑ 4 Changed 6 years ago by jri

Replying to jri:

Replying to jri:

Required by dm4-geospatial to let Neo4j Spatial index our existing Geo Coordinate topics (as introduced by the dm4-geomaps module).

We will do another approach: don't relate the spatial index to the existing Geo Coordinate topics but index pure geometry values [...]

After all we go with the original approach: index our Geo Coordinate topics directly, so that they become an active part of the R-tree build up by Neo4j Spatial. This supports index update and delete operations much better.

Also an DeepaMehtaObject should provide access to the underlying vendor specific storage object.

Not required after all.

So, a DeepaMehtaObject needs access to the underlying Neo4j Node object finally.

comment:9 Changed 6 years ago by Jörg Richter

Storage module: expose Node objects (#634).

DeepaMehtaObject? API:

Object getDatabaseVendorObject();

Returned is the Neo4j Node object that underlies the DeepaMehtaObject?.

Required by the dm4-geospatial module.

IMPORTANT: stop the DM server before rebuilding the dm4-storage-neo4j module.

See #634.

comment:10 Changed 6 years ago by Jörg Richter

Storage module: export more Neo4j packages (#634).

These packages are exported:

  • org.neo4j.graphdb.traversal
  • org.neo4j.kernel

The dm4-geospatial module needs to import these packages.

See #634.

comment:11 Changed 6 years ago by Jörg Richter

Storage module: expose Node objects (#634).

DeepaMehtaObject? API:

Object getDatabaseVendorObject();

Returned is the Neo4j Node object that underlies the DeepaMehtaObject?.

Required by the dm4-geospatial module.

IMPORTANT: stop the DM server before rebuilding the dm4-storage-neo4j module.

See #634.

comment:12 Changed 6 years ago by jri

  • Status changed from reopened to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.