Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/graphaware/neo4j-framework
GraphAware Neo4j Framework
https://github.com/graphaware/neo4j-framework
java neo4j neo4j-graphaware-framework
Last synced: 25 days ago
JSON representation
GraphAware Neo4j Framework
- Host: GitHub
- URL: https://github.com/graphaware/neo4j-framework
- Owner: graphaware
- Archived: true
- Created: 2013-07-18T11:04:07.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2021-05-05T19:16:21.000Z (almost 4 years ago)
- Last Synced: 2024-11-14T14:23:52.641Z (3 months ago)
- Topics: java, neo4j, neo4j-graphaware-framework
- Language: Java
- Size: 8.43 MB
- Stars: 245
- Watchers: 49
- Forks: 68
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: changes.txt
Awesome Lists containing this project
- awesome-neo4j - GraphAware Neo4j Framework - GraphAware Framework speeds up development with Neo4j by providing a platform for building useful generic as well as domain-specific functionality, analytical capabilities, (iterative) graph algorithms, etc. (REST API / Other)
README
GraphAware Neo4j Framework - RETIRED
==========================## GraphAware Neo4j Framework Has Been Retired
As of May 2021, this [repository has been retired](https://graphaware.com/framework/2021/05/06/from-graphaware-framework-to-graphaware-hume.html).GraphAware Framework provides a platform for building custom transaction-driven behaviour into Neo4j.
## Community vs Enterprise
This open-source (GPLv3) version of the GraphAware Framework is compatible with Neo4j Community Edition only.
It *will not work* with Neo4j Enterprise Edition, which is a proprietary and commercial software product of Neo4j, Inc.GraphAware offers a *paid* Enterprise version of the GraphAware Framework to licensed users of Neo4j Enterprise Edition.
Please [get in touch](mailto:[email protected]) to receive access.## Versioning
The Framework version number has two parts. The first three numbers indicate compatibility with a Neo4j version. The last number
is the version of the Framework. For example, version 4.0.8.58 is version 58 of the Framework compatible with Neo4j 4.0.8.
**Please note that we will not address issues related to the usage of incompatible versions of the Framework and Neo4j.**## Functionality
On a high level, the Framework is a Neo4j kernel extension that enables the use of GraphAware as well as custom Modules.
These Modules typically extend the core functionality of the database by transparently enriching/modifying/preventing ongoing transactions in real-time.Examples of popular Framework Modules are:
* GraphAware UUID
* GraphAware TimeTree
* GraphAware Neo2Elastic
* GraphAware Schema (Enterprise Only)
* GraphAware Audit (Enterprise Only)
You can also make use the Framework as a software library, taking advantage of its useful features, such as GraphUnit for testing code that talks to Neo4j.## Using the Framework
Deploying the GraphAware Framework (as well as any modules) is a matter of :
* [downloading](#download) the appropriate .jar files
* copying them into the _plugins_ directory in your Neo4j installation
* restarting the serverThe framework and modules are then used via Cypher calls to their procedures, if they provide any.
### Configuration
By default, the Framework reads its configuration from `graphaware.conf` located in the `conf` directory of Neo4j. You
can change the file name by setting `com.graphaware.config.file` to your desired value in `neo4j.conf`.#### Community Configuration
The Framework itself has no more configuration options but its Modules typically do.
#### Enterprise Configuration
You can selectively enable the GraphAware Framework for different databases running within the same Neo4j instance, by
setting `com.graphaware.runtime.enabled` in `graphaware.conf` to either:
- `*` for any database (except for the 'system' database), or
- name of a single database, or
- a comma-separated list of database namesFor example, the configuration of GraphAware Enterprise on Neo4j Enterprise with the UUID module running for all databases
could look like this:
```
com.graphaware.runtime.enabled=*
com.graphaware.module.*.UIDM.1=com.graphaware.module.uuid.UuidBootstrapper
```For two specific databases ('db1' and 'db2'), it would look like this:
```
com.graphaware.runtime.enabled=db1,db2
com.graphaware.module.*.UIDM.1=com.graphaware.module.uuid.UuidBootstrapper
```If you wanted a different configuration of a specific module for each database, you could do
```
com.graphaware.runtime.enabled=db1,db2
com.graphaware.module.db1.UIDM1.1=com.graphaware.module.uuid.UuidBootstrapper
com.graphaware.module.db2.UIDM2.1=com.graphaware.module.uuid.UuidBootstrapper
# ... more config for the UUID modules ...
```
Note that in this case, the UUID module must have a unique ID (UIDM1 vs UIDM2).## Getting GraphAware Framework
### Releases
To use the latest release, download the appropriate version and put it
the _plugins_ directory in your Neo4j server installation and restart the server (server mode), or on the classpath (embedded mode).Releases are synced to Maven Central
repository. When using Maven for dependency management, include one or more dependencies in your pom.xml. To find out
which ones, read further by clicking on one of the sub-modules of this project.### Snapshots
To use the latest development version, just clone this repository and run `mvn clean install`. This will produce {newVersion}.XX-SNAPSHOT jar files (eg. 4.2.6.66-SNAPSHOT). If you need standalone .jar files with all dependencies, look into the `target` folder in the `build` directory.
## Building Own Modules
Java developers that want to build own Modules should use the provided parent Maven module:
```
com.graphaware.neo4j
module-parent
{framework version}
```The easiest way to start is to look at the Friendship Strength Counter Module example, or the GraphAware TimeTree Module.
## License
Copyright (c) 2013-2020 GraphAware
GraphAware Framework is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program.
If not, see .