Giter Club home page Giter Club logo

rogm's People

Contributors

dependabot[bot] avatar soulb-oss avatar venanocta avatar

Watchers

 avatar  avatar

rogm's Issues

Tutorials

ROGM is missing any and all Tutorials and Guides that teach new users how to use and implement it.

Advanced Node/Relation Loading

  • reloading for Nodes/Relation => load Node from Database and overwrite all current data of that Node/Relation
  • unloading for Nodes/Relations=> save and remove from buffer

Deploy to Maven Central

Todo

  • update ci system (server architecture changed!)
  • merge dependabot changes
  • integrate upstream bugfix for utils-scanner

Rework EntityProcessor

Goal
The goal is to officially complete what has started a long time ago in several unnoticed feature branches:
To restructure and modularize the Core of the Entity Management System hidden in the PatternStorage class to be able to modify and continue supporting it in the future.

This rework also includes that all of ROGM is compiled, tested and deployed unsing automated tests through Jenkins by utalising Maven, JUnit5 and Docker.

History

History of progress hidden in background changes / feature branches

Modularisation 14195e0

EntityReloading bcfe2c2

primary Stage of Rework 9b66c4f

PackageScanner af11ee6

introduced Jenkins & Docker b5fb4e7

propper test-artifact abe0d45

JUnit5 31c8af6

Tests by Group (system/db-neo4j) 202fc0e

2.0 deployed to master d4c687b

Maven Dependency Scopes

Issue

Maven Management buried the defined scopes of dependencies during dependency-management import

Solution

We will publish binary compatible source code with the next patch version

Decorator Module

Goal
Classes with the @NodeEntity or @RelationshipEntity may follow the Decorator Pattern, the decorated object must be annotated with @Decorated. Decorator-Classes may decorate other Decorator-Classes. All variables defined in Decorator-Classes will get saved in the same database object as the decorated entity.

Code Documentation

ROGM is missing any and all In-Code Documentations that could help Open-Source Contributers develop Database-Modules

Buffer Loading Bug

Incomplete Load-Filter (Load-Query) causes the Database to delete Relations.

IFilter customQuery = INodeFilter with only a select number of possible relations;

Object loadedObject = session.load(customQuery);
=> loads the Object as COMPLETE and stores it in the Buffer

session.save(loadedObject);
=> saves the buffered Object & deletes all outdated/unbuffered Relations since the Object is marked as COMPLETE

Database Diff.:
all Relations related to loadedObject & not explicitly defined in customQuery are deleted!

Module: MongoDB & Language: MQL (MongoDB Query Language)

Module: MongoDB & Language: MQL (MongoDB Query Language)

Maven Modules:

<!-- Language: MQL (MongoDB Query Language) -->
<dependency>
  <groupId>net.runeduniverse.libs.rogm.lang</groupId>
  <artifactId>mql</artifactId>
  <version>2.0.1</version>
</dependency>

<!-- Module: MongoDB -->
<dependency>
  <groupId>net.runeduniverse.libs.rogm.modules</groupId>
  <artifactId>mongodb</artifactId>
  <version>2.0.1</version>
</dependency>

API: Expansion of Database Modules

API: Expansion of Database Modules

Target Release

  • Version: 2.2.X

API Packages

Maven Arttifact Name
rogm-api Core API
rogm-api-graph Graph API
rogm-api-docstore Document Store API
rogm-api-kvstore Key Value Store API
rogm-api-sql Relational Database API

Core Extensions

Maven Arttifact Name
rogm-core-graph Graph Extension
rogm-core-docstore Document Store Extension
rogm-core-kvstore Key Value Store Extension
rogm-core-sql Relational Database Extension

Module: MariaDB & Language: SQL (Structured Query Language : Dialect MariaDB)

Module: MariaDB & Language: SQL (Structured Query Language : Dialect MariaDB)

<!-- Language: SQL (Structured Query Language : Dialect MariaDB) -->
<dependency>
  <groupId>net.runeduniverse.libs.rogm.lang</groupId>
  <artifactId>sql-mariadb</artifactId>
  <version>2.1.1</version>
</dependency>

<!-- Module: MariaDB -->
<dependency>
  <groupId>net.runeduniverse.libs.rogm.modules</groupId>
  <artifactId>mariadb</artifactId>
  <version>2.1.1</version>
</dependency>

no more than 1 relation per node

Problem

ROGM is designed and was in the past (version: 1.1.11) able to link multiple relations to a single node.

At the current time(version: 2.1.2 Latest) ROGM only indexes the first occurrence of a field annotated with @Relationship

Deep Loading

implement cascading loading of Nodes/Relations

Advanced Buffer

Buffer

internally saves the relation pointer to the loaded objects and speeds up repeated querys

Order Objects by:

  • Node/Relation
  • Database ID
  • Object ID (defined with @Id and can be synced with Database ID)
  • Class/Labels(Type)

Node/Relation gets loaded/searched from Users

  • search according to the class and their children (take child before loading base Class from Database)

Node/Relation gets loaded/searched from Database (on loading)

  • search and parse according to the label of the Node

Delete Node/Relation

  • add delete for Nodes and Relations
  • also enforce deletion of relations when saving Relation lists in Nodes

Reloading of Entities

Goal
Include ability to reload entities where the entity's reference must stay the same!
Reloaded entities may define a @PostReload method.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.