This is an example application using Spring Data Neo4j and connecting to a Neo4j Aura free tier database. You can recreate this project using the following steps:
-
Create a Neo4j Aura free instance using dev.neo4j.com/aura.
Creating an instance will require creating a user account with Neo4j, but there are no costs for either the account or to create a free tier database instance. Please record the password you create with your instance. It is not shown to you again and will be needed in order to connect the application to the database.
-
Once the database instance is created, load the data in the database.
From the main page in Neo4j Aura, there should be a blue button next to the instance. Click this to open Neo4j Browser. At the top of Neo4j Browser window, there is a text input. Copy/paste each statement of the linked script into the text input and click the play button on the right.
-
Once data is loaded, clone this project and open in your preferred IDE.
-
Open this project’s application.properties file and update with your database’s credentials.
The first 3 lines in the application.properties are for URI, username, and password. From the Aura console (not Neo4j Browser window), there should be details about your instance, including a line for Connection URI
. The username is defaulted to neo4j
, and the password was shown to you when you created the instance.
Data is maintained and pulled from a Github repository. It contains all published Java versions and compares the changes between any pair of versions in a diff. Each diff contains the lists of individual changes (packages, methods, etc) between each version.
An example of the data model is shown below.
For this project, we are concentrating on the JavaVersion
, VersionDiff
, and first-level delta entities (module and package).
Code in the following repositories show varying levels of entities mapped and returned:
-
Diff level only (no deltas): pouring-coffee-into-matrix
-
All delta levels (method/field): sdn-jdk-versions
PDF versions of accompanying presentations are published to SpeakerDeck.