Moves packages from aas to vab

* backend.connector
* backend.http.tools

Change-Id: Icf42a5fd2582d9bfa29679c47afc1b70e7d12981
Signed-off-by: Frank Schnicke <frank.schnicke@iese.fraunhofer.de>
diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/CFGBaSyxProtocolType.java b/components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/CFGBaSyxProtocolType.java
index eba7b05..25b6812 100644
--- a/components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/CFGBaSyxProtocolType.java
+++ b/components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/CFGBaSyxProtocolType.java
@@ -1,7 +1,7 @@
 package org.eclipse.basyx.components.configuration;

 

-import org.eclipse.basyx.aas.backend.connector.basyx.BaSyxConnectorProvider;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

+import org.eclipse.basyx.vab.backend.connector.basyx.BaSyxConnectorProvider;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.IConnectorProvider;

 

 

diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/builder/BaSyxServiceConfigurationBuilder.java b/components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/builder/BaSyxServiceConfigurationBuilder.java
index 0e6590e..08886b9 100644
--- a/components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/builder/BaSyxServiceConfigurationBuilder.java
+++ b/components/basys.components/src/main/java/org/eclipse/basyx/components/configuration/builder/BaSyxServiceConfigurationBuilder.java
@@ -3,9 +3,9 @@
 import org.eclipse.basyx.aas.api.registry.AASHTTPRegistryProxy;

 import org.eclipse.basyx.aas.api.registry.IAASRegistryService;

 import org.eclipse.basyx.aas.backend.connected.ConnectedAssetAdministrationShellManager;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.components.configuration.CFGBaSyxProtocolType;

 import org.eclipse.basyx.components.configuration.ConfigurableComponent;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.directory.IVABDirectoryService;

 

diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/directory/SQLDirectoryProvider.java b/components/basys.components/src/main/java/org/eclipse/basyx/components/directory/SQLDirectoryProvider.java
index 7ff5a1e..c0ccbdc 100644
--- a/components/basys.components/src/main/java/org/eclipse/basyx/components/directory/SQLDirectoryProvider.java
+++ b/components/basys.components/src/main/java/org/eclipse/basyx/components/directory/SQLDirectoryProvider.java
@@ -13,10 +13,10 @@
 

 import javax.servlet.ServletException;

 

-import org.eclipse.basyx.aas.backend.http.tools.GSONTools;

-import org.eclipse.basyx.aas.backend.http.tools.factory.DefaultTypeFactory;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.descriptor.AASDescriptor;

 import org.eclipse.basyx.components.sqlprovider.driver.SQLDriver;

+import org.eclipse.basyx.vab.backend.http.tools.GSONTools;

+import org.eclipse.basyx.vab.backend.http.tools.factory.DefaultTypeFactory;

 import org.eclipse.basyx.vab.core.IModelProvider;

 

 /**

diff --git a/components/basys.components/src/main/java/org/eclipse/basyx/components/processengine/connector/DeviceServiceDelegate.java b/components/basys.components/src/main/java/org/eclipse/basyx/components/processengine/connector/DeviceServiceDelegate.java
index 20b8aa4..fb81f93 100644
--- a/components/basys.components/src/main/java/org/eclipse/basyx/components/processengine/connector/DeviceServiceDelegate.java
+++ b/components/basys.components/src/main/java/org/eclipse/basyx/components/processengine/connector/DeviceServiceDelegate.java
@@ -8,8 +8,8 @@
 import org.activiti.engine.delegate.DelegateExecution;
 import org.activiti.engine.delegate.Expression;
 import org.activiti.engine.delegate.JavaDelegate;
-import org.eclipse.basyx.aas.backend.http.tools.GSONTools;
-import org.eclipse.basyx.aas.backend.http.tools.factory.DefaultTypeFactory;
+import org.eclipse.basyx.vab.backend.http.tools.GSONTools;
+import org.eclipse.basyx.vab.backend.http.tools.factory.DefaultTypeFactory;
 
 /**
  * Java-Delegate is involved when the corresponding service-task of the BPMN-Model is executed. 
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/cfgprovider/tests/TestCFGProvider.java b/components/basys.components/src/test/java/org/eclipse/basyx/regression/cfgprovider/tests/TestCFGProvider.java
index 9afe20f..0c0713d 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/cfgprovider/tests/TestCFGProvider.java
+++ b/components/basys.components/src/test/java/org/eclipse/basyx/regression/cfgprovider/tests/TestCFGProvider.java
@@ -2,10 +2,10 @@
 

 import static org.junit.Assert.assertTrue;

 

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.regression.support.directory.ComponentsTestsuiteDirectory;

 import org.eclipse.basyx.regression.support.server.context.ComponentsRegressionContext;

 import org.eclipse.basyx.testsuite.support.backend.servers.AASHTTPServerResource;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/cfgprovider/tests/TestCFGProviderPropertyMetaData.java b/components/basys.components/src/test/java/org/eclipse/basyx/regression/cfgprovider/tests/TestCFGProviderPropertyMetaData.java
index 0d16aaa..232e268 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/cfgprovider/tests/TestCFGProviderPropertyMetaData.java
+++ b/components/basys.components/src/test/java/org/eclipse/basyx/regression/cfgprovider/tests/TestCFGProviderPropertyMetaData.java
@@ -2,10 +2,10 @@
 

 import static org.junit.Assert.assertTrue;

 

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.regression.support.directory.ComponentsTestsuiteDirectory;

 import org.eclipse.basyx.regression.support.server.context.ComponentsRegressionContext;

 import org.eclipse.basyx.testsuite.support.backend.servers.AASHTTPServerResource;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/cfgprovider/tests/TestCFGProviderSubmodelMetaData.java b/components/basys.components/src/test/java/org/eclipse/basyx/regression/cfgprovider/tests/TestCFGProviderSubmodelMetaData.java
index d6475f1..25121bf 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/cfgprovider/tests/TestCFGProviderSubmodelMetaData.java
+++ b/components/basys.components/src/test/java/org/eclipse/basyx/regression/cfgprovider/tests/TestCFGProviderSubmodelMetaData.java
@@ -2,10 +2,10 @@
 

 import static org.junit.Assert.assertTrue;

 

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.regression.support.directory.ComponentsTestsuiteDirectory;

 import org.eclipse.basyx.regression.support.server.context.ComponentsRegressionContext;

 import org.eclipse.basyx.testsuite.support.backend.servers.AASHTTPServerResource;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/file/TestStaticDirectoryFileProvider.java b/components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/file/TestStaticDirectoryFileProvider.java
index 3d620d3..d39bfa4 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/file/TestStaticDirectoryFileProvider.java
+++ b/components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/file/TestStaticDirectoryFileProvider.java
@@ -8,9 +8,9 @@
 import java.net.URLEncoder;

 

 import org.eclipse.basyx.aas.api.webserviceclient.WebServiceRawClient;

-import org.eclipse.basyx.aas.backend.connector.MetaprotocolHandler;

 import org.eclipse.basyx.regression.support.server.context.ComponentsRegressionContext;

 import org.eclipse.basyx.testsuite.support.backend.servers.AASHTTPServerResource;

+import org.eclipse.basyx.vab.backend.connector.MetaprotocolHandler;

 import org.junit.ClassRule;

 import org.junit.Test;

 

diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/sql/TestDirectorySQLProvider.java b/components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/sql/TestDirectorySQLProvider.java
index a2d26b1..1b51c00 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/sql/TestDirectorySQLProvider.java
+++ b/components/basys.components/src/test/java/org/eclipse/basyx/regression/directory/sql/TestDirectorySQLProvider.java
@@ -8,13 +8,13 @@
 import java.net.URLEncoder;

 

 import org.eclipse.basyx.aas.api.webserviceclient.WebServiceRawClient;

-import org.eclipse.basyx.aas.backend.connector.MetaprotocolHandler;

-import org.eclipse.basyx.aas.backend.http.tools.GSONTools;

-import org.eclipse.basyx.aas.backend.http.tools.factory.DefaultTypeFactory;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.descriptor.AASDescriptor;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.identifier.IdentifierType;

 import org.eclipse.basyx.regression.support.server.context.ComponentsRegressionContext;

 import org.eclipse.basyx.testsuite.support.backend.servers.AASHTTPServerResource;

+import org.eclipse.basyx.vab.backend.connector.MetaprotocolHandler;

+import org.eclipse.basyx.vab.backend.http.tools.GSONTools;

+import org.eclipse.basyx.vab.backend.http.tools.factory.DefaultTypeFactory;

 import org.junit.Before;

 import org.junit.ClassRule;

 import org.junit.Test;

diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/tests/TestDeviceAdministrationShell.java b/components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/tests/TestDeviceAdministrationShell.java
index 12d72fa..8309115 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/tests/TestDeviceAdministrationShell.java
+++ b/components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/tests/TestDeviceAdministrationShell.java
@@ -10,13 +10,13 @@
 import org.eclipse.basyx.aas.api.resources.ISubModel;
 import org.eclipse.basyx.aas.backend.connected.ConnectedAssetAdministrationShellManager;
 import org.eclipse.basyx.aas.backend.connected.aas.ConnectedAssetAdministrationShell;
-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;
 import org.eclipse.basyx.aas.metamodel.hashmap.aas.descriptor.AASDescriptor;
 import org.eclipse.basyx.aas.metamodel.hashmap.aas.descriptor.SubmodelDescriptor;
 import org.eclipse.basyx.aas.metamodel.hashmap.aas.identifier.IdentifierType;
 import org.eclipse.basyx.regression.support.server.context.ComponentsRegressionContext;
 import org.eclipse.basyx.testsuite.support.backend.servers.AASHTTPServerResource;
 import org.eclipse.basyx.testsuite.support.vab.stub.AASRegistryStub;
+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;
 import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Test;
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/tests/TestJavaDelegate.java b/components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/tests/TestJavaDelegate.java
index dcb2e2e..b95c9c3 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/tests/TestJavaDelegate.java
+++ b/components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/tests/TestJavaDelegate.java
@@ -7,11 +7,11 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 
-import org.eclipse.basyx.aas.backend.http.tools.GSONTools;
-import org.eclipse.basyx.aas.backend.http.tools.factory.DefaultTypeFactory;
 import org.eclipse.basyx.components.processengine.connector.DeviceServiceDelegate;
 import org.eclipse.basyx.regression.support.processengine.stubs.BPMNEngineStub;
 import org.eclipse.basyx.regression.support.processengine.stubs.DeviceServiceExecutorStub;
+import org.eclipse.basyx.vab.backend.http.tools.GSONTools;
+import org.eclipse.basyx.vab.backend.http.tools.factory.DefaultTypeFactory;
 import org.junit.Test;
 
 /**
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/tests/TestTransportProcess_ConfigureEngineProgramically.java b/components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/tests/TestTransportProcess_ConfigureEngineProgramically.java
index 9e19a74..dbe5ae4 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/tests/TestTransportProcess_ConfigureEngineProgramically.java
+++ b/components/basys.components/src/test/java/org/eclipse/basyx/regression/processengineconnector/tests/TestTransportProcess_ConfigureEngineProgramically.java
@@ -13,7 +13,6 @@
 import org.activiti.engine.runtime.ProcessInstance;
 import org.eclipse.basyx.aas.api.modelurn.ModelUrn;
 import org.eclipse.basyx.aas.backend.connected.ConnectedAssetAdministrationShellManager;
-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;
 import org.eclipse.basyx.aas.metamodel.hashmap.aas.descriptor.AASDescriptor;
 import org.eclipse.basyx.aas.metamodel.hashmap.aas.descriptor.SubmodelDescriptor;
 import org.eclipse.basyx.aas.metamodel.hashmap.aas.identifier.IdentifierType;
@@ -22,6 +21,7 @@
 import org.eclipse.basyx.regression.support.server.context.ComponentsRegressionContext;
 import org.eclipse.basyx.testsuite.support.backend.servers.AASHTTPServerResource;
 import org.eclipse.basyx.testsuite.support.vab.stub.AASRegistryStub;
+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;
 import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Test;
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/tests/TestRawCFGProviderAAS.java b/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/tests/TestRawCFGProviderAAS.java
index c332139..e39240f 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/tests/TestRawCFGProviderAAS.java
+++ b/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/tests/TestRawCFGProviderAAS.java
@@ -2,11 +2,11 @@
 

 import java.util.Map;

 

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.AssetAdministrationShell;

 import org.eclipse.basyx.regression.support.directory.ComponentsTestsuiteDirectory;

 import org.eclipse.basyx.regression.support.server.context.ComponentsRegressionContext;

 import org.eclipse.basyx.testsuite.support.backend.servers.AASHTTPServerResource;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/tests/TestRawCFGProviderAASNewModel.java b/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/tests/TestRawCFGProviderAASNewModel.java
index e496b65..2b7b59f 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/tests/TestRawCFGProviderAASNewModel.java
+++ b/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/tests/TestRawCFGProviderAASNewModel.java
@@ -2,11 +2,11 @@
 

 import java.util.Map;

 

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.AssetAdministrationShell;

 import org.eclipse.basyx.regression.support.directory.ComponentsTestsuiteDirectory;

 import org.eclipse.basyx.regression.support.server.context.ComponentsRegressionContext;

 import org.eclipse.basyx.testsuite.support.backend.servers.AASHTTPServerResource;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/tests/TestRawCFGProviderComplexType.java b/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/tests/TestRawCFGProviderComplexType.java
index e8cf523..7a65676 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/tests/TestRawCFGProviderComplexType.java
+++ b/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/tests/TestRawCFGProviderComplexType.java
@@ -5,10 +5,10 @@
 import java.util.HashMap;

 import java.util.Map;

 

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.regression.support.directory.ComponentsTestsuiteDirectory;

 import org.eclipse.basyx.regression.support.server.context.ComponentsRegressionContext;

 import org.eclipse.basyx.testsuite.support.backend.servers.AASHTTPServerResource;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/tests/TestRawCFGProviderSimpleValues.java b/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/tests/TestRawCFGProviderSimpleValues.java
index c3a19c8..75eb5da 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/tests/TestRawCFGProviderSimpleValues.java
+++ b/components/basys.components/src/test/java/org/eclipse/basyx/regression/rawcfgprovider/tests/TestRawCFGProviderSimpleValues.java
@@ -2,10 +2,10 @@
 

 import static org.junit.Assert.assertTrue;

 

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.regression.support.directory.ComponentsTestsuiteDirectory;

 import org.eclipse.basyx.regression.support.server.context.ComponentsRegressionContext;

 import org.eclipse.basyx.testsuite.support.backend.servers.AASHTTPServerResource;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlprovider/tests/SQLInvocationsTest.java b/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlprovider/tests/SQLInvocationsTest.java
index 60b11a1..0217fc5 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlprovider/tests/SQLInvocationsTest.java
+++ b/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlprovider/tests/SQLInvocationsTest.java
@@ -3,10 +3,10 @@
 import java.util.Collection;

 import java.util.LinkedList;

 

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.regression.support.directory.ComponentsTestsuiteDirectory;

 import org.eclipse.basyx.regression.support.server.context.ComponentsRegressionContext;

 import org.eclipse.basyx.testsuite.support.backend.servers.AASHTTPServerResource;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlprovider/tests/SQLQueriesTest.java b/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlprovider/tests/SQLQueriesTest.java
index 701fa7d..27b42a9 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlprovider/tests/SQLQueriesTest.java
+++ b/components/basys.components/src/test/java/org/eclipse/basyx/regression/sqlprovider/tests/SQLQueriesTest.java
@@ -3,10 +3,10 @@
 import java.util.HashMap;

 import java.util.Map;

 

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.regression.support.directory.ComponentsTestsuiteDirectory;

 import org.eclipse.basyx.regression.support.server.context.ComponentsRegressionContext;

 import org.eclipse.basyx.testsuite.support.backend.servers.AASHTTPServerResource;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/BPMNModelFactory.java b/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/BPMNModelFactory.java
index c58d634..a1cbd9e 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/BPMNModelFactory.java
+++ b/components/basys.components/src/test/java/org/eclipse/basyx/regression/support/processengine/stubs/BPMNModelFactory.java
@@ -12,8 +12,8 @@
 import org.activiti.bpmn.model.SequenceFlow;
 import org.activiti.bpmn.model.ServiceTask;
 import org.activiti.bpmn.model.StartEvent;
-import org.eclipse.basyx.aas.backend.http.tools.GSONTools;
-import org.eclipse.basyx.aas.backend.http.tools.factory.DefaultTypeFactory;
+import org.eclipse.basyx.vab.backend.http.tools.GSONTools;
+import org.eclipse.basyx.vab.backend.http.tools.factory.DefaultTypeFactory;
 import org.activiti.bpmn.model.Process;
 
 /**
diff --git a/components/basys.components/src/test/java/org/eclipse/basyx/regression/xqueryprovider/tests/XQueryProviderQueries.java b/components/basys.components/src/test/java/org/eclipse/basyx/regression/xqueryprovider/tests/XQueryProviderQueries.java
index 21a45c3..65b924c 100644
--- a/components/basys.components/src/test/java/org/eclipse/basyx/regression/xqueryprovider/tests/XQueryProviderQueries.java
+++ b/components/basys.components/src/test/java/org/eclipse/basyx/regression/xqueryprovider/tests/XQueryProviderQueries.java
@@ -1,9 +1,9 @@
 package org.eclipse.basyx.regression.xqueryprovider.tests;

 

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.regression.support.directory.ComponentsTestsuiteDirectory;

 import org.eclipse.basyx.regression.support.server.context.ComponentsRegressionContext;

 import org.eclipse.basyx.testsuite.support.backend.servers.AASHTTPServerResource;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

diff --git a/examples/basys.examples/pom.xml b/examples/basys.examples/pom.xml
index b621b3f..aea60e0 100644
--- a/examples/basys.examples/pom.xml
+++ b/examples/basys.examples/pom.xml
@@ -62,9 +62,20 @@
          <version>2.4.2</version>

           <configuration>

     		<excludes>

-      			<exclude>**/*HTTP*</exclude>

-      			<exclude>**/*TCP*</exclude>

+      			<exclude>**/*contexts*</exclude>

+      			<!--  Ignore all inner subclasses -->

+      			<exclude>**/*$*</exclude>

+      			<exclude>**/*Manager*</exclude>

+      			<exclude>**/*Mockup*</exclude>

+      			<exclude>**/*Task*</exclude>

+      			<exclude>**/*TailoredBaSyxSupplier*</exclude>

+      			<exclude>**/*Context*</exclude>

+      			<exclude>**/*Application*</exclude>

+      			<exclude>**/*mockup*/**</exclude>

     		</excludes>

+    		<includes>

+				<include>**/**</include>

+			</includes>

   		 </configuration>

        </plugin>

        

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/application/ReceiveDeviceDashboardStatusApplication.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/application/ReceiveDeviceDashboardStatusApplication.java
index 6a0ccf5..fd24441 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/application/ReceiveDeviceDashboardStatusApplication.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/application/ReceiveDeviceDashboardStatusApplication.java
@@ -2,12 +2,12 @@
 

 import org.eclipse.basyx.aas.api.modelurn.ModelUrn;

 import org.eclipse.basyx.aas.api.registry.AASHTTPRegistryProxy;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.VABModelMap;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.descriptor.AASDescriptor;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.descriptor.SubmodelDescriptor;

 import org.eclipse.basyx.components.service.BaseBaSyxService;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/application/ReceiveDeviceMaintenanceApplication.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/application/ReceiveDeviceMaintenanceApplication.java
index 9990086..409e8a3 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/application/ReceiveDeviceMaintenanceApplication.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/application/ReceiveDeviceMaintenanceApplication.java
@@ -2,12 +2,12 @@
 

 import org.eclipse.basyx.aas.api.modelurn.ModelUrn;

 import org.eclipse.basyx.aas.api.registry.AASHTTPRegistryProxy;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.VABModelMap;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.descriptor.AASDescriptor;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.descriptor.SubmodelDescriptor;

 import org.eclipse.basyx.components.service.BaseBaSyxService;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/device/SmartBaSyxTCPDeviceMockup.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/device/SmartBaSyxTCPDeviceMockup.java
index 2b9414b..d2da2e8 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/device/SmartBaSyxTCPDeviceMockup.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/device/SmartBaSyxTCPDeviceMockup.java
@@ -2,7 +2,6 @@
 

 import org.eclipse.basyx.aas.api.modelurn.ModelUrn;

 import org.eclipse.basyx.aas.api.registry.AASHTTPRegistryProxy;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.backend.provider.VirtualPathModelProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.AssetAdministrationShell;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

@@ -10,6 +9,7 @@
 import org.eclipse.basyx.components.device.BaseSmartDevice;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

 import org.eclipse.basyx.models.controlcomponent.ExecutionState;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.backend.server.basyx.BaSyxTCPServer;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/devicemanager/BaSyxTCPControlManufacturingDeviceManager.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/devicemanager/BaSyxTCPControlManufacturingDeviceManager.java
index 94a569e..a738d6c 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/devicemanager/BaSyxTCPControlManufacturingDeviceManager.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/devicemanager/BaSyxTCPControlManufacturingDeviceManager.java
@@ -5,7 +5,6 @@
 

 import org.eclipse.basyx.aas.api.modelurn.ModelUrn;

 import org.eclipse.basyx.aas.api.registry.AASHTTPRegistryProxy;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.backend.provider.VirtualPathModelProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.AssetAdministrationShell;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

@@ -13,6 +12,7 @@
 import org.eclipse.basyx.components.devicemanager.TCPControllableDeviceManagerComponent;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

 import org.eclipse.basyx.models.controlcomponent.ControlComponentChangeListener;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.backend.server.basyx.BaSyxTCPServer;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/devicemanager/ManufacturingDeviceManager.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/devicemanager/ManufacturingDeviceManager.java
index 44bb8d1..10f2d69 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/devicemanager/ManufacturingDeviceManager.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/mockup/devicemanager/ManufacturingDeviceManager.java
@@ -5,13 +5,13 @@
 

 import org.eclipse.basyx.aas.api.modelurn.ModelUrn;

 import org.eclipse.basyx.aas.api.registry.AASHTTPRegistryProxy;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.AssetAdministrationShell;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.descriptor.AASDescriptor;

 import org.eclipse.basyx.components.configuration.CFGBaSyxProtocolType;

 import org.eclipse.basyx.components.devicemanager.TCPDeviceManagerComponent;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/scenarios/device/RunSimpleTCPDevice.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/scenarios/device/RunSimpleTCPDevice.java
index 9ba0105..99088d8 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/scenarios/device/RunSimpleTCPDevice.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/scenarios/device/RunSimpleTCPDevice.java
@@ -2,7 +2,6 @@
 

 import static org.junit.Assert.assertTrue;

 

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.examplescenario.BaSyxExampleScenario;

@@ -10,6 +9,7 @@
 import org.eclipse.basyx.examples.mockup.device.SimpleTCPDeviceMockup;

 import org.eclipse.basyx.examples.mockup.devicemanager.ManufacturingDeviceManager;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.junit.ClassRule;

 import org.junit.Test;

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/scenarios/device/aas/RunAASDevice.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/scenarios/device/aas/RunAASDevice.java
index fbcb818..88f6fec 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/scenarios/device/aas/RunAASDevice.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/scenarios/device/aas/RunAASDevice.java
@@ -2,7 +2,6 @@
 

 import static org.junit.Assert.assertTrue;

 

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.examplescenario.BaSyxExampleScenario;

@@ -11,6 +10,7 @@
 import org.eclipse.basyx.examples.mockup.devicemanager.ManufacturingDeviceActiveAASManager;

 import org.eclipse.basyx.examples.mockup.servers.SupplierStatusServlet;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.junit.ClassRule;

 import org.junit.Test;

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/scenarios/device/controllable/RunExampleSimpleControllableTCPDevice.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/scenarios/device/controllable/RunExampleSimpleControllableTCPDevice.java
index dfddf70..7e6b2f5 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/scenarios/device/controllable/RunExampleSimpleControllableTCPDevice.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/scenarios/device/controllable/RunExampleSimpleControllableTCPDevice.java
@@ -2,9 +2,6 @@
 

 import static org.junit.Assert.assertTrue;

 

-import org.eclipse.basyx.aas.backend.connector.JSONConnector;

-import org.eclipse.basyx.aas.backend.connector.basyx.BaSyxConnector;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.examplescenario.BaSyxExampleScenario;

@@ -13,6 +10,9 @@
 import org.eclipse.basyx.examples.mockup.devicemanager.BaSyxTCPControlManufacturingDeviceManager;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

 import org.eclipse.basyx.models.controlcomponent.ExecutionState;

+import org.eclipse.basyx.vab.backend.connector.JSONConnector;

+import org.eclipse.basyx.vab.backend.connector.basyx.BaSyxConnector;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.junit.ClassRule;

 import org.junit.Test;

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/scenarios/device/controllable/RunExampleSimpleSmartDevice.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/scenarios/device/controllable/RunExampleSimpleSmartDevice.java
index 5c1b3ca..a4a4cb8 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/scenarios/device/controllable/RunExampleSimpleSmartDevice.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/scenarios/device/controllable/RunExampleSimpleSmartDevice.java
@@ -2,9 +2,6 @@
 

 import static org.junit.Assert.assertTrue;

 

-import org.eclipse.basyx.aas.backend.connector.JSONConnector;

-import org.eclipse.basyx.aas.backend.connector.basyx.BaSyxConnector;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.examplescenario.BaSyxExampleScenario;

@@ -12,6 +9,9 @@
 import org.eclipse.basyx.examples.mockup.device.SmartBaSyxTCPDeviceMockup;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

 import org.eclipse.basyx.models.controlcomponent.ExecutionState;

+import org.eclipse.basyx.vab.backend.connector.JSONConnector;

+import org.eclipse.basyx.vab.backend.connector.basyx.BaSyxConnector;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.junit.ClassRule;

 import org.junit.Test;

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/active/RunInfluxDBActiveModelSnippet.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/active/RunInfluxDBActiveModelSnippet.java
index 6514a28..aae25c9 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/active/RunInfluxDBActiveModelSnippet.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/active/RunInfluxDBActiveModelSnippet.java
@@ -5,6 +5,8 @@
 import org.eclipse.basyx.tools.aas.active.ActiveModel;

 import org.eclipse.basyx.vab.core.IModelProvider;

 import org.eclipse.basyx.vab.provider.lambda.VABLambdaProviderHelper;

+import org.junit.Ignore;

+import org.junit.Test;

 

 /**

  * FIXME: This should also run on the postgres backend. Until then, this test is

@@ -22,7 +24,8 @@
 	/**

 	 * Test active model writing value to an influxDB database

 	 */

-	// @Test

+	@Ignore

+	@Test

 	public void snippet() throws Exception {

 		// Create the model provider for the active model

 		IModelProvider modelProvider = new VirtualPathModelProvider();

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceAASDeployment.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceAASDeployment.java
index 683e934..cb10b49 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceAASDeployment.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceAASDeployment.java
@@ -5,11 +5,11 @@
 import org.eclipse.basyx.aas.api.modelurn.ModelUrn;

 import org.eclipse.basyx.aas.api.resources.IAssetAdministrationShell;

 import org.eclipse.basyx.aas.backend.connected.ConnectedAssetAdministrationShellManager;

-import org.eclipse.basyx.aas.backend.connector.basyx.BaSyxConnectorProvider;

 import org.eclipse.basyx.aas.backend.provider.VABMultiSubmodelProvider;

 import org.eclipse.basyx.aas.backend.provider.VirtualPathModelProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.AssetAdministrationShell;

 import org.eclipse.basyx.examples.support.directory.ExampleAASRegistry;

+import org.eclipse.basyx.vab.backend.connector.basyx.BaSyxConnectorProvider;

 import org.eclipse.basyx.vab.backend.server.basyx.BaSyxTCPServer;

 import org.junit.Test;

 

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceAASDeploymentVAB.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceAASDeploymentVAB.java
index f0b7ee5..a6f00be 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceAASDeploymentVAB.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceAASDeploymentVAB.java
@@ -2,11 +2,11 @@
 

 import static org.junit.Assert.assertTrue;

 

-import org.eclipse.basyx.aas.backend.connector.JSONConnector;

-import org.eclipse.basyx.aas.backend.connector.basyx.BaSyxConnector;

 import org.eclipse.basyx.aas.backend.provider.VABMultiSubmodelProvider;

 import org.eclipse.basyx.aas.backend.provider.VirtualPathModelProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.AssetAdministrationShell;

+import org.eclipse.basyx.vab.backend.connector.JSONConnector;

+import org.eclipse.basyx.vab.backend.connector.basyx.BaSyxConnector;

 import org.eclipse.basyx.vab.backend.server.basyx.BaSyxTCPServer;

 import org.junit.Test;

 

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceSubModelDeployment.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceSubModelDeployment.java
index 8718489..4a48d45 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceSubModelDeployment.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceSubModelDeployment.java
@@ -6,12 +6,12 @@
 import org.eclipse.basyx.aas.api.resources.ISingleProperty;

 import org.eclipse.basyx.aas.api.resources.ISubModel;

 import org.eclipse.basyx.aas.backend.connected.ConnectedAssetAdministrationShellManager;

-import org.eclipse.basyx.aas.backend.connector.basyx.BaSyxConnectorProvider;

 import org.eclipse.basyx.aas.backend.provider.VABMultiSubmodelProvider;

 import org.eclipse.basyx.aas.backend.provider.VirtualPathModelProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.property.Property;

 import org.eclipse.basyx.examples.support.directory.ExampleAASRegistry;

+import org.eclipse.basyx.vab.backend.connector.basyx.BaSyxConnectorProvider;

 import org.eclipse.basyx.vab.backend.server.basyx.BaSyxTCPServer;

 import org.junit.Test;

 

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceSubModelDeploymentVAB.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceSubModelDeploymentVAB.java
index 441b221..fdbc2a4 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceSubModelDeploymentVAB.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceSubModelDeploymentVAB.java
@@ -2,12 +2,12 @@
 

 import static org.junit.Assert.assertTrue;

 

-import org.eclipse.basyx.aas.backend.connector.JSONConnector;

-import org.eclipse.basyx.aas.backend.connector.basyx.BaSyxConnector;

 import org.eclipse.basyx.aas.backend.provider.VABMultiSubmodelProvider;

 import org.eclipse.basyx.aas.backend.provider.VirtualPathModelProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.property.Property;

+import org.eclipse.basyx.vab.backend.connector.JSONConnector;

+import org.eclipse.basyx.vab.backend.connector.basyx.BaSyxConnector;

 import org.eclipse.basyx.vab.backend.server.basyx.BaSyxTCPServer;

 import org.junit.Test;

 

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 57c95d0..b7b943e 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
@@ -5,12 +5,12 @@
 import org.eclipse.basyx.aas.api.modelurn.ModelUrn;

 import org.eclipse.basyx.aas.api.resources.IAssetAdministrationShell;

 import org.eclipse.basyx.aas.backend.connected.ConnectedAssetAdministrationShellManager;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.AssetAdministrationShell;

 import org.eclipse.basyx.components.servlet.submodel.AASServlet;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_Empty;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExampleAASRegistry;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.junit.ClassRule;

 import org.junit.Test;

 

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 82d10de..d0b359e 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
@@ -7,13 +7,13 @@
 import org.eclipse.basyx.aas.api.registry.IAASRegistryService;

 import org.eclipse.basyx.aas.backend.connected.ConnectedAssetAdministrationShellManager;

 import org.eclipse.basyx.aas.backend.connected.aas.ConnectedAssetAdministrationShell;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.AssetAdministrationShell;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.descriptor.AASDescriptor;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.identifier.IdentifierType;

 import org.eclipse.basyx.components.servlet.submodel.DynamicModelProviderServlet;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.tools.VABPathTools;

 import org.junit.ClassRule;

 import org.junit.Test;

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 44a360d..0d4b4ef 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
@@ -8,7 +8,6 @@
 import org.eclipse.basyx.aas.api.resources.ISingleProperty;

 import org.eclipse.basyx.aas.api.resources.ISubModel;

 import org.eclipse.basyx.aas.backend.connected.ConnectedAssetAdministrationShellManager;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.descriptor.AASDescriptor;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.descriptor.SubmodelDescriptor;

@@ -17,6 +16,7 @@
 import org.eclipse.basyx.components.servlet.submodel.DynamicModelProviderServlet;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.tools.VABPathTools;

 import org.junit.ClassRule;

 import org.junit.Test;

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/registry/RegisterRetrieveAASEndpoints.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/registry/RegisterRetrieveAASEndpoints.java
index ebecaf8..71a51bb 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/registry/RegisterRetrieveAASEndpoints.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/registry/RegisterRetrieveAASEndpoints.java
@@ -5,13 +5,13 @@
 import org.eclipse.basyx.aas.api.modelurn.ModelUrn;

 import org.eclipse.basyx.aas.api.registry.AASHTTPRegistryProxy;

 import org.eclipse.basyx.aas.api.registry.IAASRegistryService;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.descriptor.AASDescriptor;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.descriptor.SubmodelDescriptor;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.identifier.IdentifierType;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.tools.VABPathTools;

 import org.junit.ClassRule;

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/ConnectToAASSubModelSDK.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/ConnectToAASSubModelSDK.java
index d514d9d..37b3b50 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/ConnectToAASSubModelSDK.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/ConnectToAASSubModelSDK.java
@@ -10,7 +10,6 @@
 import org.eclipse.basyx.aas.api.resources.ISingleProperty;

 import org.eclipse.basyx.aas.api.resources.ISubModel;

 import org.eclipse.basyx.aas.backend.connected.ConnectedAssetAdministrationShellManager;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.factory.MetaModelElementFactory;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.SubmodelElement;

@@ -20,6 +19,7 @@
 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_Empty;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExampleAASRegistry;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.junit.ClassRule;

 import org.junit.Test;

 

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/ConnectToAASSubModelVAB.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/ConnectToAASSubModelVAB.java
index 6900ff8..66553ad 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/ConnectToAASSubModelVAB.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/ConnectToAASSubModelVAB.java
@@ -8,7 +8,6 @@
 import org.eclipse.basyx.aas.api.modelurn.ModelUrn;

 import org.eclipse.basyx.aas.api.resources.ISubModel;

 import org.eclipse.basyx.aas.backend.connected.ConnectedAssetAdministrationShellManager;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.factory.MetaModelElementFactory;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.SubmodelElement;

@@ -19,6 +18,7 @@
 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExampleAASRegistry;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

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 f75f35b..6e84107 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
@@ -6,13 +6,13 @@
 import org.eclipse.basyx.aas.api.resources.ISingleProperty;

 import org.eclipse.basyx.aas.api.resources.ISubModel;

 import org.eclipse.basyx.aas.backend.connected.ConnectedAssetAdministrationShellManager;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.property.Property;

 import org.eclipse.basyx.components.servlet.submodel.DynamicModelProviderServlet;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExampleAASRegistry;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.junit.ClassRule;

 import org.junit.Test;

 

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 6197cc3..f832137 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,13 +5,13 @@
 import java.util.Map;

 

 import org.eclipse.basyx.aas.api.webserviceclient.WebServiceJSONClient;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.property.Property;

 import org.eclipse.basyx.components.servlet.submodel.DynamicModelProviderServlet;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/InvokeSubModelOperationSDK.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/InvokeSubModelOperationSDK.java
index 0a39685..85d6df6 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/InvokeSubModelOperationSDK.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/aas/submodels/InvokeSubModelOperationSDK.java
@@ -9,7 +9,6 @@
 import org.eclipse.basyx.aas.api.resources.IOperation;

 import org.eclipse.basyx.aas.api.resources.ISubModel;

 import org.eclipse.basyx.aas.backend.connected.ConnectedAssetAdministrationShellManager;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.factory.MetaModelElementFactory;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.operation.Operation;

@@ -17,6 +16,7 @@
 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_Empty;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExampleAASRegistry;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.junit.ClassRule;

 import org.junit.Test;

 

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/code/BaSyxCreateProvideUseExampleAASSubmodel.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/code/BaSyxCreateProvideUseExampleAASSubmodel.java
index 469cfde..5e4e9b9 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/code/BaSyxCreateProvideUseExampleAASSubmodel.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/code/BaSyxCreateProvideUseExampleAASSubmodel.java
@@ -2,11 +2,11 @@
 

 import static org.junit.Assert.assertTrue;

 

-import org.eclipse.basyx.aas.backend.connector.JSONConnector;

-import org.eclipse.basyx.aas.backend.connector.basyx.BaSyxConnector;

 import org.eclipse.basyx.aas.backend.provider.VirtualPathModelProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.VABModelMap;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

+import org.eclipse.basyx.vab.backend.connector.JSONConnector;

+import org.eclipse.basyx.vab.backend.connector.basyx.BaSyxConnector;

 import org.eclipse.basyx.vab.backend.server.basyx.BaSyxTCPServer;

 import org.junit.Test;

 

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/connection/servlet/AASServletConnection.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/connection/servlet/AASServletConnection.java
index 885a910..d09fa93 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/connection/servlet/AASServletConnection.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/connection/servlet/AASServletConnection.java
@@ -11,7 +11,6 @@
 import org.eclipse.basyx.aas.api.resources.ISingleProperty;

 import org.eclipse.basyx.aas.api.resources.ISubModel;

 import org.eclipse.basyx.aas.backend.connected.ConnectedAssetAdministrationShellManager;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.factory.MetaModelElementFactory;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.SubmodelElement;

@@ -23,6 +22,7 @@
 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExampleAASRegistry;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/connection/servlet/AASServletConnectionFull.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/connection/servlet/AASServletConnectionFull.java
index a43d95a..aacc023 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/connection/servlet/AASServletConnectionFull.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/connection/servlet/AASServletConnectionFull.java
@@ -11,7 +11,6 @@
 import org.eclipse.basyx.aas.api.resources.ISingleProperty;

 import org.eclipse.basyx.aas.api.resources.ISubModel;

 import org.eclipse.basyx.aas.backend.connected.ConnectedAssetAdministrationShellManager;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.factory.MetaModelElementFactory;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.SubmodelElement;

@@ -23,6 +22,7 @@
 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExampleAASRegistry;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/connection/servlet/AASSubModelServletConnectorConnection.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/connection/servlet/AASSubModelServletConnectorConnection.java
index b92fc1a..46f3c5d 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/connection/servlet/AASSubModelServletConnectorConnection.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/connection/servlet/AASSubModelServletConnectorConnection.java
@@ -11,7 +11,6 @@
 import org.eclipse.basyx.aas.api.resources.ISingleProperty;

 import org.eclipse.basyx.aas.api.resources.ISubModel;

 import org.eclipse.basyx.aas.backend.connected.ConnectedAssetAdministrationShellManager;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.factory.MetaModelElementFactory;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.SubmodelElement;

@@ -22,6 +21,7 @@
 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExampleAASRegistry;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.junit.ClassRule;

 import org.junit.Test;

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/connection/servlet/AASSubModelServletVABConnection.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/connection/servlet/AASSubModelServletVABConnection.java
index 098e463..5c99367 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/connection/servlet/AASSubModelServletVABConnection.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/undoc/aas/connection/servlet/AASSubModelServletVABConnection.java
@@ -5,7 +5,6 @@
 import java.util.List;

 import java.util.Map;

 

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.factory.MetaModelElementFactory;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.SubmodelElement;

@@ -15,6 +14,7 @@
 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_Empty;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

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 761340b..2996351 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,13 +6,13 @@
 import java.util.Map;

 import java.util.function.Supplier;

 

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.property.Property;

 import org.eclipse.basyx.components.servlet.submodel.EmptyVABLambdaElementServlet;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.eclipse.basyx.vab.provider.lambda.VABLambdaProviderHelper;

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 e5c43f2..bf46c86 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
@@ -5,13 +5,13 @@
 import java.util.Map;

 

 import org.eclipse.basyx.aas.api.webserviceclient.WebServiceJSONClient;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.property.Property;

 import org.eclipse.basyx.components.servlet.submodel.EmptyVABLambdaElementServlet;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

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 15b5bfa..3a23001 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,13 +2,13 @@
 

 import static org.junit.Assert.assertTrue;

 

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.property.Property;

 import org.eclipse.basyx.components.servlet.submodel.EmptyVABLambdaElementServlet;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

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 89fb806..d324790 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,13 +6,13 @@
 import java.util.Map;

 import java.util.function.Supplier;

 

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.property.Property;

 import org.eclipse.basyx.components.servlet.submodel.EmptyVABLambdaElementServlet;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.eclipse.basyx.vab.provider.lambda.VABLambdaProviderHelper;

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 ca38951..069eb33 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
@@ -6,11 +6,11 @@
 import java.util.Map;

 

 import org.eclipse.basyx.aas.api.webserviceclient.WebServiceJSONClient;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.components.servlet.submodel.EmptyVABLambdaElementServlet;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

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 57cc337..fbb0990 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
@@ -3,11 +3,12 @@
 import static org.junit.Assert.assertTrue;

 

 import java.util.HashMap;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

+

 import org.eclipse.basyx.components.servlet.submodel.EmptyVABLambdaElementServlet;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

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 5d7dcfa..59d2641 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
@@ -3,11 +3,12 @@
 import static org.junit.Assert.assertTrue;

 

 import java.util.HashMap;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

+

 import org.eclipse.basyx.components.servlet.submodel.EmptyVABLambdaElementServlet;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

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 c608a86..cad66e8 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,11 +6,11 @@
 import java.util.Map;

 import java.util.function.Supplier;

 

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.components.servlet.submodel.EmptyVABLambdaElementServlet;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.eclipse.basyx.vab.provider.lambda.VABLambdaProviderHelper;

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 272e8d0..ee8daf9 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,11 +6,11 @@
 import java.util.Map;

 import java.util.function.Supplier;

 

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.components.servlet.submodel.EmptyVABLambdaElementServlet;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.eclipse.basyx.vab.provider.lambda.VABLambdaProviderHelper;

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 5a0264a..5edd566 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
@@ -6,11 +6,11 @@
 import java.util.Map;

 

 import org.eclipse.basyx.aas.api.webserviceclient.WebServiceJSONClient;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.components.servlet.submodel.EmptyVABLambdaElementServlet;

 import org.eclipse.basyx.examples.contexts.BaSyxExamplesContext_1MemoryAASServer_1SQLDirectory;

 import org.eclipse.basyx.examples.deployment.BaSyxDeployment;

 import org.eclipse.basyx.examples.support.directory.ExamplesPreconfiguredDirectory;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

 import org.junit.ClassRule;

diff --git a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/provider/FileSystemProviderClass.java b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/provider/FileSystemProviderClass.java
index db1b74a..7e80240 100644
--- a/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/provider/FileSystemProviderClass.java
+++ b/examples/basys.examples/src/test/java/org/eclipse/basyx/examples/snippets/vab/provider/FileSystemProviderClass.java
@@ -4,8 +4,8 @@
 

 import java.util.HashMap;

 

-import org.eclipse.basyx.aas.backend.http.tools.GSONTools;

-import org.eclipse.basyx.aas.backend.http.tools.factory.DefaultTypeFactory;

+import org.eclipse.basyx.vab.backend.http.tools.GSONTools;

+import org.eclipse.basyx.vab.backend.http.tools.factory.DefaultTypeFactory;

 import org.eclipse.basyx.vab.core.IModelProvider;

 import org.eclipse.basyx.vab.provider.filesystem.FileSystemProvider;

 import org.eclipse.basyx.vab.provider.filesystem.filesystem.FileSystem;

diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/api/registry/AASHTTPRegistryProxy.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/api/registry/AASHTTPRegistryProxy.java
index 8381be0..8ebc31d 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/api/registry/AASHTTPRegistryProxy.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/api/registry/AASHTTPRegistryProxy.java
@@ -5,12 +5,13 @@
 import java.util.Map;

 

 import org.eclipse.basyx.aas.api.modelurn.ModelUrn;

-import org.eclipse.basyx.aas.backend.connector.MetaprotocolHandler;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.descriptor.AASDescriptor;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.identifier.IdentifierType;

+import org.eclipse.basyx.vab.backend.connector.MetaprotocolHandler;

 import org.eclipse.basyx.vab.core.directory.VABHTTPDirectoryProxy;

 

 

+

 /**

  * Local proxy class that hides HTTP calls to BaSys registry

  * 

diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/api/webserviceclient/WebServiceJSONClient.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/api/webserviceclient/WebServiceJSONClient.java
index b24dd0b..f844424 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/api/webserviceclient/WebServiceJSONClient.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/api/webserviceclient/WebServiceJSONClient.java
@@ -1,8 +1,8 @@
 package org.eclipse.basyx.aas.api.webserviceclient;

 

 import org.eclipse.basyx.aas.api.exception.ServerException;

-import org.eclipse.basyx.aas.backend.http.tools.GSONTools;

-import org.eclipse.basyx.aas.backend.http.tools.factory.DefaultTypeFactory;

+import org.eclipse.basyx.vab.backend.http.tools.GSONTools;

+import org.eclipse.basyx.vab.backend.http.tools.factory.DefaultTypeFactory;

 

 

 

diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/ConnectorProvider.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/ConnectorProvider.java
similarity index 93%
rename from sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/ConnectorProvider.java
rename to sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/ConnectorProvider.java
index 24a4aa3..bddb7db 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/ConnectorProvider.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/ConnectorProvider.java
@@ -1,4 +1,4 @@
-package org.eclipse.basyx.aas.backend.connector;
+package org.eclipse.basyx.vab.backend.connector;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/IBaSyxConnector.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/IBaSyxConnector.java
similarity index 97%
rename from sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/IBaSyxConnector.java
rename to sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/IBaSyxConnector.java
index a1dbee6..5b8000b 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/IBaSyxConnector.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/IBaSyxConnector.java
@@ -1,4 +1,4 @@
-package org.eclipse.basyx.aas.backend.connector;
+package org.eclipse.basyx.vab.backend.connector;
 
 /**
  * Connector interface for technology specific communication. Returns the
diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/IMetaProtocolHandler.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/IMetaProtocolHandler.java
similarity index 88%
rename from sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/IMetaProtocolHandler.java
rename to sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/IMetaProtocolHandler.java
index b57fcb7..1c45ec3 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/IMetaProtocolHandler.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/IMetaProtocolHandler.java
@@ -1,4 +1,4 @@
-package org.eclipse.basyx.aas.backend.connector;
+package org.eclipse.basyx.vab.backend.connector;
 
 
 /**
diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/JSONConnector.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/JSONConnector.java
similarity index 92%
rename from sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/JSONConnector.java
rename to sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/JSONConnector.java
index 45b6b05..9e2c9ee 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/JSONConnector.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/JSONConnector.java
@@ -1,144 +1,144 @@
-package org.eclipse.basyx.aas.backend.connector;

-

-import java.util.ArrayList;

-import java.util.List;

-

-import org.eclipse.basyx.aas.backend.http.tools.GSONTools;

-import org.eclipse.basyx.aas.backend.http.tools.factory.DefaultTypeFactory;

-import org.eclipse.basyx.aas.backend.http.tools.factory.GSONToolsFactory;

-import org.eclipse.basyx.vab.core.IModelProvider;

-

-

-/**

- * Connector Class responsible for serializing parameters and de-serializing

- * results. It verifies the results, removes the message header and returns the

- * requested entity.

- * 

- * @author pschorn

- *

- */

-public class JSONConnector implements IModelProvider {

-

-	

-	/**

-	 * Reference to Connector backend

-	 */

-	protected IBaSyxConnector provider = null;

-	

-	

-	/**

-	 * Reference to serializer / deserializer

-	 */

-	protected GSONTools serializer = null;

-	

-	

-	/**

-	 * Handle meta protocol in JSON String

-	 * */

-	protected IMetaProtocolHandler metaProtocolHandler = null;

-	

-	

-	/**

-	 * Constructor

-	 * 

-	 * @param provider

-	 */

-	public JSONConnector(IBaSyxConnector provider) {

-		// Store provider backend

-		this.provider = provider;

-		

-		// Create the meta protocal handler

-		this.metaProtocolHandler = new MetaprotocolHandler();

-		

-		// Create GSON serializer

-		serializer = new GSONTools(new DefaultTypeFactory());

-	}

-

-	

-	/**

-	 * Constructor that accepts specific factory for serializer

-	 * 

-	 * @param provider

-	 */

-	public JSONConnector(IBaSyxConnector provider, GSONToolsFactory factory) {

-		// Store provider backend

-		this.provider = provider;

-		

-		// Create GSON serializer

-		serializer = new GSONTools(factory);

-	}

-

-	

-

-	@Override

-	public Object getModelPropertyValue(String path) throws Exception {

-

-		// Get element from server

-		String message = provider.getModelPropertyValue(path);

-

-		// De-serialize and verify

-		return metaProtocolHandler.verify(message);

-	}

-

-	@Override

-	public void setModelPropertyValue(String path, Object newValue) throws Exception {

-

-		// Serialize value Object

-		String jsonString = serializer.serialize(newValue);

-

-		String message = provider.setModelPropertyValue(path, jsonString);

-

-		// De-serialize and verify

-		metaProtocolHandler.verify(message);

-	}

-

-	@Override

-	public void createValue(String path, Object newEntity) throws Exception {

-

-		// Serialize value Object

-		String jsonString = serializer.serialize(newEntity);

-

-		String message = provider.createValue(path, jsonString);

-

-		// De-serialize and verify

-		metaProtocolHandler.verify(message);

-	}

-

-	@Override

-	public void deleteValue(String path) throws Exception {

-

-		String message = provider.deleteValue(path);

-

-		// De-serialize and verify

-		metaProtocolHandler.verify(message);

-	}

-

-	@Override

-	public void deleteValue(String path, Object obj) throws Exception {

-

-		// Serialize parameter

-		String jsonString = serializer.serialize(obj);

-

-		String message = provider.deleteValue(path, jsonString);

-

-		// De-serialize and verify

-		metaProtocolHandler.verify(message);

-	}

-

-	@Override

-	public Object invokeOperation(String path, Object... parameter) throws Exception {

-

-		// Serialize parameter

-		List<Object> params = new ArrayList<>();

-		for (Object o : parameter) {

-			params.add(o);

-		}

-

-		String jsonString = serializer.serialize(params);

-

-		String message = provider.invokeOperation(path, jsonString);

-

-		// De-serialize and verify

-		return metaProtocolHandler.verify(message);

-	}

+package org.eclipse.basyx.vab.backend.connector;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.basyx.vab.backend.http.tools.GSONTools;
+import org.eclipse.basyx.vab.backend.http.tools.factory.DefaultTypeFactory;
+import org.eclipse.basyx.vab.backend.http.tools.factory.GSONToolsFactory;
+import org.eclipse.basyx.vab.core.IModelProvider;
+
+
+/**
+ * Connector Class responsible for serializing parameters and de-serializing
+ * results. It verifies the results, removes the message header and returns the
+ * requested entity.
+ * 
+ * @author pschorn
+ *
+ */
+public class JSONConnector implements IModelProvider {
+
+	
+	/**
+	 * Reference to Connector backend
+	 */
+	protected IBaSyxConnector provider = null;
+	
+	
+	/**
+	 * Reference to serializer / deserializer
+	 */
+	protected GSONTools serializer = null;
+	
+	
+	/**
+	 * Handle meta protocol in JSON String
+	 * */
+	protected IMetaProtocolHandler metaProtocolHandler = null;
+	
+	
+	/**
+	 * Constructor
+	 * 
+	 * @param provider
+	 */
+	public JSONConnector(IBaSyxConnector provider) {
+		// Store provider backend
+		this.provider = provider;
+		
+		// Create the meta protocal handler
+		this.metaProtocolHandler = new MetaprotocolHandler();
+		
+		// Create GSON serializer
+		serializer = new GSONTools(new DefaultTypeFactory());
+	}
+
+	
+	/**
+	 * Constructor that accepts specific factory for serializer
+	 * 
+	 * @param provider
+	 */
+	public JSONConnector(IBaSyxConnector provider, GSONToolsFactory factory) {
+		// Store provider backend
+		this.provider = provider;
+		
+		// Create GSON serializer
+		serializer = new GSONTools(factory);
+	}
+
+	
+
+	@Override
+	public Object getModelPropertyValue(String path) throws Exception {
+
+		// Get element from server
+		String message = provider.getModelPropertyValue(path);
+
+		// De-serialize and verify
+		return metaProtocolHandler.verify(message);
+	}
+
+	@Override
+	public void setModelPropertyValue(String path, Object newValue) throws Exception {
+
+		// Serialize value Object
+		String jsonString = serializer.serialize(newValue);
+
+		String message = provider.setModelPropertyValue(path, jsonString);
+
+		// De-serialize and verify
+		metaProtocolHandler.verify(message);
+	}
+
+	@Override
+	public void createValue(String path, Object newEntity) throws Exception {
+
+		// Serialize value Object
+		String jsonString = serializer.serialize(newEntity);
+
+		String message = provider.createValue(path, jsonString);
+
+		// De-serialize and verify
+		metaProtocolHandler.verify(message);
+	}
+
+	@Override
+	public void deleteValue(String path) throws Exception {
+
+		String message = provider.deleteValue(path);
+
+		// De-serialize and verify
+		metaProtocolHandler.verify(message);
+	}
+
+	@Override
+	public void deleteValue(String path, Object obj) throws Exception {
+
+		// Serialize parameter
+		String jsonString = serializer.serialize(obj);
+
+		String message = provider.deleteValue(path, jsonString);
+
+		// De-serialize and verify
+		metaProtocolHandler.verify(message);
+	}
+
+	@Override
+	public Object invokeOperation(String path, Object... parameter) throws Exception {
+
+		// Serialize parameter
+		List<Object> params = new ArrayList<>();
+		for (Object o : parameter) {
+			params.add(o);
+		}
+
+		String jsonString = serializer.serialize(params);
+
+		String message = provider.invokeOperation(path, jsonString);
+
+		// De-serialize and verify
+		return metaProtocolHandler.verify(message);
+	}
 }
\ No newline at end of file
diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/MetaprotocolHandler.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/MetaprotocolHandler.java
similarity index 92%
rename from sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/MetaprotocolHandler.java
rename to sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/MetaprotocolHandler.java
index 64886d8..95d7e31 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/MetaprotocolHandler.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/MetaprotocolHandler.java
@@ -1,12 +1,12 @@
-package org.eclipse.basyx.aas.backend.connector;
+package org.eclipse.basyx.vab.backend.connector;
 
 import java.util.Collection;
 import java.util.LinkedList;
 import java.util.Map;
 
-import org.eclipse.basyx.aas.backend.http.tools.GSONTools;
-import org.eclipse.basyx.aas.backend.http.tools.factory.DefaultTypeFactory;
-import org.eclipse.basyx.aas.backend.http.tools.factory.GSONToolsFactory;
+import org.eclipse.basyx.vab.backend.http.tools.GSONTools;
+import org.eclipse.basyx.vab.backend.http.tools.factory.DefaultTypeFactory;
+import org.eclipse.basyx.vab.backend.http.tools.factory.GSONToolsFactory;
 import org.eclipse.basyx.vab.backend.server.utils.Message;
 import org.eclipse.basyx.vab.backend.server.utils.Result;
 
diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/basyx/BaSyxConnector.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/basyx/BaSyxConnector.java
similarity index 98%
rename from sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/basyx/BaSyxConnector.java
rename to sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/basyx/BaSyxConnector.java
index a53b14a..683ac26 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/basyx/BaSyxConnector.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/basyx/BaSyxConnector.java
@@ -1,4 +1,4 @@
-package org.eclipse.basyx.aas.backend.connector.basyx;
+package org.eclipse.basyx.vab.backend.connector.basyx;
 
 import java.io.IOException;
 import java.net.InetAddress;
@@ -7,7 +7,7 @@
 import java.nio.channels.SocketChannel;
 
 import org.eclipse.basyx.aas.api.exception.ServerException;
-import org.eclipse.basyx.aas.backend.connector.IBaSyxConnector;
+import org.eclipse.basyx.vab.backend.connector.IBaSyxConnector;
 import org.eclipse.basyx.vab.backend.server.basyx.CoderTools;
 import org.eclipse.basyx.vab.backend.server.basyx.VABBaSyxTCPInterface;
 
diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/basyx/BaSyxConnectorProvider.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/basyx/BaSyxConnectorProvider.java
similarity index 79%
rename from sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/basyx/BaSyxConnectorProvider.java
rename to sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/basyx/BaSyxConnectorProvider.java
index ae49cfb..9d05b59 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/basyx/BaSyxConnectorProvider.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/basyx/BaSyxConnectorProvider.java
@@ -1,7 +1,7 @@
-package org.eclipse.basyx.aas.backend.connector.basyx;
+package org.eclipse.basyx.vab.backend.connector.basyx;
 
-import org.eclipse.basyx.aas.backend.connector.ConnectorProvider;
-import org.eclipse.basyx.aas.backend.connector.JSONConnector;
+import org.eclipse.basyx.vab.backend.connector.ConnectorProvider;
+import org.eclipse.basyx.vab.backend.connector.JSONConnector;
 import org.eclipse.basyx.vab.core.IModelProvider;
 
 
diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/http/HTTPConnector.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/http/HTTPConnector.java
similarity index 98%
rename from sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/http/HTTPConnector.java
rename to sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/http/HTTPConnector.java
index e073eca..2d4cfbd 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/http/HTTPConnector.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/http/HTTPConnector.java
@@ -1,243 +1,243 @@
-package org.eclipse.basyx.aas.backend.connector.http;

-

-import javax.ws.rs.client.Client;

-import javax.ws.rs.client.ClientBuilder;

-import javax.ws.rs.client.Entity;

-import javax.ws.rs.client.Invocation.Builder;

-import javax.ws.rs.client.WebTarget;

-import javax.ws.rs.core.MediaType;

-import javax.ws.rs.core.Response;

-

-import org.eclipse.basyx.aas.api.exception.ServerException;

-import org.eclipse.basyx.aas.backend.connector.IBaSyxConnector;

-import org.eclipse.basyx.vab.core.tools.VABPathTools;

-import org.glassfish.jersey.client.HttpUrlConnectorProvider;

-

-/**

- * HTTP connector class

- * 

- * @author kuhn, pschorn, schnicke

- *

- */

-public class HTTPConnector implements IBaSyxConnector {

-	private String address;

-	private String mediaType;

-

-	/**

-	 * Invoke a BaSys get operation via HTTP GET

-	 * 

-	 * @param address

-	 *            the server address from the directory

-	 * @param servicePath

-	 *            the URL suffix for the requested path

-	 * @return the requested object

-	 */

-	@Override

-	public String getModelPropertyValue(String servicePath) {

-		return httpGet(encodeHash(servicePath));

-	}

-

-	public HTTPConnector(String address) {

-		this(address, MediaType.APPLICATION_JSON);

-	}

-

-	public HTTPConnector(String address, String mediaType) {

-		this.address = address;

-		this.mediaType = mediaType;

-		

-		System.out.println("Create with addr:"+address);

-	}

-

-	/**

-	 * Invokes BasysPut method via HTTP PUT. Overrides existing property, operation

-	 * or event.

-	 * 

-	 * @param address

-	 *            the server address from the directory

-	 * @param servicePath

-	 *            the URL suffix for the requested property, operation or event

-	 * @param newValue

-	 *            should be an IElement of type Property, Operation or Event

-	 */

-	@Override

-	public String setModelPropertyValue(String servicePath, String newValue) throws ServerException {

-

-		return httpPut(encodeHash(servicePath), newValue);

-	}

-

-	/**

-	 * Invoke a BaSys Delete operation via HTTP PATCH. Deletes an element from a map

-	 * or collection by key

-	 * 

-	 * @param address

-	 *            the server address from the directory

-	 * @param servicePath

-	 *            the URL suffix for the requested property

-	 * @param obj

-	 *            the key or index of the entry that should be deleted

-	 * @throws ServerException

-	 */

-	@Override

-	public String deleteValue(String servicePath, String obj) throws ServerException {

-

-		return httpPatch(encodeHash(servicePath), obj);

-	}

-

-	/**

-	 * Invoke a BaSys invoke operation via HTTP. Implemented as HTTP POST.

-	 * 

-	 * @throws ServerException

-	 */

-	@Override

-	public String createValue(String servicePath, String newValue) throws ServerException {

-

-		return httpPost(encodeHash(servicePath), newValue);

-	}

-

-	/**

-	 * Invoke basysDelete operation via HTTP DELETE. Deletes any resource under the

-	 * given path.

-	 * 

-	 * @throws ServerException

-	 */

-	@Override

-	public String deleteValue(String servicePath) throws ServerException {

-

-		return httpDelete(encodeHash(servicePath));

-	}

-

-	/**

-	 * Execute a web service, return JSON string

-	 */

-	protected Builder buildRequest(Client client, String wsURL) {

-		// Called URL

-		WebTarget resource = client.target(wsURL);

-

-		// Build request, set JSON encoding

-		Builder request = resource.request();

-		request.accept(mediaType);

-

-		// Return JSON request

-		return request;

-	}

-

-	/**

-	 * Create web service path

-	 */

-	protected String createWSPath(String part1, String part2) {

-		// Null pointer check

-		if (part1 == null)

-			return part2;

-		if (part2 == null)

-			return part1;

-

-		// Return combined string

-		if (part1.endsWith("/"))

-			return part1 + part2;

-

-		return part1 + "/" + part2;

-	}

-	

-	/**

-	 * Perform a HTTP get request

-	 * 

-	 * @param servicePath

-	 * @return

-	 */

-	private String httpGet(String servicePath) {

-		System.out.println("[HTTP Get] " + VABPathTools.concatenatePaths(address, servicePath));

-

-		// Invoke service call via web services

-		Client client = ClientBuilder.newClient();

-

-		// Build web service URL

-		Builder request = buildRequest(client, VABPathTools.concatenatePaths(address, servicePath));

-

-		// Perform request, return response

-		String result = request.get(String.class);

-

-		System.out.println(result);

-

-		// Return repsonse message (header)

-		return result;

-	}

-

-	private String httpPut(String servicePath, String newValue) throws ServerException {

-		System.out.println("[HTTP Put] " + VABPathTools.concatenatePaths(address, servicePath) + "  [[" + newValue + "]]");

-

-		// Invoke service call via web services

-		Client client = ClientBuilder.newClient();

-

-		// Build web service URL

-		Builder request = buildRequest(client, VABPathTools.concatenatePaths(address, servicePath));

-

-		// Perform request

-		Response rsp = request.put(Entity.entity(newValue, mediaType));

-

-		// Return repsonse message (header)

-		return rsp.readEntity(String.class);

-

-	}

-

-	private String httpPatch(String servicePath, String newValue) throws ServerException {

-		System.out.println("[HTTP Patch] " + VABPathTools.concatenatePaths(address, servicePath) + "  " + newValue);

-

-		// Invoke service call via web services

-		Client client = ClientBuilder.newClient();

-

-		// Create and invoke HTTP PATCH request

-		Response rsp = client.target(VABPathTools.concatenatePaths(address, servicePath)).request().build("PATCH", Entity.text(newValue)).property(HttpUrlConnectorProvider.SET_METHOD_WORKAROUND, true).invoke();

-

-		// Return repsonse message (header)

-		return rsp.readEntity(String.class);

-	}

-

-	private String httpPost(String servicePath, String parameter) throws ServerException {

-		System.out.println("[HTTP Post] " + VABPathTools.concatenatePaths(address, servicePath) + " " + parameter);

-

-		// Invoke service call via web services

-		Client client = ClientBuilder.newClient();

-

-		// Build web service URL

-		Builder request = buildRequest(client, VABPathTools.concatenatePaths(address, servicePath));

-

-		// Perform request

-		Response rsp = request.post(Entity.entity(parameter, mediaType));

-

-		// Return repsonse message (header)

-		return rsp.readEntity(String.class);

-	}

-

-	private String httpDelete(String servicePath) throws ServerException {

-		System.out.println("[HTTP Delete] " + VABPathTools.concatenatePaths(address, servicePath));

-

-		// Invoke service call via web services

-		Client client = ClientBuilder.newClient();

-

-		// Build web service URL

-		Builder request = buildRequest(client, VABPathTools.concatenatePaths(address, servicePath));

-

-		// Perform request

-		Response rsp = request.delete();

-

-		// Return repsonse message (header)

-		return rsp.readEntity(String.class);

-	}

-

-	@Override

-	public String invokeOperation(String path, String parameter) throws Exception {

-

-		return httpPost(path, parameter);

-	}

-

-	/**

-	 * Replaces # with %23

-	 * 

-	 * @param path

-	 * @return

-	 */

-	private String encodeHash(String path) {

-		return path.replace("#", "%23");

-	}

-

-}

+package org.eclipse.basyx.vab.backend.connector.http;
+
+import javax.ws.rs.client.Client;
+import javax.ws.rs.client.ClientBuilder;
+import javax.ws.rs.client.Entity;
+import javax.ws.rs.client.Invocation.Builder;
+import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.eclipse.basyx.aas.api.exception.ServerException;
+import org.eclipse.basyx.vab.backend.connector.IBaSyxConnector;
+import org.eclipse.basyx.vab.core.tools.VABPathTools;
+import org.glassfish.jersey.client.HttpUrlConnectorProvider;
+
+/**
+ * HTTP connector class
+ * 
+ * @author kuhn, pschorn, schnicke
+ *
+ */
+public class HTTPConnector implements IBaSyxConnector {
+	private String address;
+	private String mediaType;
+
+	/**
+	 * Invoke a BaSys get operation via HTTP GET
+	 * 
+	 * @param address
+	 *            the server address from the directory
+	 * @param servicePath
+	 *            the URL suffix for the requested path
+	 * @return the requested object
+	 */
+	@Override
+	public String getModelPropertyValue(String servicePath) {
+		return httpGet(encodeHash(servicePath));
+	}
+
+	public HTTPConnector(String address) {
+		this(address, MediaType.APPLICATION_JSON);
+	}
+
+	public HTTPConnector(String address, String mediaType) {
+		this.address = address;
+		this.mediaType = mediaType;
+		
+		System.out.println("Create with addr:"+address);
+	}
+
+	/**
+	 * Invokes BasysPut method via HTTP PUT. Overrides existing property, operation
+	 * or event.
+	 * 
+	 * @param address
+	 *            the server address from the directory
+	 * @param servicePath
+	 *            the URL suffix for the requested property, operation or event
+	 * @param newValue
+	 *            should be an IElement of type Property, Operation or Event
+	 */
+	@Override
+	public String setModelPropertyValue(String servicePath, String newValue) throws ServerException {
+
+		return httpPut(encodeHash(servicePath), newValue);
+	}
+
+	/**
+	 * Invoke a BaSys Delete operation via HTTP PATCH. Deletes an element from a map
+	 * or collection by key
+	 * 
+	 * @param address
+	 *            the server address from the directory
+	 * @param servicePath
+	 *            the URL suffix for the requested property
+	 * @param obj
+	 *            the key or index of the entry that should be deleted
+	 * @throws ServerException
+	 */
+	@Override
+	public String deleteValue(String servicePath, String obj) throws ServerException {
+
+		return httpPatch(encodeHash(servicePath), obj);
+	}
+
+	/**
+	 * Invoke a BaSys invoke operation via HTTP. Implemented as HTTP POST.
+	 * 
+	 * @throws ServerException
+	 */
+	@Override
+	public String createValue(String servicePath, String newValue) throws ServerException {
+
+		return httpPost(encodeHash(servicePath), newValue);
+	}
+
+	/**
+	 * Invoke basysDelete operation via HTTP DELETE. Deletes any resource under the
+	 * given path.
+	 * 
+	 * @throws ServerException
+	 */
+	@Override
+	public String deleteValue(String servicePath) throws ServerException {
+
+		return httpDelete(encodeHash(servicePath));
+	}
+
+	/**
+	 * Execute a web service, return JSON string
+	 */
+	protected Builder buildRequest(Client client, String wsURL) {
+		// Called URL
+		WebTarget resource = client.target(wsURL);
+
+		// Build request, set JSON encoding
+		Builder request = resource.request();
+		request.accept(mediaType);
+
+		// Return JSON request
+		return request;
+	}
+
+	/**
+	 * Create web service path
+	 */
+	protected String createWSPath(String part1, String part2) {
+		// Null pointer check
+		if (part1 == null)
+			return part2;
+		if (part2 == null)
+			return part1;
+
+		// Return combined string
+		if (part1.endsWith("/"))
+			return part1 + part2;
+
+		return part1 + "/" + part2;
+	}
+	
+	/**
+	 * Perform a HTTP get request
+	 * 
+	 * @param servicePath
+	 * @return
+	 */
+	private String httpGet(String servicePath) {
+		System.out.println("[HTTP Get] " + VABPathTools.concatenatePaths(address, servicePath));
+
+		// Invoke service call via web services
+		Client client = ClientBuilder.newClient();
+
+		// Build web service URL
+		Builder request = buildRequest(client, VABPathTools.concatenatePaths(address, servicePath));
+
+		// Perform request, return response
+		String result = request.get(String.class);
+
+		System.out.println(result);
+
+		// Return repsonse message (header)
+		return result;
+	}
+
+	private String httpPut(String servicePath, String newValue) throws ServerException {
+		System.out.println("[HTTP Put] " + VABPathTools.concatenatePaths(address, servicePath) + "  [[" + newValue + "]]");
+
+		// Invoke service call via web services
+		Client client = ClientBuilder.newClient();
+
+		// Build web service URL
+		Builder request = buildRequest(client, VABPathTools.concatenatePaths(address, servicePath));
+
+		// Perform request
+		Response rsp = request.put(Entity.entity(newValue, mediaType));
+
+		// Return repsonse message (header)
+		return rsp.readEntity(String.class);
+
+	}
+
+	private String httpPatch(String servicePath, String newValue) throws ServerException {
+		System.out.println("[HTTP Patch] " + VABPathTools.concatenatePaths(address, servicePath) + "  " + newValue);
+
+		// Invoke service call via web services
+		Client client = ClientBuilder.newClient();
+
+		// Create and invoke HTTP PATCH request
+		Response rsp = client.target(VABPathTools.concatenatePaths(address, servicePath)).request().build("PATCH", Entity.text(newValue)).property(HttpUrlConnectorProvider.SET_METHOD_WORKAROUND, true).invoke();
+
+		// Return repsonse message (header)
+		return rsp.readEntity(String.class);
+	}
+
+	private String httpPost(String servicePath, String parameter) throws ServerException {
+		System.out.println("[HTTP Post] " + VABPathTools.concatenatePaths(address, servicePath) + " " + parameter);
+
+		// Invoke service call via web services
+		Client client = ClientBuilder.newClient();
+
+		// Build web service URL
+		Builder request = buildRequest(client, VABPathTools.concatenatePaths(address, servicePath));
+
+		// Perform request
+		Response rsp = request.post(Entity.entity(parameter, mediaType));
+
+		// Return repsonse message (header)
+		return rsp.readEntity(String.class);
+	}
+
+	private String httpDelete(String servicePath) throws ServerException {
+		System.out.println("[HTTP Delete] " + VABPathTools.concatenatePaths(address, servicePath));
+
+		// Invoke service call via web services
+		Client client = ClientBuilder.newClient();
+
+		// Build web service URL
+		Builder request = buildRequest(client, VABPathTools.concatenatePaths(address, servicePath));
+
+		// Perform request
+		Response rsp = request.delete();
+
+		// Return repsonse message (header)
+		return rsp.readEntity(String.class);
+	}
+
+	@Override
+	public String invokeOperation(String path, String parameter) throws Exception {
+
+		return httpPost(path, parameter);
+	}
+
+	/**
+	 * Replaces # with %23
+	 * 
+	 * @param path
+	 * @return
+	 */
+	private String encodeHash(String path) {
+		return path.replace("#", "%23");
+	}
+
+}
diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/http/HTTPConnectorProvider.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/http/HTTPConnectorProvider.java
similarity index 66%
rename from sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/http/HTTPConnectorProvider.java
rename to sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/http/HTTPConnectorProvider.java
index c6e3bfa..6be708b 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/http/HTTPConnectorProvider.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/http/HTTPConnectorProvider.java
@@ -1,7 +1,7 @@
-package org.eclipse.basyx.aas.backend.connector.http;
+package org.eclipse.basyx.vab.backend.connector.http;
 
-import org.eclipse.basyx.aas.backend.connector.ConnectorProvider;
-import org.eclipse.basyx.aas.backend.connector.JSONConnector;
+import org.eclipse.basyx.vab.backend.connector.ConnectorProvider;
+import org.eclipse.basyx.vab.backend.connector.JSONConnector;
 import org.eclipse.basyx.vab.core.IModelProvider;
 
 public class HTTPConnectorProvider extends ConnectorProvider {
diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/opcua/OpcUaConnector.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/opcua/OpcUaConnector.java
similarity index 99%
rename from sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/opcua/OpcUaConnector.java
rename to sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/opcua/OpcUaConnector.java
index b4ebf25..b576579 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/opcua/OpcUaConnector.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/opcua/OpcUaConnector.java
@@ -1,227 +1,227 @@
-package org.eclipse.basyx.aas.backend.connector.opcua;

-

-import java.util.ArrayList;

-import java.util.List;

-import java.util.concurrent.CompletableFuture;

-

-import org.eclipse.basyx.aas.api.exception.ServerException;

-import org.eclipse.basyx.vab.backend.server.opcua.BaSyxOpcUaClientRunner;

-import org.eclipse.basyx.vab.core.IModelProvider;

-import org.eclipse.milo.opcua.stack.core.Identifiers;

-import org.eclipse.milo.opcua.stack.core.types.builtin.DataValue;

-import org.eclipse.milo.opcua.stack.core.types.builtin.NodeId;

-import org.eclipse.milo.opcua.stack.core.types.builtin.QualifiedName;

-import org.eclipse.milo.opcua.stack.core.types.builtin.StatusCode;

-import org.eclipse.milo.opcua.stack.core.types.builtin.Variant;

-import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger;

-import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UShort;

-import org.eclipse.milo.opcua.stack.core.types.structured.BrowsePath;

-import org.eclipse.milo.opcua.stack.core.types.structured.CallResponse;

-import org.eclipse.milo.opcua.stack.core.types.structured.RelativePath;

-import org.eclipse.milo.opcua.stack.core.types.structured.RelativePathElement;

-import org.eclipse.milo.opcua.stack.core.types.structured.TranslateBrowsePathsToNodeIdsResponse;

-

-/**

- * OPC UA connector class

- * 

- * @author kdorofeev

- *

- */

-public class OpcUaConnector implements IModelProvider {

-    private String address;

-    private BaSyxOpcUaClientRunner clientRunner;

-

-    /**

-     * Invoke a BaSys get operation via OPC UA

-     * 

-     * @param servicePath

-     *            requested node path

-     * @return the requested value

-     * @throws Exception

-     */

-    @Override

-    public String getModelPropertyValue(String servicePath) {

-        try {

-            clientRunner = new BaSyxOpcUaClientRunner(address);

-            clientRunner.run();

-        } catch (Exception e) {

-            e.printStackTrace();

-        }

-        return opcUaRead(translateBrowsePathToNodeId(servicePath)[1]);

-    }

-

-    @Override

-    public void setModelPropertyValue(String servicePath, Object newValue) throws Exception {

-        try {

-            clientRunner = new BaSyxOpcUaClientRunner(address);

-            clientRunner.run();

-        } catch (Exception e) {

-            // TODO Auto-generated catch block

-            e.printStackTrace();

-        }

-        opcUaWrite(translateBrowsePathToNodeId(servicePath)[1], newValue);

-    }

-

-    @Override

-    public void createValue(String path, Object newEntity) throws Exception {

-

-    }

-

-    @Override

-    public void deleteValue(String path) throws Exception {

-

-    }

-

-    @Override

-    public void deleteValue(String path, Object obj) throws Exception {

-

-    }

-

-    @Override

-	public Object invokeOperation(String servicePath, Object... parameters) throws Exception {

-        try {

-            clientRunner = new BaSyxOpcUaClientRunner(address);

-            clientRunner.run();

-        } catch (Exception e) {

-            e.printStackTrace();

-        }

-        return opcUaMethodCall(translateBrowsePathToNodeId(servicePath), parameters);

-    }

-

-    public OpcUaConnector(String address) {

-        this.address = address;

-    }

-

-    /**

-     * Perform a OPC UA read request

-     * 

-     * @param servicePath

-     * @return

-     */

-    private String opcUaRead(NodeId servicePath) {

-        try {

-            List<NodeId> nodes = new ArrayList<NodeId>();

-            nodes.add(servicePath);

-            CompletableFuture<List<DataValue>> result = clientRunner.read(nodes);

-

-            return result.get().get(0).getValue().getValue().toString();

-

-        } catch (Exception e) {

-            e.printStackTrace();

-        }

-        return null;

-    }

-

-    private String opcUaMethodCall(NodeId[] methodNodes, Object[] inputParameters) {

-        try {

-            Variant[] inputs = new Variant[inputParameters.length];

-            for (int i = 0; i < inputParameters.length; i++) {

-                inputs[i] = new Variant(inputParameters[i]);

-            }

-            CompletableFuture<CallResponse> result = clientRunner.callMethod(methodNodes[0], methodNodes[1], inputs);

-            Variant[] outputs = result.get().getResults()[0].getOutputArguments();

-            String ret = "";

-            for (Variant var : outputs) {

-                ret += var.getValue() + " ";

-            }

-            return ret;

-        } catch (Exception e) {

-            e.printStackTrace();

-        }

-        return null;

-    }

-

-    private String opcUaWrite(NodeId servicePath, Object parameter) throws ServerException {

-        try {

-            List<NodeId> nodes = new ArrayList<NodeId>();

-            nodes.add(servicePath);

-            List<DataValue> parameters = new ArrayList<DataValue>();

-            parameters.add(new DataValue(new Variant(parameter), null, null, null));

-            CompletableFuture<List<StatusCode>> result = clientRunner.write(nodes, parameters);

-

-            return result.get().get(0).toString();

-        } catch (Exception e) {

-            e.printStackTrace();

-        }

-        return null;

-    }

-

-    private NodeId[] translateBrowsePathToNodeId(String path) {

-        String[] nodes = path.split("/");

-        List<RelativePathElement> rpe_list = new ArrayList<RelativePathElement>();

-        for (String node : nodes) {

-            if (node.split(":").length != 2) {

-                System.err.println("[OpcUaConnector] OpcUaName should be in form namespaceIdx:identifier");

-            }

-            int nsIdx = Integer.valueOf(node.split(":")[0]);

-            String name = node.split(":")[1];

-            rpe_list.add(new RelativePathElement(Identifiers.HierarchicalReferences, false, true,

-                    new QualifiedName(nsIdx, name)));

-        }

-        RelativePathElement[] rpe_node_arr = new RelativePathElement[rpe_list.size()];

-        RelativePathElement[] rpe_parent_arr = new RelativePathElement[rpe_list.size() - 1];

-        rpe_node_arr = rpe_list.toArray(rpe_node_arr);

-

-        // get list for parent (all but the last one)

-        rpe_list.remove(rpe_list.size() - 1);

-        rpe_parent_arr = rpe_list.toArray(rpe_parent_arr);

-

-        BrowsePath bp_node = new BrowsePath(Identifiers.RootFolder, new RelativePath(rpe_node_arr));

-        BrowsePath bp_parent = new BrowsePath(Identifiers.RootFolder, new RelativePath(rpe_parent_arr));

-        List<BrowsePath> bp_node_list = new ArrayList<BrowsePath>();

-        List<BrowsePath> bp_parent_list = new ArrayList<BrowsePath>();

-        bp_node_list.add(bp_node);

-        bp_parent_list.add(bp_parent);

-        try {

-            CompletableFuture<TranslateBrowsePathsToNodeIdsResponse> result_node = clientRunner.translate(bp_node_list);

-            CompletableFuture<TranslateBrowsePathsToNodeIdsResponse> result_parent = clientRunner

-                    .translate(bp_parent_list);

-            if (result_node.get().getResults().length == 0) {

-                System.out.println(

-                        "[OpcUaConnector] WARNING: TranslateBrowsePathsToNodeIdsResponse result size = 0, checkthe browse path!");

-                return null;

-            }

-            if (result_node.get().getResults().length > 1) {

-                System.out.println(

-                        "[OpcUaConnector] WARNING: TranslateBrowsePathsToNodeIdsResponse result size > 1, the method returns only the first one!");

-            }

-            if (result_node.get().getResults()[0].getTargets().length > 1) {

-                System.out.println(

-                        "[OpcUaConnector] WARNING: TranslateBrowsePathsToNodeIdsResponse targets size > 1, the method returns only the first one!");

-            }

-            if (result_node.get().getResults()[0].getTargets().length == 0) {

-                System.out.println(

-                        "[OpcUaConnector] WARNING: TranslateBrowsePathsToNodeIdsResponse targets size = 0, check the browse path!");

-                System.out.println(result_node.get().getResults()[0].getStatusCode().toString());

-                return null;

-            }

-            Object nodeIdentifier = result_node.get().getResults()[0].getTargets()[0].getTargetId().getIdentifier();

-            Object parentIdentifier = result_parent.get().getResults()[0].getTargets()[0].getTargetId().getIdentifier();

-            UShort nodeNsIdx = result_node.get().getResults()[0].getTargets()[0].getTargetId().getNamespaceIndex();

-            UShort parentNsIdx = result_parent.get().getResults()[0].getTargets()[0].getTargetId().getNamespaceIndex();

-            if (nodeIdentifier instanceof String && parentIdentifier instanceof String) {

-                return new NodeId[] { new NodeId(parentNsIdx, (String) parentIdentifier),

-                        new NodeId(nodeNsIdx, (String) nodeIdentifier) };

-            }

-            if (nodeIdentifier instanceof UInteger && parentIdentifier instanceof UInteger) {

-                return new NodeId[] { new NodeId(parentNsIdx, (UInteger) parentIdentifier),

-                        new NodeId(nodeNsIdx, (UInteger) nodeIdentifier) };

-            }

-            if (nodeIdentifier instanceof UInteger && parentIdentifier instanceof String) {

-                return new NodeId[] { new NodeId(parentNsIdx, (String) parentIdentifier),

-                        new NodeId(nodeNsIdx, (UInteger) nodeIdentifier) };

-            }

-            if (nodeIdentifier instanceof String && parentIdentifier instanceof UInteger) {

-                return new NodeId[] { new NodeId(parentNsIdx, (UInteger) parentIdentifier),

-                        new NodeId(nodeNsIdx, (String) nodeIdentifier) };

-            } else {

-                System.err.println("[OpcUaConnector] Error: NodeId identifier is not neither String, nor int");

-                return null;

-            }

-        } catch (Exception e) {

-            e.printStackTrace();

-        }

-        return null;

-    }

-

-}

+package org.eclipse.basyx.vab.backend.connector.opcua;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+
+import org.eclipse.basyx.aas.api.exception.ServerException;
+import org.eclipse.basyx.vab.backend.server.opcua.BaSyxOpcUaClientRunner;
+import org.eclipse.basyx.vab.core.IModelProvider;
+import org.eclipse.milo.opcua.stack.core.Identifiers;
+import org.eclipse.milo.opcua.stack.core.types.builtin.DataValue;
+import org.eclipse.milo.opcua.stack.core.types.builtin.NodeId;
+import org.eclipse.milo.opcua.stack.core.types.builtin.QualifiedName;
+import org.eclipse.milo.opcua.stack.core.types.builtin.StatusCode;
+import org.eclipse.milo.opcua.stack.core.types.builtin.Variant;
+import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger;
+import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UShort;
+import org.eclipse.milo.opcua.stack.core.types.structured.BrowsePath;
+import org.eclipse.milo.opcua.stack.core.types.structured.CallResponse;
+import org.eclipse.milo.opcua.stack.core.types.structured.RelativePath;
+import org.eclipse.milo.opcua.stack.core.types.structured.RelativePathElement;
+import org.eclipse.milo.opcua.stack.core.types.structured.TranslateBrowsePathsToNodeIdsResponse;
+
+/**
+ * OPC UA connector class
+ * 
+ * @author kdorofeev
+ *
+ */
+public class OpcUaConnector implements IModelProvider {
+    private String address;
+    private BaSyxOpcUaClientRunner clientRunner;
+
+    /**
+     * Invoke a BaSys get operation via OPC UA
+     * 
+     * @param servicePath
+     *            requested node path
+     * @return the requested value
+     * @throws Exception
+     */
+    @Override
+    public String getModelPropertyValue(String servicePath) {
+        try {
+            clientRunner = new BaSyxOpcUaClientRunner(address);
+            clientRunner.run();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return opcUaRead(translateBrowsePathToNodeId(servicePath)[1]);
+    }
+
+    @Override
+    public void setModelPropertyValue(String servicePath, Object newValue) throws Exception {
+        try {
+            clientRunner = new BaSyxOpcUaClientRunner(address);
+            clientRunner.run();
+        } catch (Exception e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        opcUaWrite(translateBrowsePathToNodeId(servicePath)[1], newValue);
+    }
+
+    @Override
+    public void createValue(String path, Object newEntity) throws Exception {
+
+    }
+
+    @Override
+    public void deleteValue(String path) throws Exception {
+
+    }
+
+    @Override
+    public void deleteValue(String path, Object obj) throws Exception {
+
+    }
+
+    @Override
+	public Object invokeOperation(String servicePath, Object... parameters) throws Exception {
+        try {
+            clientRunner = new BaSyxOpcUaClientRunner(address);
+            clientRunner.run();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return opcUaMethodCall(translateBrowsePathToNodeId(servicePath), parameters);
+    }
+
+    public OpcUaConnector(String address) {
+        this.address = address;
+    }
+
+    /**
+     * Perform a OPC UA read request
+     * 
+     * @param servicePath
+     * @return
+     */
+    private String opcUaRead(NodeId servicePath) {
+        try {
+            List<NodeId> nodes = new ArrayList<NodeId>();
+            nodes.add(servicePath);
+            CompletableFuture<List<DataValue>> result = clientRunner.read(nodes);
+
+            return result.get().get(0).getValue().getValue().toString();
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    private String opcUaMethodCall(NodeId[] methodNodes, Object[] inputParameters) {
+        try {
+            Variant[] inputs = new Variant[inputParameters.length];
+            for (int i = 0; i < inputParameters.length; i++) {
+                inputs[i] = new Variant(inputParameters[i]);
+            }
+            CompletableFuture<CallResponse> result = clientRunner.callMethod(methodNodes[0], methodNodes[1], inputs);
+            Variant[] outputs = result.get().getResults()[0].getOutputArguments();
+            String ret = "";
+            for (Variant var : outputs) {
+                ret += var.getValue() + " ";
+            }
+            return ret;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    private String opcUaWrite(NodeId servicePath, Object parameter) throws ServerException {
+        try {
+            List<NodeId> nodes = new ArrayList<NodeId>();
+            nodes.add(servicePath);
+            List<DataValue> parameters = new ArrayList<DataValue>();
+            parameters.add(new DataValue(new Variant(parameter), null, null, null));
+            CompletableFuture<List<StatusCode>> result = clientRunner.write(nodes, parameters);
+
+            return result.get().get(0).toString();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    private NodeId[] translateBrowsePathToNodeId(String path) {
+        String[] nodes = path.split("/");
+        List<RelativePathElement> rpe_list = new ArrayList<RelativePathElement>();
+        for (String node : nodes) {
+            if (node.split(":").length != 2) {
+                System.err.println("[OpcUaConnector] OpcUaName should be in form namespaceIdx:identifier");
+            }
+            int nsIdx = Integer.valueOf(node.split(":")[0]);
+            String name = node.split(":")[1];
+            rpe_list.add(new RelativePathElement(Identifiers.HierarchicalReferences, false, true,
+                    new QualifiedName(nsIdx, name)));
+        }
+        RelativePathElement[] rpe_node_arr = new RelativePathElement[rpe_list.size()];
+        RelativePathElement[] rpe_parent_arr = new RelativePathElement[rpe_list.size() - 1];
+        rpe_node_arr = rpe_list.toArray(rpe_node_arr);
+
+        // get list for parent (all but the last one)
+        rpe_list.remove(rpe_list.size() - 1);
+        rpe_parent_arr = rpe_list.toArray(rpe_parent_arr);
+
+        BrowsePath bp_node = new BrowsePath(Identifiers.RootFolder, new RelativePath(rpe_node_arr));
+        BrowsePath bp_parent = new BrowsePath(Identifiers.RootFolder, new RelativePath(rpe_parent_arr));
+        List<BrowsePath> bp_node_list = new ArrayList<BrowsePath>();
+        List<BrowsePath> bp_parent_list = new ArrayList<BrowsePath>();
+        bp_node_list.add(bp_node);
+        bp_parent_list.add(bp_parent);
+        try {
+            CompletableFuture<TranslateBrowsePathsToNodeIdsResponse> result_node = clientRunner.translate(bp_node_list);
+            CompletableFuture<TranslateBrowsePathsToNodeIdsResponse> result_parent = clientRunner
+                    .translate(bp_parent_list);
+            if (result_node.get().getResults().length == 0) {
+                System.out.println(
+                        "[OpcUaConnector] WARNING: TranslateBrowsePathsToNodeIdsResponse result size = 0, checkthe browse path!");
+                return null;
+            }
+            if (result_node.get().getResults().length > 1) {
+                System.out.println(
+                        "[OpcUaConnector] WARNING: TranslateBrowsePathsToNodeIdsResponse result size > 1, the method returns only the first one!");
+            }
+            if (result_node.get().getResults()[0].getTargets().length > 1) {
+                System.out.println(
+                        "[OpcUaConnector] WARNING: TranslateBrowsePathsToNodeIdsResponse targets size > 1, the method returns only the first one!");
+            }
+            if (result_node.get().getResults()[0].getTargets().length == 0) {
+                System.out.println(
+                        "[OpcUaConnector] WARNING: TranslateBrowsePathsToNodeIdsResponse targets size = 0, check the browse path!");
+                System.out.println(result_node.get().getResults()[0].getStatusCode().toString());
+                return null;
+            }
+            Object nodeIdentifier = result_node.get().getResults()[0].getTargets()[0].getTargetId().getIdentifier();
+            Object parentIdentifier = result_parent.get().getResults()[0].getTargets()[0].getTargetId().getIdentifier();
+            UShort nodeNsIdx = result_node.get().getResults()[0].getTargets()[0].getTargetId().getNamespaceIndex();
+            UShort parentNsIdx = result_parent.get().getResults()[0].getTargets()[0].getTargetId().getNamespaceIndex();
+            if (nodeIdentifier instanceof String && parentIdentifier instanceof String) {
+                return new NodeId[] { new NodeId(parentNsIdx, (String) parentIdentifier),
+                        new NodeId(nodeNsIdx, (String) nodeIdentifier) };
+            }
+            if (nodeIdentifier instanceof UInteger && parentIdentifier instanceof UInteger) {
+                return new NodeId[] { new NodeId(parentNsIdx, (UInteger) parentIdentifier),
+                        new NodeId(nodeNsIdx, (UInteger) nodeIdentifier) };
+            }
+            if (nodeIdentifier instanceof UInteger && parentIdentifier instanceof String) {
+                return new NodeId[] { new NodeId(parentNsIdx, (String) parentIdentifier),
+                        new NodeId(nodeNsIdx, (UInteger) nodeIdentifier) };
+            }
+            if (nodeIdentifier instanceof String && parentIdentifier instanceof UInteger) {
+                return new NodeId[] { new NodeId(parentNsIdx, (UInteger) parentIdentifier),
+                        new NodeId(nodeNsIdx, (String) nodeIdentifier) };
+            } else {
+                System.err.println("[OpcUaConnector] Error: NodeId identifier is not neither String, nor int");
+                return null;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+}
diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/opcua/OpcUaConnectorProvider.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/opcua/OpcUaConnectorProvider.java
similarity index 77%
rename from sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/opcua/OpcUaConnectorProvider.java
rename to sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/opcua/OpcUaConnectorProvider.java
index 8989cec..491249b 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/connector/opcua/OpcUaConnectorProvider.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/connector/opcua/OpcUaConnectorProvider.java
@@ -1,24 +1,24 @@
-package org.eclipse.basyx.aas.backend.connector.opcua;

-

-import org.eclipse.basyx.aas.backend.connector.ConnectorProvider;

-import org.eclipse.basyx.vab.core.IModelProvider;

-

-/**

- * OPC UA connector provider class

- * 

- * @author kdorofeev

- *

- */

-public class OpcUaConnectorProvider extends ConnectorProvider {

-

-	/**

-	 * returns HTTPConnetor wrapped with ConnectedHashmapProvider that handles

-	 * message header information

-	 */

-	@Override

-	protected IModelProvider createProvider(String addr) {

-

-		return new OpcUaConnector(addr);

-	}

-

-}

+package org.eclipse.basyx.vab.backend.connector.opcua;
+
+import org.eclipse.basyx.vab.backend.connector.ConnectorProvider;
+import org.eclipse.basyx.vab.core.IModelProvider;
+
+/**
+ * OPC UA connector provider class
+ * 
+ * @author kdorofeev
+ *
+ */
+public class OpcUaConnectorProvider extends ConnectorProvider {
+
+	/**
+	 * returns HTTPConnetor wrapped with ConnectedHashmapProvider that handles
+	 * message header information
+	 */
+	@Override
+	protected IModelProvider createProvider(String addr) {
+
+		return new OpcUaConnector(addr);
+	}
+
+}
diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/http/tools/GSONTools.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/http/tools/GSONTools.java
similarity index 98%
rename from sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/http/tools/GSONTools.java
rename to sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/http/tools/GSONTools.java
index 5ed996f..4024ec2 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/http/tools/GSONTools.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/http/tools/GSONTools.java
@@ -1,579 +1,579 @@
-package org.eclipse.basyx.aas.backend.http.tools;

-

-import java.io.ByteArrayInputStream;

-import java.io.ByteArrayOutputStream;

-import java.io.IOException;

-import java.io.ObjectInputStream;

-import java.io.ObjectOutputStream;

-import java.io.Serializable;

-import java.util.Base64;

-import java.util.Collection;

-import java.util.List;

-import java.util.Map;

-import java.util.Set;

-import java.util.function.BiConsumer;

-import java.util.function.Consumer;

-import java.util.function.Function;

-import java.util.function.Supplier;

-

-import org.eclipse.basyx.aas.backend.http.tools.factory.GSONToolsFactory;

-

-import com.google.gson.JsonArray;

-import com.google.gson.JsonElement;

-import com.google.gson.JsonNull;

-import com.google.gson.JsonObject;

-import com.google.gson.JsonParser;

-import com.google.gson.JsonPrimitive;

-

-/**

- * Provides means for (de-)serialization of Primitives (int, double, string,

- * boolean), Maps, Sets and Lists. <br />

- * Since JSON is not able to differentiate between Sets and Lists, additional

- * information is added. When a Collection of objects is serialized, this

- * information is directly added using an "index" key. <br />

- * However, collections of primitives do not allow adding an "index" key. To

- * handle this, a type tag is added on the same level as the collection. For

- * more details, see <i>TestJson</i>

- * 

- * @author rajashek, schnicke

- *

- */

-public class GSONTools implements Serializer {

-	// Used string constants

-	public static final String INDEX = "index";

-	public static final String OPERATION = "operation";

-	public static final String LAMBDA = "lambda";

-	public static final String BASYXFUNCTIONTYPE = "_basyxFunctionType";

-	public static final String BASYXINVOCABLE = "_basyxInvocable";

-	public static final String LIST = "list";

-	public static final String SET = "set";

-	public static final String BASYXTYPE = "_basyxTypes";

-	public static final String BASYXVALUE = "_value";

-	public static final String BASYXFUNCTIONVALUE = "_basyxFunctionValue";

-

-	/**

-	 * JsonParser reference

-	 */

-	protected static JsonParser parser = new JsonParser();

-

-	/**

-	 * Type factory

-	 */

-	protected GSONToolsFactory toolsFactory = null;

-

-	/**

-	 * Constructor

-	 */

-	public GSONTools(GSONToolsFactory factory) {

-		// Store factory reference

-		toolsFactory = factory;

-	}

-

-	/**

-	 * Set factory instance

-	 */

-	public void setFactory(GSONToolsFactory newFactoryInstance) {

-		// Store factory instance

-		toolsFactory = newFactoryInstance;

-	}

-

-	@Override

-	public Object deserialize(String str) {

-		JsonElement elem = parser.parse(str);

-

-		// Handle edge case of collection of primitives

-		if (isWrappedCollection(elem)) {

-			return handleWrappedCollection(elem);

-		} else {

-			return deserializeJsonElement(elem);

-		}

-

-	}

-

-	private Object handleWrappedCollection(JsonElement elem) {

-		JsonObject obj = elem.getAsJsonObject();

-		JsonArray array = (JsonArray) obj.get(BASYXVALUE);

-		if (obj.get(BASYXTYPE).getAsString().equals(SET)) {

-			return deserializeJsonArrayAsSet(array);

-		} else {

-			return deserializeJsonArrayAsList(array);

-		}

-	}

-

-	private boolean isWrappedCollection(JsonElement elem) {

-		if (elem.isJsonObject()) {

-			JsonObject obj = elem.getAsJsonObject();

-			return obj.has(BASYXVALUE);

-		}

-		return false;

-	}

-

-	@Override

-	public String serialize(Object obj) {

-		JsonElement elem = serializeToJsonElement(obj);

-

-		// Handle edge case of collection of primitives and empty collections

-		// Has to be handled here since complete knowledge about element structure is

-		// needed

-		if (obj instanceof Collection<?>) {

-			Collection<?> col = (Collection<?>) obj;

-

-			if (col.size() > 0) {

-				Object item = col.iterator().next();

-

-				// Only handle primitive types. Complex types are already handled

-				if (item.getClass().isPrimitive() || isWrapperType(item.getClass())) {

-					elem = buildCollectionWrapper(col instanceof List<?> ? LIST : SET, elem);

-				}

-			} else {

-				// Empty collections need also to be handled, regardless of intended type

-				elem = buildCollectionWrapper(col instanceof List<?> ? LIST : SET, new JsonArray());

-			}

-		}

-

-		return elem.toString();

-	}

-

-	private JsonObject buildCollectionWrapper(String type, JsonElement elem) {

-		JsonObject jObj = new JsonObject();

-		jObj.add(BASYXTYPE, new JsonPrimitive(type));

-		jObj.add(BASYXVALUE, elem);

-		return jObj;

-	}

-

-	/**

-	 * Serialized an arbitrary object to a JsonElement

-	 * 

-	 * @param obj

-	 * @return

-	 */

-	@SuppressWarnings("unchecked")

-	private JsonElement serializeToJsonElement(Object obj) {

-		if (obj == null) {

-			return JsonNull.INSTANCE;

-		} else if (obj.getClass().isPrimitive() || isWrapperType(obj.getClass()) || obj instanceof String) {

-			return serializePrimitive(obj);

-		} else if (obj instanceof Map<?, ?>) {

-			return serializeMap((Map<String, Object>) obj);

-		} else if (obj instanceof Collection<?>) {

-			if (obj instanceof List<?>) {

-				return serializeList((List<?>) obj);

-			} else {

-				return serializeSet((Set<?>) obj);

-			}

-		} else if (isFunction(obj)) {

-			return serializeFunction(obj);

-		}

-		throw new RuntimeException("Unknown element!");

-	}

-

-	/**

-	 * Deserializes a JsonElement to an object

-	 * 

-	 * @param elem

-	 * @return

-	 */

-	private Object deserializeJsonElement(JsonElement elem) {

-		if (elem.isJsonPrimitive()) {

-			return deserializeJsonPrimitive(elem.getAsJsonPrimitive());

-		} else if (elem.isJsonObject()) {

-			return deserializeJsonObject(elem.getAsJsonObject());

-		} else if (elem.isJsonArray()) {

-			return deserializeJsonArray(elem.getAsJsonArray());

-		}

-		return null;

-	}

-

-	/**

-	 * Indicates if a class is a wrapper type, e.g. <i>Integer</i> for <i>int</i>

-	 * 

-	 * @param clazz

-	 * @return

-	 */

-	private static boolean isWrapperType(Class<?> clazz) {

-		return clazz.equals(Boolean.class) || clazz.equals(Integer.class) || clazz.equals(Character.class) || clazz.equals(Byte.class) || clazz.equals(Short.class) || clazz.equals(Double.class) || clazz.equals(Long.class)

-				|| clazz.equals(Float.class);

-	}

-

-	/**

-	 * Deserializes a JsonPrimitive to either string, int, double or boolean

-	 * 

-	 * @param primitive

-	 * @return

-	 */

-	private Object deserializeJsonPrimitive(JsonPrimitive primitive) {

-		if (primitive.isNumber()) {

-			if (primitive.getAsString().contains(".")) {

-				return primitive.getAsDouble();

-			} else {

-				return primitive.getAsInt();

-			}

-		} else if (primitive.isBoolean()) {

-			return primitive.getAsBoolean();

-		} else {

-			return primitive.getAsString();

-		}

-	}

-

-	/**

-	 * Serializes either string, int, double or boolean to a JsonPrimitive

-	 * 

-	 * @param primitive

-	 * @return

-	 */

-	private JsonPrimitive serializePrimitive(Object primitive) {

-		if (primitive instanceof Number) {

-			return new JsonPrimitive((Number) primitive);

-		} else if (primitive instanceof Boolean) {

-			return new JsonPrimitive((Boolean) primitive);

-		} else {

-			return new JsonPrimitive((String) primitive);

-		}

-	}

-

-	/**

-	 * Deserializes a JsonObject to either a map, an operations or an arbitrary

-	 * serializable object

-	 * 

-	 * @param map

-	 * @return

-	 */

-	private Object deserializeJsonObject(JsonObject map) {

-		if (map.has(BASYXFUNCTIONTYPE)) {

-			if (map.get(BASYXFUNCTIONTYPE).getAsString().equals(OPERATION)) {

-				return BASYXINVOCABLE;

-			} else {

-				// Type equals Lambda

-				return deserializeObjectFromString(map.get(BASYXFUNCTIONVALUE).getAsString());

-			}

-		} else {

-			return deserializeToMap(map);

-		}

-	}

-

-	/**

-	 * Deserializes a JsonObject to a map

-	 * 

-	 * @param map

-	 * @return

-	 */

-	private Map<String, Object> deserializeToMap(JsonObject map) {

-		Map<String, Object> ret = toolsFactory.createMap();

-		JsonObject collectionTypes = (JsonObject) map.get(BASYXTYPE);

-

-		for (String k : map.keySet()) {

-			// Ignore BASYXTYPE since it is only used for type meta data

-			if (k.equals(BASYXTYPE)) {

-				continue;

-			}

-

-			// If there are collections in the map, get their types and deserialize them

-			if (collectionTypes != null && collectionTypes.has(k)) {

-				String type = collectionTypes.get(k).getAsString();

-				JsonElement el = map.get(k);

-				if (type.equals(LIST)) {

-					if (el.isJsonArray()) {

-						ret.put(k, deserializeJsonArrayAsList((JsonArray) el));

-					} else {

-						ret.put(k, handleWrappedCollection(el));

-					}

-				} else if (type.equals(SET)) {

-					if (el.isJsonArray()) {

-						ret.put(k, deserializeJsonArrayAsSet((JsonArray) el));

-					} else {

-						ret.put(k, handleWrappedCollection(el));

-					}

-				}

-			} else {

-				ret.put(k, deserializeJsonElement(map.get(k)));

-			}

-		}

-		return ret;

-	}

-

-	/**

-	 * Serializes a Map to a JsonObject

-	 * 

-	 * @param map

-	 * @return

-	 */

-	private JsonObject serializeMap(Map<String, Object> map) {

-		JsonObject obj = new JsonObject();

-		JsonObject collectionTypes = new JsonObject();

-		for (String k : map.keySet()) {

-			Object o = map.get(k);

-			if (o instanceof List<?>) {

-				collectionTypes.add(k, new JsonPrimitive(LIST));

-			} else if (o instanceof Set<?>) {

-				collectionTypes.add(k, new JsonPrimitive(SET));

-			}

-

-			obj.add(k, serializeToJsonElement(o));

-		}

-

-		// If there are any collections, add collection type meta data

-		if (collectionTypes.size() > 0) {

-			obj.add(BASYXTYPE, collectionTypes);

-		}

-

-		return obj;

-	}

-

-	/**

-	 * Removes INDEX string from ordered lists

-	 * 

-	 * @param obj

-	 * @return

-	 */

-	private JsonObject stripIndex(JsonObject obj) {

-		obj.remove(INDEX);

-		return obj;

-	}

-

-	/**

-	 * Deserializes a JSONArray to either a list or a set, depending on the presence

-	 * of an INDEX value

-	 * 

-	 * @param array

-	 * @return

-	 */

-	private Object deserializeJsonArray(JsonArray array) {

-		if (isOrdered(array)) {

-			return deserializeJsonArrayAsList(array);

-		} else {

-			return deserializeJsonArrayAsSet(array);

-		}

-	}

-

-	/**

-	 * Deserializes a JsonArray to a List<br/>

-	 * <b>Assumption:</b> The order in the json is equals the correct order

-	 * 

-	 * @param array

-	 * @return

-	 */

-	private List<Object> deserializeJsonArrayAsList(JsonArray array) {

-		List<Object> list = toolsFactory.createList();

-		for (int i = 0; i < array.size(); i++) {

-			if (array.get(i) instanceof JsonObject) {

-				// If it is a JsonObject it contains an index --> Strip it

-				JsonObject stripped = stripIndex(array.get(i).getAsJsonObject());

-				list.add(deserializeJsonElement(stripped));

-			} else {

-				list.add(deserializeJsonElement(array.get(i)));

-

-			}

-		}

-

-		return list;

-	}

-

-	/**

-	 * Deserializes a JsonArray to a Set

-	 * 

-	 * @param array

-	 * @return

-	 */

-	private Set<Object> deserializeJsonArrayAsSet(JsonArray array) {

-		Set<Object> set = toolsFactory.createSet();

-		for (int i = 0; i < array.size(); i++) {

-			set.add(deserializeJsonElement(array.get(i)));

-		}

-		return set;

-	}

-

-	/**

-	 * Checks if a JsonArray is an ordered list or a set <br/>

-	 * FIXME: Replace this here with BASYXTYPE checks

-	 * 

-	 * @param array

-	 * @return

-	 */

-	private boolean isOrdered(JsonArray array) {

-		if (array.size() == 0) {

-			return true;

-		}

-

-		JsonElement elem = array.get(0);

-

-		if (!elem.isJsonObject()) {

-			return false;

-		}

-

-		JsonObject obj = elem.getAsJsonObject();

-		if (obj.has(INDEX)) {

-			return true;

-		} else {

-			return false;

-		}

-	}

-

-	/**

-	 * Checks if an object is a lambda function

-	 * 

-	 * @param value

-	 * @return

-	 */

-	private boolean isFunction(Object value) {

-		return (value instanceof Supplier<?>) || (value instanceof Function<?, ?>) || (value instanceof Consumer<?>) || (value instanceof BiConsumer<?, ?>);

-	}

-

-	/**

-	 * Checks if an object implements Serializable

-	 * 

-	 * @param value

-	 * @return

-	 */

-	private boolean isSerializable(Object value) {

-		return value instanceof Serializable;

-	}

-

-	/**

-	 * Serializes a set to a JsonArray

-	 * 

-	 * @param set

-	 * @return

-	 */

-	private JsonElement serializeSet(Set<?> set) {

-		JsonArray array = new JsonArray();

-		if (set.size() > 0) {

-			for (Object o : set) {

-				array.add(serializeToJsonElement(o));

-			}

-			return array;

-		} else {

-			// If it is an empty list,

-			JsonObject jObj = new JsonObject();

-			jObj.add(BASYXTYPE, new JsonPrimitive(SET));

-			jObj.add(BASYXVALUE, new JsonArray());

-			return jObj;

-		}

-	}

-

-	/**

-	 * Serializes a list to a JsonArray and adds index where appropriate

-	 * 

-	 * @param list

-	 * @return

-	 */

-	private JsonElement serializeList(List<?> list) {

-

-		if (list.size() > 0 && list.get(0) instanceof Map<?, ?>) {

-			// If the list contains maps, attach the index property

-			JsonArray array = new JsonArray();

-

-			for (int i = 0; i < list.size(); i++) {

-				JsonObject elem = (JsonObject) serializeToJsonElement(list.get(i));

-				elem.add(INDEX, new JsonPrimitive(i));

-				array.add(elem);

-			}

-			return array;

-		} else if (list.size() > 0) {

-			// If it does not contain maps, it is not possible to attach the index property.

-			// Thus BASYXTYPE has to handle the type conversion

-			JsonArray array = new JsonArray();

-			for (Object o : list) {

-				array.add(serializeToJsonElement(o));

-			}

-			return array;

-		} else {

-			// If it is an empty list,

-			JsonObject jObj = new JsonObject();

-			jObj.add(BASYXTYPE, new JsonPrimitive(LIST));

-			jObj.add(BASYXVALUE, new JsonArray());

-			return jObj;

-		}

-	}

-

-	/**

-	 * Serializes a function if possible

-	 * 

-	 * @param function

-	 * @return

-	 */

-	private JsonObject serializeFunction(Object function) {

-		if (isSerializable(function)) {

-			return serializeSerializableOperation((Serializable) function);

-		} else {

-			return serializeNotSerializableOperation(function);

-		}

-	}

-

-	/**

-	 * Read an object from Base64 string.

-	 */

-	protected Object deserializeObjectFromString(String s) {

-		// Return value

-		Object result = null;

-

-		// Decode String

-		byte[] data = Base64.getDecoder().decode(s);

-

-		// Try to deserialize object

-		try {

-			// Object input stream

-			ObjectInputStream stream = new ObjectInputStream(new ByteArrayInputStream(data));

-			// - Read object

-			result = stream.readObject();

-

-			// Close stream

-			stream.close();

-		} catch (IOException | ClassNotFoundException e) {

-			e.printStackTrace();

-		}

-

-		// Return object

-		return result;

-	}

-

-	/**

-	 * Write the object to a Base64 string.

-	 */

-	protected String serializeObjectToString(Serializable obj) {

-		// Write object into byte array

-		ByteArrayOutputStream outStream = new ByteArrayOutputStream();

-

-		// Try to serialize object

-		try {

-			ObjectOutputStream oos = new ObjectOutputStream(outStream);

-			oos.writeObject(obj);

-			oos.close();

-		} catch (IOException e) {

-			e.printStackTrace();

-		}

-

-		// Try to encode to string

-		return Base64.getEncoder().encodeToString(outStream.toByteArray());

-	}

-

-	/**

-	 * Serialize an operation descriptor

-	 */

-	private JsonObject serializeSerializableOperation(Serializable value) {

-		JsonObject target = new JsonObject();

-		// Serializable functions will be serialized.

-		// - Serialize operation kind

-		target.add(BASYXFUNCTIONTYPE, new JsonPrimitive(LAMBDA));

-

-		// - Add value

-		String serialized = serializeObjectToString(value);

-		target.add(BASYXFUNCTIONVALUE, new JsonPrimitive(serialized));

-

-		return target;

-	}

-

-	/**

-	 * Serializes a NonSerializableOperation to a String indicating that fact

-	 * 

-	 * @param function

-	 * @return

-	 */

-	private JsonObject serializeNotSerializableOperation(Object function) {

-		JsonObject target = new JsonObject();

-		// Not serializable functions will be not be serialized.

-		// - Serialize operation kind

-		target.add(BASYXFUNCTIONTYPE, new JsonPrimitive(OPERATION));

-

-		return target;

-	}

-}

+package org.eclipse.basyx.vab.backend.http.tools;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+import java.util.Base64;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.function.BiConsumer;
+import java.util.function.Consumer;
+import java.util.function.Function;
+import java.util.function.Supplier;
+
+import org.eclipse.basyx.vab.backend.http.tools.factory.GSONToolsFactory;
+
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonNull;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
+import com.google.gson.JsonPrimitive;
+
+/**
+ * Provides means for (de-)serialization of Primitives (int, double, string,
+ * boolean), Maps, Sets and Lists. <br />
+ * Since JSON is not able to differentiate between Sets and Lists, additional
+ * information is added. When a Collection of objects is serialized, this
+ * information is directly added using an "index" key. <br />
+ * However, collections of primitives do not allow adding an "index" key. To
+ * handle this, a type tag is added on the same level as the collection. For
+ * more details, see <i>TestJson</i>
+ * 
+ * @author rajashek, schnicke
+ *
+ */
+public class GSONTools implements Serializer {
+	// Used string constants
+	public static final String INDEX = "index";
+	public static final String OPERATION = "operation";
+	public static final String LAMBDA = "lambda";
+	public static final String BASYXFUNCTIONTYPE = "_basyxFunctionType";
+	public static final String BASYXINVOCABLE = "_basyxInvocable";
+	public static final String LIST = "list";
+	public static final String SET = "set";
+	public static final String BASYXTYPE = "_basyxTypes";
+	public static final String BASYXVALUE = "_value";
+	public static final String BASYXFUNCTIONVALUE = "_basyxFunctionValue";
+
+	/**
+	 * JsonParser reference
+	 */
+	protected static JsonParser parser = new JsonParser();
+
+	/**
+	 * Type factory
+	 */
+	protected GSONToolsFactory toolsFactory = null;
+
+	/**
+	 * Constructor
+	 */
+	public GSONTools(GSONToolsFactory factory) {
+		// Store factory reference
+		toolsFactory = factory;
+	}
+
+	/**
+	 * Set factory instance
+	 */
+	public void setFactory(GSONToolsFactory newFactoryInstance) {
+		// Store factory instance
+		toolsFactory = newFactoryInstance;
+	}
+
+	@Override
+	public Object deserialize(String str) {
+		JsonElement elem = parser.parse(str);
+
+		// Handle edge case of collection of primitives
+		if (isWrappedCollection(elem)) {
+			return handleWrappedCollection(elem);
+		} else {
+			return deserializeJsonElement(elem);
+		}
+
+	}
+
+	private Object handleWrappedCollection(JsonElement elem) {
+		JsonObject obj = elem.getAsJsonObject();
+		JsonArray array = (JsonArray) obj.get(BASYXVALUE);
+		if (obj.get(BASYXTYPE).getAsString().equals(SET)) {
+			return deserializeJsonArrayAsSet(array);
+		} else {
+			return deserializeJsonArrayAsList(array);
+		}
+	}
+
+	private boolean isWrappedCollection(JsonElement elem) {
+		if (elem.isJsonObject()) {
+			JsonObject obj = elem.getAsJsonObject();
+			return obj.has(BASYXVALUE);
+		}
+		return false;
+	}
+
+	@Override
+	public String serialize(Object obj) {
+		JsonElement elem = serializeToJsonElement(obj);
+
+		// Handle edge case of collection of primitives and empty collections
+		// Has to be handled here since complete knowledge about element structure is
+		// needed
+		if (obj instanceof Collection<?>) {
+			Collection<?> col = (Collection<?>) obj;
+
+			if (col.size() > 0) {
+				Object item = col.iterator().next();
+
+				// Only handle primitive types. Complex types are already handled
+				if (item.getClass().isPrimitive() || isWrapperType(item.getClass())) {
+					elem = buildCollectionWrapper(col instanceof List<?> ? LIST : SET, elem);
+				}
+			} else {
+				// Empty collections need also to be handled, regardless of intended type
+				elem = buildCollectionWrapper(col instanceof List<?> ? LIST : SET, new JsonArray());
+			}
+		}
+
+		return elem.toString();
+	}
+
+	private JsonObject buildCollectionWrapper(String type, JsonElement elem) {
+		JsonObject jObj = new JsonObject();
+		jObj.add(BASYXTYPE, new JsonPrimitive(type));
+		jObj.add(BASYXVALUE, elem);
+		return jObj;
+	}
+
+	/**
+	 * Serialized an arbitrary object to a JsonElement
+	 * 
+	 * @param obj
+	 * @return
+	 */
+	@SuppressWarnings("unchecked")
+	private JsonElement serializeToJsonElement(Object obj) {
+		if (obj == null) {
+			return JsonNull.INSTANCE;
+		} else if (obj.getClass().isPrimitive() || isWrapperType(obj.getClass()) || obj instanceof String) {
+			return serializePrimitive(obj);
+		} else if (obj instanceof Map<?, ?>) {
+			return serializeMap((Map<String, Object>) obj);
+		} else if (obj instanceof Collection<?>) {
+			if (obj instanceof List<?>) {
+				return serializeList((List<?>) obj);
+			} else {
+				return serializeSet((Set<?>) obj);
+			}
+		} else if (isFunction(obj)) {
+			return serializeFunction(obj);
+		}
+		throw new RuntimeException("Unknown element!");
+	}
+
+	/**
+	 * Deserializes a JsonElement to an object
+	 * 
+	 * @param elem
+	 * @return
+	 */
+	private Object deserializeJsonElement(JsonElement elem) {
+		if (elem.isJsonPrimitive()) {
+			return deserializeJsonPrimitive(elem.getAsJsonPrimitive());
+		} else if (elem.isJsonObject()) {
+			return deserializeJsonObject(elem.getAsJsonObject());
+		} else if (elem.isJsonArray()) {
+			return deserializeJsonArray(elem.getAsJsonArray());
+		}
+		return null;
+	}
+
+	/**
+	 * Indicates if a class is a wrapper type, e.g. <i>Integer</i> for <i>int</i>
+	 * 
+	 * @param clazz
+	 * @return
+	 */
+	private static boolean isWrapperType(Class<?> clazz) {
+		return clazz.equals(Boolean.class) || clazz.equals(Integer.class) || clazz.equals(Character.class) || clazz.equals(Byte.class) || clazz.equals(Short.class) || clazz.equals(Double.class) || clazz.equals(Long.class)
+				|| clazz.equals(Float.class);
+	}
+
+	/**
+	 * Deserializes a JsonPrimitive to either string, int, double or boolean
+	 * 
+	 * @param primitive
+	 * @return
+	 */
+	private Object deserializeJsonPrimitive(JsonPrimitive primitive) {
+		if (primitive.isNumber()) {
+			if (primitive.getAsString().contains(".")) {
+				return primitive.getAsDouble();
+			} else {
+				return primitive.getAsInt();
+			}
+		} else if (primitive.isBoolean()) {
+			return primitive.getAsBoolean();
+		} else {
+			return primitive.getAsString();
+		}
+	}
+
+	/**
+	 * Serializes either string, int, double or boolean to a JsonPrimitive
+	 * 
+	 * @param primitive
+	 * @return
+	 */
+	private JsonPrimitive serializePrimitive(Object primitive) {
+		if (primitive instanceof Number) {
+			return new JsonPrimitive((Number) primitive);
+		} else if (primitive instanceof Boolean) {
+			return new JsonPrimitive((Boolean) primitive);
+		} else {
+			return new JsonPrimitive((String) primitive);
+		}
+	}
+
+	/**
+	 * Deserializes a JsonObject to either a map, an operations or an arbitrary
+	 * serializable object
+	 * 
+	 * @param map
+	 * @return
+	 */
+	private Object deserializeJsonObject(JsonObject map) {
+		if (map.has(BASYXFUNCTIONTYPE)) {
+			if (map.get(BASYXFUNCTIONTYPE).getAsString().equals(OPERATION)) {
+				return BASYXINVOCABLE;
+			} else {
+				// Type equals Lambda
+				return deserializeObjectFromString(map.get(BASYXFUNCTIONVALUE).getAsString());
+			}
+		} else {
+			return deserializeToMap(map);
+		}
+	}
+
+	/**
+	 * Deserializes a JsonObject to a map
+	 * 
+	 * @param map
+	 * @return
+	 */
+	private Map<String, Object> deserializeToMap(JsonObject map) {
+		Map<String, Object> ret = toolsFactory.createMap();
+		JsonObject collectionTypes = (JsonObject) map.get(BASYXTYPE);
+
+		for (String k : map.keySet()) {
+			// Ignore BASYXTYPE since it is only used for type meta data
+			if (k.equals(BASYXTYPE)) {
+				continue;
+			}
+
+			// If there are collections in the map, get their types and deserialize them
+			if (collectionTypes != null && collectionTypes.has(k)) {
+				String type = collectionTypes.get(k).getAsString();
+				JsonElement el = map.get(k);
+				if (type.equals(LIST)) {
+					if (el.isJsonArray()) {
+						ret.put(k, deserializeJsonArrayAsList((JsonArray) el));
+					} else {
+						ret.put(k, handleWrappedCollection(el));
+					}
+				} else if (type.equals(SET)) {
+					if (el.isJsonArray()) {
+						ret.put(k, deserializeJsonArrayAsSet((JsonArray) el));
+					} else {
+						ret.put(k, handleWrappedCollection(el));
+					}
+				}
+			} else {
+				ret.put(k, deserializeJsonElement(map.get(k)));
+			}
+		}
+		return ret;
+	}
+
+	/**
+	 * Serializes a Map to a JsonObject
+	 * 
+	 * @param map
+	 * @return
+	 */
+	private JsonObject serializeMap(Map<String, Object> map) {
+		JsonObject obj = new JsonObject();
+		JsonObject collectionTypes = new JsonObject();
+		for (String k : map.keySet()) {
+			Object o = map.get(k);
+			if (o instanceof List<?>) {
+				collectionTypes.add(k, new JsonPrimitive(LIST));
+			} else if (o instanceof Set<?>) {
+				collectionTypes.add(k, new JsonPrimitive(SET));
+			}
+
+			obj.add(k, serializeToJsonElement(o));
+		}
+
+		// If there are any collections, add collection type meta data
+		if (collectionTypes.size() > 0) {
+			obj.add(BASYXTYPE, collectionTypes);
+		}
+
+		return obj;
+	}
+
+	/**
+	 * Removes INDEX string from ordered lists
+	 * 
+	 * @param obj
+	 * @return
+	 */
+	private JsonObject stripIndex(JsonObject obj) {
+		obj.remove(INDEX);
+		return obj;
+	}
+
+	/**
+	 * Deserializes a JSONArray to either a list or a set, depending on the presence
+	 * of an INDEX value
+	 * 
+	 * @param array
+	 * @return
+	 */
+	private Object deserializeJsonArray(JsonArray array) {
+		if (isOrdered(array)) {
+			return deserializeJsonArrayAsList(array);
+		} else {
+			return deserializeJsonArrayAsSet(array);
+		}
+	}
+
+	/**
+	 * Deserializes a JsonArray to a List<br/>
+	 * <b>Assumption:</b> The order in the json is equals the correct order
+	 * 
+	 * @param array
+	 * @return
+	 */
+	private List<Object> deserializeJsonArrayAsList(JsonArray array) {
+		List<Object> list = toolsFactory.createList();
+		for (int i = 0; i < array.size(); i++) {
+			if (array.get(i) instanceof JsonObject) {
+				// If it is a JsonObject it contains an index --> Strip it
+				JsonObject stripped = stripIndex(array.get(i).getAsJsonObject());
+				list.add(deserializeJsonElement(stripped));
+			} else {
+				list.add(deserializeJsonElement(array.get(i)));
+
+			}
+		}
+
+		return list;
+	}
+
+	/**
+	 * Deserializes a JsonArray to a Set
+	 * 
+	 * @param array
+	 * @return
+	 */
+	private Set<Object> deserializeJsonArrayAsSet(JsonArray array) {
+		Set<Object> set = toolsFactory.createSet();
+		for (int i = 0; i < array.size(); i++) {
+			set.add(deserializeJsonElement(array.get(i)));
+		}
+		return set;
+	}
+
+	/**
+	 * Checks if a JsonArray is an ordered list or a set <br/>
+	 * FIXME: Replace this here with BASYXTYPE checks
+	 * 
+	 * @param array
+	 * @return
+	 */
+	private boolean isOrdered(JsonArray array) {
+		if (array.size() == 0) {
+			return true;
+		}
+
+		JsonElement elem = array.get(0);
+
+		if (!elem.isJsonObject()) {
+			return false;
+		}
+
+		JsonObject obj = elem.getAsJsonObject();
+		if (obj.has(INDEX)) {
+			return true;
+		} else {
+			return false;
+		}
+	}
+
+	/**
+	 * Checks if an object is a lambda function
+	 * 
+	 * @param value
+	 * @return
+	 */
+	private boolean isFunction(Object value) {
+		return (value instanceof Supplier<?>) || (value instanceof Function<?, ?>) || (value instanceof Consumer<?>) || (value instanceof BiConsumer<?, ?>);
+	}
+
+	/**
+	 * Checks if an object implements Serializable
+	 * 
+	 * @param value
+	 * @return
+	 */
+	private boolean isSerializable(Object value) {
+		return value instanceof Serializable;
+	}
+
+	/**
+	 * Serializes a set to a JsonArray
+	 * 
+	 * @param set
+	 * @return
+	 */
+	private JsonElement serializeSet(Set<?> set) {
+		JsonArray array = new JsonArray();
+		if (set.size() > 0) {
+			for (Object o : set) {
+				array.add(serializeToJsonElement(o));
+			}
+			return array;
+		} else {
+			// If it is an empty list,
+			JsonObject jObj = new JsonObject();
+			jObj.add(BASYXTYPE, new JsonPrimitive(SET));
+			jObj.add(BASYXVALUE, new JsonArray());
+			return jObj;
+		}
+	}
+
+	/**
+	 * Serializes a list to a JsonArray and adds index where appropriate
+	 * 
+	 * @param list
+	 * @return
+	 */
+	private JsonElement serializeList(List<?> list) {
+
+		if (list.size() > 0 && list.get(0) instanceof Map<?, ?>) {
+			// If the list contains maps, attach the index property
+			JsonArray array = new JsonArray();
+
+			for (int i = 0; i < list.size(); i++) {
+				JsonObject elem = (JsonObject) serializeToJsonElement(list.get(i));
+				elem.add(INDEX, new JsonPrimitive(i));
+				array.add(elem);
+			}
+			return array;
+		} else if (list.size() > 0) {
+			// If it does not contain maps, it is not possible to attach the index property.
+			// Thus BASYXTYPE has to handle the type conversion
+			JsonArray array = new JsonArray();
+			for (Object o : list) {
+				array.add(serializeToJsonElement(o));
+			}
+			return array;
+		} else {
+			// If it is an empty list,
+			JsonObject jObj = new JsonObject();
+			jObj.add(BASYXTYPE, new JsonPrimitive(LIST));
+			jObj.add(BASYXVALUE, new JsonArray());
+			return jObj;
+		}
+	}
+
+	/**
+	 * Serializes a function if possible
+	 * 
+	 * @param function
+	 * @return
+	 */
+	private JsonObject serializeFunction(Object function) {
+		if (isSerializable(function)) {
+			return serializeSerializableOperation((Serializable) function);
+		} else {
+			return serializeNotSerializableOperation(function);
+		}
+	}
+
+	/**
+	 * Read an object from Base64 string.
+	 */
+	protected Object deserializeObjectFromString(String s) {
+		// Return value
+		Object result = null;
+
+		// Decode String
+		byte[] data = Base64.getDecoder().decode(s);
+
+		// Try to deserialize object
+		try {
+			// Object input stream
+			ObjectInputStream stream = new ObjectInputStream(new ByteArrayInputStream(data));
+			// - Read object
+			result = stream.readObject();
+
+			// Close stream
+			stream.close();
+		} catch (IOException | ClassNotFoundException e) {
+			e.printStackTrace();
+		}
+
+		// Return object
+		return result;
+	}
+
+	/**
+	 * Write the object to a Base64 string.
+	 */
+	protected String serializeObjectToString(Serializable obj) {
+		// Write object into byte array
+		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+
+		// Try to serialize object
+		try {
+			ObjectOutputStream oos = new ObjectOutputStream(outStream);
+			oos.writeObject(obj);
+			oos.close();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+
+		// Try to encode to string
+		return Base64.getEncoder().encodeToString(outStream.toByteArray());
+	}
+
+	/**
+	 * Serialize an operation descriptor
+	 */
+	private JsonObject serializeSerializableOperation(Serializable value) {
+		JsonObject target = new JsonObject();
+		// Serializable functions will be serialized.
+		// - Serialize operation kind
+		target.add(BASYXFUNCTIONTYPE, new JsonPrimitive(LAMBDA));
+
+		// - Add value
+		String serialized = serializeObjectToString(value);
+		target.add(BASYXFUNCTIONVALUE, new JsonPrimitive(serialized));
+
+		return target;
+	}
+
+	/**
+	 * Serializes a NonSerializableOperation to a String indicating that fact
+	 * 
+	 * @param function
+	 * @return
+	 */
+	private JsonObject serializeNotSerializableOperation(Object function) {
+		JsonObject target = new JsonObject();
+		// Not serializable functions will be not be serialized.
+		// - Serialize operation kind
+		target.add(BASYXFUNCTIONTYPE, new JsonPrimitive(OPERATION));
+
+		return target;
+	}
+}
diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/http/tools/Serializer.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/http/tools/Serializer.java
similarity index 86%
rename from sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/http/tools/Serializer.java
rename to sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/http/tools/Serializer.java
index bee0aa6..b36f29b 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/http/tools/Serializer.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/http/tools/Serializer.java
@@ -1,20 +1,20 @@
-package org.eclipse.basyx.aas.backend.http.tools;

-

-/**

- * A BaSys serializer

- * 

- * @author kuhn

- *

- */

-public interface Serializer {

-	/**

-	 * Serialize a primitive or complex value into JSON object

-	 */

-	public String serialize(Object value);

-

-	

-	/**

-	 * Deserialize a primitive or complex value from JSON object

-	 */

-	public Object deserialize(String serializedValue);

-}

+package org.eclipse.basyx.vab.backend.http.tools;
+
+/**
+ * A BaSys serializer
+ * 
+ * @author kuhn
+ *
+ */
+public interface Serializer {
+	/**
+	 * Serialize a primitive or complex value into JSON object
+	 */
+	public String serialize(Object value);
+
+	
+	/**
+	 * Deserialize a primitive or complex value from JSON object
+	 */
+	public Object deserialize(String serializedValue);
+}
diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/http/tools/factory/DefaultTypeFactory.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/http/tools/factory/DefaultTypeFactory.java
similarity index 91%
rename from sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/http/tools/factory/DefaultTypeFactory.java
rename to sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/http/tools/factory/DefaultTypeFactory.java
index cedc940..eebc1b9 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/http/tools/factory/DefaultTypeFactory.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/http/tools/factory/DefaultTypeFactory.java
@@ -1,4 +1,4 @@
-package org.eclipse.basyx.aas.backend.http.tools.factory;
+package org.eclipse.basyx.vab.backend.http.tools.factory;
 
 import java.util.ArrayList;
 import java.util.HashSet;
diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/http/tools/factory/GSONToolsFactory.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/http/tools/factory/GSONToolsFactory.java
similarity index 88%
rename from sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/http/tools/factory/GSONToolsFactory.java
rename to sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/http/tools/factory/GSONToolsFactory.java
index 1bd8150..012be91 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/aas/backend/http/tools/factory/GSONToolsFactory.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/http/tools/factory/GSONToolsFactory.java
@@ -1,4 +1,4 @@
-package org.eclipse.basyx.aas.backend.http.tools.factory;
+package org.eclipse.basyx.vab.backend.http.tools.factory;
 
 import java.util.List;
 import java.util.Map;
diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/server/http/BasysHTTPServlet.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/server/http/BasysHTTPServlet.java
index fed1347..667df3f 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/server/http/BasysHTTPServlet.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/server/http/BasysHTTPServlet.java
@@ -10,8 +10,8 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.eclipse.basyx.aas.backend.http.tools.GSONTools;
-import org.eclipse.basyx.aas.backend.http.tools.factory.DefaultTypeFactory;
+import org.eclipse.basyx.vab.backend.http.tools.GSONTools;
+import org.eclipse.basyx.vab.backend.http.tools.factory.DefaultTypeFactory;
 import org.eclipse.basyx.vab.backend.server.utils.IResult;
 import org.eclipse.basyx.vab.backend.server.utils.Result;
 
diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/server/utils/JSONProvider.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/server/utils/JSONProvider.java
index 6694d40..657fded 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/server/utils/JSONProvider.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/backend/server/utils/JSONProvider.java
@@ -5,9 +5,9 @@
 

 import org.eclipse.basyx.aas.api.exception.LostHTTPRequestParameterException;

 import org.eclipse.basyx.aas.api.exception.ServerException;

-import org.eclipse.basyx.aas.backend.http.tools.GSONTools;

-import org.eclipse.basyx.aas.backend.http.tools.factory.DefaultTypeFactory;

-import org.eclipse.basyx.aas.backend.http.tools.factory.GSONToolsFactory;

+import org.eclipse.basyx.vab.backend.http.tools.GSONTools;

+import org.eclipse.basyx.vab.backend.http.tools.factory.DefaultTypeFactory;

+import org.eclipse.basyx.vab.backend.http.tools.factory.GSONToolsFactory;

 import org.eclipse.basyx.vab.core.IModelProvider;

 

 

diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/core/directory/VABHTTPDirectoryProxy.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/core/directory/VABHTTPDirectoryProxy.java
index eceb9ab..8b1f34b 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/core/directory/VABHTTPDirectoryProxy.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/core/directory/VABHTTPDirectoryProxy.java
@@ -1,8 +1,8 @@
 package org.eclipse.basyx.vab.core.directory;

 

 import org.eclipse.basyx.aas.api.webserviceclient.WebServiceRawClient;

-import org.eclipse.basyx.aas.backend.http.tools.GSONTools;

-import org.eclipse.basyx.aas.backend.http.tools.factory.DefaultTypeFactory;

+import org.eclipse.basyx.vab.backend.http.tools.GSONTools;

+import org.eclipse.basyx.vab.backend.http.tools.factory.DefaultTypeFactory;

 

 public class VABHTTPDirectoryProxy implements IVABDirectoryService {

 	/**

diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/provider/filesystem/FileSystemProvider.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/provider/filesystem/FileSystemProvider.java
index f22fd17..5abc275 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/provider/filesystem/FileSystemProvider.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/provider/filesystem/FileSystemProvider.java
@@ -9,8 +9,8 @@
 import java.util.List;
 import java.util.Map;
 
-import org.eclipse.basyx.aas.backend.http.tools.GSONTools;
-import org.eclipse.basyx.aas.backend.http.tools.factory.DefaultTypeFactory;
+import org.eclipse.basyx.vab.backend.http.tools.GSONTools;
+import org.eclipse.basyx.vab.backend.http.tools.factory.DefaultTypeFactory;
 import org.eclipse.basyx.vab.core.IModelProvider;
 import org.eclipse.basyx.vab.core.tools.VABPathTools;
 import org.eclipse.basyx.vab.provider.filesystem.filesystem.File;
diff --git a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/aas/backend/connected/TestConnectedSubModel.java b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/aas/backend/connected/TestConnectedSubModel.java
index 9ac2fe1..f580376 100644
--- a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/aas/backend/connected/TestConnectedSubModel.java
+++ b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/aas/backend/connected/TestConnectedSubModel.java
@@ -12,13 +12,13 @@
 import org.eclipse.basyx.aas.api.resources.IProperty;
 import org.eclipse.basyx.aas.api.resources.ISingleProperty;
 import org.eclipse.basyx.aas.backend.connected.aas.ConnectedSubModel;
-import org.eclipse.basyx.aas.backend.connector.basyx.BaSyxConnectorProvider;
 import org.eclipse.basyx.aas.metamodel.factory.MetaModelElementFactory;
 import org.eclipse.basyx.aas.metamodel.hashmap.aas.SubModel;
 import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.operation.Operation;
 import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.property.Property;
 import org.eclipse.basyx.testsuite.support.backend.common.stubs.java.directory.TestsuiteDirectory_BaSyxNative;
 import org.eclipse.basyx.testsuite.support.backend.servers.AASTCPServerResource;
+import org.eclipse.basyx.vab.backend.connector.basyx.BaSyxConnectorProvider;
 import org.eclipse.basyx.vab.core.VABConnectionManager;
 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;
 import org.junit.Before;
diff --git a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/aas/backend/http/TestAASHTTP.java b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/aas/backend/http/TestAASHTTP.java
index ad17042..29a5ef0 100644
--- a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/aas/backend/http/TestAASHTTP.java
+++ b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/aas/backend/http/TestAASHTTP.java
@@ -12,7 +12,6 @@
 import org.eclipse.basyx.aas.api.resources.ISingleProperty;

 import org.eclipse.basyx.aas.api.resources.ISubModel;

 import org.eclipse.basyx.aas.backend.connected.ConnectedAssetAdministrationShellManager;

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.descriptor.AASDescriptor;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.descriptor.SubmodelDescriptor;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.identifier.IdentifierType;

@@ -21,6 +20,7 @@
 import org.eclipse.basyx.testsuite.support.backend.servers.context.SdkRegressionContext;

 import org.eclipse.basyx.testsuite.support.vab.stub.AASRegistryStub;

 import org.eclipse.basyx.testsuite.support.vab.stub.DirectoryServiceStub;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.junit.Before;

 import org.junit.ClassRule;

 import org.junit.Test;

diff --git a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/aas/backend/http/serialization/json/TestJson.java b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/aas/backend/http/serialization/json/TestJson.java
index 8c316cc..04bbdc9 100644
--- a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/aas/backend/http/serialization/json/TestJson.java
+++ b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/aas/backend/http/serialization/json/TestJson.java
@@ -19,9 +19,9 @@
 import java.util.function.Consumer;

 import java.util.function.Function;

 

-import org.eclipse.basyx.aas.backend.http.tools.GSONTools;

-import org.eclipse.basyx.aas.backend.http.tools.factory.DefaultTypeFactory;

 import org.eclipse.basyx.testsuite.support.vab.stub.elements.SimpleVABElement;

+import org.eclipse.basyx.vab.backend.http.tools.GSONTools;

+import org.eclipse.basyx.vab.backend.http.tools.factory.DefaultTypeFactory;

 import org.junit.Test;

 

 import com.google.common.collect.Sets;

diff --git a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/aas/backend/provider/VirtualPathModelProviderTest.java b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/aas/backend/provider/VirtualPathModelProviderTest.java
index 52bbd19..26ce457 100644
--- a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/aas/backend/provider/VirtualPathModelProviderTest.java
+++ b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/aas/backend/provider/VirtualPathModelProviderTest.java
@@ -6,7 +6,6 @@
 

 import java.util.HashMap;

 

-import org.eclipse.basyx.aas.backend.connector.ConnectorProvider;

 import org.eclipse.basyx.aas.backend.provider.VirtualPathModelProvider;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.property.Property;

 import org.eclipse.basyx.aas.metamodel.hashmap.aas.submodelelement.property.valuetypedef.PropertyValueTypeDefHelper;

@@ -14,6 +13,7 @@
 import org.eclipse.basyx.testsuite.support.aas.vab.stub.elements.SimpleAASSubmodel;

 import org.eclipse.basyx.testsuite.support.backend.common.stubs.java.directory.TestsuiteDirectory;

 import org.eclipse.basyx.testsuite.support.vab.stub.elements.SimpleVABElement;

+import org.eclipse.basyx.vab.backend.connector.ConnectorProvider;

 import org.eclipse.basyx.vab.core.IModelProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

diff --git a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/connector/TestVABBaSyxTCP.java b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/connector/TestVABBaSyxTCP.java
index e8fec1d..e5a052f 100644
--- a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/connector/TestVABBaSyxTCP.java
+++ b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/connector/TestVABBaSyxTCP.java
@@ -1,9 +1,9 @@
 package org.eclipse.basyx.testsuite.regression.vab.connector;

 

-import org.eclipse.basyx.aas.backend.connector.basyx.BaSyxConnectorProvider;

 import org.eclipse.basyx.testsuite.regression.vab.provider.TestProvider;

 import org.eclipse.basyx.testsuite.support.backend.common.stubs.java.directory.TestsuiteDirectory_BaSyxNative;

 import org.eclipse.basyx.testsuite.support.backend.servers.AASTCPServerResource;

+import org.eclipse.basyx.vab.backend.connector.basyx.BaSyxConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.junit.Rule;

 

diff --git a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/connector/TestVABHTTP.java b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/connector/TestVABHTTP.java
index 857e7e1..d97ff97 100644
--- a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/connector/TestVABHTTP.java
+++ b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/connector/TestVABHTTP.java
@@ -1,10 +1,10 @@
 package org.eclipse.basyx.testsuite.regression.vab.connector;

 

-import org.eclipse.basyx.aas.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.testsuite.regression.vab.provider.TestProvider;

 import org.eclipse.basyx.testsuite.support.backend.common.stubs.java.directory.TestsuiteDirectory;

 import org.eclipse.basyx.testsuite.support.backend.servers.AASHTTPServerResource;

 import org.eclipse.basyx.testsuite.support.backend.servers.context.SdkRegressionContext;

+import org.eclipse.basyx.vab.backend.connector.http.HTTPConnectorProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.junit.Rule;

 

diff --git a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/connector/TestVABOpcUa.java b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/connector/TestVABOpcUa.java
index 49937a3..b367ca4 100644
--- a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/connector/TestVABOpcUa.java
+++ b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/connector/TestVABOpcUa.java
@@ -1,6 +1,6 @@
 package org.eclipse.basyx.testsuite.regression.vab.connector;

 

-import org.eclipse.basyx.aas.backend.connector.opcua.OpcUaConnectorProvider;

+import org.eclipse.basyx.vab.backend.connector.opcua.OpcUaConnectorProvider;

 import org.eclipse.basyx.vab.backend.gateway.ConnectorProviderMapper;

 import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UByte;

 import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger;

diff --git a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/gateway/TestGateway.java b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/gateway/TestGateway.java
index 956bc2b..8034d2b 100644
--- a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/gateway/TestGateway.java
+++ b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/gateway/TestGateway.java
@@ -7,9 +7,9 @@
 import java.util.HashMap;

 import java.util.Map;

 

-import org.eclipse.basyx.aas.backend.connector.basyx.BaSyxConnectorProvider;

 import org.eclipse.basyx.aas.backend.provider.VirtualPathModelProvider;

 import org.eclipse.basyx.testsuite.support.vab.stub.DirectoryServiceStub;

+import org.eclipse.basyx.vab.backend.connector.basyx.BaSyxConnectorProvider;

 import org.eclipse.basyx.vab.backend.gateway.ConnectorProviderMapper;

 import org.eclipse.basyx.vab.backend.gateway.DelegatingModelProvider;

 import org.eclipse.basyx.vab.backend.server.basyx.BaSyxTCPServer;

diff --git a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/provider/TestFileSystemProvider.java b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/provider/TestFileSystemProvider.java
index 353bddc..8dfb137 100644
--- a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/provider/TestFileSystemProvider.java
+++ b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/provider/TestFileSystemProvider.java
@@ -1,8 +1,8 @@
 package org.eclipse.basyx.testsuite.regression.vab.provider;
 
-import org.eclipse.basyx.aas.backend.connector.ConnectorProvider;
 import org.eclipse.basyx.testsuite.support.backend.common.stubs.java.directory.TestsuiteDirectory;
 import org.eclipse.basyx.testsuite.support.vab.stub.elements.SimpleVABElement;
+import org.eclipse.basyx.vab.backend.connector.ConnectorProvider;
 import org.eclipse.basyx.vab.core.IModelProvider;
 import org.eclipse.basyx.vab.core.VABConnectionManager;
 import org.eclipse.basyx.vab.provider.filesystem.FileSystemProvider;
diff --git a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/provider/TestHashMapProvider.java b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/provider/TestHashMapProvider.java
index 0464e63..2be0ce8 100644
--- a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/provider/TestHashMapProvider.java
+++ b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/provider/TestHashMapProvider.java
@@ -4,9 +4,9 @@
 import static org.junit.Assert.fail;

 

 import org.eclipse.basyx.aas.api.exception.ServerException;

-import org.eclipse.basyx.aas.backend.connector.ConnectorProvider;

 import org.eclipse.basyx.testsuite.support.backend.common.stubs.java.directory.TestsuiteDirectory;

 import org.eclipse.basyx.testsuite.support.vab.stub.elements.SimpleVABElement;

+import org.eclipse.basyx.vab.backend.connector.ConnectorProvider;

 import org.eclipse.basyx.vab.core.IModelProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.core.proxy.VABElementProxy;

diff --git a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/provider/TestJSONConnectorProviderIntegration.java b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/provider/TestJSONConnectorProviderIntegration.java
index 78c1273..3354bd0 100644
--- a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/provider/TestJSONConnectorProviderIntegration.java
+++ b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/provider/TestJSONConnectorProviderIntegration.java
@@ -1,10 +1,10 @@
 package org.eclipse.basyx.testsuite.regression.vab.provider;

 

-import org.eclipse.basyx.aas.backend.connector.ConnectorProvider;

-import org.eclipse.basyx.aas.backend.connector.JSONConnector;

 import org.eclipse.basyx.testsuite.support.backend.common.stubs.java.directory.TestsuiteDirectory;

 import org.eclipse.basyx.testsuite.support.vab.stub.IBasyxConnectorFacade;

 import org.eclipse.basyx.testsuite.support.vab.stub.elements.SimpleVABElement;

+import org.eclipse.basyx.vab.backend.connector.ConnectorProvider;

+import org.eclipse.basyx.vab.backend.connector.JSONConnector;

 import org.eclipse.basyx.vab.backend.server.utils.JSONProvider;

 import org.eclipse.basyx.vab.core.IModelProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

diff --git a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/provider/TestLambdaProvider.java b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/provider/TestLambdaProvider.java
index 7146bc0..f3b4600 100644
--- a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/provider/TestLambdaProvider.java
+++ b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/regression/vab/provider/TestLambdaProvider.java
@@ -7,9 +7,9 @@
 import java.util.function.Consumer;

 import java.util.function.Supplier;

 

-import org.eclipse.basyx.aas.backend.connector.ConnectorProvider;

 import org.eclipse.basyx.testsuite.support.backend.common.stubs.java.directory.TestsuiteDirectory;

 import org.eclipse.basyx.testsuite.support.vab.stub.elements.SimpleVABElement;

+import org.eclipse.basyx.vab.backend.connector.ConnectorProvider;

 import org.eclipse.basyx.vab.core.IModelProvider;

 import org.eclipse.basyx.vab.core.VABConnectionManager;

 import org.eclipse.basyx.vab.provider.lambda.VABLambdaProvider;

diff --git a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/support/vab/stub/IBasyxConnectorFacade.java b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/support/vab/stub/IBasyxConnectorFacade.java
index 8969a6b..612b95b 100644
--- a/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/support/vab/stub/IBasyxConnectorFacade.java
+++ b/sdks/java/basys.sdk/src/test/java/org/eclipse/basyx/testsuite/support/vab/stub/IBasyxConnectorFacade.java
@@ -2,7 +2,7 @@
 

 import java.io.FileNotFoundException;

 

-import org.eclipse.basyx.aas.backend.connector.IBaSyxConnector;

+import org.eclipse.basyx.vab.backend.connector.IBaSyxConnector;

 import org.eclipse.basyx.vab.backend.server.utils.JSONProvider;

 import org.eclipse.basyx.vab.core.IModelProvider;