Adds separate component projects with docker image
Change-Id: Id46ee88f486569934bb488700354d1032ea0422c
Signed-off-by: Daniel Espen <daniel.espen@iese.fraunhofer.de>
diff --git a/components/basys.components/basyx.components.docker/basyx.components.simple/Dockerfile b/components/basys.components/basyx.components.docker/basyx.components.simple/Dockerfile
new file mode 100644
index 0000000..b0a2f86
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.simple/Dockerfile
@@ -0,0 +1,14 @@
+# Add java runtime environment for execution
+FROM java:8-jdk-alpine
+
+# Copy built jar to image using the jar name specified in the pom.xml (JAR_FILE)
+ARG JAR_FILE
+COPY target/${JAR_FILE} /usr/share/basyxExecutable.jar
+COPY target/lib /usr/share/lib
+
+# Expose the appropriate port. In case of Tomcat, this is 8080.
+ARG PORT
+EXPOSE ${PORT}
+
+# Start the jar
+CMD java -jar "/usr/share/basyxExecutable.jar"
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.simple/docker-compose.yml b/components/basys.components/basyx.components.docker/basyx.components.simple/docker-compose.yml
new file mode 100644
index 0000000..aca4d1b
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.simple/docker-compose.yml
@@ -0,0 +1,31 @@
+version: '3'
+services:
+
+ registry:
+ image: ${BASYX_IMAGE_NAME}:${BASYX_IMAGE_TAG}
+ container_name: ${BASYX_CONTAINER_NAME}
+ ports:
+ - ${BASYX_HOST_PORT}:${BASYX_CONTAINER_PORT}
+# depends_on:
+# - postgres
+# volumes:
+# - .\WebContent\WEB-INF\config\directory\sqldirectory\directory.properties:/basys/directory.properties
+# links:
+# - postgres
+
+# postgres:
+# image: postgres:9.4
+# container_name: postgres
+# environment:
+# - POSTGRES_USER:'postgres'
+# - POSTGRES_PASSWORD:'admin'
+# - POSTGRES_DB=basyx-directory
+# volumes:
+# - ./WebContent/WEB-INF/config/postgres/init.sql:/docker-entrypoint-initdb.d/init.sql
+# ports:
+# - 5433:5432
+# expose:
+# - 5432
+
+
+
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.simple/pom.xml b/components/basys.components/basyx.components.docker/basyx.components.simple/pom.xml
new file mode 100644
index 0000000..78b6354
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.simple/pom.xml
@@ -0,0 +1,95 @@
+<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>
+
+ <!--
+ Simple Docker Component
+
+ Serves as a template for simple docker components that do not depend on other docker containers.
+ Do NOT use the included in-memory registry in a productive environment - the entries are not stored permanently
+ -->
+
+ <parent>
+ <groupId>org.eclipse.basyx</groupId>
+ <artifactId>basyx.components.docker</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>basyx.components.simple</artifactId>
+ <name>BaSyx Simple Docker Component</name>
+
+ <properties>
+ <!--
+ basyx.components.executable is the executable class with the definition of the public void main(String[]).
+ It is needed when building the jar in the maven-jar-plugin (see basyx.components.docker/pom.xml)
+ -->
+ <basyx.components.executable>org.eclipse.basyx.components.executable.InMemoryRegistryExecutable</basyx.components.executable>
+ </properties>
+
+ <packaging>jar</packaging>
+
+ <!-- Define additional plugins that are not included by default -->
+ <!-- Plugin configuration is done in parent project(s) -->
+ <build>
+ <plugins>
+ <!-- Attach sources to jar file -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <!--
+ "Docker" profile - do not build & install docker images by default
+ Run "mvn install -Pdocker" in order to include docker
+ -->
+ <id>docker</id>
+ <build>
+ <plugins>
+ <!-- Read maven properties from file -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>properties-maven-plugin</artifactId>
+ </plugin>
+
+ <!-- Copy the dependencies necessary to run the jar -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ </plugin>
+
+ <!-- Build the docker image -->
+ <plugin>
+ <groupId>com.spotify</groupId>
+ <artifactId>dockerfile-maven-plugin</artifactId>
+ </plugin>
+
+ <!-- Create integration test environment -->
+ <plugin>
+ <groupId>com.dkanejs.maven.plugins</groupId>
+ <artifactId>docker-compose-maven-plugin</artifactId>
+ </plugin>
+
+ <!-- Run integration tests -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+ <dependencies>
+ <!-- Adds additional classes of the BaSys SDK for tests (for TestRegistryProvider) -->
+ <dependency>
+ <groupId>org.eclipse.basyx</groupId>
+ <artifactId>basyx.sdk</artifactId>
+ <classifier>tests</classifier>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.simple/src/main/java/org/eclipse/basyx/components/executable/InMemoryRegistryExecutable.java b/components/basys.components/basyx.components.docker/basyx.components.simple/src/main/java/org/eclipse/basyx/components/executable/InMemoryRegistryExecutable.java
new file mode 100644
index 0000000..cefb994
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.simple/src/main/java/org/eclipse/basyx/components/executable/InMemoryRegistryExecutable.java
@@ -0,0 +1,49 @@
+package org.eclipse.basyx.components.executable;
+
+import org.eclipse.basyx.components.configuration.BaSyxContextConfiguration;
+import org.eclipse.basyx.components.servlets.InMemoryRegistryServlet;
+import org.eclipse.basyx.vab.protocol.http.server.AASHTTPServer;
+import org.eclipse.basyx.vab.protocol.http.server.BaSyxContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A registry servlet based on an InMemory Registry. The servlet therefore provides an implementation
+ * for the IAASRegistryService interface without a permanent storage capability.
+ *
+ * Do not use this registry in a productive environment - the entries are not persistent!
+ *
+ * @author espen
+ */
+public class InMemoryRegistryExecutable {
+ private static Logger logger = LoggerFactory.getLogger(InMemoryRegistryExecutable.class);
+
+
+
+ // The path the created servlet is mapped to
+ public static final String SERVLET_MAPPING = "/";
+
+ // The server with the servlet that will be created
+ private static AASHTTPServer server;
+
+ private InMemoryRegistryExecutable() {
+ }
+
+ public static void main(String[] args) {
+ logger.info("Starting BaSyx InMemory registry");
+
+ // Load configuration
+ BaSyxContextConfiguration config = new BaSyxContextConfiguration();
+ config.loadFromResource(BaSyxContextConfiguration.DEFAULT_CONFIG_PATH);
+ // Init HTTP context and add an InMemoryRegistryServlet according to the configuration
+ BaSyxContext context = new BaSyxContext(config.getContextPath(), config.getDocBasePath(), config.getHostname(),
+ config.getPort());
+ context.addServletMapping(SERVLET_MAPPING + "*", new InMemoryRegistryServlet());
+
+ // Create and start server
+ server = new AASHTTPServer(context);
+ logger.info("Starting server...");
+ server.start();
+ }
+
+}
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.simple/src/main/java/org/eclipse/basyx/components/servlets/InMemoryRegistryServlet.java b/components/basys.components/basyx.components.docker/basyx.components.simple/src/main/java/org/eclipse/basyx/components/servlets/InMemoryRegistryServlet.java
new file mode 100644
index 0000000..933577b
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.simple/src/main/java/org/eclipse/basyx/components/servlets/InMemoryRegistryServlet.java
@@ -0,0 +1,25 @@
+package org.eclipse.basyx.components.servlets;
+
+import org.eclipse.basyx.aas.registration.memory.InMemoryRegistry;
+import org.eclipse.basyx.aas.registration.restapi.DirectoryModelProvider;
+import org.eclipse.basyx.vab.protocol.http.server.VABHTTPInterface;
+
+/**
+ * A registry servlet based on an InMemory Registry. The servlet therefore provides an implementation
+ * for the IAASRegistryService interface without a permanent storage capability.
+ *
+ * Do not use this registry in a productive environment - the entries are not persistent!
+ *
+ * @author espen
+ */
+public class InMemoryRegistryServlet extends VABHTTPInterface<DirectoryModelProvider> {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Constructor with ModelProvider based on an InMemoryRegistry
+ */
+ public InMemoryRegistryServlet() {
+ super(new DirectoryModelProvider(new InMemoryRegistry()));
+
+ }
+}
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.simple/src/main/resources/context.properties b/components/basys.components/basyx.components.docker/basyx.components.simple/src/main/resources/context.properties
new file mode 100644
index 0000000..7e933a3
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.simple/src/main/resources/context.properties
@@ -0,0 +1,3 @@
+contextPath=/registry
+contextHostname=localhost
+contextPort=4000
\ No newline at end of file
diff --git a/components/basys.components/src/main/resources/logback.xml b/components/basys.components/basyx.components.docker/basyx.components.simple/src/main/resources/logback.xml
similarity index 100%
copy from components/basys.components/src/main/resources/logback.xml
copy to components/basys.components/basyx.components.docker/basyx.components.simple/src/main/resources/logback.xml
diff --git a/components/basys.components/basyx.components.docker/basyx.components.simple/src/test/java/org/eclipse/basyx/regression/docker/ITInMemoryRegistry.java b/components/basys.components/basyx.components.docker/basyx.components.simple/src/test/java/org/eclipse/basyx/regression/docker/ITInMemoryRegistry.java
new file mode 100644
index 0000000..6248d79
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.simple/src/test/java/org/eclipse/basyx/regression/docker/ITInMemoryRegistry.java
@@ -0,0 +1,51 @@
+package org.eclipse.basyx.regression.docker;
+
+import org.eclipse.basyx.aas.registration.api.IAASRegistryService;
+import org.eclipse.basyx.aas.registration.proxy.AASRegistryProxy;
+import org.eclipse.basyx.aas.registration.restapi.DirectoryModelProvider;
+import org.eclipse.basyx.components.configuration.BaSyxContextConfiguration;
+import org.eclipse.basyx.components.configuration.BaSyxDockerConfiguration;
+import org.eclipse.basyx.testsuite.regression.aas.registration.proxy.TestRegistryProvider;
+import org.eclipse.basyx.vab.modelprovider.VABElementProxy;
+import org.eclipse.basyx.vab.modelprovider.api.IModelProvider;
+import org.junit.BeforeClass;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ITInMemoryRegistry extends TestRegistryProvider {
+ private static Logger logger = LoggerFactory.getLogger(ITInMemoryRegistry.class);
+
+ private static String registryUrl;
+
+ @BeforeClass
+ public static void setUpClass() {
+ logger.info("Running integration test...");
+
+ logger.info("Loading servlet configuration");
+ // Load the servlet configuration inside of the docker configuration from properties file
+ BaSyxContextConfiguration contextConfig = new BaSyxContextConfiguration();
+ contextConfig.loadFromResource(BaSyxContextConfiguration.DEFAULT_CONFIG_PATH);
+
+ // Load the docker environment configuration from properties file
+ logger.info("Loading docker configuration");
+ BaSyxDockerConfiguration dockerConfig = new BaSyxDockerConfiguration();
+ dockerConfig.loadFromResource(BaSyxDockerConfiguration.DEFAULT_CONFIG_PATH);
+
+ registryUrl = "http://localhost:" + dockerConfig.getHostPort() + contextConfig.getContextPath();
+ logger.info("Registry URL for integration test: " + registryUrl);
+ }
+
+ /**
+ * Returns a model provider proxy for directly accessing the registry created by the http servlet
+ */
+ @Override
+ protected IModelProvider getProxyProvider() {
+ // Create a registry proxy directly pointing to the servlet
+ IAASRegistryService registryProxy = new AASRegistryProxy(registryUrl);
+ // Wrap the proxy in an IModelProvider
+ DirectoryModelProvider provider = new DirectoryModelProvider(registryProxy);
+ // Append the necessary registry API access to each request
+ IModelProvider apiProxy = new VABElementProxy("/api/v1/registry", provider);
+ return apiProxy;
+ }
+}
diff --git a/components/basys.components/basyx.components.docker/basyx.components.simple/src/test/resources/.env b/components/basys.components/basyx.components.docker/basyx.components.simple/src/test/resources/.env
new file mode 100644
index 0000000..21cc7e8
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.simple/src/test/resources/.env
@@ -0,0 +1,5 @@
+BASYX_HOST_PORT=8082
+BASYX_CONTAINER_PORT=4000
+BASYX_IMAGE_NAME=basys/registry-inmemory
+BASYX_CONTAINER_NAME=registry
+BASYX_IMAGE_TAG=0.0.1-SNAPSHOT
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/Dockerfile b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/Dockerfile
new file mode 100644
index 0000000..b0a2f86
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/Dockerfile
@@ -0,0 +1,14 @@
+# Add java runtime environment for execution
+FROM java:8-jdk-alpine
+
+# Copy built jar to image using the jar name specified in the pom.xml (JAR_FILE)
+ARG JAR_FILE
+COPY target/${JAR_FILE} /usr/share/basyxExecutable.jar
+COPY target/lib /usr/share/lib
+
+# Expose the appropriate port. In case of Tomcat, this is 8080.
+ARG PORT
+EXPOSE ${PORT}
+
+# Start the jar
+CMD java -jar "/usr/share/basyxExecutable.jar"
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/docker-compose.yml b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/docker-compose.yml
new file mode 100644
index 0000000..f6add3e
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/docker-compose.yml
@@ -0,0 +1,38 @@
+version: '2.1'
+services:
+ registry:
+ image: ${BASYX_IMAGE_NAME}:${BASYX_IMAGE_TAG}
+ container_name: ${BASYX_CONTAINER_NAME}
+ ports:
+ - ${BASYX_HOST_PORT}:${BASYX_CONTAINER_PORT}
+ depends_on:
+ postgres:
+ condition: service_healthy
+# Possibility to embed user-configuration into the docker container
+# volumes:
+# - ./myConfig/myConfigs.properties:/usr/share/dockerRegistry.properties
+ links:
+ - postgres
+
+ postgres:
+ image: postgres:12.1
+ container_name: postgres
+ environment:
+ - POSTGRES_USER:'postgres'
+ - POSTGRES_PASSWORD:'admin'
+ - POSTGRES_DB=basyx-directory
+ healthcheck:
+ test: ["CMD-SHELL", "pg_isready -U postgres"]
+ interval: 3s
+ timeout: 3s
+ retries: 5
+# Possibility to configure postgres-config into docker container
+# volumes:
+# - ./WebContent/WEB-INF/config/postgres/init.sql:/docker-entrypoint-initdb.d/init.sql
+# ports:
+# - 5433:5432
+# expose:
+# - 5432
+
+
+
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/pom.xml b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/pom.xml
new file mode 100644
index 0000000..3664f36
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/pom.xml
@@ -0,0 +1,80 @@
+<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.eclipse.basyx</groupId>
+ <artifactId>basyx.components.docker</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>basyx.components.sqlregistry</artifactId>
+ <name>BaSyx SQL Registry</name>
+
+ <properties>
+ <basyx.components.executable>org.eclipse.basyx.components.executable.SQLRegistryExecutable</basyx.components.executable>
+ </properties>
+
+ <packaging>jar</packaging>
+
+ <build>
+ <!-- Define additional plugins that are not included by default -->
+ <!-- Plugin configuration is done in parent project(s) -->
+ <plugins>
+ <!-- Attach sources to jar file -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencies>
+ <!-- Adds additional classes of the BaSys SDK for tests (for TestRegistryProvider) -->
+ <dependency>
+ <groupId>org.eclipse.basyx</groupId>
+ <artifactId>basyx.sdk</artifactId>
+ <classifier>tests</classifier>
+ </dependency>
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>docker</id>
+ <build>
+ <plugins>
+ <!-- Read maven properties from file -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>properties-maven-plugin</artifactId>
+ </plugin>
+
+ <!-- Copy the dependencies necessary to run the jar -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ </plugin>
+
+ <!-- Build the docker image -->
+ <plugin>
+ <groupId>com.spotify</groupId>
+ <artifactId>dockerfile-maven-plugin</artifactId>
+ </plugin>
+
+ <!-- Create integration test environment -->
+ <plugin>
+ <groupId>com.dkanejs.maven.plugins</groupId>
+ <artifactId>docker-compose-maven-plugin</artifactId>
+ </plugin>
+
+ <!-- Run integration tests -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/java/org/eclipse/basyx/components/executable/SQLRegistryExecutable.java b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/java/org/eclipse/basyx/components/executable/SQLRegistryExecutable.java
new file mode 100644
index 0000000..daaacfe
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/java/org/eclipse/basyx/components/executable/SQLRegistryExecutable.java
@@ -0,0 +1,49 @@
+package org.eclipse.basyx.components.executable;
+
+import org.eclipse.basyx.components.configuration.BaSyxContextConfiguration;
+import org.eclipse.basyx.components.servlet.SQLRegistryServlet;
+import org.eclipse.basyx.vab.protocol.http.server.AASHTTPServer;
+import org.eclipse.basyx.vab.protocol.http.server.BaSyxContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A registry servlet based on an SQL database. The servlet therefore provides an implementation
+ * for the IAASRegistryService interface with a permanent storage solution. The properties for the
+ * SQL connection will be read from executables.properties in the resource folder.
+ *
+ * @author espen
+ */
+public class SQLRegistryExecutable {
+ private static Logger logger = LoggerFactory.getLogger(SQLRegistryExecutable.class);
+
+
+
+ // The path the created servlet is mapped to
+ public static final String SERVLET_MAPPING = "/*";
+
+ // The server with the servlet that will be created
+ private static AASHTTPServer server;
+
+ private SQLRegistryExecutable() {
+ }
+
+ public static void main(String[] args) {
+ logger.info("Starting BaSyx SQL registry");
+
+ // Load configuration
+ BaSyxContextConfiguration config = new BaSyxContextConfiguration();
+ config.loadFromResource(BaSyxContextConfiguration.DEFAULT_CONFIG_PATH);
+
+ // Init HTTP context and add an InMemoryRegistryServlet according to the configuration
+ BaSyxContext context = new BaSyxContext(config.getContextPath(), config.getDocBasePath(), config.getHostname(),
+ config.getPort());
+ context.addServletMapping(SERVLET_MAPPING, new SQLRegistryServlet("dockerRegistry.properties"));
+
+ // Create and start server
+ server = new AASHTTPServer(context);
+ logger.info("Starting server...");
+ server.start();
+ }
+
+}
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/java/org/eclipse/basyx/components/servlet/SQLRegistryServlet.java b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/java/org/eclipse/basyx/components/servlet/SQLRegistryServlet.java
new file mode 100644
index 0000000..ff69ac7
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/java/org/eclipse/basyx/components/servlet/SQLRegistryServlet.java
@@ -0,0 +1,27 @@
+package org.eclipse.basyx.components.servlet;
+
+import org.eclipse.basyx.aas.registration.restapi.DirectoryModelProvider;
+import org.eclipse.basyx.components.sqlregistry.SQLRegistry;
+import org.eclipse.basyx.vab.protocol.http.server.VABHTTPInterface;
+
+/**
+ * A registry servlet based on an SQL database. The servlet therefore provides an implementation
+ * for the IAASRegistryService interface with a permanent storage solution.
+ *
+ * @author kuhn, pschorn, espen
+ */
+public class SQLRegistryServlet extends VABHTTPInterface<DirectoryModelProvider> {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Provide HTTP interface with JSONProvider to handle serialization and
+ * SQLDirectoryProvider as backend
+ */
+ public SQLRegistryServlet() {
+ super(new DirectoryModelProvider(new SQLRegistry()));
+ }
+
+ public SQLRegistryServlet(String customConfigFilePath) {
+ super(new DirectoryModelProvider(new SQLRegistry(customConfigFilePath)));
+ }
+}
\ No newline at end of file
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/directory/AASDescriptorMap.java b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/java/org/eclipse/basyx/components/sqlregistry/AASDescriptorMap.java
similarity index 97%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/directory/AASDescriptorMap.java
rename to components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/java/org/eclipse/basyx/components/sqlregistry/AASDescriptorMap.java
index 007a85c..e30c144 100644
--- a/components/basys.components/src/main/java/org/eclipse/basyx/components/directory/AASDescriptorMap.java
+++ b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/java/org/eclipse/basyx/components/sqlregistry/AASDescriptorMap.java
@@ -1,4 +1,4 @@
-package org.eclipse.basyx.components.directory;
+package org.eclipse.basyx.components.sqlregistry;
import java.util.Collection;
import java.util.Map;
diff --git a/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/java/org/eclipse/basyx/components/sqlregistry/SQLRegistry.java b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/java/org/eclipse/basyx/components/sqlregistry/SQLRegistry.java
new file mode 100644
index 0000000..17f2729
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/java/org/eclipse/basyx/components/sqlregistry/SQLRegistry.java
@@ -0,0 +1,78 @@
+package org.eclipse.basyx.components.sqlregistry;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.Map;
+
+import javax.servlet.ServletException;
+
+import org.eclipse.basyx.aas.registration.memory.MapRegistry;
+import org.eclipse.basyx.components.configuration.BaSyxSQLConfiguration;
+import org.eclipse.basyx.tools.sqlproxy.SQLRootElement;
+
+/**
+ * Implements a local registry based on an SQL database
+ *
+ * @author espen
+ *
+ */
+public class SQLRegistry extends MapRegistry {
+ private static final String DEFAULT_SQL_CONFIG_PATH = "registry.properties";
+
+ /**
+ * Receives the path of the configuration.properties file in it's constructor.
+ *
+ * @param configFilePath
+ */
+ public SQLRegistry(String configFilePath) {
+ super(new AASDescriptorMap(createRootMap(configFilePath)));
+ }
+
+ /**
+ * Constructor using default sql connections
+ */
+ public SQLRegistry() {
+ this(DEFAULT_SQL_CONFIG_PATH);
+ }
+
+ /**
+ * Creates a SQLRegistry from a sql configuration
+ */
+ public SQLRegistry(BaSyxSQLConfiguration configuration) {
+ super(new AASDescriptorMap(createRootMap(configuration)));
+ }
+
+ private static Map<String, Object> createRootMap(String configFilePath) {
+ BaSyxSQLConfiguration config = new BaSyxSQLConfiguration();
+ config.loadFromResource(configFilePath);
+ return createRootMap(config);
+ }
+
+ private static Map<String, Object> createRootMap(BaSyxSQLConfiguration config) {
+ SQLRootElement sqlRootElement = initSQLConnection(config);
+ sqlRootElement.drop();
+ sqlRootElement.create();
+
+ return sqlRootElement.createMap(sqlRootElement.getNextIdentifier());
+ }
+
+ /**
+ * Initialize sqlDriver
+ *
+ * @throws IOException
+ * @throws FileNotFoundException
+ *
+ * @throws ServletException
+ */
+ private static final SQLRootElement initSQLConnection(BaSyxSQLConfiguration config) {
+ // SQL parameter
+ String path = config.getPath();
+ String user = config.getUser();
+ String pass = config.getPass();
+ String qryPfx = config.getPrefix();
+ String qDrvCls = config.getDrv();
+
+ // Create SQL driver instance
+ return new SQLRootElement(user, pass, path, qDrvCls, qryPfx, "root_registry");
+ }
+}
diff --git a/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/resources/context.properties b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/resources/context.properties
new file mode 100644
index 0000000..7e933a3
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/resources/context.properties
@@ -0,0 +1,3 @@
+contextPath=/registry
+contextHostname=localhost
+contextPort=4000
\ No newline at end of file
diff --git a/components/basys.components/WebContent/WEB-INF/config/directory/sqldirectory/directory.properties b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/resources/dockerRegistry.properties
similarity index 95%
rename from components/basys.components/WebContent/WEB-INF/config/directory/sqldirectory/directory.properties
rename to components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/resources/dockerRegistry.properties
index 60e38d9..3464cd4 100644
--- a/components/basys.components/WebContent/WEB-INF/config/directory/sqldirectory/directory.properties
+++ b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/resources/dockerRegistry.properties
@@ -37,7 +37,7 @@
dbuser = postgres
dbpass = admin
-dburl = //localhost/basyx-directory?
+dburl = //postgres:5432/basyx-directory?
sqlDriver = org.postgresql.Driver
sqlPrefix = jdbc:postgresql:
diff --git a/components/basys.components/src/main/resources/logback.xml b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/resources/logback.xml
similarity index 100%
copy from components/basys.components/src/main/resources/logback.xml
copy to components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/main/resources/logback.xml
diff --git a/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/test/java/org/eclipse/basyx/regression/registry/ITSQLRegistry.java b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/test/java/org/eclipse/basyx/regression/registry/ITSQLRegistry.java
new file mode 100644
index 0000000..7df1193
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/test/java/org/eclipse/basyx/regression/registry/ITSQLRegistry.java
@@ -0,0 +1,52 @@
+package org.eclipse.basyx.regression.registry;
+
+import org.eclipse.basyx.aas.registration.api.IAASRegistryService;
+import org.eclipse.basyx.aas.registration.proxy.AASRegistryProxy;
+import org.eclipse.basyx.aas.registration.restapi.DirectoryModelProvider;
+import org.eclipse.basyx.components.configuration.BaSyxContextConfiguration;
+import org.eclipse.basyx.components.configuration.BaSyxDockerConfiguration;
+import org.eclipse.basyx.testsuite.regression.aas.registration.proxy.TestRegistryProvider;
+import org.eclipse.basyx.vab.modelprovider.VABElementProxy;
+import org.eclipse.basyx.vab.modelprovider.api.IModelProvider;
+import org.junit.BeforeClass;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ITSQLRegistry extends TestRegistryProvider {
+ private static Logger logger = LoggerFactory.getLogger(ITSQLRegistry.class);
+
+ private static String registryUrl;
+
+ @BeforeClass
+ public static void setUpClass() {
+ logger.info("Running integration test...");
+
+ logger.info("Loading servlet configuration");
+ // Load the servlet configuration inside of the docker configuration from properties file
+ BaSyxContextConfiguration contextConfig = new BaSyxContextConfiguration();
+ contextConfig.loadFromResource(BaSyxContextConfiguration.DEFAULT_CONFIG_PATH);
+
+ // Load the docker environment configuration from properties file
+ logger.info("Loading docker configuration");
+ BaSyxDockerConfiguration dockerConfig = new BaSyxDockerConfiguration();
+ dockerConfig.loadFromResource(BaSyxDockerConfiguration.DEFAULT_CONFIG_PATH);
+
+ registryUrl = "http://localhost:" + dockerConfig.getHostPort() + contextConfig.getContextPath()
+ + "/api/v1/registry";
+ logger.info("Registry URL for integration test: " + registryUrl);
+ }
+
+ /**
+ * Returns a model provider proxy for directly accessing the registry created by the http servlet
+ */
+ @Override
+ protected IModelProvider getProxyProvider() {
+ // Create a registry proxy directly pointing to the servlet
+ IAASRegistryService registryProxy = new AASRegistryProxy(registryUrl);
+ // Wrap the proxy in an IModelProvider
+ DirectoryModelProvider provider = new DirectoryModelProvider(registryProxy);
+ // Append the necessary registry API access to each request
+ IModelProvider apiProxy = new VABElementProxy("/api/v1/registry", provider);
+ return apiProxy;
+ }
+}
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/sql/TestDirectorySQLProviderRaw.java b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/test/java/org/eclipse/basyx/regression/registry/ITSQLRegistryRaw.java
similarity index 82%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/sql/TestDirectorySQLProviderRaw.java
rename to components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/test/java/org/eclipse/basyx/regression/registry/ITSQLRegistryRaw.java
index 979c563..531f818 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/sql/TestDirectorySQLProviderRaw.java
+++ b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/test/java/org/eclipse/basyx/regression/registry/ITSQLRegistryRaw.java
@@ -1,4 +1,4 @@
-package org.eclipse.basyx.regression.directory.sql;
+package org.eclipse.basyx.regression.registry;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
@@ -11,9 +11,9 @@
import org.eclipse.basyx.aas.metamodel.map.descriptor.AASDescriptor;
import org.eclipse.basyx.aas.metamodel.map.descriptor.ModelUrn;
-import org.eclipse.basyx.regression.support.server.context.ComponentsRegressionContext;
+import org.eclipse.basyx.components.configuration.BaSyxContextConfiguration;
+import org.eclipse.basyx.components.configuration.BaSyxDockerConfiguration;
import org.eclipse.basyx.submodel.metamodel.api.identifier.IIdentifier;
-import org.eclipse.basyx.testsuite.regression.vab.protocol.http.AASHTTPServerResource;
import org.eclipse.basyx.tools.webserviceclient.WebServiceRawClient;
import org.eclipse.basyx.vab.coder.json.metaprotocol.MetaprotocolHandler;
import org.eclipse.basyx.vab.coder.json.serialization.DefaultTypeFactory;
@@ -21,27 +21,18 @@
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
-import org.junit.ClassRule;
import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Test raw http queries to SQL directory provider.
*
- * @author kuhn, ps, espen
+ * @author espen
*
*/
-public class TestDirectorySQLProviderRaw {
-
- /**
- * Makes sure Tomcat Server is started
- */
- @ClassRule
- public static AASHTTPServerResource res = new AASHTTPServerResource(new ComponentsRegressionContext());
-
- /**
- * Directory web service URL
- */
- public static final String wsURL = "http://localhost:8080/basys.components/Testsuite/Directory/SQL";
+public class ITSQLRegistryRaw {
+ private static Logger logger = LoggerFactory.getLogger(ITSQLRegistry.class);
/**
* Serialization
@@ -53,7 +44,7 @@
* Invoke BaSyx service calls via web services
*/
private static final WebServiceRawClient client = new WebServiceRawClient();
- private static final String registryUrl = wsURL + "/api/v1/registry/";
+ private static String registryUrl;
/**
* AASDescriptor to test
@@ -74,9 +65,26 @@
@BeforeClass
public static void setUpClass() throws UnsupportedEncodingException {
+ logger.info("Running integration test...");
+
+ logger.info("Loading servlet configuration");
+ // Load the servlet configuration inside of the docker configuration from properties file
+ BaSyxContextConfiguration contextConfig = new BaSyxContextConfiguration();
+ contextConfig.loadFromResource(BaSyxContextConfiguration.DEFAULT_CONFIG_PATH);
+
+ // Load the docker environment configuration from properties file
+ logger.info("Loading docker configuration");
+ BaSyxDockerConfiguration dockerConfig = new BaSyxDockerConfiguration();
+ dockerConfig.loadFromResource(BaSyxDockerConfiguration.DEFAULT_CONFIG_PATH);
+
+ registryUrl = "http://localhost:" + dockerConfig.getHostPort() + contextConfig.getContextPath()
+ + "/api/v1/registry/";
+ logger.info("Registry URL for integration test: " + registryUrl);
aasUrl1 = registryUrl + URLEncoder.encode(id1.toString(), "UTF-8");
aasUrl2 = registryUrl + URLEncoder.encode(id2.toString(), "UTF-8");
aasUrlUnknown = registryUrl + URLEncoder.encode(idUnknown.toString(), "UTF-8");
+
+ logger.info("Registry URL for integration test: " + registryUrl);
}
@Before
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/sql/TestSQLRegistryProvider.java b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/test/java/org/eclipse/basyx/regression/registry/TestSQLRegistryProvider.java
similarity index 76%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/sql/TestSQLRegistryProvider.java
rename to components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/test/java/org/eclipse/basyx/regression/registry/TestSQLRegistryProvider.java
index 168c376..7a5f412 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/sql/TestSQLRegistryProvider.java
+++ b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/test/java/org/eclipse/basyx/regression/registry/TestSQLRegistryProvider.java
@@ -1,8 +1,8 @@
-package org.eclipse.basyx.regression.directory.sql;
+package org.eclipse.basyx.regression.registry;
import org.eclipse.basyx.aas.registration.api.IAASRegistryService;
import org.eclipse.basyx.aas.registration.restapi.DirectoryModelProvider;
-import org.eclipse.basyx.components.directory.SQLRegistry;
+import org.eclipse.basyx.components.sqlregistry.SQLRegistry;
import org.eclipse.basyx.testsuite.regression.aas.registration.proxy.TestRegistryProvider;
import org.eclipse.basyx.vab.modelprovider.VABElementProxy;
import org.eclipse.basyx.vab.modelprovider.api.IModelProvider;
@@ -14,15 +14,13 @@
*
*/
public class TestSQLRegistryProvider extends TestRegistryProvider {
- private static String configFilePath = "./WebContent/WEB-INF/config/directory/sqldirectory/directory.properties";
-
/**
* Sets up the SQL directory servlet for the sql tests
*/
@Override
protected IModelProvider getProxyProvider() {
// Sets up the sql registry based on the given config file
- IAASRegistryService sqlRegistry = new SQLRegistry(configFilePath);
+ IAASRegistryService sqlRegistry = new SQLRegistry("localRegistry.properties");
// Wraps the registry in an IModelProvider
DirectoryModelProvider provider = new DirectoryModelProvider(sqlRegistry);
// Uses a proxy to directly address the registry via its api prefix
diff --git a/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/test/resources/.env b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/test/resources/.env
new file mode 100644
index 0000000..c6adcc2
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/test/resources/.env
@@ -0,0 +1,5 @@
+BASYX_HOST_PORT=8082
+BASYX_CONTAINER_PORT=4000
+BASYX_IMAGE_NAME=basys/registry-sql
+BASYX_CONTAINER_NAME=registry
+BASYX_IMAGE_TAG=0.0.1-SNAPSHOT
\ No newline at end of file
diff --git a/components/basys.components/WebContent/WEB-INF/config/directory/sqldirectory/directory.properties b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/test/resources/localRegistry.properties
similarity index 95%
copy from components/basys.components/WebContent/WEB-INF/config/directory/sqldirectory/directory.properties
copy to components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/test/resources/localRegistry.properties
index 60e38d9..ffec021 100644
--- a/components/basys.components/WebContent/WEB-INF/config/directory/sqldirectory/directory.properties
+++ b/components/basys.components/basyx.components.docker/basyx.components.sqlregistry/src/test/resources/localRegistry.properties
@@ -37,7 +37,7 @@
dbuser = postgres
dbpass = admin
-dburl = //localhost/basyx-directory?
+dburl = //localhost:5432/basyx-directory?
sqlDriver = org.postgresql.Driver
sqlPrefix = jdbc:postgresql:
diff --git a/components/basys.components/basyx.components.docker/pom.xml b/components/basys.components/basyx.components.docker/pom.xml
new file mode 100644
index 0000000..9151452
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/pom.xml
@@ -0,0 +1,178 @@
+<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.eclipse.basyx</groupId>
+ <artifactId>basyx.components</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>basyx.components.docker</artifactId>
+ <name>BaSyx Docker Base</name>
+
+ <packaging>pom</packaging>
+
+ <!-- Includes all components in this project as separated modules -->
+ <modules>
+ <module>basyx.components.simple</module>
+ <module>basyx.components.sqlregistry</module>
+ </modules>
+
+ <build>
+ <pluginManagement>
+ <plugins>
+ <!-- Read maven properties from file -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>properties-maven-plugin</artifactId>
+ <version>1.0.0</version>
+ <executions>
+ <execution>
+ <phase>initialize</phase>
+ <goals>
+ <goal>read-project-properties</goal>
+ </goals>
+ <configuration>
+ <files>
+ <file>${project.basedir}/src/test/resources/.env</file>
+ </files>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!-- Generate separate jar for tests and exclude logback.xml from generated jars -->
+ <!-- + create the executable jar -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>3.1.1</version>
+ <configuration>
+ <archive>
+ <manifest>
+ <addClasspath>true</addClasspath>
+ <classpathPrefix>lib/</classpathPrefix>
+ <mainClass>${basyx.components.executable}</mainClass>
+ </manifest>
+ </archive>
+ <excludes>
+ <exclude>**/logback.xml</exclude>
+ </excludes>
+ <executions>
+ <execution>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </configuration>
+ </plugin>
+
+ <!-- Copy the dependencies necessary to run the jar -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-dependencies</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <configuration>
+ <includeScope>compile</includeScope>
+ <outputDirectory>${project.build.directory}/lib/</outputDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!-- Build the docker image -->
+ <plugin>
+ <groupId>com.spotify</groupId>
+ <artifactId>dockerfile-maven-plugin</artifactId>
+ <version>1.4.10</version>
+ <executions>
+ <execution>
+ <id>default</id>
+ <goals>
+ <goal>build</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <repository>${BASYX_IMAGE_NAME}</repository>
+ <tag>${project.version}</tag>
+ <buildArgs>
+ <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
+ <PORT>${BASYX_CONTAINER_PORT}</PORT>
+ </buildArgs>
+ </configuration>
+ </plugin>
+
+ <!-- Create integration test environment -->
+ <plugin>
+ <groupId>com.dkanejs.maven.plugins</groupId>
+ <artifactId>docker-compose-maven-plugin</artifactId>
+ <version>2.5.1</version>
+ <configuration>
+ <composeFile>${project.basedir}/docker-compose.yml</composeFile>
+ <detachedMode>true</detachedMode>
+ <envFile>${project.basedir}/src/test/resources/.env</envFile>
+ <envVars>
+ <BASYX_IMAGE_TAG>${project.version}</BASYX_IMAGE_TAG>
+ <BASYX_IMAGE_NAME>${BASYX_IMAGE_NAME}</BASYX_IMAGE_NAME>
+ <BASYX_CONTAINER_NAME>${BASYX_CONTAINER_NAME}</BASYX_CONTAINER_NAME>
+ <BASYX_CONTAINER_PORT>${BASYX_CONTAINER_PORT}</BASYX_CONTAINER_PORT>
+ <BASYX_HOST_PORT>${BASYX_HOST_PORT}</BASYX_HOST_PORT>
+ </envVars>
+ </configuration>
+ <executions>
+ <execution>
+ <id>docker-compose-up</id>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>up</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>docker-compose-down</id>
+ <phase>post-integration-test</phase>
+ <goals>
+ <goal>down</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+
+ <!-- Run integration tests -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <version>2.20.1</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+
+ <!-- Defines common dependencies for all docker components -->
+ <dependencies>
+ <!-- Depends on the components library -->
+ <dependency>
+ <groupId>org.eclipse.basyx</groupId>
+ <artifactId>basyx.components.lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
diff --git a/components/basys.components/WebContent/META-INF/MANIFEST.MF b/components/basys.components/basyx.components.lib/WebContent/META-INF/MANIFEST.MF
similarity index 100%
rename from components/basys.components/WebContent/META-INF/MANIFEST.MF
rename to components/basys.components/basyx.components.lib/WebContent/META-INF/MANIFEST.MF
diff --git a/components/basys.components/WebContent/WEB-INF/config/cfgprovider/samplecfg.properties b/components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/cfgprovider/samplecfg.properties
similarity index 100%
rename from components/basys.components/WebContent/WEB-INF/config/cfgprovider/samplecfg.properties
rename to components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/cfgprovider/samplecfg.properties
diff --git a/components/basys.components/WebContent/WEB-INF/config/directory/cfgdirectory/directory.properties b/components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/directory/cfgdirectory/directory.properties
similarity index 100%
rename from components/basys.components/WebContent/WEB-INF/config/directory/cfgdirectory/directory.properties
rename to components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/directory/cfgdirectory/directory.properties
diff --git a/components/basys.components/WebContent/WEB-INF/config/excelprovider/excelcfg.properties b/components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/excelprovider/excelcfg.properties
similarity index 100%
rename from components/basys.components/WebContent/WEB-INF/config/excelprovider/excelcfg.properties
rename to components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/excelprovider/excelcfg.properties
diff --git a/components/basys.components/WebContent/WEB-INF/config/excelprovider/sampledata.xlsx b/components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/excelprovider/sampledata.xlsx
similarity index 100%
rename from components/basys.components/WebContent/WEB-INF/config/excelprovider/sampledata.xlsx
rename to components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/excelprovider/sampledata.xlsx
Binary files differ
diff --git a/components/basys.components/WebContent/WEB-INF/config/processengine/SimpleTransportProcess.bpmn20.xml b/components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/processengine/SimpleTransportProcess.bpmn20.xml
similarity index 100%
rename from components/basys.components/WebContent/WEB-INF/config/processengine/SimpleTransportProcess.bpmn20.xml
rename to components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/processengine/SimpleTransportProcess.bpmn20.xml
diff --git a/components/basys.components/WebContent/WEB-INF/config/rawcfgprovider/samplecfg.properties b/components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/rawcfgprovider/samplecfg.properties
similarity index 100%
rename from components/basys.components/WebContent/WEB-INF/config/rawcfgprovider/samplecfg.properties
rename to components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/rawcfgprovider/samplecfg.properties
diff --git a/components/basys.components/WebContent/WEB-INF/config/sqlprovider/sampledb.properties b/components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/sqlprovider/sampledb.properties
similarity index 100%
rename from components/basys.components/WebContent/WEB-INF/config/sqlprovider/sampledb.properties
rename to components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/sqlprovider/sampledb.properties
diff --git a/components/basys.components/WebContent/WEB-INF/config/xmlqueryprovider/database.xml b/components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/xmlqueryprovider/database.xml
similarity index 100%
rename from components/basys.components/WebContent/WEB-INF/config/xmlqueryprovider/database.xml
rename to components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/xmlqueryprovider/database.xml
diff --git a/components/basys.components/WebContent/WEB-INF/config/xmlqueryprovider/heavySensorNames.xq b/components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/xmlqueryprovider/heavySensorNames.xq
similarity index 100%
rename from components/basys.components/WebContent/WEB-INF/config/xmlqueryprovider/heavySensorNames.xq
rename to components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/xmlqueryprovider/heavySensorNames.xq
diff --git a/components/basys.components/WebContent/WEB-INF/config/xmlqueryprovider/xmlqueryprovider.properties b/components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/xmlqueryprovider/xmlqueryprovider.properties
similarity index 100%
rename from components/basys.components/WebContent/WEB-INF/config/xmlqueryprovider/xmlqueryprovider.properties
rename to components/basys.components/basyx.components.lib/WebContent/WEB-INF/config/xmlqueryprovider/xmlqueryprovider.properties
diff --git a/components/basys.components/WebContent/WEB-INF/web.xml b/components/basys.components/basyx.components.lib/WebContent/WEB-INF/web.xml
similarity index 100%
rename from components/basys.components/WebContent/WEB-INF/web.xml
rename to components/basys.components/basyx.components.lib/WebContent/WEB-INF/web.xml
diff --git a/components/basys.components/basyx.components.lib/pom.xml b/components/basys.components/basyx.components.lib/pom.xml
new file mode 100644
index 0000000..9d033af
--- /dev/null
+++ b/components/basys.components/basyx.components.lib/pom.xml
@@ -0,0 +1,216 @@
+ <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.eclipse.basyx</groupId>
+ <artifactId>basyx.components</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>basyx.components.lib</artifactId>
+ <name>BaSyx Components Library</name>
+
+ <packaging>jar</packaging>
+
+ <repositories>
+ <repository>
+ <id>mule</id>
+ <name>Mule Repository</name>
+ <url>https://repository.mulesoft.org/nexus/content/groups/public/</url>
+ <layout>default</layout>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </repository>
+ </repositories>
+
+ <!-- Define additional plugins that are not included by default -->
+ <build>
+ <plugins>
+ <!-- Attach sources to jar file -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencies>
+ <!-- PostgreSQL SQL Database -->
+ <dependency>
+ <groupId>org.postgresql</groupId>
+ <artifactId>postgresql</artifactId>
+ <version>42.2.2</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.enterprise</groupId>
+ <artifactId>cdi-api</artifactId>
+ <version>2.0</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.el</groupId>
+ <artifactId>el-api</artifactId>
+ <version>2.2</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.json</groupId>
+ <artifactId>javax.json-api</artifactId>
+ <version>1.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ <version>2.3.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.annotation</groupId>
+ <artifactId>javax.annotation-api</artifactId>
+ <version>1.3.2</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.persistence</groupId>
+ <artifactId>persistence-api</artifactId>
+ <version>1.0.2</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ <version>2.0.1.Final</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>javax.servlet-api</artifactId>
+ <version>3.1.0</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>javassist</groupId>
+ <artifactId>javassist</artifactId>
+ <version>3.12.1.GA</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.spec.javax.interceptor</groupId>
+ <artifactId>jboss-interceptors-api_1.1_spec</artifactId>
+ <version>1.0.1.Final</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <version>4.2.0</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.glassfish.hk2</groupId>
+ <artifactId>hk2-api</artifactId>
+ <version>2.5.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.glassfish.hk2</groupId>
+ <artifactId>osgi-resource-locator</artifactId>
+ <version>1.0.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.glassfish.hk2.external</groupId>
+ <artifactId>aopalliance-repackaged</artifactId>
+ <version>2.5.0-b42</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.eclipse</groupId>
+ <artifactId>yasson</artifactId>
+ <version>1.0.2</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.activiti</groupId>
+ <artifactId>activiti-engine</artifactId>
+ <version>6.0.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.activiti</groupId>
+ <artifactId>activiti-bpmn-model</artifactId>
+ <version>6.0.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.activiti</groupId>
+ <artifactId>activiti-bpmn-layout</artifactId>
+ <version>6.0.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <version>1.4.197</version>
+ </dependency>
+
+ <!-- Add from local repository because jar cannot be found on maven central -->
+ <dependency>
+ <groupId>javax.xml.xquery</groupId>
+ <artifactId>xqj-api</artifactId>
+ <version>1.0</version>
+ </dependency>
+
+
+ <!-- Add from external repository because jar cannot be found on maven central -->
+ <dependency>
+ <groupId>net.sf.saxon</groupId>
+ <artifactId>saxon-xqj</artifactId>
+ <version>8.9.0.4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>net.sf.saxon</groupId>
+ <artifactId>Saxon-HE</artifactId>
+ <version>9.5.1-5</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.8.5</version>
+ </dependency>
+
+ <!-- Add BaSys SDK -->
+ <dependency>
+ <groupId>org.eclipse.basyx</groupId>
+ <artifactId>basyx.sdk</artifactId>
+ </dependency>
+
+ <!-- Adds additional classes of the BaSys SDK for tests -->
+ <dependency>
+ <groupId>org.eclipse.basyx</groupId>
+ <artifactId>basyx.sdk</artifactId>
+ <classifier>tests</classifier>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/cfgprovider/CFGSubModelProvider.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/cfgprovider/CFGSubModelProvider.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/cfgprovider/CFGSubModelProvider.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/cfgprovider/CFGSubModelProvider.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/cfgprovider/RawCFGSubModelProvider.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/cfgprovider/RawCFGSubModelProvider.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/cfgprovider/RawCFGSubModelProvider.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/cfgprovider/RawCFGSubModelProvider.java
diff --git a/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/BaSyxConfiguration.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/BaSyxConfiguration.java
new file mode 100644
index 0000000..b9b3a81
--- /dev/null
+++ b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/BaSyxConfiguration.java
@@ -0,0 +1,77 @@
+package org.eclipse.basyx.components.configuration;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Map;
+import java.util.Properties;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class BaSyxConfiguration {
+ private static Logger logger = LoggerFactory.getLogger(BaSyxConfiguration.class);
+
+ // Properties in this configuration
+ private Map<String, String> values;
+
+ /**
+ * Constructor that takes the configuration's default values.
+ * All the keys in the map are the name of the properties that are stored and loaded in this configuration.
+ */
+ public BaSyxConfiguration(Map<String, String> defaultValues) {
+ this.values = defaultValues;
+ }
+
+ /**
+ * Load the configuration from a path relative to the current resource folder
+ *
+ * @param relativeResourcePath Path to the resource in the resource folder. In a maven project, the resources
+ * are located at /src/main/resources by default.
+ */
+ public void loadFromResource(String relativeResourcePath) {
+ ClassLoader classLoader = BaSyxContextConfiguration.class.getClassLoader();
+ try (InputStream input = classLoader.getResourceAsStream(relativeResourcePath)) {
+ // Try to load property file for servlet configuration
+ logger.info("Loading properties from file '" + relativeResourcePath + "'");
+
+ Properties properties = new Properties();
+ properties.load(input);
+ loadFromProperties(properties);
+ } catch (IOException e) {
+ logger.error("No properties found, using default values", e);
+ }
+ }
+
+ /**
+ * Load the configuration directly from properties.
+ */
+ public void loadFromProperties(Properties properties) {
+ for (Object property : properties.keySet()) {
+ String propertyName = (String) property;
+ String loaded = properties.getProperty(propertyName);
+ if (values.containsKey(propertyName)) {
+ logger.info(propertyName + ": '" + loaded + "'");
+ } else {
+ logger.debug(propertyName + ": '" + loaded + "'");
+ }
+ values.put(propertyName, loaded);
+ }
+ }
+
+ /**
+ * Sets a property, if it is contained in this configuration
+ *
+ * @param name The name of the property
+ * @param value The new value of the property
+ */
+ public void setProperty(String name, String value) {
+ values.put(name, value);
+ }
+
+ /**
+ * Queries a property
+ */
+ public String getProperty(String name) {
+ return values.get(name);
+ }
+}
diff --git a/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/BaSyxContextConfiguration.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/BaSyxContextConfiguration.java
new file mode 100644
index 0000000..4cc698b
--- /dev/null
+++ b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/BaSyxContextConfiguration.java
@@ -0,0 +1,62 @@
+package org.eclipse.basyx.components.configuration;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Represents a BaSyx http servlet configuration for a BaSyxContext,
+ * that can be loaded from a properties file.
+ *
+ * @author espen
+ *
+ */
+public class BaSyxContextConfiguration extends BaSyxConfiguration {
+ // Default BaSyx Context configuration
+ public static final String DEFAULT_CONTEXTPATH = "/basys.sdk";
+ public static final String DEFAULT_DOCBASE = System.getProperty("java.io.tmpdir");
+ public static final String DEFAULT_HOSTNAME = "localhost";
+ public static final int DEFAULT_PORT = 4000;
+
+ private static final String CONTEXTPATH = "contextPath";
+ private static final String DOCBASE = "contextDocPath";
+ private static final String HOSTNAME = "contextHostname";
+ private static final String PORT = "contextPort";
+
+ // The default path for the context properties file
+ public static final String DEFAULT_CONFIG_PATH = "context.properties";
+
+ public static Map<String, String> getDefaultProperties() {
+ Map<String, String> defaultProps = new HashMap<>();
+ defaultProps.put(CONTEXTPATH, DEFAULT_CONTEXTPATH);
+ System.out.println("DEFAULT " + DOCBASE + " - " + DEFAULT_DOCBASE);
+ defaultProps.put(DOCBASE, DEFAULT_DOCBASE);
+ defaultProps.put(HOSTNAME, DEFAULT_HOSTNAME);
+ defaultProps.put(PORT, Integer.toString(DEFAULT_PORT));
+ return defaultProps;
+ }
+
+ public BaSyxContextConfiguration() {
+ super(getDefaultProperties());
+ }
+
+ public BaSyxContextConfiguration(Map<String, String> values) {
+ super(values);
+ }
+
+ public String getContextPath() {
+ return getProperty(CONTEXTPATH);
+ }
+
+ public String getDocBasePath() {
+ System.out.println("DEFAULT " + DOCBASE + " -- " + getProperty(DOCBASE));
+ return getProperty(DOCBASE);
+ }
+
+ public String getHostname() {
+ return getProperty(HOSTNAME);
+ }
+
+ public int getPort() {
+ return Integer.parseInt(getProperty(PORT));
+ }
+}
diff --git a/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/BaSyxDockerConfiguration.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/BaSyxDockerConfiguration.java
new file mode 100644
index 0000000..72c4cca
--- /dev/null
+++ b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/BaSyxDockerConfiguration.java
@@ -0,0 +1,60 @@
+package org.eclipse.basyx.components.configuration;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Represents a BaSyx docker configuration for a docker environment.
+ *
+ * @author espen
+ *
+ */
+public class BaSyxDockerConfiguration extends BaSyxConfiguration {
+ // Default BaSyx Context configuration
+ private static final int DEFAULT_HOSTPORT = 8082;
+ private static final int DEFAULT_CONTAINERPORT = 4000;
+ private static final String DEFAULT_IMAGENAME = "basys/component";
+ private static final String DEFAULT_CONTAINERNAME = "component";
+
+ private static final String HOSTPORT = "BASYX_HOST_PORT";
+ private static final String CONTAINERPORT = "BASYX_CONTAINER_PORT";
+ private static final String IMAGENAME = "BASYX_IMAGE_NAME";
+ private static final String CONTAINERNAME = "BASYX_CONTAINER_NAME";
+
+ // The default path for the context properties file
+ public static final String DEFAULT_CONFIG_PATH = ".env";
+
+ public static Map<String, String> getDefaultProperties() {
+ Map<String, String> defaultProps = new HashMap<>();
+ defaultProps.put(HOSTPORT, Integer.toString(DEFAULT_HOSTPORT));
+ defaultProps.put(CONTAINERPORT, Integer.toString(DEFAULT_CONTAINERPORT));
+ defaultProps.put(IMAGENAME, DEFAULT_IMAGENAME);
+ defaultProps.put(CONTAINERNAME, DEFAULT_CONTAINERNAME);
+
+ return defaultProps;
+ }
+
+ public BaSyxDockerConfiguration() {
+ super(getDefaultProperties());
+ }
+
+ public BaSyxDockerConfiguration(Map<String, String> values) {
+ super(values);
+ }
+
+ public int getHostPort() {
+ return Integer.parseInt(getProperty(HOSTPORT));
+ }
+
+ public int getContainerPort() {
+ return Integer.parseInt(getProperty(CONTAINERPORT));
+ }
+
+ public String getImageName() {
+ return getProperty(IMAGENAME);
+ }
+
+ public String getContainerName() {
+ return getProperty(CONTAINERNAME);
+ }
+}
diff --git a/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/BaSyxSQLConfiguration.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/BaSyxSQLConfiguration.java
new file mode 100644
index 0000000..1b31a36
--- /dev/null
+++ b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/BaSyxSQLConfiguration.java
@@ -0,0 +1,67 @@
+package org.eclipse.basyx.components.configuration;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Represents a BaSyx sql configuration for a sql connection.
+ *
+ * @author espen
+ *
+ */
+public class BaSyxSQLConfiguration extends BaSyxConfiguration {
+ // Default BaSyx SQL configuration
+ private static final String DEFAULT_USER = "postgres";
+ private static final String DEFAULT_PASS = "admin";
+ private static final String DEFAULT_PATH = "//localhost/basyx-directory?";
+ private static final String DEFAULT_DRV = "org.postgresql.Driver";
+ private static final String DEFAULT_PREFIX = "jdbc:postgresql:";
+
+ private static final String USER = "dbuser";
+ private static final String PASS = "dbpass";
+ private static final String PATH = "dburl";
+ private static final String DRV = "sqlDriver";
+ private static final String PREFIX = "sqlPrefix";
+
+ // The default path for the context properties file
+ public static final String DEFAULT_CONFIG_PATH = "sql.properties";
+
+ public static Map<String, String> getDefaultProperties() {
+ Map<String, String> defaultProps = new HashMap<>();
+ defaultProps.put(USER, DEFAULT_USER);
+ defaultProps.put(PASS, DEFAULT_PASS);
+ defaultProps.put(PATH, DEFAULT_PATH);
+ defaultProps.put(DRV, DEFAULT_DRV);
+ defaultProps.put(PREFIX, DEFAULT_PREFIX);
+
+ return defaultProps;
+ }
+
+ public BaSyxSQLConfiguration(Map<String, String> values) {
+ super(values);
+ }
+
+ public BaSyxSQLConfiguration() {
+ super(getDefaultProperties());
+ }
+
+ public String getUser() {
+ return getProperty(USER);
+ }
+
+ public String getPass() {
+ return getProperty(PASS);
+ }
+
+ public String getPath() {
+ return getProperty(PATH);
+ }
+
+ public String getDrv() {
+ return getProperty(DRV);
+ }
+
+ public String getPrefix() {
+ return getProperty(PREFIX);
+ }
+}
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/CFGBaSyxConnection.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/CFGBaSyxConnection.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/CFGBaSyxConnection.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/CFGBaSyxConnection.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/CFGBaSyxProtocolType.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/CFGBaSyxProtocolType.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/CFGBaSyxProtocolType.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/CFGBaSyxProtocolType.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/ConfigurableComponent.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/ConfigurableComponent.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/ConfigurableComponent.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/ConfigurableComponent.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/ConfigurableProperty.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/ConfigurableProperty.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/ConfigurableProperty.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/ConfigurableProperty.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/builder/BaSyxConfigurationBuilder.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/builder/BaSyxConfigurationBuilder.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/builder/BaSyxConfigurationBuilder.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/builder/BaSyxConfigurationBuilder.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/builder/BaSyxDeviceManagerConfigurationBuilder.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/builder/BaSyxDeviceManagerConfigurationBuilder.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/builder/BaSyxDeviceManagerConfigurationBuilder.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/builder/BaSyxDeviceManagerConfigurationBuilder.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/builder/BaSyxServiceConfigurationBuilder.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/builder/BaSyxServiceConfigurationBuilder.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/builder/BaSyxServiceConfigurationBuilder.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/builder/BaSyxServiceConfigurationBuilder.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/exception/InsufficientConfigurationDataException.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/exception/InsufficientConfigurationDataException.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/exception/InsufficientConfigurationDataException.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/configuration/exception/InsufficientConfigurationDataException.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/device/BaseDevice.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/device/BaseDevice.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/device/BaseDevice.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/device/BaseDevice.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/device/BaseSmartDevice.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/device/BaseSmartDevice.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/device/BaseSmartDevice.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/device/BaseSmartDevice.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/device/BaseTCPControllableDeviceAdapter.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/device/BaseTCPControllableDeviceAdapter.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/device/BaseTCPControllableDeviceAdapter.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/device/BaseTCPControllableDeviceAdapter.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/device/BaseTCPDeviceAdapter.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/device/BaseTCPDeviceAdapter.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/device/BaseTCPDeviceAdapter.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/device/BaseTCPDeviceAdapter.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/device/IBaSysNativeDeviceStatus.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/device/IBaSysNativeDeviceStatus.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/device/IBaSysNativeDeviceStatus.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/device/IBaSysNativeDeviceStatus.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/devicemanager/DeviceManagerComponent.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/devicemanager/DeviceManagerComponent.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/devicemanager/DeviceManagerComponent.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/devicemanager/DeviceManagerComponent.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/devicemanager/TCPControllableDeviceManagerComponent.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/devicemanager/TCPControllableDeviceManagerComponent.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/devicemanager/TCPControllableDeviceManagerComponent.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/devicemanager/TCPControllableDeviceManagerComponent.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/devicemanager/TCPDeviceManagerComponent.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/devicemanager/TCPDeviceManagerComponent.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/devicemanager/TCPDeviceManagerComponent.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/devicemanager/TCPDeviceManagerComponent.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/devicemanager/config/DeviceManagerConfiguration.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/devicemanager/config/DeviceManagerConfiguration.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/devicemanager/config/DeviceManagerConfiguration.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/devicemanager/config/DeviceManagerConfiguration.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/directory/AASDirectoryEntry.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/directory/AASDirectoryEntry.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/directory/AASDirectoryEntry.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/directory/AASDirectoryEntry.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/directory/exception/AASDirectoryFormatException.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/directory/exception/AASDirectoryFormatException.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/directory/exception/AASDirectoryFormatException.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/directory/exception/AASDirectoryFormatException.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/directory/exception/AASDirectoryProviderException.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/directory/exception/AASDirectoryProviderException.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/directory/exception/AASDirectoryProviderException.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/directory/exception/AASDirectoryProviderException.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/netcomm/NetworkReceiver.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/netcomm/NetworkReceiver.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/netcomm/NetworkReceiver.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/netcomm/NetworkReceiver.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/netcomm/TCPClient.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/netcomm/TCPClient.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/netcomm/TCPClient.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/netcomm/TCPClient.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/netcomm/TCPCommunicator.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/netcomm/TCPCommunicator.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/netcomm/TCPCommunicator.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/netcomm/TCPCommunicator.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/netcomm/TCPServer.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/netcomm/TCPServer.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/netcomm/TCPServer.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/netcomm/TCPServer.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/processengine/connector/DeviceServiceDelegate.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/processengine/connector/DeviceServiceDelegate.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/processengine/connector/DeviceServiceDelegate.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/processengine/connector/DeviceServiceDelegate.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/processengine/connector/DeviceServiceExecutor.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/processengine/connector/DeviceServiceExecutor.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/processengine/connector/DeviceServiceExecutor.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/processengine/connector/DeviceServiceExecutor.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/processengine/connector/IDeviceServiceExecutor.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/processengine/connector/IDeviceServiceExecutor.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/processengine/connector/IDeviceServiceExecutor.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/processengine/connector/IDeviceServiceExecutor.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/provider/BaseConfiguredProvider.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/provider/BaseConfiguredProvider.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/provider/BaseConfiguredProvider.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/provider/BaseConfiguredProvider.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/service/BaseBaSyxService.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/service/BaseBaSyxService.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/service/BaseBaSyxService.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/service/BaseBaSyxService.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/aas/AASServlet.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/servlet/aas/AASServlet.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/aas/AASServlet.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/servlet/aas/AASServlet.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/registry/StaticCFGDirectoryServlet.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/servlet/registry/StaticCFGDirectoryServlet.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/registry/StaticCFGDirectoryServlet.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/servlet/registry/StaticCFGDirectoryServlet.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/SQLSubModelProviderServlet.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/servlet/submodel/SQLSubModelProviderServlet.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/SQLSubModelProviderServlet.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/servlet/submodel/SQLSubModelProviderServlet.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/SubmodelServlet.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/servlet/submodel/SubmodelServlet.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/SubmodelServlet.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/servlet/submodel/SubmodelServlet.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/XMLXQueryServlet.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/servlet/submodel/XMLXQueryServlet.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/XMLXQueryServlet.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/servlet/submodel/XMLXQueryServlet.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/AbstractCFGSubModelProviderServlet.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/AbstractCFGSubModelProviderServlet.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/AbstractCFGSubModelProviderServlet.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/AbstractCFGSubModelProviderServlet.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/CFGSubModelProviderServlet.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/CFGSubModelProviderServlet.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/CFGSubModelProviderServlet.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/CFGSubModelProviderServlet.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/RawCFGSubModelProviderServlet.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/RawCFGSubModelProviderServlet.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/RawCFGSubModelProviderServlet.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/RawCFGSubModelProviderServlet.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/vab/VABLambdaServlet.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/servlet/vab/VABLambdaServlet.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/vab/VABLambdaServlet.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/servlet/vab/VABLambdaServlet.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/sqlprovider/SQLPreconfiguredSubModelProvider.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/sqlprovider/SQLPreconfiguredSubModelProvider.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/sqlprovider/SQLPreconfiguredSubModelProvider.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/sqlprovider/SQLPreconfiguredSubModelProvider.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/sqlprovider/SQLProviderTestOLD.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/sqlprovider/SQLProviderTestOLD.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/sqlprovider/SQLProviderTestOLD.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/sqlprovider/SQLProviderTestOLD.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/sqlprovider/SQLSubModelProvider.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/sqlprovider/SQLSubModelProvider.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/sqlprovider/SQLSubModelProvider.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/sqlprovider/SQLSubModelProvider.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/sqlprovider/driver/ISQLDriver.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/sqlprovider/driver/ISQLDriver.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/sqlprovider/driver/ISQLDriver.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/sqlprovider/driver/ISQLDriver.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/sqlprovider/driver/SQLDriver.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/sqlprovider/driver/SQLDriver.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/sqlprovider/driver/SQLDriver.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/sqlprovider/driver/SQLDriver.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/sqlprovider/query/DynamicSQLOperation.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/sqlprovider/query/DynamicSQLOperation.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/sqlprovider/query/DynamicSQLOperation.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/sqlprovider/query/DynamicSQLOperation.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/sqlprovider/query/DynamicSQLQuery.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/sqlprovider/query/DynamicSQLQuery.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/sqlprovider/query/DynamicSQLQuery.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/sqlprovider/query/DynamicSQLQuery.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/sqlprovider/query/DynamicSQLRunner.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/sqlprovider/query/DynamicSQLRunner.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/sqlprovider/query/DynamicSQLRunner.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/sqlprovider/query/DynamicSQLRunner.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/sqlprovider/query/DynamicSQLUpdate.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/sqlprovider/query/DynamicSQLUpdate.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/sqlprovider/query/DynamicSQLUpdate.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/sqlprovider/query/DynamicSQLUpdate.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/tools/propertyfile/opdef/OperationDefinition.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/tools/propertyfile/opdef/OperationDefinition.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/tools/propertyfile/opdef/OperationDefinition.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/tools/propertyfile/opdef/OperationDefinition.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/tools/propertyfile/opdef/Parameter.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/tools/propertyfile/opdef/Parameter.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/tools/propertyfile/opdef/Parameter.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/tools/propertyfile/opdef/Parameter.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/tools/propertyfile/opdef/ResultFilter.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/tools/propertyfile/opdef/ResultFilter.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/tools/propertyfile/opdef/ResultFilter.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/tools/propertyfile/opdef/ResultFilter.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/xmlxqueryprovider/OperationNotImplementedException.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/xmlxqueryprovider/OperationNotImplementedException.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/xmlxqueryprovider/OperationNotImplementedException.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/xmlxqueryprovider/OperationNotImplementedException.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/xmlxqueryprovider/XMLXQuerySubModelProvider.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/xmlxqueryprovider/XMLXQuerySubModelProvider.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/xmlxqueryprovider/XMLXQuerySubModelProvider.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/components/xmlxqueryprovider/XMLXQuerySubModelProvider.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/controlcomponent/ControlComponent.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/controlcomponent/ControlComponent.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/controlcomponent/ControlComponent.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/controlcomponent/ControlComponent.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/controlcomponent/ControlComponentChangeListener.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/controlcomponent/ControlComponentChangeListener.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/controlcomponent/ControlComponentChangeListener.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/controlcomponent/ControlComponentChangeListener.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/controlcomponent/ExecutionMode.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/controlcomponent/ExecutionMode.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/controlcomponent/ExecutionMode.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/controlcomponent/ExecutionMode.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/controlcomponent/ExecutionOrder.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/controlcomponent/ExecutionOrder.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/controlcomponent/ExecutionOrder.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/controlcomponent/ExecutionOrder.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/controlcomponent/ExecutionState.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/controlcomponent/ExecutionState.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/controlcomponent/ExecutionState.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/controlcomponent/ExecutionState.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/controlcomponent/OccupationState.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/controlcomponent/OccupationState.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/controlcomponent/OccupationState.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/controlcomponent/OccupationState.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/controlcomponent/SimpleControlComponent.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/controlcomponent/SimpleControlComponent.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/controlcomponent/SimpleControlComponent.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/controlcomponent/SimpleControlComponent.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/controlcomponent/SimpleProxyControlComponent.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/controlcomponent/SimpleProxyControlComponent.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/controlcomponent/SimpleProxyControlComponent.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/controlcomponent/SimpleProxyControlComponent.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/BaSysProcessModel.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/BaSysProcessModel.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/BaSysProcessModel.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/BaSysProcessModel.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/SequentialProcess.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/SequentialProcess.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/SequentialProcess.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/SequentialProcess.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/SequentialProcessNode.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/SequentialProcessNode.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/SequentialProcessNode.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/SequentialProcessNode.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/Device.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/Device.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/Device.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/Device.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/DeviceIF.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/DeviceIF.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/DeviceIF.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/DeviceIF.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/QueueDevice.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/QueueDevice.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/QueueDevice.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/QueueDevice.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/SequentialDevice.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/SequentialDevice.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/SequentialDevice.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/SequentialDevice.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/SortOutDevice.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/SortOutDevice.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/SortOutDevice.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/device/SortOutDevice.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/queue/BoundedQueue.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/queue/BoundedQueue.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/queue/BoundedQueue.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/queue/BoundedQueue.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/queue/QueueSizeExceededException.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/queue/QueueSizeExceededException.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/queue/QueueSizeExceededException.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/queue/QueueSizeExceededException.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/product/ProductAAS.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/product/ProductAAS.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/product/ProductAAS.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/product/ProductAAS.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/product/ProductQualitySubmodel.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/product/ProductQualitySubmodel.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/product/ProductQualitySubmodel.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/models/manufacturing/process/product/ProductQualitySubmodel.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/tools/aas/active/ActiveModel.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/aas/active/ActiveModel.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/tools/aas/active/ActiveModel.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/aas/active/ActiveModel.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/tools/aas/active/HTTPGetter.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/aas/active/HTTPGetter.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/tools/aas/active/HTTPGetter.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/aas/active/HTTPGetter.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/tools/aas/active/HTTPSupplier.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/aas/active/HTTPSupplier.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/tools/aas/active/HTTPSupplier.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/aas/active/HTTPSupplier.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/tools/aas/active/VABModelTask.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/aas/active/VABModelTask.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/tools/aas/active/VABModelTask.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/aas/active/VABModelTask.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/tools/aas/active/VABModelTaskGroup.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/aas/active/VABModelTaskGroup.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/tools/aas/active/VABModelTaskGroup.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/aas/active/VABModelTaskGroup.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLCollection.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLCollection.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLCollection.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLCollection.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLConnector.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLConnector.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLConnector.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLConnector.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLMap.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLMap.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLMap.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLMap.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLProxy.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLProxy.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLProxy.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLProxy.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLRootElement.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLRootElement.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLRootElement.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLRootElement.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLTableRow.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLTableRow.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLTableRow.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/sqlproxy/SQLTableRow.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/tools/sqlproxy/exception/UnknownElementTypeException.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/sqlproxy/exception/UnknownElementTypeException.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/tools/sqlproxy/exception/UnknownElementTypeException.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/sqlproxy/exception/UnknownElementTypeException.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/tools/webserviceclient/WebServiceJSONClient.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/webserviceclient/WebServiceJSONClient.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/tools/webserviceclient/WebServiceJSONClient.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/webserviceclient/WebServiceJSONClient.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/tools/webserviceclient/WebServiceRawClient.java b/components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/webserviceclient/WebServiceRawClient.java
similarity index 100%
rename from components/basys.components/src/main/java/org/eclipse/basyx/tools/webserviceclient/WebServiceRawClient.java
rename to components/basys.components/basyx.components.lib/src/main/java/org/eclipse/basyx/tools/webserviceclient/WebServiceRawClient.java
diff --git a/components/basys.components/src/main/resources/logback.xml b/components/basys.components/basyx.components.lib/src/main/resources/logback.xml
similarity index 100%
rename from components/basys.components/src/main/resources/logback.xml
rename to components/basys.components/basyx.components.lib/src/main/resources/logback.xml
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/cfgprovider/TestCFGProvider.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/cfgprovider/TestCFGProvider.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/cfgprovider/TestCFGProvider.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/cfgprovider/TestCFGProvider.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/cfgprovider/TestCFGProviderPropertyMetaData.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/cfgprovider/TestCFGProviderPropertyMetaData.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/cfgprovider/TestCFGProviderPropertyMetaData.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/cfgprovider/TestCFGProviderPropertyMetaData.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/cfgprovider/TestCFGProviderSubmodelMetaData.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/cfgprovider/TestCFGProviderSubmodelMetaData.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/cfgprovider/TestCFGProviderSubmodelMetaData.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/cfgprovider/TestCFGProviderSubmodelMetaData.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/file/TestAASDirectoryEntry.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/directory/file/TestAASDirectoryEntry.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/file/TestAASDirectoryEntry.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/directory/file/TestAASDirectoryEntry.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/file/TestStaticDirectoryFileProvider.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/directory/file/TestStaticDirectoryFileProvider.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/file/TestStaticDirectoryFileProvider.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/directory/file/TestStaticDirectoryFileProvider.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/file/TestStaticDirectoryFileProviderExceptions.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/directory/file/TestStaticDirectoryFileProviderExceptions.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/file/TestStaticDirectoryFileProviderExceptions.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/directory/file/TestStaticDirectoryFileProviderExceptions.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/models/controlcomponent/TestSimpleControlComponent.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/models/controlcomponent/TestSimpleControlComponent.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/models/controlcomponent/TestSimpleControlComponent.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/models/controlcomponent/TestSimpleControlComponent.java
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/TestSequentialProcessModel.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/models/manufacturing/process/TestSequentialProcessModel.java
similarity index 94%
rename from components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/TestSequentialProcessModel.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/models/manufacturing/process/TestSequentialProcessModel.java
index 9cce57a..0f2b11d 100644
--- a/components/basys.components/src/main/java/org/eclipse/basyx/models/manufacturing/process/model/TestSequentialProcessModel.java
+++ b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/models/manufacturing/process/TestSequentialProcessModel.java
@@ -1,9 +1,11 @@
-package org.eclipse.basyx.models.manufacturing.process.model;
+package org.eclipse.basyx.regression.models.manufacturing.process;
import java.util.Collection;
import java.util.NoSuchElementException;
import org.eclipse.basyx.aas.metamodel.map.descriptor.ModelUrn;
+import org.eclipse.basyx.models.manufacturing.process.model.BaSysProcessModel;
+import org.eclipse.basyx.models.manufacturing.process.model.SequentialProcess;
import org.junit.Test;
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/DynamicActivitiProcessTest.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/processengineconnector/DynamicActivitiProcessTest.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/DynamicActivitiProcessTest.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/processengineconnector/DynamicActivitiProcessTest.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/TestAASServicecall.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/processengineconnector/TestAASServicecall.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/TestAASServicecall.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/processengineconnector/TestAASServicecall.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/TestJavaDelegate.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/processengineconnector/TestJavaDelegate.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/TestJavaDelegate.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/processengineconnector/TestJavaDelegate.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/TestTransportProcess_ConfigureEngineProgrammatically.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/processengineconnector/TestTransportProcess_ConfigureEngineProgrammatically.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/TestTransportProcess_ConfigureEngineProgrammatically.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/processengineconnector/TestTransportProcess_ConfigureEngineProgrammatically.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/TestRawCFGProviderAAS.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/TestRawCFGProviderAAS.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/TestRawCFGProviderAAS.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/TestRawCFGProviderAAS.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/TestRawCFGProviderAASNewModel.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/TestRawCFGProviderAASNewModel.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/TestRawCFGProviderAASNewModel.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/TestRawCFGProviderAASNewModel.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/TestRawCFGProviderComplexType.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/TestRawCFGProviderComplexType.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/TestRawCFGProviderComplexType.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/TestRawCFGProviderComplexType.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/TestRawCFGProviderSimpleValues.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/TestRawCFGProviderSimpleValues.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/TestRawCFGProviderSimpleValues.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/TestRawCFGProviderSimpleValues.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlprovider/SQLInvocationsTest.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlprovider/SQLInvocationsTest.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlprovider/SQLInvocationsTest.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlprovider/SQLInvocationsTest.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlprovider/SQLQueriesTest.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlprovider/SQLQueriesTest.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlprovider/SQLQueriesTest.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlprovider/SQLQueriesTest.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLConfig.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLConfig.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLConfig.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLConfig.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestCollectionSetOperations.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestCollectionSetOperations.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestCollectionSetOperations.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestCollectionSetOperations.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestCollectionSimple.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestCollectionSimple.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestCollectionSimple.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestCollectionSimple.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestCollectionTypes.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestCollectionTypes.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestCollectionTypes.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestCollectionTypes.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestMapArrayTypes.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestMapArrayTypes.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestMapArrayTypes.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestMapArrayTypes.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestMapSetOperations.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestMapSetOperations.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestMapSetOperations.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestMapSetOperations.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestMapSimple.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestMapSimple.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestMapSimple.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestMapSimple.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestMapSimpleTypes.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestMapSimpleTypes.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestMapSimpleTypes.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestMapSimpleTypes.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestRootElement.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestRootElement.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestRootElement.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestRootElement.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestRootElementSQLElements.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestRootElementSQLElements.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestRootElementSQLElements.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/sqlproxy/SQLProxyTestRootElementSQLElements.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/directory/ComponentsTestsuiteDirectory.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/directory/ComponentsTestsuiteDirectory.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/support/directory/ComponentsTestsuiteDirectory.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/directory/ComponentsTestsuiteDirectory.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/aas/DeviceAdministrationShellFactory.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/processengine/aas/DeviceAdministrationShellFactory.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/aas/DeviceAdministrationShellFactory.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/processengine/aas/DeviceAdministrationShellFactory.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/servlet/CoilcarAASServlet.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/processengine/servlet/CoilcarAASServlet.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/servlet/CoilcarAASServlet.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/processengine/servlet/CoilcarAASServlet.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/BPMNEngineStub.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/BPMNEngineStub.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/BPMNEngineStub.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/BPMNEngineStub.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/BPMNModelFactory.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/BPMNModelFactory.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/BPMNModelFactory.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/BPMNModelFactory.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/Coilcar.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/Coilcar.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/Coilcar.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/Coilcar.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/CoilcarStub.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/CoilcarStub.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/CoilcarStub.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/CoilcarStub.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/DeviceServiceExecutorStub.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/DeviceServiceExecutorStub.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/DeviceServiceExecutorStub.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/DeviceServiceExecutorStub.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/ICoilcar.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/ICoilcar.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/ICoilcar.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/ICoilcar.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/submodel/DeviceSubmodelFactory.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/processengine/submodel/DeviceSubmodelFactory.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/submodel/DeviceSubmodelFactory.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/processengine/submodel/DeviceSubmodelFactory.java
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/server/context/ComponentsRegressionContext.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/server/context/ComponentsRegressionContext.java
similarity index 89%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/support/server/context/ComponentsRegressionContext.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/server/context/ComponentsRegressionContext.java
index 4583683..1920097 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/server/context/ComponentsRegressionContext.java
+++ b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/support/server/context/ComponentsRegressionContext.java
@@ -1,6 +1,5 @@
package org.eclipse.basyx.regression.support.server.context;
-import org.eclipse.basyx.components.servlet.registry.SQLRegistryServlet;
import org.eclipse.basyx.components.servlet.registry.StaticCFGDirectoryServlet;
import org.eclipse.basyx.components.servlet.submodel.SQLSubModelProviderServlet;
import org.eclipse.basyx.components.servlet.submodel.XMLXQueryServlet;
@@ -40,7 +39,6 @@
addServletMapping("/Testsuite/components/BaSys/1.0/provider/rawcfgsm/*", new RawCFGSubModelProviderServlet().withParameter("config", "/WebContent/WEB-INF/config/rawcfgprovider/samplecfg.properties"));
addServletMapping("/Testsuite/components/BaSys/1.0/provider/xmlxquery/*", new XMLXQueryServlet().withParameter("config", "/WebContent/WEB-INF/config/xmlqueryprovider/xmlqueryprovider.properties"));
addServletMapping("/Testsuite/Directory/CFGFile/*", new StaticCFGDirectoryServlet().withParameter("config", "/WebContent/WEB-INF/config/directory/cfgdirectory/directory.properties"));
- addServletMapping("/Testsuite/Directory/SQL/*", new SQLRegistryServlet().withParameter("config", "/WebContent/WEB-INF/config/directory/sqldirectory/directory.properties"));
addServletMapping("/Testsuite/Processengine/coilcar/*", new CoilcarAASServlet());
}
}
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/xqueryprovider/XQueryProviderQueries.java b/components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/xqueryprovider/XQueryProviderQueries.java
similarity index 100%
rename from components/basys.components/src/test/java/org/eclipse/basyx/regression/xqueryprovider/XQueryProviderQueries.java
rename to components/basys.components/basyx.components.lib/src/test/java/org/eclipse/basyx/regression/xqueryprovider/XQueryProviderQueries.java
diff --git a/components/basys.components/pom.xml b/components/basys.components/pom.xml
index cdd071b..79515eb 100644
--- a/components/basys.components/pom.xml
+++ b/components/basys.components/pom.xml
@@ -1,305 +1,135 @@
-<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>
- <groupId>org.eclipse.basyx</groupId>
- <artifactId>basyx.components</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>jar</packaging>
- <name>BaSyx Components</name>
-
-
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- </properties>
-
- <repositories>
- <repository>
- <id>mule</id>
- <name>Mule Repository</name>
- <url>https://repository.mulesoft.org/nexus/content/groups/public/</url>
- <layout>default</layout>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
- </repositories>
-
- <build>
- <sourceDirectory>src/main/java</sourceDirectory>
- <testSourceDirectory>src/test/java</testSourceDirectory>
-
- <plugins>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.7.0</version>
- <configuration>
- <source>1.8</source>
- <target>1.8</target>
- </configuration>
- </plugin>
-
- <!-- Attach sources to jar file -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-source-plugin</artifactId>
- <version>3.1.0</version>
- <executions>
- <execution>
- <id>attach-sources</id>
- <goals>
- <goal>jar</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <!-- Generate separate jar for tests and exclude logback.xml from generated jars -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <version>3.1.1</version>
- <configuration>
- <excludes>
- <exclude>**/logback.xml</exclude>
- </excludes>
- </configuration>
- <executions>
- <execution>
- <goals>
- <goal>test-jar</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <artifactId>maven-war-plugin</artifactId>
- <version>3.0.0</version>
- <!-- <configuration>
- <warSourceDirectory>WebContent</warSourceDirectory>
- </configuration> -->
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <!-- <version>2.12.1</version> -->
- <version>2.4.2</version>
- <configuration>
- <excludes>
- <exclude>**/*HTTP*</exclude>
- <exclude>**/*TCP*</exclude>
- </excludes>
- </configuration>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-failsafe-plugin</artifactId>
- <version>2.12.4</version>
- <configuration>
- <includes>
- <include>**/*HTTP*</include>
- <include>**/*TCP*</include>
- </includes>
- </configuration>
- <executions>
- <execution>
- <goals>
- <goal>integration-test</goal>
- <goal>verify</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
- <dependencies>
- <!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
- <dependency>
- <groupId>org.postgresql</groupId>
- <artifactId>postgresql</artifactId>
- <version>42.2.2</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/org.glassfish.hk2.external/aopalliance-repackaged -->
- <dependency>
- <groupId>org.glassfish.hk2.external</groupId>
- <artifactId>aopalliance-repackaged</artifactId>
- <version>2.5.0-b42</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/javax.enterprise/cdi-api -->
- <dependency>
- <groupId>javax.enterprise</groupId>
- <artifactId>cdi-api</artifactId>
- <version>2.0</version>
- <scope>provided</scope>
- </dependency>
- <!-- https://mvnrepository.com/artifact/javax.el/el-api -->
- <dependency>
- <groupId>javax.el</groupId>
- <artifactId>el-api</artifactId>
- <version>2.2</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/org.glassfish.hk2/hk2-api -->
- <dependency>
- <groupId>org.glassfish.hk2</groupId>
- <artifactId>hk2-api</artifactId>
- <version>2.5.0</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/javassist/javassist -->
- <dependency>
- <groupId>javassist</groupId>
- <artifactId>javassist</artifactId>
- <version>3.12.1.GA</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->
- <!-- https://mvnrepository.com/artifact/javax.inject/javax.inject -->
- <dependency>
- <groupId>javax.inject</groupId>
- <artifactId>javax.inject</artifactId>
- <version>1</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/javax.json/javax.json-api -->
- <dependency>
- <groupId>javax.json</groupId>
- <artifactId>javax.json-api</artifactId>
- <version>1.0</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api -->
- <dependency>
- <groupId>javax.xml.bind</groupId>
- <artifactId>jaxb-api</artifactId>
- <version>2.3.0</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/org.jboss.spec.javax.interceptor/jboss-interceptors-api_1.1_spec -->
- <dependency>
- <groupId>org.jboss.spec.javax.interceptor</groupId>
- <artifactId>jboss-interceptors-api_1.1_spec</artifactId>
- <version>1.0.1.Final</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->
- <dependency>
- <groupId>javax.annotation</groupId>
- <artifactId>javax.annotation-api</artifactId>
- <version>1.3.2</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/org.osgi/org.osgi.core -->
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
- <version>4.2.0</version>
- <scope>provided</scope>
- </dependency>
- <!-- https://mvnrepository.com/artifact/org.glassfish.hk2/osgi-resource-locator -->
- <dependency>
- <groupId>org.glassfish.hk2</groupId>
- <artifactId>osgi-resource-locator</artifactId>
- <version>1.0.1</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/javax.persistence/persistence-api -->
- <dependency>
- <groupId>javax.persistence</groupId>
- <artifactId>persistence-api</artifactId>
- <version>1.0.2</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->
- <dependency>
- <groupId>javax.validation</groupId>
- <artifactId>validation-api</artifactId>
- <version>2.0.1.Final</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
- <version>3.1.0</version>
- <scope>provided</scope>
- </dependency>
-
- <!-- https://mvnrepository.com/artifact/org.eclipse/yasson -->
- <dependency>
- <groupId>org.eclipse</groupId>
- <artifactId>yasson</artifactId>
- <version>1.0.2</version>
- </dependency>
-<!-- https://mvnrepository.com/artifact/org.activiti/activiti-engine -->
- <dependency>
- <groupId>org.activiti</groupId>
- <artifactId>activiti-engine</artifactId>
- <version>6.0.0</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/org.activiti/activiti-bpmn-model -->
- <dependency>
- <groupId>org.activiti</groupId>
- <artifactId>activiti-bpmn-model</artifactId>
- <version>6.0.0</version>
- </dependency>
-
- <!-- https://mvnrepository.com/artifact/org.activiti/activiti-bpmn-layout -->
- <dependency>
- <groupId>org.activiti</groupId>
- <artifactId>activiti-bpmn-layout</artifactId>
- <version>6.0.0</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- <version>2.4</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
- <dependency>
- <groupId>com.h2database</groupId>
- <artifactId>h2</artifactId>
- <version>1.4.197</version>
- </dependency>
-
- <!-- https://mvnrepository.com/artifact/javax.xml.xquery/xqj-api (Add from
- local repository because jar cannot be found on maven central -->
- <dependency>
- <groupId>javax.xml.xquery</groupId>
- <artifactId>xqj-api</artifactId>
- <version>1.0</version>
- </dependency>
-
- <!-- https://mvnrepository.com/artifact/net.sf.saxon/saxon-xqj -->
- <!-- <dependency> <groupId>net.sf.saxon</groupId> <artifactId>saxon-xqj</artifactId>
- <version>9.x</version> </dependency> -->
-
-
- <!-- https://mvnrepository.com/artifact/net.sf.saxon/saxon-xqj -->
- <dependency>
- <groupId>net.sf.saxon</groupId>
- <artifactId>saxon-xqj</artifactId>
- <version>8.9.0.4</version>
- </dependency>
-
-
- <!-- https://mvnrepository.com/artifact/net.sf.saxon/Saxon-HE -->
- <dependency>
- <groupId>net.sf.saxon</groupId>
- <artifactId>Saxon-HE</artifactId>
- <version>9.5.1-5</version>
- </dependency>
- <dependency>
- <groupId>com.google.code.gson</groupId>
- <artifactId>gson</artifactId>
- <version>2.8.5</version>
- </dependency>
+<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>
- <!-- Add BaSys SDK -->
+ <groupId>org.eclipse.basyx</groupId>
+ <artifactId>basyx.components</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <name>BaSyx Components</name>
+
+ <packaging>pom</packaging>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+ </properties>
+
+ <!-- Includes all components in this project as separated modules -->
+ <modules>
+ <module>basyx.components.lib</module>
+ <module>basyx.components.docker</module>
+ </modules>
+
+ <build>
+ <!-- Specifies plugin settings that are common for all submodules -->
+ <pluginManagement>
+ <plugins>
+ <!-- Compile Java sources using Java 8 -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.8.1</version>
+ <configuration>
+ <source>1.8</source>
+ <target>1.8</target>
+ </configuration>
+ </plugin>
+
+ <!-- Attach sources to jar file -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <version>3.2.1</version>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <goals>
+ <goal>jar-no-fork</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!-- Generate separate jar for tests and exclude logback.xml from generated jars -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>3.1.1</version>
+ <configuration>
+ <excludes>
+ <exclude>**/logback.xml</exclude>
+ </excludes>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!-- Run unit tests (Test*.java, *Test.java, *Tests.java and *TestCase.java excluding HTTP and TCP tests) -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>3.0.0-M3</version>
+ <configuration>
+ <excludes>
+ <exclude>**/*HTTP*</exclude>
+ <exclude>**/*TCP*</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+
+ <!-- Run integration tests (IT*.java, *IT.java and *ITCase.java) -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <version>3.0.0-M3</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+
+ <!-- Every submodule depends on these dependencies -->
+ <dependencies>
+ <!-- JUnit 4 for running JUnit tests -->
<dependency>
- <groupId>org.eclipse.basyx</groupId>
- <artifactId>basyx.sdk</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- </dependency>
- <!-- Adds additional classes of the BaSys SDK for tests -->
- <dependency>
- <groupId>org.eclipse.basyx</groupId>
- <artifactId>basyx.sdk</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <classifier>tests</classifier>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
+
+ <!-- Specifies dependency settings for all submodules using these dependencies -->
+ <dependencyManagement>
+ <dependencies>
+ <!-- BaSyx SDK -->
+ <dependency>
+ <groupId>org.eclipse.basyx</groupId>
+ <artifactId>basyx.sdk</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+
+ <!-- BaSyx SDK tests -->
+ <dependency>
+ <groupId>org.eclipse.basyx</groupId>
+ <artifactId>basyx.sdk</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <classifier>tests</classifier>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
</project>
\ No newline at end of file
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/directory/SQLRegistry.java b/components/basys.components/src/main/java/org/eclipse/basyx/components/directory/SQLRegistry.java
deleted file mode 100644
index 609f213..0000000
--- a/components/basys.components/src/main/java/org/eclipse/basyx/components/directory/SQLRegistry.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package org.eclipse.basyx.components.directory;
-
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Map;
-import java.util.Properties;
-
-import javax.servlet.ServletException;
-
-import org.eclipse.basyx.aas.registration.memory.MapRegistry;
-import org.eclipse.basyx.tools.sqlproxy.SQLRootElement;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Implements a local registry based on an SQL database
- *
- * @author espen
- *
- */
-public class SQLRegistry extends MapRegistry {
- private static Logger logger = LoggerFactory.getLogger(SQLRegistry.class);
-
- /**
- * Receives the path of the configuration.properties file in it's constructor.
- *
- * @param configFilePath
- */
- public SQLRegistry(String configFilePath) {
- super(new AASDescriptorMap(initRootMap(configFilePath)));
-
- }
-
- private static Map<String, Object> initRootMap(String configFilePath) {
- SQLRootElement sqlRootElement = initSQLConnection(configFilePath);
- sqlRootElement.drop();
- sqlRootElement.create();
-
- return sqlRootElement.createMap(sqlRootElement.getNextIdentifier());
- }
-
- /**
- * Initialize sqlDriver
- *
- * @throws IOException
- * @throws FileNotFoundException
- *
- * @throws ServletException
- */
- private static final SQLRootElement initSQLConnection(String configFilePath) {
- try (InputStream input = new FileInputStream(configFilePath)) {
- // Instantiate property structure
- Properties properties = new Properties();
- properties.load(input);
-
- // SQL parameter
- String path = properties.getProperty("dburl");
- String user = properties.getProperty("dbuser");
- String pass = properties.getProperty("dbpass");
- String qryPfx = properties.getProperty("sqlPrefix");
- String qDrvCls = properties.getProperty("sqlDriver");
-
- // Create SQL driver instance
- return new SQLRootElement(user, pass, path, qDrvCls, qryPfx, "root_registry");
- } catch (IOException e) {
- logger.error("Could not init SQL connection from config file", e);
- }
-
- return null;
- }
-}
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/registry/SQLRegistryServlet.java b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/registry/SQLRegistryServlet.java
deleted file mode 100644
index 56f5322..0000000
--- a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/registry/SQLRegistryServlet.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.eclipse.basyx.components.servlet.registry;
-
-
-import org.eclipse.basyx.aas.registration.restapi.DirectoryModelProvider;
-import org.eclipse.basyx.components.directory.SQLRegistry;
-import org.eclipse.basyx.vab.protocol.http.server.VABHTTPInterface;
-
-
-/**
- * SQL database based directory provider
- *
- * This directory provider provides a static directory. It therefore only
- * supports get() operations. Modification of the directory via
- * PUT/POST/PATCH/DELETE operations is not supported.
- *
- * @author kuhn, pschorn
- *
- */
-public class SQLRegistryServlet extends VABHTTPInterface<DirectoryModelProvider> {
-
-
- private static final long serialVersionUID = 1L;
-
- /**
- * Path to the directory.properties file, that contains config data for the SQL
- * connection
- */
- private static String configFilePath = "./WebContent/WEB-INF/config/directory/sqldirectory/directory.properties";
-
- /**
- * Provide HTTP interface with JSONProvider to handle serialization and
- * SQLDirectoryProvider as backend
- */
- public SQLRegistryServlet() {
- super(new DirectoryModelProvider(new SQLRegistry(configFilePath)));
-
- }
-
- public SQLRegistryServlet(String customConfigFilePath) {
- super(new DirectoryModelProvider(new SQLRegistry(customConfigFilePath)));
- }
-
-
-}
-
diff --git a/examples/basys.examples/pom.xml b/examples/basys.examples/pom.xml
index 3692a9e..21e09b0 100644
--- a/examples/basys.examples/pom.xml
+++ b/examples/basys.examples/pom.xml
@@ -62,8 +62,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
- <!-- <version>2.12.1</version> -->
- <version>2.4.2</version>
+ <version>3.0.0-M3</version>
<configuration>
<excludes>
<exclude>**/*contexts*</exclude>
@@ -86,7 +85,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
- <version>2.12.4</version>
+ <version>3.0.0-M3</version>
<configuration>
<includes>
<include>**/*HTTP*</include>
@@ -271,8 +270,24 @@
<!-- Add BaSys components from local repository. Maven build of SDK must generate a jar and place it into the repository to update -->
<dependency>
<groupId>org.eclipse.basyx</groupId>
- <artifactId>basyx.components</artifactId>
+ <artifactId>basyx.components.lib</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
+
+ <!-- Add explicit SQLRegistry dependency -->
+ <dependency>
+ <groupId>org.eclipse.basyx</groupId>
+ <artifactId>basyx.components.sqlregistry</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+
+ <!-- Adds additional classes of the BaSys SDK for tests -->
+ <dependency>
+ <groupId>org.eclipse.basyx</groupId>
+ <artifactId>basyx.sdk</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <classifier>tests</classifier>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/contexts/BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/contexts/BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory.java
index a1c8162..614da66 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/contexts/BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/contexts/BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory.java
@@ -1,6 +1,6 @@
package org.eclipse.basyx.examples.contexts;
-import org.eclipse.basyx.components.servlet.registry.SQLRegistryServlet;
+import org.eclipse.basyx.components.servlet.SQLRegistryServlet;
import org.eclipse.basyx.components.servlet.submodel.cfg.RawCFGSubModelProviderServlet;
import org.eclipse.basyx.vab.protocol.http.server.BaSyxContext;
diff --git a/examples/basys.examples/WebContent/WEB-INF/config/directory/sqldirectory/directory.properties b/examples/basys.examples/src/test/resources/registry.properties
similarity index 100%
rename from examples/basys.examples/WebContent/WEB-INF/config/directory/sqldirectory/directory.properties
rename to examples/basys.examples/src/test/resources/registry.properties