diff --git a/docker-compose.yml b/docker-compose.yml index eaf9ddd38dfe352a2a8a4e312339f39cedaa2747..096bec6825d66fd01b7ab16c76be6c20018fcfcf 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 faf446db050110e3541c423d902d9289c84b225f..5ae1c98638980baaf2941b88b67298809f095a24 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 cbdea7f6ce6b495d08c588c628cd28897966167d..2bd8a432084692826c01b01231f97a349baafb29 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 013071e72216b5ba19fa45da14625a828e7d2a24..c7cf3068e8db97e0b33a94d32ea0781cc0342126 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 b62e0cbc6bcbe0d02c0c3fb17ad9562ea85056e4..50230cc5a2ed4c07f3146453bfd81a201697f389 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 0000000000000000000000000000000000000000..4f6d3cd5fa7b13227900babb897df9d5672f3bf3 --- /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