diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 7db12c4..fec26b8 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -1,7 +1,7 @@
-
# Community Code of Conduct
**Version 2.0
diff --git a/DEPENDENCIES b/DEPENDENCIES
index 62bcd97..c70e258 100644
--- a/DEPENDENCIES
+++ b/DEPENDENCIES
@@ -1,216 +1,177 @@
-
-
-
-maven/mavencentral/aopalliance/aopalliance/1.0, LicenseRef-Public-Domain, approved, CQ2918
-maven/mavencentral/ch.qos.logback/logback-classic/1.4.6, EPL-1.0 OR LGPL-2.1-only, approved, #3435
-maven/mavencentral/ch.qos.logback/logback-core/1.4.6, EPL-1.0 OR LGPL-2.1-only, approved, #3373
-maven/mavencentral/com.apicatalog/titanium-json-ld/1.3.1, Apache-2.0, approved, #8912
+maven/mavencentral/ch.qos.logback/logback-classic/1.5.3, EPL-1.0 AND LGPL-2.1-only, approved, #13282
+maven/mavencentral/ch.qos.logback/logback-core/1.5.3, EPL-1.0 AND LGPL-2.1-only, approved, #13283
+maven/mavencentral/com.apicatalog/titanium-json-ld/1.4.0, Apache-2.0, approved, #13683
maven/mavencentral/com.digitalpetri.fsm/strict-machine/0.6, Apache-2.0, approved, clearlydefined
maven/mavencentral/com.digitalpetri.netty/netty-channel-fsm/0.8, Apache-2.0, approved, #6168
-maven/mavencentral/com.fasterxml.jackson.core/jackson-annotations/2.14.2, Apache-2.0, approved, #5303
-maven/mavencentral/com.fasterxml.jackson.core/jackson-core/2.14.2, Apache-2.0 AND MIT, approved, #4303
-maven/mavencentral/com.fasterxml.jackson.core/jackson-databind/2.14.2, Apache-2.0, approved, #4105
-maven/mavencentral/com.fasterxml.jackson.dataformat/jackson-dataformat-xml/2.12.3, Apache-2.0, approved, #5575
-maven/mavencentral/com.fasterxml.jackson.module/jackson-module-jaxb-annotations/2.12.3, Apache-2.0, approved, CQ23849
-maven/mavencentral/com.fasterxml.woodstox/woodstox-core/6.5.0, Apache-2.0, approved, #7950
+maven/mavencentral/com.ethlo.time/itu/1.8.0, Apache-2.0, approved, #12927
+maven/mavencentral/com.fasterxml.jackson.core/jackson-annotations/2.17.0, Apache-2.0, approved, #13672
+maven/mavencentral/com.fasterxml.jackson.core/jackson-core/2.17.0, , approved, #13665
+maven/mavencentral/com.fasterxml.jackson.core/jackson-databind/2.17.0, Apache-2.0, approved, #13671
+maven/mavencentral/com.fasterxml.jackson.dataformat/jackson-dataformat-xml/2.16.1, Apache-2.0, approved, #12438
+maven/mavencentral/com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/2.15.3, Apache-2.0, approved, #8802
+maven/mavencentral/com.fasterxml.jackson.datatype/jackson-datatype-jsr310/2.17.0, Apache-2.0, approved, #14160
+maven/mavencentral/com.fasterxml.woodstox/woodstox-core/6.6.2, Apache-2.0, approved, #12789
maven/mavencentral/com.github.andrewoma.dexx/collection/0.7, MIT, approved, CQ22160
-maven/mavencentral/com.github.davidmoten/guava-mini/0.1.2, Apache-2.0, approved, clearlydefined
-maven/mavencentral/com.github.davidmoten/word-wrap/0.1.6, Apache-2.0, approved, clearlydefined
+maven/mavencentral/com.github.ben-manes.caffeine/caffeine/3.1.8, Apache-2.0, approved, clearlydefined
+maven/mavencentral/com.github.curious-odd-man/rgxgen/2.0, Apache-2.0, approved, clearlydefined
+maven/mavencentral/com.github.java-json-tools/btf/1.3, Apache-2.0 OR LGPL-3.0-or-later, approved, #2721
+maven/mavencentral/com.github.java-json-tools/jackson-coreutils/2.0, Apache-2.0 OR LGPL-3.0-or-later, approved, #2719
+maven/mavencentral/com.github.java-json-tools/json-patch/1.13, Apache-2.0 OR LGPL-3.0-or-later, approved, CQ23929
+maven/mavencentral/com.github.java-json-tools/msg-simple/1.2, Apache-2.0 OR LGPL-3.0-or-later, approved, #2720
maven/mavencentral/com.github.jsonld-java/jsonld-java/0.13.4, BSD-3-Clause, approved, CQ22136
-maven/mavencentral/com.github.virtuald/curvesapi/1.07, BSD-3-Clause, approved, clearlydefined
+maven/mavencentral/com.github.virtuald/curvesapi/1.08, BSD-3-Clause, approved, clearlydefined
maven/mavencentral/com.google.code.findbugs/jsr305/3.0.2, Apache-2.0, approved, #20
-maven/mavencentral/com.google.code.gson/gson/2.10, Apache-2.0, approved, #6159
-maven/mavencentral/com.google.errorprone/error_prone_annotations/2.3.4, Apache-2.0, approved, #807
-maven/mavencentral/com.google.guava/failureaccess/1.0.1, Apache-2.0, approved, CQ22654
-maven/mavencentral/com.google.guava/guava/30.0-jre, Apache-2.0, approved, clearlydefined
+maven/mavencentral/com.google.code.gson/gson/2.10.1, Apache-2.0, approved, #6159
+maven/mavencentral/com.google.errorprone/error_prone_annotations/2.26.1, Apache-2.0, approved, #13657
+maven/mavencentral/com.google.guava/failureaccess/1.0.2, Apache-2.0, approved, CQ22654
+maven/mavencentral/com.google.guava/guava/33.1.0-jre, Apache-2.0 AND CC0-1.0, approved, #13675
maven/mavencentral/com.google.guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava, Apache-2.0, approved, CQ22657
-maven/mavencentral/com.google.inject/guice/4.2.1, Apache-2.0, approved, #817
-maven/mavencentral/com.google.inject/guice/5.0.1, Apache-2.0, approved, clearlydefined
-maven/mavencentral/com.google.j2objc/j2objc-annotations/1.3, Apache-2.0, approved, CQ21195
-maven/mavencentral/com.google.protobuf/protobuf-java/3.22.2, BSD-3-Clause, approved, #8370
-maven/mavencentral/com.jayway.jsonpath/json-path/2.7.0, Apache-2.0, approved, clearlydefined
-maven/mavencentral/com.mycila/license-maven-plugin/4.1, Apache-2.0, approved, #7283
-maven/mavencentral/com.mycila/mycila-xmltool/4.4.ga, Apache-2.0, approved, clearlydefined
-maven/mavencentral/com.networknt/json-schema-validator/1.0.56, Apache-2.0, approved, CQ22638
-maven/mavencentral/com.squareup.okhttp3/mockwebserver/4.9.0, Apache-2.0, approved, clearlydefined
-maven/mavencentral/com.squareup.okhttp3/okhttp/4.9.0, Apache-2.0 AND MPL-2.0, approved, #3225
-maven/mavencentral/com.squareup.okio/okio/2.8.0, Apache-2.0, approved, clearlydefined
+maven/mavencentral/com.google.j2objc/j2objc-annotations/3.0.0, Apache-2.0, approved, #13676
+maven/mavencentral/com.google.protobuf/protobuf-java/4.26.1, BSD-3-Clause, approved, clearlydefined
+maven/mavencentral/com.jayway.jsonpath/json-path/2.9.0, Apache-2.0, approved, clearlydefined
+maven/mavencentral/com.networknt/json-schema-validator/1.3.3, Apache-2.0 AND Unicode-TOU, approved, #13037
+maven/mavencentral/com.squareup.okhttp3/mockwebserver/4.12.0, Apache-2.0, approved, clearlydefined
+maven/mavencentral/com.squareup.okhttp3/okhttp/4.12.0, Apache-2.0, approved, #11156
+maven/mavencentral/com.squareup.okio/okio-jvm/3.6.0, Apache-2.0, approved, #11158
+maven/mavencentral/com.squareup.okio/okio/3.6.0, Apache-2.0, approved, #11155
maven/mavencentral/com.sun.activation/jakarta.activation/1.2.2, EPL-2.0 OR BSD-3-Clause OR GPL-2.0-only with Classpath-exception-2.0, approved, ee4j.jaf
-maven/mavencentral/com.sun.istack/istack-commons-runtime/3.0.12, BSD-3-Clause, approved, ee4j.jaxb-impl
-maven/mavencentral/com.zaxxer/SparseBitSet/1.2, Apache-2.0, approved, clearlydefined
-maven/mavencentral/commons-cli/commons-cli/1.5.0, Apache-2.0, approved, clearlydefined
-maven/mavencentral/commons-codec/commons-codec/1.15, Apache-2.0 AND BSD-3-Clause AND LicenseRef-Public-Domain, approved, CQ22641
-maven/mavencentral/commons-io/commons-io/2.11.0, Apache-2.0, approved, CQ23745
-maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/assetconnection-common/0.5.0, , restricted, clearlydefined
-maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/assetconnection-http/0.5.0, , restricted, clearlydefined
-maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/assetconnection-mqtt/0.5.0, , restricted, clearlydefined
-maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/assetconnection-opcua/0.5.0, , restricted, clearlydefined
-maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/core/0.5.0, , restricted, clearlydefined
-maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/dataformat-json/0.5.0, , restricted, clearlydefined
-maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/endpoint-http/0.5.0, , restricted, clearlydefined
-maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/endpoint-opcua/0.5.0, , restricted, clearlydefined
-maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/messagebus-internal/0.5.0, , restricted, clearlydefined
-maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/model/0.5.0, , restricted, clearlydefined
-maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/persistence-file/0.5.0, , restricted, clearlydefined
-maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/persistence-memory/0.5.0, , restricted, clearlydefined
-maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/starter/0.5.0, , restricted, clearlydefined
-maven/mavencentral/info.picocli/picocli/4.7.1, Apache-2.0, approved, #4365
-maven/mavencentral/io.admin-shell.aas/dataformat-aasx/1.2.0, Apache-2.0, approved, clearlydefined
-maven/mavencentral/io.admin-shell.aas/dataformat-aml/1.2.0, , restricted, clearlydefined
-maven/mavencentral/io.admin-shell.aas/dataformat-core/1.2.0, Apache-2.0, approved, clearlydefined
-maven/mavencentral/io.admin-shell.aas/dataformat-json/1.2.0, , restricted, clearlydefined
-maven/mavencentral/io.admin-shell.aas/dataformat-rdf/1.2.0, , restricted, clearlydefined
-maven/mavencentral/io.admin-shell.aas/dataformat-uanodeset/1.2.0, , restricted, clearlydefined
-maven/mavencentral/io.admin-shell.aas/dataformat-xml/1.2.0, Apache-2.0, approved, clearlydefined
-maven/mavencentral/io.admin-shell.aas/model/1.2.0, Apache-2.0, approved, clearlydefined
-maven/mavencentral/io.admin-shell.aas/validator/1.2.0, , restricted, clearlydefined
-maven/mavencentral/io.github.classgraph/classgraph/4.8.157, MIT, approved, CQ22530
-maven/mavencentral/io.netty/netty-buffer/4.1.90.Final, Apache-2.0, approved, CQ21842
-maven/mavencentral/io.netty/netty-codec-http/4.1.90.Final, Apache-2.0 AND BSD-3-Clause AND MIT, approved, CQ20926
-maven/mavencentral/io.netty/netty-codec/4.1.90.Final, Apache-2.0 AND BSD-3-Clause AND MIT, approved, CQ20926
-maven/mavencentral/io.netty/netty-common/4.1.90.Final, Apache-2.0 AND MIT AND CC0-1.0, approved, CQ21843
-maven/mavencentral/io.netty/netty-handler/4.1.90.Final, Apache-2.0 AND BSD-3-Clause AND MIT, approved, CQ20926
-maven/mavencentral/io.netty/netty-resolver/4.1.90.Final, Apache-2.0 AND BSD-3-Clause AND MIT, approved, CQ20926
-maven/mavencentral/io.netty/netty-transport-native-unix-common/4.1.90.Final, Apache-2.0 AND BSD-3-Clause AND MIT, approved, CQ20926
-maven/mavencentral/io.netty/netty-transport/4.1.90.Final, Apache-2.0 AND BSD-3-Clause AND MIT, approved, CQ20926
-maven/mavencentral/jakarta.activation/jakarta.activation-api/1.2.2, EPL-2.0 OR BSD-3-Clause OR GPL-2.0-only with Classpath-exception-2.0, approved, ee4j.jaf
+maven/mavencentral/com.sun.istack/istack-commons-runtime/4.1.2, BSD-3-Clause, approved, #2590
+maven/mavencentral/com.vaadin.external.google/android-json/0.0.20131108.vaadin1, Apache-2.0, approved, CQ21310
+maven/mavencentral/com.zaxxer/SparseBitSet/1.3, Apache-2.0, approved, #10726
+maven/mavencentral/commons-cli/commons-cli/1.6.0, Apache-2.0, approved, #11339
+maven/mavencentral/commons-codec/commons-codec/1.16.1, Apache-2.0 AND (Apache-2.0 AND BSD-3-Clause), approved, #9157
+maven/mavencentral/commons-fileupload/commons-fileupload/1.5, Apache-2.0, approved, #7109
+maven/mavencentral/commons-io/commons-io/2.16.0, Apache-2.0, approved, #14190
+maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/assetconnection-common/1.0.1, , restricted, clearlydefined
+maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/assetconnection-http/1.0.1, , restricted, clearlydefined
+maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/assetconnection-mqtt/1.0.1, , restricted, clearlydefined
+maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/assetconnection-opcua/1.0.1, , restricted, clearlydefined
+maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/core/1.0.1, , restricted, clearlydefined
+maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/dataformat-json/1.0.1, , restricted, clearlydefined
+maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/endpoint-http/1.0.1, , restricted, clearlydefined
+maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/endpoint-opcua/1.0.1, , restricted, clearlydefined
+maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/filestorage-filesystem/1.0.1, , restricted, clearlydefined
+maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/filestorage-memory/1.0.1, , restricted, clearlydefined
+maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/messagebus-internal/1.0.1, , restricted, clearlydefined
+maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/model/1.0.1, , restricted, clearlydefined
+maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/persistence-file/1.0.1, , restricted, clearlydefined
+maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/persistence-memory/1.0.1, , restricted, clearlydefined
+maven/mavencentral/de.fraunhofer.iosb.ilt.faaast.service/starter/1.0.1, , restricted, clearlydefined
+maven/mavencentral/info.picocli/picocli/4.7.5, Apache-2.0, approved, #4365
+maven/mavencentral/io.github.classgraph/classgraph/4.8.168, MIT, approved, CQ22530
+maven/mavencentral/io.netty/netty-buffer/4.1.108.Final, Apache-2.0, approved, CQ21842
+maven/mavencentral/io.netty/netty-codec-http/4.1.108.Final, Apache-2.0 AND BSD-3-Clause AND MIT, approved, CQ20926
+maven/mavencentral/io.netty/netty-codec/4.1.108.Final, Apache-2.0 AND BSD-3-Clause AND MIT, approved, CQ20926
+maven/mavencentral/io.netty/netty-common/4.1.108.Final, Apache-2.0 AND MIT AND CC0-1.0, approved, CQ21843
+maven/mavencentral/io.netty/netty-handler/4.1.108.Final, Apache-2.0 AND BSD-3-Clause AND MIT, approved, CQ20926
+maven/mavencentral/io.netty/netty-resolver/4.1.108.Final, Apache-2.0 AND BSD-3-Clause AND MIT, approved, CQ20926
+maven/mavencentral/io.netty/netty-transport-native-unix-common/4.1.108.Final, Apache-2.0 AND BSD-3-Clause AND MIT, approved, CQ20926
+maven/mavencentral/io.netty/netty-transport/4.1.108.Final, Apache-2.0 AND BSD-3-Clause AND MIT, approved, CQ20926
+maven/mavencentral/jakarta.activation/jakarta.activation-api/2.1.3, EPL-2.0 OR BSD-3-Clause OR GPL-2.0-only with Classpath-exception-2.0, approved, ee4j.jaf
+maven/mavencentral/jakarta.json/jakarta.json-api/2.1.3, EPL-2.0 OR GPL-2.0-only with Classpath-exception-2.0, approved, ee4j.jsonp
maven/mavencentral/jakarta.servlet/jakarta.servlet-api/6.0.0, EPL-2.0 OR GPL-2.0-only with Classpath-exception-2.0, approved, ee4j.servlet
-maven/mavencentral/jakarta.xml.bind/jakarta.xml.bind-api/2.3.3, BSD-3-Clause, approved, ee4j.jaxb
+maven/mavencentral/jakarta.xml.bind/jakarta.xml.bind-api/4.0.2, BSD-3-Clause, approved, ee4j.jaxb
maven/mavencentral/javax.activation/javax.activation-api/1.2.0, (CDDL-1.1 OR GPL-2.0 WITH Classpath-exception-2.0) AND Apache-2.0, approved, CQ18740
-maven/mavencentral/javax.annotation/jsr250-api/1.0, CDDL-1.0, approved, CQ3941
-maven/mavencentral/javax.enterprise/cdi-api/1.0, Apache-2.0, approved, CQ6081
-maven/mavencentral/javax.inject/javax.inject/1, Apache-2.0, approved, CQ3555
maven/mavencentral/javax.xml.bind/jaxb-api/2.3.1, CDDL-1.1 OR GPL-2.0-only WITH Classpath-exception-2.0, approved, CQ16911
-maven/mavencentral/jaxen/jaxen/1.1.6, , approved, CQ11159
-maven/mavencentral/junit/junit/4.13, , approved, CQ22796
-maven/mavencentral/net.codesup.util/jaxb-plugin-lib/1.4.0, MIT, approved, clearlydefined
-maven/mavencentral/net.codesup.util/jaxb2-rich-contract-plugin/2.1.0, MIT, approved, clearlydefined
-maven/mavencentral/net.minidev/accessors-smart/2.4.9, Apache-2.0, approved, #7515
-maven/mavencentral/net.minidev/json-smart/2.4.10, Apache-2.0, approved, #3288
+maven/mavencentral/junit/junit/4.13.2, EPL-2.0, approved, CQ23636
+maven/mavencentral/net.bytebuddy/byte-buddy/1.14.9, Apache-2.0 AND BSD-3-Clause, approved, #7163
+maven/mavencentral/net.minidev/accessors-smart/2.5.1, Apache-2.0, approved, clearlydefined
+maven/mavencentral/net.minidev/json-smart/2.5.1, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.apache.commons/commons-collections4/4.4, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.apache.commons/commons-compress/1.21, Apache-2.0 AND BSD-3-Clause AND bzip2-1.0.6 AND LicenseRef-Public-Domain, approved, CQ23710
-maven/mavencentral/org.apache.commons/commons-csv/1.9.0, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.apache.commons/commons-lang3/3.12.0, Apache-2.0, approved, clearlydefined
+maven/mavencentral/org.apache.commons/commons-compress/1.26.1, Apache-2.0 AND (Apache-2.0 AND BSD-3-Clause), approved, #13288
+maven/mavencentral/org.apache.commons/commons-csv/1.10.0, Apache-2.0, approved, clearlydefined
+maven/mavencentral/org.apache.commons/commons-lang3/3.14.0, Apache-2.0, approved, #11677
maven/mavencentral/org.apache.commons/commons-math3/3.6.1, Apache-2.0 AND BSD-3-Clause AND BSD-2-Clause, approved, CQ22025
-maven/mavencentral/org.apache.commons/commons-pool2/2.2, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.apache.commons/commons-text/1.9, , approved, CQ22603
+maven/mavencentral/org.apache.commons/commons-text/1.10.0, Apache-2.0, approved, clearlydefined
+maven/mavencentral/org.apache.httpcomponents/fluent-hc/4.5.13, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.apache.httpcomponents/httpclient-cache/4.5.13, Apache-2.0, approved, CQ11714
+maven/mavencentral/org.apache.httpcomponents/httpclient-osgi/4.5.13, Apache-2.0, approved, #2142
maven/mavencentral/org.apache.httpcomponents/httpclient/4.5.13, Apache-2.0 AND LicenseRef-Public-Domain, approved, CQ23527
-maven/mavencentral/org.apache.httpcomponents/httpcore/4.4.13, Apache-2.0, approved, CQ23528
-maven/mavencentral/org.apache.jena/jena-arq/4.7.0, Apache-2.0 AND (Apache-2.0 AND EPL-2.0) AND (Apache-2.0 AND EPL-1.0), approved, #8137
-maven/mavencentral/org.apache.jena/jena-base/4.7.0, Apache-2.0, approved, #8145
-maven/mavencentral/org.apache.jena/jena-core/4.7.0, Apache-2.0 AND (Apache-2.0 AND BSD-3-Clause), approved, #8150
-maven/mavencentral/org.apache.jena/jena-iri/4.7.0, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.apache.jena/jena-shacl/4.7.0, Apache-2.0 AND W3C-20150513, approved, #8135
-maven/mavencentral/org.apache.jena/jena-shaded-guava/4.7.0, Apache-2.0 AND CC0-1.0 AND (Apache-2.0 AND CC0-1.0) AND (Apache-2.0 AND CC-PDDC), approved, #8143
-maven/mavencentral/org.apache.logging.log4j/log4j-api/2.18.0, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.apache.maven.resolver/maven-resolver-api/1.4.1, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.apache.maven.resolver/maven-resolver-impl/1.4.1, Apache-2.0, approved, #6027
-maven/mavencentral/org.apache.maven.resolver/maven-resolver-spi/1.4.1, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.apache.maven.resolver/maven-resolver-util/1.4.1, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.apache.maven.shared/maven-shared-utils/3.3.3, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.apache.maven/maven-artifact/3.6.3, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.apache.maven/maven-builder-support/3.6.3, Apache-2.0, approved, #1766
-maven/mavencentral/org.apache.maven/maven-core/3.6.3, Apache-2.0, approved, CQ22820
-maven/mavencentral/org.apache.maven/maven-model-builder/3.6.3, Apache-2.0, approved, #6029
-maven/mavencentral/org.apache.maven/maven-model/3.6.3, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.apache.maven/maven-plugin-api/3.6.3, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.apache.maven/maven-repository-metadata/3.6.3, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.apache.maven/maven-resolver-provider/3.6.3, Apache-2.0, approved, #6028
-maven/mavencentral/org.apache.maven/maven-settings-builder/3.6.3, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.apache.maven/maven-settings/3.6.3, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.apache.poi/poi-ooxml-lite/5.2.3, Apache-2.0 AND BSD-3-Clause AND MIT AND Apache-2.0 AND W3C-19980720, approved, #5247
-maven/mavencentral/org.apache.poi/poi-ooxml/5.2.3, Apache-2.0 AND BSD-3-Clause AND MIT AND Apache-2.0, approved, #5243
-maven/mavencentral/org.apache.poi/poi/5.2.3, Apache-2.0 AND (Apache-2.0 AND BSD-3-Clause AND MIT) AND (Apache-2.0 AND MIT), approved, #5252
-maven/mavencentral/org.apache.thrift/libthrift/0.17.0, Apache-2.0, approved, #6543
-maven/mavencentral/org.apache.xmlbeans/xmlbeans/5.1.1, Apache-2.0, approved, #8429
+maven/mavencentral/org.apache.httpcomponents/httpcore-nio/4.4.14, Apache-2.0, approved, CQ13509
+maven/mavencentral/org.apache.httpcomponents/httpcore-osgi/4.4.14, Apache-2.0, approved, clearlydefined
+maven/mavencentral/org.apache.httpcomponents/httpcore/4.4.14, Apache-2.0, approved, CQ23528
+maven/mavencentral/org.apache.httpcomponents/httpmime/4.5.13, Apache-2.0, approved, CQ11718
+maven/mavencentral/org.apache.jena/jena-arq/5.0.0, Apache-2.0, restricted, clearlydefined
+maven/mavencentral/org.apache.jena/jena-base/5.0.0, Apache-2.0, restricted, clearlydefined
+maven/mavencentral/org.apache.jena/jena-core/5.0.0, Apache-2.0, restricted, clearlydefined
+maven/mavencentral/org.apache.jena/jena-iri/5.0.0, Apache-2.0, approved, clearlydefined
+maven/mavencentral/org.apache.jena/jena-shacl/5.0.0, , restricted, clearlydefined
+maven/mavencentral/org.apache.logging.log4j/log4j-api/2.21.1, Apache-2.0 AND (Apache-2.0 AND LGPL-2.0-or-later), approved, #11079
+maven/mavencentral/org.apache.poi/poi-ooxml-lite/5.2.5, Apache-2.0 AND BSD-3-Clause AND MIT AND Apache-2.0 AND W3C-19980720, approved, #5247
+maven/mavencentral/org.apache.poi/poi-ooxml/5.2.5, Apache-2.0 AND BSD-3-Clause AND MIT AND Apache-2.0, approved, #5243
+maven/mavencentral/org.apache.poi/poi/5.2.5, Apache-2.0 AND (Apache-2.0 AND BSD-3-Clause AND MIT) AND (Apache-2.0 AND MIT), approved, #5252
+maven/mavencentral/org.apache.thrift/libthrift/0.19.0, Apache-2.0, restricted, clearlydefined
+maven/mavencentral/org.apache.xmlbeans/xmlbeans/5.2.0, Apache-2.0, approved, #11782
maven/mavencentral/org.apiguardian/apiguardian-api/1.1.2, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.bouncycastle/bcpkix-jdk15on/1.69, MIT, approved, clearlydefined
-maven/mavencentral/org.bouncycastle/bcprov-jdk15on/1.69, MIT, approved, clearlydefined
-maven/mavencentral/org.bouncycastle/bcutil-jdk15on/1.69, MIT, approved, clearlydefined
-maven/mavencentral/org.checkerframework/checker-qual/3.5.0, MIT, approved, clearlydefined
-maven/mavencentral/org.codehaus.janino/commons-compiler/3.1.9, BSD-3-Clause, approved, clearlydefined
-maven/mavencentral/org.codehaus.janino/janino/3.1.9, BSD-3-Clause, approved, clearlydefined
-maven/mavencentral/org.codehaus.plexus/plexus-classworlds/2.6.0, Apache-2.0 AND Plexus, approved, CQ22821
-maven/mavencentral/org.codehaus.plexus/plexus-component-annotations/2.1.0, Apache-2.0, approved, #809
-maven/mavencentral/org.codehaus.plexus/plexus-interpolation/1.25, Apache-2.0, approved, #812
-maven/mavencentral/org.codehaus.plexus/plexus-utils/3.2.1, , approved, CQ20774
-maven/mavencentral/org.codehaus.woodstox/stax2-api/4.2.1, BSD-2-Clause, approved, #2670
+maven/mavencentral/org.bouncycastle/bcpkix-jdk18on/1.77, MIT, approved, #11593
+maven/mavencentral/org.bouncycastle/bcprov-jdk18on/1.77, MIT AND CC0-1.0, approved, #11595
+maven/mavencentral/org.bouncycastle/bcutil-jdk18on/1.77, MIT, approved, #11596
+maven/mavencentral/org.checkerframework/checker-qual/3.42.0, MIT, approved, clearlydefined
+maven/mavencentral/org.codehaus.janino/commons-compiler/3.1.11, BSD-3-Clause, approved, #13293
+maven/mavencentral/org.codehaus.janino/janino/3.1.11, BSD-3-Clause, approved, #13292
+maven/mavencentral/org.codehaus.woodstox/stax2-api/4.2.2, BSD-2-Clause, approved, #2670
maven/mavencentral/org.dom4j/dom4j/2.1.3, LicenseRef-Dom4j, approved, CQ21947
-maven/mavencentral/org.eclipse.digitaltwin.aas4j/aas4j-transformation-library/0.1.4-20230721.172646-2, , restricted, clearlydefined
+maven/mavencentral/org.eclipse.angus/angus-activation/2.0.2, EPL-2.0 OR GPL-2.0-only with Classpath-exception-2.0, approved, ee4j.angus
+maven/mavencentral/org.eclipse.digitaltwin.aas4j/aas4j-dataformat-aasx/1.0.1, Apache-2.0, approved, dt.aas4j
+maven/mavencentral/org.eclipse.digitaltwin.aas4j/aas4j-dataformat-core/1.0.1, Apache-2.0, approved, dt.aas4j
+maven/mavencentral/org.eclipse.digitaltwin.aas4j/aas4j-dataformat-json/1.0.1, Apache-2.0, approved, dt.aas4j
+maven/mavencentral/org.eclipse.digitaltwin.aas4j/aas4j-dataformat-xml/1.0.1, Apache-2.0, approved, dt.aas4j
+maven/mavencentral/org.eclipse.digitaltwin.aas4j/aas4j-model/1.0.1, Apache-2.0, approved, dt.aas4j
maven/mavencentral/org.eclipse.jetty.toolchain/jetty-jakarta-servlet-api/5.0.2, EPL-2.0 OR Apache-2.0, approved, rt.jetty
-maven/mavencentral/org.eclipse.jetty/jetty-http/11.0.14, EPL-2.0 OR Apache-2.0, approved, rt.jetty
-maven/mavencentral/org.eclipse.jetty/jetty-io/11.0.14, EPL-2.0 OR Apache-2.0, approved, rt.jetty
-maven/mavencentral/org.eclipse.jetty/jetty-server/11.0.14, EPL-2.0 OR Apache-2.0, approved, rt.jetty
-maven/mavencentral/org.eclipse.jetty/jetty-servlets/11.0.14, EPL-2.0 OR Apache-2.0, approved, rt.jetty
-maven/mavencentral/org.eclipse.jetty/jetty-util/11.0.14, EPL-2.0 OR Apache-2.0, approved, rt.jetty
-maven/mavencentral/org.eclipse.milo/bsd-core/0.6.8, EPL-2.0, approved, iot.milo
-maven/mavencentral/org.eclipse.milo/bsd-generator/0.6.8, EPL-2.0, approved, iot.milo
-maven/mavencentral/org.eclipse.milo/sdk-client/0.6.8, EPL-2.0, approved, iot.milo
-maven/mavencentral/org.eclipse.milo/sdk-core/0.6.8, EPL-2.0, approved, iot.milo
-maven/mavencentral/org.eclipse.milo/sdk-server/0.6.8, EPL-2.0, approved, iot.milo
-maven/mavencentral/org.eclipse.milo/stack-client/0.6.8, EPL-2.0, approved, iot.milo
-maven/mavencentral/org.eclipse.milo/stack-core/0.6.8, EPL-2.0, approved, iot.milo
-maven/mavencentral/org.eclipse.milo/stack-server/0.6.8, EPL-2.0, approved, iot.milo
+maven/mavencentral/org.eclipse.jetty/jetty-http/11.0.20, EPL-2.0 OR Apache-2.0, approved, rt.jetty
+maven/mavencentral/org.eclipse.jetty/jetty-io/11.0.20, EPL-2.0 OR Apache-2.0, approved, rt.jetty
+maven/mavencentral/org.eclipse.jetty/jetty-server/11.0.20, EPL-2.0 OR Apache-2.0, approved, rt.jetty
+maven/mavencentral/org.eclipse.jetty/jetty-servlets/11.0.20, EPL-2.0 OR Apache-2.0, approved, rt.jetty
+maven/mavencentral/org.eclipse.jetty/jetty-util/11.0.20, EPL-2.0 OR Apache-2.0, approved, rt.jetty
+maven/mavencentral/org.eclipse.milo/bsd-core/0.6.12, EPL-2.0, approved, iot.milo
+maven/mavencentral/org.eclipse.milo/bsd-generator/0.6.12, EPL-2.0, approved, iot.milo
+maven/mavencentral/org.eclipse.milo/sdk-client/0.6.12, EPL-2.0, approved, iot.milo
+maven/mavencentral/org.eclipse.milo/sdk-core/0.6.12, EPL-2.0, approved, iot.milo
+maven/mavencentral/org.eclipse.milo/sdk-server/0.6.12, EPL-2.0, approved, iot.milo
+maven/mavencentral/org.eclipse.milo/stack-client/0.6.12, EPL-2.0, approved, iot.milo
+maven/mavencentral/org.eclipse.milo/stack-core/0.6.12, EPL-2.0, approved, iot.milo
+maven/mavencentral/org.eclipse.milo/stack-server/0.6.12, EPL-2.0, approved, iot.milo
maven/mavencentral/org.eclipse.paho/org.eclipse.paho.client.mqttv3/1.2.5, EPL-1.0 OR BSD-3-Clause, approved, iot.paho
-maven/mavencentral/org.eclipse.persistence/org.eclipse.persistence.asm/2.7.8, EPL-2.0 OR BSD-3-Clause, approved, ee4j.eclipselink
-maven/mavencentral/org.eclipse.persistence/org.eclipse.persistence.core/2.7.8, EPL-2.0 OR BSD-3-Clause, approved, ee4j.eclipselink
-maven/mavencentral/org.eclipse.persistence/org.eclipse.persistence.moxy/2.7.8, EPL-2.0 OR BSD-3-Clause, approved, ee4j.eclipselink
-maven/mavencentral/org.eclipse.rdf4j/rdf4j-common-annotation/4.1.0, BSD-3-Clause, approved, technology.rdf4j
-maven/mavencentral/org.eclipse.rdf4j/rdf4j-common-exception/4.1.0, BSD-3-Clause, approved, technology.rdf4j
-maven/mavencentral/org.eclipse.rdf4j/rdf4j-common-io/4.1.0, BSD-3-Clause, approved, technology.rdf4j
-maven/mavencentral/org.eclipse.rdf4j/rdf4j-common-iterator/4.1.0, BSD-3-Clause, approved, technology.rdf4j
-maven/mavencentral/org.eclipse.rdf4j/rdf4j-common-text/4.1.0, BSD-3-Clause, approved, technology.rdf4j
-maven/mavencentral/org.eclipse.rdf4j/rdf4j-common-util/4.1.0, BSD-3-Clause, approved, technology.rdf4j
-maven/mavencentral/org.eclipse.rdf4j/rdf4j-common-xml/4.1.0, BSD-3-Clause, approved, technology.rdf4j
-maven/mavencentral/org.eclipse.rdf4j/rdf4j-model-api/4.1.0, BSD-3-Clause, approved, technology.rdf4j
-maven/mavencentral/org.eclipse.rdf4j/rdf4j-model-vocabulary/4.1.0, BSD-3-Clause, approved, technology.rdf4j
-maven/mavencentral/org.eclipse.rdf4j/rdf4j-model/4.1.0, BSD-3-Clause, approved, technology.rdf4j
-maven/mavencentral/org.eclipse.rdf4j/rdf4j-query/4.1.0, BSD-3-Clause, approved, technology.rdf4j
-maven/mavencentral/org.eclipse.rdf4j/rdf4j-queryresultio-api/4.1.0, BSD-3-Clause, approved, technology.rdf4j
-maven/mavencentral/org.eclipse.rdf4j/rdf4j-queryresultio-sparqlxml/4.1.0, BSD-3-Clause, approved, technology.rdf4j
-maven/mavencentral/org.eclipse.rdf4j/rdf4j-rio-api/4.1.0, BSD-3-Clause, approved, technology.rdf4j
-maven/mavencentral/org.eclipse.sisu/org.eclipse.sisu.inject/0.3.4, EPL-1.0, approved, technology.sisu
-maven/mavencentral/org.eclipse.sisu/org.eclipse.sisu.plexus/0.3.4, EPL-1.0, approved, technology.sisu
-maven/mavencentral/org.glassfish.jaxb/jaxb-runtime/2.3.6, BSD-3-Clause, approved, ee4j.jaxb
-maven/mavencentral/org.glassfish.jaxb/txw2/2.3.6, BSD-3-Clause, approved, ee4j.jaxb
+maven/mavencentral/org.eclipse.parsson/parsson/1.1.5, EPL-2.0, approved, ee4j.parsson
+maven/mavencentral/org.eclipse.rdf4j/rdf4j-collection-factory-api/4.3.8, BSD-3-Clause, approved, technology.rdf4j
+maven/mavencentral/org.eclipse.rdf4j/rdf4j-common-annotation/4.3.8, BSD-3-Clause, approved, technology.rdf4j
+maven/mavencentral/org.eclipse.rdf4j/rdf4j-common-exception/4.3.8, BSD-3-Clause, approved, technology.rdf4j
+maven/mavencentral/org.eclipse.rdf4j/rdf4j-common-io/4.3.8, BSD-3-Clause, approved, technology.rdf4j
+maven/mavencentral/org.eclipse.rdf4j/rdf4j-common-iterator/4.3.8, BSD-3-Clause, approved, technology.rdf4j
+maven/mavencentral/org.eclipse.rdf4j/rdf4j-common-text/4.3.8, BSD-3-Clause, approved, technology.rdf4j
+maven/mavencentral/org.eclipse.rdf4j/rdf4j-common-transaction/4.3.8, BSD-3-Clause, approved, technology.rdf4j
+maven/mavencentral/org.eclipse.rdf4j/rdf4j-common-util/4.3.8, BSD-3-Clause, approved, technology.rdf4j
+maven/mavencentral/org.eclipse.rdf4j/rdf4j-common-xml/4.3.8, BSD-3-Clause, approved, technology.rdf4j
+maven/mavencentral/org.eclipse.rdf4j/rdf4j-model-api/4.3.8, BSD-3-Clause, approved, technology.rdf4j
+maven/mavencentral/org.eclipse.rdf4j/rdf4j-model-vocabulary/4.3.8, BSD-3-Clause, approved, technology.rdf4j
+maven/mavencentral/org.eclipse.rdf4j/rdf4j-model/4.3.8, BSD-3-Clause, approved, technology.rdf4j
+maven/mavencentral/org.eclipse.rdf4j/rdf4j-query/4.3.8, BSD-3-Clause, approved, technology.rdf4j
+maven/mavencentral/org.eclipse.rdf4j/rdf4j-queryalgebra-model/4.3.8, BSD-3-Clause, approved, technology.rdf4j
+maven/mavencentral/org.eclipse.rdf4j/rdf4j-queryresultio-api/4.3.8, BSD-3-Clause, approved, technology.rdf4j
+maven/mavencentral/org.eclipse.rdf4j/rdf4j-queryresultio-sparqlxml/4.3.8, BSD-3-Clause, approved, technology.rdf4j
+maven/mavencentral/org.eclipse.rdf4j/rdf4j-rio-api/4.3.8, BSD-3-Clause, approved, technology.rdf4j
+maven/mavencentral/org.eclipse.rdf4j/rdf4j-sail-api/4.3.8, BSD-3-Clause, approved, technology.rdf4j
+maven/mavencentral/org.glassfish.jaxb/jaxb-core/4.0.5, BSD-3-Clause, approved, ee4j.jaxb-impl
+maven/mavencentral/org.glassfish.jaxb/jaxb-runtime/4.0.5, BSD-3-Clause, approved, ee4j.jaxb-impl
+maven/mavencentral/org.glassfish.jaxb/txw2/4.0.5, BSD-3-Clause, approved, ee4j.jaxb-impl
maven/mavencentral/org.glassfish/jakarta.json/2.0.1, EPL-2.0 OR GPL-2.0-only with Classpath-exception-2.0, approved, ee4j.jsonp
maven/mavencentral/org.hamcrest/hamcrest-core/1.3, BSD-2-Clause, approved, CQ11429
maven/mavencentral/org.javassist/javassist/3.28.0-GA, Apache-2.0 OR LGPL-2.1-or-later OR MPL-1.1, approved, #327
-maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-common/1.4.0, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.4.10, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.4.10, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib/1.4.10, Apache-2.0, approved, clearlydefined
+maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-common/1.8.21, Apache-2.0, approved, #8910
+maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.8.21, Apache-2.0, approved, #8807
+maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.8.21, Apache-2.0, approved, #8919
+maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib/1.8.21, Apache-2.0, approved, #8865
maven/mavencentral/org.jetbrains/annotations/13.0, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.junit.jupiter/junit-jupiter-api/5.9.0, EPL-2.0, approved, #3133
-maven/mavencentral/org.junit.jupiter/junit-jupiter-engine/5.9.0, EPL-2.0, approved, #3125
+maven/mavencentral/org.junit.jupiter/junit-jupiter-api/5.10.2, EPL-2.0, approved, #9714
+maven/mavencentral/org.junit.jupiter/junit-jupiter-engine/5.10.2, EPL-2.0, approved, #9711
maven/mavencentral/org.junit.jupiter/junit-jupiter-params/5.9.2, EPL-2.0, approved, #3134
-maven/mavencentral/org.junit.platform/junit-platform-commons/1.9.0, EPL-2.0, approved, #3130
-maven/mavencentral/org.junit.platform/junit-platform-engine/1.9.0, EPL-2.0, approved, #3128
-maven/mavencentral/org.opentest4j/opentest4j/1.2.0, Apache-2.0, approved, clearlydefined
-maven/mavencentral/org.ow2.asm/asm/9.3, BSD-3-Clause, approved, clearlydefined
+maven/mavencentral/org.junit.platform/junit-platform-commons/1.10.2, EPL-2.0, approved, #9715
+maven/mavencentral/org.junit.platform/junit-platform-engine/1.10.2, EPL-2.0, approved, #9709
+maven/mavencentral/org.opentest4j/opentest4j/1.3.0, Apache-2.0, approved, #9713
+maven/mavencentral/org.ow2.asm/asm/9.6, BSD-3-Clause, approved, #10776
maven/mavencentral/org.reflections/reflections/0.10.2, Apache-2.0 AND WTFPL, approved, clearlydefined
-maven/mavencentral/org.slf4j/jcl-over-slf4j/1.7.36, Apache-2.0, approved, CQ12843
-maven/mavencentral/org.slf4j/slf4j-api/2.0.7, MIT, approved, #5915
-maven/mavencentral/org.slf4j/slf4j-simple/1.7.30, MIT, approved, CQ7952
-maven/mavencentral/org.sonatype.plexus/plexus-cipher/1.4, Apache-2.0, approved, CQ4600
-maven/mavencentral/org.sonatype.plexus/plexus-sec-dispatcher/1.4, Apache-2.0, approved, CQ16491
+maven/mavencentral/org.roaringbitmap/RoaringBitmap/1.0.5, Apache-2.0, approved, clearlydefined
+maven/mavencentral/org.skyscreamer/jsonassert/1.5.1, Apache-2.0, approved, clearlydefined
+maven/mavencentral/org.slf4j/jcl-over-slf4j/2.0.7, MIT AND Apache-2.0, approved, #11889
+maven/mavencentral/org.slf4j/slf4j-api/2.0.12, MIT, approved, #5915
+maven/mavencentral/org.yaml/snakeyaml/2.1, Apache-2.0, approved, #9847
diff --git a/NOTICE.md b/NOTICE.md
index 19a4d43..2b18447 100644
--- a/NOTICE.md
+++ b/NOTICE.md
@@ -1,7 +1,7 @@
-# conforming-agent
+# aas-bridge
-![Version: 1.9.6-SNAPSHOT](https://img.shields.io/badge/Version-1.9.6--SNAPSHOT-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.9.5-SNAPSHOT](https://img.shields.io/badge/AppVersion-1.9.5--SNAPSHOT-informational?style=flat-square)
+![Version: 0.13.6-SNAPSHOT](https://img.shields.io/badge/Version-0.13.6--SNAPSHOT-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.13.6-SNAPSHOT](https://img.shields.io/badge/AppVersion-0.13.6--SNAPSHOT-informational?style=flat-square)
-A Helm chart for the Tractus-X Conforming Agent which is a container to assess the conformity of all other parts of the Agent-Enabled Dataspace.
+A Helm chart for the Tractus-X Knowledge Agents AAS Bridge which is a container to provide an AAS server/registry on top of a knowledge graph/SPARQL landscape.
This chart has no prerequisites.
-**Homepage:**
+**Homepage:**
## TL;DR
```shell
$ helm repo add eclipse-tractusx https://eclipse-tractusx.github.io/charts/dev
-$ helm install my-release eclipse-tractusx/conforming-agent --version 1.9.6-SNAPSHOT
+$ helm install my-release eclipse-tractusx/aas-bridge --version 0.13.6-SNAPSHOT
```
## Maintainers
@@ -42,17 +43,20 @@ $ helm install my-release eclipse-tractusx/conforming-agent --version 1.9.6-SNAP
## Source Code
-*
+*
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
+| aas.endpoints.default.auth | object | `{}` | An auth object for default security |
+| aas.endpoints.default.path | string | `""` | The path mapping the "default" api is going to be exposed by |
+| aas.endpoints.default.port | string | `"8443"` | The network port, which the "default" api is going to be exposed by the container, pod and service |
+| aas.endpoints.default.regex | string | `""` | An optional regex path match (whose match groups could be used in an nginx-annotation of the ingress) |
+| aas.persistence.auth.key | string | `"Basic "` | The key that should be used in the authorization header when talking to the sparql server |
+| aas.persistence.log | bool | `false` | whether the results of the queries should be logged |
+| aas.persistence.sparql | string | `"http://sparql.local"` | The default sparql server is embedded |
| affinity | object | `{}` | [Affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) constrains which nodes the Pod can be scheduled on based on node labels. |
-| agent.endpoints.default.auth | object | `{}` | An auth object for default security |
-| agent.endpoints.default.path | string | `""` | The path mapping the "default" api is going to be exposed by |
-| agent.endpoints.default.port | string | `"8080"` | The network port, which the "default" api is going to be exposed by the container, pod and service |
-| agent.endpoints.default.regex | string | `"/(.*)"` | An optional regex path match (whose match groups could be used in an nginx-annotation of the ingress) |
| automountServiceAccountToken | bool | `false` | Whether to [automount kubernetes API credentials](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server) into the pod |
| autoscaling.enabled | bool | `false` | Enables [horizontal pod autoscaling](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) |
| autoscaling.maxReplicas | int | `100` | Maximum replicas if resource consumption exceeds resource threshholds |
@@ -60,14 +64,14 @@ $ helm install my-release eclipse-tractusx/conforming-agent --version 1.9.6-SNAP
| autoscaling.targetCPUUtilizationPercentage | int | `80` | targetAverageUtilization of cpu provided to a pod |
| autoscaling.targetMemoryUtilizationPercentage | int | `80` | targetAverageUtilization of memory provided to a pod |
| customLabels | object | `{}` | Additional custom Labels to add |
-| env | object | `{}` | Container environment variables e.g. for configuring [JAVA_TOOL_OPTIONS](https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/envvars002.html) Ex.: JAVA_TOOL_OPTIONS: > -Dhttp.proxyHost=proxy -Dhttp.proxyPort=80 -Dhttp.nonProxyHosts="localhost|127.*|[::1]" -Dhttps.proxyHost=proxy -Dhttps.proxyPort=443 |
+| env | object | `{}` | Container environment variables e.g. for configuring [JAVA_TOOL_OPTIONS](https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/envvars002.html) Ex.: JAVA_TOOL_OPTIONS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:4040" |
| envSecretName | string | `nil` | [Kubernetes Secret Resource](https://kubernetes.io/docs/concepts/configuration/secret/) name to load environment variables from |
| fullnameOverride | string | `""` | Overrides the releases full name |
-| image.digest | string | `""` | Overrides the image digest |
+| image.digest | string | `""` | Overrides the image digest |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.pullSecrets | list | `[]` | |
-| image.registry | string | `"docker.io"` | target regirtry |
-| image.repository | string | `"tractusx/conforming-agent"` | Which derivate of agent to use |
+| image.registry | string | `"docker.io/"` | target registry |
+| image.repository | string | `"tractusx/aas-bridge"` | Which derivate of agent to use |
| image.tag | string | `""` | Overrides the image tag whose default is the chart appVersion |
| ingresses[0].annotations | string | `nil` | Additional ingress annotations to add, for example when implementing more complex routings you may set { nginx.ingress.kubernetes.io/rewrite-target: /$1, nginx.ingress.kubernetes.io/use-regex: "true" } |
| ingresses[0].certManager.clusterIssuer | string | `""` | If preset enables certificate generation via cert-manager cluster-wide issuer |
@@ -75,17 +79,18 @@ $ helm install my-release eclipse-tractusx/conforming-agent --version 1.9.6-SNAP
| ingresses[0].className | string | `""` | Defines the [ingress class](https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class) to use |
| ingresses[0].enabled | bool | `false` | |
| ingresses[0].endpoints | list | `["default"]` | Agent endpoints exposed by this ingress resource |
-| ingresses[0].hostname | string | `"conforming-agent.local"` | The hostname to be used to precisely map incoming traffic onto the underlying network service |
+| ingresses[0].hostname | string | `"aas-bridge.local"` | The hostname to be used to precisely map incoming traffic onto the underlying network service |
| ingresses[0].prefix | string | `""` | Optional prefix that will be prepended to the paths of the endpoints |
| ingresses[0].tls | object | `{"enabled":false,"secretName":""}` | TLS [tls class](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls) applied to the ingress resource |
| ingresses[0].tls.enabled | bool | `false` | Enables TLS on the ingress resource |
| ingresses[0].tls.secretName | string | `""` | If present overwrites the default secret name |
| livenessProbe.enabled | bool | `true` | Whether to enable kubernetes [liveness-probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) |
| livenessProbe.failureThreshold | int | `3` | Minimum consecutive failures for the probe to be considered failed after having succeeded |
-| livenessProbe.periodSeconds | int | `60` | Number of seconds each period lasts. |
+| livenessProbe.periodSeconds | int | `60` | Number of seconds each period lasts. |
| livenessProbe.timeoutSeconds | int | `5` | number of seconds until a timeout is assumed |
| nameOverride | string | `""` | Overrides the charts name |
| nodeSelector | object | `{}` | [Node-Selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) to constrain the Pod to nodes with specific labels. |
+| opentelemetry | string | `"otel.javaagent.enabled=false\notel.javaagent.debug=false"` | configuration of the [Open Telemetry Agent](https://opentelemetry.io/docs/instrumentation/java/automatic/agent-config/) to collect and expose metrics |
| podAnnotations | object | `{}` | [Annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) added to deployed [pods](https://kubernetes.io/docs/concepts/workloads/pods/) |
| podSecurityContext.fsGroup | int | `30000` | The owner for volumes and any files created within volumes will belong to this guid |
| podSecurityContext.runAsGroup | int | `30000` | Processes within a pod will belong to this guid |
@@ -93,10 +98,10 @@ $ helm install my-release eclipse-tractusx/conforming-agent --version 1.9.6-SNAP
| podSecurityContext.seccompProfile.type | string | `"RuntimeDefault"` | Restrict a Container's Syscalls with seccomp |
| readinessProbe.enabled | bool | `true` | Whether to enable kubernetes readiness-probes |
| readinessProbe.failureThreshold | int | `3` | Minimum consecutive failures for the probe to be considered failed after having succeeded |
-| readinessProbe.periodSeconds | int | `300` | Number of seconds each period lasts. |
+| readinessProbe.periodSeconds | int | `300` | Number of seconds each period lasts. |
| readinessProbe.timeoutSeconds | int | `5` | number of seconds until a timeout is assumed |
| replicaCount | int | `1` | Specifies how many replicas of a deployed pod shall be created during the deployment Note: If horizontal pod autoscaling is enabled this setting has no effect |
-| resources | object | `{"limits":{"cpu":"400m","memory":"256Mi"},"requests":{"cpu":"200m","memory":"256Mi"}}` | [Resource management](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) applied to the deployed pod We recommend 20% of a cpu and 256MB per endpoint |
+| resources | object | `{"limits":{"cpu":"400m","memory":"1Gi"},"requests":{"cpu":"400m","memory":"1Gi"}}` | [Resource management](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) applied to the deployed pod We recommend 40% of a cpu and unfortunately 1Gi to initialise the library |
| securityContext.allowPrivilegeEscalation | bool | `false` | Controls [Privilege Escalation](https://kubernetes.io/docs/concepts/security/pod-security-policy/#privilege-escalation) enabling setuid binaries changing the effective user ID |
| securityContext.capabilities.add | list | `["NET_BIND_SERVICE"]` | Specifies which capabilities to add to issue specialized syscalls |
| securityContext.capabilities.drop | list | `["ALL"]` | Specifies which capabilities to drop to reduce syscall attack surface |
@@ -109,11 +114,11 @@ $ helm install my-release eclipse-tractusx/conforming-agent --version 1.9.6-SNAP
| serviceAccount.create | bool | `true` | Specifies whether a [service account](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/) should be created per release |
| serviceAccount.name | string | `""` | The name of the service account to use. If not set and create is true, a name is generated using the release's fullname template |
| startupProbe.enabled | bool | `true` | Whether to enable kubernetes startup-probes |
-| startupProbe.failureThreshold | int | `18` | Minimum consecutive failures for the probe to be considered failed after having succeeded |
+| startupProbe.failureThreshold | int | `4` | Minimum consecutive failures for the probe to be considered failed after having succeeded |
| startupProbe.initialDelaySeconds | int | `60` | Number of seconds after the container has started before liveness probes are initiated. |
-| startupProbe.periodSeconds | int | `30` | Number of seconds each period lasts. |
+| startupProbe.periodSeconds | int | `30` | Number of seconds each period lasts. |
| startupProbe.timeoutSeconds | int | `5` | number of seconds until a timeout is assumed |
| tolerations | list | `[]` | [Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) are applied to Pods to schedule onto nodes with matching taints. |
----------------------------------------------
-Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0)
+Autogenerated from chart metadata using [helm-docs v1.11.2](https://github.com/norwoodj/helm-docs/releases/v1.11.2)
diff --git a/charts/aas-bridge/templates/NOTES.txt b/charts/aas-bridge/templates/NOTES.txt
index 1bca5fb..d16e9ba 100644
--- a/charts/aas-bridge/templates/NOTES.txt
+++ b/charts/aas-bridge/templates/NOTES.txt
@@ -57,12 +57,12 @@ Get the application URL by running these commands:
export CONTAINER_PORT_DEFAULT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
- echo "Visit http://127.0.0.1:8080 to access the default api"
+ echo "Visit http://127.0.0.1:8443 to access the default api"
echo "Visit http://127.0.0.1:8185 to access the public data transfer api"
echo "Visit http://127.0.0.1:9999 to access the control api"
echo "Visit http://127.0.0.1:9090 to access the metrics api"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME \
- 8080:$CONTAINER_PORT_DEFAULT
+ 8443:$CONTAINER_PORT_DEFAULT
{{- end }}
diff --git a/charts/aas-bridge/templates/deployment.yaml b/charts/aas-bridge/templates/deployment.yaml
index 9d95869..a782af0 100644
--- a/charts/aas-bridge/templates/deployment.yaml
+++ b/charts/aas-bridge/templates/deployment.yaml
@@ -61,7 +61,8 @@ spec:
{{- if .Values.livenessProbe.enabled }}
livenessProbe:
httpGet:
- path: /serialization?includeConceptDescriptions=true
+ scheme: HTTPS
+ path: /api/v3.0/description
port: default
failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
@@ -70,7 +71,8 @@ spec:
{{- if .Values.readinessProbe.enabled }}
readinessProbe:
httpGet:
- path: /serialization?includeConceptDescriptions=true
+ scheme: HTTPS
+ path: /api/v3.0/description
port: default
failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
@@ -79,7 +81,8 @@ spec:
{{- if .Values.startupProbe.enabled }}
startupProbe:
httpGet:
- path: /serialization?includeConceptDescriptions=true
+ scheme: HTTPS
+ path: /api/v3.0/description
port: default
failureThreshold: {{ .Values.startupProbe.failureThreshold }}
periodSeconds: {{ .Values.startupProbe.periodSeconds }}
diff --git a/charts/aas-bridge/values.yaml b/charts/aas-bridge/values.yaml
index 4de9a02..c3a1e38 100644
--- a/charts/aas-bridge/values.yaml
+++ b/charts/aas-bridge/values.yaml
@@ -156,13 +156,13 @@ aas:
## Default api exposing health checks etc
default:
# -- The network port, which the "default" api is going to be exposed by the container, pod and service
- port: "8080"
+ port: "8443"
# -- An auth object for default security
auth: {}
# -- The path mapping the "default" api is going to be exposed by
path: ""
# -- An optional regex path match (whose match groups could be used in an nginx-annotation of the ingress)
- regex: /(.*)
+ regex: ""
service:
# -- [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) to expose the running application on a set of Pods as a network service.
@@ -179,6 +179,7 @@ ingresses:
# Example if you want more complex routings in interplay with the endpoints regex property
# nginx.ingress.kubernetes.io/rewrite-target: /$1
# nginx.ingress.kubernetes.io/use-regex: "true"
+ # nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
# -- Optional prefix that will be prepended to the paths of the endpoints
prefix: ""
# -- Agent endpoints exposed by this ingress resource
diff --git a/charts/config/chart-testing-config.yaml b/charts/config/chart-testing-config.yaml
index ad1cdb5..cc52918 100644
--- a/charts/config/chart-testing-config.yaml
+++ b/charts/config/chart-testing-config.yaml
@@ -1,6 +1,6 @@
+# Copyright (c) 2023,2024 T-Systems International GmbH
# Copyright (c) 2023 SAP SE
-# Copyright (c) 2023 T-Systems International GmbH
-# Copyright (c) 2022, 2023 Contributors to the Eclipse Foundation
+# Copyright (c) 2022,2024 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
diff --git a/kind.config.yaml b/kind.config.yaml
new file mode 100644
index 0000000..ff07219
--- /dev/null
+++ b/kind.config.yaml
@@ -0,0 +1,35 @@
+# Copyright (c) 2024 T-Systems International GmbH
+#
+#
+# See the NOTICE file(s) distributed with this work for additional
+# information regarding copyright ownership.
+#
+# This program and the accompanying materials are made available under the
+# terms of the Apache License, Version 2.0 which is available 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+---
+kind: Cluster
+apiVersion: kind.x-k8s.io/v1alpha4
+nodes:
+ - role: control-plane
+ kubeadmConfigPatches:
+ - |
+ kind: InitConfiguration
+ nodeRegistration:
+ kubeletExtraArgs:
+ node-labels: "ingress-ready=true"
+ extraPortMappings:
+ - containerPort: 80
+ hostPort: 80
+ protocol: TCP
+ - containerPort: 443
+ hostPort: 443
+ protocol: TCP
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index c5e1d4b..81ba4e0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,9 +1,9 @@
UTF-8
- 3.1.0
- 5.3.28
- 2.7.13
- 32.0.1-jre
- 9.0.78
- 4.1.94.Final
- 9.4.51.v20230217
- 2.0
- 1.1.10.2
- 42.6.0
tractusx/
linux/amd64
@@ -94,10 +78,28 @@
+
+ org.eclipse.dash
+ license-tool-plugin
+ 1.1.1-SNAPSHOT
+
+ automotive.tractusx
+ DEPENDENCIES
+ test
+
+
+
+ license-check
+
+ license-check
+
+
+
+
org.apache.maven.plugins
maven-surefire-plugin
- 3.1.0
+ 3.2.5
!online
@@ -131,6 +133,10 @@
${platform}
-f
src/main/docker/Dockerfile
+ --build-arg
+ JAR=target/${project.artifactId}.jar
+ --build-arg
+ LIB=target/lib
-t
${repo}${project.artifactId}:${project.version}
.
@@ -175,14 +181,29 @@
maven-jar-plugin
2.4
+
+ com.diffplug.spotless
+ spotless-maven-plugin
+ 2.42.0
+
+
+ format
+ process-sources
+
+ check
+ apply
+
+
+
+
org.apache.maven.plugins
maven-checkstyle-plugin
3.3.0
- ${session.executionRootDirectory}/resources/tx-checkstyle-config.xml
+ ${project.basedir}/../resources/tx-checkstyle-config.xml
- config_loc=${session.executionRootDirectory}/resources
+ config_loc=${project.basedir}/../resources
true
true
@@ -198,24 +219,6 @@
-
- org.eclipse.dash
- license-tool-plugin
- 0.0.1-SNAPSHOT
-
- automotive.tractusx
- DEPENDENCIES
- test
-
-
-
- license-check
-
- license-check
-
-
-
-
@@ -226,12 +229,18 @@
Maven Central
https://repo1.maven.org/maven2
-
- aas4j
- https://maven.pkg.github.com/arnoweiss/aas4j-transformation-library
-
+
+
+ dash-licenses-snapshots
+ https://repo.eclipse.org/content/repositories/dash-licenses-snapshots/
+
+ true
+
+
+
+
github
diff --git a/resources/tx-checkstyle-config.xml b/resources/tx-checkstyle-config.xml
index 6639a82..cdce348 100644
--- a/resources/tx-checkstyle-config.xml
+++ b/resources/tx-checkstyle-config.xml
@@ -1,24 +1,3 @@
-
-
org.eclipse.tractusx.agents
aas
- 0.10.5-SNAPSHOT
+ 0.13.6-SNAPSHOT
../pom.xml
@@ -126,28 +126,18 @@
de.fraunhofer.iosb.ilt.faaast.service
starter
- 0.5.0
+ ${faaast.version}
org.eclipse.rdf4j
rdf4j-queryresultio-sparqlxml
- 4.1.0
+ ${rdf4j.version}
org.junit.jupiter
junit-jupiter-engine
test
-
- io.admin-shell.aas
- model
- 1.2.0
-
-
- org.eclipse.digitaltwin.aas4j
- aas4j-transformation-library
- 0.1.4-SNAPSHOT
-
org.dom4j
dom4j
@@ -156,7 +146,7 @@
com.squareup.okhttp3
mockwebserver
- 4.9.0
+ ${okhttp.version}
test
diff --git a/sparql-aas/resources/results.xsd b/sparql-aas/resources/results.xsd
new file mode 100644
index 0000000..d1a235e
--- /dev/null
+++ b/sparql-aas/resources/results.xsd
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sparql-aas/resources/sparqlResponseXml/-244431762-sparql-results.xml b/sparql-aas/resources/sparqlResponseXml/-244431762-sparql-results.xml
index f6d27fb..535b8da 100644
--- a/sparql-aas/resources/sparqlResponseXml/-244431762-sparql-results.xml
+++ b/sparql-aas/resources/sparqlResponseXml/-244431762-sparql-results.xml
@@ -1,3 +1,4 @@
+
-
diff --git a/sparql-aas/resources/sparqlResponseXml/1831539277-sparql-results.xml b/sparql-aas/resources/sparqlResponseXml/1831539277-sparql-results.xml
index 7b0e05f..26323a7 100644
--- a/sparql-aas/resources/sparqlResponseXml/1831539277-sparql-results.xml
+++ b/sparql-aas/resources/sparqlResponseXml/1831539277-sparql-results.xml
@@ -1,6 +1,7 @@
+
-
-
diff --git a/sparql-aas/resources/sparqlResponseXml/2122165671-sparql-results.xml b/sparql-aas/resources/sparqlResponseXml/2122165671-sparql-results.xml
index b18634b..16e915c 100644
--- a/sparql-aas/resources/sparqlResponseXml/2122165671-sparql-results.xml
+++ b/sparql-aas/resources/sparqlResponseXml/2122165671-sparql-results.xml
@@ -1,3 +1,4 @@
+
-
-
diff --git a/sparql-aas/resources/sparqlResponseXml/partAsPlanned2-sparql-results.xml b/sparql-aas/resources/sparqlResponseXml/partAsPlanned2-sparql-results.xml
new file mode 100644
index 0000000..a12a141
--- /dev/null
+++ b/sparql-aas/resources/sparqlResponseXml/partAsPlanned2-sparql-results.xml
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ urn:uuid:f5efbf45-7d84-4442-b3b8-05cf1c5c5a0b
+
+
+ 2014-02-24
+
+
+ 2027-11-04
+
+
+ product
+
+
+ 5760234-23
+
+
+ Tier C Piston Rod
+
+
+
+
+ urn:uuid:f5efbf45-7d84-4442-b3b8-05cf1c5c5a0b
+
+
+ 2024-07-18
+
+
+ 2024-05-29
+
+
+ product
+
+
+ 123564887-02
+
+
+ Tire Model A (Modified)
+
+
+
+
+ urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e
+
+
+ 2017-01-03
+
+
+ 2029-11-15
+
+
+ product
+
+
+ ZX-55
+
+
+ Vehicle Model A
+
+
+
+
\ No newline at end of file
diff --git a/sparql-aas/resources/traceability/aas-mapping.xslt b/sparql-aas/resources/traceability/aas-mapping.xslt
new file mode 100644
index 0000000..bc04c74
--- /dev/null
+++ b/sparql-aas/resources/traceability/aas-mapping.xslt
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+ /
+
+
+
+
+
+
+
+
+
+ Instance
+
+
+
+
+ en
+
+
+
+
+
+
+ ExternalReference
+
+
+ Submodel
+ //
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sparql-aas/resources/traceability/partAsPlanned-mapping.xslt b/sparql-aas/resources/traceability/partAsPlanned-mapping.xslt
new file mode 100644
index 0000000..5eb0c82
--- /dev/null
+++ b/sparql-aas/resources/traceability/partAsPlanned-mapping.xslt
@@ -0,0 +1,291 @@
+
+
+
+
+
+
+
+ /
+
+
+ //
+
+
+
+
+
+
+
+
+
+
+ Instance
+
+
+
+
+
+ ExternalReference
+
+
+ Submodel
+
+
+
+
+
+
+
+
+
+
+
+
+ Instance
+
+ ModelReference
+
+
+ ConceptDescription
+
+
+
+
+
+ PartAsPlanned
+
+
+ en
+ A Part AsPlanned represents an item in the Catena-X Bill of Material (BOM) in As-Planned lifecycle status.
+
+
+
+
+ Key
+ catenaXId
+
+
+ en
+ The fully anonymous Catena-X ID of the serialized part, valid for the Catena-X dataspace.
+
+
+
+
+ en
+ Catena-X Identifier
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.part_as_planned:1.0.1#catenaXId
+
+
+
+ xs:string
+
+
+
+ partTypeInformation
+
+
+ en
+ Encapsulation for data related to the part type
+
+
+
+
+ en
+ Part Type Information Entity
+
+
+
+
+ Key
+ manufacturerPartId
+
+
+ en
+ Part ID as assigned by the manufacturer of the part. The Part ID identifies the part (as designed) in the manufacturer`s dataspace. The Part ID does not reference a specific instance of a part and thus should not be confused with the serial number.
+
+
+
+
+ en
+ Manufacturer Part ID
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.part_as_planned:1.0.1#manufacturerPartId
+
+
+
+ xs:string
+
+
+
+ Value
+ nameAtManufacturer
+
+
+ en
+ Name of the part as assigned by the manufacturer.
+
+
+
+
+ en
+ Name at Manufacturer
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.part_as_planned:1.0.1#nameAtManufacturer
+
+
+
+ xs:string
+
+
+
+ Enum
+ classification
+
+
+ en
+ Classification of the part as assigned by the manufacturer.
+
+
+
+
+ en
+ Product Classification
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.part_as_planned:1.0.1#classification
+
+
+
+ xs:string
+
+
+
+
+
+ validityPeriod
+
+
+ en
+ Temporal validity period of the part.
+
+
+
+
+ en
+ validityPeriod
+
+
+
+
+ Time
+ validFrom
+
+
+ en
+ Start date of validity period.
+
+
+
+
+ en
+ Valid From
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.part_as_planned:1.0.1#validFrom
+
+
+
+ xs:dateTime
+
+
+
+ Time
+ validFrom
+
+
+ en
+ End date of validity period.
+
+
+
+
+ en
+ Valid To
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.part_as_planned:1.0.1#validTo
+
+
+
+ xs:dateTime
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sparql-aas/resources/traceability/partSiteInformation-mapping.xslt b/sparql-aas/resources/traceability/partSiteInformation-mapping.xslt
new file mode 100644
index 0000000..6aa88e8
--- /dev/null
+++ b/sparql-aas/resources/traceability/partSiteInformation-mapping.xslt
@@ -0,0 +1,357 @@
+
+
+
+
+
+
+
+ /
+
+
+ //
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Instance
+
+
+
+
+
+
+ ExternalReference
+
+
+ Submodel
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Instance
+
+ ModelReference
+
+
+ ConceptDescription
+
+
+
+
+
+
+
+
+
+ PartSiteInformationAsPlanned
+
+
+ en
+ The aspect provides site related information for a given as planned item (i.e.
+ a part type or part instance that is uniquely identifiable within Catena-X via its
+ Catena-X ID). A site is a delimited geographical area where a legal entity does
+ business. In the "as planned" lifecycle context all potentially related sites are
+ listed including all sites where e.g. production of this part (type) is planned.
+
+
+
+
+
+ Key
+ catenaXId
+
+
+ en
+ The Catena-X ID of the given item (i.e. a part type or part instance),
+ valid for the Catena-X dataspace.
+
+
+
+
+
+ en
+ Catena-X Identifier
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+
+ urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#catenaXId
+
+
+
+
+ xs:string
+
+
+
+
+
+ sites
+
+
+ en
+ A site is a delimited geographical area where a legal entity does
+ business (geographical address with geo coordinates).A site always has a
+ primary physical address. It is possible that further physical addresses are
+ specified for the site. P.O. box details are only possible in addition to
+ the physical address. A site has a 1:n relation to addresses, means at least
+ 1 address is necessary and multiple addresses are possible.
+
+
+
+
+
+ en
+ Sites
+
+
+
+
+
+ SiteEntity/
+
+
+
+ en
+ Catena-X Site ID and meta data of the site entity.
+
+
+
+
+
+ en
+ Site Entity
+
+
+
+
+ Key
+ catenaXsiteId
+
+
+ en
+ The identifier of the site according to Catena-X
+ BPDM. The catenaXsiteId must be a valid Catena-X BPN.
+ The BPN is a unique, unchangeable identifier for
+ Business Partners / company locations from foundation to
+ closure, regardless of the different business
+ relationships / structures between or within the
+ Business Partners or company locations.
+
+
+
+
+
+ en
+ Catena-X Site Identitfier
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+
+ urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#catenaXsiteId
+
+
+
+
+ xs:string
+
+
+
+
+
+
+
+
+ Key
+ function
+
+
+ en
+ The function of the site in relation to the part
+ (i.e. the activity within the value chain of the part
+ that is performed at the site)
+
+
+
+
+
+ en
+ Catena-X Site Identitfier
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+
+ urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#function
+
+
+
+
+ xs:string
+
+
+
+
+
+ Time
+ functionValidFrom
+
+
+ en
+ Timestamp, from when the site has the specified
+ function for the given part
+
+
+
+
+
+ en
+ Function valid from
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+
+ urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#functionValidFrom
+
+
+
+
+ xs:dateTime
+
+
+
+
+
+ Time
+ functionValidUntil
+
+
+ en
+ Timestamp, until when the site has the specified
+ function for the given part
+
+
+
+
+
+ en
+ Function Valid Until
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+
+ urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#functionValidUntil
+
+
+
+
+ xs:dateTime
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sparql-aas/resources/traceability/singleLevelBomAsPlanned-mapping.xslt b/sparql-aas/resources/traceability/singleLevelBomAsPlanned-mapping.xslt
new file mode 100644
index 0000000..6a2c717
--- /dev/null
+++ b/sparql-aas/resources/traceability/singleLevelBomAsPlanned-mapping.xslt
@@ -0,0 +1,362 @@
+
+
+
+
+
+
+
+ /
+
+
+ //
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Instance
+
+
+
+
+ ExternalReference
+
+
+ Submodel
+
+
+
+
+
+
+
+
+
+
+
+ Instance
+
+ ModelReference
+
+
+ ConceptDescription
+
+
+
+
+
+ SingleLevelBomAsPlanned
+
+
+ en
+ The single-level Bill of Material represents one sub-level of an assembly and does not include any lower-level subassemblies. In As-Planned lifecycle state all variants are covered ("120% BoM").
+ If multiple versions of child parts exist that can be assembled into the same parent part, all versions of the child part are included in the BoM.
+ If there are multiple suppliers for the same child part, each supplier has an entry for their child part in the BoM.
+
+
+
+
+ Key
+ catenaXId
+
+
+ en
+ The Catena-X ID of the given part (e.g. the component), valid for the Catena-X dataspace.
+
+
+
+
+ en
+ Catena-X Identifier
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.part_as_planned:1.0.1#catenaXId
+
+
+
+ xs:string
+
+
+
+ childItems
+
+
+ en
+ Set of child items in As-Planned lifecycle phase, of which the given parent object is assembled by (one structural level down).
+
+
+
+
+ en
+ Child Items
+
+
+
+
+
+ ChildItem/
+
+
+ en
+ Catena-X ID and meta data of the child item.
+
+
+
+
+ en
+ Child Item
+
+
+
+
+ Key
+ childCatenaXId
+
+
+ en
+ The Catena-X ID of the child object which is assembled into the given parent part.
+
+
+
+
+ en
+ Catena-X Child ID
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#childCatenaXId
+
+
+
+ xs:string
+
+
+
+ Key
+ businessPartner
+
+
+ en
+ Business Partner Number of the Legal Entity Supplying the Child Item.
+
+
+
+
+ en
+ Catena-X Business Partner
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#businessPartner
+
+
+
+ xs:string
+
+
+
+
+
+
+
+
+ Time
+ createdOn
+
+
+ en
+ Timestamp when the relation between the parent part and the child item was created.
+
+
+
+
+ en
+ Created on
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#createdOn
+
+
+
+ xs:dateTime
+
+
+
+ Time
+ lastModifiedOn
+
+
+ en
+ Timestamp when the relationship between parent part and child part was last modified.
+
+
+
+
+ en
+ Last Modified on
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#lastModifiedOn
+
+
+
+ xs:dateTime
+
+
+
+ Quantity/
+
+
+ en
+ Comprises the number of objects and the unit of measurement for the respective child objects
+
+
+
+
+ en
+ Quantity
+
+
+
+
+ Value
+ quantityNumber
+
+
+ en
+ The number of objects related to the measurement unit.
+
+
+
+
+ en
+ Quantity Number
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#quantityNumber
+
+
+
+ xs:double
+
+
+
+ Value
+ measurementUnit
+
+
+ en
+ Unit of measurement for the quantity of objects.
+ If possible, use units from the aspect meta model unit catalog, which is based on the UNECE Recommendation No. 20 "Codes for Units of Measure used in International Trade".
+
+
+
+
+ en
+ Measurement Unit
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#measurementUnit
+
+
+
+ xs:string
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sparql-aas/resources/traceability/singleLevelUsageAsPlanned-mapping.xslt b/sparql-aas/resources/traceability/singleLevelUsageAsPlanned-mapping.xslt
new file mode 100644
index 0000000..80679f1
--- /dev/null
+++ b/sparql-aas/resources/traceability/singleLevelUsageAsPlanned-mapping.xslt
@@ -0,0 +1,360 @@
+
+
+
+
+
+
+
+ /
+
+
+ //
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Instance
+
+
+
+
+ ExternalReference
+
+
+ Submodel
+
+
+
+
+
+
+
+
+
+
+
+ Instance
+
+ ModelReference
+
+
+ ConceptDescription
+
+
+
+
+
+ SingleLevelUsageAsPlanned
+
+
+ en
+ The single-level Bill of Material represents one level of assemblies and does not include any super-assemblies. In As-Planned lifecycle state all variants are covered ("120% BoM").
+
+
+
+
+ Key
+ catenaXId
+
+
+ en
+ The Catena-X ID of the given part (e.g. the component), valid for the Catena-X dataspace.
+
+
+
+
+ en
+ Catena-X Identifier
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.single_level_usage_as_planned:1.1.0#catenaXId
+
+
+
+ xs:string
+
+
+
+ parentParts
+
+
+ en
+ Set of parent parts in As-Planned lifecycle phase, into which the given child object is assembled into (one structural level up).
+
+
+
+
+ en
+ Parent Parts
+
+
+
+
+
+ ParentPart/
+
+
+ en
+ Catena-X ID and meta data of the parent item.
+
+
+
+
+ en
+ Parent Item
+
+
+
+
+ Key
+ parentCatenaXId
+
+
+ en
+ The Catena-X ID of the parent object into which the given child part is assembled into.
+
+
+
+
+ en
+ Catena-X Parent ID
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.single_level_usage_as_planned:1.1.0#parentCatenaXId
+
+
+
+ xs:string
+
+
+
+ Key
+ businessPartner
+
+
+ en
+ Business Partner Number of the Legal Entity Assemblying the Parent Item.
+
+
+
+
+ en
+ Catena-X Business Partner
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.single_level_usage_as_planned:1.1.0#businessPartner
+
+
+
+ xs:string
+
+
+
+
+
+
+
+
+ Time
+ createdOn
+
+
+ en
+ Timestamp when the relation between the parent part and the child item was created.
+
+
+
+
+ en
+ Created on
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.single_level_usage_as_planned:1.1.0#createdOn
+
+
+
+ xs:dateTime
+
+
+
+ Time
+ lastModifiedOn
+
+
+ en
+ Timestamp when the relationship between parent part and child part was last modified.
+
+
+
+
+ en
+ Last Modified on
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.single_level_usage_as_planned:1.1.0#lastModifiedOn
+
+
+
+ xs:dateTime
+
+
+
+ Quantity/
+
+
+ en
+ Comprises the number of objects and the unit of measurement for the respective child objects
+
+
+
+
+ en
+ Quantity
+
+
+
+
+ Value
+ quantityNumber
+
+
+ en
+ The number of objects related to the measurement unit.
+
+
+
+
+ en
+ Quantity Number
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.single_level_usage_as_planned:1.1.0#quantityNumber
+
+
+
+ xs:double
+
+
+
+ Value
+ measurementUnit
+
+
+ en
+ Unit of measurement for the quantity of objects.
+ If possible, use units from the aspect meta model unit catalog, which is based on the UNECE Recommendation No. 20 "Codes for Units of Measure used in International Trade".
+
+
+
+
+ en
+ Measurement Unit
+
+
+
+ ModelReference
+
+
+ ConceptDescription
+ urn:bamm:io.catenax.single_level_usage_as_planned:1.1.0#measurementUnit
+
+
+
+ xs:string
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sparql-aas/src/main/docker/Dockerfile b/sparql-aas/src/main/docker/Dockerfile
index 414d72b..c763eb4 100644
--- a/sparql-aas/src/main/docker/Dockerfile
+++ b/sparql-aas/src/main/docker/Dockerfile
@@ -1,6 +1,6 @@
+# Copyright (c) 2023,2024 T-Systems International GmbH
# Copyright (c) 2023 SAP SE
-# Copyright (c) 2023 T-Systems International GmbH
-# Copyright (c) 2023 Contributors to the Eclipse Foundation
+# Copyright (c) 2023,2024 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
@@ -17,19 +17,17 @@
#
# SPDX-License-Identifier: Apache-2.0
-FROM alpine:3.18.2 as otel
-ENV OTEL_AGENT_LOCATION "https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v1.12.1/opentelemetry-javaagent.jar"
+FROM alpine:3.19.0 AS otel
-HEALTHCHECK NONE
+ENV OTEL_AGENT_LOCATION "https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v1.27.0/opentelemetry-javaagent.jar"
-RUN wget ${OTEL_AGENT_LOCATION} -O /tmp/opentelemetry-javaagent.jar
+HEALTHCHECK NONE
-FROM eclipse-temurin:17-jre-alpine
+RUN apk update && apk add curl=8.5.0-r0 --no-cache
+RUN curl -L --proto "=https" -sSf ${OTEL_AGENT_LOCATION} --output /tmp/opentelemetry-javaagent.jar
-ARG JAR
-ARG LIB
-ARG RESOURCES resources
+FROM eclipse-temurin:22_36-jre-alpine
ARG APP_USER=faaast
ARG APP_UID=10100
@@ -69,7 +67,7 @@ COPY target/aas-bridge.jar aas-bridge.jar
COPY target/lib ./lib/
COPY resources ./resources/
-EXPOSE 8080
+EXPOSE 8443
HEALTHCHECK NONE
diff --git a/sparql-aas/src/main/java/org/eclipse/tractusx/agents/aasbridge/AasBridge.java b/sparql-aas/src/main/java/org/eclipse/tractusx/agents/aasbridge/AasBridge.java
index a910343..54d2910 100644
--- a/sparql-aas/src/main/java/org/eclipse/tractusx/agents/aasbridge/AasBridge.java
+++ b/sparql-aas/src/main/java/org/eclipse/tractusx/agents/aasbridge/AasBridge.java
@@ -26,8 +26,10 @@
import de.fraunhofer.iosb.ilt.faaast.service.exception.ConfigurationException;
import de.fraunhofer.iosb.ilt.faaast.service.exception.EndpointException;
import de.fraunhofer.iosb.ilt.faaast.service.exception.MessageBusException;
+import de.fraunhofer.iosb.ilt.faaast.service.filestorage.FileStorageConfig;
+import de.fraunhofer.iosb.ilt.faaast.service.filestorage.memory.FileStorageInMemoryConfig;
import de.fraunhofer.iosb.ilt.faaast.service.messagebus.internal.MessageBusInternalConfig;
-import io.adminshell.aas.v3.model.impl.DefaultAssetAdministrationShellEnvironment;
+import org.eclipse.digitaltwin.aas4j.v3.model.impl.DefaultEnvironment;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -56,7 +58,7 @@ public static void main(String[] args) throws ConfigurationException, AssetConne
mainLogger.debug("Built coreConfig {}", coreConfig);
PersistenceInKnowledgeConfig persistenceConfig = PersistenceInKnowledgeConfig.builder()
- .initialModel(new DefaultAssetAdministrationShellEnvironment.Builder().build())
+ .initialModel(new DefaultEnvironment.Builder().build())
.mappings(AasUtils.loadConfigsFromResources())
.threadPoolSize(5)
.timeoutSeconds(5)
@@ -67,7 +69,12 @@ public static void main(String[] args) throws ConfigurationException, AssetConne
mainLogger.debug("Built persistenceConfig {}", persistenceConfig);
- HttpEndpointConfig httpConfig = HttpEndpointConfig.builder().cors(true).build();
+ HttpEndpointConfig httpConfig = HttpEndpointConfig
+ .builder()
+ .cors(true)
+ .port(8443)
+ .sni(false)
+ .build();
mainLogger.debug("Built httpConfig {}", httpConfig);
@@ -75,9 +82,14 @@ public static void main(String[] args) throws ConfigurationException, AssetConne
mainLogger.debug("Built busConfig {}", busConfig);
+ FileStorageConfig fsConfig = FileStorageInMemoryConfig.builder().build();
+
+ mainLogger.debug("Built fsConfig {}", fsConfig);
+
ServiceConfig serviceConfig = ServiceConfig.builder()
.core(coreConfig)
.persistence(persistenceConfig)
+ .fileStorage(fsConfig)
.endpoint(httpConfig)
.messageBus(busConfig)
.build();
diff --git a/sparql-aas/src/main/java/org/eclipse/tractusx/agents/aasbridge/AasUtils.java b/sparql-aas/src/main/java/org/eclipse/tractusx/agents/aasbridge/AasUtils.java
index 638348f..904d674 100644
--- a/sparql-aas/src/main/java/org/eclipse/tractusx/agents/aasbridge/AasUtils.java
+++ b/sparql-aas/src/main/java/org/eclipse/tractusx/agents/aasbridge/AasUtils.java
@@ -18,26 +18,34 @@
// SPDX-License-Identifier: Apache-2.0
package org.eclipse.tractusx.agents.aasbridge;
-import io.adminshell.aas.v3.model.AssetAdministrationShell;
-import io.adminshell.aas.v3.model.AssetAdministrationShellEnvironment;
-import io.adminshell.aas.v3.model.impl.DefaultAssetAdministrationShellEnvironment;
-import org.eclipse.digitaltwin.aas4j.mapping.MappingSpecificationParser;
-import org.eclipse.digitaltwin.aas4j.mapping.model.MappingSpecification;
+import org.eclipse.digitaltwin.aas4j.v3.model.AssetAdministrationShell;
+import org.eclipse.digitaltwin.aas4j.v3.model.Environment;
+import org.eclipse.digitaltwin.aas4j.v3.model.impl.DefaultEnvironment;
import org.reflections.Configuration;
import org.reflections.Reflections;
import org.reflections.scanners.Scanners;
import org.reflections.util.ConfigurationBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
-import java.net.MalformedURLException;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamSource;
/**
* Helper logic to setup the configuration
@@ -56,70 +64,79 @@ public static Map> loadConfigsFromResources()
logger.info("About to load mapping configurations.");
File searchPath = new File("resources");
-
ConfigurationBuilder builder = new ConfigurationBuilder();
+
try {
- builder = builder.addUrls(searchPath.toURL());
- } catch (MalformedURLException e) {
- logger.warn("Could not build url.", e);
- }
- Configuration config = builder.setScanners(Scanners.Resources);
- Reflections reflections = new Reflections(config);
- Set files = reflections.getResources(Pattern.compile(".*-mapping\\.json"));
+ builder.addUrls(searchPath.toURL());
+ Configuration config = builder.setScanners(Scanners.Resources);
+ Reflections reflections = new Reflections(config);
+ Set files = reflections.getResources(Pattern.compile(".*-mapping\\.xslt"));
- logger.info("Scanning for *-mapping.json in resources folder found {}", files);
+ logger.info("Scanning for *-mapping.xslt in resources folder found {}", files);
- return files.stream()
- .map(relativePath -> {
- String[] components = relativePath.split("/");
- String mappingPath = searchPath.getPath() + "/" + relativePath;
- try {
- MappingSpecification spec = new MappingSpecificationParser().loadMappingSpecification(mappingPath);
- String semanticId = spec.getHeader().getNamespaces().get("semanticId");
- if (semanticId == null) {
- logger.warn("Mapping {} has no namespace called 'semanticId'. So it will not be accessible.", mappingPath);
- }
- File selectSomeFile = new File(mappingPath.split("-")[0] + "-select-some.rq");
- File selectAllFile = new File(mappingPath.split("-")[0] + "-select-all.rq");
- if (!selectSomeFile.exists() || !selectSomeFile.isFile()) {
- logger.warn("Bound select for mapping {} is not a valid file {}. Ignoring.", mappingPath, selectSomeFile);
- selectSomeFile = null;
- }
- if (!selectAllFile.exists() || !selectAllFile.isFile()) {
- logger.warn("Unbound select for mapping {} is not a valid file {}. Ignoring.", mappingPath, selectAllFile);
- selectAllFile = null;
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ final DocumentBuilder documentBuilder = dbf.newDocumentBuilder();
+
+ TransformerFactory tf = TransformerFactory.newInstance();
+
+ return files.stream()
+ .map(relativePath -> {
+ String[] components = relativePath.split("/");
+ String mappingPath = searchPath.getPath() + "/" + relativePath;
+ try {
+ Document styleSheet = documentBuilder.parse(new FileInputStream(mappingPath));
+ Transformer transformer = tf.newTransformer(new StreamSource(new FileInputStream(mappingPath)));
+ String semanticId = styleSheet.getDocumentElement().getAttribute("xmlns:semanticid");
+ if (semanticId.isEmpty()) {
+ logger.warn("Mapping {} has no namespace called 'semanticId'. So it will not be accessible.", mappingPath);
+ }
+ File selectSomeFile = new File(mappingPath.split("-")[0] + "-select-some.rq");
+ File selectAllFile = new File(mappingPath.split("-")[0] + "-select-all.rq");
+ if (!selectSomeFile.exists() || !selectSomeFile.isFile()) {
+ logger.warn("Bound select for mapping {} is not a valid file {}. Ignoring.", mappingPath, selectSomeFile);
+ selectSomeFile = null;
+ }
+ if (!selectAllFile.exists() || !selectAllFile.isFile()) {
+ logger.warn("Unbound select for mapping {} is not a valid file {}. Ignoring.", mappingPath, selectAllFile);
+ selectAllFile = null;
+ }
+ return new MappingConfiguration(
+ components[0],
+ transformer,
+ selectSomeFile,
+ selectAllFile,
+ semanticId
+ );
+ } catch (IOException | SAXException | IllegalArgumentException |
+ TransformerConfigurationException e) {
+ e.printStackTrace();
+ logger.warn(String.format("Could not read mapping specification in %s because of %s. Ignoring.", mappingPath, e));
+ return null;
}
- return new MappingConfiguration(
- components[0],
- spec,
- selectSomeFile,
- selectAllFile,
- semanticId
- );
- } catch (IOException e) {
- logger.warn("Could not read mapping specification in {} because of {}. Ignoring.", mappingPath, e);
- return null;
- }
- })
- .filter(conf -> conf != null)
- .collect(Collectors.groupingBy(MappingConfiguration::getDomain));
+ })
+ .filter(Objects::nonNull)
+ .collect(Collectors.groupingBy(MappingConfiguration::getDomain));
+ } catch (ParserConfigurationException | IOException e) {
+ logger.error("Could not load initial configuration..", e);
+ throw new RuntimeException(e);
+ }
}
- public static AssetAdministrationShellEnvironment mergeAasEnvs(Set aasEnvs) {
+ public static Environment mergeAasEnvs(Set aasEnvs) {
Set collect = aasEnvs.stream()
.flatMap(env -> env.getAssetAdministrationShells().stream())
.collect(Collectors.toSet());
Map> collect1 = collect.stream()
.collect(Collectors.groupingBy(aas ->
// TODO: if gaid not available, match for any said-k-v-pair
- aas.getAssetInformation().getGlobalAssetId().getKeys().get(0).getValue()));
- List mergedShells = collect1.values().stream().map(group ->
+ aas.getAssetInformation().getGlobalAssetId()));
+ List mergedShells = collect1.values().stream().flatMap(group ->
group.stream().reduce((aas1, aas2) -> {
aas1.getSubmodels().addAll(aas2.getSubmodels());
return aas1;
- }).get()).collect(Collectors.toList());
+ }).stream()).collect(Collectors.toList());
- return new DefaultAssetAdministrationShellEnvironment.Builder()
+ return new DefaultEnvironment.Builder()
.assetAdministrationShells(mergedShells)
.submodels(aasEnvs.stream().flatMap(env -> env.getSubmodels().stream()).collect(Collectors.toList()))
.conceptDescriptions(aasEnvs.stream().flatMap(env -> env.getConceptDescriptions().stream()).collect(Collectors.toList()))
diff --git a/sparql-aas/src/main/java/org/eclipse/tractusx/agents/aasbridge/MappingConfiguration.java b/sparql-aas/src/main/java/org/eclipse/tractusx/agents/aasbridge/MappingConfiguration.java
index 05e3a41..ebf9fd1 100644
--- a/sparql-aas/src/main/java/org/eclipse/tractusx/agents/aasbridge/MappingConfiguration.java
+++ b/sparql-aas/src/main/java/org/eclipse/tractusx/agents/aasbridge/MappingConfiguration.java
@@ -18,16 +18,15 @@
// SPDX-License-Identifier: Apache-2.0
package org.eclipse.tractusx.agents.aasbridge;
-import org.eclipse.digitaltwin.aas4j.mapping.model.MappingSpecification;
-
import java.io.File;
+import javax.xml.transform.Transformer;
/**
* a mapping configuration holds together a (submmodel/aas) template with its
* queries. It is always located in some domain
*/
public class MappingConfiguration {
- private final MappingSpecification mappingSpecification;
+ private final Transformer mappingSpecification;
private final File getOneQueryTemplate;
private final File getAllQuery;
private final String semanticId;
@@ -43,7 +42,7 @@ public class MappingConfiguration {
* @param semanticId the semantic id associated to the aas/submodel template
*/
- public MappingConfiguration(String domain, MappingSpecification mappingSpecification, File getOneQueryTemplate, File getAllQuery, String semanticId) {
+ public MappingConfiguration(String domain, Transformer mappingSpecification, File getOneQueryTemplate, File getAllQuery, String semanticId) {
this.mappingSpecification = mappingSpecification;
this.getOneQueryTemplate = getOneQueryTemplate;
this.getAllQuery = getAllQuery;
@@ -52,7 +51,7 @@ public MappingConfiguration(String domain, MappingSpecification mappingSpecifica
}
- public MappingSpecification getMappingSpecification() {
+ public Transformer getMappingSpecification() {
return mappingSpecification;
}
diff --git a/sparql-aas/src/main/java/org/eclipse/tractusx/agents/aasbridge/MappingExecutor.java b/sparql-aas/src/main/java/org/eclipse/tractusx/agents/aasbridge/MappingExecutor.java
index 76e08a7..91f8484 100644
--- a/sparql-aas/src/main/java/org/eclipse/tractusx/agents/aasbridge/MappingExecutor.java
+++ b/sparql-aas/src/main/java/org/eclipse/tractusx/agents/aasbridge/MappingExecutor.java
@@ -21,18 +21,15 @@
import de.fraunhofer.iosb.ilt.faaast.service.model.asset.AssetIdentification;
import de.fraunhofer.iosb.ilt.faaast.service.model.asset.GlobalAssetIdentification;
import de.fraunhofer.iosb.ilt.faaast.service.model.asset.SpecificAssetIdentification;
-import io.adminshell.aas.v3.model.Asset;
-import io.adminshell.aas.v3.model.AssetAdministrationShell;
-import io.adminshell.aas.v3.model.AssetAdministrationShellEnvironment;
-import io.adminshell.aas.v3.model.ConceptDescription;
-import io.adminshell.aas.v3.model.Identifiable;
-import io.adminshell.aas.v3.model.Identifier;
-import io.adminshell.aas.v3.model.Reference;
-import io.adminshell.aas.v3.model.Submodel;
import org.apache.commons.io.IOUtils;
-import org.eclipse.digitaltwin.aas4j.exceptions.TransformationException;
-import org.eclipse.digitaltwin.aas4j.mapping.model.MappingSpecification;
-import org.eclipse.digitaltwin.aas4j.transform.GenericDocumentTransformer;
+import org.eclipse.digitaltwin.aas4j.v3.dataformat.core.DeserializationException;
+import org.eclipse.digitaltwin.aas4j.v3.dataformat.xml.XmlDeserializer;
+import org.eclipse.digitaltwin.aas4j.v3.model.AssetAdministrationShell;
+import org.eclipse.digitaltwin.aas4j.v3.model.ConceptDescription;
+import org.eclipse.digitaltwin.aas4j.v3.model.Environment;
+import org.eclipse.digitaltwin.aas4j.v3.model.Identifiable;
+import org.eclipse.digitaltwin.aas4j.v3.model.Reference;
+import org.eclipse.digitaltwin.aas4j.v3.model.Submodel;
import org.eclipse.rdf4j.query.resultio.helpers.QueryResultCollector;
import org.eclipse.rdf4j.query.resultio.sparqlxml.SPARQLResultsXMLParser;
@@ -42,6 +39,7 @@
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.StringWriter;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.http.HttpClient;
@@ -57,6 +55,10 @@
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
import java.util.stream.Stream;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
import static java.time.temporal.ChronoUnit.SECONDS;
@@ -66,7 +68,7 @@
public class MappingExecutor {
public static final String DEFAULT_SPARQL_ENDPOINT = "http://sparql.local";
- private final GenericDocumentTransformer transformer;
+ private final XmlDeserializer transformer;
private final URI sparqlEndpoint;
private final String credentials;
@@ -78,7 +80,7 @@ public class MappingExecutor {
public MappingExecutor(String sparqlEndpoint, String credentials, int timeoutSeconds, int fixedThreadPoolSize, Map> mappings, boolean logResults) {
this.mappings = mappings;
- this.transformer = new GenericDocumentTransformer();
+ this.transformer = new XmlDeserializer();
if (sparqlEndpoint == null) {
sparqlEndpoint = DEFAULT_SPARQL_ENDPOINT;
}
@@ -95,10 +97,10 @@ public static String parametrizeQuery(File queryTemplate, Object... parameters)
if (parameters[count] instanceof Iterable) {
render[count] = "";
for (var parameter : ((Iterable