You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2022/05/24 09:42:52 UTC

[plc4x] branch develop updated: test(protocols): added a test which checks if the parser works

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

sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git


The following commit(s) were added to refs/heads/develop by this push:
     new d90d44c62e test(protocols): added a test which checks if the parser works
d90d44c62e is described below

commit d90d44c62ef3870bade6eb54ce8ab73b23ddd2a6
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Tue May 24 11:42:45 2022 +0200

    test(protocols): added a test which checks if the parser works
---
 .../plc4x/protocol/abeth/ABETHProtocolTest.java}   | 29 ++++++++------------
 .../plc4x/protocol/ads/ADSDiscoveryProtocol.java   |  2 --
 .../protocol/ads/ADSDiscoveryProtocolTest.java}    | 29 ++++++++------------
 .../plc4x/protocol/ads/ADSProtocolTest.java}       | 29 ++++++++------------
 .../plc4x/protocol/bacnetip/BacNetIpProtocol.java  |  9 -------
 .../bacnetip/src/main/script/getVendorIds.groovy   |  6 +++--
 .../protocol/bacnetip/BacNetIpProtocolTest.java}   | 30 ++++++++-------------
 .../apache/plc4x/protocol/cbus/CBusProtocol.java   |  2 --
 .../plc4x/protocol/cbus/CBusProtocolTest.java}     | 27 +++++++------------
 .../plc4x/protocol/canopen/CANOpenProtocol.java    |  2 --
 .../protocol/canopen/CANOpenProtocolTest.java}     | 29 ++++++++------------
 .../org/apache/plc4x/protocol/df1/Df1Protocol.java |  4 ---
 .../plc4x/protocol/df1/Df1ProtocolTest.java}       | 29 ++++++++------------
 .../org/apache/plc4x/protocol/eip/EipProtocol.java |  4 ---
 .../plc4x/protocol/eip/EipProtocolTest.java}       | 29 ++++++++------------
 .../plc4x/protocol/firmata/FirmataProtocol.java    |  4 ---
 .../protocol/firmata/FirmataProtocolTest.java}     | 31 +++++++++-------------
 .../protocol/genericcan/GenericCANProtocol.java    |  6 +----
 .../genericcan/GenericCANProtocolTest.java}        | 29 ++++++++------------
 .../plc4x/protocol/knxnetip/KnxNetIpProtocol.java  |  8 ------
 .../BaseKnxWebserviceContentProcessor.java         |  5 +++-
 .../protocol/knxnetip/KnxDefinitionsGenerator.java |  3 ++-
 .../protocol/knxnetip/KnxNetIpProtocolTest.java}   | 29 ++++++++------------
 .../plc4x/protocol/modbus/ModbusProtocol.java      |  4 ---
 .../plc4x/protocol/modbus/ModbusProtocolTest.java} | 29 ++++++++------------
 protocols/opcua/src/main/xslt/opc-manual.xsl       |  5 ----
 protocols/opcua/src/main/xslt/opc-services.xsl     |  9 +------
 protocols/opcua/src/main/xslt/opc-status.xsl       |  9 +------
 protocols/opcua/src/main/xslt/opc-types.xsl        |  6 +----
 .../plc4x/protocol/opcua/OpcuaProtocolTest.java}   | 29 ++++++++------------
 .../protocol/plc4x/v0/Plc4xProtocolTest.java}      | 29 ++++++++------------
 protocols/pom.xml                                  | 14 ++++++++++
 .../protocol/profinet/ProfinetProtocolTest.java}   | 29 ++++++++------------
 .../org/apache/plc4x/protocol/s7/S7Protocol.java   |  4 ---
 .../apache/plc4x/protocol/s7/S7ProtocolTest.java}  | 29 ++++++++------------
 .../protocol/simulated/SimulatedProtocolTest.java} | 29 ++++++++------------
 .../protocol/socketcan/SocketCANProtocol.java      |  4 ---
 .../protocol/socketcan/SocketCANProtocolTest.java} | 29 ++++++++------------
 38 files changed, 226 insertions(+), 407 deletions(-)

diff --git a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java b/protocols/ab-eth/src/test/java/org/apache/plc4x/protocol/abeth/ABETHProtocolTest.java
similarity index 50%
copy from protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
copy to protocols/ab-eth/src/test/java/org/apache/plc4x/protocol/abeth/ABETHProtocolTest.java
index 1f51c2d381..ea4c12d874 100644
--- a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
+++ b/protocols/ab-eth/src/test/java/org/apache/plc4x/protocol/abeth/ABETHProtocolTest.java
@@ -16,29 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.plc4x.protocol.cbus;
+package org.apache.plc4x.protocol.abeth;
 
-import org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageFormatParser;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHelpers;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
-import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.junit.jupiter.api.Test;
 
-import java.io.InputStream;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
-public class CBusProtocol implements Protocol, ProtocolHelpers {
+class ABETHProtocolTest {
 
-    @Override
-    public String getName() {
-        return "c-bus";
-    }
-
-    @Override
-    public TypeContext getTypeContext() throws GenerationException {
-        ValidatableTypeContext typeContext = new MessageFormatParser().parse(getMspecStream());
-        typeContext.validate();
-        return typeContext;
+    @Test
+    void getTypeContext() throws Exception {
+        TypeContext typeContext = new ABETHProtocol().getTypeContext();
+        assertNotNull(typeContext);
+        assertNotNull(typeContext.getUnresolvedTypeReferences());
+        assertSame(0, typeContext.getUnresolvedTypeReferences().size());
     }
 
 }
diff --git a/protocols/ads/src/main/java/org/apache/plc4x/protocol/ads/ADSDiscoveryProtocol.java b/protocols/ads/src/main/java/org/apache/plc4x/protocol/ads/ADSDiscoveryProtocol.java
index e39fa1be47..84d0e7c6ef 100644
--- a/protocols/ads/src/main/java/org/apache/plc4x/protocol/ads/ADSDiscoveryProtocol.java
+++ b/protocols/ads/src/main/java/org/apache/plc4x/protocol/ads/ADSDiscoveryProtocol.java
@@ -25,8 +25,6 @@ import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
 import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
 
-import java.io.InputStream;
-
 /**
  * Little helper protocol used to communicate over UDP with Beckhoff hardware.
  */
diff --git a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java b/protocols/ads/src/test/java/org/apache/plc4x/protocol/ads/ADSDiscoveryProtocolTest.java
similarity index 50%
copy from protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
copy to protocols/ads/src/test/java/org/apache/plc4x/protocol/ads/ADSDiscoveryProtocolTest.java
index 1f51c2d381..d9e103abcb 100644
--- a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
+++ b/protocols/ads/src/test/java/org/apache/plc4x/protocol/ads/ADSDiscoveryProtocolTest.java
@@ -16,29 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.plc4x.protocol.cbus;
+package org.apache.plc4x.protocol.ads;
 
-import org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageFormatParser;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHelpers;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
-import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.junit.jupiter.api.Test;
 
-import java.io.InputStream;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
-public class CBusProtocol implements Protocol, ProtocolHelpers {
+class ADSDiscoveryProtocolTest {
 
-    @Override
-    public String getName() {
-        return "c-bus";
-    }
-
-    @Override
-    public TypeContext getTypeContext() throws GenerationException {
-        ValidatableTypeContext typeContext = new MessageFormatParser().parse(getMspecStream());
-        typeContext.validate();
-        return typeContext;
+    @Test
+    void getTypeContext() throws Exception {
+        TypeContext typeContext = new ADSDiscoveryProtocol().getTypeContext();
+        assertNotNull(typeContext);
+        assertNotNull(typeContext.getUnresolvedTypeReferences());
+        assertSame(0, typeContext.getUnresolvedTypeReferences().size());
     }
 
 }
diff --git a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java b/protocols/ads/src/test/java/org/apache/plc4x/protocol/ads/ADSProtocolTest.java
similarity index 50%
copy from protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
copy to protocols/ads/src/test/java/org/apache/plc4x/protocol/ads/ADSProtocolTest.java
index 1f51c2d381..0181ec4b89 100644
--- a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
+++ b/protocols/ads/src/test/java/org/apache/plc4x/protocol/ads/ADSProtocolTest.java
@@ -16,29 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.plc4x.protocol.cbus;
+package org.apache.plc4x.protocol.ads;
 
-import org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageFormatParser;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHelpers;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
-import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.junit.jupiter.api.Test;
 
-import java.io.InputStream;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
-public class CBusProtocol implements Protocol, ProtocolHelpers {
+class ADSProtocolTest {
 
-    @Override
-    public String getName() {
-        return "c-bus";
-    }
-
-    @Override
-    public TypeContext getTypeContext() throws GenerationException {
-        ValidatableTypeContext typeContext = new MessageFormatParser().parse(getMspecStream());
-        typeContext.validate();
-        return typeContext;
+    @Test
+    void getTypeContext() throws Exception {
+        TypeContext typeContext = new ADSProtocol().getTypeContext();
+        assertNotNull(typeContext);
+        assertNotNull(typeContext.getUnresolvedTypeReferences());
+        assertSame(0, typeContext.getUnresolvedTypeReferences().size());
     }
 
 }
diff --git a/protocols/bacnetip/src/main/java/org/apache/plc4x/protocol/bacnetip/BacNetIpProtocol.java b/protocols/bacnetip/src/main/java/org/apache/plc4x/protocol/bacnetip/BacNetIpProtocol.java
index a9ed127207..cac9f9c79e 100644
--- a/protocols/bacnetip/src/main/java/org/apache/plc4x/protocol/bacnetip/BacNetIpProtocol.java
+++ b/protocols/bacnetip/src/main/java/org/apache/plc4x/protocol/bacnetip/BacNetIpProtocol.java
@@ -23,19 +23,10 @@ import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHe
 import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
 import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.definitions.ComplexTypeDefinition;
-import org.apache.plc4x.plugins.codegenerator.types.definitions.TypeDefinition;
 import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.InputStream;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.function.Consumer;
-
 public class BacNetIpProtocol implements Protocol, ProtocolHelpers {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(BacNetIpProtocol.class);
diff --git a/protocols/bacnetip/src/main/script/getVendorIds.groovy b/protocols/bacnetip/src/main/script/getVendorIds.groovy
index 4e5d1d1f6e..d4e2f4455f 100644
--- a/protocols/bacnetip/src/main/script/getVendorIds.groovy
+++ b/protocols/bacnetip/src/main/script/getVendorIds.groovy
@@ -16,10 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
+import groovy.text.SimpleTemplateEngine
+import org.jsoup.Jsoup
+
 import java.nio.file.Files
 import java.nio.file.StandardCopyOption
-import org.jsoup.Jsoup
-import groovy.text.SimpleTemplateEngine
 
 // Make sure the cache directory exists in the used maven local repo
 def localRepoBaseDir = session.getLocalRepository().getBasedir()
diff --git a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java b/protocols/bacnetip/src/test/java/org/apache/plc4x/protocol/bacnetip/BacNetIpProtocolTest.java
similarity index 50%
copy from protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
copy to protocols/bacnetip/src/test/java/org/apache/plc4x/protocol/bacnetip/BacNetIpProtocolTest.java
index 1f51c2d381..0d5b9ed771 100644
--- a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
+++ b/protocols/bacnetip/src/test/java/org/apache/plc4x/protocol/bacnetip/BacNetIpProtocolTest.java
@@ -16,29 +16,21 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.plc4x.protocol.cbus;
+package org.apache.plc4x.protocol.bacnetip;
 
-import org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageFormatParser;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHelpers;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
-import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.junit.jupiter.api.Test;
 
-import java.io.InputStream;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
-public class CBusProtocol implements Protocol, ProtocolHelpers {
+class BacNetIpProtocolTest {
 
-    @Override
-    public String getName() {
-        return "c-bus";
+    @Test
+    void getTypeContext() throws Exception {
+        TypeContext typeContext = new BacNetIpProtocol().getTypeContext();
+        assertNotNull(typeContext);
+        assertNotNull(typeContext.getUnresolvedTypeReferences());
+        assertSame(0, typeContext.getUnresolvedTypeReferences().size());
     }
-
-    @Override
-    public TypeContext getTypeContext() throws GenerationException {
-        ValidatableTypeContext typeContext = new MessageFormatParser().parse(getMspecStream());
-        typeContext.validate();
-        return typeContext;
-    }
-
 }
diff --git a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java b/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
index 1f51c2d381..1fead99d0c 100644
--- a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
+++ b/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
@@ -25,8 +25,6 @@ import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
 import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
 
-import java.io.InputStream;
-
 public class CBusProtocol implements Protocol, ProtocolHelpers {
 
     @Override
diff --git a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java b/protocols/c-bus/src/test/java/org/apache/plc4x/protocol/cbus/CBusProtocolTest.java
similarity index 52%
copy from protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
copy to protocols/c-bus/src/test/java/org/apache/plc4x/protocol/cbus/CBusProtocolTest.java
index 1f51c2d381..9c21bca348 100644
--- a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
+++ b/protocols/c-bus/src/test/java/org/apache/plc4x/protocol/cbus/CBusProtocolTest.java
@@ -18,27 +18,20 @@
  */
 package org.apache.plc4x.protocol.cbus;
 
-import org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageFormatParser;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHelpers;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
-import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.junit.jupiter.api.Test;
 
-import java.io.InputStream;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
-public class CBusProtocol implements Protocol, ProtocolHelpers {
+class CBusProtocolTest {
 
-    @Override
-    public String getName() {
-        return "c-bus";
-    }
-
-    @Override
-    public TypeContext getTypeContext() throws GenerationException {
-        ValidatableTypeContext typeContext = new MessageFormatParser().parse(getMspecStream());
-        typeContext.validate();
-        return typeContext;
+    @Test
+    void getTypeContext() throws Exception {
+        TypeContext typeContext = new CBusProtocol().getTypeContext();
+        assertNotNull(typeContext);
+        assertNotNull(typeContext.getUnresolvedTypeReferences());
+        assertSame(0, typeContext.getUnresolvedTypeReferences().size());
     }
 
 }
diff --git a/protocols/canopen/src/main/java/org/apache/plc4x/protocol/canopen/CANOpenProtocol.java b/protocols/canopen/src/main/java/org/apache/plc4x/protocol/canopen/CANOpenProtocol.java
index 600ed3abfd..71d3992d48 100644
--- a/protocols/canopen/src/main/java/org/apache/plc4x/protocol/canopen/CANOpenProtocol.java
+++ b/protocols/canopen/src/main/java/org/apache/plc4x/protocol/canopen/CANOpenProtocol.java
@@ -25,8 +25,6 @@ import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
 import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
 
-import java.io.InputStream;
-
 public class CANOpenProtocol implements Protocol, ProtocolHelpers {
 
     @Override
diff --git a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java b/protocols/canopen/src/test/java/org/apache/plc4x/protocol/canopen/CANOpenProtocolTest.java
similarity index 50%
copy from protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
copy to protocols/canopen/src/test/java/org/apache/plc4x/protocol/canopen/CANOpenProtocolTest.java
index 1f51c2d381..a5c35ccc9d 100644
--- a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
+++ b/protocols/canopen/src/test/java/org/apache/plc4x/protocol/canopen/CANOpenProtocolTest.java
@@ -16,29 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.plc4x.protocol.cbus;
+package org.apache.plc4x.protocol.canopen;
 
-import org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageFormatParser;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHelpers;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
-import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.junit.jupiter.api.Test;
 
-import java.io.InputStream;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
-public class CBusProtocol implements Protocol, ProtocolHelpers {
+class CANOpenProtocolTest {
 
-    @Override
-    public String getName() {
-        return "c-bus";
-    }
-
-    @Override
-    public TypeContext getTypeContext() throws GenerationException {
-        ValidatableTypeContext typeContext = new MessageFormatParser().parse(getMspecStream());
-        typeContext.validate();
-        return typeContext;
+    @Test
+    void getTypeContext() throws Exception {
+        TypeContext typeContext = new CANOpenProtocol().getTypeContext();
+        assertNotNull(typeContext);
+        assertNotNull(typeContext.getUnresolvedTypeReferences());
+        assertSame(0, typeContext.getUnresolvedTypeReferences().size());
     }
 
 }
diff --git a/protocols/df1/src/main/java/org/apache/plc4x/protocol/df1/Df1Protocol.java b/protocols/df1/src/main/java/org/apache/plc4x/protocol/df1/Df1Protocol.java
index 4f669466c5..5700bfe566 100644
--- a/protocols/df1/src/main/java/org/apache/plc4x/protocol/df1/Df1Protocol.java
+++ b/protocols/df1/src/main/java/org/apache/plc4x/protocol/df1/Df1Protocol.java
@@ -23,12 +23,8 @@ import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHe
 import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
 import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.definitions.TypeDefinition;
 import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
 
-import java.io.InputStream;
-import java.util.Map;
-
 public class Df1Protocol implements Protocol, ProtocolHelpers {
 
     @Override
diff --git a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java b/protocols/df1/src/test/java/org/apache/plc4x/protocol/df1/Df1ProtocolTest.java
similarity index 50%
copy from protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
copy to protocols/df1/src/test/java/org/apache/plc4x/protocol/df1/Df1ProtocolTest.java
index 1f51c2d381..50f698228c 100644
--- a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
+++ b/protocols/df1/src/test/java/org/apache/plc4x/protocol/df1/Df1ProtocolTest.java
@@ -16,29 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.plc4x.protocol.cbus;
+package org.apache.plc4x.protocol.df1;
 
-import org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageFormatParser;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHelpers;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
-import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.junit.jupiter.api.Test;
 
-import java.io.InputStream;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
-public class CBusProtocol implements Protocol, ProtocolHelpers {
+class Df1ProtocolTest {
 
-    @Override
-    public String getName() {
-        return "c-bus";
-    }
-
-    @Override
-    public TypeContext getTypeContext() throws GenerationException {
-        ValidatableTypeContext typeContext = new MessageFormatParser().parse(getMspecStream());
-        typeContext.validate();
-        return typeContext;
+    @Test
+    void getTypeContext() throws Exception {
+        TypeContext typeContext = new Df1Protocol().getTypeContext();
+        assertNotNull(typeContext);
+        assertNotNull(typeContext.getUnresolvedTypeReferences());
+        assertSame(0, typeContext.getUnresolvedTypeReferences().size());
     }
 
 }
diff --git a/protocols/eip/src/main/java/org/apache/plc4x/protocol/eip/EipProtocol.java b/protocols/eip/src/main/java/org/apache/plc4x/protocol/eip/EipProtocol.java
index 9529f96b80..6593790b3c 100644
--- a/protocols/eip/src/main/java/org/apache/plc4x/protocol/eip/EipProtocol.java
+++ b/protocols/eip/src/main/java/org/apache/plc4x/protocol/eip/EipProtocol.java
@@ -23,12 +23,8 @@ import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHe
 import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
 import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.definitions.TypeDefinition;
 import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
 
-import java.io.InputStream;
-import java.util.Map;
-
 public class EipProtocol implements Protocol, ProtocolHelpers {
 
     @Override
diff --git a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java b/protocols/eip/src/test/java/org/apache/plc4x/protocol/eip/EipProtocolTest.java
similarity index 50%
copy from protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
copy to protocols/eip/src/test/java/org/apache/plc4x/protocol/eip/EipProtocolTest.java
index 1f51c2d381..95f6ebca41 100644
--- a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
+++ b/protocols/eip/src/test/java/org/apache/plc4x/protocol/eip/EipProtocolTest.java
@@ -16,29 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.plc4x.protocol.cbus;
+package org.apache.plc4x.protocol.eip;
 
-import org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageFormatParser;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHelpers;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
-import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.junit.jupiter.api.Test;
 
-import java.io.InputStream;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
-public class CBusProtocol implements Protocol, ProtocolHelpers {
+class EipProtocolTest {
 
-    @Override
-    public String getName() {
-        return "c-bus";
-    }
-
-    @Override
-    public TypeContext getTypeContext() throws GenerationException {
-        ValidatableTypeContext typeContext = new MessageFormatParser().parse(getMspecStream());
-        typeContext.validate();
-        return typeContext;
+    @Test
+    void getTypeContext() throws Exception {
+        TypeContext typeContext = new EipProtocol().getTypeContext();
+        assertNotNull(typeContext);
+        assertNotNull(typeContext.getUnresolvedTypeReferences());
+        assertSame(0, typeContext.getUnresolvedTypeReferences().size());
     }
 
 }
diff --git a/protocols/firmata/src/main/java/org/apache/plc4x/protocol/firmata/FirmataProtocol.java b/protocols/firmata/src/main/java/org/apache/plc4x/protocol/firmata/FirmataProtocol.java
index ee95dfa938..892caf8808 100644
--- a/protocols/firmata/src/main/java/org/apache/plc4x/protocol/firmata/FirmataProtocol.java
+++ b/protocols/firmata/src/main/java/org/apache/plc4x/protocol/firmata/FirmataProtocol.java
@@ -23,12 +23,8 @@ import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHe
 import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
 import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.definitions.TypeDefinition;
 import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
 
-import java.io.InputStream;
-import java.util.Map;
-
 public class FirmataProtocol implements Protocol, ProtocolHelpers {
 
     @Override
diff --git a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java b/protocols/firmata/src/test/java/org/apache/plc4x/protocol/firmata/FirmataProtocolTest.java
similarity index 50%
copy from protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
copy to protocols/firmata/src/test/java/org/apache/plc4x/protocol/firmata/FirmataProtocolTest.java
index 1f51c2d381..8de913e00d 100644
--- a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
+++ b/protocols/firmata/src/test/java/org/apache/plc4x/protocol/firmata/FirmataProtocolTest.java
@@ -16,29 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.plc4x.protocol.cbus;
+package org.apache.plc4x.protocol.firmata;
 
-import org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageFormatParser;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHelpers;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
-import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.junit.jupiter.api.Test;
 
-import java.io.InputStream;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
-public class CBusProtocol implements Protocol, ProtocolHelpers {
+class FirmataProtocolTest {
 
-    @Override
-    public String getName() {
-        return "c-bus";
+    @Test
+    void getTypeContext() throws Exception {
+        TypeContext typeContext = new FirmataProtocol().getTypeContext();
+        assertNotNull(typeContext);
+        assertNotNull(typeContext.getUnresolvedTypeReferences());
+        assertSame(0, typeContext.getUnresolvedTypeReferences().size());
     }
 
-    @Override
-    public TypeContext getTypeContext() throws GenerationException {
-        ValidatableTypeContext typeContext = new MessageFormatParser().parse(getMspecStream());
-        typeContext.validate();
-        return typeContext;
-    }
-
-}
+}
\ No newline at end of file
diff --git a/protocols/genericcan/src/main/java/org/apache/plc4x/protocol/genericcan/GenericCANProtocol.java b/protocols/genericcan/src/main/java/org/apache/plc4x/protocol/genericcan/GenericCANProtocol.java
index ef2400bc09..6bd9388259 100644
--- a/protocols/genericcan/src/main/java/org/apache/plc4x/protocol/genericcan/GenericCANProtocol.java
+++ b/protocols/genericcan/src/main/java/org/apache/plc4x/protocol/genericcan/GenericCANProtocol.java
@@ -23,12 +23,8 @@ import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHe
 import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
 import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.definitions.TypeDefinition;
 import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
 
-import java.io.InputStream;
-import java.util.Map;
-
 public class GenericCANProtocol implements Protocol, ProtocolHelpers {
 
     @Override
@@ -43,9 +39,9 @@ public class GenericCANProtocol implements Protocol, ProtocolHelpers {
         return typeContext;
     }
 
-
     @Override
     public String getPackageName() {
         return "can";
     }
+
 }
diff --git a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java b/protocols/genericcan/src/test/java/org/apache/plc4x/protocol/genericcan/GenericCANProtocolTest.java
similarity index 50%
copy from protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
copy to protocols/genericcan/src/test/java/org/apache/plc4x/protocol/genericcan/GenericCANProtocolTest.java
index 1f51c2d381..173611ce1a 100644
--- a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
+++ b/protocols/genericcan/src/test/java/org/apache/plc4x/protocol/genericcan/GenericCANProtocolTest.java
@@ -16,29 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.plc4x.protocol.cbus;
+package org.apache.plc4x.protocol.genericcan;
 
-import org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageFormatParser;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHelpers;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
-import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.junit.jupiter.api.Test;
 
-import java.io.InputStream;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
-public class CBusProtocol implements Protocol, ProtocolHelpers {
+class GenericCANProtocolTest {
 
-    @Override
-    public String getName() {
-        return "c-bus";
-    }
-
-    @Override
-    public TypeContext getTypeContext() throws GenerationException {
-        ValidatableTypeContext typeContext = new MessageFormatParser().parse(getMspecStream());
-        typeContext.validate();
-        return typeContext;
+    @Test
+    void getTypeContext() throws Exception {
+        TypeContext typeContext = new GenericCANProtocol().getTypeContext();
+        assertNotNull(typeContext);
+        assertNotNull(typeContext.getUnresolvedTypeReferences());
+        assertSame(0, typeContext.getUnresolvedTypeReferences().size());
     }
 
 }
diff --git a/protocols/knxnetip/src/main/java/org/apache/plc4x/protocol/knxnetip/KnxNetIpProtocol.java b/protocols/knxnetip/src/main/java/org/apache/plc4x/protocol/knxnetip/KnxNetIpProtocol.java
index 0676e1f1fc..805782b10c 100644
--- a/protocols/knxnetip/src/main/java/org/apache/plc4x/protocol/knxnetip/KnxNetIpProtocol.java
+++ b/protocols/knxnetip/src/main/java/org/apache/plc4x/protocol/knxnetip/KnxNetIpProtocol.java
@@ -23,18 +23,10 @@ import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHe
 import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
 import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.definitions.TypeDefinition;
 import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.InputStream;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.function.Consumer;
-
 public class KnxNetIpProtocol implements Protocol, ProtocolHelpers {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(KnxNetIpProtocol.class);
diff --git a/protocols/knxnetip/src/test/java/org/apache/plc4x/protocol/knxnetip/BaseKnxWebserviceContentProcessor.java b/protocols/knxnetip/src/test/java/org/apache/plc4x/protocol/knxnetip/BaseKnxWebserviceContentProcessor.java
index 76a1663bca..42d20ff4d7 100644
--- a/protocols/knxnetip/src/test/java/org/apache/plc4x/protocol/knxnetip/BaseKnxWebserviceContentProcessor.java
+++ b/protocols/knxnetip/src/test/java/org/apache/plc4x/protocol/knxnetip/BaseKnxWebserviceContentProcessor.java
@@ -22,10 +22,13 @@ import org.apache.commons.io.FileUtils;
 import org.apache.plc4x.protocol.knxnetip.handlers.ManufacturerIdsHandler;
 import org.json.JSONArray;
 import org.json.JSONObject;
+
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
 import java.io.File;
-import java.util.*;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 
 /**
  * Base helper that crawls over all xml descriptions found in the local storage.
diff --git a/protocols/knxnetip/src/test/java/org/apache/plc4x/protocol/knxnetip/KnxDefinitionsGenerator.java b/protocols/knxnetip/src/test/java/org/apache/plc4x/protocol/knxnetip/KnxDefinitionsGenerator.java
index 310f58d2f7..25ad9f1b04 100644
--- a/protocols/knxnetip/src/test/java/org/apache/plc4x/protocol/knxnetip/KnxDefinitionsGenerator.java
+++ b/protocols/knxnetip/src/test/java/org/apache/plc4x/protocol/knxnetip/KnxDefinitionsGenerator.java
@@ -23,7 +23,8 @@ import org.apache.plc4x.protocol.knxnetip.handlers.ProductDescriptionHandler;
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
 import java.io.File;
-import java.util.*;
+import java.util.HashSet;
+import java.util.Set;
 
 public class KnxDefinitionsGenerator extends BaseKnxWebserviceContentProcessor {
 
diff --git a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java b/protocols/knxnetip/src/test/java/org/apache/plc4x/protocol/knxnetip/KnxNetIpProtocolTest.java
similarity index 50%
copy from protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
copy to protocols/knxnetip/src/test/java/org/apache/plc4x/protocol/knxnetip/KnxNetIpProtocolTest.java
index 1f51c2d381..d0466e6e16 100644
--- a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
+++ b/protocols/knxnetip/src/test/java/org/apache/plc4x/protocol/knxnetip/KnxNetIpProtocolTest.java
@@ -16,29 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.plc4x.protocol.cbus;
+package org.apache.plc4x.protocol.knxnetip;
 
-import org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageFormatParser;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHelpers;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
-import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.junit.jupiter.api.Test;
 
-import java.io.InputStream;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
-public class CBusProtocol implements Protocol, ProtocolHelpers {
+class KnxNetIpProtocolTest {
 
-    @Override
-    public String getName() {
-        return "c-bus";
-    }
-
-    @Override
-    public TypeContext getTypeContext() throws GenerationException {
-        ValidatableTypeContext typeContext = new MessageFormatParser().parse(getMspecStream());
-        typeContext.validate();
-        return typeContext;
+    @Test
+    void getTypeContext() throws Exception {
+        TypeContext typeContext = new KnxNetIpProtocol().getTypeContext();
+        assertNotNull(typeContext);
+        assertNotNull(typeContext.getUnresolvedTypeReferences());
+        assertSame(0, typeContext.getUnresolvedTypeReferences().size());
     }
 
 }
diff --git a/protocols/modbus/src/main/java/org/apache/plc4x/protocol/modbus/ModbusProtocol.java b/protocols/modbus/src/main/java/org/apache/plc4x/protocol/modbus/ModbusProtocol.java
index 7b7c6d118b..174bd73c14 100644
--- a/protocols/modbus/src/main/java/org/apache/plc4x/protocol/modbus/ModbusProtocol.java
+++ b/protocols/modbus/src/main/java/org/apache/plc4x/protocol/modbus/ModbusProtocol.java
@@ -23,12 +23,8 @@ import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHe
 import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
 import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.definitions.TypeDefinition;
 import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
 
-import java.io.InputStream;
-import java.util.Map;
-
 public class ModbusProtocol implements Protocol, ProtocolHelpers {
 
     @Override
diff --git a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java b/protocols/modbus/src/test/java/org/apache/plc4x/protocol/modbus/ModbusProtocolTest.java
similarity index 50%
copy from protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
copy to protocols/modbus/src/test/java/org/apache/plc4x/protocol/modbus/ModbusProtocolTest.java
index 1f51c2d381..881639745d 100644
--- a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
+++ b/protocols/modbus/src/test/java/org/apache/plc4x/protocol/modbus/ModbusProtocolTest.java
@@ -16,29 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.plc4x.protocol.cbus;
+package org.apache.plc4x.protocol.modbus;
 
-import org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageFormatParser;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHelpers;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
-import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.junit.jupiter.api.Test;
 
-import java.io.InputStream;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
-public class CBusProtocol implements Protocol, ProtocolHelpers {
+class ModbusProtocolTest {
 
-    @Override
-    public String getName() {
-        return "c-bus";
-    }
-
-    @Override
-    public TypeContext getTypeContext() throws GenerationException {
-        ValidatableTypeContext typeContext = new MessageFormatParser().parse(getMspecStream());
-        typeContext.validate();
-        return typeContext;
+    @Test
+    void getTypeContext() throws Exception {
+        TypeContext typeContext = new ModbusProtocol().getTypeContext();
+        assertNotNull(typeContext);
+        assertNotNull(typeContext.getUnresolvedTypeReferences());
+        assertSame(0, typeContext.getUnresolvedTypeReferences().size());
     }
 
 }
diff --git a/protocols/opcua/src/main/xslt/opc-manual.xsl b/protocols/opcua/src/main/xslt/opc-manual.xsl
index e5f1d3aced..143d303248 100644
--- a/protocols/opcua/src/main/xslt/opc-manual.xsl
+++ b/protocols/opcua/src/main/xslt/opc-manual.xsl
@@ -19,13 +19,8 @@
 -->
 <xsl:stylesheet version="2.0"
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                 xmlns:opc="http://opcfoundation.org/BinarySchema/"
-                xmlns:plc4x="https://plc4x.apache.org/"
-                xmlns:map="http://www.w3.org/2005/xpath-functions/map"
-                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xmlns:ua="http://opcfoundation.org/UA/"
-                xmlns:tns="http://opcfoundation.org/UA/"
                 xmlns:node="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd">
 
     <xsl:output
diff --git a/protocols/opcua/src/main/xslt/opc-services.xsl b/protocols/opcua/src/main/xslt/opc-services.xsl
index 3900cd4bd8..6edffe6394 100644
--- a/protocols/opcua/src/main/xslt/opc-services.xsl
+++ b/protocols/opcua/src/main/xslt/opc-services.xsl
@@ -19,14 +19,7 @@
 -->
 <xsl:stylesheet version="2.0"
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:xs="http://www.w3.org/2001/XMLSchema"
-                xmlns:opc="http://opcfoundation.org/BinarySchema/"
-                xmlns:plc4x="https://plc4x.apache.org/"
-                xmlns:map="http://www.w3.org/2005/xpath-functions/map"
-                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                xmlns:ua="http://opcfoundation.org/UA/"
-                xmlns:tns="http://opcfoundation.org/UA/"
-                xmlns:node="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd">
+>
 
     <xsl:output
         method="text"
diff --git a/protocols/opcua/src/main/xslt/opc-status.xsl b/protocols/opcua/src/main/xslt/opc-status.xsl
index 79058fcd2b..6aedd77a69 100644
--- a/protocols/opcua/src/main/xslt/opc-status.xsl
+++ b/protocols/opcua/src/main/xslt/opc-status.xsl
@@ -19,14 +19,7 @@
 -->
 <xsl:stylesheet version="2.0"
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:xs="http://www.w3.org/2001/XMLSchema"
-                xmlns:opc="http://opcfoundation.org/BinarySchema/"
-                xmlns:plc4x="https://plc4x.apache.org/"
-                xmlns:map="http://www.w3.org/2005/xpath-functions/map"
-                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                xmlns:ua="http://opcfoundation.org/UA/"
-                xmlns:tns="http://opcfoundation.org/UA/"
-                xmlns:node="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd">
+>
 
     <xsl:output
         method="text"
diff --git a/protocols/opcua/src/main/xslt/opc-types.xsl b/protocols/opcua/src/main/xslt/opc-types.xsl
index 46c3f21114..c60d8086a9 100644
--- a/protocols/opcua/src/main/xslt/opc-types.xsl
+++ b/protocols/opcua/src/main/xslt/opc-types.xsl
@@ -21,12 +21,8 @@
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                 xmlns:xs="http://www.w3.org/2001/XMLSchema"
                 xmlns:opc="http://opcfoundation.org/BinarySchema/"
-                xmlns:plc4x="https://plc4x.apache.org/"
-                xmlns:map="http://www.w3.org/2005/xpath-functions/map"
-                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xmlns:ua="http://opcfoundation.org/UA/"
-                xmlns:tns="http://opcfoundation.org/UA/"
-                xmlns:node="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd">
+>
 
     <xsl:output
         method="text"
diff --git a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java b/protocols/opcua/src/test/java/org/apache/plc4x/protocol/opcua/OpcuaProtocolTest.java
similarity index 50%
copy from protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
copy to protocols/opcua/src/test/java/org/apache/plc4x/protocol/opcua/OpcuaProtocolTest.java
index 1f51c2d381..3551486764 100644
--- a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
+++ b/protocols/opcua/src/test/java/org/apache/plc4x/protocol/opcua/OpcuaProtocolTest.java
@@ -16,29 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.plc4x.protocol.cbus;
+package org.apache.plc4x.protocol.opcua;
 
-import org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageFormatParser;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHelpers;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
-import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.junit.jupiter.api.Test;
 
-import java.io.InputStream;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
-public class CBusProtocol implements Protocol, ProtocolHelpers {
+class OpcuaProtocolTest {
 
-    @Override
-    public String getName() {
-        return "c-bus";
-    }
-
-    @Override
-    public TypeContext getTypeContext() throws GenerationException {
-        ValidatableTypeContext typeContext = new MessageFormatParser().parse(getMspecStream());
-        typeContext.validate();
-        return typeContext;
+    @Test
+    void getTypeContext() throws Exception {
+        TypeContext typeContext = new OpcuaProtocol().getTypeContext();
+        assertNotNull(typeContext);
+        assertNotNull(typeContext.getUnresolvedTypeReferences());
+        assertSame(0, typeContext.getUnresolvedTypeReferences().size());
     }
 
 }
diff --git a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java b/protocols/plc4x/src/test/java/org/apache/plc4x/protocol/plc4x/v0/Plc4xProtocolTest.java
similarity index 50%
copy from protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
copy to protocols/plc4x/src/test/java/org/apache/plc4x/protocol/plc4x/v0/Plc4xProtocolTest.java
index 1f51c2d381..f97221fa13 100644
--- a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
+++ b/protocols/plc4x/src/test/java/org/apache/plc4x/protocol/plc4x/v0/Plc4xProtocolTest.java
@@ -16,29 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.plc4x.protocol.cbus;
+package org.apache.plc4x.protocol.plc4x.v0;
 
-import org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageFormatParser;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHelpers;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
-import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.junit.jupiter.api.Test;
 
-import java.io.InputStream;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
-public class CBusProtocol implements Protocol, ProtocolHelpers {
+class Plc4xProtocolTest {
 
-    @Override
-    public String getName() {
-        return "c-bus";
-    }
-
-    @Override
-    public TypeContext getTypeContext() throws GenerationException {
-        ValidatableTypeContext typeContext = new MessageFormatParser().parse(getMspecStream());
-        typeContext.validate();
-        return typeContext;
+    @Test
+    void getTypeContext() throws Exception {
+        TypeContext typeContext = new Plc4xProtocol().getTypeContext();
+        assertNotNull(typeContext);
+        assertNotNull(typeContext.getUnresolvedTypeReferences());
+        assertSame(0, typeContext.getUnresolvedTypeReferences().size());
     }
 
 }
diff --git a/protocols/pom.xml b/protocols/pom.xml
index f78537463b..62e70031b2 100644
--- a/protocols/pom.xml
+++ b/protocols/pom.xml
@@ -204,4 +204,18 @@
     </plugins>
   </build>
 
+  <dependencies>
+    <!-- JUnit 5 Support -->
+    <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>
+
 </project>
diff --git a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java b/protocols/profinet/src/test/java/org/apache/plc4x/protocol/profinet/ProfinetProtocolTest.java
similarity index 50%
copy from protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
copy to protocols/profinet/src/test/java/org/apache/plc4x/protocol/profinet/ProfinetProtocolTest.java
index 1f51c2d381..b84fd786c7 100644
--- a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
+++ b/protocols/profinet/src/test/java/org/apache/plc4x/protocol/profinet/ProfinetProtocolTest.java
@@ -16,29 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.plc4x.protocol.cbus;
+package org.apache.plc4x.protocol.profinet;
 
-import org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageFormatParser;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHelpers;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
-import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.junit.jupiter.api.Test;
 
-import java.io.InputStream;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
-public class CBusProtocol implements Protocol, ProtocolHelpers {
+class ProfinetProtocolTest {
 
-    @Override
-    public String getName() {
-        return "c-bus";
-    }
-
-    @Override
-    public TypeContext getTypeContext() throws GenerationException {
-        ValidatableTypeContext typeContext = new MessageFormatParser().parse(getMspecStream());
-        typeContext.validate();
-        return typeContext;
+    @Test
+    void getTypeContext() throws Exception {
+        TypeContext typeContext = new ProfinetProtocol().getTypeContext();
+        assertNotNull(typeContext);
+        assertNotNull(typeContext.getUnresolvedTypeReferences());
+        assertSame(0, typeContext.getUnresolvedTypeReferences().size());
     }
 
 }
diff --git a/protocols/s7/src/main/java/org/apache/plc4x/protocol/s7/S7Protocol.java b/protocols/s7/src/main/java/org/apache/plc4x/protocol/s7/S7Protocol.java
index b1a1e9f497..f79caa7ab4 100644
--- a/protocols/s7/src/main/java/org/apache/plc4x/protocol/s7/S7Protocol.java
+++ b/protocols/s7/src/main/java/org/apache/plc4x/protocol/s7/S7Protocol.java
@@ -23,12 +23,8 @@ import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHe
 import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
 import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.definitions.TypeDefinition;
 import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
 
-import java.io.InputStream;
-import java.util.Map;
-
 public class S7Protocol implements Protocol, ProtocolHelpers {
 
     @Override
diff --git a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java b/protocols/s7/src/test/java/org/apache/plc4x/protocol/s7/S7ProtocolTest.java
similarity index 50%
copy from protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
copy to protocols/s7/src/test/java/org/apache/plc4x/protocol/s7/S7ProtocolTest.java
index 1f51c2d381..03fa5224ab 100644
--- a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
+++ b/protocols/s7/src/test/java/org/apache/plc4x/protocol/s7/S7ProtocolTest.java
@@ -16,29 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.plc4x.protocol.cbus;
+package org.apache.plc4x.protocol.s7;
 
-import org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageFormatParser;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHelpers;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
-import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.junit.jupiter.api.Test;
 
-import java.io.InputStream;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
-public class CBusProtocol implements Protocol, ProtocolHelpers {
+class S7ProtocolTest {
 
-    @Override
-    public String getName() {
-        return "c-bus";
-    }
-
-    @Override
-    public TypeContext getTypeContext() throws GenerationException {
-        ValidatableTypeContext typeContext = new MessageFormatParser().parse(getMspecStream());
-        typeContext.validate();
-        return typeContext;
+    @Test
+    void getTypeContext() throws Exception {
+        TypeContext typeContext = new S7Protocol().getTypeContext();
+        assertNotNull(typeContext);
+        assertNotNull(typeContext.getUnresolvedTypeReferences());
+        assertSame(0, typeContext.getUnresolvedTypeReferences().size());
     }
 
 }
diff --git a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java b/protocols/simulated/src/test/java/org/apache/plc4x/protocol/simulated/SimulatedProtocolTest.java
similarity index 50%
copy from protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
copy to protocols/simulated/src/test/java/org/apache/plc4x/protocol/simulated/SimulatedProtocolTest.java
index 1f51c2d381..783698817b 100644
--- a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
+++ b/protocols/simulated/src/test/java/org/apache/plc4x/protocol/simulated/SimulatedProtocolTest.java
@@ -16,29 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.plc4x.protocol.cbus;
+package org.apache.plc4x.protocol.simulated;
 
-import org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageFormatParser;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHelpers;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
-import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.junit.jupiter.api.Test;
 
-import java.io.InputStream;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
-public class CBusProtocol implements Protocol, ProtocolHelpers {
+class SimulatedProtocolTest {
 
-    @Override
-    public String getName() {
-        return "c-bus";
-    }
-
-    @Override
-    public TypeContext getTypeContext() throws GenerationException {
-        ValidatableTypeContext typeContext = new MessageFormatParser().parse(getMspecStream());
-        typeContext.validate();
-        return typeContext;
+    @Test
+    void getTypeContext() throws Exception {
+        TypeContext typeContext = new SimulatedProtocol().getTypeContext();
+        assertNotNull(typeContext);
+        assertNotNull(typeContext.getUnresolvedTypeReferences());
+        assertSame(0, typeContext.getUnresolvedTypeReferences().size());
     }
 
 }
diff --git a/protocols/socketcan/src/main/java/org/apache/plc4x/protocol/socketcan/SocketCANProtocol.java b/protocols/socketcan/src/main/java/org/apache/plc4x/protocol/socketcan/SocketCANProtocol.java
index 3e3727d05a..27f0652eba 100644
--- a/protocols/socketcan/src/main/java/org/apache/plc4x/protocol/socketcan/SocketCANProtocol.java
+++ b/protocols/socketcan/src/main/java/org/apache/plc4x/protocol/socketcan/SocketCANProtocol.java
@@ -24,12 +24,8 @@ import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHe
 import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
 import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.definitions.TypeDefinition;
 import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
 
-import java.io.InputStream;
-import java.util.Map;
-
 public class SocketCANProtocol implements Protocol, ProtocolHelpers {
 
     @Override
diff --git a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java b/protocols/socketcan/src/test/java/org/apache/plc4x/protocol/socketcan/SocketCANProtocolTest.java
similarity index 50%
copy from protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
copy to protocols/socketcan/src/test/java/org/apache/plc4x/protocol/socketcan/SocketCANProtocolTest.java
index 1f51c2d381..78b15d6cc2 100644
--- a/protocols/c-bus/src/main/java/org/apache/plc4x/protocol/cbus/CBusProtocol.java
+++ b/protocols/socketcan/src/test/java/org/apache/plc4x/protocol/socketcan/SocketCANProtocolTest.java
@@ -16,29 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.plc4x.protocol.cbus;
+package org.apache.plc4x.protocol.socketcan;
 
-import org.apache.plc4x.plugins.codegenerator.language.mspec.parser.MessageFormatParser;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ProtocolHelpers;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.protocol.ValidatableTypeContext;
-import org.apache.plc4x.plugins.codegenerator.protocol.Protocol;
 import org.apache.plc4x.plugins.codegenerator.protocol.TypeContext;
-import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+import org.junit.jupiter.api.Test;
 
-import java.io.InputStream;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
-public class CBusProtocol implements Protocol, ProtocolHelpers {
+class SocketCANProtocolTest {
 
-    @Override
-    public String getName() {
-        return "c-bus";
-    }
-
-    @Override
-    public TypeContext getTypeContext() throws GenerationException {
-        ValidatableTypeContext typeContext = new MessageFormatParser().parse(getMspecStream());
-        typeContext.validate();
-        return typeContext;
+    @Test
+    void getTypeContext() throws Exception {
+        TypeContext typeContext = new SocketCANProtocol().getTypeContext();
+        assertNotNull(typeContext);
+        assertNotNull(typeContext.getUnresolvedTypeReferences());
+        assertSame(0, typeContext.getUnresolvedTypeReferences().size());
     }
 
 }