Restructures servlet(s) & refactors CFGProvider
Change-Id: Ib3807925de14ad09b40519e065decbbdf86d6fdb
Signed-off-by: Frank Schnicke <frank.schnicke@iese.fraunhofer.de>
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/AASServlet.java b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/aas/AASServlet.java
similarity index 93%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/AASServlet.java
rename to components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/aas/AASServlet.java
index 6a621b6..e8a2194 100644
--- a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/AASServlet.java
+++ b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/aas/AASServlet.java
@@ -1,4 +1,4 @@
-package org.eclipse.basyx.components.servlet.submodel;
+package org.eclipse.basyx.components.servlet.aas;
import org.eclipse.basyx.aas.metamodel.map.AssetAdministrationShell;
import org.eclipse.basyx.aas.restapi.AASModelProvider;
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlets/SQLDirectoryServlet.java b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/registry/SQLRegistryServlet.java
similarity index 81%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/servlets/SQLDirectoryServlet.java
rename to components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/registry/SQLRegistryServlet.java
index ebf3291..56f5322 100644
--- a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlets/SQLDirectoryServlet.java
+++ b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/registry/SQLRegistryServlet.java
@@ -1,4 +1,4 @@
-package org.eclipse.basyx.components.servlets;
+package org.eclipse.basyx.components.servlet.registry;
import org.eclipse.basyx.aas.registration.restapi.DirectoryModelProvider;
@@ -16,7 +16,7 @@
* @author kuhn, pschorn
*
*/
-public class SQLDirectoryServlet extends VABHTTPInterface<DirectoryModelProvider> {
+public class SQLRegistryServlet extends VABHTTPInterface<DirectoryModelProvider> {
private static final long serialVersionUID = 1L;
@@ -31,12 +31,12 @@
* Provide HTTP interface with JSONProvider to handle serialization and
* SQLDirectoryProvider as backend
*/
- public SQLDirectoryServlet() {
+ public SQLRegistryServlet() {
super(new DirectoryModelProvider(new SQLRegistry(configFilePath)));
}
- public SQLDirectoryServlet(String customConfigFilePath) {
+ public SQLRegistryServlet(String customConfigFilePath) {
super(new DirectoryModelProvider(new SQLRegistry(customConfigFilePath)));
}
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlets/StaticCFGDirectoryServlet.java b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/registry/StaticCFGDirectoryServlet.java
similarity index 99%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/servlets/StaticCFGDirectoryServlet.java
rename to components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/registry/StaticCFGDirectoryServlet.java
index 25432b5..8e88e14 100644
--- a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlets/StaticCFGDirectoryServlet.java
+++ b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/registry/StaticCFGDirectoryServlet.java
@@ -1,4 +1,4 @@
-package org.eclipse.basyx.components.servlets;
+package org.eclipse.basyx.components.servlet.registry;
import java.io.IOException;
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlets/SQLSubModelProviderServlet.java b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/SQLSubModelProviderServlet.java
similarity index 97%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/servlets/SQLSubModelProviderServlet.java
rename to components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/SQLSubModelProviderServlet.java
index 1931567..7de51c7 100644
--- a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlets/SQLSubModelProviderServlet.java
+++ b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/SQLSubModelProviderServlet.java
@@ -1,4 +1,4 @@
-package org.eclipse.basyx.components.servlets;
+package org.eclipse.basyx.components.servlet.submodel;
import java.io.IOException;
import java.io.InputStream;
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlets/XMLXQueryServlet.java b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/XMLXQueryServlet.java
similarity index 97%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/servlets/XMLXQueryServlet.java
rename to components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/XMLXQueryServlet.java
index a95d959..206fd65 100644
--- a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlets/XMLXQueryServlet.java
+++ b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/XMLXQueryServlet.java
@@ -1,4 +1,4 @@
-package org.eclipse.basyx.components.servlets;
+package org.eclipse.basyx.components.servlet.submodel;
import java.io.IOException;
import java.io.InputStream;
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlets/RawCFGSubModelProviderServlet.java b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/AbstractCFGSubModelProviderServlet.java
similarity index 64%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/servlets/RawCFGSubModelProviderServlet.java
rename to components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/AbstractCFGSubModelProviderServlet.java
index 5b45a43..0a89266 100644
--- a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlets/RawCFGSubModelProviderServlet.java
+++ b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/AbstractCFGSubModelProviderServlet.java
@@ -1,4 +1,4 @@
-package org.eclipse.basyx.components.servlets;
+package org.eclipse.basyx.components.servlet.submodel.cfg;
import java.io.IOException;
import java.io.InputStream;
@@ -7,18 +7,16 @@
import javax.servlet.ServletException;
import org.eclipse.basyx.aas.restapi.VABMultiSubmodelProvider;
-import org.eclipse.basyx.components.cfgprovider.RawCFGSubModelProvider;
-import org.eclipse.basyx.submodel.metamodel.map.qualifier.Referable;
+import org.eclipse.basyx.submodel.restapi.SubModelProvider;
import org.eclipse.basyx.vab.protocol.http.server.VABHTTPInterface;
/**
- * Servlet interface for configuration file sub model provider
+ * Abstract super class for all config file using submodel provider servlets
*
- * @author kuhn
+ * @author schnicke
*
*/
-public class RawCFGSubModelProviderServlet extends VABHTTPInterface<VABMultiSubmodelProvider> {
-
+public abstract class AbstractCFGSubModelProviderServlet extends VABHTTPInterface<VABMultiSubmodelProvider> {
/**
* Version information to identify the version of serialized instances
*/
@@ -34,15 +32,13 @@
*/
protected Properties properties = null;
- /**
- * Constructor
- */
- public RawCFGSubModelProviderServlet() {
- // Invoke base constructor
- super(new VABMultiSubmodelProvider());
- // Change factory instance
- // this.getProviderBackend().getSerializerReference().setFactory(newFactoryInstance);
+ /**
+ * Standard constructor creating a servlet containing a new
+ * VABMultiSubmodelProvider()
+ */
+ public AbstractCFGSubModelProviderServlet() {
+ super(new VABMultiSubmodelProvider());
}
/**
@@ -59,7 +55,7 @@
properties.load(input);
// Extract AAS properties
- this.submodelID = properties.getProperty(Referable.IDSHORT);
+ this.submodelID = properties.getProperty(getSubmodelId());
} catch (IOException e) {
// Output exception
e.printStackTrace();
@@ -84,10 +80,26 @@
System.out.println("1:" + submodelID);
// Create sub model provider
- RawCFGSubModelProvider submodelProvider = new RawCFGSubModelProvider(properties);
+ SubModelProvider submodelProvider = createProvider(properties);
// - Add sub model provider
this.getModelProvider().addSubmodel(submodelID, submodelProvider);
System.out.println("CFG file loaded");
}
+
+ /**
+ * Retrieves the submodel id
+ *
+ * @return
+ */
+ protected abstract String getSubmodelId();
+
+ /**
+ * Creates the appropriate provider based on the passed properties
+ *
+ * @param properties
+ * @return
+ */
+ protected abstract SubModelProvider createProvider(Properties properties);
+
}
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/CFGSubModelProviderServlet.java b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/CFGSubModelProviderServlet.java
new file mode 100644
index 0000000..1391f89
--- /dev/null
+++ b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/CFGSubModelProviderServlet.java
@@ -0,0 +1,32 @@
+package org.eclipse.basyx.components.servlet.submodel.cfg;
+
+import java.util.Properties;
+
+import org.eclipse.basyx.components.cfgprovider.CFGSubModelProvider;
+import org.eclipse.basyx.components.provider.BaseConfiguredProvider;
+import org.eclipse.basyx.submodel.restapi.SubModelProvider;
+
+/**
+ * Servlet interface for configuration file sub model provider
+ *
+ * @author kuhn
+ *
+ */
+public class CFGSubModelProviderServlet extends AbstractCFGSubModelProviderServlet {
+
+ /**
+ * Version information to identify the version of serialized instances
+ */
+ private static final long serialVersionUID = -7525848804623194574L;
+
+
+ @Override
+ protected String getSubmodelId() {
+ return BaseConfiguredProvider.buildBasyxCfgName(BaseConfiguredProvider.SUBMODELID);
+ }
+
+ @Override
+ protected SubModelProvider createProvider(Properties properties) {
+ return new CFGSubModelProvider(properties);
+ }
+}
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/RawCFGSubModelProviderServlet.java b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/RawCFGSubModelProviderServlet.java
new file mode 100644
index 0000000..9a87495
--- /dev/null
+++ b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/cfg/RawCFGSubModelProviderServlet.java
@@ -0,0 +1,33 @@
+package org.eclipse.basyx.components.servlet.submodel.cfg;
+
+import java.util.Properties;
+
+import org.eclipse.basyx.components.cfgprovider.RawCFGSubModelProvider;
+import org.eclipse.basyx.submodel.metamodel.map.qualifier.Referable;
+import org.eclipse.basyx.submodel.restapi.SubModelProvider;
+
+/**
+ * Servlet interface for configuration file sub model provider
+ *
+ * @author kuhn
+ *
+ */
+public class RawCFGSubModelProviderServlet extends AbstractCFGSubModelProviderServlet {
+
+ /**
+ * Version information to identify the version of serialized instances
+ */
+ private static final long serialVersionUID = -8132051635222485719L;
+
+
+ @Override
+ protected String getSubmodelId() {
+ return Referable.IDSHORT;
+ }
+
+
+ @Override
+ protected SubModelProvider createProvider(Properties properties) {
+ return new RawCFGSubModelProvider(properties);
+ }
+}
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/VABLambdaServlet.java b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/vab/VABLambdaServlet.java
similarity index 92%
rename from components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/VABLambdaServlet.java
rename to components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/vab/VABLambdaServlet.java
index 7f1f392..fbd7e5d 100644
--- a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/submodel/VABLambdaServlet.java
+++ b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlet/vab/VABLambdaServlet.java
@@ -1,4 +1,4 @@
-package org.eclipse.basyx.components.servlet.submodel;
+package org.eclipse.basyx.components.servlet.vab;
import java.util.HashMap;
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlets/CFGSubModelProviderServlet.java b/components/basys.components/src/main/java/org/eclipse/basyx/components/servlets/CFGSubModelProviderServlet.java
deleted file mode 100644
index 38d5024..0000000
--- a/components/basys.components/src/main/java/org/eclipse/basyx/components/servlets/CFGSubModelProviderServlet.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package org.eclipse.basyx.components.servlets;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-
-import org.eclipse.basyx.aas.restapi.VABMultiSubmodelProvider;
-import org.eclipse.basyx.components.cfgprovider.CFGSubModelProvider;
-import org.eclipse.basyx.components.provider.BaseConfiguredProvider;
-import org.eclipse.basyx.vab.protocol.http.server.VABHTTPInterface;
-
-/**
- * Servlet interface for configuration file sub model provider
- *
- * @author kuhn
- *
- */
-public class CFGSubModelProviderServlet extends VABHTTPInterface<VABMultiSubmodelProvider> {
-
- /**
- * Version information to identify the version of serialized instances
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Store ID of the sub model provided by this provider
- */
- protected String submodelID = null;
-
- /**
- * Configuration properties
- */
- protected Properties properties = null;
-
- /**
- * Constructor
- */
- public CFGSubModelProviderServlet() {
- // Invoke base constructor
- super(new VABMultiSubmodelProvider());
- }
-
- /**
- * Load properties from file
- */
- protected void loadProperties(String cfgFilePath) {
- // Read property file
- try {
- // Open property file
- ServletContext context = getServletContext();
- System.out.println("Context Path: " + context.getContextPath() + " - " + context.getRealPath(cfgFilePath)
- + " + " + cfgFilePath);
- InputStream input = context.getResourceAsStream(cfgFilePath);
-
- // Instantiate property structure
- properties = new Properties();
- properties.load(input);
-
- // Extract AAS properties
- this.submodelID = properties.getProperty(BaseConfiguredProvider.buildBasyxCfgName(BaseConfiguredProvider.SUBMODELID));
- } catch (IOException e) {
- // Output exception
- e.printStackTrace();
- }
- }
-
- /**
- * Initialize servlet
- *
- * @throws ServletException
- */
- public void init() throws ServletException {
- // Call base implementation
- super.init();
-
- // Read configuration values
- String configFilePath = (String) getInitParameter("config");
- // - Read property file
- loadProperties(configFilePath);
-
- System.out.println("1:" + submodelID);
-
- // Create sub model provider
- CFGSubModelProvider submodelProvider = new CFGSubModelProvider(properties);
- // - Add sub model provider
- this.getModelProvider().addSubmodel(submodelID, submodelProvider);
-
- System.out.println("CFG file loaded");
- }
-}
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/server/context/ComponentsRegressionContext.java b/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/server/context/ComponentsRegressionContext.java
index ba9ab5b..4583683 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/server/context/ComponentsRegressionContext.java
+++ b/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/server/context/ComponentsRegressionContext.java
@@ -1,11 +1,11 @@
package org.eclipse.basyx.regression.support.server.context;
-import org.eclipse.basyx.components.servlets.CFGSubModelProviderServlet;
-import org.eclipse.basyx.components.servlets.RawCFGSubModelProviderServlet;
-import org.eclipse.basyx.components.servlets.SQLDirectoryServlet;
-import org.eclipse.basyx.components.servlets.SQLSubModelProviderServlet;
-import org.eclipse.basyx.components.servlets.StaticCFGDirectoryServlet;
-import org.eclipse.basyx.components.servlets.XMLXQueryServlet;
+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;
+import org.eclipse.basyx.components.servlet.submodel.cfg.CFGSubModelProviderServlet;
+import org.eclipse.basyx.components.servlet.submodel.cfg.RawCFGSubModelProviderServlet;
import org.eclipse.basyx.regression.support.processengine.servlet.CoilcarAASServlet;
import org.eclipse.basyx.vab.protocol.http.server.BaSyxContext;
@@ -40,7 +40,7 @@
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 SQLDirectoryServlet().withParameter("config", "/WebContent/WEB-INF/config/directory/sqldirectory/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/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 0098f83..a1c8162 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,7 +1,7 @@
package org.eclipse.basyx.examples.contexts;
-import org.eclipse.basyx.components.servlets.RawCFGSubModelProviderServlet;
-import org.eclipse.basyx.components.servlets.SQLDirectoryServlet;
+import org.eclipse.basyx.components.servlet.registry.SQLRegistryServlet;
+import org.eclipse.basyx.components.servlet.submodel.cfg.RawCFGSubModelProviderServlet;
import org.eclipse.basyx.vab.protocol.http.server.BaSyxContext;
/**
@@ -30,7 +30,7 @@
super("/basys.examples", "");
// Define Servlet infrastucture
- addServletMapping("/Components/Directory/SQL/*", new SQLDirectoryServlet().withParameter("config", "/WebContent/WEB-INF/config/directory/sqldirectory/directory.properties"));
+ addServletMapping("/Components/Directory/SQL/*", new SQLRegistryServlet().withParameter("config", "/WebContent/WEB-INF/config/directory/sqldirectory/directory.properties"));
addServletMapping("/Components/BaSys/1.0/aasServer/*", new RawCFGSubModelProviderServlet().withParameter("config", "/WebContent/WEB-INF/config/aasServer/aasServer.properties"));
}
}
diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/http/ConnectToRemoteAAS.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/http/ConnectToRemoteAAS.java
index 1e69e70..41d44b9 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/http/ConnectToRemoteAAS.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/http/ConnectToRemoteAAS.java
@@ -6,7 +6,7 @@
import org.eclipse.basyx.aas.metamodel.api.IAssetAdministrationShell;
import org.eclipse.basyx.aas.metamodel.map.AssetAdministrationShell;
import org.eclipse.basyx.aas.metamodel.map.descriptor.ModelUrn;
-import org.eclipse.basyx.components.servlet.submodel.AASServlet;
+import org.eclipse.basyx.components.servlet.aas.AASServlet;
import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_Empty;
import org.eclipse.basyx.examples.deployment.BaSyxDeployment;
import org.eclipse.basyx.examples.support.directory.ExampleAASRegistry;
diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/registry/ConnectToAASEndpoints.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/registry/ConnectToAASEndpoints.java
index e3b4ad2..9b8590e 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/registry/ConnectToAASEndpoints.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/registry/ConnectToAASEndpoints.java
@@ -9,7 +9,7 @@
import org.eclipse.basyx.aas.metamodel.map.descriptor.ModelUrn;
import org.eclipse.basyx.aas.registration.api.IAASRegistryService;
import org.eclipse.basyx.aas.registration.proxy.AASRegistryProxy;
-import org.eclipse.basyx.components.servlet.submodel.AASServlet;
+import org.eclipse.basyx.components.servlet.aas.AASServlet;
import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;
import org.eclipse.basyx.examples.deployment.BaSyxDeployment;
import org.eclipse.basyx.vab.protocol.http.connector.HTTPConnectorProvider;
diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/registry/ConnectToSubModelEndpoints.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/registry/ConnectToSubModelEndpoints.java
index db54a66..2346480 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/registry/ConnectToSubModelEndpoints.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/registry/ConnectToSubModelEndpoints.java
@@ -9,7 +9,7 @@
import org.eclipse.basyx.aas.metamodel.map.descriptor.SubmodelDescriptor;
import org.eclipse.basyx.aas.registration.api.IAASRegistryService;
import org.eclipse.basyx.aas.registration.proxy.AASRegistryProxy;
-import org.eclipse.basyx.components.servlet.submodel.AASServlet;
+import org.eclipse.basyx.components.servlet.aas.AASServlet;
import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;
import org.eclipse.basyx.examples.deployment.BaSyxDeployment;
import org.eclipse.basyx.submodel.metamodel.api.ISubModel;
diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/DynamicSubModelDeployment.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/DynamicSubModelDeployment.java
index f123e6d..3ac9f17 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/DynamicSubModelDeployment.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/DynamicSubModelDeployment.java
@@ -5,7 +5,7 @@
import org.eclipse.basyx.aas.manager.ConnectedAssetAdministrationShellManager;
import org.eclipse.basyx.aas.metamodel.map.AssetAdministrationShell;
import org.eclipse.basyx.aas.metamodel.map.descriptor.ModelUrn;
-import org.eclipse.basyx.components.servlet.submodel.AASServlet;
+import org.eclipse.basyx.components.servlet.aas.AASServlet;
import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;
import org.eclipse.basyx.examples.deployment.BaSyxDeployment;
import org.eclipse.basyx.examples.support.directory.ExampleAASRegistry;
diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/DynamicSubModelDeploymentHTTP.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/DynamicSubModelDeploymentHTTP.java
index b8a6ca4..cc28ee1 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/DynamicSubModelDeploymentHTTP.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/DynamicSubModelDeploymentHTTP.java
@@ -5,7 +5,7 @@
import java.util.Map;
import org.eclipse.basyx.aas.metamodel.map.AssetAdministrationShell;
-import org.eclipse.basyx.components.servlet.submodel.AASServlet;
+import org.eclipse.basyx.components.servlet.aas.AASServlet;
import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;
import org.eclipse.basyx.examples.deployment.BaSyxDeployment;
import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;
diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/dynamic/RunAASDynamicOperationSnippet.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/dynamic/RunAASDynamicOperationSnippet.java
index caafe7c..c40c50e 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/dynamic/RunAASDynamicOperationSnippet.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/dynamic/RunAASDynamicOperationSnippet.java
@@ -6,7 +6,7 @@
import java.util.Map;
import java.util.function.Supplier;
-import org.eclipse.basyx.components.servlet.submodel.VABLambdaServlet;
+import org.eclipse.basyx.components.servlet.vab.VABLambdaServlet;
import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;
import org.eclipse.basyx.examples.deployment.BaSyxDeployment;
import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;
diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/dynamic/RunAASManualHTTPOperationsSnippet.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/dynamic/RunAASManualHTTPOperationsSnippet.java
index 0806148..866bdad 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/dynamic/RunAASManualHTTPOperationsSnippet.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/dynamic/RunAASManualHTTPOperationsSnippet.java
@@ -4,7 +4,7 @@
import java.util.Map;
-import org.eclipse.basyx.components.servlet.submodel.VABLambdaServlet;
+import org.eclipse.basyx.components.servlet.vab.VABLambdaServlet;
import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;
import org.eclipse.basyx.examples.deployment.BaSyxDeployment;
import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;
diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/dynamic/RunAASPropertiesCRUDAccessSnippet.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/dynamic/RunAASPropertiesCRUDAccessSnippet.java
index 23b9003..64f1c08 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/dynamic/RunAASPropertiesCRUDAccessSnippet.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/dynamic/RunAASPropertiesCRUDAccessSnippet.java
@@ -2,7 +2,7 @@
import static org.junit.Assert.assertTrue;
-import org.eclipse.basyx.components.servlet.submodel.VABLambdaServlet;
+import org.eclipse.basyx.components.servlet.vab.VABLambdaServlet;
import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;
import org.eclipse.basyx.examples.deployment.BaSyxDeployment;
import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;
diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/dynamic/RunAASTailoredSupplierSnippet.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/dynamic/RunAASTailoredSupplierSnippet.java
index de18cab..aa3d254 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/dynamic/RunAASTailoredSupplierSnippet.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/dynamic/RunAASTailoredSupplierSnippet.java
@@ -6,7 +6,7 @@
import java.util.Map;
import java.util.function.Supplier;
-import org.eclipse.basyx.components.servlet.submodel.VABLambdaServlet;
+import org.eclipse.basyx.components.servlet.vab.VABLambdaServlet;
import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;
import org.eclipse.basyx.examples.deployment.BaSyxDeployment;
import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;
diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/vab/connection/RunAASManualHTTPOperationsSnippet.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/vab/connection/RunAASManualHTTPOperationsSnippet.java
index b06638e..4474340 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/vab/connection/RunAASManualHTTPOperationsSnippet.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/vab/connection/RunAASManualHTTPOperationsSnippet.java
@@ -5,7 +5,7 @@
import java.util.HashMap;
import java.util.Map;
-import org.eclipse.basyx.components.servlet.submodel.VABLambdaServlet;
+import org.eclipse.basyx.components.servlet.vab.VABLambdaServlet;
import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;
import org.eclipse.basyx.examples.deployment.BaSyxDeployment;
import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;
diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/vab/connection/RunAASPropertiesSnippet.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/vab/connection/RunAASPropertiesSnippet.java
index 0d460ec..e975057 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/vab/connection/RunAASPropertiesSnippet.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/vab/connection/RunAASPropertiesSnippet.java
@@ -4,7 +4,7 @@
import java.util.HashMap;
-import org.eclipse.basyx.components.servlet.submodel.VABLambdaServlet;
+import org.eclipse.basyx.components.servlet.vab.VABLambdaServlet;
import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;
import org.eclipse.basyx.examples.deployment.BaSyxDeployment;
import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;
diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/CRUDOperations.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/CRUDOperations.java
index 2a20dba..3e1eb25 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/CRUDOperations.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/CRUDOperations.java
@@ -4,7 +4,7 @@
import java.util.HashMap;
-import org.eclipse.basyx.components.servlet.submodel.VABLambdaServlet;
+import org.eclipse.basyx.components.servlet.vab.VABLambdaServlet;
import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;
import org.eclipse.basyx.examples.deployment.BaSyxDeployment;
import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;
diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/DynamicPropertyClass.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/DynamicPropertyClass.java
index 988eb17..021f663 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/DynamicPropertyClass.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/DynamicPropertyClass.java
@@ -6,7 +6,7 @@
import java.util.Map;
import java.util.function.Supplier;
-import org.eclipse.basyx.components.servlet.submodel.VABLambdaServlet;
+import org.eclipse.basyx.components.servlet.vab.VABLambdaServlet;
import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;
import org.eclipse.basyx.examples.deployment.BaSyxDeployment;
import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;
diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/DynamicPropertyLambda.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/DynamicPropertyLambda.java
index 06c173a..b80fee6 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/DynamicPropertyLambda.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/DynamicPropertyLambda.java
@@ -6,7 +6,7 @@
import java.util.Map;
import java.util.function.Supplier;
-import org.eclipse.basyx.components.servlet.submodel.VABLambdaServlet;
+import org.eclipse.basyx.components.servlet.vab.VABLambdaServlet;
import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;
import org.eclipse.basyx.examples.deployment.BaSyxDeployment;
import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;
diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/ManualHTTPCalls.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/ManualHTTPCalls.java
index 1a4312a..a67bc95 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/ManualHTTPCalls.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/ManualHTTPCalls.java
@@ -5,7 +5,7 @@
import java.util.HashMap;
import java.util.Map;
-import org.eclipse.basyx.components.servlet.submodel.VABLambdaServlet;
+import org.eclipse.basyx.components.servlet.vab.VABLambdaServlet;
import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;
import org.eclipse.basyx.examples.deployment.BaSyxDeployment;
import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;