You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2020/01/23 12:02:34 UTC

[plc4x] branch develop updated: - Switched to using the new plc4x site skin - Restructured a lot of content - Added a lot of empty place-holder pages

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

cdutz 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 40a69be  - Switched to using the new plc4x site skin - Restructured a lot of content - Added a lot of empty place-holder pages
40a69be is described below

commit 40a69bea25801a01892b047b0f9fb4805573c43d
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Thu Jan 23 13:01:36 2020 +0100

    - Switched to using the new plc4x site skin
    - Restructured a lot of content
    - Added a lot of empty place-holder pages
---
 pom.xml                                            | 165 ----------
 .../gettingstarted.adoc => apache/index.adoc}      |  10 +-
 .../gettingstarted.adoc => developers/index.adoc}  |  10 +-
 src/site/asciidoc/index.adoc                       | 140 ++++-----
 src/site/asciidoc/users/gettingstarted.adoc        |   2 +-
 src/site/asciidoc/users/index.adoc                 |  34 ++
 .../apache-calcite.adoc}                           |  10 +-
 .../apache-camel.adoc}                             |  10 +-
 .../apache-edgent.adoc}                            |  10 +-
 .../apache-iotdb.adoc}                             |  10 +-
 .../apache-kafka.adoc}                             |  10 +-
 .../apache-nifi.adoc}                              |  10 +-
 .../apache-streampipes.adoc}                       |  10 +-
 .../eclipse-ditto.adoc}                            |  10 +-
 .../elastic-logstash.adoc}                         |  10 +-
 .../index.adoc}                                    |  10 +-
 src/site/asciidoc/users/plc4j/gettingstarted.adoc  | 178 +++++++++++
 .../{gettingstarted.adoc => protocols/ab-eth.adoc} |  10 +-
 .../{gettingstarted.adoc => protocols/ads.adoc}    |  10 +-
 .../bacnetip.adoc}                                 |  10 +-
 .../{gettingstarted.adoc => protocols/deltav.adoc} |  10 +-
 .../{gettingstarted.adoc => protocols/df1.adoc}    |  10 +-
 .../ethernet-ip.adoc}                              |  10 +-
 .../{gettingstarted.adoc => protocols/index.adoc}  |  10 +-
 .../knxnetip.adoc}                                 |  10 +-
 .../{gettingstarted.adoc => protocols/modbus.adoc} |  10 +-
 .../{gettingstarted.adoc => protocols/opc-ua.adoc} |  10 +-
 .../{gettingstarted.adoc => protocols/s7.adoc}     |  10 +-
 .../simulated.adoc}                                |  10 +-
 .../{gettingstarted.adoc => tools/index.adoc}      |  10 +-
 src/site/asciidoc/users/tools/opm.adoc             |  73 +++++
 src/site/asciidoc/users/tools/testing.adoc         | 165 ++++++++++
 src/site/resources/images/apache_calcite_logo.svg  | 346 +++++++++++++++++++++
 src/site/resources/images/apache_iotdb_logo.png    | Bin 0 -> 22055 bytes
 src/site/resources/images/apache_logo_small.png    | Bin 0 -> 7763 bytes
 .../resources/images/apache_plc4x_logo_small.png   | Bin 0 -> 10460 bytes
 .../resources/images/apache_streampipes_logo.png   | Bin 0 -> 16928 bytes
 src/site/resources/images/eclipse_ditto_logo.svg   | 183 +++++++++++
 .../resources/images/elastic_logstash_logo.svg     |   1 +
 src/site/site.xml                                  | 109 +++----
 40 files changed, 1154 insertions(+), 492 deletions(-)

diff --git a/pom.xml b/pom.xml
index decd464..6a17253 100644
--- a/pom.xml
+++ b/pom.xml
@@ -166,11 +166,6 @@
     <asciidoctor.maven.plugin.version>2.0.0-RC.1</asciidoctor.maven.plugin.version>
     <asciidoctorj.version>2.0.0</asciidoctorj.version>
     <asciidoctorj.diagram.version>1.5.16</asciidoctorj.diagram.version>
-    <reflow.skin.version>1.5.0</reflow.skin.version>
-    <bootstrap.version>3.3.7</bootstrap.version>
-    <jquery.version>3.3.1</jquery.version>
-    <anchorjs.version>3.2.2</anchorjs.version>
-    <fontawesome.version>5.2.0</fontawesome.version>
   </properties>
 
   <modules>
@@ -986,161 +981,8 @@
 
         Starting here the following plugins are used for generating the projects website.
 
-        Most of the complexity is due to the fact that we selected "localResouces" in the site.xml
-        This causes the generated output not to rely on external resources. Therefore we have to
-        manually take care of fetching and packaging these external resources with the generated site.
       -->
 
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>unpack</id>
-            <!-- Only execute this for the parent module -->
-            <inherited>false</inherited>
-            <phase>pre-site</phase>
-            <goals>
-              <goal>unpack</goal>
-            </goals>
-            <configuration>
-              <artifactItems>
-                <artifactItem>
-                  <groupId>io.github.devacfr.maven.skins</groupId>
-                  <artifactId>reflow-default-webdeps</artifactId>
-                  <version>${reflow.skin.version}</version>
-                  <type>jar</type>
-                  <overWrite>false</overWrite>
-                  <includes>
-                    **/css/bootstrap.min.css,
-                    **/css/fontawesome/*,
-                    **/js/*.js,
-                    **/js/languages/*,
-                    **/js/styles/default.min.css
-                  </includes>
-                </artifactItem>
-              </artifactItems>
-              <outputDirectory>${project.build.directory}/site</outputDirectory>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-
-      <!--
-        Replace the bootstrap css with the version of the theme
-      -->
-      <plugin>
-        <groupId>com.googlecode.maven-download-plugin</groupId>
-        <artifactId>download-maven-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>get-fontawesome</id>
-            <!-- Only execute this for the parent module -->
-            <inherited>false</inherited>
-            <phase>pre-site</phase>
-            <goals>
-              <goal>wget</goal>
-            </goals>
-            <configuration>
-              <url>https://use.fontawesome.com/releases/v${fontawesome.version}/fontawesome-free-${fontawesome.version}-web.zip</url>
-              <unpack>true</unpack>
-              <outputDirectory>${project.build.directory}/dependency/fontawesome</outputDirectory>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-resources-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>copy-site-resources</id>
-            <!-- Only execute this for the parent module -->
-            <inherited>false</inherited>
-            <phase>pre-site</phase>
-            <goals>
-              <goal>copy-resources</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>${project.build.directory}/site</outputDirectory>
-              <resources>
-                <resource>
-                  <directory>
-                    ${project.build.directory}/dependency/fontawesome/fontawesome-free-${fontawesome.version}-web
-                  </directory>
-                  <includes>
-                    <include>css/all.min.css</include>
-                  </includes>
-                </resource>
-                <resource>
-                  <directory>
-                    ${project.build.directory}/dependency/fontawesome/fontawesome-free-${fontawesome.version}-web/webfonts
-                  </directory>
-                  <targetPath>${project.build.directory}/site/fonts</targetPath>
-                </resource>
-                <resource>
-                  <directory>${project.basedir}/src/site/resources-filtered</directory>
-                  <filtering>true</filtering>
-                  <targetPath>${project.build.directory}/site</targetPath>
-                </resource>
-              </resources>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-
-      <!--
-        The bootstrap uses "fonts" as directory for locating fonts and fontawesome uses "webfonts".
-        This plugin updates the css to also use "fonts".
-      -->
-      <plugin>
-        <groupId>com.google.code.maven-replacer-plugin</groupId>
-        <artifactId>replacer</artifactId>
-        <executions>
-          <execution>
-            <id>streamline-font-urls</id>
-            <!-- Only execute this for the parent module -->
-            <inherited>false</inherited>
-            <phase>pre-site</phase>
-            <goals>
-              <goal>replace</goal>
-            </goals>
-            <configuration>
-              <file>${project.build.directory}/site/css/all.min.css</file>
-              <replacements>
-                <replacement>
-                  <token>../webfonts/</token>
-                  <value>../fonts/</value>
-                </replacement>
-              </replacements>
-            </configuration>
-          </execution>
-          <execution>
-            <id>convert-property-to-adoc</id>
-            <!-- Only execute this for the parent module -->
-            <inherited>false</inherited>
-            <phase>pre-site</phase>
-            <goals>
-              <goal>replace</goal>
-            </goals>
-            <configuration>
-              <file>${project.build.directory}/pom.adoc</file>
-              <replacements>
-                <replacement>
-                  <token>(.*)=(.*)</token>
-                  <value>\:$1\: $2</value>
-                </replacement>
-                <replacement>
-                  <token>#(.*)</token>
-                  <value>// $1</value>
-                </replacement>
-              </replacements>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-
       <!--
         Make the maven-site-plugin stage the output in the "asf-site" branch
       -->
@@ -1375,13 +1217,6 @@
             </asciidoc>
           </configuration>
           <dependencies>
-            <!-- All dependencies needed by the reflow skin -->
-            <dependency>
-              <groupId>io.github.devacfr.maven.skins</groupId>
-              <artifactId>reflow-velocity-tools</artifactId>
-              <version>${reflow.skin.version}</version>
-            </dependency>
-
            <!-- Add support for asciidoctor -->
             <dependency>
               <groupId>org.asciidoctor</groupId>
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/apache/index.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/apache/index.adoc
index 6de1c67..802707d 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/apache/index.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== Apache
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/developers/index.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/developers/index.adoc
index 6de1c67..a53b86c 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/developers/index.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== Developers
diff --git a/src/site/asciidoc/index.adoc b/src/site/asciidoc/index.adoc
index 76492b2..8604cc0 100644
--- a/src/site/asciidoc/index.adoc
+++ b/src/site/asciidoc/index.adoc
@@ -17,85 +17,61 @@
 :imagesdir: images/
 :icons: font
 
-== Apache PLC4X™: Universal Protocol Adapter for Industrial IoT
-
-image::iot-lab.jpg[width=480, float=right]
-
-[.lead]
-Just like OPC-UA, but totally different.
-
-We are currently probably experiencing the greatest advances in the way we process information in human history.
-
-While these advances are taking over more and more parts of our world, it seems one large segment has continuously been missing out all the fun.
-
-As everyone is talking about IoT, virtualization, BigData, FastData and machine-learning, the manufacturing industry has seemed to been stuck in a closed-source proprietary world.
-
-Unfortunately the industry's Programmable Logic Controllers (PLCs) communicate with a large number of usually incompatible protocols.
-This has made it difficult to create applications that integrate these systems with the new world.
-
-This is where PLC4X™ comes in:
-
-*It is our goal to create a set of libraries, that allow unified access to any type of PLC*
-
-In general we are trying to achieve the same goal OPC-UA is trying to address, but we try to do this by going a completely different path.
-
-While with OPC-UA every device has to be retrofitted with the ability to speak a new protocol and use a common client to speak with these devices,
-PLC4X tries to provide a unified API by implementing drivers for communicating with most industrial controllers in the protocols they natively understand.
-
-Each of these drivers is being implemented from the specs or by reverse engineering protocols in order to be fully Apache 2.0 licensed.
-
-The major benefits of PLC4X™ over OPC-UA, from our point of view are:
-
-- No need to modify existing hardware
-- Activating OPC-UA support on existing PLCs greatly increases the load on the PLCs
-- No need to pay for licenses to activate OPC-UA support
-
-At first we will be concentrating on providing adapters for the most widely used protocols such as:
-
-- icon:pause-circle[role=light-gray] BACnet
-- icon:check[role=green] link:protocols/ads/index.html[Beckhoff ADS (TCP)]
-- icon:wrench[role=yellow] link:protocpls/delta-v/index.html[Emerson DeltaV (UDP)]
-- icon:wrench[role=yellow] link:protocols/ethernet-ip/index.html[EtherNet/IP (TCP)]
-- icon:wrench[role=yellow] KNXNet/IP (UDP)
-- icon:check[role=green] link:protocols/modbus/index.html[Modbus (TCP)]
-- icon:check[role=green] link:protocols/opc-ua/index.html[OPC-UA (TCP)]
-- icon:pause-circle[role=light-gray] Profinet
-- icon:check[role=green] link:protocols/s7/index.html[S7-STEP7 (TCP)]
-- icon:wrench[role=yellow] link:protocols/s7/index.html[S7-TIA (TCP)]
-
-We are planning on providing support for the following programming languages:
-
-- icon:wrench[role=yellow] C++
-- icon:wrench[role=yellow] C# (.Net)
-- icon:check[role=green] link:plc4j/index.html[Java]
-- icon:wrench[role=yellow] Python
-
-Beyond implementing the pure adapters we have already implemented some of the planned integration modules to popular projects in the Apache IoT world such as:
-
-[width=100%]
-|===
-a|image::apache_edgent_logo.png[width=80%,link=https://edgent.apache.org] a|image::apache_camel_logo.png[width=80%,link=https://camel.apache.org] a|image::apache_kafka_logo.png[width=80%,link=https://kafka.apache.org]
-|icon:check[role=green] https://edgent.apache.org[Apache Edgent™ (Incubating)] |icon:check[role=green] https://camel.apache.org[Apache Camel™] |icon:check[role=green] https://kafka.apache.org[Apache Kafka™]
-
-a|image::apache_nifi_logo.svg[width=80%,link=https://nifi.apache.org] a|image::apache_brooklyn_logo.png[width=80%,link=https://brooklyn.apache.org] a|image::apache_mynewt_logo.png[width=80%,link=https://mynewt.apache.org]
-|icon:wrench[role=yellow] https://nifi.apache.org[Apache Nifi™] |icon:pause-circle[role=light-gray] https://brooklyn.apache.org[Apache Brooklyn™] |icon:pause-circle[role=light-gray] https://mynewt.apache.org[Apache Mynewt™]
-|===
-
-This greatly reduces the barriers and the learning curve for creating industrial IoT applications.
-
-=== Upcoming Conferences & Meetups
-
-On this page we are listing options to attend talks and events around PLC4X.
-
-[width="100%",cols="2,^2,2,^2,^3",options="header"]
-|=========================================================
-|Date           |Location        |Type   |Event                                                                 |Title
-|24th May 2019  |Frankfurt (GER) |Meetup |https://www.meetup.com/de-DE/IoT-Hessen/events/261422034/[IoT Hessen] |Industrial IoT goes Open Source: Apache PLC4X Talks & Party
-|18th June 2019 |Erfurt (GER)    |Meetup |https://www.meetup.com/de-DE/iothde/events/260140057/[IoT Thüringen]  |Industrie & IoT: Die perfekte Verbindung mit Flexibus & Apache PLC4X
-|=========================================================
-
-A full list containing also previous events can be found https://plc4x.apache.org/developers/conferences.html[here].
-
-Looking forward to meeting you.
-
-If you've got or found any events or talks we might be missing, please inform us on dev@plc4x.apache.org.
+++++
+    <header class="bg-light text-white align-middle" style="height: 300px;">
+        <div class="container text-center pt-5">
+            <h1>The universal protocol adapter for Industrial IoT</h1>
+            <p class="lead">Building bridges between IT and OT</p>
+        </div>
+    </header>
+    <section id="no-retrofit" class="align-middle" style="height: 300px;">
+        <div class="container text-center pt-5">
+            <div class="row">
+                <div class="col-lg-8 mx-auto">
+                    <h2>Connect your shopfloor assets without having to retrofit them</h2>
+                    <p class="lead">In contrast to other approches, Apache PLC4X lets you connect your industrial assets without needing to modify them.</p>
+                </div>
+            </div>
+        </div>
+    </section>
+    <section id="secure" class="bg-light align-middle" style="height: 300px;">
+        <div class="container text-center pt-5">
+            <div class="row">
+                <div class="col-lg-8 mx-auto">
+                    <h2>Secure by design</h2>
+                    <p class="lead">Not only are Apache PLC4X drivers implemented with security in mind, also do our <b>passive-mode drivers</b> bring to you guaranteed side-effect-freeness without the need to pay for validated software.</p>
+                </div>
+            </div>
+        </div>
+    </section>
+    <section id="performant" class="align-middle" style="height: 300px;">
+        <div class="container text-center pt-5">
+            <div class="row">
+                <div class="col-lg-8 mx-auto">
+                    <h2>Get the performance you need</h2>
+                    <p class="lead">Most approaches like OPC-UA currently don't deliver the performance needed for machine learning, deep learning and AI. Apache PLC4X allows you to get the data volumes in the resolutons needed, without stressing out your industial hardware.</p>
+                </div>
+            </div>
+        </div>
+    </section>
+    <section id="costs" class="bg-light align-middle" style="height: 300px;">
+        <div class="container text-center pt-5">
+            <div class="row">
+                <div class="col-lg-8 mx-auto">
+                    <h2>No license-costs, no restrictive licenses</h2>
+                    <p class="lead">Being open-source, Apache PLC4X is <b>free of charge</b>. Start experimenting without worrying about license costs or shady license agreements. The Apache 2.0 is one of the worlds <b>most trusted and adopted</b> open-source licenses out there.</p>
+                </div>
+            </div>
+        </div>
+    </section>
+    <section id="with-support" class="align-middle" style="height: 300px;">
+        <div class="container text-center pt-5">
+            <div class="row">
+                <div class="col-lg-8 mx-auto">
+                    <h2>Get the commercial support you need</h2>
+                    <p class="lead">Just because you can download and use Apache PLC4X for free doesn't mean that your're left on your own. Some of our community member's comapnies can also provide your with the <b>commercial support</b> you need.</p>
+                </div>
+            </div>
+        </div>
+    </section>
+++++
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/gettingstarted.adoc
index 6de1c67..e1771d4 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/gettingstarted.adoc
@@ -21,4 +21,4 @@ Depending on the programming language, the usage will differ, therefore please g
 
 === Java
 
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+For guides on how to write PLC4X applications with Java, please go to the link:plc4j/gettingstarted.html[Java Getting Started]
\ No newline at end of file
diff --git a/src/site/asciidoc/users/index.adoc b/src/site/asciidoc/users/index.adoc
new file mode 100644
index 0000000..4bdafbe
--- /dev/null
+++ b/src/site/asciidoc/users/index.adoc
@@ -0,0 +1,34 @@
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+:imagesdir: ../images/
+:icons: font
+
+== Users
+
+This part of the PLC4X website is dedicated to people wanting to use Apache PLC4X.
+
+It will provide information on the features and how to use them as well as documentation on how to use the different integration modules.
+
+[width=100%,cols="^.^,^.^,^.^"]
+|===
+a|image::apache_calcite_logo.svg[width=80%,link=https://calcite.apache.org] a|image::apache_camel_logo.png[width=80%,link=https://camel.apache.org] a|image::apache_edgent_logo.png[width=80%,link=https://edgent.apache.org]
+|icon:check[role=green] https://calcite.apache.org[Apache Calcite™]         |icon:check[role=green] https://camel.apache.org[Apache Camel™]         |icon:check[role=green] https://edgent.apache.org[Apache Edgent™ (retired)]
+a|image::apache_iotdb_logo.png[width=80%,link=https://iotdb.apache.org]     a|image::apache_kafka_logo.png[width=80%,link=https://kafka.apache.org] a|image::apache_nifi_logo.svg[width=80%,link=https://nifi.apache.org]
+|icon:check[role=green] https://iotdb.apache.org[Apache IoTDB™ (incubating)]|icon:check[role=green] https://kafka.apache.org[Apache Kafka™]         |icon:wrench[role=green] https://nifi.apache.org[Apache Nifi™]
+a|image::apache_streampipes_logo.png[width=80%,link=https://streampipes.apache.org]     a|image::eclipse_ditto_logo.svg[link=https://www.eclipse.org/ditto/] a|image::elastic_logstash_logo.svg[width=80%,link=https://www.elastic.co/de/products/logstash]
+|icon:wrench[role=yellow] https://mynewt.apache.org[Apache StreamPipes™ (incubating)]   |icon:wrench[role=yellow] https://kafka.apache.org[Apache Kafka™]              |icon:wrench[role=green] https://www.elastic.co/de/products/logstash[Elastic Logstash™]
+|===
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/integrations/apache-calcite.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/integrations/apache-calcite.adoc
index 6de1c67..198822d 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/integrations/apache-calcite.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== Apache Calcite
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/integrations/apache-camel.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/integrations/apache-camel.adoc
index 6de1c67..6f2fba0 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/integrations/apache-camel.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== Apache Camel
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/integrations/apache-edgent.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/integrations/apache-edgent.adoc
index 6de1c67..af6030b 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/integrations/apache-edgent.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== Apache Edgent (Retired)
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/integrations/apache-iotdb.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/integrations/apache-iotdb.adoc
index 6de1c67..7e14c14 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/integrations/apache-iotdb.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== Apache IotDB (Incubating)
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/integrations/apache-kafka.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/integrations/apache-kafka.adoc
index 6de1c67..7745151 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/integrations/apache-kafka.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== Apache Kafka
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/integrations/apache-nifi.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/integrations/apache-nifi.adoc
index 6de1c67..798b3c7 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/integrations/apache-nifi.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== Apache NiFi
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/integrations/apache-streampipes.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/integrations/apache-streampipes.adoc
index 6de1c67..c5491fd 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/integrations/apache-streampipes.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== Apache StreamPipes (incubating)
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/integrations/eclipse-ditto.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/integrations/eclipse-ditto.adoc
index 6de1c67..a9a709e 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/integrations/eclipse-ditto.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== Eclipse Ditto
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/integrations/elastic-logstash.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/integrations/elastic-logstash.adoc
index 6de1c67..352cbb2 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/integrations/elastic-logstash.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== Elastic Logstash
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/integrations/index.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/integrations/index.adoc
index 6de1c67..016d248 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/integrations/index.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== Integrations
diff --git a/src/site/asciidoc/users/plc4j/gettingstarted.adoc b/src/site/asciidoc/users/plc4j/gettingstarted.adoc
new file mode 100644
index 0000000..c2a692d
--- /dev/null
+++ b/src/site/asciidoc/users/plc4j/gettingstarted.adoc
@@ -0,0 +1,178 @@
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+
+== Getting Started
+
+=== Using the PLC4X API directly
+
+In order to write a valid PLC4X Java application, all you need, is to add a dependency to the `api module`.
+When using Maven, all you need to do is add this dependency:
+
+[subs=attributes+]
+----
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-api</artifactId>
+      <version>{project-version}</version>
+    </dependency>
+----
+
+This will allow you to write a valid application, that compiles fine.
+However in order to actually connect to a device using a given protocol, you need to add this protocol implementation to the classpath.
+
+For example in order to communicate with an `S7 device` using the `S7 Protocol`, you would need to add the following dependency:
+
+[subs=attributes+]
+----
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-driver-s7</artifactId>
+      <version>{project-version}</version>
+      <scope>runtime</scope>
+    </dependency>
+----
+
+So as soon as your project has the API and a driver implementation available, you first need to get a `PlcConnection` instance.
+This is done via the `PlcDriverManager` by asking this to create an instance for a given `PLC4X connection string`.
+
+----
+String connectionString = "s7://10.10.64.20/1/1";
+
+try (PlcConnection plcConnection = new PlcDriverManager().getConnection(connectionString)) {
+
+  ... do something with the connection here ...
+
+}
+----
+
+PLC4X generally supports a very limited set of functions, which is not due to the fact, that we didn't implement things, but that PLCs generally support a very limited set of functions.
+
+The basic functions supported by PLCs and therefore supported by PLC4X are:
+
+* Read data
+* Write data
+* Subscribe for data
+* Execute functions in the PLC
+* List resources in the PLC
+
+In general we will try to offer as many features as possible.
+So if a protocol doesn't support subscription based communication it is our goal to simulate this by polling in the background so it is transparent for the users.
+
+But there are some cases in which we can't simulate or features are simply disabled intentionally:
+
+* If a PLC and/or protocol don't support executing of functions, we simply can't provide this functionality.
+* We will be providing stripped down versions of drivers, that for example intentionally don't support any writing of data and executing of functions.
+
+Therefore we use metadata to check programmatically, if a given feature is available:
+
+----
+// Check if this connection support reading of data.
+if (!plcConnection.getMetadata().canRead()) {
+  logger.error("This connection doesn't support reading.");
+  return;
+}
+----
+
+As soon as you have ensured that a feature is available, you are ready to build a first request.
+This is done by getting a `PlcRequestBuilder`:
+
+----
+// Create a new read request:
+// - Give the single item requested the alias name "value"
+PlcReadRequest.Builder builder = plcConnection.readRequestBuilder();
+builder.addItem("value-1", "%Q0.4:BOOL");
+builder.addItem("value-2", "%Q0:BYTE");
+builder.addItem("value-3", "%I0.2:BOOL");
+builder.addItem("value-4", "%DB.DB1.4:INT");
+PlcReadRequest readRequest = builder.build();
+----
+
+
+So, as you can see, you prepare a request, by adding items to the request and in the end by calling the `build` method.
+
+The request is sent to the PLC by issuing the `execute` method on the request object:
+
+----
+CompletableFuture<? extends PlcReadResponse> asyncResponse = readRequest.execute();
+asyncResponse.whenComplete((response, throwable) -> {
+  ... process the response ...
+});
+----
+
+In general all requests are executed asynchronously.
+So as soon as the request is fully processed, the callback gets called and will contain a `readResponse`, if everything went right or a `throwable` if there were problems.
+
+However if you want to write your code in a more synchronous fashion, the following alternative will provide this:
+
+----
+PlcReadResponse response = readRequest.execute().get();
+----
+
+Processing of the responses is identical in both cases.
+The following example will demonstrate some of the options you have:
+
+----
+for (String fieldName : response.getFieldNames()) {
+    if(response.getResponseCode(fieldName) == PlcResponseCode.OK) {
+        int numValues = response.getNumberOfValues(fieldName);
+        // If it's just one element, output just one single line.
+        if(numValues == 1) {
+            logger.info("Value[" + fieldName + "]: " + response.getObject(fieldName));
+        }
+        // If it's more than one element, output each in a single row.
+        else {
+            logger.info("Value[" + fieldName + "]:");
+            for(int i = 0; i < numValues; i++) {
+                logger.info(" - " + response.getObject(fieldName, i));
+            }
+        }
+    }
+    // Something went wrong, to output an error message instead.
+    else {
+        logger.error("Error[" + fieldName + "]: " + response.getResponseCode(fieldName).name());
+    }
+}
+----
+
+In the for loop, we are demonstrating how the user can iterate over the address aliases in the response.
+In case of an ordinary read request, this will be predefined by the items in the request, however in case of a subscription response, the response might only contain some of the items that were subscribed.
+
+Before accessing the data, it is advisable to check if an item was correctly returned.
+This is done by the `getResponseCode` method for a given alias.
+If this is `PlcResponseCode.OK`, everything is ok, however it could be one of the following:
+
+- NOT_FOUND
+- ACCESS_DENIED
+- INVALID_ADDRESS
+- INVALID_DATATYPE
+- INTERNAL_ERROR
+- RESPONSE_PENDING
+
+Assuming the return code was `OK`, we can continue accessing the data.
+
+As some addresses support reading arrays, with the method `getNumberOfValues` the user can check how many items of a given type are returned.
+For convenience the response object has single-argument methods for accessing the data, which default to returning the first element.
+
+    response.getObject(fieldName)
+
+If you want to access a given element number, please use the two-argument version instead:
+
+    response.getObject(fieldName, 42)
+
+PLC4X provides getters and setters for a wide variety of Java types and automatically handles the type conversion.
+However when for example trying to get a long-value as a byte and the long-value exceeds the range supported by the smaller type, a `RuntimeException` of type `PlcIncompatibleDatatypeException`.
+In order to avoid causing this exception to be thrown, however there are `isValid{TypeName}` methods that you can use to check if the value is compatible.
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/protocols/ab-eth.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/protocols/ab-eth.adoc
index 6de1c67..2b9228b 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/protocols/ab-eth.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== AB-ETH
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/protocols/ads.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/protocols/ads.adoc
index 6de1c67..2222d94 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/protocols/ads.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== ADS/AMS
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/protocols/bacnetip.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/protocols/bacnetip.adoc
index 6de1c67..0bdbc25 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/protocols/bacnetip.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== BACnet/IP
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/protocols/deltav.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/protocols/deltav.adoc
index 6de1c67..01ce59a 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/protocols/deltav.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== DeltaV
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/protocols/df1.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/protocols/df1.adoc
index 6de1c67..0ad3b86 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/protocols/df1.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== DF1
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/protocols/ethernet-ip.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/protocols/ethernet-ip.adoc
index 6de1c67..971aa15 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/protocols/ethernet-ip.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== EtherNet/IP
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/protocols/index.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/protocols/index.adoc
index 6de1c67..96f6dcd 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/protocols/index.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== Protocols
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/protocols/knxnetip.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/protocols/knxnetip.adoc
index 6de1c67..42dbeb8 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/protocols/knxnetip.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== KNXnet/IP
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/protocols/modbus.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/protocols/modbus.adoc
index 6de1c67..90df9ae 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/protocols/modbus.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== Modbus (TCP/Serial)
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/protocols/opc-ua.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/protocols/opc-ua.adoc
index 6de1c67..046141a 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/protocols/opc-ua.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== OPC UA
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/protocols/s7.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/protocols/s7.adoc
index 6de1c67..3f05ee0 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/protocols/s7.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== S7 (Step7)
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/protocols/simulated.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/protocols/simulated.adoc
index 6de1c67..a6aaef2 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/protocols/simulated.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== Simulated
diff --git a/src/site/asciidoc/users/gettingstarted.adoc b/src/site/asciidoc/users/tools/index.adoc
similarity index 72%
copy from src/site/asciidoc/users/gettingstarted.adoc
copy to src/site/asciidoc/users/tools/index.adoc
index 6de1c67..a23c3e1 100644
--- a/src/site/asciidoc/users/gettingstarted.adoc
+++ b/src/site/asciidoc/users/tools/index.adoc
@@ -14,11 +14,7 @@
 //  See the License for the specific language governing permissions and
 //  limitations under the License.
 //
+:imagesdir: ../../images/
+:icons: font
 
-== Getting Started
-
-Depending on the programming language, the usage will differ, therefore please go to the `Getting Started` version of the language of choice.
-
-=== Java
-
-For guides on how to write PLC4X applications with Java, please go to the link:../plc4j/users/gettingstarted.html[Java Getting Started]
\ No newline at end of file
+== Tools
diff --git a/src/site/asciidoc/users/tools/opm.adoc b/src/site/asciidoc/users/tools/opm.adoc
new file mode 100644
index 0000000..e41c3c3
--- /dev/null
+++ b/src/site/asciidoc/users/tools/opm.adoc
@@ -0,0 +1,73 @@
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+
+== Object PLC Mapping
+
+
+=== What is Object PLC Mapping
+
+Object PLC Mapping (OPM) is heavily inspired by the Java Persistence API (JPA) [1].
+One of the main goal of the PLC4X Project is to make it easy to communicate with PLC devices to enable the development
+of applications that interact with PLCs.
+As many (or even most) of the application programmers are no experts in PLC Communication and protocols it should be as
+easy as possible to interact with PLCs without too much domain knowledge.
+This is exactly the reason why JPA was initialized many years ago to allow the interaction with a Database by simply
+calling methods on POJOs (Plain old Java Object).
+This is exactly what the OPM Module is for, to enable PLC communication by simply interacting with a POJO.
+
+=== Simple Example
+
+The following short code snippet shows how to read one value from a PLC via OPM.
+First, a _PlcEntityManager_ is instantiated, then a *connected* entity is fetched for a given PLC connection address.
+Connected means that all method calls of the entity are intersected and replaced by PLC calls.
+This is then used to print one value to the console.
+In the second snippet one can see how the Entity class looks. The address where to read the variable _pressure_ from is given
+in the _@PlcField_ annotation.
+[source,java]
+----
+public static void main(String[] args) {
+    PlcEntityManager em = new PlcEntityManager();
+    MyEntity entity = em.connect(MyEntity.class, "s7://...");
+    System.out.println(entity.getPressure());
+}
+----
+The class _MyEntity_ is given by
+[source,java]
+----
+@PlcEntity
+public class MyEntity {
+
+    @PlcField("DB01:DW01:LONG")
+    private double pressure;
+
+    public void MyEntity() {
+        // For OPM
+    }
+
+    public double getPressure() {
+        return pressure;
+    }
+}
+----
+
+=== Annotations
+
+=== More details
+
+=== References
+
+[1] https://www.oracle.com/technetwork/java/javaee/tech/persistence-jsp-140049.html
\ No newline at end of file
diff --git a/src/site/asciidoc/users/tools/testing.adoc b/src/site/asciidoc/users/tools/testing.adoc
new file mode 100644
index 0000000..55dde26
--- /dev/null
+++ b/src/site/asciidoc/users/tools/testing.adoc
@@ -0,0 +1,165 @@
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+
+== Testing (or using PLC4X without a PLC)
+
+=== The Mock Driver
+
+PLC4X has a _Mock Driver_ which was initially implemented to be used for Unit Tests and this still is its main purpose.
+But this driver is also very suitable to play around a bit with the PLC4X API if no _Hardware_ PLC is available.
+The driver can be found in the Maven module
+
+```
+<dependency>
+  <groupId>org.apache.plc4x</groupId>
+  <artifactId>plc4j-transport-test</artifactId>
+  <version>${current.version}</version>
+  <scope>test</scope>
+</dependency>
+```
+
+The connection string Syntax for the mock driver is `mock:{name-of-the-connection}`. So you can use multiple Mock Devices at the same time.
+
+The Mock Driver does nothing else than forwarding all Requests to a _Virtual Device_ which we can provide to control all responses and also Monitor them, e.g. for unit tests.
+The Interface for the Mock Device is
+
+```
+public interface MockDevice {
+
+    Pair<PlcResponseCode, PlcValue> read(String fieldQuery);
+
+    PlcResponseCode write(String fieldQuery, Object value);
+
+    Pair<PlcResponseCode, PlcSubscriptionHandle> subscribe(String fieldQuery);
+
+    void unsubscribe();
+
+    // ...
+
+}
+```
+
+=== Simple Example
+
+Imagine we have some Code which we cannot control or whose functionality we want to test.
+This can be done with the Mock Driver in the following way.
+
+First, a new Mock Connection is established (like any other connection also would be):
+```
+PlcDriverManager driverManager = new PlcDriverManager();
+PlcMockConnection connection = (PlcMockConnection) driverManager.getConnection("mock:my-mock-connection");
+```
+You see, that we directly cast the Connection to a `PlcMockConnection`. This is done, because we need to _connect_ a Device to this Mock Connection.
+
+This is done in the following Snippet
+```
+connection.setDevice(mockDevice);
+```
+Here, we pass it an instance of `MockDevice` which could be a simple Implementation of the interface like
+```
+MockDevice mockDevice = new MockDevice() {
+
+    Pair<PlcResponseCode, PlcValue> read(String fieldQuery) {
+        System.out.println("I got a read to " + fieldQuery);
+        return Pair.of(PlcResponseCode.OK, new PlcString("hello"));
+    }
+
+    PlcResponseCode write(String fieldQuery, Object value) {
+        System.out.println("I got a write to " + fieldQuery + " with the value " + value);
+        return PlcResponseCode.OK;
+    }
+
+    // ...
+
+}
+```
+This would just return a String Value `hello` for every request and print all read and write requests to the Console.
+
+=== Unit Testing with the Mock Driver
+
+To use the Mock driver in Unit Tests the easiest way is to generate the `MockDriver` instance as Mockito (or any other Framework) Mock.
+Like in the following Example
+
+```
+MockDevice mockDevice = Mockito.mock(MockDevice.class);
+
+PlcDriverManager driverManager = new PlcDriverManager();
+PlcMockConnection connection = (PlcMockConnection) driverManager.getConnection("mock:my-mock-connection");
+connection.setDevice(mockDevice);
+
+// Populate the Mock to avoid a NPE
+when(mockDevice).read(anyString()).thenReturn(Pair.of(PlcResponseCode.OK, new PlcString("hello")));
+
+// Some Demo code that uses the same Driver Manager and either the connection from above
+// or at least mock:my-mock-connection as connection string
+// Here: send a request to the field "MyAdress"
+connection
+    .readRequestBuilder
+    .addItem("station", "MyAdress")
+    .build()
+    .execute()
+    .get();
+
+// Check that the we really issued a Read request to the Field "MyAdress"
+verify(mockDevice).read(eq("MyAdress"));
+```
+
+But as the _MockDriver_ uses a static Mock Connection registry the following Code works also
+
+```
+MockDevice mockDevice = Mockito.mock(MockDevice.class);
+
+// Setup
+PlcDriverManager driverManager = new PlcDriverManager();
+PlcMockConnection connection = (PlcMockConnection) driverManager.getConnection("mock:my-mock-connection");
+connection.setDevice(mockDevice);
+// Populate the Mock to avoid a NPE
+when(mockDevice).read(anyString()).thenReturn(Pair.of(PlcResponseCode.OK, new PlcString("hello")));
+
+// Some Demo code that uses the same Driver Manager and either the connection from above
+// or at least mock:my-mock-connection as connection string
+// Here: send a request to the field "MyAdress"
+// and we build up a new Connection
+try (PlcConnection conn = driverManager.getConnection("mock:my-mock-connection")) {
+    conn
+        .readRequestBuilder
+        .addItem("station", "MyAdress")
+        .build()
+        .execute()
+        .get();
+} catch (Exception e) {
+    // do nothing
+}
+
+// Check that the we really issued a Read request to the Field "MyAdress"
+verify(mockDevice).read(eq("MyAdress"));
+```
+
+The Snippet above shows that the part under test really has to share nothing with the test code except for the connection string.
+
+=== Conclusion
+
+The above examples show that the `MockDriver` driver can not only be used to play around with the API but is also a powerful tool to
+do unit testing of Code which uses the PLC4X API.
+All that needs to be done is to either pass an instance of the Mocked Connection or just use the same Connection string (e.g. from a test configuration) that was used to Prepare a Mock Device.
+Some Examples of futher (more Complex) use cases can be found in the PLC4X Codebases, e.g. in the following classes
+
+* `org.apache.plc4x.java.opm.PlcEntityManagerTest`
+* `org.apache.plc4x.java.opm.PlcEntityManagerComplexTest`
+* `org.apache.plc4x.java.scraper.ScraperTest`
+
+and many more Test classes, especially in the OPM and the Scraper Module.
\ No newline at end of file
diff --git a/src/site/resources/images/apache_calcite_logo.svg b/src/site/resources/images/apache_calcite_logo.svg
new file mode 100644
index 0000000..ce489a1
--- /dev/null
+++ b/src/site/resources/images/apache_calcite_logo.svg
@@ -0,0 +1,346 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="113.5789mm"
+   height="29.350201mm"
+   viewBox="0 0 113.5789 29.350201"
+   version="1.1"
+   id="svg7816"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+   sodipodi:docname="logo.svg"
+   inkscape:export-filename="/Users/zabetak/Workspaces/apache-projects/zabetak-calcite/site/img/logo.png"
+   inkscape:export-xdpi="187.72"
+   inkscape:export-ydpi="187.72">
+  <defs
+     id="defs7810" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.2196532"
+     inkscape:cx="80.314352"
+     inkscape:cy="40.959351"
+     inkscape:document-units="mm"
+     inkscape:current-layer="g8447"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="2560"
+     inkscape:window-height="1395"
+     inkscape:window-x="58"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7813">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-20.497197,-143.73874)">
+    <g
+       id="g8447"
+       transform="matrix(0.29907012,0,0,0.29907012,121.31421,121.32321)">
+      <g
+         aria-label="calcite"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:38.43524169999999884px;line-height:125%;font-family:Montserrat;-inkscape-font-specification:Montserrat;letter-spacing:0px;word-spacing:0px;fill:#dddddd;fill-opacity:1;stroke:#000000;stroke-width:1.54478822;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.00196078;stroke-miterlimit:4;stroke-dasharray:none"
+         id="text8416"
+         transform="translate(-141.53577,6.3098891)">
+        <path
+           d="m -96.396518,152.72675 q -9.789582,0 -16.845142,-6.61458 -7.05555,-6.70278 -7.05555,-17.4625 0,-10.75972 7.32014,-17.4625 7.40833,-6.79097 17.991663,-6.79097 10.583333,0 17.903472,7.32013 l -5.820833,7.14375 q -6.085417,-5.29166 -12.259028,-5.29166 -6.173614,0 -10.759724,4.14514 -4.49791,4.05694 -4.49791,10.58333 0,6.43819 4.49791,10.93611 4.49792,4.49792 11.024307,4.49792 6.614584,0 12.435417,-5.99723 l 5.820833,6.35 q -8.554861,8.64306 -19.755555,8.64306 z"
+           style="font-size:88.19444274999997901px;fill:#dddddd;fill-opacity:1;stroke-width:1.54478822;stroke:#000000;stroke-opacity:0.00196078;stroke-miterlimit:4;stroke-dasharray:none"
+           id="path8481"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -28.727952,152.02119 h -8.995833 v -6.2618 q -5.820833,6.96736 -15.610417,6.96736 -7.320138,0 -12.170833,-4.14514 -4.7625,-4.14514 -4.7625,-11.0243 0,-6.96737 5.115278,-10.40695 5.115278,-3.43958 13.846528,-3.43958 h 12.788194 v -1.76389 q 0,-9.34861 -10.406944,-9.34861 -6.526389,0 -13.581945,4.7625 l -4.409722,-6.17361 q 8.554861,-6.79097 19.402778,-6.79097 8.290277,0 13.493749,4.23333 5.291667,4.14514 5.291667,13.14097 z m -9.877778,-17.4625 v -3.96875 h -11.112499 q -1 [...]
+           style="font-size:88.19444274999997901px;fill:#dddddd;fill-opacity:1;stroke-width:1.54478822;stroke:#000000;stroke-opacity:0.00196078;stroke-miterlimit:4;stroke-dasharray:none"
+           id="path8483"
+           inkscape:connector-curvature="0" />
+        <path
+           d="M -5.0132931,152.02119 H -14.891071 V 86.580918 h 9.8777779 z"
+           style="font-size:88.19444274999997901px;fill:#dddddd;fill-opacity:1;stroke-width:1.54478822;stroke:#000000;stroke-opacity:0.00196078;stroke-miterlimit:4;stroke-dasharray:none"
+           id="path8485"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 30.038487,152.72675 q -9.789583,0 -16.845139,-6.61458 -7.0555549,-6.70278 -7.0555549,-17.4625 0,-10.75972 7.3201389,-17.4625 7.408333,-6.79097 17.991666,-6.79097 10.583333,0 17.903472,7.32013 l -5.820833,7.14375 q -6.085417,-5.29166 -12.259028,-5.29166 -6.173611,0 -10.759722,4.14514 -4.497916,4.05694 -4.497916,10.58333 0,6.43819 4.497916,10.93611 4.497917,4.49792 11.024306,4.49792 6.614583,0 12.435416,-5.99723 l 5.820833,6.35 q -8.554861,8.64306 -19.755555,8.64306 z"
+           style="font-size:88.19444274999997901px;fill:#dddddd;fill-opacity:1;stroke-width:1.54478822;stroke:#000000;stroke-opacity:0.00196078;stroke-miterlimit:4;stroke-dasharray:none"
+           id="path8487"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 69.917539,152.02119 h -9.877778 v -46.91944 h 9.877778 z M 60.657122,95.75314 q -1.852083,-1.852083 -1.852083,-4.409722 0,-2.557639 1.852083,-4.409722 1.852084,-1.852084 4.409722,-1.852084 2.557639,0 4.409723,1.852084 1.852083,1.852083 1.852083,4.409722 0,2.557639 -1.852083,4.409722 -1.852084,1.852083 -4.409723,1.852083 -2.557638,0 -4.409722,-1.852083 z"
+           style="font-size:88.19444274999997901px;fill:#dddddd;fill-opacity:1;stroke-width:1.54478822;stroke:#000000;stroke-opacity:0.00196078;stroke-miterlimit:4;stroke-dasharray:none"
+           id="path8489"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 96.326256,113.03925 v 23.8125 q 0,3.35139 1.763889,5.37986 1.763889,1.94028 4.938885,1.94028 3.175,0 6.08542,-3.08681 l 4.05694,6.96736 q -5.20347,4.67431 -11.55347,4.67431 -6.261803,0 -10.75972,-4.32153 -4.409722,-4.40972 -4.409722,-11.81805 v -23.54792 h -5.909027 v -7.9375 h 5.909027 V 90.373279 h 9.877778 v 14.728471 h 12.347224 v 7.9375 z"
+           style="font-size:88.19444274999997901px;fill:#dddddd;fill-opacity:1;stroke-width:1.54478822;stroke:#000000;stroke-opacity:0.00196078;stroke-miterlimit:4;stroke-dasharray:none"
+           id="path8491"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 164.67419,132.883 h -36.77708 q 0.35278,5.11528 4.6743,8.29028 4.32153,3.0868 9.87778,3.0868 8.81945,0 13.40556,-5.55625 l 5.64444,6.17361 q -7.58472,7.84931 -19.75555,7.84931 -9.87778,0 -16.84514,-6.52639 -6.87917,-6.61458 -6.87917,-17.63889 0,-11.1125 7.05556,-17.63889 7.05555,-6.52638 16.58055,-6.52638 9.6132,0 16.31597,5.82083 6.70278,5.73264 6.70278,15.875 z m -36.77708,-7.76111 h 26.8993 q 0,-5.90903 -3.70416,-9.08403 -3.70417,-3.175 -9.17223,-3.175 -5.37986,0 -9.70 [...]
+           style="font-size:88.19444274999997901px;fill:#dddddd;fill-opacity:1;stroke-width:1.54478822;stroke:#000000;stroke-opacity:0.00196078;stroke-miterlimit:4;stroke-dasharray:none"
+           id="path8493"
+           inkscape:connector-curvature="0" />
+      </g>
+      <g
+         aria-label="APACHE"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.51913642999999965px;line-height:125%;font-family:Montserrat;-inkscape-font-specification:Montserrat;letter-spacing:0px;word-spacing:0px;fill:#dddddd;fill-opacity:1;stroke:#000000;stroke-width:0.66873949;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.00196078;stroke-miterlimit:4;stroke-dasharray:none"
+         id="text8424"
+         transform="translate(-141.53577,6.3098891)">
+        <path
+           d="m -99.951444,95.826721 -1.463016,-3.314925 h -7.05579 l -1.44449,3.314925 h -1.57413 l 5.81501,-12.963395 h 1.53709 l 5.796491,12.963395 z m -7.907676,-4.685341 h 5.85205 l -2.94454,-6.666889 z"
+           style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:Montserrat;-inkscape-font-specification:'Montserrat Light';stroke-width:0.66873949;fill:#dddddd;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;stroke:#000000;stroke-opacity:0.00196078"
+           id="path8468"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -91.418752,82.863326 q 2.407487,0 3.722346,1.148186 1.333378,1.129667 1.333378,3.203811 0,2.1297 -1.333378,3.314925 -1.314859,1.185225 -3.722346,1.185225 h -3.389002 v 4.111248 h -1.481531 V 82.863326 Z m -0.05556,7.481731 q 1.759318,0 2.722313,-0.777804 0.962995,-0.796323 0.962995,-2.314892 0,-1.481531 -0.962995,-2.240815 -0.962995,-0.777804 -2.722313,-0.777804 h -3.333444 v 6.111315 z"
+           style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:Montserrat;-inkscape-font-specification:'Montserrat Light';stroke-width:0.66873949;fill:#dddddd;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;stroke:#000000;stroke-opacity:0.00196078"
+           id="path8470"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -74.957845,95.826721 -1.463012,-3.314925 h -7.055791 l -1.444492,3.314925 h -1.574127 l 5.815009,-12.963395 h 1.537088 l 5.79649,12.963395 z m -7.907671,-4.685341 h 5.852047 l -2.944543,-6.666889 z"
+           style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:Montserrat;-inkscape-font-specification:'Montserrat Light';stroke-width:0.66873949;fill:#dddddd;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;stroke:#000000;stroke-opacity:0.00196078"
+           id="path8472"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -62.232013,85.733792 q -0.759285,-0.759285 -1.777837,-1.185225 -1.000034,-0.444459 -2.055624,-0.444459 -1.444493,0 -2.666756,0.703727 -1.203744,0.685208 -1.907471,1.888952 -0.703727,1.203744 -0.703727,2.629717 0,1.407455 0.703727,2.611199 0.703727,1.203743 1.907471,1.907471 1.222263,0.703727 2.666756,0.703727 1.05559,0 2.055624,-0.407421 1.000033,-0.42594 1.777837,-1.166706 l 0.907438,0.981514 q -0.981515,0.925957 -2.240816,1.463012 -1.240782,0.518536 -2.57416,0.518536 -1 [...]
+           style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:Montserrat;-inkscape-font-specification:'Montserrat Light';stroke-width:0.66873949;fill:#dddddd;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;stroke:#000000;stroke-opacity:0.00196078"
+           id="path8474"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -58.672286,82.863326 h 1.48153 v 5.870566 h 7.815076 v -5.870566 h 1.481531 v 12.963395 h -1.481531 v -5.740932 h -7.815076 v 5.740932 h -1.48153 z"
+           style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:Montserrat;-inkscape-font-specification:'Montserrat Light';stroke-width:0.66873949;fill:#dddddd;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;stroke:#000000;stroke-opacity:0.00196078"
+           id="path8476"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m -43.951019,82.863326 h 8.79659 v 1.370416 h -7.315059 v 4.351997 h 6.537255 v 1.351897 h -6.537255 v 4.518669 h 7.555808 v 1.370416 h -9.037339 z"
+           style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:Montserrat;-inkscape-font-specification:'Montserrat Light';stroke-width:0.66873949;fill:#dddddd;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;stroke:#000000;stroke-opacity:0.00196078"
+           id="path8478"
+           inkscape:connector-curvature="0" />
+      </g>
+      <g
+         aria-label="TM"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.56146717000000024px;line-height:125%;font-family:Montserrat;-inkscape-font-specification:Montserrat;letter-spacing:0px;word-spacing:0px;fill:#dddddd;fill-opacity:1;stroke:#000000;stroke-width:0.66873949;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.00196078;stroke-miterlimit:4;stroke-dasharray:none"
+         id="text8428"
+         transform="translate(-141.53577,6.3098891)"
+         inkscape:export-xdpi="187.72"
+         inkscape:export-ydpi="187.72">
+        <path
+           d="m 160.02881,90.541646 v 6.832828 h -1.36426 v -6.832828 h -2.45103 v -1.248638 h 6.26632 v 1.248638 z"
+           style="stroke-width:0.66873949;stroke-miterlimit:4;stroke-dasharray:none;stroke:#000000;stroke-opacity:0.00196078;fill:#dddddd;fill-opacity:1"
+           id="path8496"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 165.31836,97.374474 h -1.36425 v -8.081466 h 2.12731 l 2.43947,5.075484 2.43947,-5.075484 h 2.11574 v 8.081466 h -1.36425 v -6.312562 l -2.821,5.607312 h -0.76305 l -2.80944,-5.607312 z"
+           style="stroke-width:0.66873949;stroke-miterlimit:4;stroke-dasharray:none;stroke:#000000;stroke-opacity:0.00196078;fill:#dddddd;fill-opacity:1"
+           id="path8498"
+           inkscape:connector-curvature="0" />
+      </g>
+      <flowRoot
+         xml:space="preserve"
+         id="flowRoot842"
+         style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
+         transform="matrix(0.88468662,0,0,0.88468662,-337.10159,24.795289)"><flowRegion
+           id="flowRegion844"><rect
+             id="rect846"
+             width="58.92857"
+             height="107.14286"
+             x="262.85715"
+             y="95.83709" /></flowRegion><flowPara
+           id="flowPara848" /></flowRoot>      <g
+         transform="matrix(3.3436975,0,0,3.3436975,-435.48068,-601.60016)"
+         id="layer1-9"
+         inkscape:label="Layer 1">
+        <g
+           transform="matrix(0.21374972,0.11443934,-0.11443934,0.21374972,57.818989,161.95022)"
+           id="g2277">
+          <path
+             sodipodi:nodetypes="ccccccccc"
+             inkscape:connector-curvature="0"
+             id="path1365"
+             d="m 72.769296,278.65947 -11.010793,6.74091 -11.010792,-0.006 -11.010792,-0.006 -11.010793,-6.75414 -13.399267,-19.40016 35.761967,-87.93272 35.50138,87.97544 z"
+             inkscape:transform-center-y="-5.6594751"
+             inkscape:transform-center-x="-0.058269836"
+             style="opacity:1;fill:#aaccff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.31299999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+          <path
+             style="opacity:1;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.31299999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             inkscape:transform-center-x="-0.058269836"
+             inkscape:transform-center-y="-5.6594751"
+             d="m 72.769296,278.65947 -11.010793,6.74091 -11.010792,-0.006 -11.010792,-0.006 -11.010793,-6.75414 44.04317,0.0252 z"
+             id="path1367"
+             inkscape:connector-curvature="0"
+             sodipodi:nodetypes="ccccccc" />
+          <path
+             style="opacity:1;fill:#aaccff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.68314427;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             inkscape:transform-center-x="-0.054836836"
+             inkscape:transform-center-y="-5.3264051"
+             d="m 71.480906,276.02902 -10.362104,6.34377 -10.362104,-0.006 -10.362103,-0.006 -10.362104,-6.35622 -12.609864,-18.25722 33.65509,-82.75226 33.409855,82.79246 z"
+             id="path1308"
+             inkscape:connector-curvature="0"
+             sodipodi:nodetypes="ccccccccc" />
+          <path
+             sodipodi:nodetypes="ccccccccc"
+             inkscape:connector-curvature="0"
+             id="path1313"
+             d="m 71.480906,276.02902 -10.362104,-5.82706 -10.362104,-0.006 -10.362103,-0.006 -10.362104,5.81461 -12.609864,-18.25722 33.65509,-82.75226 33.409855,82.79246 z"
+             inkscape:transform-center-y="-5.3264051"
+             inkscape:transform-center-x="-0.054836836"
+             style="opacity:1;fill:#5599ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.68314427;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+          <path
+             style="opacity:1;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.68314427;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             inkscape:transform-center-x="-0.054836836"
+             inkscape:transform-center-y="-5.3264051"
+             d="m 61.118802,247.44779 -10.362104,-0.006 -10.362103,-0.006 -22.971968,10.31156 33.65509,-82.75226 33.409855,82.79246 z"
+             id="path1315"
+             inkscape:connector-curvature="0"
+             sodipodi:nodetypes="ccccccc" />
+          <path
+             style="opacity:1;fill:#80b3ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.68314427;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             inkscape:transform-center-x="-0.054836836"
+             inkscape:transform-center-y="-5.3264051"
+             d="m 61.118802,270.20196 -20.724207,-0.012 v -22.75417 l 10.683122,-72.4407 10.041085,72.4527 z"
+             id="path1319"
+             inkscape:connector-curvature="0"
+             sodipodi:nodetypes="cccccc" />
+          <path
+             inkscape:connector-curvature="0"
+             style="opacity:1;fill:#5599ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.58196259;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             d="m 193.04883,71.792969 -40.37695,273.791011 39.16406,0.0234 39.16406,0.0215 z"
+             transform="matrix(0.26458333,0,0,0.26458333,0,156)"
+             id="path1321" />
+          <path
+             sodipodi:nodetypes="cccc"
+             inkscape:connector-curvature="0"
+             id="path1345"
+             d="m 61.118802,282.37279 -20.724207,-0.012 10.683122,-5.23653 z"
+             inkscape:transform-center-y="-5.3264051"
+             inkscape:transform-center-x="-0.054836836"
+             style="opacity:1;fill:#d5e5ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.68314427;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+          <path
+             style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             d="m 30.032491,276.00457 8.601319,-7.16142 1.760624,-21.40739 1.232795,20.93967 18.428234,-0.28063 1.063339,-20.64701 1.836535,20.8341 8.525567,7.74713 -10.362102,-5.82706 -20.724207,-0.012 z"
+             id="path1351"
+             inkscape:connector-curvature="0"
+             sodipodi:nodetypes="ccccccccccc" />
+          <path
+             style="fill:#ffffff;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             d="m 19.803877,256.55672 19.883622,-11.81193 c 0,0 10.993128,-67.23603 11.390003,-69.74957 l -8.744169,69.88187 17.197916,-0.52918 -8.056872,-67.10373 10.967289,67.89749 c 0,0 19.664656,11.19067 22.045906,12.64588 l -23.368823,-10.3399 -20.724315,-0.0119 z"
+             id="path1353"
+             inkscape:connector-curvature="0"
+             sodipodi:nodetypes="ccccccccccc" />
+          <path
+             style="fill:#5599ff;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             d="m 19.976041,254.93125 28.575,-72.36354 -22.886458,68.52708 z"
+             id="path1355"
+             inkscape:connector-curvature="0"
+             sodipodi:nodetypes="cccc" />
+          <path
+             style="fill:#80b3ff;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             d="m 71.569791,273.58437 10.451041,-15.21354 -5.291666,-2.91041 z"
+             id="path1357"
+             inkscape:connector-curvature="0"
+             sodipodi:nodetypes="cccc" />
+          <ellipse
+             style="opacity:1;fill:#80b3ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.75499988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path1359"
+             cx="37.636978"
+             cy="229.79584"
+             rx="3.6380208"
+             ry="3.4395833" />
+          <ellipse
+             ry="2.1828125"
+             rx="2.1828127"
+             cy="235.94742"
+             cx="34.991146"
+             id="ellipse1361"
+             style="opacity:1;fill:#80b3ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.46588403;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+          <path
+             d="m 39.952082,199.10417 -18.724799,2.56477 -1.11895,18.86648 -2.564769,-18.7248 -18.86648,-1.11895 18.724799,-2.56477 1.11895,-18.86648 2.564769,18.7248 z"
+             inkscape:randomized="0"
+             inkscape:rounded="0"
+             inkscape:flatsided="false"
+             sodipodi:arg2="0.74695557"
+             sodipodi:arg1="-0.03844259"
+             sodipodi:r2="2.6067085"
+             sodipodi:r1="20.652758"
+             sodipodi:cy="199.89792"
+             sodipodi:cx="19.314583"
+             sodipodi:sides="4"
+             id="path2189"
+             style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.31299999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             sodipodi:type="star"
+             transform="matrix(0.31567098,0.2059889,-0.2059889,0.31567098,69.118887,182.12209)" />
+          <path
+             transform="matrix(0.06411971,0.30496028,-0.30496028,0.06411971,93.761668,230.49508)"
+             sodipodi:type="star"
+             style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.31299999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path2193"
+             sodipodi:sides="4"
+             sodipodi:cx="19.314583"
+             sodipodi:cy="199.89792"
+             sodipodi:r1="20.652758"
+             sodipodi:r2="2.6067085"
+             sodipodi:arg1="-0.03844259"
+             sodipodi:arg2="0.74695557"
+             inkscape:flatsided="false"
+             inkscape:rounded="0"
+             inkscape:randomized="0"
+             d="m 39.952082,199.10417 -18.724799,2.56477 -1.11895,18.86648 -2.564769,-18.7248 -18.86648,-1.11895 18.724799,-2.56477 1.11895,-18.86648 2.564769,18.7248 z" />
+          <path
+             sodipodi:type="star"
+             style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.31299999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path2219"
+             sodipodi:sides="4"
+             sodipodi:cx="19.314583"
+             sodipodi:cy="199.89792"
+             sodipodi:r1="20.652758"
+             sodipodi:r2="2.6067085"
+             sodipodi:arg1="-0.03844259"
+             sodipodi:arg2="0.74695557"
+             inkscape:flatsided="false"
+             inkscape:rounded="0"
+             inkscape:randomized="0"
+             d="m 39.952082,199.10417 -18.724799,2.56477 -1.11895,18.86648 -2.564769,-18.7248 -18.86648,-1.11895 18.724799,-2.56477 1.11895,-18.86648 2.564769,18.7248 z"
+             transform="matrix(0.18824279,0.22026662,-0.22026662,0.18824279,94.807114,154.26999)" />
+        </g>
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/src/site/resources/images/apache_iotdb_logo.png b/src/site/resources/images/apache_iotdb_logo.png
new file mode 100644
index 0000000..123c1e2
Binary files /dev/null and b/src/site/resources/images/apache_iotdb_logo.png differ
diff --git a/src/site/resources/images/apache_logo_small.png b/src/site/resources/images/apache_logo_small.png
new file mode 100644
index 0000000..053948f
Binary files /dev/null and b/src/site/resources/images/apache_logo_small.png differ
diff --git a/src/site/resources/images/apache_plc4x_logo_small.png b/src/site/resources/images/apache_plc4x_logo_small.png
new file mode 100644
index 0000000..6257eb5
Binary files /dev/null and b/src/site/resources/images/apache_plc4x_logo_small.png differ
diff --git a/src/site/resources/images/apache_streampipes_logo.png b/src/site/resources/images/apache_streampipes_logo.png
new file mode 100644
index 0000000..a428789
Binary files /dev/null and b/src/site/resources/images/apache_streampipes_logo.png differ
diff --git a/src/site/resources/images/eclipse_ditto_logo.svg b/src/site/resources/images/eclipse_ditto_logo.svg
new file mode 100644
index 0000000..b950f67
--- /dev/null
+++ b/src/site/resources/images/eclipse_ditto_logo.svg
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:i="&amp;ns_ai;"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="20.146963mm"
+   height="24.962379mm"
+   viewBox="0 0 20.146963 24.962379"
+   version="1.1"
+   id="svg8"
+   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
+   sodipodi:docname="ditto2.svg">
+  <defs
+     id="defs2" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.8"
+     inkscape:cx="9.6705704"
+     inkscape:cy="31.365963"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1920"
+     inkscape:window-height="1137"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-79.884852,-10.108096)">
+    <switch
+       id="switch3753"
+       transform="matrix(0.26458333,0,0,0.26458333,-21.416697,-56.161297)">
+      <foreignObject
+         height="1"
+         width="1"
+         y="0"
+         x="0"
+         requiredExtensions="http://ns.adobe.com/AdobeIllustrator/10.0/">
+        <i:pgfRef
+           xlink:href="#adobe_illustrator_pgf" />
+      </foreignObject>
+      <g
+         id="g3751"
+         i:extraneous="self">
+        <g
+           id="g3749">
+          <g
+             id="g3733">
+            <polygon
+               id="polygon3699"
+               points="432.84,257.514 438.936,261.058 432.838,264.533 432.838,257.514 "
+               style="opacity:0.45;fill:#3a8c9a" />
+            <polygon
+               id="polygon3701"
+               points="420.526,264.668 420.557,271.74 432.898,264.566 426.74,261.058 "
+               style="opacity:0.8;fill:#3a8c9a" />
+            <polygon
+               id="polygon3703"
+               points="420.5,257.516 420.526,264.668 426.74,261.058 "
+               style="opacity:0.7;fill:#3a8c9a" />
+            <polygon
+               id="polygon3705"
+               points="426.74,261.058 432.838,264.533 432.84,257.514 "
+               style="opacity:0.6;fill:#3a8c9a" />
+            <polygon
+               id="polygon3707"
+               points="432.838,257.514 432.838,250.467 420.5,257.516 426.74,261.058 "
+               style="opacity:0.5;fill:#3a8c9a" />
+            <g
+               id="g3713">
+              <polygon
+                 id="polygon3709"
+                 points="420.526,293.258 420.557,286.187 432.838,293.394 426.74,296.869 "
+                 style="opacity:0.8;fill:#3a8c9a" />
+              <polygon
+                 id="polygon3711"
+                 points="420.5,300.412 420.526,293.258 426.74,296.869 "
+                 style="opacity:0.7;fill:#3a8c9a" />
+            </g>
+            <path
+               id="path3715"
+               d="m 408.188,250.467 -12.471,6.795 -12.84,7.302 v 0.131 l -0.005,-0.004 v 14.228 0.091 14.226 l 0.005,-0.002 v 0.13 l 12.84,7.302 12.473,6.795 12.333,-7.048 0.034,-6.877 v -7.348 l -12.431,7.174 -12.47,-7.555 v -0.129 -13.43 l 0.002,-0.124 12.468,-7.557 12.431,7.174 -0.03,-7.072 v -7.154 z m -25.189,28.477 0.039,0.02 -0.039,0.02 -0.037,-0.02 z"
+               inkscape:connector-curvature="0"
+               style="fill:#3a8c9a" />
+            <polygon
+               id="polygon3717"
+               points="432.84,257.514 432.838,257.514 432.838,250.467 445.176,257.516 438.936,261.058 "
+               style="opacity:0.25;fill:#3a8c9a" />
+            <polygon
+               id="polygon3719"
+               points="445.193,264.668 445.162,271.74 432.818,264.566 438.977,261.058 "
+               style="opacity:0.25;fill:#3a8c9a" />
+            <polygon
+               id="polygon3721"
+               points="432.84,300.412 438.936,296.869 432.838,293.394 432.838,300.412 "
+               style="opacity:0.45;fill:#3a8c9a" />
+            <polygon
+               id="polygon3723"
+               points="426.74,296.869 432.838,293.394 432.84,300.412 "
+               style="opacity:0.6;fill:#3a8c9a" />
+            <polygon
+               id="polygon3725"
+               points="432.838,300.412 432.838,307.46 420.5,300.408 426.74,296.869 "
+               style="opacity:0.5;fill:#3a8c9a" />
+            <polygon
+               id="polygon3727"
+               points="432.84,300.412 432.838,300.412 432.838,307.46 445.176,300.408 438.936,296.869 "
+               style="opacity:0.25;fill:#3a8c9a" />
+            <polygon
+               id="polygon3729"
+               points="445.193,293.256 445.162,286.187 432.838,293.394 438.977,296.869 "
+               style="opacity:0.25;fill:#3a8c9a" />
+            <path
+               id="path3731"
+               d="m 438.088,296.902 c 0,0.47 0.381,0.849 0.848,0.849 0.299,0 0.547,-0.163 0.699,-0.396 l 4.766,2.779 c -0.031,0.087 -0.057,0.181 -0.057,0.278 0,0.471 0.379,0.85 0.85,0.85 0.471,0 0.85,-0.379 0.85,-0.85 0,-0.092 -0.027,-0.174 -0.053,-0.257 l 11.508,-6.244 c 0.16,0.185 0.385,0.312 0.652,0.312 0.479,0 0.867,-0.386 0.867,-0.865 0,-0.424 -0.309,-0.76 -0.713,-0.834 l -0.002,-12.727 c 0.406,-0.074 0.715,-0.409 0.715,-0.834 0,-0.425 -0.309,-0.76 -0.715,-0.834 l 0.002,-12.727 c 0. [...]
+               inkscape:connector-curvature="0"
+               style="fill:#3a8c9a" />
+          </g>
+          <g
+             id="g3747">
+            <path
+               id="path3735"
+               d="m 406.486,330.292 c -2.058,-2.827 -2.058,-2.827 -2.058,-2.827 h 4.02 c 1.562,0 2.226,0.697 2.226,2.261 v 10.401 c 0,0.466 0.266,0.731 0.732,0.731 h 1.328 v 3.554 h -4.021 c -1.563,0 -2.228,-0.662 -2.228,-2.26 v -11.86 z"
+               inkscape:connector-curvature="0"
+               style="fill:#0f262b" />
+            <polygon
+               id="polygon3737"
+               points="410.343,320.818 410.343,324.708 406.687,320.818 "
+               style="fill:#3a8c9a" />
+            <path
+               id="path3739"
+               d="m 416.356,330.82 -2.193,-3.355 h 2.293 v -4.621 h 4.123 v 4.621 h 3.854 v 3.355 h -3.854 v 6.85 c 0,2.787 2.19,3.188 3.354,3.188 0.465,0 0.766,-0.065 0.766,-0.065 v 3.689 c 0,0 -0.531,0.1 -1.293,0.1 -2.366,0 -7.05,-0.701 -7.05,-6.385 z"
+               inkscape:connector-curvature="0"
+               style="fill:#0f262b" />
+            <path
+               id="path3741"
+               d="m 428.652,330.82 -2.193,-3.355 h 2.293 v -4.621 h 4.123 v 4.621 h 3.855 v 3.355 h -3.855 v 6.85 c 0,2.787 2.191,3.188 3.355,3.188 0.465,0 0.768,-0.065 0.768,-0.065 v 3.689 c 0,0 -0.533,0.1 -1.301,0.1 -2.357,0 -7.045,-0.701 -7.045,-6.385 z"
+               inkscape:connector-curvature="0"
+               style="fill:#0f262b" />
+            <path
+               id="path3743"
+               d="m 448.193,327.064 c 5.184,0 9.309,3.691 9.309,8.877 0,5.218 -4.125,8.872 -9.309,8.872 -5.15,0 -9.27,-3.654 -9.27,-8.872 10e-4,-5.185 4.12,-8.877 9.27,-8.877 z m 0,14.161 c 2.762,0 5.053,-2.126 5.053,-5.283 0,-3.123 -2.291,-5.283 -5.053,-5.283 -2.727,0 -5.018,2.16 -5.018,5.283 10e-4,3.157 2.292,5.283 5.018,5.283 z"
+               inkscape:connector-curvature="0"
+               style="fill:#0f262b" />
+            <path
+               id="path3745"
+               d="m 391.214,327.082 c 3.685,0 4.878,2.061 4.878,2.061 h 0.069 c 0,0 -0.035,-0.434 -0.035,-0.998 v -4.596 l -2.06,-2.709 h 4.021 c 1.559,0 2.256,0.697 2.256,2.256 v 17.035 c 0,0.467 0.266,0.732 0.729,0.732 h 1.296 v 3.549 h -3.885 c -1.529,0 -2.091,-0.727 -2.091,-1.725 0,-0.365 0,-0.631 0,-0.631 h -0.065 c 0,0 -1.398,2.757 -5.281,2.757 -4.584,0 -7.537,-3.62 -7.537,-8.864 0,-5.381 3.219,-8.867 7.705,-8.867 z m 5.011,8.833 c 0,-2.622 -1.361,-5.214 -4.184,-5.214 -2.323,0 -4.2 [...]
+               inkscape:connector-curvature="0"
+               style="fill:#0f262b" />
+          </g>
+        </g>
+      </g>
+    </switch>
+  </g>
+</svg>
diff --git a/src/site/resources/images/elastic_logstash_logo.svg b/src/site/resources/images/elastic_logstash_logo.svg
new file mode 100644
index 0000000..5a285d8
--- /dev/null
+++ b/src/site/resources/images/elastic_logstash_logo.svg
@@ -0,0 +1 @@
+<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 236 80"><defs><style>.cls-1{fill:#00bfb3;}.cls-2{fill:#fec514;}.cls-3{fill:#343741;}</style></defs><title>Logstash Color Lockup</title><rect class="cls-1" x="40" y="48" width="22" height="24"/><path class="cls-2" d="M10,8H8V48H34V32A24,24,0,0,0,10,8Z"/><path class="cls-3" d="M8,48H8A24,24,0,0,0,32,72h2V48Z"/><path d="M83.89,49.18H79.48V20h4.41Z"/><path d="M108.58,38.78c0,3.38-.87,6-2.6,7.93a9.35,9.35,0, [...]
\ No newline at end of file
diff --git a/src/site/site.xml b/src/site/site.xml
index 3623d60..5a19eb0 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -20,9 +20,9 @@
 <project name="PLC4X">
 
   <skin>
-    <groupId>io.github.devacfr.maven.skins</groupId>
-    <artifactId>reflow-maven-skin</artifactId>
-    <version>${reflow.skin.version}</version>
+    <groupId>org.apache.plc4x.plugins</groupId>
+    <artifactId>plc4x-site-skin</artifactId>
+    <version>1.0-SNAPSHOT</version>
   </skin>
 
   <!-- Hide the publish date as this will cause changes on every generated page every day -->
@@ -30,78 +30,61 @@
   <!-- Hide the version as we are usually deploying the develop version -->
   <version position="none" />
 
-  <!--
-      Details on how to configure the reflow skin:
-      http://andriusvelykis.github.io/reflow-maven-skin/skin/
-  -->
   <custom>
-    <reflowSkin>
-      <localResources>true</localResources>
-      <absoluteResourceURL>https://plc4x.apache.org/</absoluteResourceURL>
-      <titleTemplate>Apache PLC4X� - %2$s</titleTemplate>
-      <slogan position="bannerLeft">The industrial IoT adapter</slogan>
-      <showApacheEvents>true</showApacheEvents>
-      <toc>top</toc>
-      <bottomNav maxSpan="12">
-        <column>reports</column>
-        <column>Apache</column>
-        <column>modules</column>
-        <column>Protocols</column>
-      </bottomNav>
-      <brand>
-        <name>Apache PLC4X</name>
-        <href>https://plc4x.apache.org/</href>
-      </brand>
-      <breadcrumbs>true</breadcrumbs>
-      <highlightJs>true</highlightJs>
-      <pages>
-        <developer-info>
-          <toc>sidebar</toc>
-        </developer-info>
-      </pages>
-    </reflowSkin>
   </custom>
 
-  <poweredBy>
-    <logo name="Apache Software Foundation" img="https://www.apache.org/images/asf_logo.png" href="https://www.apache.org/"/>
-  </poweredBy>
-
   <bannerLeft>
-      <name>Apache PLC4X</name>
-      <src>https://plc4x.apache.org/images/apache_plc4x_logo.png</src>
-      <href>https://plc4x.apache.org/</href>
+    <name>Apache PLC4X</name>
+    <src>images/apache_plc4x_logo_small.png</src>
+    <href>https://plc4x.apache.org/</href>
   </bannerLeft>
 
   <bannerRight>
     <name>Apache Software Foundation</name>
-    <src>https://plc4x.apache.org/images/apache_logo.png</src>
-    <!--src>./images/apache_logo.png</src-->
+    <src>images/apache_logo_small.png</src>
     <href>https://www.apache.org/</href>
   </bannerRight>
 
   <body>
-    <head>
-      <![CDATA[
-        <script>
-          document.addEventListener("DOMContentLoaded", function(event) {
-            /* Add an image for promoting Apache events below the right banner */
-            $("#bannerRight").append('<p id="apacheEvents"><a href="//www.apache.org/events/current-event.html"><img src="//www.apache.org/events/current-event-234x60.png"/></a></p>');
-            /* Append the trademarks info to the copyright section */
-            $(".copyright").append('<p>Apache PLC4X, PLC4X, Apache, the Apache feather logo, and the Apache PLC4X project logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>');
-          });
-        </script>
-      ]]>
-    </head>
-
     <menu name="Users">
+      <item name="Section Home" href="users/index.html"/>
       <item name="Download" href="users/download.html"/>
-      <item name="Getting Started" href="users/gettingstarted.html"/>
-      <item name="PLC4X without a PLC and Unit Testing" href="users/testing.html"/>
-      <item name="Object PLC Mapping (OPM)" href="users/opm.html"/>
+      <item name="Getting Started" href="users/gettingstarted.html">
+        <item name="Java" href="users/plc4j/gettingstarted.html"/>
+      </item>
+      <item name="Protocols" href="users/protocols/index.html">
+        <item name="AB-ETH" href="users/protocols/ab-eth.html"/>
+        <item name="ADS/AMS" href="users/protocols/ads.html"/>
+        <item name="BACnet/IP" href="users/protocols/bacnetip.html"/>
+        <item name="DeltaV" href="users/protocols/deltav.html"/>
+        <item name="DF1" href="users/protocols/df1.html"/>
+        <item name="EtherNet/IP" href="users/protocols/ethernet-ip.html"/>
+        <item name="KNXnet/IP" href="users/protocols/knxnetip.html"/>
+        <item name="Modbus (TCP/Serial)" href="users/protocols/modbus.html"/>
+        <item name="OPC UA" href="users/protocols/opc-ua.html"/>
+        <item name="S7 (Step7)" href="users/protocols/s7.html"/>
+        <item name="Simulated" href="users/protocols/simulated.html"/>
+      </item>
+      <item name="Integrations" href="users/integrations/index.html">
+        <item name="Apache Calcite" href="users/integrations/apache-calcite.html"/>
+        <item name="Apache Camel" href="users/integrations/apache-camel.html"/>
+        <item name="Apache Edgent" href="users/integrations/apache-edgent.html"/>
+        <item name="Apache IoTDB" href="users/integrations/apache-iotdb.html"/>
+        <item name="Apache Kafka" href="users/integrations/apache-kafka.html"/>
+        <item name="Apache NiFi" href="users/integrations/apache-nifi.html"/>
+        <item name="Apache StreamPipes" href="users/integrations/apache-streampipes.html"/>
+        <item name="Eclipse Ditto" href="users/integrations/eclipse-ditto.html"/>
+        <item name="Elastic Logstash " href="users/integrations/elastic-logstash.html"/>
+      </item>
+      <item name="Tools" href="users/tools/index.html">
+        <item name="PLC4X without a PLC and Unit Testing" href="users/testing.html"/>
+        <item name="Object PLC Mapping (OPM)" href="users/opm.html"/>
+      </item>
       <item name="Industry 4.0 with Apache" href="users/industry40.html"/>
       <item name="Security" href="users/security.html"/>
     </menu>
     <menu name="Developers">
+      <item name="Section Home" href="developers/index.html"/>
       <item name="Bug &amp; Issue Tracker" href="developers/issues.html"/>
       <item name="Building PLC4X" href="developers/building.html"/>
       <item name="Code Analysis" href="developers/sonar.html"/>
@@ -113,7 +96,6 @@
       <item name="Continuous Integration" href="developers/ci.html"/>
       <item name="Contributing" href="developers/contributing.html"/>
       <item name="Decision Making" href="developers/decisions.html"/>
-      <!--item name="JQassistant" href="developers/jqassistant.html"/-->
       <item name="Maturity" href="developers/maturity.html"/>
       <item name="Preparing your Computer" href="developers/preparing.html"/>
       <item name="Releasing" href="developers/release.html"/>
@@ -124,17 +106,6 @@
       <item name="Website" href="developers/website.html"/>
       <item name="Wiki" href="developers/wiki.html"/>
     </menu>
-    <menu name="Protocols">
-      <item name="Features" href="protocols/features.html"/>
-      <item name="AB-Ethernet" href="protocols/ab-eth/index.html"/>
-      <item name="ADS" href="protocols/ads/index.html"/>
-      <item name="DeltaV" href="protocols/delta-v/index.html"/>
-      <item name="EtherNet/IP" href="protocols/ethernet-ip/index.html"/>
-      <item name="Modbus" href="protocols/modbus/index.html"/>
-      <item name="OPC-UA" href="protocols/opc-ua/index.html"/>
-      <item name="S7" href="protocols/s7/index.html"/>
-    </menu>
-    <menu name="Reports" ref="reports" inherit="bottom"/>
     <menu name="Apache" inherit="bottom">
       <item name="Apache Software Foundation" href="http://www.apache.org/"/>
       <item name="How Apache Works" href="https://www.apache.org/foundation/how-it-works.html"/>