Skip to content

Commit 01aabf9

Browse files
committed
java-jsi-clus-fire: update parent Docker image + update tests + show stack trace when entrypoint catches an exception with no error message
1 parent e150fb9 commit 01aabf9

4 files changed

Lines changed: 93 additions & 71 deletions

File tree

java-jsi-clus-fire/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ COPY src/ /project/src
1010
RUN cp /usr/share/maven/ref/settings-docker.xml /root/.m2/settings.xml \
1111
&& mvn -Dmaven.test.skip=true package site
1212

13-
FROM hbpmip/java-jsi-clus:latest
13+
FROM hbpmip/java-jsi-clus:0.4.3
1414

1515
MAINTAINER martin.breskvar@ijs.si
1616

java-jsi-clus-fire/src/main/java/eu/humanbrainproject/mip/algorithms/jsi/clus/fire/Entrypoint.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package eu.humanbrainproject.mip.algorithms.jsi.clus.fire;
22

3-
import java.util.logging.Logger;
4-
53
import eu.humanbrainproject.mip.algorithms.jsi.Main;
64
import eu.humanbrainproject.mip.algorithms.jsi.common.ClusMeta;
75
import eu.humanbrainproject.mip.algorithms.jsi.common.InputData;
@@ -10,6 +8,8 @@
108
import eu.humanbrainproject.mip.algorithms.jsi.serializers.pfa.ClusModelPFASerializer;
119
import si.ijs.kt.clus.algo.rules.ClusRuleSet;
1210

11+
import java.util.logging.Logger;
12+
1313
/** @author Martin Breskvar */
1414
public final class Entrypoint {
1515
private static final Logger LOGGER = Logger.getLogger(Entrypoint.class.getName());
@@ -30,7 +30,13 @@ public static void main(String[] args) {
3030
entry.run();
3131

3232
} catch (Exception e) {
33-
LOGGER.severe(e.getMessage());
33+
String errorMessage = e.getMessage();
34+
if(errorMessage != null) {
35+
LOGGER.severe(errorMessage);
36+
}
37+
else {
38+
e.printStackTrace();
39+
}
3440
System.exit(1);
3541
}
3642
}

java-jsi-clus-fire/tests/docker-compose.yml

Lines changed: 66 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ services:
4848
- db
4949

5050
woken_db_setup:
51-
image: "hbpmip/woken-db-setup:latest"
51+
image: "hbpmip/woken-db-setup:1.2.1"
5252
container_name: "woken-db-setup"
5353
restart: "no"
5454
environment:
@@ -63,55 +63,32 @@ services:
6363

6464
clus_fire_regression_st:
6565
image: "hbpmip/java-jsi-clus-fire:latest"
66-
container_name: "clus-fire-regression-st"
6766
restart: "no"
6867
environment:
6968
NODE: job_test
7069
JOB_ID: 1
71-
IN_JDBC_DRIVER: org.postgresql.Driver
7270
IN_JDBC_URL: jdbc:postgresql://db:5432/features
73-
IN_JDBC_USER: features
74-
IN_JDBC_PASSWORD: featurespwd
75-
OUT_JDBC_DRIVER: org.postgresql.Driver
71+
IN_DBAPI_DRIVER: postgresql
72+
IN_USER: features
73+
IN_PASSWORD: featurespwd
74+
IN_HOST: db
75+
IN_PORT: 5432
76+
IN_DATABASE: features
7677
OUT_JDBC_URL: jdbc:postgresql://db:5432/woken
77-
OUT_JDBC_USER: woken
78-
OUT_JDBC_PASSWORD: wokenpwd
79-
PARAM_variables: "score_test1"
80-
PARAM_covariables: "stress_before_test1,iq,cognitive_task2,practice_task2,response_time_task2,college_math,score_math_course1,score_math_course2"
81-
PARAM_query: "SELECT stress_before_test1,score_test1,iq,cognitive_task2,practice_task2,response_time_task2,college_math,score_math_course1,score_math_course2 FROM SAMPLE_DATA"
82-
FUNCTION: java-jsi-clus-fire
83-
MODEL_PARAM_size: 10
84-
MODEL_PARAM_rules: 15
85-
links:
86-
- "db:db"
87-
88-
clus_fire_regression_mt:
89-
image: "hbpmip/java-jsi-clus-fire:latest"
90-
container_name: "clus-fire-regression-mt"
91-
restart: "no"
92-
environment:
93-
NODE: job_test
94-
JOB_ID: 2
95-
IN_JDBC_DRIVER: org.postgresql.Driver
96-
IN_JDBC_URL: jdbc:postgresql://db:5432/features
97-
IN_JDBC_USER: features
98-
IN_JDBC_PASSWORD: featurespwd
99-
OUT_JDBC_DRIVER: org.postgresql.Driver
100-
OUT_JDBC_URL: jdbc:postgresql://db:5432/woken
101-
OUT_JDBC_USER: woken
102-
OUT_JDBC_PASSWORD: wokenpwd
103-
PARAM_variables: "score_test1,stress_before_test1,iq,cognitive_task2"
104-
PARAM_covariables: "practice_task2,response_time_task2,college_math,score_math_course1,score_math_course2"
105-
PARAM_query: "SELECT stress_before_test1,score_test1,iq,cognitive_task2,practice_task2,response_time_task2,college_math,score_math_course1,score_math_course2 FROM SAMPLE_DATA"
106-
FUNCTION: java-jsi-clus-fire
107-
MODEL_PARAM_size: 15
108-
MODEL_PARAM_rules: 15
109-
links:
110-
- "db:db"
78+
OUT_DBAPI_DRIVER: postgresql
79+
OUT_USER: woken
80+
OUT_PASSWORD: wokenpwd
81+
OUT_HOST: db
82+
OUT_PORT: 5432
83+
OUT_DATABASE: woken
84+
PARAM_variables: "minimentalstate"
85+
PARAM_covariables: "subjectageyears,rightsogsuperioroccipitalgyrus"
86+
PARAM_query: "SELECT minimentalstate,subjectageyears,rightsogsuperioroccipitalgyrus FROM cde_features_a WHERE minimentalstate IS NOT NULL AND subjectageyears IS NOT NULL AND rightsogsuperioroccipitalgyrus IS NOT NULL AND dataset IN ('desd-synthdata') EXCEPT ALL (SELECT minimentalstate,subjectageyears,rightsogsuperioroccipitalgyrus FROM cde_features_a WHERE minimentalstate IS NOT NULL AND subjectageyears IS NOT NULL AND rightsogsuperioroccipitalgyrus IS NOT NULL AND dataset IN ('desd-synthdata') OFFSET 349 LIMIT 349)"
87+
PARAM_meta: "{\"rightsogsuperioroccipitalgyrus\":{\"description\":\"\",\"methodology\":\"lren-nmm-volumes\",\"label\":\"Right superior occipital gyrus\",\"code\":\"rightsogsuperioroccipitalgyrus\",\"units\":\"cm3\",\"type\":\"real\"},\"subjectageyears\":{\"description\":\"Subject age in years.\",\"methodology\":\"mip-cde\",\"label\":\"Age Years\",\"minValue\":0,\"code\":\"subjectageyears\",\"units\":\"years\",\"length\":3,\"maxValue\":130.0,\"type\":\"integer\"},\"minimentalstate\":{\"description\":\"The Mini–Mental State Examination (MMSE) or Folstein test is a 30-point questionnaire that is used extensively in clinical and research settings to measure cognitive impairment. It is commonly used to screen for dementia.\",\"methodology\":\"mip-cde\",\"label\":\"MMSE - Mini Mental State Examination\",\"minValue\":0,\"code\":\"minimentalstate\",\"maxValue\":30.0,\"type\":\"integer\"}}"
11188

11289
pfa_validator_regression_st:
113-
image: "hbpmip/pfa-validator:latest"
114-
container_name: "pfa-validator-regression-st"
90+
image: "hbpmip/pfa-validator:0.10.1-2"
91+
container_name: "pfa-validator"
11592
environment:
11693
INPUT_METHOD: POSTGRESQL
11794
JOB_ID: 1
@@ -127,28 +104,53 @@ services:
127104
FEATURES_DB_NAME: features
128105
FEATURES_DB_USER: features
129106
FEATURES_DB_PASSWORD: featurespwd
130-
FEATURES_DB_TABLE: sample_data
107+
FEATURES_DB_TABLE: cde_features_a
131108
links:
132109
- "db:db"
133110

134-
pfa_validator_regression_mt:
135-
image: "hbpmip/pfa-validator:latest"
136-
container_name: "pfa-validator-regression-mt"
137-
environment:
138-
INPUT_METHOD: POSTGRESQL
139-
JOB_ID: 2
140-
DB_HOST: db
141-
DB_PORT: 5432
142-
DB_NAME: woken
143-
DB_USER: woken
144-
DB_PASSWORD: wokenpwd
145-
DB_TABLE: job_result
146-
DB_COLUMN: data
147-
FEATURES_DB_HOST: db
148-
FEATURES_DB_PORT: 5432
149-
FEATURES_DB_NAME: features
150-
FEATURES_DB_USER: features
151-
FEATURES_DB_PASSWORD: featurespwd
152-
FEATURES_DB_TABLE: sample_data
153-
links:
154-
- "db:db"
111+
# clus_fire_regression_mt:
112+
# image: "hbpmip/java-jsi-clus-fire:latest"
113+
# restart: "no"
114+
# environment:
115+
# NODE: job_test
116+
# JOB_ID: 2
117+
# IN_JDBC_URL: jdbc:postgresql://db:5432/features
118+
# IN_DBAPI_DRIVER: postgresql
119+
# IN_USER: features
120+
# IN_PASSWORD: featurespwd
121+
# IN_HOST: db
122+
# IN_PORT: 5432
123+
# IN_DATABASE: features
124+
# OUT_JDBC_URL: jdbc:postgresql://db:5432/woken
125+
# OUT_DBAPI_DRIVER: postgresql
126+
# OUT_USER: woken
127+
# OUT_PASSWORD: wokenpwd
128+
# OUT_HOST: db
129+
# OUT_PORT: 5432
130+
# OUT_DATABASE: woken
131+
# PARAM_variables: "minimentalstate,subjectageyears"
132+
# PARAM_covariables: "rightsogsuperioroccipitalgyrus,leftsogsuperioroccipitalgyrus"
133+
# PARAM_query: "SELECT minimentalstate,subjectageyears,rightsogsuperioroccipitalgyrus,leftsogsuperioroccipitalgyrus FROM cde_features_a WHERE minimentalstate IS NOT NULL AND subjectageyears IS NOT NULL AND rightsogsuperioroccipitalgyrus IS NOT NULL AND leftsogsuperioroccipitalgyrus IS NOT NULL AND dataset IN ('desd-synthdata') EXCEPT ALL (SELECT minimentalstate,subjectageyears,rightsogsuperioroccipitalgyrus,leftsogsuperioroccipitalgyrus FROM cde_features_a WHERE minimentalstate IS NOT NULL AND subjectageyears IS NOT NULL AND rightsogsuperioroccipitalgyrus IS NOT NULL AND rightsogsuperioroccipitalgyrus IS NOT NULL AND dataset IN ('desd-synthdata') OFFSET 349 LIMIT 349)"
134+
# PARAM_meta: "{\"leftsogsuperioroccipitalgyrus\":{\"description\":\"\",\"methodology\":\"lren-nmm-volumes\",\"label\":\"Left superior occipital gyrus\",\"code\":\"leftsogsuperioroccipitalgyrus\",\"units\":\"cm3\",\"type\":\"real\"},\"rightsogsuperioroccipitalgyrus\":{\"description\":\"\",\"methodology\":\"lren-nmm-volumes\",\"label\":\"Right superior occipital gyrus\",\"code\":\"rightsogsuperioroccipitalgyrus\",\"units\":\"cm3\",\"type\":\"real\"},\"subjectageyears\":{\"description\":\"Subject age in years.\",\"methodology\":\"mip-cde\",\"label\":\"Age Years\",\"minValue\":0,\"code\":\"subjectageyears\",\"units\":\"years\",\"length\":3,\"maxValue\":130.0,\"type\":\"integer\"},\"minimentalstate\":{\"description\":\"The Mini–Mental State Examination (MMSE) or Folstein test is a 30-point questionnaire that is used extensively in clinical and research settings to measure cognitive impairment. It is commonly used to screen for dementia.\",\"methodology\":\"mip-cde\",\"label\":\"MMSE - Mini Mental State Examination\",\"minValue\":0,\"code\":\"minimentalstate\",\"maxValue\":30.0,\"type\":\"integer\"}}"
135+
#
136+
# pfa_validator_regression_mt:
137+
# image: "hbpmip/pfa-validator:0.10.1-2"
138+
# container_name: "pfa-validator"
139+
# environment:
140+
# INPUT_METHOD: POSTGRESQL
141+
# JOB_ID: 2
142+
# DB_HOST: db
143+
# DB_PORT: 5432
144+
# DB_NAME: woken
145+
# DB_USER: woken
146+
# DB_PASSWORD: wokenpwd
147+
# DB_TABLE: job_result
148+
# DB_COLUMN: data
149+
# FEATURES_DB_HOST: db
150+
# FEATURES_DB_PORT: 5432
151+
# FEATURES_DB_NAME: features
152+
# FEATURES_DB_USER: features
153+
# FEATURES_DB_PASSWORD: featurespwd
154+
# FEATURES_DB_TABLE: cde_features_a
155+
# links:
156+
# - "db:db"

java-jsi-clus-fire/tests/test.sh

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,15 @@ get_script_dir () {
1818

1919
cd "$(get_script_dir)"
2020

21+
cleanup=1
22+
for param in "$@"
23+
do
24+
if [ "--no-cleanup" == "$param" ]; then
25+
cleanup=0
26+
echo "INFO: --no-cleanup option detected !"
27+
fi
28+
done
29+
2130
if [[ $NO_SUDO || -n "$CIRCLECI" ]]; then
2231
DOCKER_COMPOSE="docker-compose"
2332
elif groups $USER | grep &>/dev/null '\bdocker\b'; then
@@ -34,7 +43,10 @@ function _cleanup() {
3443
$DOCKER_COMPOSE rm -f > /dev/null 2> /dev/null | true
3544
exit $error_code
3645
}
46+
47+
if [[ "$cleanup" == 1 ]]; then
3748
trap _cleanup EXIT INT TERM
49+
fi
3850

3951
echo "Starting the databases..."
4052
$DOCKER_COMPOSE up -d --remove-orphans db
@@ -49,13 +61,15 @@ $DOCKER_COMPOSE run woken_db_setup
4961
echo
5062
echo "Run the CLUS FIRE algorithm for single-target regression..."
5163
$DOCKER_COMPOSE run clus_fire_regression_st compute
52-
echo "Run the CLUS FIRE algorithm for multi-target regression..."
53-
$DOCKER_COMPOSE run clus_fire_regression_mt compute
64+
# echo "Run the CLUS FIRE algorithm for multi-target regression..."
65+
# $DOCKER_COMPOSE run clus_fire_regression_mt compute
5466

5567
echo
5668
echo "Run PFA validator..."
5769
$DOCKER_COMPOSE run pfa_validator_regression_st
58-
$DOCKER_COMPOSE run pfa_validator_regression_mt
70+
# $DOCKER_COMPOSE run pfa_validator_regression_mt
5971
echo
6072
# Cleanup
73+
if [[ "$cleanup" == 1 ]]; then
6174
_cleanup
75+
fi

0 commit comments

Comments
 (0)