diff --git a/.ent/enp-build-key.sh b/.ent/enp-build-key.sh index 866e463..216fe59 100755 --- a/.ent/enp-build-key.sh +++ b/.ent/enp-build-key.sh @@ -1,6 +1,6 @@ #!/bin/bash #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -TMP="$(cat Dockerfile.eap Dockerfile.tomcat Dockerfile.wildfly | sha256sum --zero | cut -d' ' -f1)" +TMP="$(cat Dockerfile.tomcat | sha256sum --zero | cut -d' ' -f1)" TMP+="${PPL_COMMIT_ID}_${ENTANDO_PRJ_VERSION}" echo "$TMP" diff --git a/.github/workflows/ga-publication.yml b/.github/workflows/ga-publication.yml index 590e9a2..12d1f48 100644 --- a/.github/workflows/ga-publication.yml +++ b/.github/workflows/ga-publication.yml @@ -38,7 +38,7 @@ jobs: --id "CHECKOUT FOR GA PUBLICATION" \ --lcd "$LOCAL_CLONE_DIR" - name: "Cache Maven packages" - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.m2 key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} @@ -46,7 +46,7 @@ jobs: - name: "Configure GA Repository" uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 server-id: maven-central server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 42c952f..a7e2bbe 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -80,7 +80,7 @@ jobs: #~ BUILD CACHE - name: "Cache Build Dir" id: build-cache - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: "${{ env.LOCAL_CLONE_DIR}}/${{ env.BUILD_TARGET_DIR }}/" key: "${{ runner.os }}-enp-build-${{ env.BUILD_CACHE_KEY }}" diff --git a/.github/workflows/publication.yml b/.github/workflows/publication.yml index 41243de..6cf5e84 100644 --- a/.github/workflows/publication.yml +++ b/.github/workflows/publication.yml @@ -10,15 +10,10 @@ env: ENTANDO_BOT_TOKEN: ${{ secrets.ENTANDO_BOT_TOKEN }} PR_CHECKER_PATH: ".github/pr-title-checker-config.json" - DOCKER_EAP_IMAGE_BASE_NAME: entando/entando-eap73-clustered-base DOCKER_TOMCAT_IMAGE_BASE_NAME: entando/entando-tomcat-base - DOCKER_WILDFLY_IMAGE_BASE_NAME: entando/entando-wildfly17-base - DOCKER_EAP-WILDFLY_IMAGE_ARCHITECTURE: linux/amd64 DOCKER_TOMCAT_IMAGE_ARCHITECTURE: linux/amd64,linux/arm64 DOCKER_IMAGE_CONTEXT: . - DOCKER_EAP_IMAGE_FILE: Dockerfile.eap DOCKER_TOMCAT_IMAGE_FILE: Dockerfile.tomcat - DOCKER_WILDFLY_IMAGE_FILE: Dockerfile.wildfly DOCKER_IMAGE_PUSH: true jobs: @@ -39,23 +34,6 @@ jobs: - name: Checkout uses: actions/checkout@v3 - - name: Docker meta-eap - id: meta-eap - uses: docker/metadata-action@v4 - with: - images: | - ${{ env.DOCKER_EAP_IMAGE_BASE_NAME }} - tags: | - type=schedule - type=ref,event=branch - type=ref,event=pr,value={{base_ref}} - type=ref,event=tag - type=semver,pattern={{version}} - type=semver,pattern={{major}}.{{minor}} - type=semver,pattern={{major}} - type=sha - type=raw,event=pr,value={{base_ref}} - - name: Docker meta-tomcat id: meta-tomcat uses: docker/metadata-action@v4 @@ -73,23 +51,6 @@ jobs: type=sha type=raw,event=pr,value={{base_ref}} - - name: Docker meta-wildfly - id: meta-wildfly - uses: docker/metadata-action@v4 - with: - images: | - ${{ env.DOCKER_WILDFLY_IMAGE_BASE_NAME }} - tags: | - type=schedule - type=ref,event=branch - type=ref,event=pr,value={{base_ref}} - type=ref,event=tag - type=semver,pattern={{version}} - type=semver,pattern={{major}}.{{minor}} - type=semver,pattern={{major}} - type=sha - type=raw,event=pr,value={{base_ref}} - - name: Set up QEMU uses: docker/setup-qemu-action@v2 @@ -111,16 +72,6 @@ jobs: username: ${{ secrets.ENTANDO_RHT_DOCKER_USERNAME }} password: ${{ secrets.ENTANDO_RHT_DOCKER_PASSWORD }} - - name: Build and publish EAP image - uses: docker/build-push-action@v4 - with: - context: ${{ env.DOCKER_IMAGE_CONTEXT }} - file: ${{ env.DOCKER_EAP_IMAGE_FILE }} - push: ${{ env.DOCKER_IMAGE_PUSH }} - tags: ${{ steps.meta-eap.outputs.tags }} - labels: ${{ steps.meta-eap.outputs.labels }} - platforms: ${{ env.DOCKER_EAP-WILDFLY_IMAGE_ARCHITECTURE }} - - name: Build and publish Tomcat image uses: docker/build-push-action@v4 with: @@ -129,14 +80,4 @@ jobs: push: ${{ env.DOCKER_IMAGE_PUSH }} tags: ${{ steps.meta-tomcat.outputs.tags }} labels: ${{ steps.meta-tomcat.outputs.labels }} - platforms: ${{ env.DOCKER_TOMCAT_IMAGE_ARCHITECTURE }} - - - name: Build and publish Wildfly image - uses: docker/build-push-action@v4 - with: - context: ${{ env.DOCKER_IMAGE_CONTEXT }} - file: ${{ env.DOCKER_WILDFLY_IMAGE_FILE }} - push: ${{ env.DOCKER_IMAGE_PUSH }} - tags: ${{ steps.meta-wildfly.outputs.tags }} - labels: ${{ steps.meta-wildfly.outputs.labels }} - platforms: ${{ env.DOCKER_EAP-WILDFLY_IMAGE_ARCHITECTURE }} \ No newline at end of file + platforms: ${{ env.DOCKER_TOMCAT_IMAGE_ARCHITECTURE }} \ No newline at end of file diff --git a/Dockerfile.eap b/Dockerfile.eap deleted file mode 100644 index f741654..0000000 --- a/Dockerfile.eap +++ /dev/null @@ -1,109 +0,0 @@ -# This image provides a very lightweight base for building and running Entando -# EAP based applications with an embedded Derby db. -# It builds using maven and runs the resulting artifacts on EAP -FROM registry.redhat.io/jboss-eap-7/eap73-openjdk11-openshift-rhel8:7.3.9 - -LABEL io.k8s.description="Platform for building and running Entando clustered applications on EAP 7.3" \ - io.k8s.display-name="Entando on EAP 7.3" - -ENV USERID_TO_USE=185 \ - STI_SCRIPTS_PATH="/usr/local/s2i" \ - ENTANDO_COMMON_PATH="/entando-common" \ - DATASOURCES="PORTDB,SERVDB" \ - PORTDB_NONXA="true" \ - PORTDB_JTA="false" \ - PORTDB_URL="jdbc:derby:/entando-data/databases/entandoPort;create=true" \ - PORTDB_JNDI="java:jboss/datasources/entandoPortDataSource" \ - PORTDB_DRIVER="derby" \ - PORTDB_USERNAME="agile" \ - PORTDB_PASSWORD="agile" \ - PORTDB_SERVICE_HOST="dummy" \ - PORTDB_SERVICE_PORT="1234" \ - PORTDB_BACKGROUND_VALIDATION="true" \ - PORTDB_EXCEPTION_SORTER="org.jboss.jca.adapters.jdbc.extensions.novendor.NullExceptionSorter" \ - PORTDB_BACKGROUND_VALIDATION_MILLIS="60000" \ - PORTDB_CONNECTION_CHECKER="org.jboss.jca.adapters.jdbc.extensions.novendor.NullValidConnectionChecker" \ - SERVDB_NONXA="true" \ - SERVDB_JTA="false" \ - SERVDB_URL="jdbc:derby:/entando-data/databases/entandoServ;create=true" \ - SERVDB_JNDI="java:jboss/datasources/entandoServDataSource" \ - SERVDB_DRIVER="derby" \ - SERVDB_USERNAME="agile" \ - SERVDB_PASSWORD="agile" \ - SERVDB_SERVICE_HOST="dummy" \ - SERVDB_SERVICE_PORT="1234" \ - SERVDB_BACKGROUND_VALIDATION="true" \ - SERVDB_BACKGROUND_VALIDATION_MILLIS="60000" \ - SERVDB_CONNECTION_CHECKER="org.jboss.jca.adapters.jdbc.extensions.novendor.NullValidConnectionChecker" \ - SERVDB_EXCEPTION_SORTER="org.jboss.jca.adapters.jdbc.extensions.novendor.NullExceptionSorter" \ - PREPARE_DATA="true" \ - DB_ENVIRONMENT="production" \ - DEPLOYMENTS_DIR="/opt/eap/standalone/deployments" \ - JBOSS_HOME="/opt/eap/" \ - ENTANDO_OIDC_ACTIVE="false" \ - ENTANDO_OIDC_AUTH_LOCATION="http://definitely.does.not.exist.com" \ - ENTANDO_OIDC_TOKEN_LOCATION="http://definitely.does.not.exist.com" \ - ENTANDO_OIDC_CLIENT_ID="dummy" \ - ENTANDO_OIDC_REDIRECT_BASE_URL="http://definitely.does.not.exist.com" \ - ALGO_DEFAULT_KEY="changeit" \ - KEYCLOAK_ENABLED="false" \ - KEYCLOAK_AUTH_URL="http://definitely.does.not.exist.com" \ - KEYCLOAK_REALM="dummy" \ - KEYCLOAK_CLIENT_ID="dummy" \ - KEYCLOAK_CLIENT_SECRET="dummy" \ - KEYCLOAK_PUBLIC_CLIENT_ID="dummy" \ - LOG_CONFIG_FILE_PATH="logback-default.xml" \ - LOGFILEPREFIX="/var/log/entando/engine_" \ - LOGACTIVEFILEOUTPUT="true" \ - LOGNAME="/var/log/entando/engine.log" \ - LOGFILEROTATEPATTERN="/var/log/entando/engine_%i.log.gz" \ - RESOURCEDISKROOTFOLDER="/entando-data/resources/" \ - PROTECTEDRESOURCEDISKROOTFOLDER="/entando-data/protected/" \ - INDEXDISKROOTFOLDER="/entando-data/entando-indices" \ - LC_ALL="en_US.UTF-8" \ - SPRING_PROFILES_ACTIVE="default" \ - JBOSS_MAX_POST_SIZE="1073741824" \ - FILE_UPLOAD_MAX_SIZE="52428800" \ - APPBUILDERINTEGRATIONENABLED="true" \ - APPBUILDERBASEURL="/app-builder/" - -COPY --chown=185:0 ./common/entando-dependencies-bootstrap "${ENTANDO_COMMON_PATH}" -COPY --chown=185:0 ./common/settings.xml /opt/app-root/src/.m2/settings.xml -COPY --chown=185:0 ./common/entando-common "${ENTANDO_COMMON_PATH}" -COPY --chown=185:0 ./common/jetty-runner /jetty-runner -COPY --chown=185:0 ./eap/modules /opt/eap/modules -COPY --chown=185:0 ./eap/standalone-openshift.xml /opt/eap/standalone/configuration -COPY --chown=185:0 ./eap/run ${STI_SCRIPTS_PATH}/run - -ARG DERBY_JDBC_DRIVER_VERSION=10.9.1.0 -ARG POSTGRESQL_JDBC_DRIVER_VERSION=42.2.25 -ARG MYSQL_JDBC_DRIVER_VERSION=8.0.28 -ARG ORACLE_JDBC_DRIVER_VERSION=21.4.0.0.1 -RUN curl https://repo1.maven.org/maven2/org/apache/derby/derby/${DERBY_JDBC_DRIVER_VERSION}/derby-${DERBY_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/derby.jar -RUN curl https://repo1.maven.org/maven2/org/apache/derby/derbyclient/${DERBY_JDBC_DRIVER_VERSION}/derbyclient-${DERBY_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/derbyclient.jar -RUN curl https://repo1.maven.org/maven2/org/postgresql/postgresql/${POSTGRESQL_JDBC_DRIVER_VERSION}/postgresql-${POSTGRESQL_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/postgresql.jar -RUN curl https://repo1.maven.org/maven2/mysql/mysql-connector-java/${MYSQL_JDBC_DRIVER_VERSION}/mysql-connector-java-${MYSQL_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/mysql-connector-java.jar -RUN curl https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/${ORACLE_JDBC_DRIVER_VERSION}/ojdbc8-${ORACLE_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/ojdbc8.jar - -RUN cp /jetty-runner/derby.jar /opt/eap/modules/org/apache/derby/main/ && \ - cp /jetty-runner/derbyclient.jar /opt/eap/modules/org/apache/derby/main/ && \ - cp /jetty-runner/postgresql.jar /opt/eap/modules/org/postgresql/main/ && \ - cp /jetty-runner/mysql-connector-java.jar /opt/eap/modules/com/mysql/main/ && \ - cp /jetty-runner/ojdbc8.jar /opt/eap/modules/com/oracle/main/ - -USER root - -RUN yum install -y glibc-locale-source glibc-langpack-en procps && \ - yum -y update && \ - localedef -c -f UTF-8 -i en_US en_US.UTF-8 && \ - chmod ug+rw /usr/lib/locale/locale-archive - -RUN mkdir -p /entando-data/databases && chown -Rf $USERID_TO_USE:0 /entando-data/ && chmod -Rf ug+rw /entando-data/ && \ - mkdir -p /entando-data-templates/databases && chown -Rf $USERID_TO_USE:0 /entando-data-templates/ && chmod -Rf ug+rw /entando-data-templates/ && \ - mkdir -p /var/log/entando && chown -Rf $USERID_TO_USE:0 /var/log/entando && chmod -Rf ug+rw /var/log/entando - -USER $USERID_TO_USE - -CMD "${STI_SCRIPTS_PATH}/run" - -VOLUME /entando-data diff --git a/Dockerfile.tomcat b/Dockerfile.tomcat index 6b78e05..2b3fe5d 100644 --- a/Dockerfile.tomcat +++ b/Dockerfile.tomcat @@ -1,7 +1,7 @@ -FROM tomcat:9.0.71-jdk11-temurin +FROM tomcat:10.1.46-jdk17-temurin -LABEL io.k8s.description="Platform for building and running Entando clustered applications on Apache Tomcat 9.0" \ - io.k8s.display-name="Entando on Apache Tomcat 9.0" +LABEL io.k8s.description="Platform for building and running Entando clustered applications on Apache Tomcat 10" \ + io.k8s.display-name="Entando on Apache Tomcat 10" ENV USERID_TO_USE=185 \ STI_SCRIPTS_PATH="/usr/local/tomcat/bin" \ @@ -58,9 +58,19 @@ RUN apt-get update && \ chmod -R ug+w /usr/local/tomcat -####################################### +####################################### +# Download Jetty Home 12 for database initialization +####################################### +ARG JETTY_VERSION=12.0.27 +RUN wget -O /tmp/jetty-home.tar.gz https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-home/${JETTY_VERSION}/jetty-home-${JETTY_VERSION}.tar.gz && \ + tar -xzf /tmp/jetty-home.tar.gz -C /tmp && \ + mv /tmp/jetty-home-${JETTY_VERSION} /jetty-home && \ + rm /tmp/jetty-home.tar.gz && \ + chown -R 185:0 /jetty-home + +####################################### # Copy scripts to prepare and run -####################################### +####################################### COPY --chown=185:0 ./common/entando-common "${ENTANDO_COMMON_PATH}" COPY --chown=185:0 ./common/jetty-runner /jetty-runner COPY --chown=185:0 tomcat/conf/setenv.sh /usr/local/tomcat/bin/setenv.sh @@ -69,19 +79,21 @@ COPY --chown=185:0 tomcat/run ${STI_SCRIPTS_PATH}/run ####################################### # Download and copy dbms drivers ####################################### -ARG DERBY_JDBC_DRIVER_VERSION=10.9.1.0 -ARG POSTGRESQL_JDBC_DRIVER_VERSION=42.2.25 -ARG MYSQL_JDBC_DRIVER_VERSION=8.0.28 -ARG ORACLE_JDBC_DRIVER_VERSION=21.4.0.0.1 +ARG DERBY_JDBC_DRIVER_VERSION=10.16.1.1 +ARG POSTGRESQL_JDBC_DRIVER_VERSION=42.7.8 +ARG MYSQL_JDBC_DRIVER_VERSION=9.4.0 +ARG ORACLE_JDBC_DRIVER_VERSION=23.9.0.25.07 RUN curl https://repo1.maven.org/maven2/org/apache/derby/derby/${DERBY_JDBC_DRIVER_VERSION}/derby-${DERBY_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/derby.jar +RUN curl https://repo1.maven.org/maven2/org/apache/derby/derbytools/${DERBY_JDBC_DRIVER_VERSION}/derbytools-${DERBY_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/derbytools.jar +RUN curl https://repo1.maven.org/maven2/org/apache/derby/derbyshared/${DERBY_JDBC_DRIVER_VERSION}/derbyshared-${DERBY_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/derbyshared.jar +RUN curl https://repo1.maven.org/maven2/org/apache/derby/derbynet/${DERBY_JDBC_DRIVER_VERSION}/derbynet-${DERBY_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/derbynet.jar RUN curl https://repo1.maven.org/maven2/org/apache/derby/derbyclient/${DERBY_JDBC_DRIVER_VERSION}/derbyclient-${DERBY_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/derbyclient.jar RUN curl https://repo1.maven.org/maven2/org/postgresql/postgresql/${POSTGRESQL_JDBC_DRIVER_VERSION}/postgresql-${POSTGRESQL_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/postgresql.jar -RUN curl https://repo1.maven.org/maven2/mysql/mysql-connector-java/${MYSQL_JDBC_DRIVER_VERSION}/mysql-connector-java-${MYSQL_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/mysql-connector-java.jar +RUN curl https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/${MYSQL_JDBC_DRIVER_VERSION}/mysql-connector-j-${MYSQL_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/mysql-connector-java.jar RUN curl https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/${ORACLE_JDBC_DRIVER_VERSION}/ojdbc8-${ORACLE_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/ojdbc8.jar RUN cp /jetty-runner/postgresql.jar /usr/local/tomcat/lib/ && \ - cp /jetty-runner/derby.jar /usr/local/tomcat/lib/ && \ - cp /jetty-runner/derbyclient.jar /usr/local/tomcat/lib/ && \ + cp /jetty-runner/derby*.jar /usr/local/tomcat/lib/ && \ cp /jetty-runner/mysql-connector-java.jar /usr/local/tomcat/lib/ && \ cp /jetty-runner/ojdbc8.jar /usr/local/tomcat/lib/ @@ -114,4 +126,4 @@ USER $USERID_TO_USE CMD "${STI_SCRIPTS_PATH}/run" -VOLUME /entando-data \ No newline at end of file +VOLUME /entando-data diff --git a/Dockerfile.wildfly b/Dockerfile.wildfly deleted file mode 100644 index 471e1c4..0000000 --- a/Dockerfile.wildfly +++ /dev/null @@ -1,105 +0,0 @@ -# This image provides a base for building and running Entando WildFly based applications. -# It builds using maven and runs the resulting artifacts on WildFly 17.0.0 Final -FROM quay.io/wildfly/wildfly-centos7:17.0 - -LABEL io.k8s.description="Platform for building and running Entando quickstart applications on WildFly 17.0.0.Final" \ - io.k8s.display-name="Entando on WildFly 17.0.0.Final" - -ENV USERID_TO_USE=185 \ - STI_SCRIPTS_PATH="/usr/libexec/s2i" \ - ENTANDO_COMMON_PATH="/entando-common" \ - PORTDB_NONXA="true" \ - PORTDB_JTA="false" \ - PORTDB_URL="jdbc:derby:/entando-data/databases/entandoPort;create=true" \ - PORTDB_JNDI="java:jboss/datasources/entandoPortDataSource" \ - PORTDB_DRIVER="derby" \ - PORTDB_USERNAME="agile" \ - PORTDB_PASSWORD="agile" \ - PORTDB_SERVICE_HOST="dummy" \ - PORTDB_SERVICE_PORT="1527" \ - PORTDB_CONNECTION_CHECKER="org.jboss.jca.adapters.jdbc.extensions.novendor.NullValidConnectionChecker" \ - PORTDB_EXCEPTION_SORTER="org.jboss.jca.adapters.jdbc.extensions.novendor.NullExceptionSorter" \ - SERVDB_NONXA="true" \ - SERVDB_JTA="false" \ - SERVDB_URL="jdbc:derby:/entando-data/databases/entandoServ;create=true" \ - SERVDB_JNDI="java:jboss/datasources/entandoServDataSource" \ - SERVDB_DRIVER="derby" \ - SERVDB_USERNAME="agile" \ - SERVDB_PASSWORD="agile" \ - SERVDB_SERVICE_HOST="dummy" \ - SERVDB_SERVICE_PORT="1527" \ - SERVDB_CONNECTION_CHECKER="org.jboss.jca.adapters.jdbc.extensions.novendor.NullValidConnectionChecker" \ - SERVDB_EXCEPTION_SORTER="org.jboss.jca.adapters.jdbc.extensions.novendor.NullExceptionSorter" \ - PREPARE_DATA="true" \ - DB_ENVIRONMENT="production" \ - JBOSS_HOME="/wildfly/" \ - DEPLOYMENTS_DIR="/wildfly/standalone/deployments" \ - ENTANDO_OIDC_ACTIVE="false" \ - ENTANDO_OIDC_AUTH_LOCATION="http://definitely.does.not.exist.com" \ - ENTANDO_OIDC_TOKEN_LOCATION="http://definitely.does.not.exist.com" \ - ENTANDO_OIDC_CLIENT_ID="dummy" \ - ENTANDO_OIDC_REDIRECT_BASE_URL="http://definitely.does.not.exist.com" \ - ALGO_DEFAULT_KEY="changeit" \ - KEYCLOAK_ENABLED="false" \ - KEYCLOAK_AUTH_URL="http://definitely.does.not.exist.com" \ - KEYCLOAK_REALM="dummy" \ - KEYCLOAK_CLIENT_ID="dummy" \ - KEYCLOAK_CLIENT_SECRET="dummy" \ - KEYCLOAK_PUBLIC_CLIENT_ID="dummy" \ - LOG_CONFIG_FILE_PATH="logback-default.xml" \ - LOGFILEPREFIX="/var/log/entando/engine_" \ - LOGNAME="/var/log/entando/engine.log" \ - LOGACTIVEFILEOUTPUT="true" \ - LOGFILEROTATEPATTERN="/var/log/entando/engine_%i.log.gz" \ - RESOURCEDISKROOTFOLDER="/entando-data/resources/" \ - PROTECTEDRESOURCEDISKROOTFOLDER="/entando-data/protected/" \ - INDEXDISKROOTFOLDER="/entando-data/entando-indices" \ - LC_ALL="en_US.UTF-8" \ - SPRING_PROFILES_ACTIVE="default" \ - JBOSS_MAX_POST_SIZE="1073741824" \ - FILE_UPLOAD_MAX_SIZE="52428800" \ - APPBUILDERINTEGRATIONENABLED="true" \ - APPBUILDERBASEURL="/app-builder/" - -COPY --chown=185:0 ./common/entando-dependencies-bootstrap "${ENTANDO_COMMON_PATH}" -COPY --chown=185:0 ./common/settings.xml /opt/app-root/src/.m2/settings.xml -COPY --chown=185:0 ./common/entando-common "${ENTANDO_COMMON_PATH}" -COPY --chown=185:0 ./common/jetty-runner /jetty-runner -COPY --chown=185:0 ./wildfly/contrib/wildfly-configuration/standalone.xml /wildfly/standalone/configuration/standalone.xml -COPY --chown=185:0 ./wildfly/run ${STI_SCRIPTS_PATH}/run -COPY --chown=185:0 ./wildfly/modules /wildfly/modules - -ARG DERBY_JDBC_DRIVER_VERSION=10.9.1.0 -ARG POSTGRESQL_JDBC_DRIVER_VERSION=42.2.25 -ARG MYSQL_JDBC_DRIVER_VERSION=8.0.28 -ARG ORACLE_JDBC_DRIVER_VERSION=21.4.0.0.1 -RUN curl https://repo1.maven.org/maven2/org/apache/derby/derby/${DERBY_JDBC_DRIVER_VERSION}/derby-${DERBY_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/derby.jar -RUN curl https://repo1.maven.org/maven2/org/apache/derby/derbyclient/${DERBY_JDBC_DRIVER_VERSION}/derbyclient-${DERBY_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/derbyclient.jar -RUN curl https://repo1.maven.org/maven2/org/postgresql/postgresql/${POSTGRESQL_JDBC_DRIVER_VERSION}/postgresql-${POSTGRESQL_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/postgresql.jar -RUN curl https://repo1.maven.org/maven2/mysql/mysql-connector-java/${MYSQL_JDBC_DRIVER_VERSION}/mysql-connector-java-${MYSQL_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/mysql-connector-java.jar -RUN curl https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/${ORACLE_JDBC_DRIVER_VERSION}/ojdbc8-${ORACLE_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/ojdbc8.jar - -RUN cp /jetty-runner/derby.jar /wildfly/modules/org/apache/derby/main/ && \ - cp /jetty-runner/derbyclient.jar /wildfly/modules/org/apache/derby/main/ && \ - cp /jetty-runner/postgresql.jar /wildfly/modules/org/postgresql/main/ && \ - cp /jetty-runner/mysql-connector-java.jar /wildfly/modules/com/mysql/main/ && \ - cp /jetty-runner/ojdbc8.jar /wildfly/modules/com/oracle/main/ - -USER root - -RUN mkdir -p /entando-data/databases && chown -Rf $USERID_TO_USE:0 /entando-data/ && chmod -Rf ug+rw /entando-data/ && \ - mkdir -p /entando-data-templates && chown -Rf $USERID_TO_USE:0 /entando-data-templates/ && chmod -Rf ug+rw /entando-data-templates/ - -RUN yum install -y ImageMagick java-11-openjdk && yum update -y && yum clean all - -RUN localedef -c -f UTF-8 -i en_US en_US.UTF-8 && \ - chmod ug+rw /usr/lib/locale/locale-archive && \ - mkdir -p /entando-data/databases && chown -Rf $USERID_TO_USE:0 /entando-data/ && chmod -Rf ug+rw /entando-data/ && \ - mkdir -p /entando-data-templates/databases && chown -Rf $USERID_TO_USE:0 /entando-data-templates/ && chmod -Rf ug+rw /entando-data-templates/ && \ - mkdir -p /var/log/entando && chown -Rf $USERID_TO_USE:0 /var/log/entando && chmod -Rf ug+rw /var/log/entando - -USER $USERID_TO_USE - -CMD "${STI_SCRIPTS_PATH}/run" - -VOLUME /entando-data \ No newline at end of file diff --git a/common/entando-common/build-jetty-command.sh b/common/entando-common/build-jetty-command.sh index aaa2c1e..44d6f27 100755 --- a/common/entando-common/build-jetty-command.sh +++ b/common/entando-common/build-jetty-command.sh @@ -27,7 +27,7 @@ if [ -z "$JETTY_VERSION" ]; then JETTY_VERSION=9.4.8.v20180619 ;; *) - JETTY_VERSION=10.0.7 + JETTY_VERSION=12.0.27 ;; esac fi @@ -64,12 +64,47 @@ cp -Rf resources /entando-data/ cp -Rf protected /entando-data/ -cp /jetty-runner/jetty.xml . -# Running without -jar option in order to add SLF4J classes to the classpath and actually see Jetty logs -export JETTY_COMMAND="java -cp "/jetty-runner/*" \ +# Use Jetty Home 12 with proper configuration +export JETTY_HOME=/jetty-home +export JETTY_BASE=/tmp/entando-jetty-base + +# Create Jetty base directory structure +mkdir -p $JETTY_BASE/{webapps,lib,etc,resources} + +# Copy the exploded WAR as ROOT webapp (will be deployed at /) +cp -r /tmp/entando-db-build $JETTY_BASE/webapps/ROOT + +# Copy JDBC drivers to webapp lib so they're available to the application +cp /jetty-runner/derby*.jar $JETTY_BASE/webapps/ROOT/WEB-INF/lib/ +cp /jetty-runner/postgresql.jar $JETTY_BASE/webapps/ROOT/WEB-INF/lib/ +cp /jetty-runner/mysql-connector-java.jar $JETTY_BASE/webapps/ROOT/WEB-INF/lib/ +cp /jetty-runner/ojdbc8.jar $JETTY_BASE/webapps/ROOT/WEB-INF/lib/ + +# Copy additional libraries needed for JNDI datasources to Jetty base lib +cp /jetty-runner/*.jar $JETTY_BASE/lib/ + +# Copy the existing jetty.xml configuration file as jetty-web.xml for the webapp +cp /jetty-runner/jetty.xml $JETTY_BASE/webapps/ROOT/WEB-INF/jetty-web.xml + +# Create jetty base start configuration +cat > $JETTY_BASE/start.ini << 'INI_EOF' +--module=server +--module=http +--module=ee10-deploy +--module=ee10-webapp +--module=ee10-plus +--module=ee10-annotations +--module=ee10-jsp +jetty.http.port=8080 +INI_EOF + +# Build Jetty command directly like the old version +export JETTY_COMMAND="java \ + -Djetty.home=/jetty-home \ + -Djetty.base=/tmp/entando-jetty-base \ -Ddb.migration.strategy=auto \ -Ddb.restore.enabled=true \ - -Dentando.web.context="${ENTANDO_WEB_CONTEXT}" \ + -Dentando.web.context=${ENTANDO_WEB_CONTEXT} \ -Dprofile.datasource.jndiname.servdb=${SERVDB_JNDI} \ -Dprofile.datasource.jndiname.portdb=${PORTDB_JNDI} \ -Dprofile.database.url.portdb=${PORTDB_URL} \ @@ -90,5 +125,4 @@ export JETTY_COMMAND="java -cp "/jetty-runner/*" \ -DresourceDiskRootFolder=/entando-data/resources/ \ -DprotectedResourceDiskRootFolder=/entando-data/protected/ \ -DindexDiskRootFolder=/tmp/entando-indices \ - org.eclipse.jetty.runner.Runner \ - --lib /jetty-runner . jetty.xml" + -jar /jetty-home/start.jar" diff --git a/common/entando-common/init-db-from-war.sh b/common/entando-common/init-db-from-war.sh index 360bf72..5bb6de6 100755 --- a/common/entando-common/init-db-from-war.sh +++ b/common/entando-common/init-db-from-war.sh @@ -6,14 +6,14 @@ set -f $JETTY_COMMAND &> db_creation.log & set +f export JETTY_PID=$(echo $!) -echo "JETTY_PID=${JETTY_PID}" -sleep 3 -tail -f db_creation.log & +#echo "JETTY_PID=${JETTY_PID}" +echo "Waiting for database initialization to complete..." for i in {1..720} do - sleep 1 + sleep 3 if [[ -f db_creation.log ]] && fgrep --quiet "INIT DONE Entando" "db_creation.log" ; then # Attempt killing Jetty only AFTER waiting for it to terminate + echo "Database initialization completed successfully!" (echo "Waiting for Jetty process [$JETTY_PID] to shut down"; sleep 3; ps; kill -9 ${JETTY_PID}; ps) & wait ${JETTY_PID} if fgrep --quiet "java.util.ConcurrentModificationException" "db_creation.log" || fgrep --quiet "java.lang.ArrayIndexOutOfBoundsException" "db_creation.log" ; then diff --git a/common/jetty-runner/jetty-runner-10.0.7.jar b/common/jetty-runner/jetty-runner-10.0.7.jar deleted file mode 100644 index cc32adf..0000000 Binary files a/common/jetty-runner/jetty-runner-10.0.7.jar and /dev/null differ diff --git a/common/jetty-runner/jetty.xml b/common/jetty-runner/jetty.xml index f89d998..11f820b 100644 --- a/common/jetty-runner/jetty.xml +++ b/common/jetty-runner/jetty.xml @@ -1,7 +1,7 @@ - + - + diff --git a/entando-project b/entando-project index cb8528f..41c2e5a 100644 --- a/entando-project +++ b/entando-project @@ -1,5 +1,5 @@ ENTANDO_PRJ_NAME=entando-app-engine-base -ENTANDO_PRJ_VERSION=7.4.0-SNAPSHOT +ENTANDO_PRJ_VERSION=7.5.0-SNAPSHOT ENTANDO_PRJ_IMAGE_NAME=entando-app-engine-base ENTANDO_PRJ_IMAGE_REGISTRY="registry.hub.docker.com" ENTANDO_PRJ_BUILD_COMMAND=.ent/enp-build.sh diff --git a/tomcat/conf/server.xml b/tomcat/conf/server.xml index cc6164e..4c00bc8 100644 --- a/tomcat/conf/server.xml +++ b/tomcat/conf/server.xml @@ -20,7 +20,7 @@ Documentation at /docs/config/server.html --> - + diff --git a/tomcat/conf/setenv.sh b/tomcat/conf/setenv.sh index 26e3340..3edb265 100755 --- a/tomcat/conf/setenv.sh +++ b/tomcat/conf/setenv.sh @@ -91,3 +91,28 @@ export CATALINA_OPTS="$CATALINA_OPTS -DprotectedResourceDiskRootFolder=/entando- export CATALINA_OPTS="$CATALINA_OPTS -DindexDiskRootFolder=/entando-data/entando-indices" export CATALINA_OPTS="$CATALINA_OPTS -Ddb.environment=production" export CATALINA_OPTS="$CATALINA_OPTS -Dfile.upload.maxSize=${FILE_UPLOAD_MAX_SIZE:-52428800}" + +################## +# CORS configs +################## +export CATALINA_OPTS="$CATALINA_OPTS -Dcors.enabled=${CORS_ENABLED:-true}" +export CATALINA_OPTS="$CATALINA_OPTS -Dcors.access.control.allow.origin=${CORS_ALLOW_ORIGIN:-*}" + +################## +# Cookie SameSite policies / secure +################## +export CATALINA_OPTS="$CATALINA_OPTS -Ddefault.samesite.policy=${DEFAULT_SAMESITE_POLICY:-}" +export CATALINA_OPTS="$CATALINA_OPTS -Djsessionid.samesite.policy=${JSESSIONID_SAMESITE_POLICY:-Strict}" + +################## +# Log CATALINA_OPTS masking sensitive values +# (VersionLoggerListener logArgs is disabled in server.xml) +################## +MASKED_OPTS=$(echo "$CATALINA_OPTS" \ + | sed -E 's/(-D[^ ]*\.(password|username|url)=)[^ ]*/\1******/gi' \ + | tr ' ' '\n' \ + | sed '/^$/d' \ + | sed 's/^/ /') +echo "CATALINA_OPTS:" +echo "$MASKED_OPTS" +echo "" \ No newline at end of file diff --git a/tomcat/conf/web.xml b/tomcat/conf/web.xml index 5bb4b73..7e7cf8d 100644 --- a/tomcat/conf/web.xml +++ b/tomcat/conf/web.xml @@ -15,11 +15,11 @@ See the License for the specific language governing permissions and limitations under the License. --> - + xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee + https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" + version="6.0"> @@ -32,6 +32,11 @@ + + UTF-8 + UTF-8 + + @@ -73,12 +78,15 @@ - + + + + @@ -106,9 +114,11 @@ - - - + + + + + default @@ -148,9 +158,9 @@ - + - + @@ -190,10 +200,6 @@ - - - - @@ -372,7 +378,7 @@ - + @@ -383,7 +389,7 @@ - + @@ -851,6 +857,10 @@ avi video/x-msvideo + + avif + image/avif + avx video/x-rad-screenplay @@ -1779,6 +1789,10 @@ ggb application/vnd.geogebra.file + + ggs + application/vnd.geogebra.slides + ggt application/vnd.geogebra.tool @@ -2133,7 +2147,7 @@ js - application/javascript + text/javascript jsf @@ -2151,6 +2165,10 @@ jspf text/plain + + jxl + image/jxl + kar audio/midi @@ -2319,6 +2337,14 @@ m2a audio/mpeg + + m2t + video/mp2t + + + m2ts + video/mp2t + m2v video/mpeg @@ -2483,6 +2509,10 @@ mjp2 video/mj2 + + mjs + text/javascript + mk3d video/x-matroska @@ -2685,7 +2715,7 @@ mts - model/vnd.mts + video/mp2t mus @@ -2921,6 +2951,10 @@ oprc application/vnd.palm + + opus + audio/ogg + org application/vnd.lotus-organizer @@ -3587,11 +3621,11 @@ application/shf+xml + + shtml + text/x-server-parsed-html + + --> sid image/x-mrsid-image @@ -3968,6 +4002,10 @@ trm application/x-msterminal + + ts + video/mp2t + tsd application/timestamped-data diff --git a/tomcat/libs/jakarta.servlet.jsp.jstl-3.0.1.jar b/tomcat/libs/jakarta.servlet.jsp.jstl-3.0.1.jar new file mode 100644 index 0000000..6b2f43f Binary files /dev/null and b/tomcat/libs/jakarta.servlet.jsp.jstl-3.0.1.jar differ diff --git a/tomcat/libs/jakarta.servlet.jsp.jstl-api-3.0.1.jar b/tomcat/libs/jakarta.servlet.jsp.jstl-api-3.0.1.jar new file mode 100644 index 0000000..86e7f0c Binary files /dev/null and b/tomcat/libs/jakarta.servlet.jsp.jstl-api-3.0.1.jar differ diff --git a/tomcat/libs/jstl-1.2.jar b/tomcat/libs/jstl-1.2.jar deleted file mode 100644 index 0fd275e..0000000 Binary files a/tomcat/libs/jstl-1.2.jar and /dev/null differ