This is an automated email from the ASF dual-hosted git repository.

sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x-extras.git


The following commit(s) were added to refs/heads/develop by this push:
     new 8c040f4d chore(build): maven 4 migration
8c040f4d is described below

commit 8c040f4db3ef8b047ce95c0ba5a0592c31b656b8
Author: Sebastian Rühl <[email protected]>
AuthorDate: Fri Jul 10 08:41:55 2026 +0200

    chore(build): maven 4 migration
    
    Mirror the migration done in the main plc4x repo (75847e32c6):
    
    https://maven.apache.org/guides/mini/guide-migration-to-mvn4.html
    
    - Maven-Wrapper: distribution 3.9.11 -> 4.0.0-rc-5, wrapper scripts 3.3.4
    - All POMs upgraded to the 4.1.0 model via 'mvnup apply --all':
      namespace 4.0.0 -> 4.1.0, modelVersion dropped (inferred),
      modules -> subprojects, subproject lists dropped where they exactly
      match the direct child directories (automatic subproject discovery)
    - Explicit parent versions restored in all reactor POMs (as in plc4x:
      inference breaks plugins that resolve in-reactor artifact descriptors
      through the repository system)
    - Root POM gets an explicit empty <subprojects/> element: the language
      modules are only contributed by the with-c/with-go/with-java profiles,
      and without the element Maven 4 auto-discovery would unconditionally
      pull in all subdirectories
    - JaCoCo integration-test execution moved to the Maven 4 phase name
      before:integration-test
    - README: document the Maven 4.0.0-rc-5+ build requirement
    
    Verified: './mvnw -B -Pwith-java install' builds green on 4.0.0-rc-5,
    profile-less builds still only build the root project, and the
    plc4j-s7event example stays excluded from the reactor.
---
 .mvn/wrapper/maven-wrapper.properties              |  4 +-
 README.md                                          |  5 +-
 mvnw                                               | 50 ++++++++++++++++---
 mvnw.cmd                                           | 56 ++++++++++++++++++----
 plc4c/pom.xml                                      |  4 +-
 plc4go/pom.xml                                     |  4 +-
 plc4j/examples/hello-ads-telemetry/pom.xml         |  5 +-
 plc4j/examples/hello-cloud-azure/pom.xml           |  4 +-
 plc4j/examples/hello-cloud-google/pom.xml          |  4 +-
 plc4j/examples/hello-connectivity-mqtt/pom.xml     |  5 +-
 plc4j/examples/hello-discovery/pom.xml             |  4 +-
 .../examples/hello-influx-data-collection/pom.xml  |  4 +-
 plc4j/examples/hello-integration-iotdb/pom.xml     |  4 +-
 plc4j/examples/hello-nats/pom.xml                  |  5 +-
 plc4j/examples/hello-opm/pom.xml                   |  4 +-
 plc4j/examples/hello-webservice/pom.xml            |  4 +-
 plc4j/examples/hello-world-kotlin/pom.xml          |  3 +-
 .../hello-world-plc4x-discover-and-browse/pom.xml  |  4 +-
 plc4j/examples/hello-world-plc4x-read/pom.xml      |  4 +-
 plc4j/examples/hello-world-plc4x-subscribe/pom.xml |  4 +-
 plc4j/examples/hello-world-plc4x-write/pom.xml     |  4 +-
 plc4j/examples/plc4j-s7event/pom.xml               |  4 +-
 plc4j/examples/poll-loop/pom.xml                   |  4 +-
 plc4j/examples/pom.xml                             | 40 ++++++++--------
 plc4j/integrations/apache-calcite/pom.xml          |  4 +-
 plc4j/integrations/apache-kafka/pom.xml            |  4 +-
 .../apache-nifi/nifi-1/nifi-plc4x-nar/pom.xml      |  6 +--
 .../nifi-1/nifi-plc4x-processors/pom.xml           |  4 +-
 plc4j/integrations/apache-nifi/nifi-1/pom.xml      | 11 +----
 .../apache-nifi/nifi-2/nifi-2-plc4x-nar/pom.xml    |  6 +--
 .../nifi-2/nifi-2-plc4x-processors/pom.xml         |  4 +-
 plc4j/integrations/apache-nifi/nifi-2/pom.xml      | 11 +----
 plc4j/integrations/apache-nifi/pom.xml             |  9 +---
 plc4j/integrations/pom.xml                         | 10 +---
 plc4j/pom.xml                                      | 15 ++----
 plc4j/tools/opcua-server/pom.xml                   |  3 +-
 plc4j/tools/plc4x-server/pom.xml                   |  4 +-
 plc4j/tools/pom.xml                                |  9 +---
 pom.xml                                            | 32 +++++++------
 39 files changed, 174 insertions(+), 191 deletions(-)

diff --git a/.mvn/wrapper/maven-wrapper.properties 
b/.mvn/wrapper/maven-wrapper.properties
index 3590e0cf..a06fccd5 100644
--- a/.mvn/wrapper/maven-wrapper.properties
+++ b/.mvn/wrapper/maven-wrapper.properties
@@ -15,6 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-wrapperVersion=3.3.2
+wrapperVersion=3.3.4
 distributionType=only-script
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.zip
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/4.0.0-rc-5/apache-maven-4.0.0-rc-5-bin.zip
diff --git a/README.md b/README.md
index c9881b95..a6c8e596 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,10 @@
 
 ## Building PLC4X Extras
 
-For building all parts of PLC4X-Extras ensure you're running at least Java 21 
and run the following command:
+For building all parts of PLC4X-Extras ensure you're running at least Java 21.
+Maven 4.0.0-rc-5 or newer is required to build, so be sure it's installed and 
available on your system (the bundled Maven-Wrapper takes care of this 
automatically when using `./mvnw` or `mvnw` instead of the normal `mvn` 
command).
+
+Run the following command:
 
     ./mvnw -P with-c,with-go,with-java install
 
diff --git a/mvnw b/mvnw
index d7c358e5..33c353fa 100755
--- a/mvnw
+++ b/mvnw
@@ -19,7 +19,7 @@
 # ----------------------------------------------------------------------------
 
 # ----------------------------------------------------------------------------
-# Apache Maven Wrapper startup batch script, version 3.3.2
+# Apache Maven Wrapper startup batch script, version 3.3.4
 #
 # Optional ENV vars
 # -----------------
@@ -105,14 +105,17 @@ trim() {
   printf "%s" "${1}" | tr -d '[:space:]'
 }
 
+scriptDir="$(dirname "$0")"
+scriptName="$(basename "$0")"
+
 # 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"
+done <"$scriptDir/.mvn/wrapper/maven-wrapper.properties"
+[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in 
$scriptDir/.mvn/wrapper/maven-wrapper.properties"
 
 case "${distributionUrl##*/}" in
 maven-mvnd-*bin.*)
@@ -130,7 +133,7 @@ maven-mvnd-*bin.*)
   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/ ;;
+*) MVN_CMD="mvn${scriptName#mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;;
 esac
 
 # apply MVNW_REPOURL and calculate MAVEN_HOME
@@ -227,7 +230,7 @@ if [ -n "${distributionSha256Sum-}" ]; then
     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
+    if echo "$distributionSha256Sum  $TMP_DOWNLOAD_DIR/$distributionUrlName" | 
sha256sum -c - >/dev/null 2>&1; then
       distributionSha256Result=true
     fi
   elif command -v shasum >/dev/null; then
@@ -252,8 +255,41 @@ if command -v unzip >/dev/null; then
 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"
+
+# Find the actual extracted directory name (handles snapshots where filename 
!= directory name)
+actualDistributionDir=""
+
+# First try the expected directory name (for regular distributions)
+if [ -d "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" ]; then
+  if [ -f "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/bin/$MVN_CMD" ]; then
+    actualDistributionDir="$distributionUrlNameMain"
+  fi
+fi
+
+# If not found, search for any directory with the Maven executable (for 
snapshots)
+if [ -z "$actualDistributionDir" ]; then
+  # enable globbing to iterate over items
+  set +f
+  for dir in "$TMP_DOWNLOAD_DIR"/*; do
+    if [ -d "$dir" ]; then
+      if [ -f "$dir/bin/$MVN_CMD" ]; then
+        actualDistributionDir="$(basename "$dir")"
+        break
+      fi
+    fi
+  done
+  set -f
+fi
+
+if [ -z "$actualDistributionDir" ]; then
+  verbose "Contents of $TMP_DOWNLOAD_DIR:"
+  verbose "$(ls -la "$TMP_DOWNLOAD_DIR")"
+  die "Could not find Maven distribution directory in extracted archive"
+fi
+
+verbose "Found extracted Maven distribution directory: $actualDistributionDir"
+printf %s\\n "$distributionUrl" 
>"$TMP_DOWNLOAD_DIR/$actualDistributionDir/mvnw.url"
+mv -- "$TMP_DOWNLOAD_DIR/$actualDistributionDir" "$MAVEN_HOME" || [ -d 
"$MAVEN_HOME" ] || die "fail to move MAVEN_HOME"
 
 clean || :
 exec_maven "$@"
diff --git a/mvnw.cmd b/mvnw.cmd
index 6f779cff..bba35af2 100644
--- a/mvnw.cmd
+++ b/mvnw.cmd
@@ -19,7 +19,7 @@
 @REM 
----------------------------------------------------------------------------
 
 @REM 
----------------------------------------------------------------------------
-@REM Apache Maven Wrapper startup batch script, version 3.3.2
+@REM Apache Maven Wrapper startup batch script, version 3.3.4
 @REM
 @REM Optional ENV vars
 @REM   MVNW_REPOURL - repo url base for downloading maven distribution
@@ -40,7 +40,7 @@
 @SET __MVNW_ARG0_NAME__=
 @SET MVNW_USERNAME=
 @SET MVNW_PASSWORD=
-@IF NOT "%__MVNW_CMD__%"=="" (%__MVNW_CMD__% %*)
+@IF NOT "%__MVNW_CMD__%"=="" ("%__MVNW_CMD__%" %*)
 @echo Cannot start maven from wrapper >&2 && exit /b 1
 @GOTO :EOF
 : end batch / begin powershell #>
@@ -73,16 +73,30 @@ switch -wildcard -casesensitive ( $($distributionUrl 
-replace '^.*/','') ) {
 # apply MVNW_REPOURL and calculate MAVEN_HOME
 # maven home pattern: 
~/.m2/wrapper/dists/{apache-maven-<version>,maven-mvnd-<version>-<platform>}/<hash>
 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,'')"
+  $MVNW_REPO_PATTERN = if ($USE_MVND -eq $False) { "/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"
+
+$MAVEN_M2_PATH = "$HOME/.m2"
 if ($env:MAVEN_USER_HOME) {
-  $MAVEN_HOME_PARENT = 
"$env:MAVEN_USER_HOME/wrapper/dists/$distributionUrlNameMain"
+  $MAVEN_M2_PATH = "$env:MAVEN_USER_HOME"
+}
+
+if (-not (Test-Path -Path $MAVEN_M2_PATH)) {
+    New-Item -Path $MAVEN_M2_PATH -ItemType Directory | Out-Null
+}
+
+$MAVEN_WRAPPER_DISTS = $null
+if ((Get-Item $MAVEN_M2_PATH).Target[0] -eq $null) {
+  $MAVEN_WRAPPER_DISTS = "$MAVEN_M2_PATH/wrapper/dists"
+} else {
+  $MAVEN_WRAPPER_DISTS = (Get-Item $MAVEN_M2_PATH).Target[0] + "/wrapper/dists"
 }
-$MAVEN_HOME_NAME = 
([System.Security.Cryptography.MD5]::Create().ComputeHash([byte[]][char[]]$distributionUrl)
 | ForEach-Object {$_.ToString("x2")}) -join ''
+
+$MAVEN_HOME_PARENT = "$MAVEN_WRAPPER_DISTS/$distributionUrlNameMain"
+$MAVEN_HOME_NAME = 
([System.Security.Cryptography.SHA256]::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) {
@@ -134,7 +148,33 @@ if ($distributionSha256Sum) {
 
 # 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
+
+# Find the actual extracted directory name (handles snapshots where filename 
!= directory name)
+$actualDistributionDir = ""
+
+# First try the expected directory name (for regular distributions)
+$expectedPath = Join-Path "$TMP_DOWNLOAD_DIR" "$distributionUrlNameMain"
+$expectedMvnPath = Join-Path "$expectedPath" "bin/$MVN_CMD"
+if ((Test-Path -Path $expectedPath -PathType Container) -and (Test-Path -Path 
$expectedMvnPath -PathType Leaf)) {
+  $actualDistributionDir = $distributionUrlNameMain
+}
+
+# If not found, search for any directory with the Maven executable (for 
snapshots)
+if (!$actualDistributionDir) {
+  Get-ChildItem -Path "$TMP_DOWNLOAD_DIR" -Directory | ForEach-Object {
+    $testPath = Join-Path $_.FullName "bin/$MVN_CMD"
+    if (Test-Path -Path $testPath -PathType Leaf) {
+      $actualDistributionDir = $_.Name
+    }
+  }
+}
+
+if (!$actualDistributionDir) {
+  Write-Error "Could not find Maven distribution directory in extracted 
archive"
+}
+
+Write-Verbose "Found extracted Maven distribution directory: 
$actualDistributionDir"
+Rename-Item -Path "$TMP_DOWNLOAD_DIR/$actualDistributionDir" -NewName 
$MAVEN_HOME_NAME | Out-Null
 try {
   Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination 
$MAVEN_HOME_PARENT | Out-Null
 } catch {
diff --git a/plc4c/pom.xml b/plc4c/pom.xml
index b83df2dd..ab2b72f7 100644
--- a/plc4c/pom.xml
+++ b/plc4c/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.extras</groupId>
diff --git a/plc4go/pom.xml b/plc4go/pom.xml
index 28fdb534..a30cafe6 100644
--- a/plc4go/pom.xml
+++ b/plc4go/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.extras</groupId>
diff --git a/plc4j/examples/hello-ads-telemetry/pom.xml 
b/plc4j/examples/hello-ads-telemetry/pom.xml
index 1586de4a..ca108593 100644
--- a/plc4j/examples/hello-ads-telemetry/pom.xml
+++ b/plc4j/examples/hello-ads-telemetry/pom.xml
@@ -17,10 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.examples</groupId>
diff --git a/plc4j/examples/hello-cloud-azure/pom.xml 
b/plc4j/examples/hello-cloud-azure/pom.xml
index 72d3212d..5e437e64 100644
--- a/plc4j/examples/hello-cloud-azure/pom.xml
+++ b/plc4j/examples/hello-cloud-azure/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.examples</groupId>
diff --git a/plc4j/examples/hello-cloud-google/pom.xml 
b/plc4j/examples/hello-cloud-google/pom.xml
index c5f027f4..056300bd 100644
--- a/plc4j/examples/hello-cloud-google/pom.xml
+++ b/plc4j/examples/hello-cloud-google/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.examples</groupId>
diff --git a/plc4j/examples/hello-connectivity-mqtt/pom.xml 
b/plc4j/examples/hello-connectivity-mqtt/pom.xml
index ded7be4d..8dd4afce 100644
--- a/plc4j/examples/hello-connectivity-mqtt/pom.xml
+++ b/plc4j/examples/hello-connectivity-mqtt/pom.xml
@@ -17,10 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.examples</groupId>
diff --git a/plc4j/examples/hello-discovery/pom.xml 
b/plc4j/examples/hello-discovery/pom.xml
index 2588c54f..b86f00dd 100644
--- a/plc4j/examples/hello-discovery/pom.xml
+++ b/plc4j/examples/hello-discovery/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.examples</groupId>
diff --git a/plc4j/examples/hello-influx-data-collection/pom.xml 
b/plc4j/examples/hello-influx-data-collection/pom.xml
index 5e4d91ce..3ece53fe 100644
--- a/plc4j/examples/hello-influx-data-collection/pom.xml
+++ b/plc4j/examples/hello-influx-data-collection/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.examples</groupId>
diff --git a/plc4j/examples/hello-integration-iotdb/pom.xml 
b/plc4j/examples/hello-integration-iotdb/pom.xml
index eeac7dc7..3bb8b670 100644
--- a/plc4j/examples/hello-integration-iotdb/pom.xml
+++ b/plc4j/examples/hello-integration-iotdb/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.examples</groupId>
diff --git a/plc4j/examples/hello-nats/pom.xml 
b/plc4j/examples/hello-nats/pom.xml
index 50b2453f..c832ca7a 100644
--- a/plc4j/examples/hello-nats/pom.xml
+++ b/plc4j/examples/hello-nats/pom.xml
@@ -17,10 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.examples</groupId>
diff --git a/plc4j/examples/hello-opm/pom.xml b/plc4j/examples/hello-opm/pom.xml
index 849fbe11..be39d88c 100644
--- a/plc4j/examples/hello-opm/pom.xml
+++ b/plc4j/examples/hello-opm/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.examples</groupId>
diff --git a/plc4j/examples/hello-webservice/pom.xml 
b/plc4j/examples/hello-webservice/pom.xml
index 4156d1b7..8b3700f7 100644
--- a/plc4j/examples/hello-webservice/pom.xml
+++ b/plc4j/examples/hello-webservice/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.examples</groupId>
diff --git a/plc4j/examples/hello-world-kotlin/pom.xml 
b/plc4j/examples/hello-world-kotlin/pom.xml
index a5953e84..2469e5dd 100644
--- a/plc4j/examples/hello-world-kotlin/pom.xml
+++ b/plc4j/examples/hello-world-kotlin/pom.xml
@@ -17,8 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.examples</groupId>
diff --git a/plc4j/examples/hello-world-plc4x-discover-and-browse/pom.xml 
b/plc4j/examples/hello-world-plc4x-discover-and-browse/pom.xml
index e9e4f501..173f70c8 100644
--- a/plc4j/examples/hello-world-plc4x-discover-and-browse/pom.xml
+++ b/plc4j/examples/hello-world-plc4x-discover-and-browse/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.examples</groupId>
diff --git a/plc4j/examples/hello-world-plc4x-read/pom.xml 
b/plc4j/examples/hello-world-plc4x-read/pom.xml
index b1d7866b..4ebbb3ac 100644
--- a/plc4j/examples/hello-world-plc4x-read/pom.xml
+++ b/plc4j/examples/hello-world-plc4x-read/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.examples</groupId>
diff --git a/plc4j/examples/hello-world-plc4x-subscribe/pom.xml 
b/plc4j/examples/hello-world-plc4x-subscribe/pom.xml
index fac4046f..10ec57c7 100644
--- a/plc4j/examples/hello-world-plc4x-subscribe/pom.xml
+++ b/plc4j/examples/hello-world-plc4x-subscribe/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.examples</groupId>
diff --git a/plc4j/examples/hello-world-plc4x-write/pom.xml 
b/plc4j/examples/hello-world-plc4x-write/pom.xml
index 3f0a79d0..e568fe56 100644
--- a/plc4j/examples/hello-world-plc4x-write/pom.xml
+++ b/plc4j/examples/hello-world-plc4x-write/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.examples</groupId>
diff --git a/plc4j/examples/plc4j-s7event/pom.xml 
b/plc4j/examples/plc4j-s7event/pom.xml
index d88232cb..a14011f7 100644
--- a/plc4j/examples/plc4j-s7event/pom.xml
+++ b/plc4j/examples/plc4j-s7event/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.examples</groupId>
diff --git a/plc4j/examples/poll-loop/pom.xml b/plc4j/examples/poll-loop/pom.xml
index 87734a05..c3f0d69f 100644
--- a/plc4j/examples/poll-loop/pom.xml
+++ b/plc4j/examples/poll-loop/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.examples</groupId>
diff --git a/plc4j/examples/pom.xml b/plc4j/examples/pom.xml
index 44bc4dc1..575242f9 100644
--- a/plc4j/examples/pom.xml
+++ b/plc4j/examples/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.extras</groupId>
@@ -43,25 +41,25 @@
     <slf4j.version>2.0.18</slf4j.version>
   </properties>
 
-  <modules>
-    <module>hello-ads-telemetry</module>
-    <module>hello-cloud-azure</module>
-    <module>hello-cloud-google</module>
-    <module>hello-discovery</module>
-    <module>hello-connectivity-mqtt</module>
-    <module>hello-influx-data-collection</module>
-    <module>hello-integration-iotdb</module>
-    <module>hello-nats</module>
-    <module>hello-opm</module>
-    <module>hello-webservice</module>
-    <module>hello-world-kotlin</module>
-    <module>hello-world-plc4x-discover-and-browse</module>
-    <module>hello-world-plc4x-read</module>
-    <module>hello-world-plc4x-subscribe</module>
-    <module>hello-world-plc4x-write</module>
-    <module>poll-loop</module>
+  <subprojects>
+    <subproject>hello-ads-telemetry</subproject>
+    <subproject>hello-cloud-azure</subproject>
+    <subproject>hello-cloud-google</subproject>
+    <subproject>hello-discovery</subproject>
+    <subproject>hello-connectivity-mqtt</subproject>
+    <subproject>hello-influx-data-collection</subproject>
+    <subproject>hello-integration-iotdb</subproject>
+    <subproject>hello-nats</subproject>
+    <subproject>hello-opm</subproject>
+    <subproject>hello-webservice</subproject>
+    <subproject>hello-world-kotlin</subproject>
+    <subproject>hello-world-plc4x-discover-and-browse</subproject>
+    <subproject>hello-world-plc4x-read</subproject>
+    <subproject>hello-world-plc4x-subscribe</subproject>
+    <subproject>hello-world-plc4x-write</subproject>
+    <subproject>poll-loop</subproject>
     <!--module>plc4j-s7event</module-->
-  </modules>
+  </subprojects>
 
   <build>
     <plugins>
diff --git a/plc4j/integrations/apache-calcite/pom.xml 
b/plc4j/integrations/apache-calcite/pom.xml
index 40ded625..ded6c7b3 100644
--- a/plc4j/integrations/apache-calcite/pom.xml
+++ b/plc4j/integrations/apache-calcite/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.extras</groupId>
diff --git a/plc4j/integrations/apache-kafka/pom.xml 
b/plc4j/integrations/apache-kafka/pom.xml
index 74c90f65..358a3fb1 100644
--- a/plc4j/integrations/apache-kafka/pom.xml
+++ b/plc4j/integrations/apache-kafka/pom.xml
@@ -17,8 +17,8 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-    <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
+    
 
     <parent>
         <groupId>org.apache.plc4x.extras</groupId>
diff --git a/plc4j/integrations/apache-nifi/nifi-1/nifi-plc4x-nar/pom.xml 
b/plc4j/integrations/apache-nifi/nifi-1/nifi-plc4x-nar/pom.xml
index 9646d668..def685cb 100644
--- a/plc4j/integrations/apache-nifi/nifi-1/nifi-plc4x-nar/pom.xml
+++ b/plc4j/integrations/apache-nifi/nifi-1/nifi-plc4x-nar/pom.xml
@@ -17,8 +17,8 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-       <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
+       
 
        <parent>
                <groupId>org.apache.plc4x.extras</groupId>
@@ -42,9 +42,7 @@
 
                <!-- PLC4X -->
                <dependency>
-                       <groupId>org.apache.plc4x.extras</groupId>
                        <artifactId>plc4j-nifi-plc4x-processors</artifactId>
-                       <version>0.14.0-SNAPSHOT</version>
                </dependency>
 
                <dependency>
diff --git 
a/plc4j/integrations/apache-nifi/nifi-1/nifi-plc4x-processors/pom.xml 
b/plc4j/integrations/apache-nifi/nifi-1/nifi-plc4x-processors/pom.xml
index b9d3b179..0a51214f 100644
--- a/plc4j/integrations/apache-nifi/nifi-1/nifi-plc4x-processors/pom.xml
+++ b/plc4j/integrations/apache-nifi/nifi-1/nifi-plc4x-processors/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.extras</groupId>
diff --git a/plc4j/integrations/apache-nifi/nifi-1/pom.xml 
b/plc4j/integrations/apache-nifi/nifi-1/pom.xml
index 6b485d5f..a165462d 100644
--- a/plc4j/integrations/apache-nifi/nifi-1/pom.xml
+++ b/plc4j/integrations/apache-nifi/nifi-1/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.extras</groupId>
@@ -40,11 +38,6 @@
     <nifi.nar-plugin.version>2.3.0</nifi.nar-plugin.version>
   </properties>
 
-  <modules>
-    <module>nifi-plc4x-processors</module>
-    <module>nifi-plc4x-nar</module>
-  </modules>
-
   <build>
     <pluginManagement>
       <plugins>
@@ -73,7 +66,7 @@
             <doUpdate>false</doUpdate>
             <shortRevisionLength>7</shortRevisionLength>
             <getRevisionOnlyOnce>true</getRevisionOnlyOnce>
-            <revisionOnScmFailure/>
+            <revisionOnScmFailure />
             <buildNumberPropertyName>buildRevision</buildNumberPropertyName>
             <scmBranchPropertyName>buildBranch</scmBranchPropertyName>
           </configuration>
diff --git a/plc4j/integrations/apache-nifi/nifi-2/nifi-2-plc4x-nar/pom.xml 
b/plc4j/integrations/apache-nifi/nifi-2/nifi-2-plc4x-nar/pom.xml
index e9b357cd..c9328316 100644
--- a/plc4j/integrations/apache-nifi/nifi-2/nifi-2-plc4x-nar/pom.xml
+++ b/plc4j/integrations/apache-nifi/nifi-2/nifi-2-plc4x-nar/pom.xml
@@ -17,8 +17,8 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-       <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
+       
 
        <parent>
                <groupId>org.apache.plc4x.extras</groupId>
@@ -42,9 +42,7 @@
 
                <!-- PLC4X -->
                <dependency>
-                       <groupId>org.apache.plc4x.extras</groupId>
                        <artifactId>plc4j-nifi-2-plc4x-processors</artifactId>
-                       <version>0.14.0-SNAPSHOT</version>
                </dependency>
 
                <dependency>
diff --git 
a/plc4j/integrations/apache-nifi/nifi-2/nifi-2-plc4x-processors/pom.xml 
b/plc4j/integrations/apache-nifi/nifi-2/nifi-2-plc4x-processors/pom.xml
index bac9d89c..13efc5dc 100644
--- a/plc4j/integrations/apache-nifi/nifi-2/nifi-2-plc4x-processors/pom.xml
+++ b/plc4j/integrations/apache-nifi/nifi-2/nifi-2-plc4x-processors/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.extras</groupId>
diff --git a/plc4j/integrations/apache-nifi/nifi-2/pom.xml 
b/plc4j/integrations/apache-nifi/nifi-2/pom.xml
index 3392b68b..41f4e7c9 100644
--- a/plc4j/integrations/apache-nifi/nifi-2/pom.xml
+++ b/plc4j/integrations/apache-nifi/nifi-2/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.extras</groupId>
@@ -44,11 +42,6 @@
     <nifi.nar-plugin.version>2.3.0</nifi.nar-plugin.version>
   </properties>
 
-  <modules>
-    <module>nifi-2-plc4x-processors</module>
-    <module>nifi-2-plc4x-nar</module>
-  </modules>
-
 
   <build>
     <pluginManagement>
@@ -78,7 +71,7 @@
             <doUpdate>false</doUpdate>
             <shortRevisionLength>7</shortRevisionLength>
             <getRevisionOnlyOnce>true</getRevisionOnlyOnce>
-            <revisionOnScmFailure/>
+            <revisionOnScmFailure />
             <buildNumberPropertyName>buildRevision</buildNumberPropertyName>
             <scmBranchPropertyName>buildBranch</scmBranchPropertyName>
           </configuration>
diff --git a/plc4j/integrations/apache-nifi/pom.xml 
b/plc4j/integrations/apache-nifi/pom.xml
index 09db6277..a4252608 100644
--- a/plc4j/integrations/apache-nifi/pom.xml
+++ b/plc4j/integrations/apache-nifi/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.extras</groupId>
@@ -40,9 +38,4 @@
     <source.skip>true</source.skip>
   </properties>
 
-  <modules>
-    <module>nifi-1</module>
-    <module>nifi-2</module>
-  </modules>
-
 </project>
diff --git a/plc4j/integrations/pom.xml b/plc4j/integrations/pom.xml
index a1661e77..df789ed7 100644
--- a/plc4j/integrations/pom.xml
+++ b/plc4j/integrations/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.extras</groupId>
@@ -37,10 +35,4 @@
     
<project.build.outputTimestamp>2025-08-06T15:45:09Z</project.build.outputTimestamp>
   </properties>
 
-  <modules>
-    <module>apache-calcite</module>
-    <module>apache-nifi</module>
-    <module>apache-kafka</module>
-  </modules>
-
 </project>
diff --git a/plc4j/pom.xml b/plc4j/pom.xml
index 08c2c486..c0002c83 100644
--- a/plc4j/pom.xml
+++ b/plc4j/pom.xml
@@ -17,10 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.extras</groupId>
@@ -38,12 +35,6 @@
     
<project.build.outputTimestamp>2025-08-06T15:45:09Z</project.build.outputTimestamp>
   </properties>
 
-  <modules>
-    <module>examples</module>
-    <module>integrations</module>
-    <module>tools</module>
-  </modules>
-
   <build>
     <plugins>
       <!--
@@ -79,8 +70,8 @@
               is passed as VM argument when Maven the Failsafe plugin is 
executed.
           -->
           <execution>
-            <id>pre-integration-test</id>
-            <phase>pre-integration-test</phase>
+            <id>before:integration-test</id>
+            <phase>before:integration-test</phase>
             <goals>
               <goal>prepare-agent-integration</goal>
             </goals>
diff --git a/plc4j/tools/opcua-server/pom.xml b/plc4j/tools/opcua-server/pom.xml
index ee345455..86ab46cf 100644
--- a/plc4j/tools/opcua-server/pom.xml
+++ b/plc4j/tools/opcua-server/pom.xml
@@ -17,8 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.extras</groupId>
diff --git a/plc4j/tools/plc4x-server/pom.xml b/plc4j/tools/plc4x-server/pom.xml
index b415b826..c0f232b5 100644
--- a/plc4j/tools/plc4x-server/pom.xml
+++ b/plc4j/tools/plc4x-server/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.extras</groupId>
diff --git a/plc4j/tools/pom.xml b/plc4j/tools/pom.xml
index ff4fc7ec..7093eccb 100644
--- a/plc4j/tools/pom.xml
+++ b/plc4j/tools/pom.xml
@@ -17,9 +17,7 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache.plc4x.extras</groupId>
@@ -37,9 +35,4 @@
     
<project.build.outputTimestamp>2025-08-06T15:45:09Z</project.build.outputTimestamp>
   </properties>
 
-  <modules>
-    <module>plc4x-server</module>
-    <module>opcua-server</module>
-  </modules>
-
 </project>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 17771107..b03a3732 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,16 +17,13 @@
   specific language governing permissions and limitations
   under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-  <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.1.0 
https://maven.apache.org/xsd/maven-4.1.0.xsd";>
 
   <parent>
     <groupId>org.apache</groupId>
     <artifactId>apache</artifactId>
     <version>39</version>
-    <relativePath/>
+    <relativePath />
   </parent>
 
   <groupId>org.apache.plc4x.extras</groupId>
@@ -93,6 +90,13 @@
     <plc4x.version>0.14.0-SNAPSHOT</plc4x.version>
   </properties>
 
+  <!--
+    Intentionally empty: the language modules are only added by the 
with-c/with-go/with-java
+    profiles below. Without this element Maven 4 would auto-discover all 
subdirectories
+    containing a pom.xml and always build them.
+  -->
+  <subprojects/>
+
   <build>
     <plugins>
       <!-- Check if all source files have the required apache license headers 
-->
@@ -342,25 +346,25 @@
     <!-- Build PLC4X including the C modules -->
     <profile>
       <id>with-c</id>
-      <modules>
-        <module>plc4c</module>
-      </modules>
+      <subprojects>
+        <subproject>plc4c</subproject>
+      </subprojects>
     </profile>
 
     <!-- Build PLC4X including the Go modules -->
     <profile>
       <id>with-go</id>
-      <modules>
-        <module>plc4go</module>
-      </modules>
+      <subprojects>
+        <subproject>plc4go</subproject>
+      </subprojects>
     </profile>
 
     <!-- Build PLC4X including the Java modules -->
     <profile>
       <id>with-java</id>
-      <modules>
-        <module>plc4j</module>
-      </modules>
+      <subprojects>
+        <subproject>plc4j</subproject>
+      </subprojects>
     </profile>
 
     <!-- Profile for linux x86_64 (mainly Intel Processors) (Self-Enabling) -->

Reply via email to