Skip to content

Commit 5df0533

Browse files
committed
Support Neo4j v5
1 parent bd0fa60 commit 5df0533

10 files changed

+276
-50
lines changed

JQAssistantGraphDatabaseCompatibilityIssues.md

Lines changed: 161 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// Count nodes and relationships
2+
3+
MATCH (n)-[r]-(m)
4+
RETURN COUNT(DISTINCT n) AS nodeCount
5+
,COUNT(DISTINCT r) AS relationshipCount

scripts/analysis/analyze.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ JQASSISTANT_CLI_VERSION=${JQASSISTANT_CLI_VERSION:-"1.12.2"} # Version 1.12.2 is
3030
NEO4J_HTTP_PORT=${NEO4J_HTTP_PORT:-"7474"}
3131
NEO4J_HTTPS_PORT=${NEO4J_HTTPS_PORT:-"7473"}
3232
NEO4J_BOLT_PORT=${NEO4J_BOLT_PORT:-"7687"}
33+
NEO4J_HTTP_TRANSACTION_ENDPOINT=${NEO4J_HTTP_TRANSACTION_ENDPOINT:-"db/data/transaction/commit"} # Neo4j v4: "db/data/transaction/commit", Neo4j v5: "db/neo4j/tx/commit"
34+
35+
# Overrideable environment variables for the Neo4j APOC plugin (optional, defaults also defined in sub scripts where needed)
36+
# Override them if you want to use Neo4j v5 instead of v4.4
37+
NEO4J_APOC_PLUGIN_EDITION=${NEO4J_APOC_PLUGIN_EDITION:-"all"} #Awesome Procedures for Neo4j Plugin Edition (Neo4j v4.4.x "all", Neo4j >= v5 "core")
38+
NEO4J_APOC_PLUGIN_GITHUB=${NEO4J_APOC_PLUGIN_GITHUB:-"neo4j-contrib/neo4j-apoc-procedures"} #Awesome Procedures for Neo4j Plugin GitHub User/Repository (Neo4j v4.4.x "neo4j-contrib/neo4j-apoc-procedures", Neo4j >= v5 "neo4j/apoc")
3339

3440
ARTIFACT_SCRIPTS_DIRECTORY=${ARTIFACT_SCRIPTS_DIRECTORY:-"artifacts"}
3541
REPORTS_SCRIPTS_DIRECTORY=${REPORTS_SCRIPTS_DIRECTORY:-"reports"}

scripts/executeQuery.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
# Overrideable Defaults
1717
NEO4J_HTTP_PORT=${NEO4J_HTTP_PORT:-"7474"}
18+
NEO4J_HTTP_TRANSACTION_ENDPOINT=${NEO4J_HTTP_TRANSACTION_ENDPOINT:-"db/data/transaction/commit"} # Neo4j v4: "db/data/transaction/commit", Neo4j v5: "db/neo4j/tx/commit"
1819

1920
# Check if environment variable is set
2021
if [ -z "${NEO4J_INITIAL_PASSWORD}" ]; then
@@ -85,7 +86,7 @@ cypher_query_for_api="{\"statements\":[{\"statement\":${cypher_query},\"includeS
8586
# Calls the Neo4j HTTP API using cURL ( https://curl.se )
8687
cyper_query_result=$(curl --silent -S --fail-with-body -H Accept:application/json -H Content-Type:application/json \
8788
-u neo4j:"${NEO4J_INITIAL_PASSWORD}" \
88-
"http://localhost:${NEO4J_HTTP_PORT}/db/data/transaction/commit" \
89+
"http://localhost:${NEO4J_HTTP_PORT}/${NEO4J_HTTP_TRANSACTION_ENDPOINT}" \
8990
-d "${cypher_query_for_api}")
9091
#echo "Cypher Query Result: $cyper_query_result"
9192

scripts/setupJQAssistant.sh

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,30 @@
55
# Be aware that this script runs in the current directory.
66
# If you want JQassistant to be installed in the "tools" directory, then create and change it beforehand.
77

8-
JQASSISTANT_CLI_VERSION=${JQASSISTANT_CLI_VERSION:-"1.12.2"} # Version 1.12.2 is the current version (april 2023)
8+
JQASSISTANT_CLI_VERSION=${JQASSISTANT_CLI_VERSION:-"1.12.2"} # Neo4j v5: 2.0.3 (june 2023), Neo4j v4: 1.12.2 (april 2023)
9+
JQASSISTANT_CLI_DOWNLOAD_URL=${JQASSISTANT_CLI_DOWNLOAD_URL:-"https://repo1.maven.org/maven2/com/buschmais/jqassistant/cli"}
10+
JQASSISTANT_CLI_ARTIFACT=${JQASSISTANT_CLI_ARTIFACT:-"jqassistant-commandline-neo4jv3"} # Neo4j v5: "jqassistant-commandline-distribution", Neo4j v4: "jqassistant-commandline-neo4jv3"
11+
JQASSISTANT_CLI_DISTRIBUTION=${JQASSISTANT_CLI_DISTRIBUTION:-"distribution.zip"} # Neo4j v5: "bin.zip", Neo4j v4: "distribution.zip"
912
TOOLS_DIRECTORY=${TOOLS_DIRECTORY:-"tools"} # Get the tools directory (defaults to "tools")
1013
SHARED_DOWNLOADS_DIRECTORY="${SHARED_DOWNLOADS_DIRECTORY:-$(dirname "$( pwd )")/downloads}"
1114

1215
# Check if TOOLS_DIRECTORY variable is set
1316
if [ -z "${TOOLS_DIRECTORY}" ]; then
14-
echo "Requires variable TOOLS_DIRECTORY to be set. If it is the current directory, then use a dot to reflect that."
17+
echo "setupJQAssistant: Requires variable TOOLS_DIRECTORY to be set. If it is the current directory, then use a dot to reflect that."
1518
exit 1
1619
else
1720
# Create tools directory if it doesn't exists
18-
echo "Creating tools directory <${TOOLS_DIRECTORY}> if neccessary"
21+
echo "setupJQAssistant: Creating tools directory <${TOOLS_DIRECTORY}> if neccessary"
1922
mkdir -p "${TOOLS_DIRECTORY}"
2023
fi
2124

2225
# Check if SHARED_DOWNLOADS_DIRECTORY variable is set
2326
if [ -z "${SHARED_DOWNLOADS_DIRECTORY}" ]; then
24-
echo "Requires variable SHARED_DOWNLOADS_DIRECTORY to be set. If it is the current directory, then use a dot to reflect that."
27+
echo "setupJQAssistant: Requires variable SHARED_DOWNLOADS_DIRECTORY to be set. If it is the current directory, then use a dot to reflect that."
2528
exit 1
2629
else
2730
# Create shared downloads directory if it doesn't exists
28-
echo "Creating shared downloads directory <${SHARED_DOWNLOADS_DIRECTORY}> if neccessary"
31+
echo "setupJQAssistant: Creating shared downloads directory <${SHARED_DOWNLOADS_DIRECTORY}> if neccessary"
2932
mkdir -p "${SHARED_DOWNLOADS_DIRECTORY}"
3033
fi
3134

@@ -38,17 +41,27 @@ if [ ! -d "${JQASSISTANT_INSTALLATION_DIRECTORY}" ] ; then
3841

3942
# Download jQAssistant
4043
if [ ! -f "${SHARED_DOWNLOADS_DIRECTORY}/${JQASSISTANT_INSTALLATION_NAME}.zip" ] ; then
41-
echo "Downloading ${JQASSISTANT_INSTALLATION_NAME}.zip"
42-
44+
jqassistant_cli_fulldownload_url=${JQASSISTANT_CLI_DOWNLOAD_URL}/${JQASSISTANT_CLI_ARTIFACT}/${JQASSISTANT_CLI_VERSION}/${JQASSISTANT_CLI_ARTIFACT}-${JQASSISTANT_CLI_VERSION}-${JQASSISTANT_CLI_DISTRIBUTION}
45+
echo "setupJQAssistant: Downloading ${JQASSISTANT_INSTALLATION_NAME}.zip from ${jqassistant_cli_fulldownload_url}"
46+
4347
# Download jQAssistant
4448
# With the option "-L" a redirection will be followed automatically
45-
curl -L --fail-with-body -o "${SHARED_DOWNLOADS_DIRECTORY}/${JQASSISTANT_INSTALLATION_NAME}.zip" https://repo1.maven.org/maven2/com/buschmais/jqassistant/cli/jqassistant-commandline-neo4jv3/$JQASSISTANT_CLI_VERSION/jqassistant-commandline-neo4jv3-$JQASSISTANT_CLI_VERSION-distribution.zip || exit 1
49+
# old: https://repo1.maven.org/maven2/com/buschmais/jqassistant/cli/jqassistant-commandline-neo4jv3/1.12.2/jqassistant-commandline-neo4jv3-1.12.2-distribution.zip
50+
# new: https://repo1.maven.org/maven2/com/buschmais/jqassistant/cli/jqassistant-commandline-distribution/2.0.3/jqassistant-commandline-distribution-2.0.3-bin.zip
51+
curl -L --fail-with-body -o "${SHARED_DOWNLOADS_DIRECTORY}/${JQASSISTANT_INSTALLATION_NAME}.zip" "${jqassistant_cli_fulldownload_url}"
4652
else
47-
echo "${JQASSISTANT_INSTALLATION_NAME} already downloaded"
53+
echo "setupJQAssistant: ${JQASSISTANT_INSTALLATION_NAME} already downloaded"
54+
fi
55+
56+
downloaded_file_size=$(wc -c "${SHARED_DOWNLOADS_DIRECTORY}/${JQASSISTANT_INSTALLATION_NAME}.zip" | awk '{print $1}')
57+
if [[ "${downloaded_file_size}" -le 1000 ]]; then
58+
echo "setupJQAssistant: Failed to download ${JQASSISTANT_INSTALLATION_NAME}: Invalid Filesize"
59+
rm -f "${SHARED_DOWNLOADS_DIRECTORY}/${JQASSISTANT_INSTALLATION_NAME}.zip"
60+
exit 1
4861
fi
4962

5063
# Unpack the ZIP file (-q option for less verbose output)
5164
unzip -q "${SHARED_DOWNLOADS_DIRECTORY}/${JQASSISTANT_INSTALLATION_NAME}.zip" -d "${TOOLS_DIRECTORY}"
5265
else
53-
echo "${JQASSISTANT_INSTALLATION_NAME}.zip already installed"
66+
echo "setupJQAssistant: ${JQASSISTANT_INSTALLATION_NAME}.zip already installed"
5467
fi

scripts/setupNeo4j.sh

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
NEO4J_EDITION=${NEO4J_EDITION:-"community"} # Choose "community" or "enterprise"
88
NEO4J_VERSION=${NEO4J_VERSION:-"4.4.20"} # Version 4.4.x is the current long term support (LTS) version (april 2023)
99
NEO4J_APOC_PLUGIN_VERSION=${NEO4J_APOC_PLUGIN_VERSION:-"4.4.0.15"} #Awesome Procedures for Neo4j Plugin Version 4.4.0.x of is compatible with Neo4j 4.4.x
10+
NEO4J_APOC_PLUGIN_EDITION=${NEO4J_APOC_PLUGIN_EDITION:-"all"} #Awesome Procedures for Neo4j Plugin Edition (Neo4j v4.4.x "all", Neo4j >= v5 "core")
11+
NEO4J_APOC_PLUGIN_GITHUB=${NEO4J_APOC_PLUGIN_GITHUB:-"neo4j-contrib/neo4j-apoc-procedures"} #Awesome Procedures for Neo4j Plugin GitHub User/Repository (Neo4j v4.4.x "neo4j-contrib/neo4j-apoc-procedures", Neo4j >= v5 "neo4j/apoc")
1012
NEO4J_GDS_PLUGIN_VERSION=${NEO4J_GDS_PLUGIN_VERSION:-"2.3.4"} # Graph Data Science Plugin Version 2.3.x of is compatible with Neo4j 4.4.x
1113
NEO4J_DATA_PATH=${NEO4J_DATA_PATH:-"$( pwd -P )/data"} # Path where Neo4j writes its data to (outside tools dir)
1214
NEO4J_RUNTIME_PATH=${NEO4J_RUNTIME_PATH:-"$( pwd -P )/runtime"} # Path where Neo4j puts runtime data to (e.g. logs) (outside tools dir)
@@ -22,7 +24,7 @@ NEO4J_INSTALLATION_NAME="neo4j-${NEO4J_EDITION}-${NEO4J_VERSION}"
2224
NEO4J_INSTALLATION_DIRECTORY="${TOOLS_DIRECTORY}/${NEO4J_INSTALLATION_NAME}"
2325
NEO4J_CONFIG="${NEO4J_INSTALLATION_DIRECTORY}/conf/neo4j.conf"
2426
NEO4J_APOC_CONFIG="${NEO4J_INSTALLATION_DIRECTORY}/conf/apoc.conf"
25-
NEO4J_APOC_PLUGIN_ARTIFACT="apoc-${NEO4J_APOC_PLUGIN_VERSION}-all.jar"
27+
NEO4J_APOC_PLUGIN_ARTIFACT="apoc-${NEO4J_APOC_PLUGIN_VERSION}-${NEO4J_APOC_PLUGIN_EDITION}.jar"
2628
NEO4J_GDS_PLUGIN_ARTIFACT="neo4j-graph-data-science-${NEO4J_GDS_PLUGIN_VERSION}.jar"
2729

2830
## Get this "scripts" directory if not already set
@@ -34,7 +36,7 @@ echo "setupNeo4j: SCRIPTS_DIR=$SCRIPTS_DIR"
3436

3537
# Check if TOOLS_DIRECTORY variable is set
3638
if [ -z "${TOOLS_DIRECTORY}" ]; then
37-
echo "setupNeo4j: Requires variable TOOLS_DIRECTORY to be set. If it is the current directory, then use a dot to reflect that."
39+
echo "setupNeo4j: Error: Requires variable TOOLS_DIRECTORY to be set. If it is the current directory, then use a dot to reflect that."
3840
exit 1
3941
else
4042
# Create tools directory if it doesn't exists
@@ -44,14 +46,20 @@ fi
4446

4547
# Check if SHARED_DOWNLOADS_DIRECTORY variable is set
4648
if [ -z "${SHARED_DOWNLOADS_DIRECTORY}" ]; then
47-
echo "setupNeo4j: Requires variable SHARED_DOWNLOADS_DIRECTORY to be set. If it is the current directory, then use a dot to reflect that."
49+
echo "setupNeo4j: Error: Requires variable SHARED_DOWNLOADS_DIRECTORY to be set. If it is the current directory, then use a dot to reflect that."
4850
exit 1
4951
else
5052
# Create shared downloads directory if it doesn't exists
5153
echo "setupNeo4j: Creating shared downloads directory <${SHARED_DOWNLOADS_DIRECTORY}> if neccessary"
5254
mkdir -p "${SHARED_DOWNLOADS_DIRECTORY}"
5355
fi
5456

57+
# Check if environment variable is set
58+
if [ -z "${NEO4J_INITIAL_PASSWORD}" ]; then
59+
echo "setupNeo4j: Error: Requires environment variable NEO4J_INITIAL_PASSWORD to be set first. Use 'export NEO4J_INITIAL_PASSWORD=<your password'."
60+
exit 1
61+
fi
62+
5563
# Download and extract Neo4j
5664
if [ ! -d "${NEO4J_INSTALLATION_DIRECTORY}" ] ; then
5765

@@ -71,7 +79,7 @@ if [ ! -d "${NEO4J_INSTALLATION_DIRECTORY}" ] ; then
7179

7280
# Fail if Neo4j hadn't been downloaded successfully
7381
if [ ! -d "${NEO4J_INSTALLATION_DIRECTORY}" ] ; then
74-
echo "setupNeo4j: Failed to download ${NEO4J_INSTALLATION_NAME} from ${NEO4J_DOWNLOAD_BASE_URL} into ${TOOLS_DIRECTORY}"
82+
echo "setupNeo4j: Error: Failed to download ${NEO4J_INSTALLATION_NAME} from ${NEO4J_DOWNLOAD_BASE_URL} into ${TOOLS_DIRECTORY}"
7583
exit 1
7684
fi
7785

@@ -103,12 +111,12 @@ if [ ! -d "${NEO4J_INSTALLATION_DIRECTORY}" ] ; then
103111
echo "server.directories.transaction.logs.root=${NEO4J_DATA_PATH}/transactions"
104112
echo ""
105113
echo "# Ports Configuration (v5)"
106-
echo "server.connector.bolt.listen_address=:${NEO4J_BOLT_PORT}"
107-
echo "server.connector.bolt.advertised_address=:${NEO4J_BOLT_PORT}"
108-
echo "server.connector.http.listen_address=:${NEO4J_HTTP_PORT}"
109-
echo "server.connector.http.advertised_address=:${NEO4J_HTTP_PORT}"
110-
echo "server.connector.https.listen_address=:${NEO4J_HTTPS_PORT}"
111-
echo "server.connector.https.advertised_address=:${NEO4J_HTTPS_PORT}"
114+
echo "server.bolt.listen_address=:${NEO4J_BOLT_PORT}"
115+
echo "server.bolt.advertised_address=:${NEO4J_BOLT_PORT}"
116+
echo "server.http.listen_address=:${NEO4J_HTTP_PORT}"
117+
echo "server.http.advertised_address=:${NEO4J_HTTP_PORT}"
118+
echo "server.https.listen_address=:${NEO4J_HTTPS_PORT}"
119+
echo "server.https.advertised_address=:${NEO4J_HTTPS_PORT}"
112120

113121
} >> "${NEO4J_CONFIG}"
114122

@@ -127,15 +135,20 @@ if [ ! -f "${NEO4J_INSTALLATION_DIRECTORY}/plugins/${NEO4J_APOC_PLUGIN_ARTIFACT}
127135

128136
# Download the Neo4j Plugin "Awesome Procedures for Neo4j"
129137
if [ ! -f "${SHARED_DOWNLOADS_DIRECTORY}/${NEO4J_APOC_PLUGIN_ARTIFACT}" ] ; then
130-
echo "setupNeo4j: Downloading ${NEO4J_APOC_PLUGIN_ARTIFACT}"
131-
132138
# Download the Neo4j Plugin "Awesome Procedures for Neo4j"
133139
echo "setupNeo4j: Downloading ${NEO4J_APOC_PLUGIN_ARTIFACT}"
134-
curl -L --fail-with-body -o "${SHARED_DOWNLOADS_DIRECTORY}/${NEO4J_APOC_PLUGIN_ARTIFACT}" https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/download/${NEO4J_APOC_PLUGIN_VERSION}/apoc-${NEO4J_APOC_PLUGIN_VERSION}-all.jar || exit 1
140+
curl -L --fail-with-body -o "${SHARED_DOWNLOADS_DIRECTORY}/${NEO4J_APOC_PLUGIN_ARTIFACT}" https://github.com/${NEO4J_APOC_PLUGIN_GITHUB}/releases/download/${NEO4J_APOC_PLUGIN_VERSION}/apoc-${NEO4J_APOC_PLUGIN_VERSION}-${NEO4J_APOC_PLUGIN_EDITION}.jar || exit 1
135141
else
136142
echo "setupNeo4j: ${NEO4J_APOC_PLUGIN_ARTIFACT} already downloaded"
137143
fi
138144

145+
downloaded_file_size=$(wc -c "${SHARED_DOWNLOADS_DIRECTORY}/${NEO4J_APOC_PLUGIN_ARTIFACT}")
146+
if [[ "$downloaded_file_size" -le 100 ]]; then
147+
echo "setupNeo4j: Error: Failed to download ${NEO4J_APOC_PLUGIN_ARTIFACT}: Invalid Filesize."
148+
rm -f "${SHARED_DOWNLOADS_DIRECTORY}/${NEO4J_APOC_PLUGIN_ARTIFACT}"
149+
exit 1
150+
fi
151+
139152
# Uninstall previously installed Neo4j Plugin "Awesome Procedures for Neo4j" (APOC)
140153
rm -f "${NEO4J_INSTALLATION_DIRECTORY}/plugins/apoc*.jar"
141154

@@ -145,7 +158,7 @@ if [ ! -f "${NEO4J_INSTALLATION_DIRECTORY}/plugins/${NEO4J_APOC_PLUGIN_ARTIFACT}
145158

146159
# Fail if Neo4j Plugin "Awesome Procedures for Neo4j" (APOC) hadn't been downloaded successfully
147160
if [ ! -f "${NEO4J_INSTALLATION_DIRECTORY}/plugins/${NEO4J_APOC_PLUGIN_ARTIFACT}" ] ; then
148-
echo "setupNeo4j: Failed to download and install ${NEO4J_APOC_PLUGIN_ARTIFACT}"
161+
echo "setupNeo4j: Error: Failed to download and install ${NEO4J_APOC_PLUGIN_ARTIFACT}"
149162
exit 1
150163
fi
151164

@@ -172,6 +185,13 @@ if [ ! -f "${NEO4J_INSTALLATION_DIRECTORY}/plugins/${NEO4J_GDS_PLUGIN_ARTIFACT}"
172185
echo "setupNeo4j: ${NEO4J_GDS_PLUGIN_ARTIFACT} already downloaded"
173186
fi
174187

188+
downloaded_file_size=$(wc -c "${SHARED_DOWNLOADS_DIRECTORY}/${NEO4J_GDS_PLUGIN_ARTIFACT}" | awk '{print $1}')
189+
if [[ "$downloaded_file_size" -le 100 ]]; then
190+
echo "setupNeo4j: Error: Failed to download ${NEO4J_GDS_PLUGIN_ARTIFACT}. Invalid Filesize."
191+
rm -f "${SHARED_DOWNLOADS_DIRECTORY}/${NEO4J_GDS_PLUGIN_ARTIFACT}"
192+
exit 1
193+
fi
194+
175195
# Uninstall previously installed Neo4j Plugin "Graph Data Science" (GDS)
176196
rm -f "${NEO4J_INSTALLATION_DIRECTORY}/plugins/neo4j-graph-data-science*.jar"
177197

@@ -181,7 +201,7 @@ if [ ! -f "${NEO4J_INSTALLATION_DIRECTORY}/plugins/${NEO4J_GDS_PLUGIN_ARTIFACT}"
181201

182202
# Fail if Neo4j Plugin "Graph Data Science" (GDS) hadn't been downloaded successfully
183203
if [ ! -f "${NEO4J_INSTALLATION_DIRECTORY}/plugins/${NEO4J_GDS_PLUGIN_ARTIFACT}" ] ; then
184-
echo "setupNeo4j: Failed to download and install ${NEO4J_GDS_PLUGIN_ARTIFACT}"
204+
echo "setupNeo4j: Error: Failed to download and install ${NEO4J_GDS_PLUGIN_ARTIFACT}"
185205
exit 1
186206
fi
187207
else

scripts/setupNeo4jInitialPassword.sh

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,22 @@ if [ ! -d "${NEO4J_INSTALLATION_DIRECTORY}" ] ; then
2424
exit 1
2525
fi
2626

27-
# Set the initial password using a temporary NEO4J_HOME environment variable pointing to the current setup
27+
# Print the environment variable NEO4J_HOME that is used to execute the command
2828
echo "setupNeo4jInitialPassword: Using ${NEO4J_INSTALLATION_DIRECTORY} as NEO4J_HOME"
29-
NEO4J_HOME="${NEO4J_INSTALLATION_DIRECTORY}" ${NEO4J_INSTALLATION_DIRECTORY}/bin/neo4j-admin set-initial-password "${NEO4J_INITIAL_PASSWORD}"
29+
30+
# Extract the first component of the version number (=major version number)
31+
NEO4J_MAJOR_VERSION_NUMBER=$(echo "$NEO4J_VERSION" | cut -d'.' -f1)
32+
33+
# Check if the first component is greater than or equal to 5
34+
if [[ "$NEO4J_MAJOR_VERSION_NUMBER" -ge 5 ]]; then
35+
echo "setupNeo4jInitialPassword: Neo4j v5 or higher detected"
36+
# Neo4j version < 5
37+
# Set the initial password using a temporary NEO4J_HOME environment variable pointing to the current setup
38+
NEO4J_HOME="${NEO4J_INSTALLATION_DIRECTORY}" ${NEO4J_INSTALLATION_DIRECTORY}/bin/neo4j-admin dbms set-initial-password "${NEO4J_INITIAL_PASSWORD}"
39+
else
40+
echo "setupNeo4jInitialPassword: Neo4j v4 or lower detected"
41+
# Neo4j version >= 5
42+
# Set the initial password using a temporary NEO4J_HOME environment variable pointing to the current setup
43+
NEO4J_HOME="${NEO4J_INSTALLATION_DIRECTORY}" ${NEO4J_INSTALLATION_DIRECTORY}/bin/neo4j-admin set-initial-password "${NEO4J_INITIAL_PASSWORD}"
44+
fi
45+

scripts/startNeo4j.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ NEO4J_HTTP_PORT=${NEO4J_HTTP_PORT:-"7474"}
1313
# Internal Constants
1414
NEO4J_DIR="${TOOLS_DIRECTORY}/neo4j-${NEO4J_EDITION}-${NEO4J_VERSION}"
1515
NEO4J_BIN="${NEO4J_DIR}/bin"
16-
WAIT_TIMES="1 2 4 8 16"
16+
WAIT_TIMES="1 2 4 8 16 32"
1717

1818
## Get this "scripts" directory if not already set
1919
# Even if $BASH_SOURCE is made for Bourne-like shells it is also supported by others and therefore here the preferred solution.
@@ -37,7 +37,7 @@ else
3737
fi
3838

3939
# Check if Neo4j is stopped (not running) using a temporary NEO4J_HOME environment variable that points to the current installation
40-
if NEO4J_HOME=${NEO4J_DIR} ${NEO4J_BIN}/neo4j status | grep -q "not" ; then
40+
if NEO4J_HOME=${NEO4J_DIR} ${NEO4J_BIN}/neo4j status 2>&1 | grep -q "not running" ; then
4141
echo "startNeo4j: Starting neo4j-${NEO4J_EDITION}-${NEO4J_VERSION} in ${NEO4J_DIR}"
4242

4343
# Check if there is already a process that listens to the Neo4j HTTP port
@@ -57,7 +57,7 @@ if NEO4J_HOME=${NEO4J_DIR} ${NEO4J_BIN}/neo4j status | grep -q "not" ; then
5757
echo "startNeo4j: Waiting for ${waitTime} second(s)"
5858
sleep ${waitTime}
5959

60-
if ! NEO4J_HOME=${NEO4J_DIR} ${NEO4J_BIN}/neo4j status | grep -q "not" ; then
60+
if ! NEO4J_HOME=${NEO4J_DIR} ${NEO4J_BIN}/neo4j status 2>&1 | grep -q "not running" ; then
6161
echo "startNeo4j: Successfully started neo4j-${NEO4J_EDITION}-${NEO4J_VERSION}"
6262
exit 0
6363
fi
@@ -67,7 +67,7 @@ else
6767
fi
6868

6969
# Check if Neo4j is still not running using a temporary NEO4J_HOME environment variable that points to the current installation
70-
if NEO4J_HOME=${NEO4J_DIR} ${NEO4J_BIN}/neo4j status | grep -q "not" ; then
70+
if NEO4J_HOME=${NEO4J_DIR} ${NEO4J_BIN}/neo4j status 2>&1 | grep -q "not running" ; then
7171
echo "startNeo4j: neo4j-${NEO4J_EDITION}-${NEO4J_VERSION} still not running. Something went wrong. Details see 'NEO4J_HOME=${NEO4J_DIR} ${NEO4J_BIN}/neo4j status'."
7272
exit 1
7373
fi

scripts/stopNeo4j.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ else
2828
fi
2929

3030
# Check if Neo4j is stopped (not running) using a temporary NEO4J_HOME environment variable that points to the current installation
31-
if NEO4J_HOME=${NEO4J_DIR} ${NEO4J_BIN}/neo4j status | grep -q "not" ; then
31+
if NEO4J_HOME=${NEO4J_DIR} ${NEO4J_BIN}/neo4j status 2>&1 | grep -q "not running" ; then
3232
echo "stopNeo4j: neo4j-${NEO4J_EDITION}-${NEO4J_VERSION} aleady stopped"
3333
exit 0
3434
else
@@ -37,7 +37,7 @@ else
3737
fi
3838

3939
# Check if Neo4j is still not running using a temporary NEO4J_HOME environment variable that points to the current installation
40-
if NEO4J_HOME=${NEO4J_DIR} ${NEO4J_BIN}/neo4j status | grep -q "not" ; then
40+
if NEO4J_HOME=${NEO4J_DIR} ${NEO4J_BIN}/neo4j status 2>&1 | grep -q "not running" ; then
4141
echo "stopNeo4j: Successfully stopped neo4j-${NEO4J_EDITION}-${NEO4J_VERSION}"
4242
else
4343
echo "stopNeo4j: neo4j-${NEO4J_EDITION}-${NEO4J_VERSION} still running. Something went wrong. Details see 'NEO4J_HOME=${NEO4J_DIR} ${NEO4J_BIN}/neo4j status'."

0 commit comments

Comments
 (0)