You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2021/01/31 11:20:33 UTC

[plc4x] 21/45: - Ensured all integrations and examples have all of our drivers available - Removed the "with-proxies" profile and everything that relies on this - Updated the prerequisiteCheck.groovy script to no longer check thrift-related things - Updated the release and release-validation sites

This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a commit to branch feature/plc4c
in repository https://gitbox.apache.org/repos/asf/plc4x.git

commit 049ba1658a4d8f032d4abec6617642141d7f41ac
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Mon Jan 25 11:22:27 2021 +0100

    - Ensured all integrations and examples have all of our drivers available
    - Removed the "with-proxies" profile and everything that relies on this
    - Updated the prerequisiteCheck.groovy script to no longer check thrift-related things
    - Updated the release and release-validation sites
---
 plc4j/examples/pom.xml                             |   7 +
 plc4j/integrations/apache-calcite/pom.xml          |  98 ++++-
 plc4j/integrations/apache-camel/pom.xml            |  95 +++--
 plc4j/integrations/apache-edgent/pom.xml           |  86 ++++-
 .../apache-nifi/nifi-plc4x-nar/pom.xml             |   6 +
 plc4j/integrations/logstash-plugin/pom.xml         |  12 +-
 plc4j/integrations/opcua-server/pom.xml            | 213 +++++------
 plc4j/tools/interop/pom.xml                        | 215 -----------
 plc4j/tools/interop/src/assembly/assembly.xml      |  41 ---
 .../java/org/apache/plc4x/interop/impl/Client.java |  60 ---
 .../org/apache/plc4x/interop/impl/Handler.java     | 163 ---------
 .../java/org/apache/plc4x/interop/impl/Server.java |  98 -----
 plc4j/tools/pom.xml                                |   9 -
 pom.xml                                            |   7 +
 protocols/pom.xml                                  |  10 -
 protocols/proxy/pom.xml                            |  35 --
 protocols/proxy/src/main/java/.keepMe              |  20 -
 .../apache/plc4x/protocols/proxy/interop.thrift    |  93 -----
 sandbox/plc4cpp/pom.xml                            |  82 -----
 sandbox/plc4py/pom.xml                             | 103 ------
 src/main/script/prerequisiteCheck.groovy           |  27 +-
 src/site/asciidoc/developers/release/release.adoc  |  97 ++---
 .../asciidoc/developers/release/validation.adoc    |   1 +
 tools/pom.xml                                      |   6 -
 tools/thrift/pom.xml                               | 407 ---------------------
 tools/thrift/src/assembly/compiler.xml             |  43 ---
 tools/thrift/src/assembly/cpp.xml                  |  56 ---
 tools/thrift/src/assembly/python.xml               |  43 ---
 28 files changed, 417 insertions(+), 1716 deletions(-)

diff --git a/plc4j/examples/pom.xml b/plc4j/examples/pom.xml
index 3133e2b..1f93ae0 100644
--- a/plc4j/examples/pom.xml
+++ b/plc4j/examples/pom.xml
@@ -95,6 +95,7 @@
           <usedDependencies combine.children="append">
             <usedDependency>org.apache.plc4x:plc4j-driver-ab-eth</usedDependency>
             <usedDependency>org.apache.plc4x:plc4j-driver-ads</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-canopen</usedDependency>
             <usedDependency>org.apache.plc4x:plc4j-driver-eip</usedDependency>
             <usedDependency>org.apache.plc4x:plc4j-driver-firmata</usedDependency>
             <usedDependency>org.apache.plc4x:plc4j-driver-knxnetip</usedDependency>
@@ -154,6 +155,12 @@
     </dependency>
     <dependency>
       <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-canopen</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
       <artifactId>plc4j-driver-eip</artifactId>
       <version>0.8.0-SNAPSHOT</version>
       <scope>runtime</scope>
diff --git a/plc4j/integrations/apache-calcite/pom.xml b/plc4j/integrations/apache-calcite/pom.xml
index ba66ab1..548d8a0 100644
--- a/plc4j/integrations/apache-calcite/pom.xml
+++ b/plc4j/integrations/apache-calcite/pom.xml
@@ -17,7 +17,6 @@
   limitations under the License.
 
 -->
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
     <groupId>org.apache.plc4x</groupId>
@@ -34,6 +33,29 @@
     <calcite-core.version>1.26.0</calcite-core.version>
   </properties>
 
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <configuration>
+          <usedDependencies>
+            <usedDependency>org.apache.plc4x:plc4j-driver-ab-eth</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-ads</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-canopen</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-eip</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-firmata</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-knxnetip</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-modbus</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-opcua</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-s7</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-simulated</usedDependency>
+          </usedDependencies>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.calcite</groupId>
@@ -53,19 +75,73 @@
       <groupId>org.apache.plc4x</groupId>
       <artifactId>plc4j-api</artifactId>
       <version>0.8.0-SNAPSHOT</version>
-      <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.plc4x</groupId>
       <artifactId>plc4j-scraper</artifactId>
       <version>0.8.0-SNAPSHOT</version>
-      <scope>compile</scope>
+    </dependency>
+
+    <!-- Include all drivers -->
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-ab-eth</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-ads</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-canopen</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-eip</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-firmata</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-knxnetip</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-modbus</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-opcua</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-s7</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.plc4x</groupId>
       <artifactId>plc4j-driver-simulated</artifactId>
       <version>0.8.0-SNAPSHOT</version>
-      <!--<scope>test</scope>-->
+      <scope>runtime</scope>
     </dependency>
   </dependencies>
 
@@ -79,18 +155,4 @@
     </dependencies>
   </dependencyManagement>
 
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <configuration>
-          <usedDependencies>
-            <usedDependency>org.apache.plc4x:plc4j-driver-simulated</usedDependency>
-          </usedDependencies>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-
 </project>
\ No newline at end of file
diff --git a/plc4j/integrations/apache-camel/pom.xml b/plc4j/integrations/apache-camel/pom.xml
index 1cde2ad..e3a48ab 100644
--- a/plc4j/integrations/apache-camel/pom.xml
+++ b/plc4j/integrations/apache-camel/pom.xml
@@ -114,11 +114,18 @@
             </goals>
             <configuration>
               <failOnWarning>true</failOnWarning>
-              <ignoredDependencies combine.children="append">
-                <ignoredDependency>org.apache.plc4x:plc4j-driver-ads</ignoredDependency>
-              </ignoredDependencies>
               <usedDependencies combine.children="append">
                 <usedDependency>javax.activation:javax.activation-api</usedDependency>
+                <usedDependency>org.apache.plc4x:plc4j-driver-ab-eth</usedDependency>
+                <usedDependency>org.apache.plc4x:plc4j-driver-ads</usedDependency>
+                <usedDependency>org.apache.plc4x:plc4j-driver-canopen</usedDependency>
+                <usedDependency>org.apache.plc4x:plc4j-driver-eip</usedDependency>
+                <usedDependency>org.apache.plc4x:plc4j-driver-firmata</usedDependency>
+                <usedDependency>org.apache.plc4x:plc4j-driver-knxnetip</usedDependency>
+                <usedDependency>org.apache.plc4x:plc4j-driver-modbus</usedDependency>
+                <usedDependency>org.apache.plc4x:plc4j-driver-opcua</usedDependency>
+                <usedDependency>org.apache.plc4x:plc4j-driver-s7</usedDependency>
+                <usedDependency>org.apache.plc4x:plc4j-driver-simulated</usedDependency>
               </usedDependencies>
             </configuration>
           </execution>
@@ -171,6 +178,68 @@
       <version>${camel.version}</version>
     </dependency>
 
+    <!-- Include all drivers -->
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-ab-eth</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-ads</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-canopen</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-eip</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-firmata</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-knxnetip</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-modbus</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-opcua</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-s7</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-simulated</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+
     <!-- Support camel documentation-->
     <!-- TODO: Do we need this? -->
     <!--dependency>
@@ -209,12 +278,6 @@
       <version>0.8.0-SNAPSHOT</version>
       <scope>test</scope>
     </dependency>
-    <!--dependency>
-      <groupId>org.apache.plc4x</groupId>
-      <artifactId>plc4j-driver-ads</artifactId>
-      <version>0.8.0-SNAPSHOT</version>
-      <scope>test</scope>
-    </dependency-->
     <dependency>
       <!-- avoids java.lang.NoClassDefFoundError: javax/activation/DataHandler in Plc4XProducerTest on Java 11-->
       <groupId>javax.activation</groupId>
@@ -230,18 +293,4 @@
     </dependency>
   </dependencies>
 
-  <dependencyManagement>
-    <dependencies>
-      <!-- Camel BOM -->
-      <!-- TODO: version temporary disabled due to PLC4X-22-->
-      <!--dependency>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-parent</artifactId>
-        <version>2.20.1</version>
-        <scope>import</scope>
-        <type>pom</type>
-      </dependency-->
-    </dependencies>
-  </dependencyManagement>
-
 </project>
\ No newline at end of file
diff --git a/plc4j/integrations/apache-edgent/pom.xml b/plc4j/integrations/apache-edgent/pom.xml
index 441ea6b..5d9c81d 100644
--- a/plc4j/integrations/apache-edgent/pom.xml
+++ b/plc4j/integrations/apache-edgent/pom.xml
@@ -36,6 +36,29 @@
     <edgent.version>1.2.0</edgent.version>
   </properties>
 
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <configuration>
+          <usedDependencies combine.children="append">
+            <usedDependency>org.apache.plc4x:plc4j-driver-ab-eth</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-ads</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-canopen</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-eip</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-firmata</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-knxnetip</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-modbus</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-opcua</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-s7</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-simulated</usedDependency>
+          </usedDependencies>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.plc4x</groupId>
@@ -54,36 +77,67 @@
       <artifactId>gson</artifactId>
     </dependency>
 
-    <!-- TODO: most of the tests are commented out, please re-enable -->
-    <!--dependency>
+    <!-- Include all drivers -->
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-ab-eth</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-ads</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
       <groupId>org.apache.plc4x</groupId>
-      <artifactId>plc4j-utils-test-utils</artifactId>
+      <artifactId>plc4j-driver-canopen</artifactId>
       <version>0.8.0-SNAPSHOT</version>
-      <scope>test</scope>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.plc4x</groupId>
-      <artifactId>plc4j-driver-mock</artifactId>
+      <artifactId>plc4j-driver-eip</artifactId>
       <version>0.8.0-SNAPSHOT</version>
-      <scope>test</scope>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
-      <scope>test</scope>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-firmata</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.plc4x</groupId>
-      <artifactId>plc4j-spi</artifactId>
+      <artifactId>plc4j-driver-knxnetip</artifactId>
       <version>0.8.0-SNAPSHOT</version>
-      <scope>test</scope>
-    </dependency-->
-    <!--dependency>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
       <groupId>org.apache.plc4x</groupId>
-      <artifactId>plc4j-transport-test</artifactId>
+      <artifactId>plc4j-driver-modbus</artifactId>
       <version>0.8.0-SNAPSHOT</version>
-      <scope>test</scope>
-    </dependency-->
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-opcua</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-s7</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-simulated</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
   </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/plc4j/integrations/apache-nifi/nifi-plc4x-nar/pom.xml b/plc4j/integrations/apache-nifi/nifi-plc4x-nar/pom.xml
index ac101c9..fe31556 100644
--- a/plc4j/integrations/apache-nifi/nifi-plc4x-nar/pom.xml
+++ b/plc4j/integrations/apache-nifi/nifi-plc4x-nar/pom.xml
@@ -51,6 +51,7 @@
               <usedDependency>org.apache.plc4x:plc4j-api</usedDependency>
               <usedDependency>org.apache.plc4x:plc4j-driver-ab-eth</usedDependency>
               <usedDependency>org.apache.plc4x:plc4j-driver-ads</usedDependency>
+              <usedDependency>org.apache.plc4x:plc4j-driver-canopen</usedDependency>
               <usedDependency>org.apache.plc4x:plc4j-driver-eip</usedDependency>
               <usedDependency>org.apache.plc4x:plc4j-driver-knxnetip</usedDependency>
               <usedDependency>org.apache.plc4x:plc4j-driver-modbus</usedDependency>
@@ -94,6 +95,11 @@
     </dependency>
     <dependency>
       <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-canopen</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
       <artifactId>plc4j-driver-eip</artifactId>
       <version>0.8.0-SNAPSHOT</version>
     </dependency>
diff --git a/plc4j/integrations/logstash-plugin/pom.xml b/plc4j/integrations/logstash-plugin/pom.xml
index e44b270..a36864d 100644
--- a/plc4j/integrations/logstash-plugin/pom.xml
+++ b/plc4j/integrations/logstash-plugin/pom.xml
@@ -199,8 +199,10 @@
         <configuration>
           <usedDependencies combine.children="append">
             <usedDependency>org.apache.plc4x:plc4j-driver-ab-eth</usedDependency>
-            <!--usedDependency>org.apache.plc4x:plc4j-driver-ads</usedDependency>
-                  <usedDependency>org.apache.plc4x:plc4j-driver-ethernet-ip</usedDependency-->
+            <usedDependency>org.apache.plc4x:plc4j-driver-ads</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-canopen</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-eip</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-firmata</usedDependency>
             <usedDependency>org.apache.plc4x:plc4j-driver-knxnetip</usedDependency>
             <usedDependency>org.apache.plc4x:plc4j-driver-modbus</usedDependency>
             <usedDependency>org.apache.plc4x:plc4j-driver-opcua</usedDependency>
@@ -250,6 +252,12 @@
     </dependency>
     <dependency>
       <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-canopen</artifactId>
+      <version>0.8.0-SNAPSHOT</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
       <artifactId>plc4j-driver-eip</artifactId>
       <version>0.8.0-SNAPSHOT</version>
       <scope>runtime</scope>
diff --git a/plc4j/integrations/opcua-server/pom.xml b/plc4j/integrations/opcua-server/pom.xml
index 3313a16..5dbe421 100644
--- a/plc4j/integrations/opcua-server/pom.xml
+++ b/plc4j/integrations/opcua-server/pom.xml
@@ -39,48 +39,30 @@
   </properties>
 
   <dependencies>
-    <!-- Testing Dependencies -->
-    <dependency>
-      <groupId>org.junit.jupiter</groupId>
-      <artifactId>junit-jupiter</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.junit.jupiter</groupId>
-      <artifactId>junit-jupiter-api</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-
     <dependency>
-        <groupId>org.eclipse.milo</groupId>
-        <artifactId>dictionary-manager</artifactId>
-        <scope>compile</scope>
+      <groupId>org.eclipse.milo</groupId>
+      <artifactId>dictionary-manager</artifactId>
     </dependency>
 
-<!-- Milo OPC UA Dependencies -->
+    <!-- Milo OPC UA Dependencies -->
     <dependency>
       <groupId>org.eclipse.milo</groupId>
       <artifactId>sdk-server</artifactId>
-      <version>${milo.version}</version>
     </dependency>
 
     <dependency>
-        <groupId>org.eclipse.milo</groupId>
-        <artifactId>stack-server</artifactId>
-        <scope>compile</scope>
+      <groupId>org.eclipse.milo</groupId>
+      <artifactId>stack-server</artifactId>
     </dependency>
 
     <dependency>
-        <groupId>org.eclipse.milo</groupId>
-        <artifactId>stack-core</artifactId>
-        <scope>compile</scope>
+      <groupId>org.eclipse.milo</groupId>
+      <artifactId>stack-core</artifactId>
     </dependency>
 
     <dependency>
-        <groupId>org.eclipse.milo</groupId>
-        <artifactId>sdk-core</artifactId>
-        <scope>compile</scope>
+      <groupId>org.eclipse.milo</groupId>
+      <artifactId>sdk-core</artifactId>
     </dependency>
 
     <!-- Parsing Libraries -->
@@ -107,7 +89,6 @@
     <dependency>
       <groupId>org.eclipse.jetty</groupId>
       <artifactId>jetty-util</artifactId>
-      <version>9.4.32.v20200930</version>
     </dependency>
 
     <dependency>
@@ -115,7 +96,7 @@
       <artifactId>commons-codec</artifactId>
     </dependency>
 
-<!-- PLC4X Dependencies -->
+    <!-- PLC4X Dependencies -->
     <dependency>
       <groupId>org.apache.plc4x</groupId>
       <artifactId>plc4j-api</artifactId>
@@ -143,12 +124,24 @@
     </dependency>
     <dependency>
       <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-canopen</artifactId>
+      <version>${plc4x.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
       <artifactId>plc4j-driver-eip</artifactId>
       <version>${plc4x.version}</version>
       <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-firmata</artifactId>
+      <version>${plc4x.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
       <artifactId>plc4j-driver-knxnetip</artifactId>
       <version>${plc4x.version}</version>
       <scope>runtime</scope>
@@ -182,17 +175,14 @@
     <dependency>
       <groupId>org.bouncycastle</groupId>
       <artifactId>bcmail-jdk15on</artifactId>
-      <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>org.bouncycastle</groupId>
       <artifactId>bcpkix-jdk15on</artifactId>
-      <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>org.bouncycastle</groupId>
       <artifactId>bcprov-jdk15on</artifactId>
-      <scope>compile</scope>
     </dependency>
 
     <dependency>
@@ -204,9 +194,9 @@
       <artifactId>slf4j-simple</artifactId>
     </dependency>
     <dependency>
-	    <groupId>commons-io</groupId>
-	    <artifactId>commons-io</artifactId>
-	</dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+    </dependency>
 
     <dependency>
       <groupId>io.vavr</groupId>
@@ -218,78 +208,91 @@
       <artifactId>commons-lang3</artifactId>
     </dependency>
 
+    <!-- Testing Dependencies -->
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-api</artifactId>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 
   <build>
-      <plugins>
-        <plugin>
-          <artifactId>maven-clean-plugin</artifactId>
-          <version>3.1.0</version>
-        </plugin>
-
-        <!-- Build a fat jar containing all dependencies -->
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-shade-plugin</artifactId>
-          <executions>
-            <execution>
-              <id>generate-uber-jar</id>
-              <phase>package</phase>
-              <goals>
-                <goal>shade</goal>
-              </goals>
-              <configuration>
-                <transformers combine.children="append">
-                  <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
-                    <mainClass>org.apache.plc4x.java.opcuaserver.OPCUAServer</mainClass>
-                  </transformer>
-                </transformers>
-              </configuration>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <groupId>org.codehaus.mojo</groupId>
-          <artifactId>build-helper-maven-plugin</artifactId>
-          <executions>
-            <execution>
-              <id>attach-uber-jar</id>
-              <phase>package</phase>
-              <goals>
-                <goal>attach-artifact</goal>
-              </goals>
-              <configuration>
-                <artifacts>
-                  <artifact>
-                    <file>${project.build.directory}/${project.artifactId}-${project.version}-uber-jar.jar</file>
-                    <type>jar</type>
-                    <classifier>standalone</classifier>
-                  </artifact>
-                </artifacts>
-              </configuration>
-            </execution>
-          </executions>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-dependency-plugin</artifactId>
-          <configuration>
-            <usedDependencies combine.children="append">
-                <usedDependency>org.slf4j:slf4j-simple</usedDependency>
-                <usedDependency>org.bouncycastle:bcmail-jdk15on</usedDependency>
-                <usedDependency>org.apache.plc4x:plc4j-driver-ab-eth</usedDependency>
-                <!--usedDependency>org.apache.plc4x:plc4j-driver-ads</usedDependency-->
-                <usedDependency>org.apache.plc4x:plc4j-driver-eip</usedDependency>
-                <usedDependency>org.apache.plc4x:plc4j-driver-knxnetip</usedDependency>
-                <usedDependency>org.apache.plc4x:plc4j-driver-modbus</usedDependency>
-                <usedDependency>org.apache.plc4x:plc4j-driver-opcua</usedDependency>
-                <usedDependency>org.apache.plc4x:plc4j-driver-s7</usedDependency>
-                <usedDependency>org.apache.plc4x:plc4j-driver-simulated</usedDependency>
-            </usedDependencies>
-          </configuration>
-        </plugin>
-
-      </plugins>
+    <plugins>
+      <plugin>
+        <artifactId>maven-clean-plugin</artifactId>
+        <version>3.1.0</version>
+      </plugin>
+
+      <!-- Build a fat jar containing all dependencies -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-shade-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>generate-uber-jar</id>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+            <configuration>
+              <transformers combine.children="append">
+                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+                  <mainClass>org.apache.plc4x.java.opcuaserver.OPCUAServer</mainClass>
+                </transformer>
+              </transformers>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>attach-uber-jar</id>
+            <phase>package</phase>
+            <goals>
+              <goal>attach-artifact</goal>
+            </goals>
+            <configuration>
+              <artifacts>
+                <artifact>
+                  <file>${project.build.directory}/${project.artifactId}-${project.version}-uber-jar.jar</file>
+                  <type>jar</type>
+                  <classifier>standalone</classifier>
+                </artifact>
+              </artifacts>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <configuration>
+          <usedDependencies combine.children="append">
+            <usedDependency>org.slf4j:slf4j-simple</usedDependency>
+            <usedDependency>org.bouncycastle:bcmail-jdk15on</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-ab-eth</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-ads</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-canopen</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-eip</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-firmata</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-knxnetip</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-modbus</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-opcua</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-s7</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4j-driver-simulated</usedDependency>
+          </usedDependencies>
+        </configuration>
+      </plugin>
+
+    </plugins>
   </build>
 </project>
diff --git a/plc4j/tools/interop/pom.xml b/plc4j/tools/interop/pom.xml
deleted file mode 100644
index 221e737..0000000
--- a/plc4j/tools/interop/pom.xml
+++ /dev/null
@@ -1,215 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.plc4x</groupId>
-    <artifactId>plc4j-tools</artifactId>
-    <version>0.8.0-SNAPSHOT</version>
-  </parent>
-
-  <artifactId>interop-server</artifactId>
-  <name>PLC4J: Tools: Interop-Server</name>
-
-  <build>
-    <plugins>
-      <!-- Unpack the protocol spec -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>unpack-protocol-spec</id>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>unpack</goal>
-            </goals>
-            <configuration>
-              <artifactItems>
-                <artifactItem>
-                  <groupId>org.apache.plc4x</groupId>
-                  <artifactId>plc4x-protocols-proxy</artifactId>
-                  <type>jar</type>
-                  <overWrite>true</overWrite>
-                  <outputDirectory>${project.build.directory}/protocol-spec</outputDirectory>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>org.apache.plc4x</groupId>
-                  <artifactId>plc4x-tools-thrift</artifactId>
-                  <type>zip</type>
-                  <classifier>compiler-${os.classifier}</classifier>
-                  <overWrite>true</overWrite>
-                  <outputDirectory>${project.build.directory}/thrift-compiler</outputDirectory>
-                  <destFileName>${thrift.compiler.executable}</destFileName>
-                </artifactItem>
-              </artifactItems>
-            </configuration>
-          </execution>
-          <execution>
-            <id>check-dependencies</id>
-            <phase>verify</phase>
-            <goals>
-              <goal>analyze-only</goal>
-            </goals>
-            <configuration>
-              <failOnWarning>true</failOnWarning>
-              <usedDependencies combine.children="append">
-                <usedDependency>org.apache.plc4x:plc4x-tools-thrift</usedDependency>
-                <usedDependency>org.apache.plc4x:plc4x-protocols-proxy</usedDependency>
-                <usedDependency>javax.annotation:jsr250-api</usedDependency>
-              </usedDependencies>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <!-- Generate the sources from the spec -->
-      <plugin>
-        <groupId>org.apache.thrift.tools</groupId>
-        <artifactId>maven-thrift-plugin</artifactId>
-        <configuration>
-          <thriftExecutable>${project.build.directory}/thrift-compiler/${thrift.compiler.executable}</thriftExecutable>
-          <thriftSourceRoot>${project.build.directory}/protocol-spec</thriftSourceRoot>
-          <includes>
-            <include>**/interop.thrift</include>
-          </includes>
-          <generator>java</generator>
-        </configuration>
-        <executions>
-          <execution>
-            <id>thrift-sources</id>
-            <phase>process-sources</phase>
-            <goals>
-              <goal>compile</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>thrift-test-sources</id>
-            <phase>generate-test-sources</phase>
-            <goals>
-              <goal>testCompile</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <!-- Create a fat jar -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-assembly-plugin</artifactId>
-        <configuration>
-          <!-- get all project dependencies -->
-          <!--          <descriptorRefs>-->
-          <!--            <descriptorRef>jar-with-dependencies</descriptorRef>-->
-          <!--            <descriptorRef>metaInf-services</descriptorRef>-->
-          <!--          </descriptorRefs>-->
-          <descriptors>src/assembly/assembly.xml</descriptors>
-          <!-- MainClass in mainfest make a executable jar -->
-          <archive>
-            <manifest>
-              <mainClass>org.apache.plc4x.interop.impl.Server</mainClass>
-            </manifest>
-          </archive>
-        </configuration>
-        <executions>
-          <execution>
-            <id>make-assembly</id>
-            <!-- bind to the packaging phase -->
-            <phase>package</phase>
-            <goals>
-              <goal>single</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.plc4x</groupId>
-      <artifactId>plc4j-api</artifactId>
-      <version>0.8.0-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.plc4x</groupId>
-      <artifactId>plc4j-spi</artifactId>
-      <version>0.8.0-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>javax.annotation</groupId>
-      <artifactId>jsr250-api</artifactId>
-      <version>1.0</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.thrift</groupId>
-      <artifactId>libthrift</artifactId>
-      <version>${thrift.version}</version>
-      <exclusions>
-        <exclusion>
-          <artifactId>javax.annotation-api</artifactId>
-          <groupId>javax.annotation</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.plc4x</groupId>
-      <artifactId>plc4j-driver-mock</artifactId>
-      <version>0.8.0-SNAPSHOT</version>
-    </dependency>
-
-    <!-- Make sure this is built before this module -->
-    <dependency>
-      <groupId>org.apache.plc4x</groupId>
-      <artifactId>plc4x-protocols-proxy</artifactId>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.plc4x</groupId>
-      <artifactId>plc4x-tools-thrift</artifactId>
-      <type>zip</type>
-      <classifier>compiler-${os.classifier}</classifier>
-      <scope>provided</scope>
-    </dependency>
-  </dependencies>
-
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>org.apache.plc4x</groupId>
-        <artifactId>plc4x-protocols-proxy</artifactId>
-        <version>0.8.0-SNAPSHOT</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.plc4x</groupId>
-        <artifactId>plc4x-tools-thrift</artifactId>
-        <version>0.8.0-SNAPSHOT</version>
-        <type>zip</type>
-        <classifier>compiler-${os.classifier}</classifier>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
-</project>
\ No newline at end of file
diff --git a/plc4j/tools/interop/src/assembly/assembly.xml b/plc4j/tools/interop/src/assembly/assembly.xml
deleted file mode 100644
index 27c0421..0000000
--- a/plc4j/tools/interop/src/assembly/assembly.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<!--
-
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
--->
-<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
-  <!-- TODO: a jarjar format would be better -->
-  <id>jar-with-dependencies</id>
-  <formats>
-    <format>jar</format>
-  </formats>
-  <includeBaseDirectory>false</includeBaseDirectory>
-  <dependencySets>
-    <dependencySet>
-      <outputDirectory>/</outputDirectory>
-      <useProjectArtifact>true</useProjectArtifact>
-      <unpack>true</unpack>
-      <scope>runtime</scope>
-    </dependencySet>
-  </dependencySets>
-  <containerDescriptorHandlers>
-    <containerDescriptorHandler>
-      <handlerName>metaInf-services</handlerName>
-    </containerDescriptorHandler>
-  </containerDescriptorHandlers>
-</assembly>
\ No newline at end of file
diff --git a/plc4j/tools/interop/src/main/java/org/apache/plc4x/interop/impl/Client.java b/plc4j/tools/interop/src/main/java/org/apache/plc4x/interop/impl/Client.java
deleted file mode 100644
index 6fc5b38..0000000
--- a/plc4j/tools/interop/src/main/java/org/apache/plc4x/interop/impl/Client.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.plc4x.interop.impl;
-
-import org.apache.plc4x.interop.ConnectionHandle;
-import org.apache.plc4x.interop.InteropServer;
-import org.apache.plc4x.interop.Request;
-import org.apache.plc4x.interop.Response;
-import org.apache.thrift.TException;
-import org.apache.thrift.protocol.TBinaryProtocol;
-import org.apache.thrift.protocol.TProtocol;
-import org.apache.thrift.transport.TSocket;
-import org.apache.thrift.transport.TTransport;
-
-import java.util.Collections;
-
-public class Client {
-
-    public static void main(String[] args) throws TException {
-        try (TTransport transport = new TSocket("localhost", 9090)) {
-
-            transport.open();
-
-            TProtocol protocol = new TBinaryProtocol(transport);
-
-            final InteropServer.Client client = new InteropServer.Client(protocol);
-
-//            final ConnectionHandle connection = client.connect("mock:a");
-//            final Response result = client.execute(connection, new Request(Collections.singletonMap("field_1", "DB.field.qry")));
-//            System.out.println("Got response: " + result);
-
-            for (int i = 1; i <= 100; i++) {
-                final ConnectionHandle connection = client.connect("s7://192.168.167.210/0/1");
-                final Response result = client.execute(connection, new Request(Collections.singletonMap("field_1", "%M0:USINT")));
-                System.out.println("Got response: " + result);
-
-                client.close(connection);
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-}
diff --git a/plc4j/tools/interop/src/main/java/org/apache/plc4x/interop/impl/Handler.java b/plc4j/tools/interop/src/main/java/org/apache/plc4x/interop/impl/Handler.java
deleted file mode 100644
index c784af8..0000000
--- a/plc4j/tools/interop/src/main/java/org/apache/plc4x/interop/impl/Handler.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.plc4x.interop.impl;
-
-import org.apache.commons.lang3.NotImplementedException;
-import org.apache.commons.lang3.exception.ExceptionUtils;
-import org.apache.plc4x.interop.*;
-import org.apache.plc4x.java.PlcDriverManager;
-import org.apache.plc4x.java.api.PlcConnection;
-import org.apache.plc4x.java.api.exceptions.PlcConnectionException;
-import org.apache.plc4x.java.api.messages.PlcReadRequest;
-import org.apache.plc4x.java.api.messages.PlcReadResponse;
-import org.apache.plc4x.java.api.types.PlcResponseCode;
-import org.apache.thrift.TException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicLong;
-
-public class Handler implements InteropServer.Iface {
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(Handler.class);
-
-    private final AtomicLong connectionCounter = new AtomicLong(0);
-
-    private final PlcDriverManager driverManager;
-    private final Map<Long, String> connectionStrings;
-    private final Map<Long, PlcConnection> connections;
-
-    public Handler(PlcDriverManager driverManager) {
-        this.driverManager = driverManager;
-        this.connections = new ConcurrentHashMap<>();
-        this.connectionStrings = new ConcurrentHashMap<>();
-    }
-
-
-    @Override
-    public ConnectionHandle connect(String connectionString) throws TException {
-        LOGGER.debug("Receiving new connect request to '{}'", connectionString);
-        try {
-            long id = connectionCounter.getAndIncrement();
-
-            final PlcConnection connection = driverManager.getConnection(connectionString);
-            connection.connect();
-
-            LOGGER.debug("Established connection to '{}' with handle {}", connectionString, id);
-
-            this.connections.put(id, connection);
-            this.connectionStrings.put(id, connectionString);
-            return new ConnectionHandle(id);
-        } catch (PlcConnectionException e) {
-            LOGGER.warn("Unable to start a connection to url '" + connectionString + "'", e);
-            throw new PlcException(connectionString, e.getMessage());
-        }
-    }
-
-    @Override
-    public void close(ConnectionHandle handle) throws TException {
-        LOGGER.debug("Receiving new close request for handle {}", handle.getConnectionId());
-        if (!connections.containsKey(handle)) {
-            LOGGER.warn("Handle for close request {} does not exist. Perhaps already closed?", handle.getConnectionId());
-            return;
-        }
-        try {
-            connections.get(handle).close();
-            connections.remove(handle);
-        } catch (Exception e) {
-            LOGGER.warn("Unable to close the conn / remove the handle", e);
-        }
-
-    }
-
-
-    @Override
-    public Response execute(ConnectionHandle handle, Request request) throws TException {
-        LOGGER.debug("Executing " + request);
-        if (request.getFields() == null) {
-            throw new PlcException(
-                connectionStrings.get(handle.getConnectionId()),
-                "No fields given in the request!");
-        }
-        try {
-            final PlcReadRequest.Builder builder = connections.get(handle.getConnectionId()).readRequestBuilder();
-            for (Map.Entry<String, String> entry : request.getFields().entrySet()) {
-                builder.addItem(entry.getKey(), entry.getValue());
-            }
-            final PlcReadResponse response = builder.build().execute().get(1_000L, TimeUnit.MILLISECONDS);
-
-            final HashMap<String, FieldResponse> resultMap = new HashMap<>();
-            for (String key : request.getFields().keySet()) {
-                final PlcResponseCode responseCode = response.getResponseCode(key);
-
-                final FieldResponse fieldResponse = new FieldResponse(convertResponseCode(responseCode));
-
-                if (PlcResponseCode.OK.equals(responseCode)) {
-                    if (response.isValidBoolean(key)) {
-                        fieldResponse.setBoolValue(response.getBoolean(key));
-                    }
-                    if (response.isValidLong(key)) {
-                        fieldResponse.setLongValue(response.getLong(key));
-                    }
-                    if (response.isValidDouble(key)) {
-                        fieldResponse.setDoubleValue(response.getDouble(key));
-                    }
-                    if (response.isValidString(key)) {
-                        fieldResponse.setStringValue(response.getString(key));
-                    }
-                }
-
-                resultMap.put(key, fieldResponse);
-            }
-            return new Response(resultMap);
-        } catch (Exception e) {
-            LOGGER.warn("Exception during execution of request '" + request + "' for handle " + handle.getConnectionId(), e);
-            throw new PlcException(
-                connectionStrings.get(handle.getConnectionId()),
-                ExceptionUtils.getStackTrace(e));
-        }
-    }
-
-    private RESPONSE_CODE convertResponseCode(PlcResponseCode responseCode) {
-        switch (responseCode) {
-            case OK:
-                return RESPONSE_CODE.OK;
-            case NOT_FOUND:
-                return RESPONSE_CODE.NOT_FOUND;
-            case ACCESS_DENIED:
-                return RESPONSE_CODE.ACCESS_DENIED;
-            case INTERNAL_ERROR:
-                return RESPONSE_CODE.INTERNAL_ERROR;
-            case INVALID_ADDRESS:
-                return RESPONSE_CODE.INVALID_ADDRESS;
-            case INVALID_DATATYPE:
-                return RESPONSE_CODE.INVALID_DATATYPE;
-            case RESPONSE_PENDING:
-                return RESPONSE_CODE.RESPONSE_PENDING;
-            default:
-                throw new NotImplementedException("This response code is not implemented!");
-        }
-    }
-
-}
diff --git a/plc4j/tools/interop/src/main/java/org/apache/plc4x/interop/impl/Server.java b/plc4j/tools/interop/src/main/java/org/apache/plc4x/interop/impl/Server.java
deleted file mode 100644
index e84a122..0000000
--- a/plc4j/tools/interop/src/main/java/org/apache/plc4x/interop/impl/Server.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.plc4x.interop.impl;
-
-import org.apache.plc4x.interop.InteropServer;
-import org.apache.plc4x.java.PlcDriverManager;
-import org.apache.plc4x.java.api.exceptions.PlcConnectionException;
-import org.apache.plc4x.java.api.messages.PlcSubscriptionEvent;
-import org.apache.plc4x.java.api.model.PlcConsumerRegistration;
-import org.apache.plc4x.java.api.model.PlcSubscriptionHandle;
-import org.apache.plc4x.java.api.types.PlcResponseCode;
-import org.apache.plc4x.java.spi.values.PlcLINT;
-import org.apache.plc4x.java.api.value.PlcValue;
-import org.apache.plc4x.java.mock.connection.MockConnection;
-import org.apache.plc4x.java.mock.connection.MockDevice;
-import org.apache.plc4x.java.spi.messages.utils.ResponseItem;
-import org.apache.thrift.server.TServer;
-import org.apache.thrift.server.TSimpleServer;
-import org.apache.thrift.transport.TServerSocket;
-import org.apache.thrift.transport.TServerTransport;
-
-import java.util.Collection;
-import java.util.function.Consumer;
-
-public class Server {
-
-    public static void main(String[] args) throws PlcConnectionException {
-        final PlcDriverManager driverManager = new PlcDriverManager();
-
-        // Do some mocking
-        final MockConnection mockConnection = (MockConnection) driverManager.getConnection("mock:a");
-
-        mockConnection.setDevice(new MyMockDevice());
-
-        final Handler handler = new Handler(driverManager);
-        final InteropServer.Processor<Handler> processor = new InteropServer.Processor<>(handler);
-
-        try {
-            TServerTransport serverTransport = new TServerSocket(9090);
-            TServer server = new TSimpleServer(new TServer.Args(serverTransport).processor(processor));
-
-            System.out.println("Starting the simple server...");
-            server.serve();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    private static class MyMockDevice implements MockDevice {
-        @Override
-        public ResponseItem<PlcValue> read(String fieldQuery) {
-            return new ResponseItem<>(PlcResponseCode.OK, new PlcLINT(100L));
-        }
-
-        @Override
-        public PlcResponseCode write(String fieldQuery, Object value) {
-            return null;
-        }
-
-        @Override
-        public ResponseItem<PlcSubscriptionHandle> subscribe(String fieldQuery) {
-            return null;
-        }
-
-        @Override
-        public void unsubscribe() {
-
-        }
-
-        @Override
-        public PlcConsumerRegistration register(Consumer<PlcSubscriptionEvent> consumer, Collection<PlcSubscriptionHandle> handles) {
-            return null;
-        }
-
-        @Override
-        public void unregister(PlcConsumerRegistration registration) {
-
-        }
-    }
-
-}
diff --git a/plc4j/tools/pom.xml b/plc4j/tools/pom.xml
index aaba917..dc8470c 100644
--- a/plc4j/tools/pom.xml
+++ b/plc4j/tools/pom.xml
@@ -40,13 +40,4 @@
     <module>scraper</module>
   </modules>
 
-  <profiles>
-     <profile>
-       <id>with-proxies</id>
-       <modules>
-         <module>interop</module>
-       </modules>
-     </profile>
-   </profiles>
-
 </project>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index b6d74f4..17324b2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,6 +140,7 @@
     <httpcore.version>4.4.13</httpcore.version>
     <jackson.version>2.11.3</jackson.version>
     <jaxb.version>2.3.3</jaxb.version>
+    <jetty-util.version>9.4.32.v20200930</jetty-util.version>
     <jna.version>5.3.1</jna.version>
     <joda-time.version>2.10.8</joda-time.version>
     <jserialcom.version>2.6.2</jserialcom.version>
@@ -507,6 +508,12 @@
       </dependency>
 
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-util</artifactId>
+        <version>${jetty-util.version}</version>
+      </dependency>
+
+      <dependency>
         <groupId>org.hamcrest</groupId>
         <artifactId>hamcrest</artifactId>
         <version>${hamcrest.version}</version>
diff --git a/protocols/pom.xml b/protocols/pom.xml
index 6ef25a3..890fe0b 100644
--- a/protocols/pom.xml
+++ b/protocols/pom.xml
@@ -221,14 +221,4 @@
     </plugins>
   </build>
 
-  <profiles>
-    <profile>
-      <id>with-proxies</id>
-      <modules>
-        <!-- Thrift based protocols -->
-        <module>proxy</module>
-      </modules>
-    </profile>
-  </profiles>
-
 </project>
diff --git a/protocols/proxy/pom.xml b/protocols/proxy/pom.xml
deleted file mode 100644
index c4dad65..0000000
--- a/protocols/proxy/pom.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
-  -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.plc4x</groupId>
-    <artifactId>plc4x-protocols</artifactId>
-    <version>0.8.0-SNAPSHOT</version>
-  </parent>
-
-  <artifactId>plc4x-protocols-proxy</artifactId>
-
-  <name>Protocols: Proxy</name>
-  <description>Base protocol specifications for the Thrift-based proxy protocol</description>
-
-</project>
\ No newline at end of file
diff --git a/protocols/proxy/src/main/java/.keepMe b/protocols/proxy/src/main/java/.keepMe
deleted file mode 100644
index 97c6314..0000000
--- a/protocols/proxy/src/main/java/.keepMe
+++ /dev/null
@@ -1,20 +0,0 @@
-
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
-This file is required to force the existence of the src/main/java directory
-which activates the "java-module" maven profile.
-
-PLEASE DO NOT DELETE ... it will break the build.
\ No newline at end of file
diff --git a/protocols/proxy/src/main/resources/org/apache/plc4x/protocols/proxy/interop.thrift b/protocols/proxy/src/main/resources/org/apache/plc4x/protocols/proxy/interop.thrift
deleted file mode 100644
index 970a183..0000000
--- a/protocols/proxy/src/main/resources/org/apache/plc4x/protocols/proxy/interop.thrift
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-# Thrift Definition for PLC4X Interop Server
-
-/**
- * The first thing to know about are types. The available types in Thrift are:
- *
- *  bool        Boolean, one byte
- *  i8 (byte)   Signed 8-bit integer
- *  i16         Signed 16-bit integer
- *  i32         Signed 32-bit integer
- *  i64         Signed 64-bit integer
- *  double      64-bit floating point value
- *  string      String
- *  binary      Blob (byte array)
- *  map<t1,t2>  Map from one type to another
- *  list<t1>    Ordered list of one type
- *  set<t1>     Set of unique elements of one type
- *
- * Did you also notice that Thrift supports C style comments?
- */
-
-/**
- * Thrift files can namespace, package, or prefix their output in various
- * target languages.
- */
-
-namespace java org.apache.plc4x.interop
-namespace py org.apache.plc4x.interop
-namespace csharp org.apache.plc4x.interop
-
-
-enum RESPONSE_CODE {
-  OK = 1,
-  NOT_FOUND = 2,
-  ACCESS_DENIED = 3,
-  INVALID_ADDRESS = 4,
-  INVALID_DATATYPE = 5,
-  INTERNAL_ERROR = 6,
-  RESPONSE_PENDING = 7
-}
-
-struct ConnectionHandle {
-  1: i64 connectionId
-}
-
-exception PlcException {
-  1: string url,
-  2: string exceptionString
-}
-
-struct Request {
-  1: map<string, string> fields
-}
-
-struct FieldResponse {
-  1: RESPONSE_CODE responseCode,
-  2: optional bool boolValue,
-  3: optional i64 longValue,
-  4: optional double doubleValue,
-  5: optional string stringValue
-}
-
-struct Response {
-  1: map<string, FieldResponse> fields
-}
-
-service InteropServer {
-
-   ConnectionHandle connect(1: string connectionString) throws (1: PlcException connectionException),
-
-   Response execute(1: ConnectionHandle handle, 2: Request request) throws (1: PlcException executionException),
-
-   void close(1: ConnectionHandle handle)
-
-}
diff --git a/sandbox/plc4cpp/pom.xml b/sandbox/plc4cpp/pom.xml
index c855f95..c352c7a 100644
--- a/sandbox/plc4cpp/pom.xml
+++ b/sandbox/plc4cpp/pom.xml
@@ -119,43 +119,6 @@
         </plugins>
       </build>
     </profile>
-    <profile>
-      <id>with-proxies</id>
-      <properties>
-        <!-- Disabled for now as the thrift code seems to have issues with boost 1.70 -->
-        <!--option.with-proxies>ON</option.with-proxies-->
-      </properties>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-dependency-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>get-thrift</id>
-                <phase>generate-sources</phase>
-                <goals>
-                  <goal>unpack</goal>
-                </goals>
-                <configuration>
-                  <artifactItems combine.children="append">
-                    <!-- Get the pre-packaged thrift library -->
-                    <artifactItem>
-                      <groupId>org.apache.plc4x</groupId>
-                      <artifactId>plc4x-tools-thrift</artifactId>
-                      <version>${project.version}</version>
-                      <type>zip</type>
-                      <classifier>cpp-${os.classifier}</classifier>
-                      <outputDirectory>${project.build.directory}/lib/thrift</outputDirectory>
-                    </artifactItem>
-                  </artifactItems>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
   </profiles>
 
   <build>
@@ -204,57 +167,12 @@
                   <classifier>lib-${os.classifier}</classifier>
                   <outputDirectory>${project.build.directory}/lib/boost</outputDirectory>
                 </artifactItem>
-                <!-- Unpack the protocol spec for the proxy driver -->
-                <!--artifactItem>
-                  <groupId>org.apache.plc4x</groupId>
-                  <artifactId>plc4x-protocols-proxy</artifactId>
-                  <version>${project.version}</version>
-                  <type>jar</type>
-                  <overWrite>true</overWrite>
-                  <outputDirectory>${project.build.directory}/protocol-spec</outputDirectory>
-                </artifactItem-->
-                <!-- Unpack the thrift compiler -->
-                <artifactItem>
-                  <groupId>org.apache.plc4x</groupId>
-                  <artifactId>plc4x-tools-thrift</artifactId>
-                  <version>${project.version}</version>
-                  <type>zip</type>
-                  <classifier>compiler-${os.classifier}</classifier>
-                  <overWrite>true</overWrite>
-                  <outputDirectory>${project.build.directory}/thrift-compiler</outputDirectory>
-                  <destFileName>${thrift.compiler.executable}</destFileName>
-                </artifactItem>
               </artifactItems>
             </configuration>
           </execution>
         </executions>
       </plugin>
       <!--
-        Generate the code for the Thrift-based interop server
-      -->
-      <plugin>
-        <groupId>org.apache.thrift.tools</groupId>
-        <artifactId>maven-thrift-plugin</artifactId>
-        <configuration>
-          <thriftExecutable>${project.build.directory}/thrift-compiler/${thrift.compiler.executable}</thriftExecutable>
-          <thriftSourceRoot>${project.build.directory}/protocol-spec</thriftSourceRoot>
-          <includes>
-            <include>**/interop.thrift</include>
-          </includes>
-          <generator>cpp</generator>
-          <outputDirectory>${project.build.directory}/generated-sources/drivers/proxy</outputDirectory>
-        </configuration>
-        <executions>
-          <execution>
-            <id>thrift-sources</id>
-            <phase>process-sources</phase>
-            <goals>
-              <goal>compile</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <!--
         Do the actual build.
       -->
       <plugin>
diff --git a/sandbox/plc4py/pom.xml b/sandbox/plc4py/pom.xml
index 3159e74..22d3899 100644
--- a/sandbox/plc4py/pom.xml
+++ b/sandbox/plc4py/pom.xml
@@ -48,53 +48,6 @@
         <artifactId>maven-dependency-plugin</artifactId>
         <executions>
           <execution>
-            <id>unpack-protocol-spec</id>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>unpack</goal>
-            </goals>
-            <configuration>
-              <artifactItems>
-                <artifactItem>
-                  <groupId>org.apache.plc4x</groupId>
-                  <artifactId>plc4x-protocols-proxy</artifactId>
-                  <type>jar</type>
-                  <overWrite>true</overWrite>
-                  <outputDirectory>${project.build.directory}/protocol-spec</outputDirectory>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>org.apache.plc4x</groupId>
-                  <artifactId>plc4x-tools-thrift</artifactId>
-                  <type>zip</type>
-                  <classifier>compiler-${os.classifier}</classifier>
-                  <overWrite>true</overWrite>
-                  <outputDirectory>${project.build.directory}/thrift-compiler</outputDirectory>
-                  <destFileName>${thrift.compiler.executable}</destFileName>
-                </artifactItem>
-              </artifactItems>
-            </configuration>
-          </execution>
-          <execution>
-            <id>copy-interop-server</id>
-            <phase>generate-resources</phase>
-            <goals>
-              <goal>copy</goal>
-            </goals>
-            <configuration>
-              <artifactItems>
-                <artifactItem>
-                  <groupId>org.apache.plc4x</groupId>
-                  <artifactId>interop-server</artifactId>
-                  <type>jar</type>
-                  <classifier>jar-with-dependencies</classifier>
-                  <overWrite>true</overWrite>
-                  <outputDirectory>${project.build.directory}/classes/lib</outputDirectory>
-                  <destFileName>interop-server.jar</destFileName>
-                </artifactItem>
-              </artifactItems>
-            </configuration>
-          </execution>
-          <execution>
             <id>check-dependencies</id>
             <phase>verify</phase>
             <goals>
@@ -103,7 +56,6 @@
             <configuration>
               <failOnWarning>true</failOnWarning>
               <usedDependencies combine.children="append">
-                <usedDependency>org.apache.plc4x:plc4x-tools-thrift</usedDependency>
                 <usedDependency>javax.annotation:jsr250-api</usedDependency>
               </usedDependencies>
             </configuration>
@@ -112,29 +64,6 @@
       </plugin>
 
       <plugin>
-        <groupId>org.apache.thrift.tools</groupId>
-        <artifactId>maven-thrift-plugin</artifactId>
-        <version>0.1.11</version>
-        <configuration>
-          <thriftExecutable>${project.build.directory}/thrift-compiler/${thrift.compiler.executable}</thriftExecutable>
-          <thriftSourceRoot>${project.build.directory}/protocol-spec</thriftSourceRoot>
-          <includes>
-            <include>**/interop.thrift</include>
-          </includes>
-          <generator>py</generator>
-        </configuration>
-        <executions>
-          <execution>
-            <id>thrift-sources</id>
-            <phase>process-sources</phase>
-            <goals>
-              <goal>compile</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-
-      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-remote-resources-plugin</artifactId>
         <configuration>
@@ -183,36 +112,4 @@
     </plugins>
   </build>
 
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.plc4x</groupId>
-      <artifactId>interop-server</artifactId>
-      <classifier>jar-with-dependencies</classifier>
-      <scope>provided</scope>
-    </dependency>
-  </dependencies>
-
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>org.apache.plc4x</groupId>
-        <artifactId>plc4x-protocols-proxy</artifactId>
-        <version>0.8.0-SNAPSHOT</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.plc4x</groupId>
-        <artifactId>plc4x-tools-thrift</artifactId>
-        <version>0.8.0-SNAPSHOT</version>
-        <type>zip</type>
-        <classifier>compiler-${os.classifier}</classifier>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.plc4x</groupId>
-        <artifactId>interop-server</artifactId>
-        <version>0.8.0-SNAPSHOT</version>
-        <classifier>jar-with-dependencies</classifier>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
 </project>
\ No newline at end of file
diff --git a/src/main/script/prerequisiteCheck.groovy b/src/main/script/prerequisiteCheck.groovy
index 514270b..145097a 100644
--- a/src/main/script/prerequisiteCheck.groovy
+++ b/src/main/script/prerequisiteCheck.groovy
@@ -425,7 +425,6 @@ def dotnetEnabled = false
 def javaEnabled = true
 def logstashEnabled = false
 def pythonEnabled = false
-def proxiesEnabled = false
 def sandboxEnabled = false
 def apacheReleaseEnabled = false
 def activeProfiles = session.request.activeProfiles
@@ -451,9 +450,6 @@ for (def activeProfile : activeProfiles) {
     } else if (activeProfile == "with-python") {
         pythonEnabled = true
         println "python"
-    } else if (activeProfile == "with-proxies") {
-        proxiesEnabled = true
-        println "proxies"
     } else if (activeProfile == "with-sandbox") {
         sandboxEnabled = true
         println "sandbox"
@@ -476,23 +472,11 @@ if (os == "win") {
     }
 }
 
-if (pythonEnabled && !proxiesEnabled) {
-    println "Currently the build of the python modules require the `with-proxies` profile to be enabled tpo."
-    allConditionsMet = false;
-}
-
 /////////////////////////////////////////////////////
 // Do the actual checks depending on the enabled
 // profiles.
 /////////////////////////////////////////////////////
 
-if (proxiesEnabled) {
-    checkBison()
-    if (!boostEnabled) {
-        checkBoost()
-    }
-}
-
 if (dotnetEnabled) {
     checkDotnet()
 }
@@ -502,12 +486,7 @@ if (logstashEnabled) {
     checkJavaVersion(null, "11")
 }
 
-if (proxiesEnabled) {
-    checkFlex()
-    checkOpenSSL()
-}
-
-if (proxiesEnabled || cppEnabled) {
+if (cppEnabled) {
     checkClang()
     // The cmake-maven-plugin requires at least java 11
     checkJavaVersion("11", null)
@@ -524,7 +503,7 @@ if (cEnabled) {
     checkGcc()
 }
 
-if (proxiesEnabled || cppEnabled) {
+if (cppEnabled) {
     checkGpp()
 }
 
@@ -546,7 +525,7 @@ if (sandboxEnabled && dockerEnabled) {
     checkDocker()
 }
 
-if (proxiesEnabled || cppEnabled || cEnabled) {
+if (cppEnabled || cEnabled) {
     // CMake requires at least maven 3.6.0
     checkMavenVersion("3.6.0", null)
 }
diff --git a/src/site/asciidoc/developers/release/release.adoc b/src/site/asciidoc/developers/release/release.adoc
index 72c2f4b..a631734 100644
--- a/src/site/asciidoc/developers/release/release.adoc
+++ b/src/site/asciidoc/developers/release/release.adoc
@@ -29,20 +29,20 @@ IMPORTANT: Please be sure to execute the release with a Java version between 1.8
 * [ ] Create release branch:
 [subs="verbatim,attributes"]
 ----
-   mvn release:branch -P with-sandbox,with-cpp,with-boost,with-dotnet,with-python,with-proxies,with-logstash -DbranchName=release/{current-short-version}
+   mvn release:branch -P with-boost,with-c,with-docker,with-dotnet,with-go,with-logstash,with-python,with-sandbox -DbranchName=release/{current-short-version}
 ----
 [%interactive]
 * [ ] Add a new section to the `RELEASE_NOTES` on `develop`
 * [ ] Prepare the release:
 [subs="verbatim,attributes"]
 ----
-   mvn release:prepare -P with-sandbox,with-cpp,with-boost,with-dotnet,with-python,with-proxies,with-logstash
+   mvn release:prepare -P with-boost,with-c,with-docker,with-dotnet,with-go,with-logstash,with-python,with-sandbox
 ----
 [%interactive]
 * [ ] Perform the release:
 [subs="verbatim,attributes"]
 ----
-   mvn release:perform -DreleaseProfiles=apache-release,with-boost,with-proxies,with-logstash
+   mvn release:perform -DreleaseProfiles=apache-release,with-logstash
 ----
 [%interactive]
 * [ ] Close the staging repo on `Nexus`
@@ -66,7 +66,7 @@ As part of the release process, Maven will upload maven release artifacts to a s
 This can be thought of as an ad-hoc Maven repository that contains only the artifacts for one release.
 This helps reviewers to see what's in the convenience maven package and to release that to the public repos with one click.
 
-But in order to be allowed to upload artifacts, your account has to be enabled for this and you have to tell Maven about your credentials.
+In order to be allowed to upload artifacts, your account has to be enabled for this, and you have to tell Maven about your credentials.
 
 In order to do this, you should provide these credentials via `.m2/settings.xml`.
 
@@ -94,16 +94,16 @@ This tells maven to use above credentials as soon as a repository with the id `a
 For a release all you need is the `releases` repo, but it is good to have the other in place as it enables you to also deploy SNAPSHOTs from your system.
 There repos are defined in the `apache` parent pom and is identical for all Apache projects.
 
-Additionally all artifacts are automatically signed by the release build. In order to be able to do this you need to setup GPG.
+Additionally, all artifacts are automatically signed by the release build. In order to be able to do this you need to set up GPG.
 
 The key being used to sign the artifacts will have to be linked to your Apache E-Mail ({apache-id}@apache.org) and verified by at least one fellow Apache committer (Ideally more) that have trusted keys themselves.
 Usually for this you have to get in touch - in real life - with any Apache committer with a trusted key.
-Attending an `ApacheCon` is usually a great way to do this as usually every ApacheCon has a `Key Signing event` in it's schedule.
+Attending an `ApacheCon` is usually a great way to do this as usually every ApacheCon has a `Key Signing event` in its schedule.
 He can then sign your key and hereby enable you to sign Apache release artifacts.
 
 There's a detailed description https://github.com/apache/incubator-pulsar/wiki/Create-GPG-keys-to-sign-release-artifacts[here].
 
-NOTE: However in contrast to that documentation, upload your key to the following servers: `pool.sks-keyservers.net` and `keyserver.ubuntu.com` as these are the ones Nexus is checking.
+NOTE: However, in contrast to that documentation, upload your key to the following servers: `pool.sks-keyservers.net` and `keyserver.ubuntu.com` as these are the ones Nexus is checking.
 
 If you happen to have multiple keys, adding the following profile to your `settings.xml` should help:
 
@@ -117,11 +117,11 @@ If you happen to have multiple keys, adding the following profile to your `setti
       </properties>
     </profile>
 
-Currently there is a Java-Version sweet-spot for being able to release all modules and that is Java 11.
+Currently, there is a Java-Version sweet-spot for being able to release all modules and that is Java 11.
 
 So be sure to set `Java 11` as the java version used to do the release.
 
-Also at least `Maven 3.6` is required for CMake.
+Also, at least `Maven 3.6` is required for CMake.
 
 Ideally use the Maven-Wrapper to ensure the Maven version fits the build.
 
@@ -131,7 +131,7 @@ Usually you will have to update the RELEASE_NOTES document to the new version.
 I would suggest doing this prior to the branch as otherwise you will definitely have to port it back to `develop`.
 So remove the `SNAPSHOT` and `(Unreleased)` markers from the file and add missing parts.
 
-Also if you are doing the first release in a new year, it is advisable to search for the old year and check if any occurrences are ok the way they are.
+Also, if you are doing the first release in a new year, it is advisable to search for the old year and check if any occurrences are ok the way they are.
 Usually the `NOTICE` file has to be adjusted.
 
 === Creating a release branch
@@ -150,16 +150,16 @@ Per default the plugin will ask for the working copy version during the build ex
 This is the version the `develop` branch will be changed to.
 
 In contrast to normal builds, it is important to enable all profiles when creating the branch as only this way will all modules versions be updated.
-Otherwise the non-default modules on develop will reference the old version which will cause problems when building.
+Otherwise, the non-default modules on develop will reference the old version which will cause problems when building.
 
-   mvn release:branch -P with-boost,with-c,with-cpp,with-docker,with-dotnet,with-logstash,with-proxies,with-python,with-sandbox -DbranchName=release/{minor-version}
+   mvn release:branch -P with-boost,with-c,with-docker,with-dotnet,with-logstash,with-python,with-sandbox -DbranchName=release/{minor-version}
 
 Per default the plugin suggests the next bugfix version as working version, however we want it to use the next minor version.
 So in case of preparing the release branch for `{current-full-version}-SNAPSHOT` the command would be the following:
 
 [subs="verbatim,attributes"]
 ----
-   mvn release:branch -P with-boost,with-c,with-cpp,with-docker,with-dotnet,with-logstash,with-proxies,with-python,with-sandbox -DbranchName=release/{current-short-version}
+   mvn release:branch -P with-boost,with-c,with-docker,with-dotnet,with-logstash,with-python,with-sandbox -DbranchName=release/{current-short-version}
 ----
 
 The plugin will then aks for the version:
@@ -169,11 +169,11 @@ The plugin will then aks for the version:
    What is the new working copy version for "PLC4X"? (org.apache.plc4x:plc4x-parent) {current-next-incremental-version}-SNAPSHOT: : {current-next-minor-version}-SNAPSHOT
 ----
 
-Where the suggested default is manually overridden.
+Here the suggested default has to be manually overridden.
 
 This step now should perform quite quickly as no build and no tests are involved.
 
-However in the end the versions of the `develop` branch are updated and a new `release/{current-short-version}` branch is created.
+However, in the end the versions of the `develop` branch are updated and a new `release/{current-short-version}` branch is created.
 
 === Preparing `develop` for the next iteration
 
@@ -208,25 +208,25 @@ WARNING: If you find anything here, you will need to pay attention during the re
 
 Now usually comes a phase in which last tests and checks should be performed.
 
-If any problems are found they have to be fixed in the release branch.
+If any problems are found, they have to be fixed in the release branch.
 
-Changes should either be re applied in `develop` or `cherry-picked`, however merging things back can cause a lot of problems ans we no longer have the same versions.
+Changes should either be re applied in `develop` or `cherry-picked`, however merging things back can cause a lot of problems, and we no longer have the same versions.
 
 === Preparing a release
 
 Same as with creating the branch it is important to enable all profiles when creating the branch as only this way will all modules versions be updated.
-Otherwise the non-default modules on develop will reference the old version which will cause problems when building.
-For people building with some of the additional profiles from the source release will be impossible.
+Otherwise, the non-default modules on develop will reference the old version which will cause problems when building.
+For people building with some additional profiles from the source release will be impossible.
 
 As especially when switching a lot between different branches, it is recommended to do a clean checkout of the repository.
-Otherwise a lot of directories can be left over, which would be included in the source-release zip.
+Otherwise, a lot of directories can be left over, which would be included in the source-release zip.
 In order to prepare a release-candidate, the first step is switching to the corresponding release-branch.
 
 After that, the following command will to all preparation steps for the release:
 
-   mvn release:prepare -P with-boost,with-c,with-cpp,with-docker,with-dotnet,with-logstash,with-proxies,with-python,with-sandbox
+   mvn release:prepare -P with-boost,with-c,with-docker,with-dotnet,with-go,with-logstash,with-python,with-sandbox
 
-(The `-P with-sandbox,with-cpp,with-boost,with-dotnet,with-python,with-proxies,with-logstash` tells maven to activate the all profiles that partition the build and makes sure the versions of all modules are updated as part of the release)
+(The `-P with-boost,with-c,with-docker,with-dotnet,with-go,with-logstash,with-python,with-sandbox` tells maven to activate the all profiles that partition the build and makes sure the versions of all modules are updated as part of the release)
 In general the plugin will now ask you 3 questions:
 
 1. The version we want to release as (It will suggest the version you get by omitting the `-SNAPSHOT` suffix)
@@ -247,7 +247,7 @@ What the plugin now does, is automatically execute the following operations:
 8. Commit the changes (commit message: `[maven-release-plugin] prepare for next development iteration`)
 9. Push the commit
 
-However this just prepared the git repository for the release, we have to perform the release to produce and stage the release artifacts.
+However, this just prepared the git repository for the release, we have to perform the release to produce and stage the release artifacts.
 
 Please verify the git repository at: https://gitbox.apache.org/repos/asf?p=plc4x.git
 is in the correct state. Please select the release branch and verify the commit log looks similar to this
@@ -276,9 +276,9 @@ If something goes wrong, you can always execute:
 
    mvn release:rollback
 
-And it will change the versions back and commit and push things.
+It will change the versions back and commit and push things.
 
-However it will not delete the tag in GIT (locally and remotely). So you have to do that manually or use a different tag next time.
+However, it will not delete the tag in GIT (locally and remotely). So you have to do that manually or use a different tag next time.
 
 === Performing a release
 
@@ -286,12 +286,12 @@ This is done by executing another goal of the `maven-release-plugin`:
 
    mvn release:perform
 
-This executes automatically as all information it requires is located in the `release.properties` file the `prepare` goal prepared.
+This executes automatically as all information it requires is located in the `release.properties` file the `prepare`-goal prepared.
 
-The first step is that the `perform` goal checks out the previously tagged revision into the root modules `target/checkout` directory.
+The first step is that the `perform`-goal checks out the previously tagged revision into the root modules `target/checkout` directory.
 Here it automatically executes a maven build (You don't have to do this, it's just that you know what's happening):
 
-   mvn clean deploy -P apache-release,with-boots,with-proxies,with-logstash
+   mvn clean deploy -P with-logstash
 
 As the `apache-release` profile is also activated, this builds and tests the project as well as creates the JavaDocs, Source packages and signs each of these with your PGP key.
 
@@ -299,7 +299,7 @@ We are intentionally not adding the other profiles, as these either produce bina
 
 As this time the build is building with release versions, Maven will automatically choose the release url for deploying artifacts.
 
-The way things are setup in the apache parent pom, is that release artifacts are deployed to a so-called `staging repository`.
+The way things are set up in the apache parent pom, is that release artifacts are deployed to a so-called `staging repository`.
 
 You can think of a `staging repository` as a dedicated repository created on the fly as soon as the first artifact comes in.
 
@@ -355,9 +355,9 @@ It should contain all the information needed.
 Be sure to stage exactly the `README` and `RELEASE_NOTES` files contained in the root of your project.
 Ideally you just copy them there from there.
 
-All of the three `*-source-relese.zip*` artifacts should be located in the directory: `target/checkout/target`
+All three `*-source-relese.zip*` artifacts should be located in the directory: `target/checkout/target`
 
-So after committing these files to SVN you are ready to start the vote.
+After committing these files to SVN you are ready to start the vote.
 
 === Starting a vote on the mailing list
 
@@ -422,7 +422,7 @@ This is an Apache policy to make it possible for anyone to participate in the vo
 
 The vote passes, if at least 3 `+1` votes are received and more `+1` are received than `-1`.
 
-After the 72 hour minimum wait period is over and we have fulfilled the requirement of at least 3 +1 votes and more +1 than -1, a final reply is sent to the vote thread with a prefix of `[RESULT]` in the title in which the summary of the vote is presented in an aggregated form.
+After the 72-hour minimum wait period is over and we have fulfilled the requirement of at least 3 +1 votes and more +1 than -1, a final reply is sent to the vote thread with a prefix of `[RESULT]` in the title in which the summary of the vote is presented in an aggregated form.
 
 [subs="verbatim,attributes"]
 ----
@@ -435,7 +435,7 @@ So, the vote passes with {number of +1 votes} +1 votes by PMC members {number of
 
 === Releasing after a successful vote
 
-As soon as the votes are finished and the results were in favor of a release, the staged artifacts can be released.
+As soon as the votes are finished, and the results were in favor of a release, the staged artifacts can be released.
 This is done by moving them inside the Apache SVN.
 
 [subs="verbatim,attributes"]
@@ -461,7 +461,7 @@ After this https://dist.apache.org/repos/dist/release/plc4x should only contain
 
 === Releasing the Maven artifacts
 
-The probably simplest part is releasing the Maven artifacts.
+Probably the simplest part is releasing the Maven artifacts.
 
 In order to do this, the release manager logs into Nexus at https://repository.apache.org/, selects the staging repository and clicks on the `Release` button.
 
@@ -479,7 +479,7 @@ This is found at:
 
 Please add the just released version to the top of the versions.
 
-This file is needed for Apache's tooling to automatically keep track of project release activity and we use this internally too to automatically update the documentation to always reference the latest released version automatically.
+This file is needed for Apache's tooling to automatically keep track of project release activity, and we use this internally too to automatically update the documentation to always reference the latest released version automatically.
 
 === Merge back release version to `release` branch
 
@@ -492,7 +492,7 @@ git checkout release
 git merge release/{current-full-version}
 ----
 
-When there are conflicts it could help to use the "theirs" merge strategy, i.e.,
+When there are conflicts it could help to use the `theirs` merge strategy, i.e.,
 
 [subs="verbatim,attributes"]
 ----
@@ -509,8 +509,7 @@ be pushed.
 
 === Update the download site
 
-The URL http://plc4x.apache.org/users/download.html has to be changed and the current release
-has to be listed there.
+The URL http://plc4x.apache.org/users/download.html has to be changed, and the current release has to be listed there.
 This is done by changing the `download.adoc` under `src/site/users/` (**in the develop branch, as this is where the site is generated from!**)
 
 1. Copy the last release down to _Previous Releases_
@@ -548,16 +547,26 @@ logic controllers (PLCs) using a variety of protocols but with a shared API.
 
 The current release contains drivers able to communicate with industrial PLCs using one of the following protocols:
 
-  *   Siemens S7 (0x32)
+  *   AB-ETH
   *   Beckhoff ADS
+  *   CanOpen
+  *   EtherNet/IP / EIP
+  *   Firmata
+  *   KNXNet/IP
   *   Modbus
-  *   EtherNet/IP
+  *   OPC UA
+  *   Siemens S7 (0x32)
 
 Beyond that we also provide integration modules for the following Apache projects and frameworks:
 
-  *   Apache Edgent (Incubating)
+  *   Apache Calcite
   *   Apache Camel
+  *   Apache Edgent (Incubating / Retired)
   *   Apache Kafka (Kafka Connect)
+  *   Apache NiFi
+  *   Logstash
+
+It also provides an `OPC UA Server` which can act as a bridge between legacy systems and OPC UA.
 
 Visit the Apache PLC4X website [1] for general information or
 the downloads page [2] for release notes and download information.
@@ -569,11 +578,11 @@ The Apache PLC4X team
 [2] http://plc4x.apache.org/users/download.html
 ----
 
-It is important to note that you have to send this email from your apache email address or it will be rejected.
-This wasn't very simple for me to setup.
+It is important to note that you have to send this email from your apache email address, or it will be rejected.
+This wasn't very simple for me to set up.
 A general description can be found here:
 https://reference.apache.org/committer/email
-Here's what I did in google mail to allow sending of emails:
+Here's what I did in Google Mail to allow sending of emails:
 https://gmail.googleblog.com/2009/07/send-mail-from-another-address-without.html
 Note ... you will be able to select the alternate sending address if you click into the recipients line of a new email (Not very intuitive).
 
diff --git a/src/site/asciidoc/developers/release/validation.adoc b/src/site/asciidoc/developers/release/validation.adoc
index 3bf00bc..9c79590 100644
--- a/src/site/asciidoc/developers/release/validation.adoc
+++ b/src/site/asciidoc/developers/release/validation.adoc
@@ -64,6 +64,7 @@ java -jar apache-rat-0.13.jar apache-plc4x-{current-full-version}-source-release
 ----
 find . -type f -name 'pom.xml' -exec grep -l "SNAPSHOT" {} \;
 ----
+NOTE: Especially in the `sandbox` there may be parts that are not formally released, `SNAPSHOT` versions in the `sandbox` therefore should not result in a `-1` vote ... in the other parts however they should.
 [%interactive]
 * [ ] Search for `Copyright` references, and if they are in headers, make sure these files containing them are mentioned in the LICENSE file.
 * [ ] Build the project according to the information in the README.md file.
diff --git a/tools/pom.xml b/tools/pom.xml
index e007e3e..28fd8b4 100644
--- a/tools/pom.xml
+++ b/tools/pom.xml
@@ -45,12 +45,6 @@
         <module>logstash</module>
       </modules>
     </profile>
-    <profile>
-      <id>with-proxies</id>
-      <modules>
-        <module>thrift</module>
-      </modules>
-    </profile>
   </profiles>
 
 </project>
\ No newline at end of file
diff --git a/tools/thrift/pom.xml b/tools/thrift/pom.xml
deleted file mode 100644
index a943206..0000000
--- a/tools/thrift/pom.xml
+++ /dev/null
@@ -1,407 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
-  -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.plc4x</groupId>
-    <artifactId>plc4x-tools</artifactId>
-    <version>0.8.0-SNAPSHOT</version>
-  </parent>
-
-  <artifactId>plc4x-tools-thrift</artifactId>
-  <packaging>pom</packaging>
-
-  <name>Tools: Thrift</name>
-  <description>Local build of the Apache Thrift compiler.</description>
-
-  <properties>
-    <thrift.with.cpp>OFF</thrift.with.cpp>
-    <thrift.with.csharp>OFF</thrift.with.csharp>
-    <thrift.with.python>OFF</thrift.with.python>
-  </properties>
-
-  <profiles>
-    <!-- Profile for linux -->
-    <profile>
-      <id>os-unix</id>
-      <activation>
-        <os>
-          <family>unix</family>
-        </os>
-      </activation>
-      <!-- Make the cmake executable executable (Seems not to be per default) -->
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>exec-maven-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>make-cmake-executable</id>
-                <phase>process-sources</phase>
-                <goals>
-                  <goal>exec</goal>
-                </goals>
-                <configuration>
-                  <basedir>${cmake.root}</basedir>
-                  <executable>chmod</executable>
-                  <arguments>
-                    <argument>+x</argument>
-                    <argument>cmake</argument>
-                  </arguments>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <!-- Profile for mac -->
-    <profile>
-      <id>os-mac</id>
-      <activation>
-        <os>
-          <family>mac</family>
-        </os>
-      </activation>
-      <!-- Make the cmake executable executable (Seems not to be per default) -->
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>exec-maven-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>make-cmake-executable</id>
-                <phase>process-sources</phase>
-                <goals>
-                  <goal>exec</goal>
-                </goals>
-                <configuration>
-                  <basedir>${cmake.root}</basedir>
-                  <executable>chmod</executable>
-                  <arguments>
-                    <argument>+x</argument>
-                    <argument>cmake</argument>
-                  </arguments>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <!-- If C++ is enabled, we need to add another assembly to the build to package the libraries -->
-    <profile>
-      <id>with-cpp</id>
-      <properties>
-        <thrift.with.cpp>ON</thrift.with.cpp>
-      </properties>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-assembly-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>package-thrift-cpp</id>
-                <phase>package</phase>
-                <goals>
-                  <goal>single</goal>
-                </goals>
-                <configuration>
-                  <finalName>${project.artifactId}-${project.version}</finalName>
-                  <descriptors>
-                    <descriptor>src/assembly/cpp.xml</descriptor>
-                  </descriptors>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <!-- If C# is enabled, we need to add another assembly to the build to package the libraries -->
-    <profile>
-      <id>with-dotnet</id>
-      <properties>
-        <thrift.with.csharp>ON</thrift.with.csharp>
-      </properties>
-      <build>
-        <plugins>
-          <!-- This library is currently not buildable via CMake (yet) -->
-          <!--plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-assembly-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>package-thrift-cpp</id>
-                <phase>package</phase>
-                <goals>
-                  <goal>single</goal>
-                </goals>
-                <configuration>
-                  <finalName>${project.artifactId}-${project.version}</finalName>
-                  <descriptors>
-                    <descriptor>src/assembly/csharp.xml</descriptor>
-                  </descriptors>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin-->
-        </plugins>
-      </build>
-    </profile>
-    <!-- If Python is enabled, we need to add another assembly to the build to package the libraries -->
-    <profile>
-      <id>with-python</id>
-      <properties>
-        <thrift.with.python>ON</thrift.with.python>
-      </properties>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-assembly-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>package-thrift-python</id>
-                <phase>package</phase>
-                <goals>
-                  <goal>single</goal>
-                </goals>
-                <configuration>
-                  <finalName>${project.artifactId}-${project.version}</finalName>
-                  <descriptors>
-                    <descriptor>src/assembly/python.xml</descriptor>
-                  </descriptors>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>com.googlecode.maven-download-plugin</groupId>
-        <artifactId>download-maven-plugin</artifactId>
-        <executions>
-          <!-- Download the CMake binary distribution for this platform. -->
-          <execution>
-            <id>get-cmake</id>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>wget</goal>
-            </goals>
-            <configuration>
-              <url>${cmake.url}</url>
-              <unpack>true</unpack>
-              <outputDirectory>${project.build.directory}</outputDirectory>
-              <overwrite>true</overwrite>
-            </configuration>
-          </execution>
-          <!-- Download the sources for building the thrift compiler -->
-          <execution>
-            <id>get-thrift</id>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>wget</goal>
-            </goals>
-            <configuration>
-              <url>http://www.apache.org/dyn/closer.lua?action=download&amp;filename=/thrift/${thrift.version}/thrift-${thrift.version}.tar.gz</url>
-              <unpack>true</unpack>
-              <outputDirectory>${project.build.directory}</outputDirectory>
-              <overwrite>true</overwrite>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>unpack-boost</id>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>unpack</goal>
-            </goals>
-            <configuration>
-              <artifactItems>
-                <artifactItem>
-                  <groupId>org.apache.plc4x</groupId>
-                  <artifactId>plc4x-tools-boost</artifactId>
-                  <version>${project.version}</version>
-                  <type>zip</type>
-                  <classifier>lib-${os.classifier}</classifier>
-                  <overWrite>true</overWrite>
-                </artifactItem>
-              </artifactItems>
-              <outputDirectory>${project.build.directory}/boost</outputDirectory>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-
-      <plugin>
-        <groupId>com.googlecode.cmake-maven-project</groupId>
-        <artifactId>cmake-maven-plugin</artifactId>
-        <executions>
-          <!-- Uses a CMake generator to generate the build using the build tool of choice -->
-          <execution>
-            <id>cmake-generate</id>
-            <phase>process-sources</phase>
-            <goals>
-              <goal>generate</goal>
-            </goals>
-            <configuration>
-              <!--
-                We need to use a newer version of cmake, so disable downloading
-                and tell the plugin where to find that version.
-              -->
-              <downloadBinaries>false</downloadBinaries>
-              <cmakeDir>${cmake.root}</cmakeDir>
-
-              <sourcePath>${project.build.directory}/thrift-${thrift.version}</sourcePath>
-              <targetPath>${project.build.directory}/build</targetPath>
-              <generator>${cmake.generator}</generator>
-              <options>
-                <!-- Disable testing for now -->
-                <option>-DBUILD_TESTING=OFF</option>
-
-                <!-- Enable and disable the building of code generators for different languages -->
-                <option>-DTHRIFT_COMPILER_AS3=OFF</option>
-                <option>-DTHRIFT_COMPILER_C_GLIB=OFF</option>
-                <option>-DTHRIFT_COMPILER_CL=OFF</option>
-                <option>-DTHRIFT_COMPILER_CPP=${thrift.with.cpp}</option>
-                <option>-DTHRIFT_COMPILER_CSHARP=${thrift.with.csharp}</option>
-                <option>-DTHRIFT_COMPILER_D=OFF</option>
-                <option>-DTHRIFT_COMPILER_DART=OFF</option>
-                <option>-DTHRIFT_COMPILER_DELPHI=OFF</option>
-                <option>-DTHRIFT_COMPILER_ERL=OFF</option>
-                <option>-DTHRIFT_COMPILER_GO=OFF</option>
-                <option>-DTHRIFT_COMPILER_GV=OFF</option>
-                <option>-DTHRIFT_COMPILER_HAXE=OFF</option>
-                <option>-DTHRIFT_COMPILER_HS=OFF</option>
-                <option>-DTHRIFT_COMPILER_HTML=OFF</option>
-                <option>-DTHRIFT_COMPILER_JAVA=ON</option>
-                <option>-DTHRIFT_COMPILER_JAVAME=OFF</option>
-                <option>-DTHRIFT_COMPILER_JS=OFF</option>
-                <option>-DTHRIFT_COMPILER_JSON=OFF</option>
-                <option>-DTHRIFT_COMPILER_LUA=OFF</option>
-                <option>-DTHRIFT_COMPILER_NETCORE=OFF</option>
-                <option>-DTHRIFT_COMPILER_NETSTD=OFF</option>
-                <option>-DTHRIFT_COMPILER_OCAML=OFF</option>
-                <option>-DTHRIFT_COMPILER_PERL=OFF</option>
-                <option>-DTHRIFT_COMPILER_PHP=OFF</option>
-                <option>-DTHRIFT_COMPILER_PY=${thrift.with.python}</option>
-                <option>-DTHRIFT_COMPILER_RB=OFF</option>
-                <option>-DTHRIFT_COMPILER_RS=OFF</option>
-                <option>-DTHRIFT_COMPILER_ST=OFF</option>
-                <option>-DTHRIFT_COMPILER_SWIFT=OFF</option>
-                <option>-DTHRIFT_COMPILER_XML=OFF</option>
-                <option>-DTHRIFT_COMPILER_XSD=OFF</option>
-
-                <!-- Enable and disable the building of libs for different languages -->
-                <option>-DBUILD_C_GLIB=OFF</option>
-                <option>-DBUILD_CPP=${thrift.with.cpp}</option>
-                <!-- Unfortunately this doesn't exist yet -->
-                <option>-DBUILD_CSHARP=${thrift.with.csharp}</option>
-                <!-- Don't build Java, as the libs are available via Maven -->
-                <option>-DBUILD_JAVA=OFF</option>
-                <option>-DBUILD_PYTHON=${thrift.with.python}</option>
-                <option>-DBUILD_HASKELL=OFF</option>
-                <!-- Tell CMake where our boost includes and libs are located -->
-                <option>-DBOOST_INCLUDEDIR=${project.build.directory}/boost/include</option>
-                <option>-DBOOST_LIBRARYDIR=${project.build.directory}/boost/lib</option>
-              </options>
-            </configuration>
-          </execution>
-          <!-- Actually executes the build -->
-          <execution>
-            <id>cmake-compile</id>
-            <phase>compile</phase>
-            <goals>
-              <goal>compile</goal>
-            </goals>
-            <configuration>
-              <!--
-                We need to use a newer version of cmake, so disable downloading
-                and tell the plugin where to find that version.
-              -->
-              <downloadBinaries>false</downloadBinaries>
-              <cmakeDir>${cmake.root}</cmakeDir>
-
-              <!-- The directory where the "generate" step generated the build configuration -->
-              <projectDirectory>${project.build.directory}/build</projectDirectory>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-
-      <!-- Add the thrift compiler executable to the build -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-assembly-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>source-release-assembly</id>
-            <configuration>
-              <skip>true</skip>
-            </configuration>
-          </execution>
-          <execution>
-            <id>package-thrift-compiler</id>
-            <phase>package</phase>
-            <goals>
-              <goal>single</goal>
-            </goals>
-            <configuration>
-              <finalName>${project.artifactId}-${project.version}</finalName>
-              <descriptors>
-                <descriptor>src/assembly/compiler.xml</descriptor>
-              </descriptors>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-  <dependencies>
-    <!-- Make sure Boost is built first -->
-    <dependency>
-      <groupId>org.apache.plc4x</groupId>
-      <artifactId>plc4x-tools-boost</artifactId>
-      <version>0.8.0-SNAPSHOT</version>
-      <type>zip</type>
-      <classifier>lib-${os.classifier}</classifier>
-      <scope>provided</scope>
-    </dependency>
-  </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/tools/thrift/src/assembly/compiler.xml b/tools/thrift/src/assembly/compiler.xml
deleted file mode 100644
index 10f2c8d..0000000
--- a/tools/thrift/src/assembly/compiler.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
-  -->
-<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
-
-  <id>compiler-${os.classifier}</id>
-
-  <formats>
-    <format>zip</format>
-  </formats>
-
-  <includeBaseDirectory>false</includeBaseDirectory>
-
-
-  <fileSets>
-    <fileSet>
-      <directory>${project.build.directory}/build/compiler/cpp/bin</directory>
-      <includes>
-        <include>*</include>
-      </includes>
-      <outputDirectory/>
-      <!-- Make sure the files are executable. -->
-      <fileMode>755</fileMode>
-    </fileSet>
-  </fileSets>
-</assembly>
\ No newline at end of file
diff --git a/tools/thrift/src/assembly/cpp.xml b/tools/thrift/src/assembly/cpp.xml
deleted file mode 100644
index b59e90a..0000000
--- a/tools/thrift/src/assembly/cpp.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
-  -->
-<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
-
-  <id>cpp-${os.classifier}</id>
-
-  <formats>
-    <format>zip</format>
-  </formats>
-
-  <includeBaseDirectory>false</includeBaseDirectory>
-
-  <fileSets>
-    <fileSet>
-      <directory>${project.build.directory}/thrift-${thrift.version}/lib/cpp/src</directory>
-      <includes>
-        <include>**/*.h</include>
-        <include>**/*.tcc</include>
-      </includes>
-      <outputDirectory>include</outputDirectory>
-    </fileSet>
-    <fileSet>
-      <directory>${project.build.directory}/build/thrift</directory>
-      <includes>
-        <include>**/*.h</include>
-      </includes>
-      <outputDirectory>include/thrift</outputDirectory>
-    </fileSet>
-    <fileSet>
-      <directory>${project.build.directory}/build/lib</directory>
-      <includes>
-        <include>*.a</include>
-        <include>*.dylib</include>
-      </includes>
-      <outputDirectory>lib</outputDirectory>
-    </fileSet>
-  </fileSets>
-</assembly>
\ No newline at end of file
diff --git a/tools/thrift/src/assembly/python.xml b/tools/thrift/src/assembly/python.xml
deleted file mode 100644
index 7eb2cde..0000000
--- a/tools/thrift/src/assembly/python.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
-  -->
-<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
-
-  <id>python</id>
-
-  <formats>
-    <format>zip</format>
-  </formats>
-
-  <includeBaseDirectory>false</includeBaseDirectory>
-
-  <fileSets>
-    <fileSet>
-      <directory>${project.build.directory}/thrift-${thrift.version}/lib/py/src</directory>
-      <includes>
-        <include>**</include>
-      </includes>
-      <excludes>
-        <exclude>ext/**</exclude>
-      </excludes>
-      <outputDirectory>thrift</outputDirectory>
-    </fileSet>
-  </fileSets>
-</assembly>
\ No newline at end of file