diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index d6da913..01109b2 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -15,13 +15,14 @@ jobs: steps: # Setup java environment - name: setup-java - uses: actions/setup-java@v1 + uses: actions/setup-java@v4 with: - java-version: 11 + distribution: temurin + java-version: 17 # Checkout the git repository - name: checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} token: ${{ secrets.GPR_TOKEN }} @@ -33,7 +34,7 @@ jobs: # Setup/load GitHub Actions caching for external dependencies, in this case especially for Maven - name: caching - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} @@ -58,7 +59,7 @@ jobs: SONAR_TOKEN: ${{ secrets.OS_SONAR_TOKEN }} run: | export SONAR_ORGANIZATION=$(echo ${GITHUB_REPOSITORY} | cut -d / -f 1) - mvn sonar:sonar \ + mvn org.sonarsource.scanner.maven:sonar-maven-plugin:5.0.0.4389:sonar \ -Dsonar.host.url=${SONAR_HOST} \ -Dsonar.login=${SONAR_TOKEN} \ -Dsonar.organization=${SONAR_ORGANIZATION} \ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3879c8d..e54bfb1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,9 +19,10 @@ jobs: steps: # Setup java environment - name: setup-java - uses: actions/setup-java@v1 + uses: actions/setup-java@v4 with: - java-version: 11 + distribution: temurin + java-version: 17 server-id: ossrh server-username: OSSRH_USERNAME server-password: OSSRH_PASSWORD @@ -38,7 +39,7 @@ jobs: # Checkout the git repository - name: checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} token: ${{ secrets.GPR_TOKEN }} @@ -50,7 +51,7 @@ jobs: # Setup GitHub Actions caching for external dependencies, in this case especially for Maven - name: caching - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} @@ -71,7 +72,7 @@ jobs: SONAR_TOKEN: ${{ secrets.OS_SONAR_TOKEN }} run: | export SONAR_ORGANIZATION=$(echo ${GITHUB_REPOSITORY} | cut -d / -f 1) - mvn sonar:sonar \ + mvn org.sonarsource.scanner.maven:sonar-maven-plugin:5.0.0.4389:sonar \ -Dsonar.host.url=${SONAR_HOST} \ -Dsonar.login=${SONAR_TOKEN} \ -Dsonar.organization=${SONAR_ORGANIZATION} \ @@ -81,7 +82,7 @@ jobs: # Get the current project version from POM - name: get-project-version id: get_project_version - uses: avides/actions-project-version-check@v1 + uses: avides/actions-project-version-check@v2 with: token: ${{ secrets.GITHUB_TOKEN }} file-to-check: pom.xml @@ -93,19 +94,16 @@ jobs: env: PROJECT_VERSION: ${{ steps.get_project_version.outputs.version }} run: | - echo ::set-output name=gitcommitmessage::$(git log --no-merges -1 --oneline) + echo "gitcommitmessage=$(git log --no-merges -1 --oneline)" >> $GITHUB_OUTPUT if [[ "$PROJECT_VERSION" == *"SNAPSHOT"* || "$PROJECT_VERSION" == *"RC"* ]]; then - echo ::set-output name=isprerelease::true + echo "isprerelease=true" >> $GITHUB_OUTPUT fi # Create and publish GitHub Release tag - name: github-release - uses: actions/create-release@v1 - continue-on-error: true - env: - GITHUB_TOKEN: ${{ secrets.GPR_TOKEN }} + uses: softprops/action-gh-release@v2 with: + token: ${{ secrets.GPR_TOKEN }} tag_name: ${{ steps.get_project_version.outputs.version }} - release_name: ${{ steps.get_project_version.outputs.version }} body: ${{ steps.setup_github_release.outputs.gitcommitmessage }} prerelease: ${{ steps.setup_github_release.outputs.isprerelease }} diff --git a/.github/workflows/review.yml b/.github/workflows/review.yml index e358957..1675602 100644 --- a/.github/workflows/review.yml +++ b/.github/workflows/review.yml @@ -9,25 +9,24 @@ on: jobs: review: timeout-minutes: 30 - + runs-on: ubuntu-latest - steps: - # Cancels previous run for this branch that have a different commit id (SHA) - - name: cancel-previous-run - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ github.token }} + concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + steps: # Setup java environment - name: setup-java - uses: actions/setup-java@v1 + uses: actions/setup-java@v4 with: - java-version: 11 + distribution: temurin + java-version: 17 # Checkout the git repository - name: checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} token: ${{ secrets.GPR_TOKEN }} @@ -39,14 +38,14 @@ jobs: # Update GitHub Action configuration if necessary - name: action-configuration-autoupdate - uses: avides/actions-action-configuration-autoupdate@v1 + uses: avides/actions-action-configuration-autoupdate@v2 with: token: ${{ secrets.GPR_TOKEN }} actions-configuration-files: os-java-library/nightly.yml,os-java-library/release.yml,os-java-library/review.yml source-repository: ${{ secrets.ACTIONS_CONFIG_AUTOUPDATE_REPO }} # Push updated GitHub Actions configuration if necessary - - uses: stefanzweifel/git-auto-commit-action@v4 + - uses: stefanzweifel/git-auto-commit-action@v5 with: file_pattern: .github/workflows/*.yml commit_user_name: ${{ secrets.ACTIONS_CONFIG_AUTOUPDATE_USER }} @@ -56,34 +55,45 @@ jobs: # Verify project version is updated - name: project-version-check - uses: avides/actions-project-version-check@v1 + uses: avides/actions-project-version-check@v2 with: token: ${{ secrets.GITHUB_TOKEN }} file-to-check: pom.xml additional-files-to-check: README.md - # Check if documentation reminder comment is already given - - name: find-documentation-reminder-comment - uses: peter-evans/find-comment@v1 - id: find_documentation_reminder_comment + # Check if reminder comment is already given + - name: find-reminder-comment + uses: peter-evans/find-comment@v3 + id: find_reminder_comment with: issue-number: ${{ github.event.number }} body-includes: "Confluence/GitHub documentation added or updated?" - # Add documentation reminder comment if not given - - name: documentation-reminder-comment - uses: jungwinter/comment@v1 + # Add reminder comment if not given + - name: reminder-comment + uses: peter-evans/create-or-update-comment@v4 id: create - if: ${{ steps.find_documentation_reminder_comment.outputs.comment-id == 0 }} + if: ${{ steps.find_reminder_comment.outputs.comment-id == 0 }} with: - type: create - body: 'Confluence/GitHub documentation added or updated?' - issue_number: ${{ github.event.number }} + body: | + - Confluence/GitHub documentation added or updated? + - Diff-Links as response added? + - [ ] Not necessary + - [ ] Added + + - [Breaking-Change]() present? + - Necessary deployment adjustments added as a comment (Jira-Ticket)? + - [ ] Not necessary + - [ ] Added + - Necessary rollback adjustments added as a comment (Jira-Ticket)? + - [ ] Not necessary + - [ ] Added + issue-number: ${{ github.event.number }} token: ${{ secrets.GITHUB_TOKEN }} # Setup/load GitHub Actions caching for external dependencies, in this case especially for Maven - name: caching - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} @@ -109,7 +119,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | export SONAR_ORGANIZATION=$(echo ${GITHUB_REPOSITORY} | cut -d / -f 1) - mvn sonar:sonar \ + mvn org.sonarsource.scanner.maven:sonar-maven-plugin:5.0.0.4389:sonar \ -Dsonar.host.url=${SONAR_HOST} \ -Dsonar.login=${SONAR_TOKEN} \ -Dsonar.organization=${SONAR_ORGANIZATION} \ diff --git a/README.md b/README.md index e5a434e..4561636 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ com.avides.springboot.springtainer springtainer-elasticsearch - 1.4.0 + 2.0.0 test ``` @@ -25,7 +25,7 @@ Properties consumed (in `bootstrap.properties`): - `embedded.container.elasticsearch.enabled` (default is `true`) - `embedded.container.elasticsearch.startup-timeout` (default is `30`) -- `embedded.container.elasticsearch.docker-image` (default is `docker.elastic.co/elasticsearch/elasticsearch:7.17.9`) +- `embedded.container.elasticsearch.docker-image` (default is `docker.elastic.co/elasticsearch/elasticsearch:8.17.3`) - `embedded.container.elasticsearch.http-port` (default is `9200`) - `embedded.container.elasticsearch.transport-host` (default is `9300`) diff --git a/pom.xml b/pom.xml index 1571358..116fce2 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ com.avides.springboot.springtainer springtainer-elasticsearch - 1.4.0 + 2.0.0 springtainer-elasticsearch Elasticsearch test-container @@ -63,7 +63,7 @@ 1.18.26 4.13.2 1.7.36 - 4.3.10 + 4.4.18 2.13.4 0.8.8 diff --git a/src/main/java/com/avides/springboot/springtainer/elasticsearch/ElasticsearchProperties.java b/src/main/java/com/avides/springboot/springtainer/elasticsearch/ElasticsearchProperties.java index bce69ef..22b9b3b 100644 --- a/src/main/java/com/avides/springboot/springtainer/elasticsearch/ElasticsearchProperties.java +++ b/src/main/java/com/avides/springboot/springtainer/elasticsearch/ElasticsearchProperties.java @@ -22,6 +22,6 @@ public class ElasticsearchProperties extends AbstractEmbeddedContainerProperties public ElasticsearchProperties() { - setDockerImage("docker.elastic.co/elasticsearch/elasticsearch:7.17.9"); + setDockerImage("docker.elastic.co/elasticsearch/elasticsearch:8.17.3"); } } diff --git a/src/main/java/com/avides/springboot/springtainer/elasticsearch/EmbeddedElasticsearchContainerAutoConfiguration.java b/src/main/java/com/avides/springboot/springtainer/elasticsearch/EmbeddedElasticsearchContainerAutoConfiguration.java index 21cc51f..306a56d 100644 --- a/src/main/java/com/avides/springboot/springtainer/elasticsearch/EmbeddedElasticsearchContainerAutoConfiguration.java +++ b/src/main/java/com/avides/springboot/springtainer/elasticsearch/EmbeddedElasticsearchContainerAutoConfiguration.java @@ -50,7 +50,6 @@ protected List getEnvs() List envs = new ArrayList<>(); envs.add("discovery.type=single-node"); envs.add("xpack.security.enabled=false"); - envs.add("xpack.monitoring.enabled=false"); envs.add("xpack.ml.enabled=false"); envs.add("xpack.graph.enabled=false"); envs.add("xpack.watcher.enabled=false"); diff --git a/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/src/main/resources/META-INF/additional-spring-configuration-metadata.json index beaf499..f61eebc 100644 --- a/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -17,7 +17,7 @@ "name": "embedded.container.elasticsearch.docker-image", "type": "java.lang.String", "description": "Docker-image", - "defaultValue": "docker.elastic.co/elasticsearch/elasticsearch:7.17.9" + "defaultValue": "docker.elastic.co/elasticsearch/elasticsearch:8.17.3" }, { "name": "embedded.container.elasticsearch.http-port", diff --git a/src/test/java/com/avides/springboot/springtainer/elasticsearch/AbstractIT.java b/src/test/java/com/avides/springboot/springtainer/elasticsearch/AbstractIT.java index 8097d1f..83059dc 100644 --- a/src/test/java/com/avides/springboot/springtainer/elasticsearch/AbstractIT.java +++ b/src/test/java/com/avides/springboot/springtainer/elasticsearch/AbstractIT.java @@ -15,6 +15,7 @@ import org.springframework.data.elasticsearch.core.query.IndexQuery; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.util.ReflectionUtils; import com.github.dockerjava.api.DockerClient; import com.github.dockerjava.core.DockerClientBuilder; @@ -53,7 +54,14 @@ public ElasticsearchRestTemplate elasticsearchRestTemplate() { var builder = RestClient.builder(new HttpHost(host, port)); var client = new RestHighLevelClient(builder); - + ReflectionUtils.doWithFields(RestHighLevelClient.class, field -> + { + if (field.getName().equals("useAPICompatibility")) + { + ReflectionUtils.makeAccessible(field); + field.setBoolean(client, true); + } + }); return new ElasticsearchRestTemplate(client); } } diff --git a/src/test/java/com/avides/springboot/springtainer/elasticsearch/ElasticsearchPropertiesTest.java b/src/test/java/com/avides/springboot/springtainer/elasticsearch/ElasticsearchPropertiesTest.java index 1271d0f..b0f64eb 100644 --- a/src/test/java/com/avides/springboot/springtainer/elasticsearch/ElasticsearchPropertiesTest.java +++ b/src/test/java/com/avides/springboot/springtainer/elasticsearch/ElasticsearchPropertiesTest.java @@ -13,7 +13,7 @@ public void testDefaults() var properties = new ElasticsearchProperties(); assertTrue(properties.isEnabled()); assertEquals(30, properties.getStartupTimeout()); - assertEquals("docker.elastic.co/elasticsearch/elasticsearch:7.17.9", properties.getDockerImage()); + assertEquals("docker.elastic.co/elasticsearch/elasticsearch:8.17.3", properties.getDockerImage()); assertEquals(9200, properties.getHttpPort()); assertEquals(9300, properties.getTransportPort());