diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 23d1af0f4..f45e9e927 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -16,11 +16,6 @@ updates:
schedule:
interval: "daily"
time: "02:00"
- - package-ecosystem: "maven"
- directory: "quarkus-build-caching-extension"
- schedule:
- interval: "daily"
- time: "02:00"
- package-ecosystem: "gradle"
directory: "common-develocity-gradle-configuration-groovy"
registries:
diff --git a/.github/workflows/quarkus-build-caching-extension.yml b/.github/workflows/quarkus-build-caching-extension.yml
deleted file mode 100644
index 4e711d971..000000000
--- a/.github/workflows/quarkus-build-caching-extension.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-name: Verify Quarkus Build Caching Extension
-
-on:
- schedule:
- # Every Sunday at 9.00am - scheduled to test against latest Quarkus version
- - cron: "0 9 * * 0"
- push:
- branches: [ main ]
- paths: [ 'quarkus-build-caching-extension/**', '.github/workflows/**' ]
- pull_request:
- branches: [ main ]
- paths: [ 'quarkus-build-caching-extension/**', '.github/workflows/**' ]
- workflow_dispatch:
-
-jobs:
- verification:
- name: Verification
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- - name: Set up JDK 17
- uses: actions/setup-java@v4
- with:
- java-version: '17'
- distribution: 'temurin'
- - name: Build with Maven
- working-directory: quarkus-build-caching-extension
- run: |
- ./mvnw --batch-mode clean package integration-test
- env:
- DEVELOCITY_ACCESS_KEY: ${{ secrets.DV_SOLUTIONS_ACCESS_KEY }}
- - name: Upload integration tests reports (on failure only)
- if: ${{ failure() }}
- uses: actions/upload-artifact@v4
- with:
- name: Integration tests logs
- path: |
- quarkus-build-caching-extension/target/it/**/*.log
diff --git a/quarkus-build-caching-extension/.gitignore b/quarkus-build-caching-extension/.gitignore
deleted file mode 100644
index 4e52bccf3..000000000
--- a/quarkus-build-caching-extension/.gitignore
+++ /dev/null
@@ -1,41 +0,0 @@
-#Maven
-target/
-pom.xml.tag
-pom.xml.releaseBackup
-pom.xml.versionsBackup
-release.properties
-.flattened-pom.xml
-
-# Eclipse
-.project
-.classpath
-.settings/
-bin/
-
-# IntelliJ
-.idea
-*.ipr
-*.iml
-*.iws
-
-# NetBeans
-nb-configuration.xml
-
-# Visual Studio Code
-.vscode
-.factorypath
-
-# OSX
-.DS_Store
-
-# Vim
-*.swp
-*.swo
-
-# patch
-*.orig
-*.rej
-
-# Local environment
-.env
-.mvn/.develocity/
diff --git a/quarkus-build-caching-extension/.mvn/develocity.xml b/quarkus-build-caching-extension/.mvn/develocity.xml
deleted file mode 100644
index 87f8f3344..000000000
--- a/quarkus-build-caching-extension/.mvn/develocity.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- https://ge.solutions-team.gradle.com
-
-
-
-
-
- #{isFalse(env['GITHUB_ACTIONS'])}
-
- #{{'0.0.0.0'}}
-
-
-
-
- #{isTrue(env['GITHUB_ACTIONS'])}
-
-
-
diff --git a/quarkus-build-caching-extension/.mvn/extensions.xml b/quarkus-build-caching-extension/.mvn/extensions.xml
deleted file mode 100644
index c7f99fccd..000000000
--- a/quarkus-build-caching-extension/.mvn/extensions.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
- com.gradle
- develocity-maven-extension
- 1.23
-
-
- com.gradle
- common-custom-user-data-maven-extension
- 2.0.1
-
-
diff --git a/quarkus-build-caching-extension/.mvn/wrapper/.gitignore b/quarkus-build-caching-extension/.mvn/wrapper/.gitignore
deleted file mode 100644
index e72f5e8b7..000000000
--- a/quarkus-build-caching-extension/.mvn/wrapper/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-maven-wrapper.jar
diff --git a/quarkus-build-caching-extension/.mvn/wrapper/maven-wrapper.properties b/quarkus-build-caching-extension/.mvn/wrapper/maven-wrapper.properties
deleted file mode 100644
index d58dfb70b..000000000
--- a/quarkus-build-caching-extension/.mvn/wrapper/maven-wrapper.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-wrapperVersion=3.3.2
-distributionType=only-script
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
diff --git a/quarkus-build-caching-extension/LICENSE b/quarkus-build-caching-extension/LICENSE
deleted file mode 100644
index f49a4e16e..000000000
--- a/quarkus-build-caching-extension/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
\ No newline at end of file
diff --git a/quarkus-build-caching-extension/README.md b/quarkus-build-caching-extension/README.md
index ceb04f419..25633673b 100644
--- a/quarkus-build-caching-extension/README.md
+++ b/quarkus-build-caching-extension/README.md
@@ -1,359 +1,3 @@
# Custom Maven Extension to make Quarkus build goal cacheable
-This Maven extension allows to make the [Quarkus Maven plugin](https://quarkus.io/guides/quarkus-maven-plugin) `build` goal cacheable.
-This project performs programmatic configuration of the [Develocity Build Cache](https://docs.gradle.com/develocity/maven-extension/current/#using_the_build_cache) through a Maven extension. See [here](https://docs.gradle.com/develocity/maven-extension/current/#custom_extension) for more details.
-
-*Note:*
-A native executable can be a very large file. Copying it from/to the local cache, or transferring it from/to the remote cache can be an expensive operation that has to be balanced with the duration of the work being avoided.
-
-## Requirements
-Quarkus 3.2.4 and above which brings [track-config-changes goal](https://quarkus.io/guides/config-reference#tracking-build-time-configuration-changes-between-builds)
-
-> [!NOTE]
-> Although Quarkus 3.2.4 is required, 3.9.0 and above is recommended as it exposes [Quarkus extra dependencies](#quarkus-extra-dependencies) which is added as extra input by the current extension.
->
-> This additional input is necessary when using snapshot versions (or when overwriting fixed version) of
-> - The Quarkus dependencies
-> - A custom Quarkus extension
-
-## Limitations
-
-### Supported package types
-Only the `native`, `uber-jar`, `jar` and `legacy-jar` [packaging types](https://quarkus.io/guides/maven-tooling#quarkus-package-pkg-package-config_quarkus.package.type) can be made cacheable
-
-### Build strategy
-By default, the `native` packaging is cacheable only if the in-container build strategy (`quarkus.native.container-build=true`) is configured along with a fixed build image (`quarkus.native.builder-image`).
-The in-container build strategy means the build is as reproducible as possible. Even so, some timestamps and instruction ordering may be different even when built on the same system in the same environment.
-
-If the build environments are strictly identical, this restriction can be removed by setting `DEVELOCITY_QUARKUS_NATIVE_BUILD_IN_CONTAINER_REQUIRED=false`. See [configuration section](#build-strategy-1) for more details.
-
-> [!NOTE]
-> When the in-container build strategy is used as a fallback the caching feature will be disabled. The fallback may happen due to GraalVM requirements not met. The recommendation is to explicitly set the in-container strategy (`quarkus.native.container-build=true`) to benefit from caching
-
-## Usage
-
-### Extension declaration
-
-Reference the extension in `.mvn/extensions.xml` (this extension requires the develocity-maven-extension):
-
-```xml
-
-
- com.gradle
- develocity-maven-extension
- 1.23
-
-
- com.gradle
- quarkus-build-caching-extension
- 1.8
-
-
-```
-
-Note on the Compatibility with The Develocity extension:
-
-| Extension | Compatible version |
-|------------------------------------------------|--------------------|
-| `com.gradle:develocity-maven-extension` | 1.+ |
-| `com.gradle:gradle-enterprise-maven-extension` | 0.12 |
-
-### The `quarkus-maven-plugin` configuration
-
-Enable [Quarkus config tracking](https://quarkus.io/guides/config-reference#dumping-build-time-configuration-options-read-during-the-build) in `pom.xml`:
-
-```xml
-
- true
-
-```
-
-Add the `track-prod-config-changes` execution to the `quarkus-maven-plugin` configuration:
-
-```xml
-
- ${quarkus.platform.group-id}
- quarkus-maven-plugin
- ${quarkus.platform.version}
- true
-
-
- track-prod-config-changes
- process-resources
-
- track-config-changes
-
-
- true
-
-
-
-
- build
- generate-code
- generate-code-tests
-
-
-
-
-```
-
-### Quarkus configuration dump initialization
-
-After applying the quarkus-maven-plugin [configuration step](#quarkus-maven-plugin-configuration), invoke the Quarkus `build` goal to generate the `.quarkus/quarkus-prod-config-dump` file.
-This file is required to make the Quarkus `build` goal cacheable.
-
-The file should be checked-in to the source code repository.
-in continuous integration environment, an alternative is to have the file restored (see [this option](https://github.com/marketplace/actions/cache#restoring-and-saving-cache-using-a-single-action) for GitHub actions as an example).
-
-If the file has some system dependent properties, it is possible to have [different configuration dump](#quarkus-configuration-dump) to reflect those changes (local, ci, os...) conditionally enabled by Maven profiles.
-
-It is also possible to [ignore properties](#ignore-properties-in-quarkus-configuration-dump) not impacting the produced artifacts.
-The `quarkus.native.graalvm-home` and `quarkus.native.java-home` are some classic examples, the JDK version is already captured as a goal input and the path to the JDK does not impact the produced artifact.
-
-## Configuration
-
-Configuration can be set with (listed in order of precedence ):
-- [Environment variables](#environment-variables)
-- [Maven properties](#maven-properties)
-- [Configuration file](#configuration-file)
-
-### Environment variables
-
-#### Feature toggle
-
-The caching can be disabled by setting:
-```properties
-DEVELOCITY_QUARKUS_CACHE_ENABLED=false
-```
-
-#### Quarkus configuration dump
-
-By default, the values below are used to compute the dump-config (`.quarkus/quarkus-prod-config-dump`) and
-config-check (`target/quarkus-prod-config-check`) file names:
-- _build profile_: prod
-- _file prefix_: quarkus
-- _file suffix_: config-dump
-
-Those values can be overridden, when CI and local have different Quarkus properties for instance:
-```properties
-DEVELOCITY_QUARKUS_BUILD_PROFILE=prod
-DEVELOCITY_QUARKUS_DUMP_CONFIG_PREFIX=quarkus
-DEVELOCITY_QUARKUS_DUMP_CONFIG_SUFFIX=config-dump-ci
-```
-
-#### Extra outputs
-
-Some additional outputs can be configured if necessary (when using the [quarkus-helm](https://quarkus.io/blog/quarkus-helm/#getting-started-with-the-quarkus-helm-extension) extension for instance). The paths are relative to the `target` folder.
-
-Directories can be added (csv list):
-```properties
-DEVELOCITY_QUARKUS_KEY_EXTRA_OUTPUT_DIRS=helm
-```
-or Specific files (csv list):
-```properties
-DEVELOCITY_QUARKUS_KEY_EXTRA_OUTPUT_FILES=helm/kubernetes/my-project/Chart.yaml,helm/kubernetes/my-project/values.yaml
-```
-
-#### Build strategy
-
-The default is to enable caching only when the in-container build strategy is used.
-If the build environments are strictly identical build over build, the restriction can be removed by setting:
-```properties
-DEVELOCITY_QUARKUS_NATIVE_BUILD_IN_CONTAINER_REQUIRED=false
-```
-
-### Maven properties
-
-The same configuration can be achieved with Maven properties:
-```xml
-
- true
- prod
- quarkus
- config-dump-ci
- helm
- helm/kubernetes/${project.artifactId}/Chart.yaml,helm/kubernetes/${project.artifactId}/values.yaml
- false
-
-```
-
-### Configuration file
-
-A configuration file can be used instead by defining its location (relative to the project root folder) either:
-- as an environment variable:
-`DEVELOCITY_QUARKUS_CONFIG_FILE=.quarkus/develocity-ci.properties`
-- as a maven property:
-`.quarkus/extension-local.properties`
-
-Its content can be created like described in the [environment variables](#environment-variables) section.
-
-### Ignore properties in Quarkus configuration dump
-
-It is also possible to configure some properties to be excluded from configuration tracking (more details in the [Quarkus documentation](https://quarkus.io/guides/config-reference#filtering-configuration-options)).
-This is relevant when a property is volatile but does not impact the produced artifact, see [this section](#quarkus-configuration-dump) for more details.
-
-```xml
-
- quarkus.container-image.tag,quarkus.application.version
-
-```
-
-## Troubleshooting
-Debug logging on the extension can be configured with the following property
-
-```shell
-mvn -Dorg.slf4j.simpleLogger.log.com.gradle=debug clean install
-```
-
-## Implementation details
-
-The logic to make the Quarkus `build` goal cacheable is isolated to the [QuarkusBuildCache](./src/main/java/com/gradle/QuarkusBuildCache.java) class.
-
-### Quarkus configuration dump
-A key component of the caching mechanism is the Quarkus configuration dump file `.quarkus/quarkus-prod-config-dump`.
-This file is generated by the Quarkus `build` goal when the Maven property `quarkus.config-tracking.enabled` is `true`.
-It contains all the Quarkus properties used during the Quarkus `build` process.
-Some properties are discovered late in the `build` phase and can't be determined in advance, thus the need for a first full execution to generate the file.
-
-The presence of the file is required to mark the Quarkus `build` goal as cacheable.
-
-The `track-config-changes` goal creates a file `target/quarkus-prod-config-check` containing all the properties from the `.quarkus/quarkus-prod-config-dump` with their actual value.
-If property values are identical in the two files, it means that the Quarkus configuration was not changed since the last Quarkus `build`, therefore the Quarkus `build` goal can be marked cacheable.
-
-When the Quarkus `build` goal is marked cacheable, the regular caching process using [inputs](#goal-inputs) and [outputs](#goal-outputs) kicks in as described [here](https://docs.gradle.com/develocity/maven-extension/current/#using_the_build_cache).
-
-### Illustrated sequence of operations
-Let's illustrate the extension behavior with the following sequence of builds:
-
-**Initialization build (one-off step):**
-- `track-config-changes` does nothing as `.quarkus/quarkus-prod-config-dump` is absent
-- Quarkus configuration from current and previous build differ
-
- => The `build` goal is not cacheable
-- `build` executes and creates `.quarkus/quarkus-prod-config-dump`
-
-![Run1](./doc/run-1.png)
-
-**First (post-initialization) build:**
-- `track-config-changes` creates `target/quarkus-prod-config-check`
-- Quarkus configuration from current and previous build are identical (assuming Quarkus configuration was unchanged)
-
- => The `build` goal is cacheable
-- Cache lookup happens: *CACHE MISS*
-- `build` executes and creates `.quarkus/quarkus-prod-config-dump`
-- output is stored into the cache
-
-![Run2](./doc/run-2.png)
-
-**Next builds:**
-- `track-config-changes` creates `target/quarkus-prod-config-check`
-- Quarkus configuration from current and previous build are identical (assuming Quarkus configuration was unchanged)
-
- => The `build` goal is cacheable
-- Cache lookup happens: *CACHE HIT*
-- `build` is not executed
-
-![Run3](./doc/run-3.png)
-
-### Goal Inputs
-
-This extension makes the Quarkus build goal cacheable by configuring the following goal inputs:
-
-#### General inputs
-- The compilation classpath
-- Generated sources directory
-- JDK version
-
-#### Inputs specific to the non in-container build strategy
-- OS details (name, version, arch)
-
-#### Quarkus properties
-See [here](https://quarkus.io/guides/config-reference#configuration-sources) for details
-
-Quarkus' properties are fetched from the *config dump* populated by the Quarkus `build` goal.
-The `build` goal is cacheable only if the `track-config-changes` goal generates a *config dump* identical to the one generated by the previous `build` execution.
-This ensures that the local Quarkus configuration hasn't changed since last build, otherwise a new `build` execution is required as a configuration can change the produced artifact.
-
-`target/quarkus-prod-config-check` is added as a goal input
-
-#### Quarkus file properties
-Some properties are pointing to a file which has to be declared as file input. This allows to have the file content part of the cache key (`RELATIVE_PATH` strategy).
-- `quarkus.docker.dockerfile-native-path`
-- `quarkus.docker.dockerfile-jvm-path`
-- `quarkus.openshift.jvm-dockerfile`
-- `quarkus.openshift.native-dockerfile`
-
-#### Quarkus extra dependencies
-
-##### Since Quarkus 3.13.0
-Quarkus dynamically adds some dependencies to the build which will be listed in the `target/quarkus-prod-dependencies.txt` file.
-This file is created by the Quarkus `track-config-changes` goal and contains the absolute path to each dependency (one dependency per line).
-This fileset is added as goal input with a `RUNTIME_CLASSPATH` normalization strategy.
-
-##### Quarkus [3.9.0,3.13.0[
-Quarkus dynamically adds some dependencies to the build which will be listed in the `target/quarkus-prod-dependency-checksums.txt` file.
-This file is created by the Quarkus `track-config-changes` goal and contains the list of dependencies along with their checksum for snapshot versions (one dependency per line).
-This file is added as goal input with a `RELATIVE_PATH` normalization strategy.
-
-### Goal Outputs
-Here are the files added as output:
-- `target/-runner`
-- `target/.jar`
-- `target/-runner.jar`
-- `target/quarkus-artifact.properties`
-
-> [!NOTE]
-> Some additional outputs can be configured. See the [configuration section](#extra-outputs) for more details.
-
-## Quarkus Test goals
-
-When the test goals (`maven-surefire-plugin` and `maven-failsafe-plugin`) are running some `@QuarkusTest` or `@QuarkusIntegrationTest`,
-it is important for consistency to add [implicit dependencies](#quarkus-extra-dependencies) as goal [additional input](https://docs.gradle.com/develocity/maven-extension/current/#declaring_additional_inputs).
-
-Specifically for `maven-failsafe-plugin`, the Quarkus artifact descriptor `quarkus-artifact.properties` also needs to be added.
-
-With Quarkus 3.9.0+, This can be achieved by declaring a property `addQuarkusInputs` on the test goal:
-
-```xml
-
-
- maven-surefire-plugin
-
-
- true>
-
-
-
-
- maven-failsafe-plugin
-
-
- true>
-
-
-
-
-```
-
-Prior to Quarkus 3.9.0:
-```xml
-
-
- maven-surefire-plugin
-
-
- true>
-
-
-
-
- maven-failsafe-plugin
-
-
- true>
-
-
-
-
-```
+This has been moved to a dedicated [GitHub repository](https://github.com/gradle/quarkus-build-caching-extension).
\ No newline at end of file
diff --git a/quarkus-build-caching-extension/doc/run-1.png b/quarkus-build-caching-extension/doc/run-1.png
deleted file mode 100644
index 398d23b8b..000000000
Binary files a/quarkus-build-caching-extension/doc/run-1.png and /dev/null differ
diff --git a/quarkus-build-caching-extension/doc/run-2.png b/quarkus-build-caching-extension/doc/run-2.png
deleted file mode 100644
index a35730782..000000000
Binary files a/quarkus-build-caching-extension/doc/run-2.png and /dev/null differ
diff --git a/quarkus-build-caching-extension/doc/run-3.png b/quarkus-build-caching-extension/doc/run-3.png
deleted file mode 100644
index 6fa4dedd5..000000000
Binary files a/quarkus-build-caching-extension/doc/run-3.png and /dev/null differ
diff --git a/quarkus-build-caching-extension/mvnw b/quarkus-build-caching-extension/mvnw
deleted file mode 100755
index 19529ddf8..000000000
--- a/quarkus-build-caching-extension/mvnw
+++ /dev/null
@@ -1,259 +0,0 @@
-#!/bin/sh
-# ----------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-# ----------------------------------------------------------------------------
-
-# ----------------------------------------------------------------------------
-# Apache Maven Wrapper startup batch script, version 3.3.2
-#
-# Optional ENV vars
-# -----------------
-# JAVA_HOME - location of a JDK home dir, required when download maven via java source
-# MVNW_REPOURL - repo url base for downloading maven distribution
-# MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
-# MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output
-# ----------------------------------------------------------------------------
-
-set -euf
-[ "${MVNW_VERBOSE-}" != debug ] || set -x
-
-# OS specific support.
-native_path() { printf %s\\n "$1"; }
-case "$(uname)" in
-CYGWIN* | MINGW*)
- [ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")"
- native_path() { cygpath --path --windows "$1"; }
- ;;
-esac
-
-# set JAVACMD and JAVACCMD
-set_java_home() {
- # For Cygwin and MinGW, ensure paths are in Unix format before anything is touched
- if [ -n "${JAVA_HOME-}" ]; then
- if [ -x "$JAVA_HOME/jre/sh/java" ]; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- JAVACCMD="$JAVA_HOME/jre/sh/javac"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- JAVACCMD="$JAVA_HOME/bin/javac"
-
- if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then
- echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2
- echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2
- return 1
- fi
- fi
- else
- JAVACMD="$(
- 'set' +e
- 'unset' -f command 2>/dev/null
- 'command' -v java
- )" || :
- JAVACCMD="$(
- 'set' +e
- 'unset' -f command 2>/dev/null
- 'command' -v javac
- )" || :
-
- if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then
- echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2
- return 1
- fi
- fi
-}
-
-# hash string like Java String::hashCode
-hash_string() {
- str="${1:-}" h=0
- while [ -n "$str" ]; do
- char="${str%"${str#?}"}"
- h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296))
- str="${str#?}"
- done
- printf %x\\n $h
-}
-
-verbose() { :; }
-[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; }
-
-die() {
- printf %s\\n "$1" >&2
- exit 1
-}
-
-trim() {
- # MWRAPPER-139:
- # Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds.
- # Needed for removing poorly interpreted newline sequences when running in more
- # exotic environments such as mingw bash on Windows.
- printf "%s" "${1}" | tr -d '[:space:]'
-}
-
-# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties
-while IFS="=" read -r key value; do
- case "${key-}" in
- distributionUrl) distributionUrl=$(trim "${value-}") ;;
- distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;;
- esac
-done <"${0%/*}/.mvn/wrapper/maven-wrapper.properties"
-[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in ${0%/*}/.mvn/wrapper/maven-wrapper.properties"
-
-case "${distributionUrl##*/}" in
-maven-mvnd-*bin.*)
- MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/
- case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in
- *AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;;
- :Darwin*x86_64) distributionPlatform=darwin-amd64 ;;
- :Darwin*arm64) distributionPlatform=darwin-aarch64 ;;
- :Linux*x86_64*) distributionPlatform=linux-amd64 ;;
- *)
- echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2
- distributionPlatform=linux-amd64
- ;;
- esac
- distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip"
- ;;
-maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;;
-*) MVN_CMD="mvn${0##*/mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;;
-esac
-
-# apply MVNW_REPOURL and calculate MAVEN_HOME
-# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/
-[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}"
-distributionUrlName="${distributionUrl##*/}"
-distributionUrlNameMain="${distributionUrlName%.*}"
-distributionUrlNameMain="${distributionUrlNameMain%-bin}"
-MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}"
-MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")"
-
-exec_maven() {
- unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || :
- exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD"
-}
-
-if [ -d "$MAVEN_HOME" ]; then
- verbose "found existing MAVEN_HOME at $MAVEN_HOME"
- exec_maven "$@"
-fi
-
-case "${distributionUrl-}" in
-*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;;
-*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;;
-esac
-
-# prepare tmp dir
-if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then
- clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; }
- trap clean HUP INT TERM EXIT
-else
- die "cannot create temp dir"
-fi
-
-mkdir -p -- "${MAVEN_HOME%/*}"
-
-# Download and Install Apache Maven
-verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
-verbose "Downloading from: $distributionUrl"
-verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
-
-# select .zip or .tar.gz
-if ! command -v unzip >/dev/null; then
- distributionUrl="${distributionUrl%.zip}.tar.gz"
- distributionUrlName="${distributionUrl##*/}"
-fi
-
-# verbose opt
-__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR=''
-[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v
-
-# normalize http auth
-case "${MVNW_PASSWORD:+has-password}" in
-'') MVNW_USERNAME='' MVNW_PASSWORD='' ;;
-has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;;
-esac
-
-if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then
- verbose "Found wget ... using wget"
- wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl"
-elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then
- verbose "Found curl ... using curl"
- curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl"
-elif set_java_home; then
- verbose "Falling back to use Java to download"
- javaSource="$TMP_DOWNLOAD_DIR/Downloader.java"
- targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName"
- cat >"$javaSource" <<-END
- public class Downloader extends java.net.Authenticator
- {
- protected java.net.PasswordAuthentication getPasswordAuthentication()
- {
- return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() );
- }
- public static void main( String[] args ) throws Exception
- {
- setDefault( new Downloader() );
- java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() );
- }
- }
- END
- # For Cygwin/MinGW, switch paths to Windows format before running javac and java
- verbose " - Compiling Downloader.java ..."
- "$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java"
- verbose " - Running Downloader.java ..."
- "$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")"
-fi
-
-# If specified, validate the SHA-256 sum of the Maven distribution zip file
-if [ -n "${distributionSha256Sum-}" ]; then
- distributionSha256Result=false
- if [ "$MVN_CMD" = mvnd.sh ]; then
- echo "Checksum validation is not supported for maven-mvnd." >&2
- echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
- exit 1
- elif command -v sha256sum >/dev/null; then
- if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c >/dev/null 2>&1; then
- distributionSha256Result=true
- fi
- elif command -v shasum >/dev/null; then
- if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then
- distributionSha256Result=true
- fi
- else
- echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2
- echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
- exit 1
- fi
- if [ $distributionSha256Result = false ]; then
- echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2
- echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2
- exit 1
- fi
-fi
-
-# unzip and move
-if command -v unzip >/dev/null; then
- unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip"
-else
- tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar"
-fi
-printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/mvnw.url"
-mv -- "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME"
-
-clean || :
-exec_maven "$@"
diff --git a/quarkus-build-caching-extension/mvnw.cmd b/quarkus-build-caching-extension/mvnw.cmd
deleted file mode 100644
index b150b91ed..000000000
--- a/quarkus-build-caching-extension/mvnw.cmd
+++ /dev/null
@@ -1,149 +0,0 @@
-<# : batch portion
-@REM ----------------------------------------------------------------------------
-@REM Licensed to the Apache Software Foundation (ASF) under one
-@REM or more contributor license agreements. See the NOTICE file
-@REM distributed with this work for additional information
-@REM regarding copyright ownership. The ASF licenses this file
-@REM to you under the Apache License, Version 2.0 (the
-@REM "License"); you may not use this file except in compliance
-@REM with the License. You may obtain a copy of the License at
-@REM
-@REM http://www.apache.org/licenses/LICENSE-2.0
-@REM
-@REM Unless required by applicable law or agreed to in writing,
-@REM software distributed under the License is distributed on an
-@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-@REM KIND, either express or implied. See the License for the
-@REM specific language governing permissions and limitations
-@REM under the License.
-@REM ----------------------------------------------------------------------------
-
-@REM ----------------------------------------------------------------------------
-@REM Apache Maven Wrapper startup batch script, version 3.3.2
-@REM
-@REM Optional ENV vars
-@REM MVNW_REPOURL - repo url base for downloading maven distribution
-@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
-@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output
-@REM ----------------------------------------------------------------------------
-
-@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0)
-@SET __MVNW_CMD__=
-@SET __MVNW_ERROR__=
-@SET __MVNW_PSMODULEP_SAVE=%PSModulePath%
-@SET PSModulePath=
-@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @(
- IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B)
-)
-@SET PSModulePath=%__MVNW_PSMODULEP_SAVE%
-@SET __MVNW_PSMODULEP_SAVE=
-@SET __MVNW_ARG0_NAME__=
-@SET MVNW_USERNAME=
-@SET MVNW_PASSWORD=
-@IF NOT "%__MVNW_CMD__%"=="" (%__MVNW_CMD__% %*)
-@echo Cannot start maven from wrapper >&2 && exit /b 1
-@GOTO :EOF
-: end batch / begin powershell #>
-
-$ErrorActionPreference = "Stop"
-if ($env:MVNW_VERBOSE -eq "true") {
- $VerbosePreference = "Continue"
-}
-
-# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties
-$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl
-if (!$distributionUrl) {
- Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties"
-}
-
-switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) {
- "maven-mvnd-*" {
- $USE_MVND = $true
- $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip"
- $MVN_CMD = "mvnd.cmd"
- break
- }
- default {
- $USE_MVND = $false
- $MVN_CMD = $script -replace '^mvnw','mvn'
- break
- }
-}
-
-# apply MVNW_REPOURL and calculate MAVEN_HOME
-# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/
-if ($env:MVNW_REPOURL) {
- $MVNW_REPO_PATTERN = if ($USE_MVND) { "/org/apache/maven/" } else { "/maven/mvnd/" }
- $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace '^.*'+$MVNW_REPO_PATTERN,'')"
-}
-$distributionUrlName = $distributionUrl -replace '^.*/',''
-$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$',''
-$MAVEN_HOME_PARENT = "$HOME/.m2/wrapper/dists/$distributionUrlNameMain"
-if ($env:MAVEN_USER_HOME) {
- $MAVEN_HOME_PARENT = "$env:MAVEN_USER_HOME/wrapper/dists/$distributionUrlNameMain"
-}
-$MAVEN_HOME_NAME = ([System.Security.Cryptography.MD5]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join ''
-$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME"
-
-if (Test-Path -Path "$MAVEN_HOME" -PathType Container) {
- Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME"
- Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
- exit $?
-}
-
-if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) {
- Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl"
-}
-
-# prepare tmp dir
-$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile
-$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir"
-$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null
-trap {
- if ($TMP_DOWNLOAD_DIR.Exists) {
- try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
- catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
- }
-}
-
-New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null
-
-# Download and Install Apache Maven
-Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
-Write-Verbose "Downloading from: $distributionUrl"
-Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
-
-$webclient = New-Object System.Net.WebClient
-if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) {
- $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD)
-}
-[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
-$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null
-
-# If specified, validate the SHA-256 sum of the Maven distribution zip file
-$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum
-if ($distributionSha256Sum) {
- if ($USE_MVND) {
- Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties."
- }
- Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash
- if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) {
- Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property."
- }
-}
-
-# unzip and move
-Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null
-Rename-Item -Path "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" -NewName $MAVEN_HOME_NAME | Out-Null
-try {
- Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null
-} catch {
- if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) {
- Write-Error "fail to move MAVEN_HOME"
- }
-} finally {
- try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
- catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
-}
-
-Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
diff --git a/quarkus-build-caching-extension/pom.xml b/quarkus-build-caching-extension/pom.xml
deleted file mode 100644
index 32294c255..000000000
--- a/quarkus-build-caching-extension/pom.xml
+++ /dev/null
@@ -1,222 +0,0 @@
-
-
- 4.0.0
- com.gradle
- quarkus-build-caching-extension
- 1.9-SNAPSHOT
- jar
-
- ${project.groupId}:${project.artifactId}
- Maven extension to make the Quarkus build goal cacheable
- https://github.com/gradle/develocity-build-config-samples/tree/main/quarkus-build-caching-extension
-
-
- UTF-8
-
-
-
- https://github.com/gradle/develocity-build-config-samples
- scm:git:https://github.com/gradle/develocity-build-config-samples.git
- scm:git:https://github.com/gradle/develocity-build-config-samples.git
- v1.3
-
-
-
-
- Apache-2.0
- https://www.apache.org/licenses/LICENSE-2.0.txt
-
-
-
-
-
- Documentation
- https://github.com/gradle/develocity-build-config-samples/tree/main/quarkus-build-caching-extension
-
-
- ossrh
- https://s01.oss.sonatype.org/content/repositories/snapshots
-
-
- ossrh
- https://s01.oss.sonatype.org/service/local/staging/deploy/maven2
-
-
-
-
-
- The Gradle team
- Gradle Inc.
- https://gradle.com
-
-
-
-
-
- org.apache.maven
- maven-core
- 3.9.9
- provided
-
-
- com.gradle
- develocity-maven-extension
- 1.23
- provided
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.13.0
-
-
- 1.8
-
-
- org.eclipse.sisu
- org.eclipse.sisu.inject
- 0.3.5
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- 3.6.0
-
-
- package
-
- shade
-
-
-
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-invoker-plugin
- 3.9.0
-
- ${project.build.directory}/it
- invoker.properties
- true
-
- -Dmaven.ext.class.path=../../quarkus-build-caching-extension-${project.version}.jar -Ddevelocity.cache.local.directory=${project.build.directory}/build-cache -Ddevelocity.cache.remote.enabled=false
-
-
-
-
- integration-test
-
- install
- run
-
-
-
-
-
-
-
- ${project.basedir}/src/main/resources
-
-
- ${project.basedir}
-
- LICENSE
-
-
-
-
-
-
-
- release
-
-
-
- org.apache.maven.plugins
- maven-release-plugin
- 3.1.1
-
- -Dscan=false
-
-
-
- org.apache.maven.plugins
- maven-invoker-plugin
- 3.9.0
-
- true
- true
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 3.3.1
-
-
- attach-sources
-
- jar-no-fork
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 3.11.2
-
-
- attach-javadocs
-
- jar
-
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-site-plugin
- 3.21.0
-
- true
- true
-
-
-
- org.simplify4u.plugins
- sign-maven-plugin
- 1.1.0
-
-
- sign
-
- sign
-
-
-
-
- false
-
-
-
-
-
-
-
-
diff --git a/quarkus-build-caching-extension/release/changes.md b/quarkus-build-caching-extension/release/changes.md
deleted file mode 100644
index cae7546be..000000000
--- a/quarkus-build-caching-extension/release/changes.md
+++ /dev/null
@@ -1,33 +0,0 @@
-### 1.8
-- Add support for Quarkus `BuildMojo.attachSboms` parameter introduced in Quarkus 3.14.0
-
-### 1.7
-- Allow cross-OS cache hits when using the in-container build strategy
-
-### 1.6
-- Support Quarkus extra properties on test goals using Quarkus lower than 3.9.0
-
-### 1.5
-- Allow to configure extra outputs
-- Allow to disable in-container strategy requirement for native builds
-- Remove configuration of ignored properties in Quarkus configuration dump file
-
-### 1.4
-- Add configuration of ignored properties in Quarkus configuration dump file
-
-### 1.3
-- Add `quarkus-artifact.properties` as goal output
-
-### 1.2
-- Fix cache disabled due to unrecognized Jar package type when deprecated key `quarkus.package.type` is used instead of `quarkus.package.jar.type`
-
-### 1.1
-- Add support for Quarkus 3.9 (`quarkus.package.type` is replaced by `quarkus.native.enabled` / `quarkus.package.jar.type`)
-
-### 1.0
-- Add compatibility with `develocity-maven-extension:1.21`
-
----
-
-### 0.12
-- First version
\ No newline at end of file
diff --git a/quarkus-build-caching-extension/src/it/invoker.properties b/quarkus-build-caching-extension/src/it/invoker.properties
deleted file mode 100644
index e727a8292..000000000
--- a/quarkus-build-caching-extension/src/it/invoker.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-invoker.name.1 = uber-jar build with ${cache-disabled}
-invoker.goals.1 = clean package ${develocity-options} --log-file ./01-uber-jar-build-cache-disabled.log -Dorg.slf4j.simpleLogger.log.com.gradle=debug
-invoker.profiles.1 = uber-jar
-
-invoker.name.2 = uber-jar build with ${cache-miss}
-invoker.goals.2 = clean package ${develocity-options} --log-file ./02-uber-jar-build-cache-miss.log -Dorg.slf4j.simpleLogger.log.com.gradle=debug
-invoker.profiles.2 = uber-jar
-
-invoker.name.3 = uber-jar build with ${cache-hit}
-invoker.goals.3 = clean package ${develocity-options} --log-file ./03-uber-jar-build-cache-hit.log -Dorg.slf4j.simpleLogger.log.com.gradle=debug
-invoker.profiles.3 = uber-jar
-
-invoker.name.4 = Native build with ${cache-disabled}
-invoker.goals.4 = clean package ${develocity-options} --log-file ./04-native-build-cache-disabled.log -Dorg.slf4j.simpleLogger.log.com.gradle=debug
-invoker.profiles.4 = native
-
-invoker.name.5 = Native build with ${cache-miss}
-invoker.goals.5 = clean package ${develocity-options} --log-file ./05-native-build-cache-miss.log -Dorg.slf4j.simpleLogger.log.com.gradle=debug
-invoker.profiles.5 = native
-
-invoker.name.6 = Native build with ${cache-hit}
-invoker.goals.6 = clean package ${develocity-options} --log-file ./06-native-build-cache-hit.log -Dorg.slf4j.simpleLogger.log.com.gradle=debug
-invoker.profiles.6 = native
diff --git a/quarkus-build-caching-extension/src/it/postbuild.groovy b/quarkus-build-caching-extension/src/it/postbuild.groovy
deleted file mode 100644
index 4261c7e6e..000000000
--- a/quarkus-build-caching-extension/src/it/postbuild.groovy
+++ /dev/null
@@ -1,38 +0,0 @@
-// Utility functions
-String getContent(String fileName) {
- File f = new File(basedir, fileName)
- assert f.exists()
- return f.text
-}
-
-void assertBuildCacheDisabled(String logFile) {
- println("Verifying build cache disabled on ${logFile}...")
- String log = getContent(logFile)
- assert log.contains('[quarkus-build-caching-extension] Quarkus build goal marked as not cacheable')
- assert log.contains('Quarkus augmentation completed')
-}
-
-void assertBuildCacheMiss(String logFile) {
- println("Verifying build cache miss on ${logFile}...")
- String log = getContent(logFile)
- assert log.contains('[quarkus-build-caching-extension] Quarkus build goal marked as cacheable')
- assert log.contains('Quarkus augmentation completed')
-
-}
-
-void assertBuildCacheHit(String logFile) {
- println("Verifying build cache hit on ${logFile}...")
- String log = getContent(logFile)
- assert log.contains('[quarkus-build-caching-extension] Quarkus build goal marked as cacheable')
- assert !log.contains('Quarkus augmentation completed')
-}
-
-// Assertions
-assertBuildCacheDisabled('01-uber-jar-build-cache-disabled.log')
-assertBuildCacheMiss('02-uber-jar-build-cache-miss.log')
-assertBuildCacheHit('03-uber-jar-build-cache-hit.log')
-assertBuildCacheDisabled('04-native-build-cache-disabled.log')
-assertBuildCacheMiss('05-native-build-cache-miss.log')
-assertBuildCacheHit('06-native-build-cache-hit.log')
-
-println('Verification succeeded')
diff --git a/quarkus-build-caching-extension/src/it/quarkus-3.8/.mvn/extensions.xml b/quarkus-build-caching-extension/src/it/quarkus-3.8/.mvn/extensions.xml
deleted file mode 100644
index 0890b9a91..000000000
--- a/quarkus-build-caching-extension/src/it/quarkus-3.8/.mvn/extensions.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- com.gradle
- develocity-maven-extension
- 1.21.4
-
-
diff --git a/quarkus-build-caching-extension/src/it/quarkus-3.8/pom.xml b/quarkus-build-caching-extension/src/it/quarkus-3.8/pom.xml
deleted file mode 100644
index 8be326e41..000000000
--- a/quarkus-build-caching-extension/src/it/quarkus-3.8/pom.xml
+++ /dev/null
@@ -1,90 +0,0 @@
-
-
- 4.0.0
- com.gradle
- quarkus-test-3.8
- 0.1-SNAPSHOT
-
-
-
-
- 3.8.4
- true
-
-
-
-
-
- io.quarkus
- quarkus-bom
- ${quarkus.version}
- pom
- import
-
-
-
-
-
-
- io.quarkus
- quarkus-resteasy-reactive
-
-
-
-
-
-
- io.quarkus
- quarkus-maven-plugin
- ${quarkus.version}
- true
-
-
- track-prod-config-changes
- process-resources
-
- track-config-changes
-
-
- true
-
-
-
-
- build
-
-
-
-
-
-
-
-
-
- native
-
-
- native
-
-
-
- native
- true
-
-
-
-
- uber-jar
-
-
- uber-jar
-
-
-
- uber-jar
-
-
-
-
-
diff --git a/quarkus-build-caching-extension/src/it/quarkus-3.8/postbuild.groovy b/quarkus-build-caching-extension/src/it/quarkus-3.8/postbuild.groovy
deleted file mode 100644
index bbb7bfcb0..000000000
--- a/quarkus-build-caching-extension/src/it/quarkus-3.8/postbuild.groovy
+++ /dev/null
@@ -1 +0,0 @@
-evaluate(new File("src/it/postbuild.groovy"))
diff --git a/quarkus-build-caching-extension/src/it/quarkus-3.8/src/main/java/org/acme/getting/started/GreetingResource.java b/quarkus-build-caching-extension/src/it/quarkus-3.8/src/main/java/org/acme/getting/started/GreetingResource.java
deleted file mode 100644
index e38ed41f5..000000000
--- a/quarkus-build-caching-extension/src/it/quarkus-3.8/src/main/java/org/acme/getting/started/GreetingResource.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.acme.getting.started;
-
-import jakarta.inject.Inject;
-import jakarta.ws.rs.GET;
-import jakarta.ws.rs.Path;
-import jakarta.ws.rs.Produces;
-import jakarta.ws.rs.core.MediaType;
-
-@Path("/hello")
-public class GreetingResource {
-
- @Inject
- GreetingService service;
-
- @GET
- @Produces(MediaType.TEXT_PLAIN)
- @Path("/greeting/{name}")
- public String greeting(String name) {
- return service.greeting(name);
- }
-
- @GET
- @Produces(MediaType.TEXT_PLAIN)
- public String hello() {
- return "hello";
- }
-}
diff --git a/quarkus-build-caching-extension/src/it/quarkus-3.8/src/main/java/org/acme/getting/started/GreetingService.java b/quarkus-build-caching-extension/src/it/quarkus-3.8/src/main/java/org/acme/getting/started/GreetingService.java
deleted file mode 100644
index b025d3118..000000000
--- a/quarkus-build-caching-extension/src/it/quarkus-3.8/src/main/java/org/acme/getting/started/GreetingService.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.acme.getting.started;
-
-import jakarta.enterprise.context.ApplicationScoped;
-
-@ApplicationScoped
-public class GreetingService {
-
- public String greeting(String name) {
- return "hello " + name;
- }
-
-}
diff --git a/quarkus-build-caching-extension/src/it/quarkus-latest/.mvn/extensions.xml b/quarkus-build-caching-extension/src/it/quarkus-latest/.mvn/extensions.xml
deleted file mode 100644
index 0890b9a91..000000000
--- a/quarkus-build-caching-extension/src/it/quarkus-latest/.mvn/extensions.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- com.gradle
- develocity-maven-extension
- 1.21.4
-
-
diff --git a/quarkus-build-caching-extension/src/it/quarkus-latest/pom.xml b/quarkus-build-caching-extension/src/it/quarkus-latest/pom.xml
deleted file mode 100644
index f5089e29a..000000000
--- a/quarkus-build-caching-extension/src/it/quarkus-latest/pom.xml
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
- 4.0.0
- com.gradle
- quarkus-test-latest
- 0.1-SNAPSHOT
-
-
- 999-SNAPSHOT
- true
-
-
-
-
- quarkus-snapshots-repository
- https://s01.oss.sonatype.org/content/repositories/snapshots/
-
- false
-
-
- true
-
-
-
-
-
-
- quarkus-snapshots-plugin-repository
- https://s01.oss.sonatype.org/content/repositories/snapshots/
-
- false
-
-
- true
-
-
-
-
-
-
-
- io.quarkus
- quarkus-bom
- ${quarkus.version}
- pom
- import
-
-
-
-
-
-
- io.quarkus
- quarkus-rest
-
-
-
-
-
-
- io.quarkus
- quarkus-maven-plugin
- ${quarkus.version}
- true
-
-
- track-prod-config-changes
- process-resources
-
- track-config-changes
-
-
- true
-
-
-
-
- build
-
-
-
-
-
-
-
-
-
- native
-
-
- native
-
-
-
- true
- true
-
-
-
-
- uber-jar
-
-
- uber-jar
-
-
-
- false
- uber-jar
-
-
-
-
-
diff --git a/quarkus-build-caching-extension/src/it/quarkus-latest/postbuild.groovy b/quarkus-build-caching-extension/src/it/quarkus-latest/postbuild.groovy
deleted file mode 100644
index bbb7bfcb0..000000000
--- a/quarkus-build-caching-extension/src/it/quarkus-latest/postbuild.groovy
+++ /dev/null
@@ -1 +0,0 @@
-evaluate(new File("src/it/postbuild.groovy"))
diff --git a/quarkus-build-caching-extension/src/it/quarkus-latest/src/main/java/org/acme/getting/started/GreetingResource.java b/quarkus-build-caching-extension/src/it/quarkus-latest/src/main/java/org/acme/getting/started/GreetingResource.java
deleted file mode 100644
index e38ed41f5..000000000
--- a/quarkus-build-caching-extension/src/it/quarkus-latest/src/main/java/org/acme/getting/started/GreetingResource.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.acme.getting.started;
-
-import jakarta.inject.Inject;
-import jakarta.ws.rs.GET;
-import jakarta.ws.rs.Path;
-import jakarta.ws.rs.Produces;
-import jakarta.ws.rs.core.MediaType;
-
-@Path("/hello")
-public class GreetingResource {
-
- @Inject
- GreetingService service;
-
- @GET
- @Produces(MediaType.TEXT_PLAIN)
- @Path("/greeting/{name}")
- public String greeting(String name) {
- return service.greeting(name);
- }
-
- @GET
- @Produces(MediaType.TEXT_PLAIN)
- public String hello() {
- return "hello";
- }
-}
diff --git a/quarkus-build-caching-extension/src/it/quarkus-latest/src/main/java/org/acme/getting/started/GreetingService.java b/quarkus-build-caching-extension/src/it/quarkus-latest/src/main/java/org/acme/getting/started/GreetingService.java
deleted file mode 100644
index b025d3118..000000000
--- a/quarkus-build-caching-extension/src/it/quarkus-latest/src/main/java/org/acme/getting/started/GreetingService.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.acme.getting.started;
-
-import jakarta.enterprise.context.ApplicationScoped;
-
-@ApplicationScoped
-public class GreetingService {
-
- public String greeting(String name) {
- return "hello " + name;
- }
-
-}
diff --git a/quarkus-build-caching-extension/src/main/java/com/gradle/QuarkusBuildCache.java b/quarkus-build-caching-extension/src/main/java/com/gradle/QuarkusBuildCache.java
deleted file mode 100644
index c76ec2c8a..000000000
--- a/quarkus-build-caching-extension/src/main/java/com/gradle/QuarkusBuildCache.java
+++ /dev/null
@@ -1,352 +0,0 @@
-package com.gradle;
-
-import com.gradle.develocity.agent.maven.api.cache.BuildCacheApi;
-import com.gradle.develocity.agent.maven.api.cache.MojoMetadataProvider;
-import com.gradle.develocity.agent.maven.api.cache.NormalizationProvider;
-import org.apache.maven.artifact.DependencyResolutionRequiredException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.nio.file.Files;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-/**
- * Caching instructions for the Quarkus build goal.
- */
-final class QuarkusBuildCache {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(QuarkusBuildCache.class);
-
- private static final String TARGET_DIR = "target/";
-
- // Quarkus' configuration keys
- private static final List QUARKUS_CONFIG_KEY_NATIVE_CONTAINER_BUILD = Arrays.asList("quarkus.native.container-build", "quarkus.native.remote-container-build");
- private static final String QUARKUS_CONFIG_KEY_NATIVE_BUILDER_IMAGE = "quarkus.native.builder-image";
- // quarkus.package.type is replaced by quarkus.native.enabled / quarkus.package.jar.type in Quarkus 3.9
- private static final String QUARKUS_CONFIG_KEY_DEPRECATED_PACKAGE_TYPE = "quarkus.package.type";
- private static final String QUARKUS_CONFIG_KEY_NATIVE = "quarkus.native.enabled";
- private static final String QUARKUS_CONFIG_KEY_JAR_TYPE = "quarkus.package.jar.type";
- private static final String QUARKUS_CONFIG_KEY_GRAALVM_HOME = "quarkus.native.graalvm-home";
- private static final String QUARKUS_CONFIG_KEY_JAVA_HOME = "quarkus.native.java-home";
- private static final String PACKAGE_NATIVE = "native";
- // Quarkus' cacheable package types
- private static final List QUARKUS_CACHEABLE_JAR_TYPES = Arrays.asList("jar", "legacy-jar", "uber-jar");
-
- // Quarkus' properties which are considered as file inputs
- private static final List QUARKUS_KEYS_AS_FILE_INPUTS = Arrays.asList("quarkus.docker.dockerfile-native-path", "quarkus.docker.dockerfile-jvm-path", "quarkus.openshift.jvm-dockerfile", "quarkus.openshift.native-dockerfile");
-
- // Quarkus' properties which should be ignored (the JDK / GraalVM version are extra inputs)
- private static final List QUARKUS_IGNORED_PROPERTIES = Arrays.asList(QUARKUS_CONFIG_KEY_GRAALVM_HOME, QUARKUS_CONFIG_KEY_JAVA_HOME);
-
- // Quarkus artifact descriptor
- private static final String QUARKUS_ARTIFACT_PROPERTIES_FILE_NAME = "quarkus-artifact.properties";
-
- void configureBuildCache(BuildCacheApi buildCache) {
- buildCache.registerNormalizationProvider(context -> {
- QuarkusExtensionConfiguration extensionConfiguration = new QuarkusExtensionConfiguration(context.getProject());
- configureNormalization(context, extensionConfiguration);
- });
- buildCache.registerMojoMetadataProvider(context -> {
- QuarkusExtensionConfiguration extensionConfiguration = new QuarkusExtensionConfiguration(context.getProject());
-
- context.withPlugin("quarkus-maven-plugin", () -> {
- configureQuarkusBuildGoal(context, extensionConfiguration);
- });
- context.withPlugin("maven-surefire-plugin", () -> {
- TestConfiguration testConfiguration = new TestConfiguration(context, extensionConfiguration);
- configureQuarkusExtraTestInputs(context, extensionConfiguration, testConfiguration);
- });
- context.withPlugin("maven-failsafe-plugin", () -> {
- TestConfiguration testConfiguration = new TestConfiguration(context, extensionConfiguration);
- configureQuarkusExtraTestInputs(context, extensionConfiguration, testConfiguration);
- configureQuarkusExtraIntegrationTestInputs(context, testConfiguration);
- });
- });
- }
-
- private void configureNormalization(NormalizationProvider.Context context, QuarkusExtensionConfiguration extensionConfiguration) {
- if (extensionConfiguration.isQuarkusCacheEnabled()) {
- context.configureRuntimeClasspathNormalization(
- normalization -> normalization.addPropertiesNormalization(extensionConfiguration.getCurrentConfigFileName(), QUARKUS_IGNORED_PROPERTIES)
- );
- }
- }
-
- private void configureQuarkusExtraTestInputs(MojoMetadataProvider.Context context, QuarkusExtensionConfiguration extensionConfiguration, TestConfiguration testConfiguration) {
- LOGGER.debug(QuarkusExtensionUtil.getLogMessage(testConfiguration.toString()));
- if (testConfiguration.isAddQuarkusInputs()) {
- LOGGER.debug(QuarkusExtensionUtil.getLogMessage("Adding Quarkus extra test inputs"));
- context.inputs(inputs -> addQuarkusDependencyChecksumsInput(inputs, extensionConfiguration));
- context.inputs(inputs -> addQuarkusDependenciesInputs(inputs, extensionConfiguration));
- }
- if (testConfiguration.isAddQuarkusPackageInputs()) {
- LOGGER.debug(QuarkusExtensionUtil.getLogMessage("Adding Quarkus extra test package inputs"));
- context.inputs(inputs -> addQuarkusJarInput(inputs, testConfiguration));
- }
- }
-
- private void configureQuarkusExtraIntegrationTestInputs(MojoMetadataProvider.Context context, TestConfiguration testConfiguration) {
- if (testConfiguration.isAddQuarkusInputs()) {
- context.inputs(this::addQuarkusArtifactPropertiesInput);
- }
- if (testConfiguration.isAddQuarkusPackageInputs()) {
- context.inputs(inputs -> addQuarkusExeInput(inputs, testConfiguration));
- }
- }
-
- private void configureQuarkusBuildGoal(MojoMetadataProvider.Context context, QuarkusExtensionConfiguration extensionConfiguration) {
- if ("build".equals(context.getMojoExecution().getGoal())) {
- LOGGER.debug(QuarkusExtensionUtil.getLogMessage(extensionConfiguration.toString()));
- if (extensionConfiguration.isQuarkusCacheEnabled()) {
- LOGGER.debug(QuarkusExtensionUtil.getLogMessage("Quarkus caching is enabled"));
-
- // Load Quarkus properties from previous build
- String baseDir = context.getProject().getBasedir().getAbsolutePath();
- Properties quarkusPreviousProperties = QuarkusExtensionUtil.loadProperties(baseDir, extensionConfiguration.getDumpConfigFileName());
-
- // Load Quarkus properties from current build
- Properties quarkusCurrentProperties = QuarkusExtensionUtil.loadProperties(baseDir, extensionConfiguration.getCurrentConfigFileName());
-
- // Check required configuration
- if (isQuarkusBuildCacheable(quarkusPreviousProperties, quarkusCurrentProperties, extensionConfiguration.isNativeBuildInContainerRequired())) {
- LOGGER.info(QuarkusExtensionUtil.getLogMessage("Quarkus build goal marked as cacheable"));
- configureInputs(context, extensionConfiguration, quarkusCurrentProperties);
- configureOutputs(context, extensionConfiguration.getExtraOutputDirs(), extensionConfiguration.getExtraOutputFiles());
- } else {
- LOGGER.info(QuarkusExtensionUtil.getLogMessage("Quarkus build goal marked as not cacheable"));
- }
- } else {
- LOGGER.debug(QuarkusExtensionUtil.getLogMessage("Quarkus caching is disabled"));
- }
- }
- }
-
- private boolean isQuarkusBuildCacheable(Properties quarkusPreviousProperties, Properties quarkusCurrentProperties, boolean isNativeBuildInContainerRequired) {
- return isQuarkusDumpConfigFilePresent(quarkusPreviousProperties, quarkusCurrentProperties)
- && isJarPackagingTypeSupported(quarkusCurrentProperties)
- && isNotNativeOrInContainerNativeBuild(quarkusCurrentProperties, isNativeBuildInContainerRequired)
- && isQuarkusPropertiesUnchanged(quarkusPreviousProperties, quarkusCurrentProperties);
- }
-
- private boolean isQuarkusDumpConfigFilePresent(Properties quarkusPreviousProperties, Properties quarkusCurrentProperties) {
- if (quarkusPreviousProperties.isEmpty()) {
- LOGGER.info(QuarkusExtensionUtil.getLogMessage("Quarkus previous configuration not found"));
- return false;
- }
- if (quarkusCurrentProperties.isEmpty()) {
- LOGGER.info(QuarkusExtensionUtil.getLogMessage("Quarkus current configuration not found"));
- return false;
- }
-
- return true;
- }
-
- private boolean isQuarkusPropertiesUnchanged(Properties quarkusPreviousProperties, Properties quarkusCurrentProperties) {
- Set> quarkusPropertiesCopy = new HashSet<>(quarkusPreviousProperties.entrySet());
-
- // Remove properties identical between current and previous build
- quarkusPropertiesCopy.removeAll(quarkusCurrentProperties.entrySet());
-
- // Remove properties which should be ignored
- quarkusPropertiesCopy.removeIf(e -> QUARKUS_IGNORED_PROPERTIES.contains(e.getKey().toString()));
-
- if (!quarkusPropertiesCopy.isEmpty()) {
- LOGGER.info(QuarkusExtensionUtil.getLogMessage("Quarkus properties have changed"));
- if (LOGGER.isDebugEnabled()) {
- LOGGER.debug(QuarkusExtensionUtil.getLogMessage("[" + quarkusPropertiesCopy.stream().map(e -> e.getKey().toString()).collect(Collectors.joining(", ")) + "]"));
- }
- } else {
- return true;
- }
-
- return false;
- }
-
- private boolean isNativeBuild(Properties quarkusCurrentProperties) {
- return Boolean.parseBoolean(quarkusCurrentProperties.getProperty(QUARKUS_CONFIG_KEY_NATIVE)) || PACKAGE_NATIVE.equals(quarkusCurrentProperties.getProperty(QUARKUS_CONFIG_KEY_DEPRECATED_PACKAGE_TYPE));
- }
-
- private boolean isNotNativeOrInContainerNativeBuild(Properties quarkusCurrentProperties, boolean isNativeBuildInContainerRequired) {
- if (isNativeBuild(quarkusCurrentProperties)) {
- if (isNativeBuildInContainerRequired) {
- return isInContainerWithFixedImageBuild(quarkusCurrentProperties, true);
- } else {
- LOGGER.info(QuarkusExtensionUtil.getLogMessage("Quarkus in-container build strategy is not required"));
- }
- } else {
- LOGGER.debug(QuarkusExtensionUtil.getLogMessage("Quarkus build is not native"));
- }
-
- return true;
- }
-
- private boolean isInContainerWithFixedImageBuild(Properties quarkusCurrentProperties, boolean isLoggingRequired) {
- String builderImage = quarkusCurrentProperties.getProperty(QUARKUS_CONFIG_KEY_NATIVE_BUILDER_IMAGE, "");
- if (builderImage.isEmpty()) {
- if(isLoggingRequired) {
- LOGGER.info(QuarkusExtensionUtil.getLogMessage("Quarkus build is not using a fixed image"));
- }
- return false;
- }
-
- if (QUARKUS_CONFIG_KEY_NATIVE_CONTAINER_BUILD.stream().noneMatch(key -> Boolean.parseBoolean(quarkusCurrentProperties.getProperty(key)))) {
- if(isLoggingRequired) {
- LOGGER.info(QuarkusExtensionUtil.getLogMessage("Quarkus build strategy is not in-container"));
- }
- return false;
- }
-
- return true;
- }
-
- private boolean isJarPackagingTypeSupported(Properties quarkusCurrentProperties) {
- if (!isNativeBuild(quarkusCurrentProperties)) {
- String packageType = getJarPackageType(quarkusCurrentProperties);
- if (packageType == null || !QUARKUS_CACHEABLE_JAR_TYPES.contains(packageType)) {
- LOGGER.info(QuarkusExtensionUtil.getLogMessage("Quarkus package type " + packageType + " is not cacheable"));
- return false;
- }
- }
-
- return true;
- }
-
- private String getJarPackageType(Properties quarkusCurrentProperties) {
- String jarPackageType = quarkusCurrentProperties.getProperty(QUARKUS_CONFIG_KEY_JAR_TYPE);
- if (jarPackageType == null) {
- jarPackageType = quarkusCurrentProperties.getProperty(QUARKUS_CONFIG_KEY_DEPRECATED_PACKAGE_TYPE);
- }
- return jarPackageType;
- }
-
- private void configureInputs(MojoMetadataProvider.Context context, QuarkusExtensionConfiguration extensionConfiguration, Properties quarkusCurrentProperties) {
- context.inputs(inputs -> {
- if (!isInContainerWithFixedImageBuild(quarkusCurrentProperties, false)) {
- // do not add OS inputs when using the in-container build strategy
- addOsInputs(inputs);
- }
- addCompilerInputs(inputs);
- addClasspathInput(context, inputs);
- addMojoInputs(inputs);
- addQuarkusPropertiesInput(inputs, extensionConfiguration);
- addQuarkusConfigurationFilesInputs(inputs, quarkusCurrentProperties);
- addQuarkusDependenciesInputs(inputs, extensionConfiguration);
- addQuarkusDependencyChecksumsInput(inputs, extensionConfiguration);
- });
- }
-
- private void addOsInputs(MojoMetadataProvider.Context.Inputs inputs) {
- inputs.property("osName", System.getProperty("os.name"))
- .property("osVersion", System.getProperty("os.version"))
- .property("osArch", System.getProperty("os.arch"));
- }
-
- private void addCompilerInputs(MojoMetadataProvider.Context.Inputs inputs) {
- inputs.property("javaVersion", System.getProperty("java.version"));
- }
-
- private void addClasspathInput(MojoMetadataProvider.Context context, MojoMetadataProvider.Context.Inputs inputs) {
- try {
- List compileClasspathElements = context.getProject().getCompileClasspathElements();
- inputs.fileSet("quarkusCompileClasspath", compileClasspathElements, fileSet -> fileSet.normalizationStrategy(MojoMetadataProvider.Context.FileSet.NormalizationStrategy.CLASSPATH));
- } catch (DependencyResolutionRequiredException e) {
- throw new IllegalStateException("Classpath can't be resolved");
- }
- }
-
- private void addMojoInputs(MojoMetadataProvider.Context.Inputs inputs) {
- inputs
- .fileSet("generatedSourcesDirectory", fileSet -> {
- })
- .properties("appArtifact", "closeBootstrappedApp", "finalName", "ignoredEntries", "manifestEntries", "manifestSections", "skip", "skipOriginalJarRename", "systemProperties", "properties", "attachSboms")
- .ignore("project", "buildDir", "mojoExecution", "session", "repoSession", "repos", "pluginRepos", "attachRunnerAsMainArtifact", "bootstrapId", "buildDirectory");
- }
-
- private void addQuarkusPropertiesInput(MojoMetadataProvider.Context.Inputs inputs, QuarkusExtensionConfiguration extensionConfiguration) {
- inputs.fileSet("quarkusConfigCheck", new File(extensionConfiguration.getCurrentConfigFileName()), fileSet -> fileSet.normalizationStrategy(MojoMetadataProvider.Context.FileSet.NormalizationStrategy.RELATIVE_PATH));
- inputs.fileSet("generatedSourcesDirectory", fileSet -> {
- });
- }
-
- private void addQuarkusConfigurationFilesInputs(MojoMetadataProvider.Context.Inputs inputs, Properties quarkusCurrentProperties) {
- for (String quarkusFilePropertyKey : QUARKUS_KEYS_AS_FILE_INPUTS) {
- String quarkusFilePropertyValue = quarkusCurrentProperties.getProperty(quarkusFilePropertyKey);
- if (QuarkusExtensionUtil.isNotEmpty(quarkusFilePropertyValue)) {
- inputs.fileSet(quarkusFilePropertyKey, new File(quarkusFilePropertyValue), fileSet -> fileSet.normalizationStrategy(MojoMetadataProvider.Context.FileSet.NormalizationStrategy.RELATIVE_PATH));
- }
- }
- }
-
- /**
- * This method is deprecated and kept for compatibility reasons @see {@link #addQuarkusDependenciesInputs} for replacement
- */
- @Deprecated
- private void addQuarkusDependencyChecksumsInput(MojoMetadataProvider.Context.Inputs inputs, QuarkusExtensionConfiguration extensionConfiguration) {
- inputs.fileSet("quarkusDependencyChecksums", new File(extensionConfiguration.getCurrentDependencyChecksumsFileName()), fileSet -> fileSet.normalizationStrategy(MojoMetadataProvider.Context.FileSet.NormalizationStrategy.RELATIVE_PATH));
- }
-
- private void addQuarkusArtifactPropertiesInput(MojoMetadataProvider.Context.Inputs inputs) {
- inputs.fileSet("quarkusArtifactProperties", new File(TARGET_DIR + QUARKUS_ARTIFACT_PROPERTIES_FILE_NAME), fileSet -> fileSet.normalizationStrategy(MojoMetadataProvider.Context.FileSet.NormalizationStrategy.RELATIVE_PATH));
- }
-
- private void addQuarkusJarInput(MojoMetadataProvider.Context.Inputs inputs, TestConfiguration testConfiguration) {
- inputs.fileSet("quarkusJarFile", new File(TARGET_DIR), fileSet -> fileSet.include(testConfiguration.getQuarkusJarFilePattern()).normalizationStrategy(MojoMetadataProvider.Context.FileSet.NormalizationStrategy.CLASSPATH));
- }
-
- private void addQuarkusExeInput(MojoMetadataProvider.Context.Inputs inputs, TestConfiguration testConfiguration) {
- inputs.fileSet("quarkusExeFile", new File(TARGET_DIR), fileSet -> fileSet.include(testConfiguration.getQuarkusExeFilePattern()).normalizationStrategy(MojoMetadataProvider.Context.FileSet.NormalizationStrategy.RELATIVE_PATH));
- }
-
- private void addQuarkusDependenciesInputs(MojoMetadataProvider.Context.Inputs inputs, QuarkusExtensionConfiguration extensionConfiguration) {
- File quarkusDependencyFile = new File(extensionConfiguration.getCurrentDependencyFileName());
- if (quarkusDependencyFile.exists()) {
- try {
- List quarkusDependencies = Files.readAllLines(quarkusDependencyFile.toPath(), Charset.defaultCharset());
- inputs.fileSet("quarkusDependencies", quarkusDependencies, fileSet -> fileSet.normalizationStrategy(MojoMetadataProvider.Context.FileSet.NormalizationStrategy.CLASSPATH));
- } catch (IOException e) {
- LOGGER.error(QuarkusExtensionUtil.getLogMessage("Error while loading " + quarkusDependencyFile), e);
- }
- } else {
- LOGGER.debug(QuarkusExtensionUtil.getLogMessage(quarkusDependencyFile + " not found"));
- }
- }
-
- private void configureOutputs(MojoMetadataProvider.Context context, List extraOutputDirs, List extraOutputFiles) {
- context.outputs(outputs -> {
- String quarkusExeFileName = TARGET_DIR + context.getProject().getBuild().getFinalName() + "-runner";
- String quarkusJarFileName = TARGET_DIR + context.getProject().getBuild().getFinalName() + ".jar";
- String quarkusUberJarFileName = TARGET_DIR + context.getProject().getBuild().getFinalName() + "-runner.jar";
- String quarkusArtifactProperties = TARGET_DIR + QUARKUS_ARTIFACT_PROPERTIES_FILE_NAME;
-
- outputs.cacheable("this plugin has CPU-bound goals with well-defined inputs and outputs");
- outputs.file("quarkusExe", quarkusExeFileName);
- outputs.file("quarkusJar", quarkusJarFileName);
- outputs.file("quarkusUberJar", quarkusUberJarFileName);
- outputs.file("quarkusArtifactProperties", quarkusArtifactProperties);
-
- extraOutputDirs.forEach(extraOutput -> {
- if(!extraOutput.isEmpty()) {
- LOGGER.debug(QuarkusExtensionUtil.getLogMessage("Adding extra output dir " + extraOutput));
- outputs.directory(extraOutput, TARGET_DIR + extraOutput);
- }
- });
-
- extraOutputFiles.forEach(extraOutput -> {
- if(!extraOutput.isEmpty()) {
- LOGGER.debug(QuarkusExtensionUtil.getLogMessage("Adding extra output file " + extraOutput));
- outputs.file(extraOutput, TARGET_DIR + extraOutput);
- }
- });
- });
- }
-
-}
diff --git a/quarkus-build-caching-extension/src/main/java/com/gradle/QuarkusBuildCachingDevelocityListener.java b/quarkus-build-caching-extension/src/main/java/com/gradle/QuarkusBuildCachingDevelocityListener.java
deleted file mode 100644
index 864e4a4be..000000000
--- a/quarkus-build-caching-extension/src/main/java/com/gradle/QuarkusBuildCachingDevelocityListener.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.gradle;
-
-import com.gradle.develocity.agent.maven.api.DevelocityApi;
-import com.gradle.develocity.agent.maven.api.DevelocityListener;
-import org.apache.maven.execution.MavenSession;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class QuarkusBuildCachingDevelocityListener implements DevelocityListener {
-
- private final Logger LOGGER = LoggerFactory.getLogger(QuarkusBuildCachingDevelocityListener.class);
-
- private final QuarkusBuildCache quarkusBuildCache = new QuarkusBuildCache();
-
- @Override
- public void configure(DevelocityApi api, MavenSession session) {
- LOGGER.debug("Executing extension: " + getClass().getSimpleName());
- quarkusBuildCache.configureBuildCache(api.getBuildCache());
- }
-
-}
diff --git a/quarkus-build-caching-extension/src/main/java/com/gradle/QuarkusExtensionConfiguration.java b/quarkus-build-caching-extension/src/main/java/com/gradle/QuarkusExtensionConfiguration.java
deleted file mode 100644
index 621a91d1c..000000000
--- a/quarkus-build-caching-extension/src/main/java/com/gradle/QuarkusExtensionConfiguration.java
+++ /dev/null
@@ -1,183 +0,0 @@
-package com.gradle;
-
-import org.apache.maven.project.MavenProject;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Properties;
-
-final class QuarkusExtensionConfiguration {
-
- // Disable caching flag key
- private static final String DEVELOCITY_QUARKUS_KEY_CACHE_ENABLED = "DEVELOCITY_QUARKUS_CACHE_ENABLED";
-
- // Configuration file location key
- private static final String DEVELOCITY_QUARKUS_KEY_CONFIG_FILE = "DEVELOCITY_QUARKUS_CONFIG_FILE";
-
- // Build profile key
- private static final String DEVELOCITY_QUARKUS_KEY_BUILD_PROFILE = "DEVELOCITY_QUARKUS_BUILD_PROFILE";
-
- // Default build profile
- private static final String DEVELOCITY_QUARKUS_DEFAULT_BUILD_PROFILE = "prod";
-
- // Dump config file prefix key
- private static final String DEVELOCITY_QUARKUS_KEY_DUMP_CONFIG_PREFIX = "DEVELOCITY_QUARKUS_DUMP_CONFIG_PREFIX";
-
- // Default dump config file prefix
- private static final String DEVELOCITY_QUARKUS_DEFAULT_DUMP_CONFIG_PREFIX = "quarkus";
-
- // Dump config file suffix key
- private static final String DEVELOCITY_QUARKUS_KEY_DUMP_CONFIG_SUFFIX = "DEVELOCITY_QUARKUS_DUMP_CONFIG_SUFFIX";
-
- // Default dump config file suffix
- private static final String DEVELOCITY_QUARKUS_DEFAULT_DUMP_CONFIG_SUFFIX = "config-dump";
-
- // Extra output dirs key
- private static final String DEVELOCITY_QUARKUS_KEY_EXTRA_OUTPUT_DIRS = "DEVELOCITY_QUARKUS_EXTRA_OUTPUT_DIRS";
-
- // Extra output files key
- private static final String DEVELOCITY_QUARKUS_KEY_EXTRA_OUTPUT_FILES = "DEVELOCITY_QUARKUS_EXTRA_OUTPUT_FILES";
-
- // Native build in container required key
- private static final String DEVELOCITY_QUARKUS_KEY_NATIVE_BUILD_IN_CONTAINER_REQUIRED = "DEVELOCITY_QUARKUS_NATIVE_BUILD_IN_CONTAINER_REQUIRED";
-
- private final Properties configuration = new Properties();
-
- QuarkusExtensionConfiguration(MavenProject project) {
- // loading default properties
- initWithDefault();
-
- // override from environment
- overrideFromEnvironment();
-
- // override from Maven properties
- overrideFromMaven(project);
-
- // override from configuration file
- overrideFromConfigurationFile(project);
- }
-
- private void initWithDefault() {
- configuration.setProperty(DEVELOCITY_QUARKUS_KEY_CACHE_ENABLED, Boolean.TRUE.toString());
- configuration.setProperty(DEVELOCITY_QUARKUS_KEY_BUILD_PROFILE, DEVELOCITY_QUARKUS_DEFAULT_BUILD_PROFILE);
- configuration.setProperty(DEVELOCITY_QUARKUS_KEY_DUMP_CONFIG_PREFIX, DEVELOCITY_QUARKUS_DEFAULT_DUMP_CONFIG_PREFIX);
- configuration.setProperty(DEVELOCITY_QUARKUS_KEY_DUMP_CONFIG_SUFFIX, DEVELOCITY_QUARKUS_DEFAULT_DUMP_CONFIG_SUFFIX);
- configuration.setProperty(DEVELOCITY_QUARKUS_KEY_CONFIG_FILE, "");
- configuration.setProperty(DEVELOCITY_QUARKUS_KEY_EXTRA_OUTPUT_DIRS, "");
- configuration.setProperty(DEVELOCITY_QUARKUS_KEY_EXTRA_OUTPUT_FILES, "");
- configuration.setProperty(DEVELOCITY_QUARKUS_KEY_NATIVE_BUILD_IN_CONTAINER_REQUIRED, Boolean.TRUE.toString());
- }
-
- private void overrideFromEnvironment() {
- configuration.stringPropertyNames().forEach((key) -> {
- String envValue = System.getenv(key);
- if (envValue != null && !envValue.isEmpty()) {
- configuration.setProperty(key, envValue);
- }
- });
- }
-
- private void overrideFromMaven(MavenProject project) {
- configuration.stringPropertyNames().forEach((key) -> {
- String mavenProperty = project.getProperties().getProperty(
- key.toLowerCase().replace("_", "."), ""
- );
- if (mavenProperty != null && !mavenProperty.isEmpty()) {
- configuration.setProperty(key, mavenProperty);
- }
- });
- }
-
- private void overrideFromConfigurationFile(MavenProject project) {
- String configurationFile = configuration.getProperty(DEVELOCITY_QUARKUS_KEY_CONFIG_FILE);
- if(!configurationFile.isEmpty()) {
- configuration.putAll(QuarkusExtensionUtil.loadProperties(project.getBasedir().getAbsolutePath(), configurationFile));
- }
- }
-
- /**
- * @return whether Quarkus cache is enabled or not
- */
- boolean isQuarkusCacheEnabled() {
- // Quarkus cache is enabled by default
- return !Boolean.FALSE.toString().equals(configuration.get(DEVELOCITY_QUARKUS_KEY_CACHE_ENABLED));
- }
-
- /**
- * @return whether native build requires in-container build strategy or not
- */
- boolean isNativeBuildInContainerRequired() {
- return !Boolean.FALSE.toString().equals(configuration.get(DEVELOCITY_QUARKUS_KEY_NATIVE_BUILD_IN_CONTAINER_REQUIRED));
- }
-
- /**
- * This file contains Quarkus' properties used to configure the application.
- * This file is generated by the Quarkus build goal.
- *
- * @return dump config file name
- */
- String getDumpConfigFileName() {
- return String.format(".quarkus/%s-%s-%s",
- configuration.getProperty(DEVELOCITY_QUARKUS_KEY_DUMP_CONFIG_PREFIX),
- configuration.getProperty(DEVELOCITY_QUARKUS_KEY_BUILD_PROFILE),
- configuration.getProperty(DEVELOCITY_QUARKUS_KEY_DUMP_CONFIG_SUFFIX)
- );
- }
-
- /**
- * This file contains Quarkus' properties values when process-resources phase is executed.
- * It is generated by the Quarkus track-config-changes goal.
- *
- * @return config check file name
- */
- String getCurrentConfigFileName() {
- return String.format("target/%s-%s-config-check",
- configuration.getProperty(DEVELOCITY_QUARKUS_KEY_DUMP_CONFIG_PREFIX),
- configuration.getProperty(DEVELOCITY_QUARKUS_KEY_BUILD_PROFILE)
- );
- }
-
- /**
- * This file contains the list of absolute paths to runtime dependencies used by the Quarkus application.
- *
- * @return dependency file name
- */
- String getCurrentDependencyFileName() {
- return String.format("target/%s-%s-dependencies.txt",
- configuration.getProperty(DEVELOCITY_QUARKUS_KEY_DUMP_CONFIG_PREFIX),
- configuration.getProperty(DEVELOCITY_QUARKUS_KEY_BUILD_PROFILE)
- );
- }
-
- /**
- * This file contains the list of Runtime dependencies used by the Quarkus application.
- *
- * @return dependency file name
- */
- String getCurrentDependencyChecksumsFileName() {
- return String.format("target/%s-%s-dependency-checksums.txt",
- configuration.getProperty(DEVELOCITY_QUARKUS_KEY_DUMP_CONFIG_PREFIX),
- configuration.getProperty(DEVELOCITY_QUARKUS_KEY_BUILD_PROFILE)
- );
- }
-
- /**
- * @return extra goal output directories to cache
- */
- List getExtraOutputDirs() {
- return Arrays.asList(configuration.getProperty(DEVELOCITY_QUARKUS_KEY_EXTRA_OUTPUT_DIRS).split(","));
- }
-
- /**
- * @return extra goal output files to cache
- */
- List getExtraOutputFiles() {
- return Arrays.asList(configuration.getProperty(DEVELOCITY_QUARKUS_KEY_EXTRA_OUTPUT_FILES).split(","));
- }
-
-
- @Override
- public String toString() {
- return configuration.toString();
- }
-}
diff --git a/quarkus-build-caching-extension/src/main/java/com/gradle/QuarkusExtensionUtil.java b/quarkus-build-caching-extension/src/main/java/com/gradle/QuarkusExtensionUtil.java
deleted file mode 100644
index 4efb74716..000000000
--- a/quarkus-build-caching-extension/src/main/java/com/gradle/QuarkusExtensionUtil.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.gradle;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.file.Files;
-import java.util.Properties;
-
-final class QuarkusExtensionUtil {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(QuarkusBuildCache.class);
- private static final String LOG_PREFIX = "[quarkus-build-caching-extension] ";
-
- static Properties loadProperties(String baseDir, String propertyFile) {
- Properties props = new Properties();
- File configFile = new File(baseDir, propertyFile);
-
- if (configFile.exists()) {
- try (InputStream input = Files.newInputStream(configFile.toPath())) {
- props.load(input);
- } catch (IOException e) {
- LOGGER.error(getLogMessage("Error while loading " + propertyFile), e);
- }
- } else {
- LOGGER.debug(getLogMessage(propertyFile + " not found"));
- }
-
- return props;
- }
-
- static boolean isNotEmpty(String value) {
- return value != null && !value.isEmpty();
- }
-
- static String getLogMessage(String msg) {
- return LOG_PREFIX + msg;
- }
-
-}
diff --git a/quarkus-build-caching-extension/src/main/java/com/gradle/TestConfiguration.java b/quarkus-build-caching-extension/src/main/java/com/gradle/TestConfiguration.java
deleted file mode 100644
index 737cd52a4..000000000
--- a/quarkus-build-caching-extension/src/main/java/com/gradle/TestConfiguration.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package com.gradle;
-
-import com.gradle.develocity.agent.maven.api.cache.MojoMetadataProvider;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
-
-class TestConfiguration {
-
- private static final String TEST_GOAL_KEY_ADD_QUARKUS_INPUTS = "addQuarkusInputs";
- private static final String TEST_GOAL_KEY_ADD_QUARKUS_PACKAGE_INPUTS = "addQuarkusPackageInputs";
- private static final String TEST_GOAL_KEY_QUARKUS_PACKAGE_PATTERN = "quarkusPackagePattern";
- private static final String TEST_GOAL_DEFAULT_QUARKUS_PACKAGE_JAR_PATTERN = "*.jar";
- private static final String TEST_GOAL_DEFAULT_QUARKUS_PACKAGE_EXE_PATTERN = "*-runner";
-
- private boolean addQuarkusInputs;
- private boolean addQuarkusPackageInputs;
- private String quarkusPackagePattern;
-
- TestConfiguration(MojoMetadataProvider.Context context, QuarkusExtensionConfiguration extensionConfiguration) {
- if (extensionConfiguration.isQuarkusCacheEnabled()) {
- Xpp3Dom properties = context.getMojoExecution().getConfiguration().getChild("properties");
- if (properties != null) {
- Xpp3Dom addQuarkusInputsProperty = properties.getChild(TEST_GOAL_KEY_ADD_QUARKUS_INPUTS);
- if (addQuarkusInputsProperty != null) {
- addQuarkusInputs = Boolean.parseBoolean(addQuarkusInputsProperty.getValue());
- }
- Xpp3Dom addQuarkusPackageInputsProperty = properties.getChild(TEST_GOAL_KEY_ADD_QUARKUS_PACKAGE_INPUTS);
- if (addQuarkusPackageInputsProperty != null) {
- addQuarkusPackageInputs = Boolean.parseBoolean(addQuarkusPackageInputsProperty.getValue());
- }
- Xpp3Dom quarkusPackagePatternProperty = properties.getChild(TEST_GOAL_KEY_QUARKUS_PACKAGE_PATTERN);
- if (quarkusPackagePatternProperty != null) {
- quarkusPackagePattern = quarkusPackagePatternProperty.getValue();
- }
- }
- }
- }
-
- boolean isAddQuarkusInputs() {
- return addQuarkusInputs;
- }
-
- boolean isAddQuarkusPackageInputs() {
- return addQuarkusPackageInputs;
- }
-
- String getQuarkusJarFilePattern() {
- return quarkusPackagePattern != null ? quarkusPackagePattern : TEST_GOAL_DEFAULT_QUARKUS_PACKAGE_JAR_PATTERN;
- }
-
- String getQuarkusExeFilePattern() {
- return quarkusPackagePattern != null ? quarkusPackagePattern : TEST_GOAL_DEFAULT_QUARKUS_PACKAGE_EXE_PATTERN;
- }
-
- @Override
- public String toString() {
- return "TestConfiguration{" +
- "addQuarkusInputs=" + addQuarkusInputs +
- ", addQuarkusPackageInputs=" + addQuarkusPackageInputs +
- ", quarkusPackagePattern='" + quarkusPackagePattern + '\'' +
- '}';
- }
-}
diff --git a/quarkus-build-caching-extension/src/main/resources/META-INF/plexus/components.xml b/quarkus-build-caching-extension/src/main/resources/META-INF/plexus/components.xml
deleted file mode 100644
index 7b26b4c49..000000000
--- a/quarkus-build-caching-extension/src/main/resources/META-INF/plexus/components.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- com.gradle.develocity.agent.maven.api.DevelocityListener
- quarkus-build-caching-develocity-listener
- com.gradle.QuarkusBuildCachingDevelocityListener
- Makes the Quarkus goals cacheable
- false
-
-
-