From 8ef2b732047d670db5b4ee2412cb060b32081e1f Mon Sep 17 00:00:00 2001 From: Emmanuel Bruno <emmanuel.bruno@univ-tln.fr> Date: Mon, 29 Nov 2021 16:46:05 +0100 Subject: [PATCH] improves H2 docker images, URL, port, Psql compatibility. --- docker-compose.yml | 19 +++++-------------- docker/Dockerfile | 12 ++++++------ docker/post-boot-commands.asadmin | 4 +--- .../bruno/samples/jee91/dao/Person.java | 2 ++ .../main/resources/META-INF/persistence.xml | 10 +++++----- restApp/src/main/resources/insert.sql | 4 ++++ 6 files changed, 23 insertions(+), 28 deletions(-) create mode 100644 restApp/src/main/resources/insert.sql diff --git a/docker-compose.yml b/docker-compose.yml index eaf9ddd..096bec6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,23 +15,14 @@ services: depends_on: - db db: - image: oscarfonts/h2:1.4.199 + image: brunoe/h2:develop ports: - - "1521:1521" - - "8081:81" + - "8082:8082" + - "9092:9092" environment: - H2_OPTIONS: '-ifNotExists' + H2_OPTIONS: '-ifNotExists -webAllowOthers -tcpAllowOthers -pgAllowOthers -ifNotExists' volumes: - - h2data:/opt/h2-data -# db: -# image: brunoe/h2 -# ports: -# - "8081:8082" -# - "1521:8092" -# environment: -# H2_OPTIONS: '-ifNotExists -webAllowOthers -tcpAllowOthers -pgAllowOthers -ifNotExists' -# volumes: -# - h2data:/h2-data + - h2data:/h2-data volumes: h2data: \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile index faf446d..5ae1c98 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -8,7 +8,7 @@ RUN --mount=type=cache,id=mvncache,target=/root/.m2/repository,rw \ mvn -B clean package ### Then we add the builded war to a JEE server. -FROM payara/server-full:5.2021.9-jdk11 +FROM payara/server-full:5.2021.9-jdk11 as server ARG STORE_PASSWORD=changeit ## Download the JDBC driver USER root @@ -29,8 +29,8 @@ COPY --from=build /app/utils/src/main/resources/mycert-pub.p12 /app/utils/src/m RUN keytool -importkeystore -noprompt -destkeystore /opt/payara/appserver/glassfish/domains/domain1/config/keystore.jks -srckeystore /tmp/mycert.p12 -srcstoretype PKCS12 -alias mycert -srcstorepass storepass -deststorepass ${STORE_PASSWORD} -deststoretype pkcs12 && \ keytool -importcert -noprompt -trustcacerts -destkeystore /opt/payara/appserver/glassfish/domains/domain1/config/cacerts.jks -file /tmp/mycert.crt -alias mycert -srcstorepass storepass -deststorepass ${STORE_PASSWORD} -deststoretype pkcs12 -# COPY target/*.war $DEPLOY_DIR -#COPY --from=build /app/restApp/target/*.war \ -# $DEPLOY_DIR -#COPY --from=build /app/wsApp/target/*.war \ -# $DEPLOY_DIR +FROM server as production +COPY --from=build /app/restApp/target/*.war \ + $DEPLOY_DIR +COPY --from=build /app/wsApp/target/*.war \ + $DEPLOY_DIR diff --git a/docker/post-boot-commands.asadmin b/docker/post-boot-commands.asadmin index cbdea7f..2bd8a43 100755 --- a/docker/post-boot-commands.asadmin +++ b/docker/post-boot-commands.asadmin @@ -1,9 +1,7 @@ set-hazelcast-configuration --enabled=true --dynamic=true add-library /tmp/h2.jar -# create-jdbc-connection-pool --datasourceclassname org.h2.jdbcx.JdbcDataSource --restype javax.sql.ConnectionPoolDataSource --property password=password:user=user:url="jdbc:h2:tcp://db:1521/payara;MODE=PostgreSQL;DATABASE_TO_LOWER=TRUE;DEFAULT_NULL_ORDERING=HIGH" H2-pool -create-jdbc-connection-pool --datasourceclassname org.h2.jdbcx.JdbcDataSource --restype javax.sql.ConnectionPoolDataSource --property password=password:user=user:url="jdbc:h2:tcp://db:1521/payara" H2-pool +create-jdbc-connection-pool --datasourceclassname org.h2.jdbcx.JdbcDataSource --restype javax.sql.ConnectionPoolDataSource --property password=password:user=user:url="jdbc:h2:tcp://db:9092/payara;MODE=PostgreSQL;DATABASE_TO_LOWER=TRUE" H2-pool create-jdbc-resource --connectionpoolid H2-pool jdbc/h2-pool - # set configs.config.server-config.network-config.protocols.protocol.http-listener-2.ssl.cert-nickname=mycert diff --git a/entites/src/main/java/fr/univtln/bruno/samples/jee91/dao/Person.java b/entites/src/main/java/fr/univtln/bruno/samples/jee91/dao/Person.java index 013071e..c7cf306 100644 --- a/entites/src/main/java/fr/univtln/bruno/samples/jee91/dao/Person.java +++ b/entites/src/main/java/fr/univtln/bruno/samples/jee91/dao/Person.java @@ -1,6 +1,7 @@ package fr.univtln.bruno.samples.jee91.dao; import jakarta.persistence.*; +import jakarta.xml.bind.annotation.XmlRootElement; @Entity @NamedQueries({ @@ -10,6 +11,7 @@ import jakarta.persistence.*; name = "Person.findAllOrderedByName", query = "SELECT p FROM Person p ORDER BY p.name") }) +@XmlRootElement public class Person { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/restApp/src/main/resources/META-INF/persistence.xml b/restApp/src/main/resources/META-INF/persistence.xml index b62e0cb..50230cc 100644 --- a/restApp/src/main/resources/META-INF/persistence.xml +++ b/restApp/src/main/resources/META-INF/persistence.xml @@ -7,12 +7,12 @@ <class>fr.univtln.bruno.samples.jee91.dao.Person</class> <properties> - <property name="javax.persistence.schema-generation.database.action" value="drop-and-create" /> - <property name="javax.persistence.schema-generation.scripts.action" value="drop-and-create" /> - <property name="javax.persistence.schema-generation.scripts.create-target" value="sampleCreate.ddl" /> - <property name="javax.persistence.schema-generation.scripts.drop-target" value="sampleDrop.ddl" /> + <property name="jakarta.persistence.schema-generation.database.action" value="drop-and-create" /> + <property name="jakarta.persistence.schema-generation.scripts.action" value="drop-and-create" /> + <property name="jakarta.persistence.schema-generation.scripts.create-target" value="sampleCreate.ddl" /> + <property name="jakarta.persistence.schema-generation.scripts.drop-target" value="sampleDrop.ddl" /> - <!--property name="javax.persistence.sql-load-script-source" value="insert.sql" /--> + <property name="jakarta.persistence.sql-load-script-source" value="insert.sql" /> </properties> </persistence-unit> </persistence> \ No newline at end of file diff --git a/restApp/src/main/resources/insert.sql b/restApp/src/main/resources/insert.sql new file mode 100644 index 0000000..4f6d3cd --- /dev/null +++ b/restApp/src/main/resources/insert.sql @@ -0,0 +1,4 @@ +INSERT INTO "public"."person" ("name") VALUES ('pierre'); +INSERT INTO "public"."person" ("name") VALUES ('Marie'); +INSERT INTO "public"."person" ("name") VALUES ('jacques'); +INSERT INTO "public"."person" ("name") VALUES ('Annie'); \ No newline at end of file -- GitLab