This is an automated email from the ASF dual-hosted git repository.
git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/plc4x-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 0c51ae4 Site checkin for project PLC4X: Jenkins Tools
0c51ae4 is described below
commit 0c51ae43c0681fd1941d5bf191d8830d6022d919
Author: jenkins <[email protected]>
AuthorDate: Wed Jun 19 15:48:15 2019 +0000
Site checkin for project PLC4X: Jenkins Tools
---
developers/code-generation.html | 340 ++++++++++++++++++++-
images/code-generation-intro-s7-java.png | Bin 0 -> 14664 bytes
images/code-generation-intro.png | Bin 0 -> 8362 bytes
.../plc4x-protocols-knxnet-ip/dependencies.html | 10 +-
.../plc4x-protocols-plc4x/dependency-info.html | 14 +-
.../dependency-management.html | 150 +++++----
.../plc4x-protocols-plc4x/plugin-management.html | 70 +++--
plc4x-protocols/plc4x-protocols-plc4x/plugins.html | 33 +-
plc4x-protocols/plc4x-protocols-plc4x/summary.html | 2 +-
.../plc4x-protocols-s7/dependencies.html | 12 +-
10 files changed, 516 insertions(+), 115 deletions(-)
diff --git a/developers/code-generation.html b/developers/code-generation.html
index d2e0748..fcfec57 100644
--- a/developers/code-generation.html
+++ b/developers/code-generation.html
@@ -170,7 +170,35 @@
</div> <!-- .navbar-header -->
<div class="collapse navbar-collapse" id="toc-nav-collapse">
<ul id="toc" class="nav navbar-nav">
- <li class="toplevel"><a
href="#_toc_code_generation1" title="Code Generation">Code Generation</a></li>
+ <li
class="toplevel"><a href="#_toc_code_generation1" title="Code Generation">Code
Generation</a></li>
+ <li class="toplevel"><a href="#_toc_introduction1"
title="Introduction">Introduction</a></li>
+ <li class="dropdown">
+ <a href="#" title="The MSpec format"
class="dropdown-toggle" role="button" data-toggle="dropdown">The MSpec format
<b class="caret"></b></a>
+ <ul class="dropdown-menu" role="menu">
+ <!-- Repeat the item, otherwise it is not
clickable as the dropdown root -->
+ <li><a href="#_toc_the_mspec_format1"
title="The MSpec format">The MSpec format</a></li>
+ <li class="divider"></li>
+ <li><a
href="#_toc_simple_types1" title="Simple Types">Simple Types</a></li>
+ <li><a href="#_toc_complex_types1" title="Complex
Types">Complex Types</a></li>
+ <li class="dropdown-submenu">
+ <a href="#_toc_field_types_and_their_syntax1" title="Field
Types and their Syntax">Field Types and their Syntax</a>
+ <ul class="dropdown-menu" role="menu">
+ <li><a href="#_toc_const_field1" title="const Field">const
Field</a></li>
+ <li><a href="#_toc_reserved_field1" title="reserved
Field">reserved Field</a></li>
+ <li><a href="#_toc_field_field1" title="field Field">field
Field</a></li>
+ <li><a href="#_toc_array_field1" title="array Field">array
Field</a></li>
+ <li><a href="#_toc_optional_field1" title="optional
Field">optional Field</a></li>
+ <li><a href="#_toc_implicit_field1" title="implicit
Field">implicit Field</a></li>
+ <li><a href="#_toc_discriminator_field1" title="discriminator
Field">discriminator Field</a></li>
+ <li><a href="#_toc_typeswitch_field1" title="typeSwitch
Field">typeSwitch Field</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li class="divider-vertical"></li>
+ <li class="toplevel"><a
href="#_toc_problems_with_maven1" title="Problems with Maven">Problems with
Maven</a></li>
+ <li class="toplevel"><a
href="#_toc_why_are_the_4_modules_released_separately1" title="Why are the 4
modules released separately?">Why are the 4 modules released
separately?</a></li>
+ <li class="toplevel"><a
href="#_toc_why_are_the_protocol_and_language_dependencies_don" title="Why are
the protocol and language dependencies done so strangely?">Why are the protocol
and language dependencies done so strangely?</a></li>
</ul>
</div>
</div> <!-- .container -->
@@ -186,6 +214,316 @@
<h2 id="_toc_code_generation1">Code Generation</h2>
</div>
<div class="sectionbody">
+ <div class="paragraph">
+ <p>As hand-writing code for a lot of drivers in multiple languages would be
quite a nightmare, we have invested a very large amount of time into finding a
way to automate this.</p>
+ </div>
+ <div class="paragraph">
+ <p>So in the end we need 3 parts:</p>
+ </div>
+ <div class="olist arabic">
+ <ol class="arabic">
+ <li> <p>Protocol definition</p> </li>
+ <li> <p>Language template</p> </li>
+ <li> <p>A maven plugin which generates the code</p> </li>
+ </ol>
+ </div>
+ <div class="paragraph">
+ <p>This maven plugin uses a given protocol definition as well as a language
template and generates code for reading/writing data in that protocol with the
given language.</p>
+ </div>
+ <div class="imageblock">
+ <div class="content">
+ <img src="../images/code-generation-intro.png" alt="code generation intro"
width="750" height="308" class="img-responsive">
+ </div>
+ </div>
+ <div class="paragraph">
+ <p>The <code>Types Base</code> module provides all the structures the
<code>Protocol</code> modules output which are then used in the
<code>Language</code> templates to generate code.</p>
+ </div>
+ <div class="paragraph">
+ <p><code>Protocol Base</code> and <code>Language Base</code> hereby just
provide the interfaces that reference these types and provide the API for the
<code>plc4x-maven-plugin</code> to use.</p>
+ </div>
+ <div class="paragraph">
+ <p>These modules are also maintained in a repository which is separate from
the rest of the PLC4X code.</p>
+ </div>
+ <div class="paragraph">
+ <p>This is due to some restrictions in the Maven build system. If you are
interested in understanding the reasons - please read the chapter on
<code>Problems with Maven</code> near the end of this page.</p>
+ </div>
+ <div class="paragraph">
+ <p>Concrete protocol spec parsers and templates that actually generate code
are implemented in derived modules.</p>
+ </div>
+ <div class="paragraph">
+ <p>Also didn’t we want to tie ourselves to only one way to specify
protocols and to generate code.</p>
+ </div>
+ <div class="paragraph">
+ <p>This adds another layer to the hierarchy.</p>
+ </div>
+ <div class="paragraph">
+ <p>So for example in case of generating a Siemens S7 Driver for Java this
would look like this:</p>
+ </div>
+ <div class="imageblock">
+ <div class="content">
+ <img src="../images/code-generation-intro-s7-java.png" alt="code
generation intro s7 java" width="480" height="728" class="img-responsive">
+ </div>
+ </div>
+ <div class="paragraph">
+ <p>The dark blue parts are the ones released externally, the turquoise ones
are part of the main PLC4X repo.</p>
+ </div>
+ <div class="sect2">
+ <h3 id="_toc_introduction1">Introduction</h3>
+ <div class="paragraph">
+ <p>The maven plugin is built up very modular.</p>
+ </div>
+ <div class="paragraph">
+ <p>So in general it is possible to add new forms of providing protocol
definitions as well as language templates.</p>
+ </div>
+ <div class="paragraph">
+ <p>For the formats of specifying a protocol we have tried out numerous
tools and frameworks, however the results were never quite satisfying.</p>
+ </div>
+ <div class="paragraph">
+ <p>Usually using them required a large amount of workarounds, which made
the solution quite complicated.</p>
+ </div>
+ <div class="paragraph">
+ <p>In the end only DFDL and the corresponding Apache project <a
href="https://daffodil.apache.org">Apache Daffodil (incubating)</a> seemed to
provide what we were looking for.</p>
+ </div>
+ <div class="paragraph">
+ <p>With this we were able to provide first driver versions fully specified
in XML.</p>
+ </div>
+ <div class="paragraph">
+ <p>The downside was, that the PLC4X community regarded this XML format as
pretty complicated and when implementing an experimental code generator we
quickly noticed that generating a nice object model would not be possible, due
to the lack ability to model the inheritance of types in DFDL.</p>
+ </div>
+ <div class="paragraph">
+ <p>In the end we came up with our own solution.</p>
+ </div>
+ </div>
+ <div class="sect2">
+ <h3 id="_toc_the_mspec_format1">The MSpec format</h3>
+ <div class="paragraph">
+ <p>The <code>MSpec</code> format (Message Specification) was a result of a
brainstorming session after evaluating a lot of other options.</p>
+ </div>
+ <div class="paragraph">
+ <p>We simply sat down and started to write some imaginary format
(<code>imaginary</code> was even the initial Name we used) and created parses
for this afterwards and fine tuned spec and parsers as part of the process of
implementing first protocols and language templates.</p>
+ </div>
+ <div class="paragraph">
+ <p>It’s a text-based format and for example part of the spec for the S7
format looks like this:</p>
+ </div>
+ <div class="literalblock">
+ <div class="content">
+ <pre>[discriminatedType 'S7Message'
+ [const uint 8 'protocolId' '0x32']
+ [discriminator uint 8 'messageType']
+ [reserved uint 16 '0x0000']
+ [field uint 16 'tpduReference']
+ [implicit uint 16 'parameterLength' 'parameter.lengthInBytes']
+ [implicit uint 16 'payloadLength' 'payload.lengthInBytes']
+ [typeSwitch 'messageType'
+ ['0x01' S7MessageRequest
+ ]
+ ['0x03' S7MessageResponse
+ [field uint 8 'errorClass']
+ [field uint 8 'errorCode']
+ ]
+ ['0x07' S7MessageUserData
+ ]
+ ]
+ [field S7Parameter 'parameter' ['messageType']]
+ [field S7Payload 'payload' ['messageType', 'parameter']]
+]</pre>
+ </div>
+ </div>
+ <div class="paragraph">
+ <p>So the root elements are always <code>discriminatedType</code> elements
which have a name.</p>
+ </div>
+ <div class="paragraph">
+ <p>An elements start is declared by an opening square bracket
<code>[</code> and ended with a closing one <code>]</code>.</p>
+ </div>
+ <div class="paragraph">
+ <p>Every <code>discriminatedType</code> contains a list of fields that can
have different types.</p>
+ </div>
+ <div class="paragraph">
+ <p>The list of available types are:</p>
+ </div>
+ <div class="ulist">
+ <ul>
+ <li> <p>const: expects a given value</p> </li>
+ <li> <p>reserved: expects a given value, but only warns if condition is
not meet</p> </li>
+ <li> <p>field: simple or complex typed object</p> </li>
+ <li> <p>array: array of simple or complex typed objects</p> </li>
+ <li> <p>optional: simple or complex typed object, that is only present in
some conditions</p> </li>
+ <li> <p>implicit: a field required for parsing, but is usually defined
though other data</p> </li>
+ <li> <p>discriminator: special type of simple typed field which is used
to determine the concrete type of an object (max one per type and always has to
be accompanied with a <code>switch</code> field)</p> </li>
+ <li> <p>typeSwitch: not a real field, but indicates the existence of
sub-types, which are declared inline</p> </li>
+ </ul>
+ </div>
+ <div class="paragraph">
+ <p>The full syntax and explanations of these type follow in the following
chapters.</p>
+ </div>
+ <div class="paragraph">
+ <p>Another thing we have to explain are how types are specified.</p>
+ </div>
+ <div class="paragraph">
+ <p>In general we distinguish between two types of types:</p>
+ </div>
+ <div class="ulist">
+ <ul>
+ <li> <p>simple types</p> </li>
+ <li> <p>complex types</p> </li>
+ </ul>
+ </div>
+ <div class="sect3">
+ <h4 id="_toc_simple_types1">Simple Types</h4>
+ <div class="paragraph">
+ <p>Simple types are usually raw data the format is:</p>
+ </div>
+ <div class="literalblock">
+ <div class="content">
+ <pre>{base-type} {size}</pre>
+ </div>
+ </div>
+ <div class="paragraph">
+ <p>The base types available are currently:</p>
+ </div>
+ <div class="ulist">
+ <ul>
+ <li> <p>bit: Simple boolean value</p> </li>
+ <li> <p>uint: The input is treated as unsigned integer value</p> </li>
+ <li> <p>int: The input is treated as signed integer value</p> </li>
+ <li> <p>float: The input is treated as floating point number</p> </li>
+ <li> <p>string: The input is treated as string</p> </li>
+ </ul>
+ </div>
+ <div class="paragraph">
+ <p>The size value then provides how many <code>bits</code> should be
read.</p>
+ </div>
+ <div class="paragraph">
+ <p>So reading an unsigned byte would be: <code>uint 8</code>.</p>
+ </div>
+ </div>
+ <div class="sect3">
+ <h4 id="_toc_complex_types1">Complex Types</h4>
+ <div class="paragraph">
+ <p>In contrast to simple types, complex type references simply reference
other complex types.</p>
+ </div>
+ <div class="paragraph">
+ <p>How the parser should interpret them is defined in the referenced
types definition.</p>
+ </div>
+ <div class="paragraph">
+ <p>In the example above, for example the <code>S7Parameter</code> is
defined in another part of the spec.</p>
+ </div>
+ </div>
+ <div class="sect3">
+ <h4 id="_toc_field_types_and_their_syntax1">Field Types and their
Syntax</h4>
+ <div class="sect4">
+ <h5 id="_toc_const_field1">const Field</h5>
+ <div class="literalblock">
+ <div class="content">
+ <pre>[const {type} {size} '{name}' '{reference}']</pre>
+ </div>
+ </div>
+ <div class="paragraph">
+ <p>A const field simply reads a given simple type and compares to a
given reference value.</p>
+ </div>
+ <div class="paragraph">
+ <p>It makes the parser throw an Exception if the value does not
match.</p>
+ </div>
+ </div>
+ <div class="sect4">
+ <h5 id="_toc_reserved_field1">reserved Field</h5>
+ <div class="literalblock">
+ <div class="content">
+ <pre>[reserved {type} {size} '{name}' '{reference}']</pre>
+ </div>
+ </div>
+ <div class="paragraph">
+ <p>In general this field type behaves exactly the same way as the
<code>const</code> field, but with the difference, that it doesn’t throw an
Exception if the reference is not matched, but instead allows to log the
value.</p>
+ </div>
+ <div class="paragraph">
+ <p>This is used in order to detect <code>reserved</code> fields in some
protocols, where the manufacturer defined the field to be a given value, but
with the option to use it in the future.</p>
+ </div>
+ <div class="paragraph">
+ <p>This way the application will not break in the future if devices
start using the field and it informs us that we should probably have a look at
what the new values mean.</p>
+ </div>
+ </div>
+ <div class="sect4">
+ <h5 id="_toc_field_field1">field Field</h5>
+ </div>
+ <div class="sect4">
+ <h5 id="_toc_array_field1">array Field</h5>
+ </div>
+ <div class="sect4">
+ <h5 id="_toc_optional_field1">optional Field</h5>
+ </div>
+ <div class="sect4">
+ <h5 id="_toc_implicit_field1">implicit Field</h5>
+ </div>
+ <div class="sect4">
+ <h5 id="_toc_discriminator_field1">discriminator Field</h5>
+ </div>
+ <div class="sect4">
+ <h5 id="_toc_typeswitch_field1">typeSwitch Field</h5>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="sect1">
+ <h2 id="_toc_problems_with_maven1">Problems with Maven</h2>
+ <div class="sectionbody">
+ <div class="sect2">
+ <h3 id="_toc_why_are_the_4_modules_released_separately1">Why are the 4
modules released separately?</h3>
+ <div class="paragraph">
+ <p>We mentioned in the introduction, that the first 4 modules are
maintained and released from outside the main PLC4X repository.</p>
+ </div>
+ <div class="paragraph">
+ <p>This is due to some restrictions in Maven, which result from the way
Maven generally works.</p>
+ </div>
+ <div class="paragraph">
+ <p>The main problem is that when starting a build, in the
<code>validate</code> phase, Maven goes through the configuration, downloads
the plugins and configures these. This means that Maven also tries to download
the dependencies of the plugins too.</p>
+ </div>
+ <div class="paragraph">
+ <p>In case of using a Maven plugin in a project which also produces the
maven plugin, this is guaranteed to fail - Especially during releases. While
during normal development, Maven will probably just download the latest
<code>SNAPSHOT</code> from our Maven repository and be happy with this and not
complain that this version will be overwritten later on in the build. It will
just use the new version as soon as it has to.</p>
+ </div>
+ <div class="paragraph">
+ <p>During releases however the release plugin changes the version to a
release version and then spawns a build. In this case the build will fail
because there is no Plugin with that version to download. In this case the only
option would be to manually build and install the plugin in the release version
and to re-start the release (Which is not a nice thing for the release
manager).</p>
+ </div>
+ <div class="paragraph">
+ <p>For this reason we have stripped down the plugin and it’s dependencies
to an absolute minimum and have released (or will release) that separately from
the rest, hoping due to the minimality of the dependencies that we will not
have to do it very often.</p>
+ </div>
+ <div class="paragraph">
+ <p>As soon as the tooling is released, the version is updated in the PLC4X
build and the release version is used without any complications.</p>
+ </div>
+ </div>
+ <div class="sect2">
+ <h3 id="_toc_why_are_the_protocol_and_language_dependencies_don">Why are
the protocol and language dependencies done so strangely?</h3>
+ <div class="paragraph">
+ <p>It would certainly be a lot cleaner, if we provided the modules as
plugin dependencies.</p>
+ </div>
+ <div class="paragraph">
+ <p>However, as we mentioned in the previous sub-chapter, Maven tries to
download and configure the plugins prior to running the build. So during a
release the new versions of the modules wouldn’t exist, this would cause the
build to fail.</p>
+ </div>
+ <div class="paragraph">
+ <p>We could release the protocol- and the language modules separately too,
but we want the language and protocol modules to be part of the project, to not
over-complicate things - especially during a release.</p>
+ </div>
+ <div class="paragraph">
+ <p>So the Maven plugin is built in a way, that it uses the modules
dependencies and creates it’s own Classloader to contain all of these modules
at runtime.</p>
+ </div>
+ <div class="paragraph">
+ <p>This brings the benefit of being able to utilize Maven’s capability of
determining the build order and dynamically creating the modules build
classpath.</p>
+ </div>
+ <div class="paragraph">
+ <p>Adding a normal dependency however would make Maven deploy the
artifacts with the rest of the modules.</p>
+ </div>
+ <div class="paragraph">
+ <p>We don’t want that as the modules are useless as soon as they have been
used to generate the code.</p>
+ </div>
+ <div class="paragraph">
+ <p>So we use a trick that is usually used in Web applications, for
example: Here the vendor of a Servlet engine is expected to provide an
implementation of the <code>Servlet API</code>. It is forbidden for an
application to bring this along, but it is required to build the
application.</p>
+ </div>
+ <div class="paragraph">
+ <p>For this the Maven scope <code>provided</code>, which tells Maven to
provide it during the build, but to exclude it from any applications it builds
because it will be provided by the system running the application.</p>
+ </div>
+ <div class="paragraph">
+ <p>This is not quite true, but it does the trick.</p>
+ </div>
+ </div>
</div>
</div> </div>
</div>
diff --git a/images/code-generation-intro-s7-java.png
b/images/code-generation-intro-s7-java.png
new file mode 100644
index 0000000..69afd2b
Binary files /dev/null and b/images/code-generation-intro-s7-java.png differ
diff --git a/images/code-generation-intro.png b/images/code-generation-intro.png
new file mode 100644
index 0000000..e6e5a1d
Binary files /dev/null and b/images/code-generation-intro.png differ
diff --git a/plc4x-protocols/plc4x-protocols-knxnet-ip/dependencies.html
b/plc4x-protocols/plc4x-protocols-knxnet-ip/dependencies.html
index b34d855..9783f2f 100644
--- a/plc4x-protocols/plc4x-protocols-knxnet-ip/dependencies.html
+++ b/plc4x-protocols/plc4x-protocols-knxnet-ip/dependencies.html
@@ -184,7 +184,7 @@
<tr class="b">
<td>org.apache.plc4x</td>
<td><a class="externalLink"
href="https://plc4x.apache.org/plc4x-protocols/plc4x-protocols-plc4x">plc4x-protocols-plc4x</a></td>
- <td>0.4.0-SNAPSHOT</td>
+ <td>0.5.0-SNAPSHOT</td>
<td>jar</td>
<td><a class="externalLink"
href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version
2.0</a></td>
</tr>
@@ -457,7 +457,7 @@
</table>
</div>
<ul>
- <li>org.apache.plc4x:plc4x-protocols-plc4x:jar:0.4.0-SNAPSHOT (compile)
<button title="Information" class="btn btn-link btn-small" type="button"
data-toggle="collapse" data-target="#_dep2"><i class="glyphicon
glyphicon-info-sign"></i></button>
+ <li>org.apache.plc4x:plc4x-protocols-plc4x:jar:0.5.0-SNAPSHOT (compile)
<button title="Information" class="btn btn-link btn-small" type="button"
data-toggle="collapse" data-target="#_dep2"><i class="glyphicon
glyphicon-info-sign"></i></button>
<div id="_dep2" style="" class="collapse">
<table border="0" class="bodyTable table table-striped table-hover">
<thead>
@@ -989,8 +989,8 @@
<td>Yes</td>
</tr>
<tr class="a">
- <td>plc4x-protocols-plc4x-0.4.0-SNAPSHOT.jar</td>
- <td>4.6 kB</td>
+ <td>plc4x-protocols-plc4x-0.5.0-SNAPSHOT.jar</td>
+ <td>4.8 kB</td>
<td>13</td>
<td>0</td>
<td>0</td>
@@ -1134,7 +1134,7 @@
</tr>
<tr class="a">
<td>compile: 1</td>
- <td>compile: 4.6 kB</td>
+ <td>compile: 4.8 kB</td>
<td>compile: 13</td>
<td>-</td>
<td>-</td>
diff --git a/plc4x-protocols/plc4x-protocols-plc4x/dependency-info.html
b/plc4x-protocols/plc4x-protocols-plc4x/dependency-info.html
index 315cd20..a1edcfa 100644
--- a/plc4x-protocols/plc4x-protocols-plc4x/dependency-info.html
+++ b/plc4x-protocols/plc4x-protocols-plc4x/dependency-info.html
@@ -146,7 +146,7 @@
<pre><dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4x-protocols-plc4x</artifactId>
- <version>0.4.0-SNAPSHOT</version>
+ <version>0.5.0-SNAPSHOT</version>
</dependency></pre>
</div>
</div>
@@ -154,14 +154,14 @@
<h3 id="_toc_apache_buildr">Apache Buildr</h3>
<a name="Apache_Buildr"></a>
<div class="source">
- <pre>'org.apache.plc4x:plc4x-protocols-plc4x:jar:0.4.0-SNAPSHOT'</pre>
+ <pre>'org.apache.plc4x:plc4x-protocols-plc4x:jar:0.5.0-SNAPSHOT'</pre>
</div>
</div>
<div class="section">
<h3 id="_toc_apache_ivy">Apache Ivy</h3>
<a name="Apache_Ivy"></a>
<div class="source">
- <pre><dependency org="org.apache.plc4x" name="plc4x-protocols-plc4x"
rev="0.4.0-SNAPSHOT">
+ <pre><dependency org="org.apache.plc4x" name="plc4x-protocols-plc4x"
rev="0.5.0-SNAPSHOT">
<artifact name="plc4x-protocols-plc4x" type="jar" />
</dependency></pre>
</div>
@@ -171,7 +171,7 @@
<a name="Groovy_Grape"></a>
<div class="source">
<pre>@Grapes(
-@Grab(group='org.apache.plc4x', module='plc4x-protocols-plc4x',
version='0.4.0-SNAPSHOT')
+@Grab(group='org.apache.plc4x', module='plc4x-protocols-plc4x',
version='0.5.0-SNAPSHOT')
)</pre>
</div>
</div>
@@ -179,21 +179,21 @@
<h3 id="_toc_gradlegrails">Gradle/Grails</h3>
<a name="Gradle.2FGrails"></a>
<div class="source">
- <pre>compile 'org.apache.plc4x:plc4x-protocols-plc4x:0.4.0-SNAPSHOT'</pre>
+ <pre>compile 'org.apache.plc4x:plc4x-protocols-plc4x:0.5.0-SNAPSHOT'</pre>
</div>
</div>
<div class="section">
<h3 id="_toc_scala_sbt">Scala SBT</h3>
<a name="Scala_SBT"></a>
<div class="source">
- <pre>libraryDependencies += "org.apache.plc4x" % "plc4x-protocols-plc4x" %
"0.4.0-SNAPSHOT"</pre>
+ <pre>libraryDependencies += "org.apache.plc4x" % "plc4x-protocols-plc4x" %
"0.5.0-SNAPSHOT"</pre>
</div>
</div>
<div class="section">
<h3 id="_toc_leiningen">Leiningen</h3>
<a name="Leiningen"></a>
<div class="source">
- <pre>[org.apache.plc4x/plc4x-protocols-plc4x "0.4.0-SNAPSHOT"]</pre>
+ <pre>[org.apache.plc4x/plc4x-protocols-plc4x "0.5.0-SNAPSHOT"]</pre>
</div>
</div>
</div> </div>
diff --git a/plc4x-protocols/plc4x-protocols-plc4x/dependency-management.html
b/plc4x-protocols/plc4x-protocols-plc4x/dependency-management.html
index 4d5ed6a..a2c477c 100644
--- a/plc4x-protocols/plc4x-protocols-plc4x/dependency-management.html
+++ b/plc4x-protocols/plc4x-protocols-plc4x/dependency-management.html
@@ -200,173 +200,187 @@
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software
License, Version 2.0</a></td>
</tr>
<tr class="a">
+ <td>com.github.jinahya</td>
+ <td><a class="externalLink"
href="https://github.com/jinahya/bit-io">bit-io</a></td>
+ <td>1.4.2</td>
+ <td>jar</td>
+ <td><a class="externalLink"
href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version
2.0</a></td>
+ </tr>
+ <tr class="b">
<td>com.github.snksoft</td>
<td><a class="externalLink"
href="https://github.com/snksoft/java-crc">crc</a></td>
<td>1.0.1</td>
<td>jar</td>
<td><a class="externalLink"
href="https://opensource.org/licenses/BSD-3-Clause">BSD License</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>com.google.code.findbugs</td>
<td><a class="externalLink"
href="http://findbugs.sourceforge.net/">jsr305</a></td>
<td>3.0.1</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software
License, Version 2.0</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>com.google.code.gson</td>
<td><a class="externalLink"
href="https://github.com/google/gson/gson">gson</a></td>
<td>2.8.0</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>com.google.guava</td>
<td><a class="externalLink"
href="https://github.com/google/guava/guava">guava</a></td>
<td>27.0.1-jre</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software
License, Version 2.0</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>com.tdunning</td>
<td><a class="externalLink"
href="https://github.com/tdunning/t-digest">t-digest</a></td>
<td>3.2</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software
License, Version 2.0</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>commons-codec</td>
<td><a class="externalLink"
href="http://commons.apache.org/proper/commons-codec/">commons-codec</a></td>
- <td>1.11</td>
+ <td>1.12</td>
<td>jar</td>
<td><a class="externalLink"
href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version
2.0</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>commons-io</td>
<td><a class="externalLink"
href="http://commons.apache.org/proper/commons-io/">commons-io</a></td>
<td>2.6</td>
<td>jar</td>
<td><a class="externalLink"
href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version
2.0</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>io.dropwizard</td>
<td>metrics-core</td>
<td>3.1.2</td>
<td>jar</td>
<td>-</td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>io.netty</td>
<td><a class="externalLink"
href="http://netty.io/netty-buffer/">netty-buffer</a></td>
<td>4.1.35.Final</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>io.netty</td>
<td><a class="externalLink"
href="http://netty.io/netty-codec/">netty-codec</a></td>
<td>4.1.35.Final</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>io.netty</td>
<td><a class="externalLink"
href="http://netty.io/netty-codec-http/">netty-codec-http</a></td>
<td>4.1.35.Final</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>io.netty</td>
<td><a class="externalLink"
href="http://netty.io/netty-common/">netty-common</a></td>
<td>4.1.35.Final</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>io.netty</td>
<td><a class="externalLink"
href="http://netty.io/netty-handler/">netty-handler</a></td>
<td>4.1.35.Final</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>io.netty</td>
<td><a class="externalLink"
href="http://netty.io/netty-resolver/">netty-resolver</a></td>
<td>4.1.35.Final</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>io.netty</td>
<td><a class="externalLink"
href="http://netty.io/netty-transport/">netty-transport</a></td>
<td>4.1.35.Final</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>io.netty</td>
<td><a class="externalLink"
href="http://netty.io/netty-transport-rxtx/">netty-transport-rxtx</a></td>
<td>4.1.35.Final</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>jaxen</td>
<td><a class="externalLink"
href="http://jaxen.codehaus.org/">jaxen</a></td>
<td>1.1.6</td>
<td>jar</td>
<td><a class="externalLink"
href="http://jaxen.codehaus.org/license.html">null</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>joda-time</td>
<td><a class="externalLink"
href="http://www.joda.org/joda-time/">joda-time</a></td>
<td>2.10</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>junit</td>
<td><a class="externalLink" href="http://junit.org">junit</a></td>
<td>4.12</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License
1.0</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>net.bytebuddy</td>
<td><a class="externalLink"
href="http://bytebuddy.net/byte-buddy">byte-buddy</a></td>
<td>1.9.10</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software
License, Version 2.0</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>net.bytebuddy</td>
<td><a class="externalLink"
href="http://bytebuddy.net/byte-buddy-agent">byte-buddy-agent</a></td>
<td>1.9.10</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software
License, Version 2.0</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>net.java.dev.jna</td>
<td><a class="externalLink"
href="https://github.com/java-native-access/jna">jna</a></td>
<td>4.5.1</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.gnu.org/licenses/licenses.html">LGPL, version 2.1</a>, <a
class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License
v2.0</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>net.sf.jopt-simple</td>
<td><a class="externalLink"
href="http://pholser.github.io/jopt-simple">jopt-simple</a></td>
<td>5.0.2</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.opensource.org/licenses/mit-license.php">The MIT
License</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>nl.jqno.equalsverifier</td>
<td><a class="externalLink"
href="http://www.jqno.nl/equalsverifier">equalsverifier</a></td>
<td>3.0.2</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software
License, Version 2.0</a></td>
</tr>
+ <tr class="b">
+ <td>org.antlr</td>
+ <td><a class="externalLink"
href="http://www.antlr.org/antlr4-runtime">antlr4-runtime</a></td>
+ <td>4.7.2</td>
+ <td>jar</td>
+ <td><a class="externalLink" href="http://www.antlr.org/license.html">The
BSD License</a></td>
+ </tr>
<tr class="a">
<td>org.apache.commons</td>
<td><a class="externalLink"
href="http://commons.apache.org/proper/commons-collections/">commons-collections4</a></td>
@@ -411,228 +425,242 @@
</tr>
<tr class="a">
<td>org.apache.commons</td>
- <td><a class="externalLink"
href="http://commons.apache.org/proper/commons-scxml/">commons-scxml2</a></td>
- <td>2.0-SNAPSHOT</td>
- <td>jar</td>
- <td><a class="externalLink"
href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version
2.0</a></td>
- </tr>
- <tr class="b">
- <td>org.apache.commons</td>
<td><a class="externalLink"
href="http://commons.apache.org/proper/commons-text">commons-text</a></td>
- <td>1.4</td>
+ <td>1.6</td>
<td>jar</td>
<td><a class="externalLink"
href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version
2.0</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.daffodil</td>
<td><a class="externalLink"
href="https://daffodil.apache.org">daffodil-japi_2.12</a></td>
<td>2.3.0</td>
<td>jar</td>
<td><a class="externalLink"
href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.daffodil</td>
<td><a class="externalLink"
href="https://daffodil.apache.org">daffodil-lib_2.12</a></td>
<td>2.3.0</td>
<td>jar</td>
<td><a class="externalLink"
href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.daffodil</td>
<td><a class="externalLink"
href="https://daffodil.apache.org">daffodil-runtime1_2.12</a></td>
<td>2.3.0</td>
<td>jar</td>
<td><a class="externalLink"
href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.daffodil</td>
<td><a class="externalLink"
href="https://daffodil.apache.org">daffodil-tdml-lib_2.12</a></td>
<td>2.3.0</td>
<td>jar</td>
<td><a class="externalLink"
href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.daffodil</td>
<td><a class="externalLink"
href="https://daffodil.apache.org">daffodil-tdml-processor_2.12</a></td>
<td>2.3.0</td>
<td>jar</td>
<td><a class="externalLink"
href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.logging.log4j</td>
<td><a class="externalLink"
href="https://logging.apache.org/log4j/2.x/log4j-api/">log4j-api</a></td>
<td>2.11.1</td>
<td>jar</td>
<td><a class="externalLink"
href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version
2.0</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.lucene</td>
<td><a class="externalLink"
href="http://lucene.apache.org/lucene-parent/lucene-analyzers-common">lucene-analyzers-common</a></td>
<td>8.0.0</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.lucene</td>
<td><a class="externalLink"
href="http://lucene.apache.org/lucene-parent/lucene-backward-codecs">lucene-backward-codecs</a></td>
<td>8.0.0</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.lucene</td>
<td><a class="externalLink"
href="http://lucene.apache.org/lucene-parent/lucene-core">lucene-core</a></td>
<td>8.0.0</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.lucene</td>
<td><a class="externalLink"
href="http://lucene.apache.org/lucene-parent/lucene-grouping">lucene-grouping</a></td>
<td>8.0.0</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.lucene</td>
<td><a class="externalLink"
href="http://lucene.apache.org/lucene-parent/lucene-highlighter">lucene-highlighter</a></td>
<td>8.0.0</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.lucene</td>
<td><a class="externalLink"
href="http://lucene.apache.org/lucene-parent/lucene-join">lucene-join</a></td>
<td>8.0.0</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.lucene</td>
<td><a class="externalLink"
href="http://lucene.apache.org/lucene-parent/lucene-memory">lucene-memory</a></td>
<td>8.0.0</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.lucene</td>
<td><a class="externalLink"
href="http://lucene.apache.org/lucene-parent/lucene-misc">lucene-misc</a></td>
<td>8.0.0</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.lucene</td>
<td><a class="externalLink"
href="http://lucene.apache.org/lucene-parent/lucene-queries">lucene-queries</a></td>
<td>8.0.0</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.lucene</td>
<td><a class="externalLink"
href="http://lucene.apache.org/lucene-parent/lucene-queryparser">lucene-queryparser</a></td>
<td>8.0.0</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.lucene</td>
<td><a class="externalLink"
href="http://lucene.apache.org/lucene-parent/lucene-sandbox">lucene-sandbox</a></td>
<td>8.0.0</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.lucene</td>
<td><a class="externalLink"
href="http://lucene.apache.org/lucene-parent/lucene-spatial">lucene-spatial</a></td>
<td>8.0.0</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.lucene</td>
<td><a class="externalLink"
href="http://lucene.apache.org/lucene-parent/lucene-spatial-extras">lucene-spatial-extras</a></td>
<td>8.0.0</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.lucene</td>
<td><a class="externalLink"
href="http://lucene.apache.org/lucene-parent/lucene-spatial3d">lucene-spatial3d</a></td>
<td>8.0.0</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.lucene</td>
<td><a class="externalLink"
href="http://lucene.apache.org/lucene-parent/lucene-suggest">lucene-suggest</a></td>
<td>8.0.0</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.maven</td>
<td><a class="externalLink"
href="http://maven.apache.org/ref/3.3.3/maven-artifact">maven-artifact</a></td>
<td>3.3.3</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version
2.0</a></td>
</tr>
+ <tr class="b">
+ <td>org.apache.plc4x.plugins</td>
+ <td><a class="externalLink"
href="https://www.apache.org/plc4x-code-generaton-external/plc4x-code-generation-language-base/">plc4x-code-generation-language-base</a></td>
+ <td>1.0.0-SNAPSHOT</td>
+ <td>jar</td>
+ <td><a class="externalLink"
href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version
2.0</a></td>
+ </tr>
<tr class="a">
+ <td>org.apache.plc4x.plugins</td>
+ <td><a class="externalLink"
href="https://www.apache.org/plc4x-code-generaton-external/plc4x-code-generation-protocol-base/">plc4x-code-generation-protocol-base</a></td>
+ <td>1.0.0-SNAPSHOT</td>
+ <td>jar</td>
+ <td><a class="externalLink"
href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version
2.0</a></td>
+ </tr>
+ <tr class="b">
<td>org.assertj</td>
<td><a class="externalLink"
href="http://assertj.org/assertj-core">assertj-core</a></td>
<td>3.11.1</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version
2.0</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.bouncycastle</td>
<td><a class="externalLink"
href="http://www.bouncycastle.org/java.html">bcmail-jdk15on</a></td>
<td>1.60</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.bouncycastle.org/licence.html">Bouncy Castle Licence</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.bouncycastle</td>
<td><a class="externalLink"
href="http://www.bouncycastle.org/java.html">bcpkix-jdk15on</a></td>
<td>1.60</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.bouncycastle.org/licence.html">Bouncy Castle Licence</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.bouncycastle</td>
<td><a class="externalLink"
href="http://www.bouncycastle.org/java.html">bcprov-jdk15on</a></td>
<td>1.60</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.bouncycastle.org/licence.html">Bouncy Castle Licence</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.codehaus.groovy</td>
<td><a class="externalLink" href="http://groovy-lang.org">groovy</a></td>
<td>2.5.3</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software
License, Version 2.0</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.elasticsearch</td>
<td><a class="externalLink"
href="https://github.com/elastic/elasticsearch">elasticsearch</a></td>
<td>7.0.1</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software
License, Version 2.0</a></td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.elasticsearch</td>
<td><a class="externalLink"
href="https://github.com/elastic/elasticsearch">elasticsearch-x-content</a></td>
<td>7.0.1</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software
License, Version 2.0</a></td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.elasticsearch.plugin</td>
<td><a class="externalLink"
href="https://github.com/elastic/elasticsearch">transport-netty4-client</a></td>
<td>7.0.1</td>
<td>jar</td>
<td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software
License, Version 2.0</a></td>
</tr>
+ <tr class="b">
+ <td>org.freemarker</td>
+ <td><a class="externalLink"
href="https://freemarker.apache.org/">freemarker</a></td>
+ <td>2.3.28</td>
+ <td>jar</td>
+ <td><a class="externalLink"
href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version
2.0</a></td>
+ </tr>
<tr class="a">
<td>org.hamcrest</td>
<td><a class="externalLink"
href="https://github.com/hamcrest/JavaHamcrest/hamcrest-core">hamcrest-core</a></td>
diff --git a/plc4x-protocols/plc4x-protocols-plc4x/plugin-management.html
b/plc4x-protocols/plc4x-protocols-plc4x/plugin-management.html
index b32afc7..b429685 100644
--- a/plc4x-protocols/plc4x-protocols-plc4x/plugin-management.html
+++ b/plc4x-protocols/plc4x-protocols-plc4x/plugin-management.html
@@ -147,160 +147,170 @@
<td>1.6.0</td>
</tr>
<tr class="a">
+ <td>org.antlr</td>
+ <td><a class="externalLink"
href="http://www.antlr.org/antlr4-maven-plugin">antlr4-maven-plugin</a></td>
+ <td>4.7.2</td>
+ </tr>
+ <tr class="b">
<td>org.apache.felix</td>
<td><a class="externalLink"
href="http://felix.apache.org/components/bundle-plugin/">maven-bundle-plugin</a></td>
<td>4.1.0</td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="http://maven.apache.org/plugins/maven-antrun-plugin/">maven-antrun-plugin</a></td>
<td>1.8</td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugins/maven-assembly-plugin/">maven-assembly-plugin</a></td>
<td>3.1.1</td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="http://maven.apache.org/plugins/maven-changelog-plugin/">maven-changelog-plugin</a></td>
<td>2.3</td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugins/maven-clean-plugin/">maven-clean-plugin</a></td>
<td>3.1.0</td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugins/maven-compiler-plugin/">maven-compiler-plugin</a></td>
<td>3.7.0</td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugins/maven-dependency-plugin/">maven-dependency-plugin</a></td>
<td>3.1.1</td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="http://maven.apache.org/plugins/maven-deploy-plugin/">maven-deploy-plugin</a></td>
<td>2.8.2</td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="http://maven.apache.org/plugins/maven-docck-plugin/">maven-docck-plugin</a></td>
<td>1.1</td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugins/maven-ear-plugin/">maven-ear-plugin</a></td>
<td>3.0.1</td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="http://maven.apache.org/enforcer/maven-enforcer-plugin">maven-enforcer-plugin</a></td>
<td>1.4.1</td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/surefire/maven-failsafe-plugin/">maven-failsafe-plugin</a></td>
<td>2.22.0</td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="http://maven.apache.org/plugins/maven-gpg-plugin/">maven-gpg-plugin</a></td>
<td>1.6</td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugins/maven-help-plugin/">maven-help-plugin</a></td>
<td>3.1.0</td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="http://maven.apache.org/plugins/maven-install-plugin/">maven-install-plugin</a></td>
<td>2.5.2</td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugins/maven-invoker-plugin/">maven-invoker-plugin</a></td>
<td>3.1.0</td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugins/maven-jar-plugin/">maven-jar-plugin</a></td>
<td>3.1.0</td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugins/maven-javadoc-plugin/">maven-javadoc-plugin</a></td>
<td>3.0.1</td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugin-tools/maven-plugin-plugin">maven-plugin-plugin</a></td>
<td>3.5.2</td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugins/maven-project-info-reports-plugin/">maven-project-info-reports-plugin</a></td>
<td>3.0.0</td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="http://maven.apache.org/maven-release/maven-release-plugin/">maven-release-plugin</a></td>
<td>2.5.3</td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="http://maven.apache.org/plugins/maven-remote-resources-plugin/">maven-remote-resources-plugin</a></td>
<td>1.5</td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugins/maven-resources-plugin/">maven-resources-plugin</a></td>
<td>3.1.0</td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="http://maven.apache.org/scm/maven-scm-plugin/">maven-scm-plugin</a></td>
<td>1.9.5</td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugins/maven-scm-publish-plugin/">maven-scm-publish-plugin</a></td>
<td>3.0.0</td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugins/maven-shade-plugin/">maven-shade-plugin</a></td>
<td>3.1.1</td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugins/maven-site-plugin/">maven-site-plugin</a></td>
<td>3.7.1</td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugins/maven-source-plugin/">maven-source-plugin</a></td>
<td>3.0.1</td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/surefire/maven-surefire-plugin/">maven-surefire-plugin</a></td>
<td>2.22.0</td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/surefire/maven-surefire-report-plugin/">maven-surefire-report-plugin</a></td>
<td>2.22.0</td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugins/maven-war-plugin/">maven-war-plugin</a></td>
<td>3.2.2</td>
</tr>
+ <tr class="a">
+ <td>org.apache.plc4x.plugins</td>
+ <td><a class="externalLink"
href="https://www.apache.org/plc4x-code-generaton-external/plc4x-maven-plugin/">plc4x-maven-plugin</a></td>
+ <td>1.0.0-SNAPSHOT</td>
+ </tr>
<tr class="b">
<td>org.apache.rat</td>
<td><a class="externalLink"
href="http://creadur.apache.org/rat/apache-rat-plugin/">apache-rat-plugin</a></td>
diff --git a/plc4x-protocols/plc4x-protocols-plc4x/plugins.html
b/plc4x-protocols/plc4x-protocols-plc4x/plugins.html
index 4258b30..5c4d583 100644
--- a/plc4x-protocols/plc4x-protocols-plc4x/plugins.html
+++ b/plc4x-protocols/plc4x-protocols-plc4x/plugins.html
@@ -154,30 +154,40 @@
<td>1.4.1</td>
</tr>
<tr class="b">
+ <td>org.apache.felix</td>
+ <td><a class="externalLink"
href="http://felix.apache.org/components/bundle-plugin/">maven-bundle-plugin</a></td>
+ <td>4.1.0</td>
+ </tr>
+ <tr class="a">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugins/maven-clean-plugin/">maven-clean-plugin</a></td>
<td>3.1.0</td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugins/maven-compiler-plugin/">maven-compiler-plugin</a></td>
<td>3.7.0</td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="https://maven.apache.org/plugins/maven-dependency-plugin/">maven-dependency-plugin</a></td>
<td>3.1.1</td>
</tr>
- <tr class="a">
+ <tr class="b">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="http://maven.apache.org/plugins/maven-deploy-plugin/">maven-deploy-plugin</a></td>
<td>2.8.2</td>
</tr>
- <tr class="b">
+ <tr class="a">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="http://maven.apache.org/enforcer/maven-enforcer-plugin">maven-enforcer-plugin</a></td>
<td>1.4.1</td>
</tr>
+ <tr class="b">
+ <td>org.apache.maven.plugins</td>
+ <td><a class="externalLink"
href="https://maven.apache.org/surefire/maven-failsafe-plugin/">maven-failsafe-plugin</a></td>
+ <td>2.22.0</td>
+ </tr>
<tr class="a">
<td>org.apache.maven.plugins</td>
<td><a class="externalLink"
href="http://maven.apache.org/plugins/maven-install-plugin/">maven-install-plugin</a></td>
@@ -218,6 +228,21 @@
<td><a class="externalLink"
href="http://creadur.apache.org/rat/apache-rat-plugin/">apache-rat-plugin</a></td>
<td>0.12</td>
</tr>
+ <tr class="a">
+ <td>org.codehaus.gmaven</td>
+ <td><a class="externalLink"
href="http://groovy.github.io/gmaven/groovy-maven-plugin">groovy-maven-plugin</a></td>
+ <td>2.1</td>
+ </tr>
+ <tr class="b">
+ <td>org.codehaus.mojo</td>
+ <td><a class="externalLink"
href="http://www.mojohaus.org/properties-maven-plugin">properties-maven-plugin</a></td>
+ <td>1.0.0</td>
+ </tr>
+ <tr class="a">
+ <td>org.jacoco</td>
+ <td><a class="externalLink"
href="http://jacoco-maven-plugin">jacoco-maven-plugin</a></td>
+ <td>0.8.2</td>
+ </tr>
</tbody>
</table>
</div>
diff --git a/plc4x-protocols/plc4x-protocols-plc4x/summary.html
b/plc4x-protocols/plc4x-protocols-plc4x/summary.html
index b7ae8f5..effce6b 100644
--- a/plc4x-protocols/plc4x-protocols-plc4x/summary.html
+++ b/plc4x-protocols/plc4x-protocols-plc4x/summary.html
@@ -204,7 +204,7 @@
</tr>
<tr class="b">
<td>Version</td>
- <td>0.4.0-SNAPSHOT</td>
+ <td>0.5.0-SNAPSHOT</td>
</tr>
<tr class="a">
<td>Type</td>
diff --git a/plc4x-protocols/plc4x-protocols-s7/dependencies.html
b/plc4x-protocols/plc4x-protocols-s7/dependencies.html
index 58723a1..cb2e74f 100644
--- a/plc4x-protocols/plc4x-protocols-s7/dependencies.html
+++ b/plc4x-protocols/plc4x-protocols-s7/dependencies.html
@@ -184,7 +184,7 @@
<tr class="b">
<td>org.apache.plc4x</td>
<td><a class="externalLink"
href="https://plc4x.apache.org/plc4x-protocols/plc4x-protocols-plc4x">plc4x-protocols-plc4x</a></td>
- <td>0.4.0-SNAPSHOT</td>
+ <td>0.5.0-SNAPSHOT</td>
<td>jar</td>
<td><a class="externalLink"
href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version
2.0</a></td>
</tr>
@@ -506,7 +506,7 @@
</table>
</div>
<ul>
- <li>org.apache.plc4x:plc4x-protocols-plc4x:jar:0.4.0-SNAPSHOT (compile)
<button title="Information" class="btn btn-link btn-small" type="button"
data-toggle="collapse" data-target="#_dep2"><i class="glyphicon
glyphicon-info-sign"></i></button>
+ <li>org.apache.plc4x:plc4x-protocols-plc4x:jar:0.5.0-SNAPSHOT (compile)
<button title="Information" class="btn btn-link btn-small" type="button"
data-toggle="collapse" data-target="#_dep2"><i class="glyphicon
glyphicon-info-sign"></i></button>
<div id="_dep2" style="" class="collapse">
<table border="0" class="bodyTable table table-striped table-hover">
<thead>
@@ -1169,8 +1169,8 @@
<td>Yes</td>
</tr>
<tr class="a">
- <td>plc4x-protocols-plc4x-0.4.0-SNAPSHOT.jar</td>
- <td>4.6 kB</td>
+ <td>plc4x-protocols-plc4x-0.5.0-SNAPSHOT.jar</td>
+ <td>4.8 kB</td>
<td>13</td>
<td>0</td>
<td>0</td>
@@ -1350,7 +1350,7 @@
</tr>
<tr class="a">
<td>34</td>
- <td>31.7 MB</td>
+ <td>31.8 MB</td>
<td>15443</td>
<td>11211</td>
<td>348</td>
@@ -1359,7 +1359,7 @@
</tr>
<tr class="b">
<td>compile: 1</td>
- <td>compile: 4.6 kB</td>
+ <td>compile: 4.8 kB</td>
<td>compile: 13</td>
<td>-</td>
<td>-</td>