You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2024/04/05 15:15:41 UTC
(plc4x-extras) branch main updated: chore: Get the Java part building again.
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/plc4x-extras.git
The following commit(s) were added to refs/heads/main by this push:
new cf8ca70 chore: Get the Java part building again.
cf8ca70 is described below
commit cf8ca709780ba40a7803fa098dc442d2ecd8b3db
Author: Christofer Dutz <cd...@apache.org>
AuthorDate: Fri Apr 5 17:15:33 2024 +0200
chore: Get the Java part building again.
---
.asf.yaml | 75 +++
plc4c/pom.xml | 274 +++++++++++
plc4go/pom.xml | 529 ++++++++++++++++++++
plc4j/examples/hello-ads-telemetry/pom.xml | 14 -
plc4j/examples/hello-cloud-google/pom.xml | 15 +-
plc4j/examples/hello-connectivity-mqtt/pom.xml | 5 +
plc4j/examples/hello-discovery/pom.xml | 20 -
.../examples/hello-influx-data-collection/pom.xml | 1 +
plc4j/examples/hello-integration-iotdb/pom.xml | 16 +-
plc4j/examples/hello-nats/pom.xml | 14 -
plc4j/examples/hello-opm/pom.xml | 25 +-
plc4j/examples/hello-webservice/pom.xml | 17 +-
plc4j/examples/hello-world-kotlin/pom.xml | 27 +-
.../hello-world-plc4x-discover-and-browse/pom.xml | 25 +-
plc4j/examples/hello-world-plc4x-read/pom.xml | 20 -
plc4j/examples/hello-world-plc4x-subscribe/pom.xml | 21 -
plc4j/examples/hello-world-plc4x-write/pom.xml | 20 -
plc4j/examples/plc4j-s7event/pom.xml | 49 +-
.../plc4j/s7event/PlcCycSubscriptionS7400H.java | 3 -
.../plc4j/s7event/PlcEventSubscriptionS7400H.java | 2 -
.../examples/plc4j/s7event/PlcReadDataS7400H.java | 2 -
.../examples/plc4j/s7event/PlcReadS71200.java | 2 -
.../plc4j/s7event/PlcReadWriteStrings.java | 2 -
.../plc4j/s7event/PlcSzlRequestS7400H.java | 2 -
plc4j/examples/poll-loop/pom.xml | 14 -
plc4j/examples/pom.xml | 40 +-
plc4j/integrations/apache-calcite/pom.xml | 40 +-
plc4j/integrations/apache-kafka/pom.xml | 377 +++++++-------
.../apache/plc4x/kafka/config/SourceConfig.java | 4 -
.../apache-nifi/nifi-plc4x-nar/pom.xml | 22 +-
.../apache-nifi/nifi-plc4x-processors/pom.xml | 310 ++++++------
plc4j/integrations/apache-nifi/pom.xml | 4 +-
plc4j/integrations/pom.xml | 2 +-
plc4j/pom.xml | 213 ++++++++
plc4j/tools/opcua-server/pom.xml | 49 +-
.../plc4x/java/opcuaserver/OpcuaPlcDriverTest.java | 14 +-
plc4j/tools/plc4x-server/pom.xml | 28 +-
plc4j/{integrations => tools}/pom.xml | 32 +-
plc4j/tools/ui/backend/pom.xml | 17 -
plc4j/tools/ui/frontend/pom.xml | 184 ++++---
.../src/generated/plc4j-tools-ui-frontend.ts | 4 +-
plc4j/tools/ui/pom.xml | 7 +
pom.xml | 544 +++++++++++++++++++++
43 files changed, 2261 insertions(+), 824 deletions(-)
diff --git a/.asf.yaml b/.asf.yaml
new file mode 100644
index 0000000..cab3dfb
--- /dev/null
+++ b/.asf.yaml
@@ -0,0 +1,75 @@
+# ----------------------------------------------------------------------------
+# 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
+#
+# https://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.
+# ----------------------------------------------------------------------------
+
+# note: documentation can be found here https://cwiki.apache.org/confluence/display/INFRA/Git+-+.asf.yaml+features
+
+github:
+ description: PLC4X The Industrial IoT adapter
+ homepage: https://plc4x.apache.org/
+
+ dependabot_alerts: true
+ dependabot_updates: false
+
+ labels:
+ - java
+ - c
+ - go
+ - python
+ - net
+
+ features:
+ wiki: true
+ issues: true
+ projects: true
+
+ enabled_merge_buttons:
+ squash: true
+ merge: false
+ rebase: false
+
+ del_branch_on_merge: true
+
+ # Attempt to make the auto-generated github emails more easily readable in email clients.
+ custom_subjects:
+ new_pr: "[PR] {title}"
+ close_pr: "Re: [PR] {title}"
+ comment_pr: "Re: [PR] {title}"
+ diffcomment: "Re: [PR] {title}"
+ merge_pr: "Re: [PR] {title}"
+ new_issue: "[I] {title}"
+ comment_issue: "Re: [I] {title}"
+ close_issue: "Re: [I] {title}"
+ catchall: "[GH] {title}"
+ new_discussion: "[D] {title}"
+ edit_discussion: "Re: [D] {title}"
+ close_discussion: "Re: [D] {title}"
+ close_discussion_with_comment: "Re: [D] {title}"
+ reopen_discussion: "Re: [D] {title}"
+ new_comment_discussion: "Re: [D] {title}"
+ edit_comment_discussion: "Re: [D] {title}"
+ delete_comment_discussion: "Re: [D] {title}"
+
+notifications:
+ commits: commits@plc4x.apache.org
+ issues: issues@plc4x.apache.org
+ discussions: dev@plc4x.apache.org
+ pullrequests_status: dev@plc4x.apache.org
+ pullrequests_comment: dev@plc4x.apache.org
+ # Send dependabot PRs to commits@ instead
+ pullrequests_bot_dependabot: commits@plc4x.apache.org
diff --git a/plc4c/pom.xml b/plc4c/pom.xml
new file mode 100644
index 0000000..396e8e4
--- /dev/null
+++ b/plc4c/pom.xml
@@ -0,0 +1,274 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+ https://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.
+ -->
+<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>
+
+ <parent>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-extras-parent</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>plc4c-extras</artifactId>
+ <packaging>pom</packaging>
+
+ <name>PLC4C-Extras</name>
+ <description>Examples, integration modules and tools for C.</description>
+
+ <properties>
+ <project.build.outputTimestamp>2024-02-16T14:53:02Z</project.build.outputTimestamp>
+ <unity.version>2.5.2</unity.version>
+ <!-- Tell Sonar where to find the sources -->
+ <!--sonar.sources></sonar.sources-->
+ <sonar.sources>api,drivers,examples,integrations,spi,transports</sonar.sources>
+ <sonar.cfamily.build-wrapper-output>${project.build.directory}/build-wrapper-output</sonar.cfamily.build-wrapper-output>
+ <option.with-proxies>OFF</option.with-proxies>
+ </properties>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>com.googlecode.maven-download-plugin</groupId>
+ <artifactId>download-maven-plugin</artifactId>
+ <executions>
+ <!--
+ Get additional stuff we need for the build.
+ -->
+ <execution>
+ <id>get-unity</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>wget</goal>
+ </goals>
+ <configuration>
+ <url>https://github.com/ThrowTheSwitch/Unity/archive/v${unity.version}.zip</url>
+ <unpack>true</unpack>
+ <outputDirectory>${project.build.directory}/dependency</outputDirectory>
+ </configuration>
+ </execution>
+ <!--
+ Get ClangFormat.cmake
+ -->
+ <!--execution>
+ <id>get-clang-format</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>wget</goal>
+ </goals>
+ <configuration>
+ <url>https://raw.githubusercontent.com/zemasoft/clangformat-cmake/master/cmake/ClangFormat.cmake</url>
+ <unpack>true</unpack>
+ <outputDirectory>${project.build.directory}/dependency/clang-format</outputDirectory>
+ </configuration>
+ </execution-->
+ </executions>
+ </plugin>
+
+ <!-- Transform the ParserSerializer tests into c code -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>xml-maven-plugin</artifactId>
+ <version>1.1.0</version>
+ <executions>
+ <!--execution>
+ <id>generate-modbus-tests</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>transform</goal>
+ </goals>
+ <configuration>
+ <transformationSets>
+ <transformationSet>
+ <dir>../protocols/modbus/src/test/resources/protocols/modbus</dir>
+ <includes>ParserSerializerTestsuite.xml</includes>
+ <stylesheet>build-utils/parser-serializer-testcase-generator.xsl</stylesheet>
+ <outputDir>generated-sources/modbus/test</outputDir>
+ <fileMappers>
+ <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
+ <targetExtension>.c</targetExtension>
+ </fileMapper>
+ </fileMappers>
+ </transformationSet>
+ </transformationSets>
+ </configuration>
+ </execution-->
+ <execution>
+ <id>generate-plc4x-tests</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>transform</goal>
+ </goals>
+ <configuration>
+ <transformationSets>
+ <transformationSet>
+ <dir>../protocols/plc4x/src/test/resources/protocols/plc4x</dir>
+ <includes>ParserSerializerTestsuite.xml</includes>
+ <stylesheet>build-utils/parser-serializer-testcase-generator.xsl</stylesheet>
+ <outputDir>generated-sources/plc4x/test</outputDir>
+ <fileMappers>
+ <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
+ <targetExtension>.c</targetExtension>
+ </fileMapper>
+ </fileMappers>
+ </transformationSet>
+ </transformationSets>
+ </configuration>
+ </execution>
+ <execution>
+ <id>generate-s7-tests</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>transform</goal>
+ </goals>
+ <configuration>
+ <transformationSets>
+ <transformationSet>
+ <dir>../protocols/s7/src/test/resources/protocols/s7</dir>
+ <includes>ParserSerializerTestsuite.xml</includes>
+ <stylesheet>build-utils/parser-serializer-testcase-generator.xsl</stylesheet>
+ <outputDir>generated-sources/s7/test</outputDir>
+ <fileMappers>
+ <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
+ <targetExtension>.c</targetExtension>
+ </fileMapper>
+ </fileMappers>
+ </transformationSet>
+ </transformationSets>
+ </configuration>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>net.sf.saxon</groupId>
+ <artifactId>Saxon-HE</artifactId>
+ <version>12.4</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+
+ <!--
+ Do the actual build.
+ -->
+ <plugin>
+ <groupId>com.googlecode.cmake-maven-project</groupId>
+ <artifactId>cmake-maven-plugin</artifactId>
+ <executions>
+ <!-- TODO: Commented out for now as when running in jenkins for code analysis, the second run would overwrite the results of the first -->
+ <!-- Generate the configuration for the main compilation -->
+ <!--execution>
+ <id>cmake-generate-compile</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ <!- Compile the main code ->
+ <execution>
+ <id>cmake-execute-compile</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </execution-->
+ <!-- Generate the configuration for the test compilation -->
+ <execution>
+ <id>cmake-generate-test-compile</id>
+ <phase>generate-test-sources</phase>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ <configuration>
+ <options>
+ <option>-DUNITY_VERSION:STRING=${unity.version}</option>
+ <option>-DBUILD_PHASE=test-compile</option>
+ </options>
+ </configuration>
+ </execution>
+ <!-- Compile the test code -->
+ <execution>
+ <id>cmake-execute-test-compile</id>
+ <phase>test-compile</phase>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </execution>
+ <!-- Execute the tests -->
+ <execution>
+ <id>cmake-run-tests</id>
+ <phase>test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <configuration>
+ <buildDirectory>${project.build.directory}/build</buildDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ <configuration>
+ <!--
+ Actually the path to the CMakeList.txt file which then again
+ tells to tool where to find the sources.
+ -->
+ <sourcePath>${project.basedir}</sourcePath>
+ <!--
+ Path to where the build configuration is generated
+ (This directory is then used in the compile step to actually perform the build)
+ -->
+ <targetPath>${project.build.directory}/build</targetPath>
+ <!--
+ Name of the generator the compile step will be executing.
+ -->
+ <generator>${cmake.generator}</generator>
+ <!-- The directory where the "generate" step generated the build configuration -->
+ <projectDirectory>${project.build.directory}/build</projectDirectory>
+ </configuration>
+ </plugin>
+
+ <!-- For this module deploying maven artifacts doesn't make any sense -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ <!--
+ Developers working in plc4c will probably use an IDE like CLion to edit just this
+ Part of the project. These IDEs generate some work-directories we need to exclude.
+ -->
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <configuration>
+ <excludes combine.children="append">
+ <exclude>cmake-*/**</exclude>
+ <exclude>.cmake/**</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+
+</project>
\ No newline at end of file
diff --git a/plc4go/pom.xml b/plc4go/pom.xml
new file mode 100644
index 0000000..0bac883
--- /dev/null
+++ b/plc4go/pom.xml
@@ -0,0 +1,529 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+ https://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.
+ -->
+<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>
+
+ <parent>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-extras-parent</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>plc4go-extras</artifactId>
+ <packaging>mvn-golang</packaging>
+
+ <name>PLC4Go-Extras</name>
+ <description>Examples, integration modules and tools for Go.</description>
+
+ <properties>
+ <project.build.outputTimestamp>2024-02-16T14:53:02Z</project.build.outputTimestamp>
+ <!-- Tell Sonar where to find the sources -->
+ <sonar.sources>.</sonar.sources>
+ <sonar.inclusions>**</sonar.inclusions>
+ <sonar.exclusions>protocols/**/*</sonar.exclusions>
+
+ <sonar.tests>.</sonar.tests>
+ <sonar.test.inclusions>**/*_test.go</sonar.test.inclusions>
+ <sonar.coverage.exclusions>**/*_test.go,spi/testutils/*,**/*_plc4xgen.go,tests/**/*,tools/**/*
+ </sonar.coverage.exclusions>
+
+ <sonar.go.exclusions>**/vendor/**,**/*_mock.go,**/mock_*.go</sonar.go.exclusions>
+ <!-- TODO: add json output to sonar.go.tests.reportPaths=${project.basedir}/target/go-test-report.out-->
+ <sonar.go.coverage.reportPaths>${project.basedir}/target/coverage.out</sonar.go.coverage.reportPaths>
+
+ <maven.install.skip>true</maven.install.skip>
+ <!-- The deploy-goal of the go plugin uses go install to install the result, unfortunately disabling the deploy, disables the go install. -->
+ <!--maven.deploy.skip>true</maven.deploy.skip-->
+
+ <go.cover.flag>-coverprofile=target/coverage.out</go.cover.flag>
+
+ <go.stringer.version>v0.20.0</go.stringer.version>
+ <go.junit-report.version>v2.0.1</go.junit-report.version>
+ <go.gotestsum.version>v1.11.0</go.gotestsum.version>
+ <go.mockery.version>v2.42.2</go.mockery.version>
+ </properties>
+
+ <build>
+ <sourceDirectory>pkg</sourceDirectory>
+ <plugins>
+ <!--
+ Create surefire folder for report, as this is required to exist.
+ -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>generate-sources</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <target>
+ <mkdir dir="target${file.separator}surefire-reports" />
+ </target>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!--
+ Copy the test-resources in here
+ -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>unpack-protocol-test-suites</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-ab-eth</artifactId>
+ <classifier>tests</classifier>
+ <type>test-jar</type>
+ <outputDirectory>${project.basedir}/assets/testing</outputDirectory>
+ <includes>**/*.xml</includes>
+ <excludes>META-INF/**</excludes>
+ </artifactItem>
+ <artifactItem>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-ads</artifactId>
+ <classifier>tests</classifier>
+ <type>test-jar</type>
+ <outputDirectory>${project.basedir}/assets/testing</outputDirectory>
+ <includes>**/*.xml</includes>
+ <excludes>META-INF/**</excludes>
+ </artifactItem>
+ <artifactItem>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-bacnetip</artifactId>
+ <classifier>tests</classifier>
+ <type>test-jar</type>
+ <outputDirectory>${project.basedir}/assets/testing</outputDirectory>
+ <includes>**/*.xml</includes>
+ <excludes>META-INF/**</excludes>
+ </artifactItem>
+ <artifactItem>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-c-bus</artifactId>
+ <classifier>tests</classifier>
+ <type>test-jar</type>
+ <outputDirectory>${project.basedir}/assets/testing</outputDirectory>
+ <includes>**/*.xml</includes>
+ <excludes>META-INF/**</excludes>
+ </artifactItem>
+ <artifactItem>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-df1</artifactId>
+ <classifier>tests</classifier>
+ <type>test-jar</type>
+ <outputDirectory>${project.basedir}/assets/testing</outputDirectory>
+ <includes>**/*.xml</includes>
+ <excludes>META-INF/**</excludes>
+ </artifactItem>
+ <artifactItem>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-eip</artifactId>
+ <classifier>tests</classifier>
+ <type>test-jar</type>
+ <outputDirectory>${project.basedir}/assets/testing</outputDirectory>
+ <includes>**/*.xml</includes>
+ <excludes>META-INF/**</excludes>
+ </artifactItem>
+ <artifactItem>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-firmata</artifactId>
+ <classifier>tests</classifier>
+ <type>test-jar</type>
+ <outputDirectory>${project.basedir}/assets/testing</outputDirectory>
+ <includes>**/*.xml</includes>
+ <excludes>META-INF/**</excludes>
+ </artifactItem>
+ <artifactItem>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-knxnetip</artifactId>
+ <classifier>tests</classifier>
+ <type>test-jar</type>
+ <outputDirectory>${project.basedir}/assets/testing</outputDirectory>
+ <includes>**/*.xml</includes>
+ <excludes>META-INF/**,org/**</excludes>
+ </artifactItem>
+ <artifactItem>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-modbus</artifactId>
+ <classifier>tests</classifier>
+ <type>test-jar</type>
+ <outputDirectory>${project.basedir}/assets/testing</outputDirectory>
+ <includes>**/*.xml</includes>
+ <excludes>META-INF/**</excludes>
+ </artifactItem>
+ <artifactItem>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-opcua</artifactId>
+ <classifier>tests</classifier>
+ <type>test-jar</type>
+ <outputDirectory>${project.basedir}/assets/testing</outputDirectory>
+ <includes>**/*.xml</includes>
+ <excludes>META-INF/**,org/**</excludes>
+ </artifactItem>
+ <artifactItem>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-s7</artifactId>
+ <classifier>tests</classifier>
+ <type>test-jar</type>
+ <outputDirectory>${project.basedir}/assets/testing</outputDirectory>
+ <includes>**/*.xml</includes>
+ <excludes>META-INF/**,org/**</excludes>
+ </artifactItem>
+ <artifactItem>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-simulated</artifactId>
+ <classifier>tests</classifier>
+ <type>test-jar</type>
+ <outputDirectory>${project.basedir}/assets/testing</outputDirectory>
+ <includes>**/*.xml</includes>
+ <excludes>META-INF/**,org/**</excludes>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>com.igormaznitsa</groupId>
+ <artifactId>mvn-golang-wrapper</artifactId>
+ <version>2.3.10</version>
+ <extensions>true</extensions>
+ <executions>
+ <!-- add tools required for generating code, test, etc-->
+ <execution>
+ <id>get-stringer</id>
+ <phase>initialize</phase>
+ <goals>
+ <goal>install</goal>
+ </goals>
+ <configuration>
+ <packages>
+ <package>golang.org/x/tools/cmd/stringer@${go.stringer.version}</package>
+ </packages>
+ </configuration>
+ </execution>
+ <execution>
+ <id>get-go-junit-report</id>
+ <phase>initialize</phase>
+ <goals>
+ <goal>install</goal>
+ </goals>
+ <configuration>
+ <packages>
+ <!-- use fork till https://github.com/jstemmer/go-junit-report/pull/162 is merged-->
+ <package>github.com/sruehl/go-junit-report/v2@${go.junit-report.version}</package>
+ </packages>
+ </configuration>
+ </execution>
+ <execution>
+ <id>get-gotestsum</id>
+ <phase>initialize</phase>
+ <goals>
+ <goal>install</goal>
+ </goals>
+ <configuration>
+ <packages>
+ <package>gotest.tools/gotestsum@${go.gotestsum.version}</package>
+ </packages>
+ </configuration>
+ </execution>
+ <execution>
+ <id>get-mockery</id>
+ <phase>initialize</phase>
+ <goals>
+ <goal>install</goal>
+ </goals>
+ <configuration>
+ <packages>
+ <package>github.com/vektra/mockery/v2@${go.mockery.version}</package>
+ </packages>
+ </configuration>
+ </execution>
+
+ <!-- Run the go code-generation -->
+ <execution>
+ <id>default-generate</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ <configuration>
+ <packages>
+ <!-- We want to format every package here, so we don't get dirty commits -->
+ <package>./...</package>
+ </packages>
+ </configuration>
+ </execution>
+
+ <!-- Generate mocks-->
+ <execution>
+ <id>generate-mocks</id>
+ <phase>process-sources</phase>
+ <goals>
+ <goal>custom</goal>
+ </goals>
+ <configuration>
+ <exec>mockery</exec>
+ <customCommand>--all</customCommand>
+ <packages>
+ <package>--with-expecter</package>
+ </packages>
+ </configuration>
+ </execution>
+
+ <!-- Processes code that uses old APIs and rewrites them use newer ones -->
+ <!--
+ REMARK: The default lifecycle defines this is run in the "validate" phase,
+ we redefine it to run in the process-sources so it also processes generated code.
+ -->
+ <execution>
+ <id>default-fix</id>
+ <phase>process-sources</phase>
+ <goals>
+ <goal>fix</goal>
+ </goals>
+ </execution>
+
+ <!-- Format the codebase correctly (this mainly has an effect on generated code) -->
+ <execution>
+ <id>default-fmt</id>
+ <phase>process-sources</phase>
+ <goals>
+ <goal>fmt</goal>
+ </goals>
+ <configuration>
+ <packages>
+ <!-- We want to format every package here so we don't get dirty commits -->
+ <package>./...</package>
+ </packages>
+ </configuration>
+ </execution>
+
+ <!-- Get all dependencies for test cases -->
+ <execution>
+ <id>get-test-dependencies</id>
+ <phase>generate-test-sources</phase>
+ <goals>
+ <goal>get</goal>
+ </goals>
+ <configuration>
+ <buildFlags>
+ <flag>-t</flag>
+ </buildFlags>
+ <packages>
+ <package>./...</package>
+ </packages>
+ </configuration>
+ </execution>
+
+ <!-- Disabling the default binding, because we're running a custom version after this -->
+ <execution>
+ <id>default-test</id>
+ <phase>test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </execution>
+
+ <execution>
+ <id>test</id>
+ <phase>test</phase>
+ <goals>
+ <goal>custom</goal>
+ </goals>
+ <configuration>
+ <skip>${skipTests}</skip>
+ <exec>gotestsum</exec>
+ <customCommand>--junitfile</customCommand>
+ <buildFlags>
+ <flag>target/surefire-reports/go-junit-report.xml</flag>
+ <flag>--</flag>
+ <flag>${go.cover.flag}</flag>
+ </buildFlags>
+ <packages>
+ <package>./...</package>
+ </packages>
+ </configuration>
+ </execution>
+
+ <execution>
+ <id>run-go-vet</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>vet</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <packages>
+ <package>github.com/apache/plc4x/plc4go/pkg/api</package>
+ </packages>
+ <sources>${project.basedir}</sources>
+ <verbose>true</verbose>
+ <goVersion>1.22.0</goVersion>
+ </configuration>
+ </plugin>
+
+ <!-- Ensure we don't deploy anything -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-ab-eth</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <type>test-jar</type>
+ <!-- Scope is 'provided' as this way it's not shipped with the driver -->
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-ads</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <type>test-jar</type>
+ <!-- Scope is 'provided' as this way it's not shipped with the driver -->
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-bacnetip</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <type>test-jar</type>
+ <!-- Scope is 'provided' as this way it's not shipped with the driver -->
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-c-bus</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <type>test-jar</type>
+ <!-- Scope is 'provided' as this way it's not shipped with the driver -->
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-df1</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <type>test-jar</type>
+ <!-- Scope is 'provided' as this way it's not shipped with the driver -->
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-eip</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <type>test-jar</type>
+ <!-- Scope is 'provided' as this way it's not shipped with the driver -->
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-firmata</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <type>test-jar</type>
+ <!-- Scope is 'provided' as this way it's not shipped with the driver -->
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-knxnetip</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <type>test-jar</type>
+ <!-- Scope is 'provided' as this way it's not shipped with the driver -->
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-modbus</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <type>test-jar</type>
+ <!-- Scope is 'provided' as this way it's not shipped with the driver -->
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-opcua</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <type>test-jar</type>
+ <!-- Scope is 'provided' as this way it's not shipped with the driver -->
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-s7</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <type>test-jar</type>
+ <!-- Scope is 'provided' as this way it's not shipped with the driver -->
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-protocols-simulated</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <type>test-jar</type>
+ <!-- Scope is 'provided' as this way it's not shipped with the driver -->
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>.os-windows</id>
+ <activation>
+ <os>
+ <family>windows</family>
+ </os>
+ </activation>
+ <properties>
+ <!--
+ Coverage doesn't work in windows because of a long path issue in cover.exe
+ Tracked upstream issue: https://github.com/golang/go/issues/60785
+ -->
+ <go.cover.flag>-v</go.cover.flag>
+ </properties>
+ </profile>
+ </profiles>
+</project>
\ No newline at end of file
diff --git a/plc4j/examples/hello-ads-telemetry/pom.xml b/plc4j/examples/hello-ads-telemetry/pom.xml
index 661eff0..f98750f 100644
--- a/plc4j/examples/hello-ads-telemetry/pom.xml
+++ b/plc4j/examples/hello-ads-telemetry/pom.xml
@@ -57,18 +57,4 @@
</dependency>
</dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies combine.children="append">
- <usedDependency>org.slf4j:log4j-over-slf4j</usedDependency>
- </usedDependencies>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
</project>
\ No newline at end of file
diff --git a/plc4j/examples/hello-cloud-google/pom.xml b/plc4j/examples/hello-cloud-google/pom.xml
index 8aa05eb..78f63a0 100644
--- a/plc4j/examples/hello-cloud-google/pom.xml
+++ b/plc4j/examples/hello-cloud-google/pom.xml
@@ -52,6 +52,7 @@
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
+ <version>2.12.7</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
@@ -72,18 +73,4 @@
</dependency>
</dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies combine.children="append">
- <usedDependency>org.slf4j:log4j-over-slf4j</usedDependency>
- </usedDependencies>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
</project>
\ No newline at end of file
diff --git a/plc4j/examples/hello-connectivity-mqtt/pom.xml b/plc4j/examples/hello-connectivity-mqtt/pom.xml
index b5d9d89..3e100d0 100644
--- a/plc4j/examples/hello-connectivity-mqtt/pom.xml
+++ b/plc4j/examples/hello-connectivity-mqtt/pom.xml
@@ -57,23 +57,28 @@
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
+ <version>2.16.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
+ <version>2.16.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
+ <version>2.16.1</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
+ <version>2.10.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
+ <version>3.14.0</version>
</dependency>
<dependency>
diff --git a/plc4j/examples/hello-discovery/pom.xml b/plc4j/examples/hello-discovery/pom.xml
index b4a8f6e..b8ccfea 100644
--- a/plc4j/examples/hello-discovery/pom.xml
+++ b/plc4j/examples/hello-discovery/pom.xml
@@ -51,30 +51,10 @@
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-core</artifactId>
- <!-- Overriding the default of "test" -->
- <scope>compile</scope>
- </dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
</dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies combine.children="append">
- <usedDependency>ch.qos.logback:logback-core</usedDependency>
- </usedDependencies>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
</project>
\ No newline at end of file
diff --git a/plc4j/examples/hello-influx-data-collection/pom.xml b/plc4j/examples/hello-influx-data-collection/pom.xml
index 8827eb1..f813dea 100644
--- a/plc4j/examples/hello-influx-data-collection/pom.xml
+++ b/plc4j/examples/hello-influx-data-collection/pom.xml
@@ -58,6 +58,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-configuration2</artifactId>
+ <version>2.9.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
diff --git a/plc4j/examples/hello-integration-iotdb/pom.xml b/plc4j/examples/hello-integration-iotdb/pom.xml
index 4ac2294..4023602 100644
--- a/plc4j/examples/hello-integration-iotdb/pom.xml
+++ b/plc4j/examples/hello-integration-iotdb/pom.xml
@@ -33,25 +33,11 @@
<properties>
<project.build.outputTimestamp>2024-02-16T14:53:02Z</project.build.outputTimestamp>
- <iotdb.version>1.2.2</iotdb.version>
+ <iotdb.version>1.3.0</iotdb.version>
<app.main.class>org.apache.plc4x.java.examples.integration.iotdb.PlcLogger</app.main.class>
</properties>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies combine.children="append">
- <usedDependency>org.slf4j:log4j-over-slf4j</usedDependency>
- </usedDependencies>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
<dependencies>
<dependency>
<groupId>org.apache.plc4x</groupId>
diff --git a/plc4j/examples/hello-nats/pom.xml b/plc4j/examples/hello-nats/pom.xml
index 606a6ee..d47b9d8 100644
--- a/plc4j/examples/hello-nats/pom.xml
+++ b/plc4j/examples/hello-nats/pom.xml
@@ -66,18 +66,4 @@
</dependency>
</dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies combine.children="append">
- <usedDependency>org.slf4j:log4j-over-slf4j</usedDependency>
- </usedDependencies>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
</project>
\ No newline at end of file
diff --git a/plc4j/examples/hello-opm/pom.xml b/plc4j/examples/hello-opm/pom.xml
index 9e2fc75..6b5be3e 100644
--- a/plc4j/examples/hello-opm/pom.xml
+++ b/plc4j/examples/hello-opm/pom.xml
@@ -37,6 +37,11 @@
</properties>
<dependencies>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-api</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-opm</artifactId>
@@ -52,30 +57,10 @@
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-core</artifactId>
- <!-- Overriding the default of "test" -->
- <scope>compile</scope>
- </dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
</dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies combine.children="append">
- <usedDependency>ch.qos.logback:logback-core</usedDependency>
- </usedDependencies>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
</project>
\ No newline at end of file
diff --git a/plc4j/examples/hello-webservice/pom.xml b/plc4j/examples/hello-webservice/pom.xml
index 8bc3ec6..1abaac8 100644
--- a/plc4j/examples/hello-webservice/pom.xml
+++ b/plc4j/examples/hello-webservice/pom.xml
@@ -50,14 +50,17 @@
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
+ <version>2.10.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
+ <version>4.5.14</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
+ <version>4.4.16</version>
</dependency>
<dependency>
@@ -74,18 +77,4 @@
</dependency>
</dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies combine.children="append">
- <usedDependency>org.slf4j:log4j-over-slf4j</usedDependency>
- </usedDependencies>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
</project>
\ No newline at end of file
diff --git a/plc4j/examples/hello-world-kotlin/pom.xml b/plc4j/examples/hello-world-kotlin/pom.xml
index 07a210d..afe87d6 100644
--- a/plc4j/examples/hello-world-kotlin/pom.xml
+++ b/plc4j/examples/hello-world-kotlin/pom.xml
@@ -65,13 +65,13 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
- <version>${junit.jupiter.version}</version>
+ <version>5.10.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
- <version>${junit.jupiter.version}</version>
+ <version>5.10.2</version>
<scope>test</scope>
</dependency>
</dependencies>
@@ -139,29 +139,6 @@
</execution>
</executions>
</plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-assembly-plugin</artifactId>
- <executions>
- <execution>
- <id>make-assembly</id>
- <phase>package</phase>
- <goals>
- <goal>single</goal>
- </goals>
- <configuration>
- <archive>
- <manifest>
- <mainClass>${app.main.class}</mainClass>
- </manifest>
- </archive>
- <descriptorRefs>
- <descriptorRef>jar-with-dependencies</descriptorRef>
- </descriptorRefs>
- </configuration>
- </execution>
- </executions>
- </plugin>
</plugins>
</build>
</project>
\ No newline at end of file
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 af5f35a..c9c34bf 100644
--- a/plc4j/examples/hello-world-plc4x-discover-and-browse/pom.xml
+++ b/plc4j/examples/hello-world-plc4x-discover-and-browse/pom.xml
@@ -45,6 +45,12 @@
<version>0.13.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>3.14.0</version>
+ </dependency>
+
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
@@ -57,25 +63,6 @@
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- </dependency>
-
</dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies combine.children="append">
- <usedDependency>org.slf4j:log4j-over-slf4j</usedDependency>
- </usedDependencies>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
</project>
\ No newline at end of file
diff --git a/plc4j/examples/hello-world-plc4x-read/pom.xml b/plc4j/examples/hello-world-plc4x-read/pom.xml
index 1416a7f..7721843 100644
--- a/plc4j/examples/hello-world-plc4x-read/pom.xml
+++ b/plc4j/examples/hello-world-plc4x-read/pom.xml
@@ -51,30 +51,10 @@
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-core</artifactId>
- <!-- Overriding the default of "test" -->
- <scope>compile</scope>
- </dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
</dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies combine.children="append">
- <usedDependency>ch.qos.logback:logback-core</usedDependency>
- </usedDependencies>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
</project>
\ No newline at end of file
diff --git a/plc4j/examples/hello-world-plc4x-subscribe/pom.xml b/plc4j/examples/hello-world-plc4x-subscribe/pom.xml
index 3f619cd..850b2ef 100644
--- a/plc4j/examples/hello-world-plc4x-subscribe/pom.xml
+++ b/plc4j/examples/hello-world-plc4x-subscribe/pom.xml
@@ -56,31 +56,10 @@
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
</dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-core</artifactId>
- <!-- Overriding the default of "test" -->
- <scope>compile</scope>
- </dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
</dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies combine.children="append">
- <usedDependency>ch.qos.logback:logback-core</usedDependency>
- <usedDependency>org.slf4j:log4j-over-slf4j</usedDependency>
- </usedDependencies>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
</project>
\ No newline at end of file
diff --git a/plc4j/examples/hello-world-plc4x-write/pom.xml b/plc4j/examples/hello-world-plc4x-write/pom.xml
index 435953a..8fa769a 100644
--- a/plc4j/examples/hello-world-plc4x-write/pom.xml
+++ b/plc4j/examples/hello-world-plc4x-write/pom.xml
@@ -52,30 +52,10 @@
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-core</artifactId>
- <!-- Overriding the default of "test" -->
- <scope>compile</scope>
- </dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
</dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies combine.children="append">
- <usedDependency>ch.qos.logback:logback-core</usedDependency>
- </usedDependencies>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
</project>
\ No newline at end of file
diff --git a/plc4j/examples/plc4j-s7event/pom.xml b/plc4j/examples/plc4j-s7event/pom.xml
index b2b60e5..bbbc69f 100644
--- a/plc4j/examples/plc4j-s7event/pom.xml
+++ b/plc4j/examples/plc4j-s7event/pom.xml
@@ -38,21 +38,6 @@
<project.build.outputTimestamp>2024-02-16T14:53:02Z</project.build.outputTimestamp>
</properties>
- <!-- TODO: This is only needed, because the example accesses direct types of the S7 driver we should refactor this to something that is a pure PLC4X API type of thing -->
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies>
- <dependency>org.slf4j:slf4j-simple</dependency>
- </usedDependencies>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
<dependencies>
<dependency>
<groupId>org.apache.plc4x</groupId>
@@ -67,38 +52,36 @@
<version>0.13.0-SNAPSHOT</version>
</dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-classic</artifactId>
- </dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
- <version>${commons-codec.version}</version>
+ <version>1.16.1</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>3.14.0</version>
+ </dependency>
+
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-buffer</artifactId>
- <version>${netty.version}</version>
+ <version>4.1.107.Final</version>
</dependency>
<dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- <version>${commons-lang3.version}</version>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-common</artifactId>
+ <version>4.1.107.Final</version>
</dependency>
+
<dependency>
<groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
- <version>${slf4j.version}</version>
+ <artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-common</artifactId>
- <version>${netty.version}</version>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
</dependency>
+
</dependencies>
</project>
\ No newline at end of file
diff --git a/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcCycSubscriptionS7400H.java b/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcCycSubscriptionS7400H.java
index aeb0305..6b2b946 100644
--- a/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcCycSubscriptionS7400H.java
+++ b/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcCycSubscriptionS7400H.java
@@ -63,9 +63,6 @@ public class PlcCycSubscriptionS7400H implements ConnectionStateListener {
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
-
- System.setProperty(org.slf4j.simple.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "Info");
-
PlcCycSubscriptionS7400H device = new PlcCycSubscriptionS7400H();
device.run(args);
}
diff --git a/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcEventSubscriptionS7400H.java b/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcEventSubscriptionS7400H.java
index b817e3a..e10a3ac 100644
--- a/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcEventSubscriptionS7400H.java
+++ b/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcEventSubscriptionS7400H.java
@@ -44,8 +44,6 @@ public class PlcEventSubscriptionS7400H {
*/
public static void main(String[] args) throws Exception {
- System.setProperty(org.slf4j.simple.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "Debug");
-
try (PlcConnection connection = new DefaultPlcDriverManager().getConnection("s7://10.10.1.80?remote-rack=0&remote-slot=3&controller-type=S7_400")) {
final PlcSubscriptionRequest.Builder subscription = connection.subscriptionRequestBuilder();
diff --git a/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcReadDataS7400H.java b/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcReadDataS7400H.java
index 8ab3176..518868b 100644
--- a/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcReadDataS7400H.java
+++ b/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcReadDataS7400H.java
@@ -58,8 +58,6 @@ public class PlcReadDataS7400H implements ConnectionStateListener {
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
- System.setProperty(org.slf4j.simple.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "Debug");
-
PlcReadDataS7400H device = new PlcReadDataS7400H();
device.run();
}
diff --git a/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcReadS71200.java b/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcReadS71200.java
index 7a0ac29..93ffb02 100644
--- a/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcReadS71200.java
+++ b/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcReadS71200.java
@@ -53,8 +53,6 @@ public class PlcReadS71200 implements ConnectionStateListener {
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception{
- System.setProperty(org.slf4j.simple.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "Debug");
-
PlcReadS71200 device = new PlcReadS71200();
device.run();
}
diff --git a/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcReadWriteStrings.java b/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcReadWriteStrings.java
index e86f296..ff586c7 100644
--- a/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcReadWriteStrings.java
+++ b/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcReadWriteStrings.java
@@ -93,8 +93,6 @@ public class PlcReadWriteStrings implements ConnectionStateListener {
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
- System.setProperty(org.slf4j.simple.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "Debug");
-
PlcReadWriteStrings device = new PlcReadWriteStrings();
device.run();
}
diff --git a/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcSzlRequestS7400H.java b/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcSzlRequestS7400H.java
index 809ce1d..be20c6e 100644
--- a/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcSzlRequestS7400H.java
+++ b/plc4j/examples/plc4j-s7event/src/main/java/org/apache/plc4x/examples/plc4j/s7event/PlcSzlRequestS7400H.java
@@ -47,8 +47,6 @@ public class PlcSzlRequestS7400H {
*/
public static void main(String[] args) throws Exception {
- System.setProperty(org.slf4j.simple.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "Debug");
-
System.out.println("******************************************************************************************");
System.out.println("Before using, take a look at:");
System.out.println("System Software for S7-300/400.\r\nSystem and Standard Functions - Volume 1/2");
diff --git a/plc4j/examples/poll-loop/pom.xml b/plc4j/examples/poll-loop/pom.xml
index 75af9a2..ab425af 100644
--- a/plc4j/examples/poll-loop/pom.xml
+++ b/plc4j/examples/poll-loop/pom.xml
@@ -54,18 +54,4 @@
</dependency>
</dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies combine.children="append">
- <usedDependency>org.slf4j:log4j-over-slf4j</usedDependency>
- </usedDependencies>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
</project>
diff --git a/plc4j/examples/pom.xml b/plc4j/examples/pom.xml
index 5bda46e..c92c309 100644
--- a/plc4j/examples/pom.xml
+++ b/plc4j/examples/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j</artifactId>
+ <artifactId>plc4j-extras</artifactId>
<version>0.13.0-SNAPSHOT</version>
</parent>
@@ -37,6 +37,10 @@
<properties>
<project.build.outputTimestamp>2024-02-16T14:53:02Z</project.build.outputTimestamp>
<app.main.class>override-this-property-in-application-pom</app.main.class>
+
+ <commons-cli.version>1.6.0</commons-cli.version>
+ <logback.version>1.5.3</logback.version>
+ <slf4j.version>2.0.12</slf4j.version>
</properties>
<modules>
@@ -61,14 +65,6 @@
<build>
<plugins>
- <!-- This is just examples including these checks here requires an insane amount of housekeeping. -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-enforcer-plugin</artifactId>
- <configuration>
- <skip>true</skip>
- </configuration>
- </plugin>
<!-- Build a fat jar containing all dependencies -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -81,6 +77,7 @@
<goal>shade</goal>
</goals>
<configuration>
+ <createDependencyReducedPom>false</createDependencyReducedPom>
<transformers combine.children="append">
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>${app.main.class}</mainClass>
@@ -90,16 +87,6 @@
</execution>
</executions>
</plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies combine.children="append">
- <usedDependency>org.apache.plc4x:plc4j-driver-all</usedDependency>
- </usedDependencies>
- </configuration>
- </plugin>
</plugins>
<pluginManagement>
@@ -119,6 +106,21 @@
<!-- Change the default scope to "compile" to include logback in all examples -->
<dependencyManagement>
<dependencies>
+ <dependency>
+ <groupId>commons-cli</groupId>
+ <artifactId>commons-cli</artifactId>
+ <version>${commons-cli.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${slf4j.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>log4j-over-slf4j</artifactId>
+ <version>${slf4j.version}</version>
+ </dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
diff --git a/plc4j/integrations/apache-calcite/pom.xml b/plc4j/integrations/apache-calcite/pom.xml
index 154da4a..18f051f 100644
--- a/plc4j/integrations/apache-calcite/pom.xml
+++ b/plc4j/integrations/apache-calcite/pom.xml
@@ -36,20 +36,6 @@
<calcite-core.version>1.36.0</calcite-core.version>
</properties>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies combine.children="append">
- <usedDependency>org.apache.plc4x:plc4j-driver-all</usedDependency>
- </usedDependencies>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
<dependencies>
<dependency>
<groupId>org.apache.calcite</groupId>
@@ -64,6 +50,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
+ <version>3.14.0</version>
</dependency>
<dependency>
<groupId>org.apache.plc4x</groupId>
@@ -84,6 +71,31 @@
<type>pom</type>
<scope>runtime</scope>
</dependency>
+
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-api</artifactId>
+ <version>5.10.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <version>3.25.3</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-collections4</artifactId>
+ <version>4.4</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-connection-cache</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<dependencyManagement>
diff --git a/plc4j/integrations/apache-kafka/pom.xml b/plc4j/integrations/apache-kafka/pom.xml
index 9c6f5bd..fec21de 100644
--- a/plc4j/integrations/apache-kafka/pom.xml
+++ b/plc4j/integrations/apache-kafka/pom.xml
@@ -17,179 +17,208 @@
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>
-
- <parent>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-integrations</artifactId>
- <version>0.13.0-SNAPSHOT</version>
- </parent>
-
- <artifactId>plc4j-apache-kafka</artifactId>
-
- <name>PLC4J: Integrations: Apache Kafka</name>
- <description>Integration module for integrating PLC4X into Apache Kafka (Kafka-Connect-Plugin)</description>
-
- <properties>
- <project.build.outputTimestamp>2024-02-16T14:53:02Z</project.build.outputTimestamp>
- <kafka.version>3.2.0</kafka.version>
- <kafka.connect.maven.plugin.version>0.12.0</kafka.connect.maven.plugin.version>
- </properties>
-
- <!-- Build a fat jar so the user only needs to drop in this one jar -->
- <build>
- <plugins>
- <!-- Build a fat jar containing all dependencies -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>shade</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies combine.children="append">
- <usedDependency>org.apache.plc4x:plc4j-driver-all</usedDependency>
- </usedDependencies>
- </configuration>
- </plugin>
- <plugin>
- <groupId>io.confluent</groupId>
- <artifactId>kafka-connect-maven-plugin</artifactId>
- <version>${kafka.connect.maven.plugin.version}</version>
- <executions>
- <execution>
- <goals>
- <goal>kafka-connect</goal>
- </goals>
- <configuration>
- <title>PLC4X PLC4J Connector</title>
- <name>kafka-connect-plc4x-plc4j</name>
- <documentationUrl>https://plc4x.apache.org/users/integrations/apache-kafka.html</documentationUrl>
- <description>
- The PLC4X connectors allow reading and writing to devices using industrial protocols.
- </description>
- <logo>../../../media/logos/300ppi/PLC4X.png</logo>
- <sourceUrl>https://plc4x.apache.org/users/download.html</sourceUrl>
-
- <supportProviderName>PLC4X</supportProviderName>
- <supportSummary>The PLC4X Connectors are supported by the community</supportSummary>
- <supportUrl>https://plc4x.apache.org/index.html</supportUrl>
- <supportLogo>../../../media/logos/300ppi/PLC4X.png</supportLogo>
-
- <ownerUsername>apache</ownerUsername>
- <ownerType>organization</ownerType>
- <ownerName>Apache</ownerName>
- <ownerUrl>https://plc4x.apache.org/index.html</ownerUrl>
- <ownerLogo>../../../media/logos/300ppi/PLC4X.png</ownerLogo>
-
- <componentTypes>
- <componentType>sink</componentType>
- <componentType>source</componentType>
- </componentTypes>
-
- <tags isList="true">
- <tag>PLC4X</tag>
- <tag>PLC</tag>
- <tag>iot</tag>
- <tag>iiot</tag>
- <tag>modbus</tag>
- <tag>AB</tag>
- <tag>S7</tag>
- <tag>OPC</tag>
- <tag>OPC UA</tag>
- <tag>bacnet</tag>
- <tag>ads</tag>
- <tag>deltav</tag>
- <tag>df1</tag>
- <tag>ethernet/ip</tag>
- <tag>firmata</tag>
- <tag>knx</tag>
- <tag>simulated</tag>
- <tag>canopen</tag>
- </tags>
-
- <deliveryGuarantee>
- <deliveryGuarantee>exactlyOnce</deliveryGuarantee>
- </deliveryGuarantee>
-
- <confluentControlCenterIntegration>true</confluentControlCenterIntegration>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>attach-confluent-zip</id>
- <phase>package</phase>
- <goals>
- <goal>attach-artifact</goal>
- </goals>
- <configuration>
- <artifacts>
- <artifact>
- <file>${project.build.directory}/components/packages/apache-kafka-connect-plc4x-plc4j-${project.version}.zip</file>
- <type>zip</type>
- <classifier>standalone</classifier>
- </artifact>
- </artifacts>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-api</artifactId>
- <version>0.13.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-scraper</artifactId>
- <version>0.13.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-connection-cache</artifactId>
- <version>0.13.0-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.kafka</groupId>
- <artifactId>kafka-clients</artifactId>
- <version>${kafka.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.kafka</groupId>
- <artifactId>connect-api</artifactId>
- <version>${kafka.version}</version>
- <scope>provided</scope>
- </dependency>
-
- <!-- Include all drivers -->
- <dependency>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-driver-all</artifactId>
- <version>0.13.0-SNAPSHOT</version>
- <type>pom</type>
- <scope>runtime</scope>
- </dependency>
- </dependencies>
+<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>
+
+ <parent>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-integrations</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>plc4j-apache-kafka</artifactId>
+
+ <name>PLC4J: Integrations: Apache Kafka</name>
+ <description>Integration module for integrating PLC4X into Apache Kafka (Kafka-Connect-Plugin)</description>
+
+ <properties>
+ <project.build.outputTimestamp>2024-02-16T14:53:02Z</project.build.outputTimestamp>
+ <kafka.version>3.2.0</kafka.version>
+ <kafka.connect.maven.plugin.version>0.12.0</kafka.connect.maven.plugin.version>
+ </properties>
+
+ <!-- Build a fat jar so the user only needs to drop in this one jar -->
+ <build>
+ <plugins>
+ <!-- Build a fat jar containing all dependencies -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ <configuration>
+ <createDependencyReducedPom>false</createDependencyReducedPom>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>io.confluent</groupId>
+ <artifactId>kafka-connect-maven-plugin</artifactId>
+ <version>${kafka.connect.maven.plugin.version}</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>kafka-connect</goal>
+ </goals>
+ <configuration>
+ <title>PLC4X PLC4J Connector</title>
+ <name>kafka-connect-plc4x-plc4j</name>
+ <documentationUrl>https://plc4x.apache.org/users/integrations/apache-kafka.html
+ </documentationUrl>
+ <description>
+ The PLC4X connectors allow reading and writing to devices using industrial protocols.
+ </description>
+ <logo>../../../media/logos/300ppi/PLC4X.png</logo>
+ <sourceUrl>https://plc4x.apache.org/users/download.html</sourceUrl>
+
+ <supportProviderName>PLC4X</supportProviderName>
+ <supportSummary>The PLC4X Connectors are supported by the community</supportSummary>
+ <supportUrl>https://plc4x.apache.org/index.html</supportUrl>
+ <supportLogo>../../../media/logos/300ppi/PLC4X.png</supportLogo>
+
+ <ownerUsername>apache</ownerUsername>
+ <ownerType>organization</ownerType>
+ <ownerName>Apache</ownerName>
+ <ownerUrl>https://plc4x.apache.org/index.html</ownerUrl>
+ <ownerLogo>../../../media/logos/300ppi/PLC4X.png</ownerLogo>
+
+ <componentTypes>
+ <componentType>sink</componentType>
+ <componentType>source</componentType>
+ </componentTypes>
+
+ <tags isList="true">
+ <tag>PLC4X</tag>
+ <tag>PLC</tag>
+ <tag>iot</tag>
+ <tag>iiot</tag>
+ <tag>modbus</tag>
+ <tag>AB</tag>
+ <tag>S7</tag>
+ <tag>OPC</tag>
+ <tag>OPC UA</tag>
+ <tag>bacnet</tag>
+ <tag>ads</tag>
+ <tag>deltav</tag>
+ <tag>df1</tag>
+ <tag>ethernet/ip</tag>
+ <tag>firmata</tag>
+ <tag>knx</tag>
+ <tag>simulated</tag>
+ <tag>canopen</tag>
+ </tags>
+
+ <deliveryGuarantee>
+ <deliveryGuarantee>exactlyOnce</deliveryGuarantee>
+ </deliveryGuarantee>
+
+ <confluentControlCenterIntegration>true</confluentControlCenterIntegration>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <!--plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-confluent-zip</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>
+ ${project.build.directory}/components/packages/apache-kafka-connect-plc4x-plc4j-${project.version}.zip
+ </file>
+ <type>zip</type>
+ <classifier>standalone</classifier>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin-->
+ </plugins>
+ </build>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-api</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-scraper</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-connection-cache</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>2.0.12</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-yaml</artifactId>
+ <version>2.16.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-collections4</artifactId>
+ <version>4.4</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-math3</artifactId>
+ <version>3.6.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.kafka</groupId>
+ <artifactId>kafka-clients</artifactId>
+ <version>${kafka.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.kafka</groupId>
+ <artifactId>connect-api</artifactId>
+ <version>${kafka.version}</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- Include all drivers -->
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-driver-all</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <type>pom</type>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-api</artifactId>
+ <version>5.10.2</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
</project>
diff --git a/plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/config/SourceConfig.java b/plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/config/SourceConfig.java
index 8d15e3c..7b5a8f1 100644
--- a/plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/config/SourceConfig.java
+++ b/plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/config/SourceConfig.java
@@ -18,15 +18,11 @@
*/
package org.apache.plc4x.kafka.config;
-import org.apache.plc4x.kafka.Plc4xSourceConnector;
import org.apache.kafka.common.config.AbstractConfig;
-import org.apache.kafka.common.config.Config;
import org.apache.kafka.common.config.ConfigDef;
import org.apache.kafka.common.config.ConfigException;
-import org.apache.kafka.common.config.ConfigValue;
import java.util.Map;
-import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/plc4j/integrations/apache-nifi/nifi-plc4x-nar/pom.xml b/plc4j/integrations/apache-nifi/nifi-plc4x-nar/pom.xml
index 24697a1..baf43bd 100644
--- a/plc4j/integrations/apache-nifi/nifi-plc4x-nar/pom.xml
+++ b/plc4j/integrations/apache-nifi/nifi-plc4x-nar/pom.xml
@@ -37,24 +37,6 @@
<source.skip>true</source.skip>
</properties>
- <build>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies combine.children="append">
- <usedDependency>org.apache.plc4x:plc4j-nifi-plc4x-processors</usedDependency>
- <usedDependency>org.apache.plc4x:plc4j-api</usedDependency>
- <usedDependency>org.apache.plc4x:plc4j-driver-all</usedDependency>
- </usedDependencies>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
-
<dependencies>
<dependency>
<groupId>org.apache.plc4x</groupId>
@@ -82,8 +64,8 @@
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-driver-all</artifactId>
<version>0.13.0-SNAPSHOT</version>
- <type>pom</type>
- </dependency>
+ <type>pom</type>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
diff --git a/plc4j/integrations/apache-nifi/nifi-plc4x-processors/pom.xml b/plc4j/integrations/apache-nifi/nifi-plc4x-processors/pom.xml
index b61b377..72aca53 100644
--- a/plc4j/integrations/apache-nifi/nifi-plc4x-processors/pom.xml
+++ b/plc4j/integrations/apache-nifi/nifi-plc4x-processors/pom.xml
@@ -17,163 +17,175 @@
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.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>
- <parent>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-apache-nifi</artifactId>
- <version>0.13.0-SNAPSHOT</version>
- </parent>
+ <parent>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-apache-nifi</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </parent>
- <artifactId>plc4j-nifi-plc4x-processors</artifactId>
+ <artifactId>plc4j-nifi-plc4x-processors</artifactId>
- <name>PLC4J: Integrations: Apache Nifi: Processors</name>
+ <name>PLC4J: Integrations: Apache Nifi: Processors</name>
- <properties>
- <project.build.outputTimestamp>2024-02-16T14:53:02Z</project.build.outputTimestamp>
- </properties>
+ <properties>
+ <project.build.outputTimestamp>2024-02-16T14:53:02Z</project.build.outputTimestamp>
+ </properties>
- <dependencies>
- <dependency>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-api</artifactId>
- <version>0.13.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-connection-cache</artifactId>
- <version>0.13.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-spi</artifactId>
- <version>0.13.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-record</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-record-serialization-service-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-utils</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-json-utils</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-avro-record-utils</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.avro</groupId>
- <artifactId>avro</artifactId>
- </dependency>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-api</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-connection-cache</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-spi</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-record</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-record-serialization-service-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-utils</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-json-utils</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-avro-record-utils</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.avro</groupId>
+ <artifactId>avro</artifactId>
+ </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-record-serialization-services</artifactId>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>javax.validation</groupId>
- <artifactId>validation-api</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-core</artifactId>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-schema-registry-service-api</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-mock</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-mock-record-utils</artifactId>
- <scope>test</scope>
- </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-record-serialization-services</artifactId>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-schema-registry-service-api</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-mock</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-mock-record-utils</artifactId>
+ <scope>test</scope>
+ </dependency>
- <!-- This one is for test purpouses only, drivers are included in the nar -->
- <dependency>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-driver-modbus</artifactId>
- <version>0.13.0-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-driver-opcua</artifactId>
- <version>0.13.0-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-driver-s7</artifactId>
- <version>0.13.0-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-driver-simulated</artifactId>
- <version>0.13.0-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-transport-pcap-replay</artifactId>
- <version>0.13.0-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-transport-raw-socket</artifactId>
- <version>0.13.0-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-transport-serial</artifactId>
- <version>0.13.0-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-transport-tcp</artifactId>
- <version>0.13.0-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-transport-udp</artifactId>
- <version>0.13.0-SNAPSHOT</version>
+ <!-- This one is for test purpouses only, drivers are included in the nar -->
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-driver-modbus</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-driver-opcua</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-driver-s7</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-driver-simulated</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-transport-pcap-replay</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-transport-raw-socket</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-transport-serial</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-transport-tcp</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-transport-udp</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-inline</artifactId>
+ <version>4.11.0</version>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-standard-nar</artifactId>
- <type>nar</type>
- </dependency>
- </dependencies>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-standard-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ </dependencies>
</project>
\ No newline at end of file
diff --git a/plc4j/integrations/apache-nifi/pom.xml b/plc4j/integrations/apache-nifi/pom.xml
index d44645a..521a7fa 100644
--- a/plc4j/integrations/apache-nifi/pom.xml
+++ b/plc4j/integrations/apache-nifi/pom.xml
@@ -84,7 +84,7 @@
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
- <version>${junit.jupiter.version}</version>
+ <version>5.10.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
@@ -141,7 +141,7 @@
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
- <version>${jaxb.version}</version>
+ <version>4.0.5</version>
</dependency>
<dependency>
<groupId>jakarta.xml.bind</groupId>
diff --git a/plc4j/integrations/pom.xml b/plc4j/integrations/pom.xml
index 3192c3f..4122b36 100644
--- a/plc4j/integrations/pom.xml
+++ b/plc4j/integrations/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j</artifactId>
+ <artifactId>plc4j-extras</artifactId>
<version>0.13.0-SNAPSHOT</version>
</parent>
diff --git a/plc4j/pom.xml b/plc4j/pom.xml
new file mode 100644
index 0000000..ffb0a4a
--- /dev/null
+++ b/plc4j/pom.xml
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+ https://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.
+ -->
+<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>
+
+ <parent>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-extras-parent</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>plc4j-extras</artifactId>
+ <packaging>pom</packaging>
+
+ <name>PLC4J-Extras</name>
+ <description>Examples, integration modules and tools for Java.</description>
+
+ <properties>
+ <project.build.outputTimestamp>2024-02-16T14:53:02Z</project.build.outputTimestamp>
+ </properties>
+
+ <modules>
+ <module>examples</module>
+ <module>integrations</module>
+ <module>tools</module>
+ </modules>
+
+ <build>
+ <plugins>
+ <!--
+ This plugin doesn't really do much, it makes sure the jacoco agent
+ is downloaded and that the path to this is saved in an environment
+ variable, so we can access this later on in the build.
+ -->
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <executions>
+ <!--
+ Prepares the property pointing to the JaCoCo runtime agent which
+ is passed as VM argument when Maven the Surefire plugin is executed.
+ -->
+ <execution>
+ <id>pre-unit-test</id>
+ <phase>generate-test-sources</phase>
+ <goals>
+ <goal>prepare-agent</goal>
+ </goals>
+ <configuration>
+ <!--
+ Sets the name of the property containing the settings
+ for JaCoCo runtime agent.
+ -->
+ <propertyName>surefireArgLine</propertyName>
+ </configuration>
+ </execution>
+ <!--
+ Prepares the property pointing to the JaCoCo runtime agent which
+ is passed as VM argument when Maven the Failsafe plugin is executed.
+ -->
+ <execution>
+ <id>pre-integration-test</id>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>prepare-agent-integration</goal>
+ </goals>
+ <configuration>
+ <!--
+ Sets the name of the property containing the settings
+ for JaCoCo runtime agent.
+ -->
+ <propertyName>failsafeArgLine</propertyName>
+ </configuration>
+ </execution>
+ <execution>
+ <id>report</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>report</goal>
+ </goals>
+ </execution>
+ <!--
+ Check if the unit-test-coverage is at least a certain minimum.
+ -->
+ <execution>
+ <id>check-coverage</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ <configuration>
+ <!-- TODO: Turn this on as soon as possible. -->
+ <haltOnFailure>false</haltOnFailure>
+ <rules>
+ <rule implementation="org.jacoco.maven.RuleConfiguration">
+ <element>BUNDLE</element>
+ <limits>
+ <!-- Fail the build if the instruction level coverage is below 80%. -->
+ <limit implementation="org.jacoco.report.check.Limit">
+ <counter>INSTRUCTION</counter>
+ <value>COVEREDRATIO</value>
+ <minimum>0.50</minimum>
+ </limit>
+ <!-- Fail the build if there are classes without any coverage. -->
+ <limit implementation="org.jacoco.report.check.Limit">
+ <counter>CLASS</counter>
+ <value>MISSEDCOUNT</value>
+ <maximum>0</maximum>
+ </limit>
+ </limits>
+ </rule>
+ </rules>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!--
+ As our libraries should be consumable on Java 11, downgrade the compiler settings.
+ -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>default-compile</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ <configuration>
+ <!-- Would have loved to suppress the warnings of generated code only -->
+ <showWarnings>false</showWarnings>
+ <release>11</release>
+ </configuration>
+ </execution>
+ <execution>
+ <id>default-testCompile</id>
+ <phase>test-compile</phase>
+ <goals>
+ <goal>testCompile</goal>
+ </goals>
+ <configuration>
+ <!-- Would have loved to suppress the warnings of generated code only -->
+ <showWarnings>false</showWarnings>
+ <release>11</release>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!--
+ Make the surefire execute all unit-tests
+ -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <!--
+ We have to slightly increase the heap-size or some tests will fail.
+ Notice the @ instead of the $ as prefix? That's late evaluation.
+ -->
+ <argLine>-Xmx512m @{surefireArgLine}</argLine>
+ <includes>
+ <include>**/*Test.java</include>
+ <include>**/*Tests.java</include>
+ <include>**/*Spec.java</include>
+ </includes>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <configuration>
+ <!--
+ The failsafe plugin would use the java jigsaw module path,
+ this would make loading the test XML files impossible.
+ So we simply disable this.
+ -->
+ <useModulePath>false</useModulePath>
+ <!--
+ We have to slightly increase the heap-size or some tests will fail.
+ Notice the @ instead of the $ as prefix? That's late evaluation.
+ -->
+ <argLine>-Xmx512m @{failsafeArgLine}</argLine>
+ <includes>
+ <include>**/*IT.java</include>
+ </includes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/plc4j/tools/opcua-server/pom.xml b/plc4j/tools/opcua-server/pom.xml
index c7ff042..0742a2e 100644
--- a/plc4j/tools/opcua-server/pom.xml
+++ b/plc4j/tools/opcua-server/pom.xml
@@ -36,59 +36,66 @@
</properties>
<dependencies>
+ <!-- Milo OPC UA Dependencies -->
<dependency>
<groupId>org.eclipse.milo</groupId>
<artifactId>dictionary-manager</artifactId>
+ <version>0.6.12</version>
</dependency>
-
- <!-- Milo OPC UA Dependencies -->
<dependency>
<groupId>org.eclipse.milo</groupId>
<artifactId>sdk-server</artifactId>
+ <version>0.6.12</version>
</dependency>
-
<dependency>
<groupId>org.eclipse.milo</groupId>
<artifactId>stack-server</artifactId>
+ <version>0.6.12</version>
</dependency>
-
<dependency>
<groupId>org.eclipse.milo</groupId>
<artifactId>stack-core</artifactId>
+ <version>0.6.12</version>
</dependency>
-
<dependency>
<groupId>org.eclipse.milo</groupId>
<artifactId>sdk-core</artifactId>
+ <version>0.6.12</version>
</dependency>
<!-- Parsing Libraries -->
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
+ <version>2.16.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
+ <version>2.16.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
+ <version>2.16.1</version>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
+ <version>1.6.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
+ <version>12.0.5</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
+ <version>1.16.1</version>
</dependency>
<!-- PLC4X Dependencies -->
@@ -116,33 +123,47 @@
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk18on</artifactId>
+ <version>1.77</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk18on</artifactId>
+ <version>1.77</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
+ <version>1.77</version>
</dependency>
<!-- Logging dependencies -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
+ <version>2.0.12</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
+ <version>1.5.3</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
+ <version>2.15.1</version>
</dependency>
<dependency>
<groupId>io.vavr</groupId>
<artifactId>vavr</artifactId>
+ <version>0.10.4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-api</artifactId>
+ <version>5.10.2</version>
+ <scope>test</scope>
</dependency>
</dependencies>
@@ -160,6 +181,7 @@
<goal>shade</goal>
</goals>
<configuration>
+ <createDependencyReducedPom>false</createDependencyReducedPom>
<transformers combine.children="append">
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>org.apache.plc4x.java.opcuaserver.OPCUAServer</mainClass>
@@ -169,7 +191,7 @@
</execution>
</executions>
</plugin>
- <plugin>
+ <!--plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
@@ -190,19 +212,8 @@
</configuration>
</execution>
</executions>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies combine.children="append">
- <usedDependency>org.bouncycastle:bcmail-jdk18on</usedDependency>
- <usedDependency>org.apache.plc4x:plc4j-driver-all</usedDependency>
- </usedDependencies>
- </configuration>
- </plugin>
+ </plugin-->
</plugins>
-
</build>
+
</project>
diff --git a/plc4j/tools/opcua-server/src/test/java/org/apache/plc4x/java/opcuaserver/OpcuaPlcDriverTest.java b/plc4j/tools/opcua-server/src/test/java/org/apache/plc4x/java/opcuaserver/OpcuaPlcDriverTest.java
index ec07e50..5e1c59c 100644
--- a/plc4j/tools/opcua-server/src/test/java/org/apache/plc4x/java/opcuaserver/OpcuaPlcDriverTest.java
+++ b/plc4j/tools/opcua-server/src/test/java/org/apache/plc4x/java/opcuaserver/OpcuaPlcDriverTest.java
@@ -35,8 +35,6 @@ import java.math.BigInteger;
import org.apache.commons.io.FileUtils;
import java.io.File;
-import static org.assertj.core.api.Assertions.fail;
-
/**
*/
@Disabled("We're getting strange OutOfMemoryErrors from this one")
@@ -117,13 +115,11 @@ public class OpcuaPlcDriverTest {
opcuaConnection.close();
assert !opcuaConnection.isConnected();
} catch (PlcConnectionException e) {
- fail("Exception during connectionNoParams while connecting Test EXCEPTION: " + e.getMessage());
+ Assertions.fail("Exception during connectionNoParams while connecting Test EXCEPTION: " + e.getMessage());
} catch (Exception e) {
- fail("Exception during connectionNoParams while closing Test EXCEPTION: " + e.getMessage());
+ Assertions.fail("Exception during connectionNoParams while closing Test EXCEPTION: " + e.getMessage());
}
-
});
-
}
@Test
@@ -136,13 +132,11 @@ public class OpcuaPlcDriverTest {
opcuaConnection.close();
assert !opcuaConnection.isConnected();
} catch (PlcConnectionException e) {
- fail("Exception during connectionWithDiscoveryParam while connecting Test EXCEPTION: " + e.getMessage());
+ Assertions.fail("Exception during connectionWithDiscoveryParam while connecting Test EXCEPTION: " + e.getMessage());
} catch (Exception e) {
- fail("Exception during connectionWithDiscoveryParam while closing Test EXCEPTION: " + e.getMessage());
+ Assertions.fail("Exception during connectionWithDiscoveryParam while closing Test EXCEPTION: " + e.getMessage());
}
}));
-
-
}
@Test
diff --git a/plc4j/tools/plc4x-server/pom.xml b/plc4j/tools/plc4x-server/pom.xml
index 4a6bad4..96c3cbc 100644
--- a/plc4j/tools/plc4x-server/pom.xml
+++ b/plc4j/tools/plc4x-server/pom.xml
@@ -50,6 +50,7 @@
<goal>shade</goal>
</goals>
<configuration>
+ <createDependencyReducedPom>false</createDependencyReducedPom>
<transformers combine.children="append">
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>org.apache.plc4x.java.tools.plc4xserver.Plc4xServer</mainClass>
@@ -59,7 +60,7 @@
</execution>
</executions>
</plugin>
- <plugin>
+ <!--plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
@@ -80,17 +81,7 @@
</configuration>
</execution>
</executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies combine.children="append">
- <usedDependency>org.slf4j:log4j-over-slf4j</usedDependency>
- <usedDependency>org.apache.plc4x:plc4j-driver-all</usedDependency>
- </usedDependencies>
- </configuration>
- </plugin>
+ </plugin-->
</plugins>
</build>
@@ -131,31 +122,44 @@
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-buffer</artifactId>
+ <version>4.1.107.Final</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport</artifactId>
+ <version>4.1.107.Final</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
+ <version>2.0.12</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
+ <version>2.0.12</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
+ <version>1.5.3</version>
<!-- Explicitly override the scope to compile to include these -->
<scope>compile</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
+ <version>1.5.3</version>
<scope>runtime</scope>
</dependency>
+
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-api</artifactId>
+ <version>5.10.2</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
diff --git a/plc4j/integrations/pom.xml b/plc4j/tools/pom.xml
similarity index 63%
copy from plc4j/integrations/pom.xml
copy to plc4j/tools/pom.xml
index 3192c3f..d66e647 100644
--- a/plc4j/integrations/pom.xml
+++ b/plc4j/tools/pom.xml
@@ -23,24 +23,40 @@
<parent>
<groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j</artifactId>
+ <artifactId>plc4j-extras</artifactId>
<version>0.13.0-SNAPSHOT</version>
</parent>
- <artifactId>plc4j-integrations</artifactId>
+ <artifactId>plc4j-tools</artifactId>
<packaging>pom</packaging>
- <name>PLC4J: Integrations</name>
- <description>Parent of all product specific integration modules.</description>
+ <name>PLC4J: Tools</name>
+ <description>A collection of tools that provide additional services to users.</description>
<properties>
<project.build.outputTimestamp>2024-02-16T14:53:02Z</project.build.outputTimestamp>
</properties>
<modules>
- <module>apache-calcite</module>
- <module>apache-nifi</module>
- <module>apache-kafka</module>
+ <module>opcua-server</module>
+ <module>plc4x-server</module>
</modules>
-</project>
+ <!--
+ As the UI is a standalone application, that is not meant for being integrated in anything
+ we don't want to limit us to old java versions and therefore be stuck with old Spring versions.
+ Therefore, at least Java 19 is needed in order to build this module.
+ -->
+ <profiles>
+ <profile>
+ <id>.above-or-equal-java-19</id>
+ <activation>
+ <jdk>[19,)</jdk>
+ </activation>
+ <modules>
+ <module>ui</module>
+ </modules>
+ </profile>
+ </profiles>
+
+</project>
\ No newline at end of file
diff --git a/plc4j/tools/ui/backend/pom.xml b/plc4j/tools/ui/backend/pom.xml
index 4923511..896068f 100644
--- a/plc4j/tools/ui/backend/pom.xml
+++ b/plc4j/tools/ui/backend/pom.xml
@@ -31,21 +31,6 @@
<build>
<plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <usedDependencies combine.children="append">
- <usedDependency>org.apache.plc4x:plc4j-driver-all</usedDependency>
- <usedDependency>org.springframework.boot:spring-boot-starter-web</usedDependency>
- <usedDependency>org.springframework.boot:spring-boot-starter-websocket</usedDependency>
- <usedDependency>org.springframework.boot:spring-boot-starter-data-jpa</usedDependency>
- <usedDependency>org.apache.derby:derby</usedDependency>
- <usedDependency>org.apache.derby:derbytools</usedDependency>
- <usedDependency>ch.qos.logback:logback-core</usedDependency>
- </usedDependencies>
- </configuration>
- </plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
@@ -149,12 +134,10 @@
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
- <scope>compile</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
- <scope>compile</scope>
</dependency>
</dependencies>
diff --git a/plc4j/tools/ui/frontend/pom.xml b/plc4j/tools/ui/frontend/pom.xml
index 1c6acc3..ebc067f 100644
--- a/plc4j/tools/ui/frontend/pom.xml
+++ b/plc4j/tools/ui/frontend/pom.xml
@@ -34,6 +34,93 @@
<build>
<plugins>
+ <plugin>
+ <groupId>cz.habarta.typescript-generator</groupId>
+ <artifactId>typescript-generator-maven-plugin</artifactId>
+ <version>3.2.1263</version>
+ <executions>
+ <execution>
+ <id>generate-rest-client</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ <configuration>
+ <skip>false</skip>
+ <classes>
+ <!-- These are the PLC4J API types -->
+ <!--class>org.apache.plc4x.java.api.messages.PlcBrowseItem</class>
+ <class>org.apache.plc4x.java.api.messages.PlcBrowseItemArrayInfo</class>
+ <class>org.apache.plc4x.java.api.messages.PlcBrowseRequest</class>
+ <class>org.apache.plc4x.java.api.messages.PlcBrowseResponse</class>
+ <class>org.apache.plc4x.java.api.messages.PlcDiscoveryItem</class>
+ <class>org.apache.plc4x.java.api.messages.PlcDiscoveryRequest</class>
+ <class>org.apache.plc4x.java.api.messages.PlcDiscoveryResponse</class>
+ <class>org.apache.plc4x.java.api.metadata.PlcConnectionMetadata</class>
+ <class>org.apache.plc4x.java.api.metadata.PlcDriverMetadata</class>
+ <class>org.apache.plc4x.java.api.model.ArrayInfo</class>
+ <class>org.apache.plc4x.java.api.model.PlcQuery</class>
+ <class>org.apache.plc4x.java.api.model.PlcTag</class>
+ <class>org.apache.plc4x.java.api.types.PlcResponseCode</class>
+ <class>org.apache.plc4x.java.api.types.PlcSubscriptionType</class>
+ <class>org.apache.plc4x.java.api.types.PlcValueType</class>
+ <class>org.apache.plc4x.java.api.value.PlcValue</class-->
+ <class>org.apache.plc4x.java.tools.ui.model.Device</class>
+ <class>org.apache.plc4x.java.tools.ui.model.Driver</class>
+ <class>org.apache.plc4x.java.tools.ui.event.EventType</class>
+ <class>org.apache.plc4x.java.tools.ui.event.UiApplicationEvent</class>
+ <class>org.apache.plc4x.java.tools.ui.event.DeviceEvent</class>
+ <!-- Here come the REST controllers -->
+ <class>org.apache.plc4x.java.tools.ui.controller.DeviceController</class>
+ <class>org.apache.plc4x.java.tools.ui.controller.DriverController</class>
+ </classes>
+ <excludeClasses>
+ <excludeClass>java.lang.Comparable</excludeClass>
+ </excludeClasses>
+ <extensions>
+ <extension>cz.habarta.typescript.generator.ext.AxiosClientExtension</extension>
+ </extensions>
+ <outputKind>module</outputKind>
+ <outputFileType>implementationFile</outputFileType>
+ <classesFromAutomaticJaxrsApplication>true</classesFromAutomaticJaxrsApplication>
+ <generateJaxrsApplicationClient>true</generateJaxrsApplicationClient>
+ <generateSpringApplicationClient>true</generateSpringApplicationClient>
+ <jsonLibrary>jackson2</jsonLibrary>
+ <restOptionsType>AxiosRequestConfig</restOptionsType>
+ <restResponseType>AxiosPromise</restResponseType>
+ <outputFile>project/src/generated/plc4j-tools-ui-frontend.ts</outputFile>
+ <noFileComment>true</noFileComment>
+ </configuration>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>cz.habarta.typescript-generator</groupId>
+ <artifactId>typescript-generator-spring</artifactId>
+ <version>3.2.1263</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>license-maven-plugin</artifactId>
+ <version>2.4.0</version>
+ <executions>
+ <execution>
+ <id>add-apache-headers</id>
+ <phase>process-sources</phase>
+ <goals>
+ <goal>update-file-header</goal>
+ </goals>
+ <configuration>
+ <licenseName>apache_v2</licenseName>
+ <roots>
+ <root>project/src/generated</root>
+ </roots>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
@@ -122,101 +209,4 @@
</dependency>
</dependencies>
- <profiles>
- <profile>
- <id>update-generated-code</id>
- <build>
- <plugins>
- <plugin>
- <groupId>cz.habarta.typescript-generator</groupId>
- <artifactId>typescript-generator-maven-plugin</artifactId>
- <version>3.2.1263</version>
- <executions>
- <execution>
- <id>generate-rest-client</id>
- <phase>generate-sources</phase>
- <goals>
- <goal>generate</goal>
- </goals>
- <configuration>
- <skip>false</skip>
- <classes>
- <!-- These are the PLC4J API types -->
- <!--class>org.apache.plc4x.java.api.messages.PlcBrowseItem</class>
- <class>org.apache.plc4x.java.api.messages.PlcBrowseItemArrayInfo</class>
- <class>org.apache.plc4x.java.api.messages.PlcBrowseRequest</class>
- <class>org.apache.plc4x.java.api.messages.PlcBrowseResponse</class>
- <class>org.apache.plc4x.java.api.messages.PlcDiscoveryItem</class>
- <class>org.apache.plc4x.java.api.messages.PlcDiscoveryRequest</class>
- <class>org.apache.plc4x.java.api.messages.PlcDiscoveryResponse</class>
- <class>org.apache.plc4x.java.api.metadata.PlcConnectionMetadata</class>
- <class>org.apache.plc4x.java.api.metadata.PlcDriverMetadata</class>
- <class>org.apache.plc4x.java.api.model.ArrayInfo</class>
- <class>org.apache.plc4x.java.api.model.PlcQuery</class>
- <class>org.apache.plc4x.java.api.model.PlcTag</class>
- <class>org.apache.plc4x.java.api.types.PlcResponseCode</class>
- <class>org.apache.plc4x.java.api.types.PlcSubscriptionType</class>
- <class>org.apache.plc4x.java.api.types.PlcValueType</class>
- <class>org.apache.plc4x.java.api.value.PlcValue</class-->
- <class>org.apache.plc4x.java.tools.ui.model.Device</class>
- <class>org.apache.plc4x.java.tools.ui.model.Driver</class>
- <class>org.apache.plc4x.java.tools.ui.event.EventType</class>
- <class>org.apache.plc4x.java.tools.ui.event.UiApplicationEvent</class>
- <class>org.apache.plc4x.java.tools.ui.event.DeviceEvent</class>
- <!-- Here come the REST controllers -->
- <class>org.apache.plc4x.java.tools.ui.controller.DeviceController</class>
- <class>org.apache.plc4x.java.tools.ui.controller.DriverController</class>
- </classes>
- <excludeClasses>
- <excludeClass>java.lang.Comparable</excludeClass>
- </excludeClasses>
- <extensions>
- <extension>cz.habarta.typescript.generator.ext.AxiosClientExtension</extension>
- </extensions>
- <outputKind>module</outputKind>
- <outputFileType>implementationFile</outputFileType>
- <classesFromAutomaticJaxrsApplication>true</classesFromAutomaticJaxrsApplication>
- <generateJaxrsApplicationClient>true</generateJaxrsApplicationClient>
- <generateSpringApplicationClient>true</generateSpringApplicationClient>
- <jsonLibrary>jackson2</jsonLibrary>
- <restOptionsType>AxiosRequestConfig</restOptionsType>
- <restResponseType>AxiosPromise</restResponseType>
- <outputFile>project/src/generated/plc4j-tools-ui-frontend.ts</outputFile>
- <noFileComment>true</noFileComment>
- </configuration>
- </execution>
- </executions>
- <dependencies>
- <dependency>
- <groupId>cz.habarta.typescript-generator</groupId>
- <artifactId>typescript-generator-spring</artifactId>
- <version>3.2.1263</version>
- </dependency>
- </dependencies>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>license-maven-plugin</artifactId>
- <version>2.4.0</version>
- <executions>
- <execution>
- <id>add-apache-headers</id>
- <phase>process-sources</phase>
- <goals>
- <goal>update-file-header</goal>
- </goals>
- <configuration>
- <licenseName>apache_v2</licenseName>
- <roots>
- <root>project/src/generated</root>
- </roots>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-
</project>
diff --git a/plc4j/tools/ui/frontend/project/src/generated/plc4j-tools-ui-frontend.ts b/plc4j/tools/ui/frontend/project/src/generated/plc4j-tools-ui-frontend.ts
index d4e7c4f..64a3dd0 100644
--- a/plc4j/tools/ui/frontend/project/src/generated/plc4j-tools-ui-frontend.ts
+++ b/plc4j/tools/ui/frontend/project/src/generated/plc4j-tools-ui-frontend.ts
@@ -46,8 +46,8 @@ export interface DeviceEvent extends UiApplicationEvent<Device> {
}
export interface PlcDriverMetadata {
- protocolConfigurationOptionMetadata?: OptionMetadata;
discoverySupported: boolean;
+ protocolConfigurationOptionMetadata?: OptionMetadata;
defaultTransportCode?: string;
supportedTransportCodes: string[];
}
@@ -69,8 +69,8 @@ export interface Option {
key: string;
type: OptionType;
defaultValue?: any;
- required: boolean;
description: string;
+ required: boolean;
}
export interface Serializable {
diff --git a/plc4j/tools/ui/pom.xml b/plc4j/tools/ui/pom.xml
index 369ac4b..4a071b3 100644
--- a/plc4j/tools/ui/pom.xml
+++ b/plc4j/tools/ui/pom.xml
@@ -73,6 +73,13 @@
</configuration>
</execution>
</executions>
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>extra-enforcer-rules</artifactId>
+ <version>1.7.0</version>
+ </dependency>
+ </dependencies>
</plugin>
</plugins>
</build>
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..e2f30d9
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,544 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+ https://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.
+ -->
+<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>
+
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>31</version>
+ </parent>
+
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-extras-parent</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <name>PLC4X-Extras</name>
+ <description>
+ PLC4X is an effort to create a universal library for accessing industrial programmable logic controllers
+ using a variety of protocols using a uniform API.
+
+ The Extras Repository contains all Integration modules, Tools and Examples.
+ </description>
+ <url>https://plc4x.apache.org</url>
+ <inceptionYear>2017</inceptionYear>
+
+ <scm>
+ <connection>scm:git:https://gitbox.apache.org/repos/asf/plc4x-extras.git</connection>
+ <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/plc4x-extras.git</developerConnection>
+ <url>https://github.com/apache/plc4x-extras</url>
+ <tag>HEAD</tag>
+ </scm>
+
+ <issueManagement>
+ <system>GitHub</system>
+ <url>https://github.com/apache/plc4x-extras/issues</url>
+ </issueManagement>
+
+ <mailingLists>
+ <mailingList>
+ <name>Apache PLC4X Developer List</name>
+ <subscribe>mailto:dev-subscribe@plc4x.apache.org</subscribe>
+ <unsubscribe>mailto:dev-unsubscribe@plc4x.apache.org</unsubscribe>
+ <post>mailto:dev@plc4x.apache.org</post>
+ <archive>https://mail-archives.apache.org/mod_mbox/plc4x-dev/</archive>
+ </mailingList>
+ <mailingList>
+ <name>PLC4X Commits List</name>
+ <subscribe>mailto:commits-subscribe@plc4x.apache.org</subscribe>
+ <unsubscribe>mailto:commits-unsubscribe@plc4x.apache.org</unsubscribe>
+ <post>mailto:commits@plc4x.apache.org</post>
+ <archive>https://mail-archives.apache.org/mod_mbox/plc4x-commits/</archive>
+ </mailingList>
+ <mailingList>
+ <name>PLC4X Jira Notifications List</name>
+ <subscribe>mailto:issues-subscribe@plc4x.apache.org</subscribe>
+ <unsubscribe>mailto:issues-unsubscribe@plc4x.apache.org</unsubscribe>
+ <post>mailto:issues@plc4x.apache.org</post>
+ <archive>https://mail-archives.apache.org/mod_mbox/plc4x-issues/</archive>
+ </mailingList>
+ </mailingLists>
+
+ <properties>
+ <java.version>11</java.version>
+
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <project.reporting.outputencoding>UTF-8</project.reporting.outputencoding>
+
+ <!-- Timestamp for the reproducible builds -->
+ <maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ss'Z'</maven.build.timestamp.format>
+ <project.build.outputTimestamp>2024-02-16T14:53:02Z</project.build.outputTimestamp>
+
+ <plc4x.version>0.13.0-SNAPSHOT</plc4x.version>
+ </properties>
+
+ <build>
+ <plugins>
+ <!-- Check if all source files have the required apache license headers -->
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>license-check</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <useMavenDefaultExcludes>true</useMavenDefaultExcludes>
+ <excludes>
+ <!-- Git related files -->
+ <exclude>**/.git/**</exclude>
+ <exclude>**/.gitignore</exclude>
+ <exclude>**/cmake-*/**</exclude>
+ <exclude>**/.lock/**</exclude>
+
+ <!-- Maven related files -->
+ <exclude>**/target/**</exclude>
+ <exclude>target/**</exclude>
+ <exclude>out/**</exclude>
+
+ <!-- Python related files -->
+ <exclude>**/.pytest_cache/**</exclude>
+ <exclude>**/.mypy_cache/**</exclude>
+ <exclude>**/Pipfile</exclude>
+ <exclude>**/Pipfile.lock</exclude>
+
+ <!-- Eclipse related files -->
+ <exclude>**/.project</exclude>
+ <exclude>**/.settings/**</exclude>
+ <exclude>**/.classpath</exclude>
+ <exclude>**/.factorypath</exclude>
+
+ <!-- IntelliJ related files -->
+ <exclude>**/.idea/**</exclude>
+ <exclude>**/*.iml</exclude>
+ <exclude>**/.attach_pid*</exclude>
+
+ <!-- CLion stuff (C++ IDE) -->
+ <exclude>**/cmake-build-debug/**</exclude>
+ <exclude>**/*.make</exclude>
+ <exclude>**/*.cmake</exclude>
+ <exclude>**/*.internal</exclude>
+ <exclude>**/link.txt</exclude>
+ <!-- Not sure why I can't exclude all Makefile's from just the plc4c directory -->
+ <!-- exclude>**/Makefile</exclude -->
+ <exclude>**/Makefile</exclude>
+ <exclude>**/*.includecache</exclude>
+ <exclude>**/CMakeFiles/**</exclude>
+ <exclude>**/CMakeCache.txt</exclude>
+ <exclude>**/DartConfiguration.tcl</exclude>
+
+ <!-- Temporarily exclude generated code from thrift in python modules -->
+ <!--exclude>generated/**</exclude-->
+ <!-- Temporary Python files -->
+ <exclude>**/.eggs/**</exclude>
+ <exclude>**/plc4py.egg-info/**</exclude>
+
+ <!-- Temporary Python virtualenv files-->
+ <exclude>**/venv/**</exclude>
+
+ <!-- Temporary pytest and mypy folders -->
+ <exclude>**/.mypy_cache/**</exclude>
+ <exclude>**/.pytest_cache/**</exclude>
+
+ <!-- Exclude a temp file needed by Docker -->
+ <exclude>project_version</exclude>
+
+ <!-- Exclude files generated by the go build system -->
+ <exclude>**/go.sum</exclude>
+
+ <!-- Exclude Node related files -->
+ <!--
+ This is actually only needed when having built with Java 19
+ or higher and then building with a version below 19. Because
+ in this case, the "ui" module is disabled, and the left-over
+ build files make rat complain.
+ -->
+ <exclude>ui/frontend/project/dist/**</exclude>
+ <exclude>ui/frontend/project/node/**</exclude>
+ <exclude>ui/frontend/project/node_modules/**</exclude>
+
+ <exclude>.mvn/**</exclude>
+
+ <!-- Exclude core dumps-->
+ <exclude>**/hs_err_pid*</exclude>
+ <exclude>**/replay_pid*</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+
+ <!-- Generate the legally required text files in the jars -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-remote-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>process-resource-bundles</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>process</goal>
+ </goals>
+ <configuration>
+ <resourceBundles>
+ <!-- Will generate META-INF/{DEPENDENCIES,LICENSE,NOTICE} -->
+ <resourceBundle>org.apache.apache.resources:apache-jar-resource-bundle:1.5</resourceBundle>
+ </resourceBundles>
+ <!-- Content in this directory will be appended to generated resources -->
+ <appendedResourcesDirectory>${basedir}/src/remote-resources</appendedResourcesDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <version>0.16.1</version>
+ <configuration>
+ <!--
+ Make rat output the files with missing licensed directly into the
+ build output (This way we don't have to look into the rat.txt to find
+ out which ones)
+ -->
+ <consoleOutput>true</consoleOutput>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+
+ <!-- Make Snapshots of Apache projects available -->
+ <repositories>
+ <repository>
+ <id>apache-snapshots</id>
+ <url>https://repository.apache.org/content/repositories/snapshots</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </repository>
+ <!-- When we release stuff like the site skin or the build tools, syncing to Maven Central usually takes some time -->
+ <repository>
+ <id>apache-releases</id>
+ <url>https://repository.apache.org/content/repositories/releases</url>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </repository>
+ </repositories>
+
+ <!-- Make Snapshots of Apache plugins available -->
+ <pluginRepositories>
+ <pluginRepository>
+ <id>apache-snapshots</id>
+ <url>https://repository.apache.org/content/repositories/snapshots</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </pluginRepository>
+ <!-- When we release stuff like the site skin or the build tools, syncing to Maven Central usually takes some time -->
+ <pluginRepository>
+ <id>apache-releases</id>
+ <url>https://repository.apache.org/content/repositories/releases</url>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </pluginRepository>
+ </pluginRepositories>
+
+ <profiles>
+ <!-- Build PLC4X including the C modules -->
+ <profile>
+ <id>with-c</id>
+ <modules>
+ <module>plc4c</module>
+ </modules>
+ </profile>
+
+ <!-- Build PLC4X including the Go modules -->
+ <profile>
+ <id>with-go</id>
+ <modules>
+ <module>plc4go</module>
+ </modules>
+ </profile>
+
+ <!-- Build PLC4X including the Java modules -->
+ <profile>
+ <id>with-java</id>
+ <modules>
+ <module>plc4j</module>
+ </modules>
+ </profile>
+
+ <!-- Profile for linux amd64 (Self-Enabling) -->
+ <profile>
+ <id>.os-linux-amd64</id>
+ <activation>
+ <os>
+ <family>unix</family>
+ <name>Linux</name>
+ <arch>amd64</arch>
+ </os>
+ </activation>
+ <properties>
+ <os.suffix>linux</os.suffix>
+ <os.classifier>linux-x86_64</os.classifier>
+ <cmake.generator>Unix Makefiles</cmake.generator>
+ <python.venv.bin>venv/bin/</python.venv.bin>
+ <python.exe.bin>python3</python.exe.bin>
+ <javafx.platform>linux</javafx.platform>
+ </properties>
+ </profile>
+ <!-- Profile for linux x86_64 (Self-Enabling) -->
+ <profile>
+ <id>.os-linux-x86_64</id>
+ <activation>
+ <os>
+ <family>unix</family>
+ <name>Linux</name>
+ <arch>x86_64</arch>
+ </os>
+ </activation>
+ <properties>
+ <os.suffix>linux</os.suffix>
+ <os.classifier>linux-x86_64</os.classifier>
+ <cmake.generator>Unix Makefiles</cmake.generator>
+ <python.venv.bin>venv/bin/</python.venv.bin>
+ <python.exe.bin>python3</python.exe.bin>
+ <javafx.platform>linux</javafx.platform>
+ </properties>
+ </profile>
+ <!-- Profile for linux aarch64 (Self-Enabling) -->
+ <profile>
+ <id>.os-linux-aarch64</id>
+ <activation>
+ <os>
+ <family>unix</family>
+ <name>Linux</name>
+ <arch>aarch64</arch>
+ </os>
+ </activation>
+ <properties>
+ <os.suffix>linux</os.suffix>
+ <os.classifier>linux-${os.arch}</os.classifier>
+ <cmake.generator>Unix Makefiles</cmake.generator>
+ <python.venv.bin>venv/bin/</python.venv.bin>
+ <python.exe.bin>python3</python.exe.bin>
+ <javafx.platform>linux-aarch64</javafx.platform>
+ </properties>
+ </profile>
+ <!-- Profile for mac amd64 (Self-Enabling) -->
+ <profile>
+ <id>.os-mac-amd64</id>
+ <activation>
+ <os>
+ <family>mac</family>
+ <arch>amd64</arch>
+ </os>
+ </activation>
+ <properties>
+ <os.suffix>mac</os.suffix>
+ <os.classifier>mac-x86_64</os.classifier>
+ <cmake.generator>Unix Makefiles</cmake.generator>
+ <python.venv.bin>venv/bin/</python.venv.bin>
+ <python.exe.bin>python3</python.exe.bin>
+ <javafx.platform>mac</javafx.platform>
+ </properties>
+ </profile>
+ <!-- Profile for mac x86_64 (Self-Enabling) -->
+ <profile>
+ <id>.os-mac-x86_64</id>
+ <activation>
+ <os>
+ <family>mac</family>
+ <arch>x86_64</arch>
+ </os>
+ </activation>
+ <properties>
+ <os.suffix>mac</os.suffix>
+ <os.classifier>mac-x86_64</os.classifier>
+ <cmake.generator>Unix Makefiles</cmake.generator>
+ <python.venv.bin>venv/bin/</python.venv.bin>
+ <python.exe.bin>python3</python.exe.bin>
+ <javafx.platform>mac</javafx.platform>
+ </properties>
+ </profile>
+ <!-- Profile for mac (Self-Enabling) -->
+ <profile>
+ <id>.os-mac-aarch64</id>
+ <activation>
+ <os>
+ <family>mac</family>
+ <arch>aarch64</arch>
+ </os>
+ </activation>
+ <properties>
+ <os.suffix>mac</os.suffix>
+ <os.classifier>mac-aarch64</os.classifier>
+ <cmake.generator>Unix Makefiles</cmake.generator>
+ <python.venv.bin>venv/bin/</python.venv.bin>
+ <python.exe.bin>python3</python.exe.bin>
+ <javafx.platform>mac-aarch64</javafx.platform>
+ </properties>
+ </profile>
+ <!-- profile for windows (Self-Enabling) -->
+ <profile>
+ <id>.os-windows</id>
+ <activation>
+ <os>
+ <family>windows</family>
+ </os>
+ </activation>
+ <properties>
+ <os.suffix>win</os.suffix>
+ <os.classifier>windows-x86_64</os.classifier>
+ <cmake.generator>MinGW Makefiles</cmake.generator>
+ <python.venv.bin>venv/Scripts/</python.venv.bin>
+ <python.exe.bin>python</python.exe.bin>
+ <javafx.platform>win-x86</javafx.platform>
+ </properties>
+ </profile>
+
+ <!--
+ This profile extends the default "apache-release" configuration with automatic checksum-
+ generation for the release source artifact. It is automatically activated during the
+ release build and only needed there.
+ -->
+ <profile>
+ <id>apache-release</id>
+ <!-- Ensure these are run as part of a release-build -->
+ <properties>
+ <skip-code-generation-tests>false</skip-code-generation-tests>
+ <skip-dependency-cve-scan>false</skip-dependency-cve-scan>
+ </properties>
+ <build>
+ <plugins>
+ <!--
+ Create MD5 and SHA512 checksum files for the release artifacts.
+ -->
+ <plugin>
+ <groupId>net.nicoulaj.maven.plugins</groupId>
+ <artifactId>checksum-maven-plugin</artifactId>
+ <version>1.11</version>
+ <!-- Only run this in the root module of the project -->
+ <inherited>false</inherited>
+ <executions>
+ <execution>
+ <phase>verify</phase>
+ <goals>
+ <goal>files</goal>
+ </goals>
+ <configuration>
+ <algorithms>
+ <algorithm>SHA-512</algorithm>
+ </algorithms>
+ <includeRelativePath>true</includeRelativePath>
+ <fileSets>
+ <fileSet>
+ <directory>${project.build.directory}</directory>
+ <includes>
+ <include>apache-plc4x-${project.version}-source-release.zip</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <!-- We want to sign the artifact, the POM, and all attached artifacts (except for SHA-512 checksum) -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-gpg-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>sign-release-artifacts</id>
+ <goals>
+ <goal>sign</goal>
+ </goals>
+ <configuration>
+ <skip>${skip-pgp-signing}</skip>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>default-deploy</id>
+ <phase>deploy</phase>
+ <goals>
+ <goal>deploy</goal>
+ </goals>
+ <configuration>
+ <altReleaseDeploymentRepository>apache.releases.https::file:/ws/out/.local-artifacts-dir</altReleaseDeploymentRepository>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <!--
+ Generate an SBOM for the project
+ -->
+ <plugin>
+ <groupId>org.cyclonedx</groupId>
+ <artifactId>cyclonedx-maven-plugin</artifactId>
+ <version>2.8.0</version>
+ <!-- Only run this in the root module of the project -->
+ <inherited>false</inherited>
+ <configuration>
+ <outputName>apache-${project.artifactId}-${project.version}-sbom</outputName>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>makeAggregateBom</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+</project>