feat(blog): new entry for release 0.2.0

Signed-off-by: Axel Meinhardt <axel.meinhardt@bosch-si.com>
diff --git a/200.html b/200.html
index e9708e9..99f888c 100644
--- a/200.html
+++ b/200.html
@@ -26,6 +26,6 @@
     We started to capture this information in a simple payload specification and just like in the introducing language example where you can use phrases via phone, letter or in person, the payload is meant to be sent over different protocols (REST, MQTT, AMQP). This payload is the Production Performance Management Protocol (<i>PPMP</i>).
     <div class="card is-pulled-left"><div class="card-image"><figure class="image"><img src="images/eclipse-426x100.png" alt="Eclipse logo" title="Eclipse logo"></figure></div></div><p>
     In order to, first, leverage the Eclipse IoT stack in Industry 4.0 scenarios and, second, build a lively community around the specification, we consider the Eclipse iot working group as the premier place to host Unide. 
-    </div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_default.2114b4fdc743f1b2e00e.js"></script><script defer src="/unide/files/pages_index.7d76ce931d19b81f54ec.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_default.2114b4fdc743f1b2e00e.js"></script><script defer src="/unide/files/pages_index.7d76ce931d19b81f54ec.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/article/index.html b/article/index.html
index 18f9a43..f1c0ca5 100644
--- a/article/index.html
+++ b/article/index.html
@@ -16,7 +16,9 @@
       FAQ
     </a></div></div><div class="navbar-brand"><div class="navbar-burger burger"><span></span><span></span><span></span></div><a href="/unide/" class="navbar-item nuxt-link-active"><img src="logo.svg"></a></div></nav></div></header><div class="container"><div class="header clearfix"></div><div class="columns"><div class="article column is-8"><!----><!----><div class="content"><div></div></div><div class="columns pageNav"><!----><!----></div></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -24,11 +26,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -52,6 +56,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2016/9/12/Unide-proposal-online/index.html b/blog/2016/9/12/Unide-proposal-online/index.html
index 9cfa8b3..1767351 100644
--- a/blog/2016/9/12/Unide-proposal-online/index.html
+++ b/blog/2016/9/12/Unide-proposal-online/index.html
@@ -32,7 +32,9 @@
 </div>
 </div></div><div class="columns pageNav"><!----><div class="column"><a href="/unide/blog/2016/9/16/Project-approved" class="button is-fullwidth"><span>Eclipse Project approved</span><span class="icon"><i class="fa fa-chevron-right"></i></span></a></div></div></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -40,11 +42,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -68,6 +72,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Unide-proposal-online",content:'<p>We\'re happy to announce, that the proposal for our new Eclipse Project is online! You can find it at <a href="https://projects.eclipse.org/proposals/unide">https://projects.eclipse.org/proposals/unide</a>. For further discussions, there\'s the <a href="https://www.eclipse.org/forums/index.php/t/1080186/">forum post</a> as well.<br>\nNow, it\'s time to study all details about Eclipse processes and <a href="https://eclipse.org/legal/eplfaq.php#3RDPARTY">license regulations</a>.</p>\n<div class="card">\n\t<header class="card-header is-primary">\n\t\t<p class="card-header-title"><i class="fa fa-pencil">&nbsp;</i>Did you know?</p>\n\t</header>\n\t<div class="card-content">\n\t\t<div class="content">\n\t\t\tThe projects name is derived from <b>un</b>derstand <b>i</b>ndustry <b>de</b>vices. Other ideas like <b>co</b>nnect <b>i</b>ndustry <b>ma</b>chines turned out to have meanings in foreign languages or being trademarked already.\n\t\t</div>\n\t</div>\n</div>\n',url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:"2016-09-12T09:26:37.000Z",tags:["project start"],next:{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Unide-proposal-online",content:'<p>We\'re happy to announce, that the proposal for our new Eclipse Project is online! You can find it at <a href="https://projects.eclipse.org/proposals/unide">https://projects.eclipse.org/proposals/unide</a>. For further discussions, there\'s the <a href="https://www.eclipse.org/forums/index.php/t/1080186/">forum post</a> as well.<br>\nNow, it\'s time to study all details about Eclipse processes and <a href="https://eclipse.org/legal/eplfaq.php#3RDPARTY">license regulations</a>.</p>\n<div class="card">\n\t<header class="card-header is-primary">\n\t\t<p class="card-header-title"><i class="fa fa-pencil">&nbsp;</i>Did you know?</p>\n\t</header>\n\t<div class="card-content">\n\t\t<div class="content">\n\t\t\tThe projects name is derived from <b>un</b>derstand <b>i</b>ndustry <b>de</b>vices. Other ideas like <b>co</b>nnect <b>i</b>ndustry <b>ma</b>chines turned out to have meanings in foreign languages or being trademarked already.\n\t\t</div>\n\t</div>\n</div>\n',url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:"2016-09-12T09:26:37.000Z",tags:["project start"],next:{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2016/9/12/index.html b/blog/2016/9/12/index.html
index 16f45ed..5327d57 100644
--- a/blog/2016/9/12/index.html
+++ b/blog/2016/9/12/index.html
@@ -22,7 +22,9 @@
           12, 11:26
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -30,11 +32,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -58,6 +62,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:"2016-09-12T09:26:37.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:"2016-09-12T09:26:37.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2016/9/16/Project-approved/index.html b/blog/2016/9/16/Project-approved/index.html
index 0821136..18e4ddf 100644
--- a/blog/2016/9/16/Project-approved/index.html
+++ b/blog/2016/9/16/Project-approved/index.html
@@ -29,7 +29,9 @@
 <p>If you are interested in industry 4.0, IoT stack in manufacturing or you are building industry machines and want to find out more about the possiblities with PPMP, let us know: <a href="mailto:unide-inbox@eclipse.org?subject=Interested%20in%20contributing">unide-inbox@eclipse.org</a></p>
 </div></div><div class="columns pageNav"><div class="column"><a href="/unide/blog/2016/9/12/Unide-proposal-online" class="button is-fullwidth"><span class="icon"><i class="fa fa-chevron-left"></i></span><span>Unide proposal online</span></a></div><div class="column"><a href="/unide/blog/2016/9/21/Official-launch" class="button is-fullwidth"><span>Official launch</span><span class="icon"><i class="fa fa-chevron-right"></i></span></a></div></div></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -37,11 +39,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -65,6 +69,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Project-approved",content:'<p>Unide proposal has been approved to be an Eclipse Project! You can now find all relevant information at <a href="https://projects.eclipse.org/projects/iot.unide">https://projects.eclipse.org/projects/iot.unide</a>.</p>\n<p>There\'s still some paperwork pending, but it looks promising! Next steps are</p>\n<ul>\n<li>creating a proper homepage with relevant information and the PPMP specification</li>\n<li>license checking of initial commitment code.</li>\n<li>getting in touch with Eclipse community</li>\n<li>making plans for the upcoming months</li>\n</ul>\n<p>If you are interested in industry 4.0, IoT stack in manufacturing or you are building industry machines and want to find out more about the possiblities with PPMP, let us know: <a href="mailto:unide-inbox@eclipse.org?subject=Interested%20in%20contributing">unide-inbox@eclipse.org</a></p>\n',url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:"2016-09-16T12:16:37.000Z",tags:["project start"],prev:{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online"},next:{url:"/blog/2016/9/21/Official-launch",title:"Official launch"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Project-approved",content:'<p>Unide proposal has been approved to be an Eclipse Project! You can now find all relevant information at <a href="https://projects.eclipse.org/projects/iot.unide">https://projects.eclipse.org/projects/iot.unide</a>.</p>\n<p>There\'s still some paperwork pending, but it looks promising! Next steps are</p>\n<ul>\n<li>creating a proper homepage with relevant information and the PPMP specification</li>\n<li>license checking of initial commitment code.</li>\n<li>getting in touch with Eclipse community</li>\n<li>making plans for the upcoming months</li>\n</ul>\n<p>If you are interested in industry 4.0, IoT stack in manufacturing or you are building industry machines and want to find out more about the possiblities with PPMP, let us know: <a href="mailto:unide-inbox@eclipse.org?subject=Interested%20in%20contributing">unide-inbox@eclipse.org</a></p>\n',url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:"2016-09-16T12:16:37.000Z",tags:["project start"],prev:{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online"},next:{url:"/blog/2016/9/21/Official-launch",title:"Official launch"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2016/9/16/index.html b/blog/2016/9/16/index.html
index f238114..e6c3aec 100644
--- a/blog/2016/9/16/index.html
+++ b/blog/2016/9/16/index.html
@@ -22,7 +22,9 @@
           16, 14:16
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -30,11 +32,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -58,6 +62,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:"2016-09-16T12:16:37.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:"2016-09-16T12:16:37.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2016/9/21/Official-launch/index.html b/blog/2016/9/21/Official-launch/index.html
index ac71800..23754b8 100644
--- a/blog/2016/9/21/Official-launch/index.html
+++ b/blog/2016/9/21/Official-launch/index.html
@@ -28,7 +28,9 @@
 <p>We are working on creating the initial contributions for Unide. Since there are a few legal aspects we have to consider, stay tuned. The code will be published to our <a href="https://github.com/eclipse/unide">github repository</a>.</p>
 </div></div><div class="columns pageNav"><div class="column"><a href="/unide/blog/2016/9/16/Project-approved" class="button is-fullwidth"><span class="icon"><i class="fa fa-chevron-left"></i></span><span>Eclipse Project approved</span></a></div><div class="column"><a href="/unide/blog/2016/9/27/News-coverage" class="button is-fullwidth"><span>News Coverage</span><span class="icon"><i class="fa fa-chevron-right"></i></span></a></div></div></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -36,11 +38,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -64,6 +68,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Official-launch",content:'<p>Today, we officially launch Unide. In the last days, we have redesigned the logo, published Blog posts and started work on the initial (code) contributions.<br>\nIt even seems like good timing, since there was a <a href="http://m.heise.de/newsticker/meldung/Umfrage-Unternehmen-fordern-offene-Plattform-fuer-die-Industrie-4-0-3327135.html">survey in Germany about open platforms &amp; standards in industry 4.0</a>, basically asking for something like Unide/PPMP.</p>\n<h3>the logo</h3>\n<p>Unide and PPMP\'s goal is to enable you to connect machines and receive their measurements / alerts. The logo represents that. It has you (&quot;<em>U</em>&quot;) highlighted and connects to rings. As a side note, we found that the words almost look like <em>you-nice</em>.</p>\n<h3>blog entries</h3>\n<p>If you are interested in further readings, check out the post at <a href="http://blog.bosch-si.com">blog.bosch-si.com</a>.</p>\n<h3>initial contributions</h3>\n<p>We are working on creating the initial contributions for Unide. Since there are a few legal aspects we have to consider, stay tuned. The code will be published to our <a href="https://github.com/eclipse/unide">github repository</a>.</p>\n',url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:"2016-09-21T09:47:43.000Z",tags:["project start"],prev:{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved"},next:{url:"/blog/2016/9/27/News-coverage",title:"News Coverage"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Official-launch",content:'<p>Today, we officially launch Unide. In the last days, we have redesigned the logo, published Blog posts and started work on the initial (code) contributions.<br>\nIt even seems like good timing, since there was a <a href="http://m.heise.de/newsticker/meldung/Umfrage-Unternehmen-fordern-offene-Plattform-fuer-die-Industrie-4-0-3327135.html">survey in Germany about open platforms &amp; standards in industry 4.0</a>, basically asking for something like Unide/PPMP.</p>\n<h3>the logo</h3>\n<p>Unide and PPMP\'s goal is to enable you to connect machines and receive their measurements / alerts. The logo represents that. It has you (&quot;<em>U</em>&quot;) highlighted and connects to rings. As a side note, we found that the words almost look like <em>you-nice</em>.</p>\n<h3>blog entries</h3>\n<p>If you are interested in further readings, check out the post at <a href="http://blog.bosch-si.com">blog.bosch-si.com</a>.</p>\n<h3>initial contributions</h3>\n<p>We are working on creating the initial contributions for Unide. Since there are a few legal aspects we have to consider, stay tuned. The code will be published to our <a href="https://github.com/eclipse/unide">github repository</a>.</p>\n',url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:"2016-09-21T09:47:43.000Z",tags:["project start"],prev:{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved"},next:{url:"/blog/2016/9/27/News-coverage",title:"News Coverage"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2016/9/21/index.html b/blog/2016/9/21/index.html
index 4d9978c..ceb1482 100644
--- a/blog/2016/9/21/index.html
+++ b/blog/2016/9/21/index.html
@@ -22,7 +22,9 @@
           21, 11:47
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -30,11 +32,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -58,6 +62,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:"2016-09-21T09:47:43.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:"2016-09-21T09:47:43.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2016/9/27/News-coverage/index.html b/blog/2016/9/27/News-coverage/index.html
index d3625a8..626b203 100644
--- a/blog/2016/9/27/News-coverage/index.html
+++ b/blog/2016/9/27/News-coverage/index.html
@@ -27,7 +27,9 @@
 <p>Looking forward to spreading the word further.</p>
 </div></div><div class="columns pageNav"><div class="column"><a href="/unide/blog/2016/9/21/Official-launch" class="button is-fullwidth"><span class="icon"><i class="fa fa-chevron-left"></i></span><span>Official launch</span></a></div><div class="column"><a href="/unide/blog/2017/3/23/Unide-at-BCX" class="button is-fullwidth"><span>Unide at Bosch Hackaton</span><span class="icon"><i class="fa fa-chevron-right"></i></span></a></div></div></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -35,11 +37,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -63,6 +67,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"News-coverage",content:'<p>After the <a href="/unide/2016/09/21/Official%20launch/">Official launch</a> of unide and PPMP, there was some media coverage about the project.</p>\n<p>Triggered by a statement by <a href="http://www.bosch.com/en/com/bosch_group/board_management/dr_rer_nat_volkmar_denner/volkmar-denner.html">Bosch CEO Volkmar Denner</a> on <em><a href="http://www.bosch-presse.de/pressportal/en/bosch-initiates-new-machine-language-for-industry-4-0-65216.html">&quot;initiating new machine language for Industry 4.0&quot;</a></em>, twitter, blogs and magazines mention PPMP, e.g.:</p>\n<ul>\n<li><a href="https://www.elektormagazine.com/news/free-ppmp-from-bosch-makes-industry-4-0-open-for-all">electormagazine</a></li>\n<li><a href="http://www.computer-automation.de/feldebene/vernetzung/artikel/134233/">computer-automation</a> (de)</li>\n</ul>\n<p>Looking forward to spreading the word further.</p>\n',url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:"2016-09-27T09:14:27.000Z",tags:["media"],prev:{url:"/blog/2016/9/21/Official-launch",title:"Official launch"},next:{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"News-coverage",content:'<p>After the <a href="/unide/2016/09/21/Official%20launch/">Official launch</a> of unide and PPMP, there was some media coverage about the project.</p>\n<p>Triggered by a statement by <a href="http://www.bosch.com/en/com/bosch_group/board_management/dr_rer_nat_volkmar_denner/volkmar-denner.html">Bosch CEO Volkmar Denner</a> on <em><a href="http://www.bosch-presse.de/pressportal/en/bosch-initiates-new-machine-language-for-industry-4-0-65216.html">&quot;initiating new machine language for Industry 4.0&quot;</a></em>, twitter, blogs and magazines mention PPMP, e.g.:</p>\n<ul>\n<li><a href="https://www.elektormagazine.com/news/free-ppmp-from-bosch-makes-industry-4-0-open-for-all">electormagazine</a></li>\n<li><a href="http://www.computer-automation.de/feldebene/vernetzung/artikel/134233/">computer-automation</a> (de)</li>\n</ul>\n<p>Looking forward to spreading the word further.</p>\n',url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:"2016-09-27T09:14:27.000Z",tags:["media"],prev:{url:"/blog/2016/9/21/Official-launch",title:"Official launch"},next:{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2016/9/27/index.html b/blog/2016/9/27/index.html
index af07a4f..9c6f56e 100644
--- a/blog/2016/9/27/index.html
+++ b/blog/2016/9/27/index.html
@@ -22,7 +22,9 @@
           27, 11:14
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -30,11 +32,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -58,6 +62,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:"2016-09-27T09:14:27.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:"2016-09-27T09:14:27.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2016/9/index.html b/blog/2016/9/index.html
index 5676f2a..b1b96e9 100644
--- a/blog/2016/9/index.html
+++ b/blog/2016/9/index.html
@@ -34,7 +34,9 @@
           12, 11:26
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -42,11 +44,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -70,6 +74,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:"2016-09-27T09:14:27.000Z"},{url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:"2016-09-21T09:47:43.000Z"},{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:"2016-09-16T12:16:37.000Z"},{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:"2016-09-12T09:26:37.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:"2016-09-27T09:14:27.000Z"},{url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:"2016-09-21T09:47:43.000Z"},{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:"2016-09-16T12:16:37.000Z"},{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:"2016-09-12T09:26:37.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2016/index.html b/blog/2016/index.html
index 2b017b7..9a0ea98 100644
--- a/blog/2016/index.html
+++ b/blog/2016/index.html
@@ -34,7 +34,9 @@
           September 12, 11:26
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -42,11 +44,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -70,6 +74,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:"2016-09-27T09:14:27.000Z"},{url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:"2016-09-21T09:47:43.000Z"},{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:"2016-09-16T12:16:37.000Z"},{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:"2016-09-12T09:26:37.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:"2016-09-27T09:14:27.000Z"},{url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:"2016-09-21T09:47:43.000Z"},{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:"2016-09-16T12:16:37.000Z"},{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:"2016-09-12T09:26:37.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2017/10/19/i40-testbed-started/index.html b/blog/2017/10/19/i40-testbed-started/index.html
index 981c9cc..bbdd7a4 100644
--- a/blog/2017/10/19/i40-testbed-started/index.html
+++ b/blog/2017/10/19/i40-testbed-started/index.html
@@ -23,7 +23,9 @@
 You can find more information in the <a href="https://eclipse.org/org/press-release/20171019_industry40_testbed.php">Press Release</a> or the <a href="https://iot.eclipse.org/testbeds/production-performance-management/#">homepage of the testbed</a>.</p>
 </div></div><div class="columns pageNav"><div class="column"><a href="/unide/blog/2017/10/6/DZone-article-published" class="button is-fullwidth"><span class="icon"><i class="fa fa-chevron-left"></i></span><span>DZone article published</span></a></div><div class="column"><a href="/unide/blog/2018/1/26/New-website" class="button is-fullwidth"><span>Updated Website</span><span class="icon"><i class="fa fa-chevron-right"></i></span></a></div></div></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -31,11 +33,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started" class="nuxt-link-exact-active nuxt-link-active">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -59,6 +63,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"i40-testbed-started",content:'<p>The Eclipse IoT Working group has started another testbed around Production Performance Management. Together with other Eclipse projects but also manufacturing companies, we aim to showcase and test the software in real life scenarios.<br>\n<a href="https://www.contact-software.com">Contact Software</a>, <a href="https://www.eurotech.com">Eurotech</a> and <a href="https://www.eclipse.org/4diac/">Eclipse 4diac</a> provide bindings to actual machines, Unide and PPMP will be used for structuring and normalizing the information, <a href="https://projects.eclipse.org/projects/iot.hono">Ecipse Hono</a> and other provide the advanced infrastructure and <a href="https://www.influxdata.com/">influx data</a> persists the data.<br>\nYou can find more information in the <a href="https://eclipse.org/org/press-release/20171019_industry40_testbed.php">Press Release</a> or the <a href="https://iot.eclipse.org/testbeds/production-performance-management/#">homepage of the testbed</a>.</p>\n',url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z",tags:["testbed"],prev:{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published"},next:{url:"/blog/2018/1/26/New-website",title:"Updated Website"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"i40-testbed-started",content:'<p>The Eclipse IoT Working group has started another testbed around Production Performance Management. Together with other Eclipse projects but also manufacturing companies, we aim to showcase and test the software in real life scenarios.<br>\n<a href="https://www.contact-software.com">Contact Software</a>, <a href="https://www.eurotech.com">Eurotech</a> and <a href="https://www.eclipse.org/4diac/">Eclipse 4diac</a> provide bindings to actual machines, Unide and PPMP will be used for structuring and normalizing the information, <a href="https://projects.eclipse.org/projects/iot.hono">Ecipse Hono</a> and other provide the advanced infrastructure and <a href="https://www.influxdata.com/">influx data</a> persists the data.<br>\nYou can find more information in the <a href="https://eclipse.org/org/press-release/20171019_industry40_testbed.php">Press Release</a> or the <a href="https://iot.eclipse.org/testbeds/production-performance-management/#">homepage of the testbed</a>.</p>\n',url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z",tags:["testbed"],prev:{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published"},next:{url:"/blog/2018/1/26/New-website",title:"Updated Website"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2017/10/19/index.html b/blog/2017/10/19/index.html
index dce9539..07204db 100644
--- a/blog/2017/10/19/index.html
+++ b/blog/2017/10/19/index.html
@@ -22,7 +22,9 @@
           19
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -30,11 +32,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -58,6 +62,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2017/10/6/DZone-article-published/index.html b/blog/2017/10/6/DZone-article-published/index.html
index 6a4fb1e..7b73581 100644
--- a/blog/2017/10/6/DZone-article-published/index.html
+++ b/blog/2017/10/6/DZone-article-published/index.html
@@ -22,7 +22,9 @@
 It explains how to use the <a href="https://www.eclipse.org/unide/2017/06/29/Validator-Online/">PPMP validator</a>, gives an overview of the InfluxDB / Grafana visualisation and how this setup can be used in an Eclipse Testbed.</p>
 </div></div><div class="columns pageNav"><div class="column"><a href="/unide/blog/2017/6/29/Validator-Online" class="button is-fullwidth"><span class="icon"><i class="fa fa-chevron-left"></i></span><span>First PPMP-Validator Online</span></a></div><div class="column"><a href="/unide/blog/2017/10/19/i40-testbed-started" class="button is-fullwidth"><span>Unide is part of Industry 4.0 Testbed</span><span class="icon"><i class="fa fa-chevron-right"></i></span></a></div></div></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -30,11 +32,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published" class="nuxt-link-exact-active nuxt-link-active">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -58,6 +62,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"DZone-article-published",content:'<p>A new article about PPMP and the Eclipse Unide project was published at <a href="https://dzone.com/articles/eclipse-unide-a-way-to-establish-an-open-industry">DZone</a>!<br>\nIt explains how to use the <a href="https://www.eclipse.org/unide/2017/06/29/Validator-Online/">PPMP validator</a>, gives an overview of the InfluxDB / Grafana visualisation and how this setup can be used in an Eclipse Testbed.</p>\n',url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:"2017-10-06T00:00:00.000Z",tags:["media"],prev:{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online"},next:{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"DZone-article-published",content:'<p>A new article about PPMP and the Eclipse Unide project was published at <a href="https://dzone.com/articles/eclipse-unide-a-way-to-establish-an-open-industry">DZone</a>!<br>\nIt explains how to use the <a href="https://www.eclipse.org/unide/2017/06/29/Validator-Online/">PPMP validator</a>, gives an overview of the InfluxDB / Grafana visualisation and how this setup can be used in an Eclipse Testbed.</p>\n',url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:"2017-10-06T00:00:00.000Z",tags:["media"],prev:{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online"},next:{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2017/10/6/index.html b/blog/2017/10/6/index.html
index dd40776..8b9d6df 100644
--- a/blog/2017/10/6/index.html
+++ b/blog/2017/10/6/index.html
@@ -22,7 +22,9 @@
           06
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -30,11 +32,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -58,6 +62,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:"2017-10-06T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:"2017-10-06T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2017/10/index.html b/blog/2017/10/index.html
index 935daac..44fd01b 100644
--- a/blog/2017/10/index.html
+++ b/blog/2017/10/index.html
@@ -26,7 +26,9 @@
           06
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -34,11 +36,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -62,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z"},{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:"2017-10-06T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z"},{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:"2017-10-06T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2017/3/23/Unide-at-BCX/index.html b/blog/2017/3/23/Unide-at-BCX/index.html
index 540a1b9..360ac61 100644
--- a/blog/2017/3/23/Unide-at-BCX/index.html
+++ b/blog/2017/3/23/Unide-at-BCX/index.html
@@ -30,7 +30,9 @@
 </blockquote>
 </div></div><div class="columns pageNav"><div class="column"><a href="/unide/blog/2016/9/27/News-coverage" class="button is-fullwidth"><span class="icon"><i class="fa fa-chevron-left"></i></span><span>News Coverage</span></a></div><div class="column"><a href="/unide/blog/2017/6/1/New-process-message-spec" class="button is-fullwidth"><span>New PPMP-Specification for processes</span><span class="icon"><i class="fa fa-chevron-right"></i></span></a></div></div></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -38,11 +40,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -66,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Unide-at-BCX",content:'<p>Unide and PPMP were used in <a href="http://bcw.bosch-si.com/berlin/bcw-hackathon/?refresh=1">Bosch Connected Experience Hackaton</a> by students and developers to connect sensors to backend solutions in just two days!<br>\nThey even took a professional video:</p>\n<center>\n<iframe width="400" height="300" src="https://www.youtube.com/embed/Pq88mIx-lnQ?ecver=1" frameborder="0" allowfullscreen></iframe>\n</center>\n<p>Also in the same conference, Bosch CEO Dr. Volkmar Denner <a href="http://bcw.bosch-si.com/berlin/bcw-hackathon/?refresh=1">refered to PPMP again</a>:</p>\n<blockquote>\n\t<p>On a more practical level, the product performance management protocol, or PPMP, is being tried out at the Bosch plant in Homburg, Germany, as part of a joint Industrie 4.0 and IIC testbed. Bosch itself developed the PPMP, which is available to all at no cost. It allows small and medium-sized enterprises to transmit data from their sensors quickly, simply, and securely to the production systems of large companies. This helps remove some of the obstacles preventing entry into connected manufacturing. This first practical experience will be used to further refine the new protocol – work which will be done by Eclipse, an open-source community. Once again, we see that openness is our life blood.</p>\n\t<footer>Dr. Volkmar Denner, Bosch CEO</footer>\n</blockquote>\n',url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:"2017-03-23T17:00:00.000Z",tags:["media"],prev:{url:"/blog/2016/9/27/News-coverage",title:"News Coverage"},next:{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Unide-at-BCX",content:'<p>Unide and PPMP were used in <a href="http://bcw.bosch-si.com/berlin/bcw-hackathon/?refresh=1">Bosch Connected Experience Hackaton</a> by students and developers to connect sensors to backend solutions in just two days!<br>\nThey even took a professional video:</p>\n<center>\n<iframe width="400" height="300" src="https://www.youtube.com/embed/Pq88mIx-lnQ?ecver=1" frameborder="0" allowfullscreen></iframe>\n</center>\n<p>Also in the same conference, Bosch CEO Dr. Volkmar Denner <a href="http://bcw.bosch-si.com/berlin/bcw-hackathon/?refresh=1">refered to PPMP again</a>:</p>\n<blockquote>\n\t<p>On a more practical level, the product performance management protocol, or PPMP, is being tried out at the Bosch plant in Homburg, Germany, as part of a joint Industrie 4.0 and IIC testbed. Bosch itself developed the PPMP, which is available to all at no cost. It allows small and medium-sized enterprises to transmit data from their sensors quickly, simply, and securely to the production systems of large companies. This helps remove some of the obstacles preventing entry into connected manufacturing. This first practical experience will be used to further refine the new protocol – work which will be done by Eclipse, an open-source community. Once again, we see that openness is our life blood.</p>\n\t<footer>Dr. Volkmar Denner, Bosch CEO</footer>\n</blockquote>\n',url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:"2017-03-23T17:00:00.000Z",tags:["media"],prev:{url:"/blog/2016/9/27/News-coverage",title:"News Coverage"},next:{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2017/3/23/index.html b/blog/2017/3/23/index.html
index 35b9cc8..c19c2fd 100644
--- a/blog/2017/3/23/index.html
+++ b/blog/2017/3/23/index.html
@@ -22,7 +22,9 @@
           23
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -30,11 +32,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -58,6 +62,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:"2017-03-23T17:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:"2017-03-23T17:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2017/3/index.html b/blog/2017/3/index.html
index b70ccc5..bbc3210 100644
--- a/blog/2017/3/index.html
+++ b/blog/2017/3/index.html
@@ -22,7 +22,9 @@
           23
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -30,11 +32,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -58,6 +62,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:"2017-03-23T17:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:"2017-03-23T17:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2017/6/1/New-process-message-spec/index.html b/blog/2017/6/1/New-process-message-spec/index.html
index e611f47..67e259f 100644
--- a/blog/2017/6/1/New-process-message-spec/index.html
+++ b/blog/2017/6/1/New-process-message-spec/index.html
@@ -21,7 +21,9 @@
   </h2><div class="content"><div><p>We’re happy to announce, that the process message specification is online! You can find it at <a href="http://www.eclipse.org/unide/specification">http://www.eclipse.org/unide/specification</a>. With this type of messages you have a standard format for sending data out of discrete and possibly complex processes. <img src="/unide/images/processPayload.png" alt="alt text"></p>
 </div></div><div class="columns pageNav"><div class="column"><a href="/unide/blog/2017/3/23/Unide-at-BCX" class="button is-fullwidth"><span class="icon"><i class="fa fa-chevron-left"></i></span><span>Unide at Bosch Hackaton</span></a></div><div class="column"><a href="/unide/blog/2017/6/29/Validator-Online" class="button is-fullwidth"><span>First PPMP-Validator Online</span><span class="icon"><i class="fa fa-chevron-right"></i></span></a></div></div></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -29,11 +31,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -57,6 +61,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"New-process-message-spec",content:'<p>We’re happy to announce, that the process message specification is online! You can find it at <a href="http://www.eclipse.org/unide/specification">http://www.eclipse.org/unide/specification</a>. With this type of messages you have a standard format for sending data out of discrete and possibly complex processes. <img src="/unide/images/processPayload.png" alt="alt text"></p>\n',url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:"2017-06-01T00:00:00.000Z",tags:["process message"],prev:{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton"},next:{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"New-process-message-spec",content:'<p>We’re happy to announce, that the process message specification is online! You can find it at <a href="http://www.eclipse.org/unide/specification">http://www.eclipse.org/unide/specification</a>. With this type of messages you have a standard format for sending data out of discrete and possibly complex processes. <img src="/unide/images/processPayload.png" alt="alt text"></p>\n',url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:"2017-06-01T00:00:00.000Z",tags:["process message"],prev:{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton"},next:{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2017/6/1/index.html b/blog/2017/6/1/index.html
index 9919824..9c7f00e 100644
--- a/blog/2017/6/1/index.html
+++ b/blog/2017/6/1/index.html
@@ -22,7 +22,9 @@
           01
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -30,11 +32,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -58,6 +62,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:"2017-06-01T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:"2017-06-01T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2017/6/29/Validator-Online/index.html b/blog/2017/6/29/Validator-Online/index.html
index 03a778d..e95f187 100644
--- a/blog/2017/6/29/Validator-Online/index.html
+++ b/blog/2017/6/29/Validator-Online/index.html
@@ -29,7 +29,9 @@
 <p>Further functions of the sandbox server will be also visualization and storaging of incoming PPMP-messages.</p>
 </div></div><div class="columns pageNav"><div class="column"><a href="/unide/blog/2017/6/1/New-process-message-spec" class="button is-fullwidth"><span class="icon"><i class="fa fa-chevron-left"></i></span><span>New PPMP-Specification for processes</span></a></div><div class="column"><a href="/unide/blog/2017/10/6/DZone-article-published" class="button is-fullwidth"><span>DZone article published</span><span class="icon"><i class="fa fa-chevron-right"></i></span></a></div></div></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -37,11 +39,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -65,6 +69,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Validator-Online",content:"<p>Our first PPMP-Validator as a HTTP-server is online!</p>\n<p>What we already contribtuted as sourcecode to the Unide-project we've also installed on an eclipse sandbox server. Now you are able to validate your PPMP-messages through the internet without running the server on your local machine. The intention is to make the latest specification validator accessible to everyone at anytime.</p>\n<p>You can reach the server by sending POST-requests to the following endpoints:</p>\n<pre>\n<a>http://unide.eclipse.org/rest/v2/message?validate=true</a>\n<a>http://unide.eclipse.org/rest/v2/measurement?validate=true</a>\n<a>http://unide.eclipse.org/rest/v2/process?validate=true</a>\n</pre>\n<p>Further functions of the sandbox server will be also visualization and storaging of incoming PPMP-messages.</p>\n",url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:"2017-06-29T00:00:00.000Z",tags:["validator"],prev:{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes"},next:{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Validator-Online",content:"<p>Our first PPMP-Validator as a HTTP-server is online!</p>\n<p>What we already contribtuted as sourcecode to the Unide-project we've also installed on an eclipse sandbox server. Now you are able to validate your PPMP-messages through the internet without running the server on your local machine. The intention is to make the latest specification validator accessible to everyone at anytime.</p>\n<p>You can reach the server by sending POST-requests to the following endpoints:</p>\n<pre>\n<a>http://unide.eclipse.org/rest/v2/message?validate=true</a>\n<a>http://unide.eclipse.org/rest/v2/measurement?validate=true</a>\n<a>http://unide.eclipse.org/rest/v2/process?validate=true</a>\n</pre>\n<p>Further functions of the sandbox server will be also visualization and storaging of incoming PPMP-messages.</p>\n",url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:"2017-06-29T00:00:00.000Z",tags:["validator"],prev:{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes"},next:{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2017/6/29/index.html b/blog/2017/6/29/index.html
index 61cc067..ed3a03b 100644
--- a/blog/2017/6/29/index.html
+++ b/blog/2017/6/29/index.html
@@ -22,7 +22,9 @@
           29
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -30,11 +32,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -58,6 +62,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:"2017-06-29T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:"2017-06-29T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2017/6/index.html b/blog/2017/6/index.html
index 0be0caa..5031eb2 100644
--- a/blog/2017/6/index.html
+++ b/blog/2017/6/index.html
@@ -26,7 +26,9 @@
           01
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -34,11 +36,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -62,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:"2017-06-29T00:00:00.000Z"},{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:"2017-06-01T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:"2017-06-29T00:00:00.000Z"},{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:"2017-06-01T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2017/index.html b/blog/2017/index.html
index 5ceaaae..6f11435 100644
--- a/blog/2017/index.html
+++ b/blog/2017/index.html
@@ -38,7 +38,9 @@
           March 23
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -46,11 +48,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -74,6 +78,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z"},{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:"2017-10-06T00:00:00.000Z"},{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:"2017-06-29T00:00:00.000Z"},{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:"2017-06-01T00:00:00.000Z"},{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:"2017-03-23T17:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z"},{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:"2017-10-06T00:00:00.000Z"},{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:"2017-06-29T00:00:00.000Z"},{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:"2017-06-01T00:00:00.000Z"},{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:"2017-03-23T17:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2018/1/26/New-website/index.html b/blog/2018/1/26/New-website/index.html
index bb4001b..654ead2 100644
--- a/blog/2018/1/26/New-website/index.html
+++ b/blog/2018/1/26/New-website/index.html
@@ -22,7 +22,9 @@
 <p>Although the website has the same look, it is completely reworked as a <a href="https://en.wikipedia.org/wiki/Single-page_application">single-page application</a> to generate the specification directly from the json-schema. Instead of using <a href="https://hexo.io/">hexo</a> it is now based on <a href="https://nuxtjs.org/">nuxt.js</a>. <a href="https://vuejs.org/">Vue.js</a> as a basis for nuxt is also used in the <a href="https://github.com/eclipse/unide/tree/master/clients/binsa">new PPMP client application called binsa</a>.</p>
 </div></div><div class="columns pageNav"><div class="column"><a href="/unide/blog/2017/10/19/i40-testbed-started" class="button is-fullwidth"><span class="icon"><i class="fa fa-chevron-left"></i></span><span>Unide is part of Industry 4.0 Testbed</span></a></div><div class="column"><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel" class="button is-fullwidth"><span>PPMP Use Cases: Simple Transformation with Apache Camel</span><span class="icon"><i class="fa fa-chevron-right"></i></span></a></div></div></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -30,11 +32,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -58,6 +62,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"New-website",content:'<p>It turned out that even with multiple reviews, it is possible to have small mistakes in the PPMP documentation. In order to avoid such contradictions between diagrams, specification, json-schema and eventual implementation, we decided to rework the project structure and fixed <a href="https://github.com/eclipse/unide/issues/21">the JSON Schemas</a>. The corresponding uml diagrams are generated with <a href="http://plantuml.com/">plantuml</a>. For even better understandibility, the attributes are sorted lexicographically.</p>\n<p>Although the website has the same look, it is completely reworked as a <a href="https://en.wikipedia.org/wiki/Single-page_application">single-page application</a> to generate the specification directly from the json-schema. Instead of using <a href="https://hexo.io/">hexo</a> it is now based on <a href="https://nuxtjs.org/">nuxt.js</a>. <a href="https://vuejs.org/">Vue.js</a> as a basis for nuxt is also used in the <a href="https://github.com/eclipse/unide/tree/master/clients/binsa">new PPMP client application called binsa</a>.</p>\n',url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z",tags:["media"],prev:{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed"},next:{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"New-website",content:'<p>It turned out that even with multiple reviews, it is possible to have small mistakes in the PPMP documentation. In order to avoid such contradictions between diagrams, specification, json-schema and eventual implementation, we decided to rework the project structure and fixed <a href="https://github.com/eclipse/unide/issues/21">the JSON Schemas</a>. The corresponding uml diagrams are generated with <a href="http://plantuml.com/">plantuml</a>. For even better understandibility, the attributes are sorted lexicographically.</p>\n<p>Although the website has the same look, it is completely reworked as a <a href="https://en.wikipedia.org/wiki/Single-page_application">single-page application</a> to generate the specification directly from the json-schema. Instead of using <a href="https://hexo.io/">hexo</a> it is now based on <a href="https://nuxtjs.org/">nuxt.js</a>. <a href="https://vuejs.org/">Vue.js</a> as a basis for nuxt is also used in the <a href="https://github.com/eclipse/unide/tree/master/clients/binsa">new PPMP client application called binsa</a>.</p>\n',url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z",tags:["media"],prev:{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed"},next:{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2018/1/26/index.html b/blog/2018/1/26/index.html
index bff0518..5b55228 100644
--- a/blog/2018/1/26/index.html
+++ b/blog/2018/1/26/index.html
@@ -22,7 +22,9 @@
           26
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -30,11 +32,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -58,6 +62,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2018/1/index.html b/blog/2018/1/index.html
index 3040325..3b44da9 100644
--- a/blog/2018/1/index.html
+++ b/blog/2018/1/index.html
@@ -22,7 +22,9 @@
           26
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -30,11 +32,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -58,6 +62,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2018/2/11/Transform-PPMP-with-camel/index.html b/blog/2018/2/11/Transform-PPMP-with-camel/index.html
index 83e7722..dfb2f15 100644
--- a/blog/2018/2/11/Transform-PPMP-with-camel/index.html
+++ b/blog/2018/2/11/Transform-PPMP-with-camel/index.html
@@ -240,7 +240,7 @@
 		</figure>
 	</div>
 	<div class="card-content">
-		BMW plant in Leipzig, Germany: Spot welding <a href="https://creativecommons.org/licenses/by-sa/2.0/de/deed.en">(CC BY-SA 2.0 DE)</a>
+		Workflow to extract the data from controller, convert it and send the data to the cloud application
 	</div>
 </div>
 <p>The extra steps here are:</p>
@@ -658,7 +658,9 @@
 <p>It takes a while to understand the involved software components. Yet, once the set up is running, it gets much easier to adapt it to another Use Case. And another. The pattern of wiring protocols and transforming the payload is very similar. The involved frameworks are powerful enough to support many Use Cases. This article is supposed to show that there are simple possibilities to transform transport protocols and payloads, so that you can focus on addressing functional challenges.</p>
 </div></div><div class="columns pageNav"><div class="column"><a href="/unide/blog/2018/1/26/New-website" class="button is-fullwidth"><span class="icon"><i class="fa fa-chevron-left"></i></span><span>Updated Website</span></a></div><div class="column"><a href="/unide/blog/2018/2/13/grinding-machine-scenario" class="button is-fullwidth"><span>PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed</span><span class="icon"><i class="fa fa-chevron-right"></i></span></a></div></div></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel" class="nuxt-link-exact-active nuxt-link-active">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -666,11 +668,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2" class="nuxt-link-active">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2" class="nuxt-link-active">
         March 2018
       </a>
       (2)
@@ -694,6 +698,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Transform-PPMP-with-camel",content:'<p>The Production Performance Management Protocol (PPMP) is a simple structure to send out machine data. Unide, as its hosting project, is supposed to provide exemplary implementations.</p>\n<p>We have already published <a href="https://github.com/eclipse/unide/tree/master/servers/rest">a REST server</a>, <a href="https://github.com/eclipse/unide.java">java-</a> and <a href="https://github.com/eclipse/unide.python">python-</a> bindings and an <a href="https://github.com/eclipse/unide/tree/master/clients/binsa">html5-client</a>. But how are these implementations used in real life?</p>\n<h1>The Challenge</h1>\n<div class="card figure">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="Welding robots" title="BMW plant, spot welding" src="/unide/images/blog/Transform-PPMP-with-camel-welding.jpg"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tBMW plant in Leipzig, Germany: Spot welding <a href="https://creativecommons.org/licenses/by-sa/2.0/de/deed.en">(CC BY-SA 2.0 DE)</a>\n\t</div>\n</div>\n<p>In the automotive industry, <a href="https://en.wikipedia.org/wiki/Spot_welding">welding spots</a> are crucial for the quality of a car and the security of the passenger. In modern production lines, hundreds of welding spots have to be precisely set in a single shift. In order to reduce product rework, scrap, destructible tests and machine downtime, the quality should be monitored consistently. That\'s what special welding controller in machines do. Unfortunately, this data is often only used locally, for a short period of time and in proprietary formats. Just enough to determine the immediate process outcome. In that case, further opportunities of analysing the information are not taken. With the continuous increase in complexity, price and time pressure, the demand for further processing and optimization grows. The data could be used to prevent or even predict maintenance or just store the data in long time archives in case of legal disputes.</p>\n<p>One prerequisite for such connectivity is the hardware and its connectivity. Older generations of welding controllers can only be accessed with proprietary stacks (like the <a href="https://www.boschrexroth.com/en/xc/products/product-groups/welding-technology/controllers-with-power-section/mf-system-psi6000/index">PSI 6000</a>) whereas newer generations (like the <a href="https://www.boschrexroth.com/en/xc/company/press/index2-29696">PRC 7000</a>) are much more flexible in terms of networking and communication. In general, there are two aspects that make up the communication: the transport protocol and the structure of the payload. This is similar to our daily life: if you want to chat with your friends, you need to use the same messenger or communication technology (phone, email) and you need speak the same language (English, German etc.).</p>\n<p>In the following sections, let\'s assume we need to transform the transport protocol as well as the payload. The data is generated by a welding controller and should be passed to <a href="https://unide.eclipse.org">the unide REST server</a> for persisting it in a dedicated timeseries database.</p>\n<h1>The Approach</h1>\n<p>We want to find a way to receive the data, transform it into PPMP and store it into a database in our <a href="https://unide.eclipse.org">REST Server</a>.</p>\n<p>First, we need to understand which interfaces the controller has, which communication protocol is used, and how the payload would be interpreted. In the case of the PSI 6000, it was configured to publish the quality data to a <a href="https://de.wikipedia.org/wiki/MQTT">mqtt</a> message broker (here: <a href="https://mosquitto.org/">Eclipse mosquitto</a>). We don\'t have an extensive documentation of the payload, but we can look at samples of it (some Curve data shortened at the end):</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"Name"</span><span class="token operator">:</span> <span class="token string">"WeldLog/UIR Testrack 24/"</span><span class="token punctuation">,</span>\n  <span class="token property">"WeldTimer"</span><span class="token operator">:</span> <span class="token string">"UIR Testrack 24"</span><span class="token punctuation">,</span>\n  <span class="token property">"TimeStamp"</span><span class="token operator">:</span> <span class="token string">"2018-01-17T10:41:00.0008436+01:00"</span><span class="token punctuation">,</span>\n  <span class="token property">"OutputFormat"</span><span class="token operator">:</span> <span class="token string">"JSON"</span><span class="token punctuation">,</span>\n  <span class="token property">"Message"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n    <span class="token property">"WeldLog"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n      <span class="token property">"protRecord_ID"</span><span class="token operator">:</span> <span class="token number">734827</span><span class="token punctuation">,</span>\n      <span class="token property">"dateTime"</span><span class="token operator">:</span> <span class="token string">"2018-01-15T16:52:32.09"</span><span class="token punctuation">,</span>\n      <span class="token property">"timerName"</span><span class="token operator">:</span> <span class="token string">"UIR Testrack 24"</span><span class="token punctuation">,</span>\n      <span class="token property">"progNo"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"spotName"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>\n      <span class="token property">"wear"</span><span class="token operator">:</span> <span class="token number">8312480</span><span class="token punctuation">,</span>\n      <span class="token property">"wearPerCent"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"monitorState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulationState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"measureState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"powerState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sequenceState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sequenceStateAdd"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sequenceRepeat"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"monitorMode"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemandStd"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"ilsts"</span><span class="token operator">:</span> <span class="token number">13.14</span><span class="token punctuation">,</span>\n      <span class="token property">"regulationStd"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemand1"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"iActual1"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulation1"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemand2"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"iActual2"</span><span class="token operator">:</span> <span class="token number">13.16</span><span class="token punctuation">,</span>\n      <span class="token property">"regulation2"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemand3"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"iActual3"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulation3"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>\n      <span class="token property">"phaStd"</span><span class="token operator">:</span> <span class="token number">24.96</span><span class="token punctuation">,</span>\n      <span class="token property">"pha1"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"pha2"</span><span class="token operator">:</span> <span class="token number">24.64</span><span class="token punctuation">,</span>\n      <span class="token property">"pha3"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"t_iDemandStd"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"tActualStd"</span><span class="token operator">:</span> <span class="token number">878</span><span class="token punctuation">,</span>\n      <span class="token property">"partIdentString"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>\n      <span class="token property">"tipDressCounter"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"electrodeNo"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sgForceSetPoint"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSheetThicknessSetPoint"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSagGpSetPoint"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSpotWithSg"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgMotorCurrent"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgMotorTemp"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgForce"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSheetThickness"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSagGp"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSagGc"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"regUsrUspJunction"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regUsrUspMax"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regSpotDiaActual"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regSpotDiaMinDemand"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regSplashTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"nuggetDiameter"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"usp"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"normingTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulationStartTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"returnToConstantCurrent"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"declineUsp"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"offsetUsp"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"currentFactor"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"triggerTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrMeasuringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrRegulationActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrMonitoringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrWeldTimeProlongationActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"voltageActualValue"</span><span class="token operator">:</span> <span class="token number">0.03</span><span class="token punctuation">,</span>\n      <span class="token property">"voltageRefValue"</span><span class="token operator">:</span> <span class="token number">0.03</span><span class="token punctuation">,</span>\n      <span class="token property">"currentActualValue"</span><span class="token operator">:</span> <span class="token number">13.17</span><span class="token punctuation">,</span>\n      <span class="token property">"currentReferenceValue"</span><span class="token operator">:</span> <span class="token number">13.95</span><span class="token punctuation">,</span>\n      <span class="token property">"weldTimeActualValue"</span><span class="token operator">:</span> <span class="token number">876</span><span class="token punctuation">,</span>\n      <span class="token property">"weldTimeRefValue"</span><span class="token operator">:</span> <span class="token number">760</span><span class="token punctuation">,</span>\n      <span class="token property">"energyActualValue"</span><span class="token operator">:</span> <span class="token number">395.1261</span><span class="token punctuation">,</span>\n      <span class="token property">"energyRefValue"</span><span class="token operator">:</span> <span class="token number">342</span><span class="token punctuation">,</span>\n      <span class="token property">"powerActualValue"</span><span class="token operator">:</span> <span class="token number">395.133</span><span class="token punctuation">,</span>\n      <span class="token property">"powerRefValue"</span><span class="token operator">:</span> <span class="token number">449.35</span><span class="token punctuation">,</span>\n      <span class="token property">"resistanceActualValue"</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span>\n      <span class="token property">"resistanceRefValue"</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span>\n      <span class="token property">"pulseWidthActualValue"</span><span class="token operator">:</span> <span class="token number">25.02</span><span class="token punctuation">,</span>\n      <span class="token property">"pulseWidthRefValue"</span><span class="token operator">:</span> <span class="token number">26.19</span><span class="token punctuation">,</span>\n      <span class="token property">"stabilisationFactorActValue"</span><span class="token operator">:</span> <span class="token number">55</span><span class="token punctuation">,</span>\n      <span class="token property">"stabilisationFactorRefValue"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"thresholdStabilisationFactor"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"wldEffectStabilisationFactor"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uipActualValue"</span><span class="token operator">:</span> <span class="token number">126</span><span class="token punctuation">,</span>\n      <span class="token property">"uipRefValue"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirExpulsionTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"uirMeasuringActive"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"uirRegulationActive"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"uirMonitoringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"uirWeldTimeProlongationActive"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"uirQStoppRefCntValue"</span><span class="token operator">:</span> <span class="token number">9</span><span class="token punctuation">,</span>\n      <span class="token property">"uirQStoppActCntValue"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"uirUipUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirUipLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirUipCondTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirPsfLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirPsfCondTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_1"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_2"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_3"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_4"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_5"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP32_6"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_7"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_8"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_9"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_10"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_11"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP32_12"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_13"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_14"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_15"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_16"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_17"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP32_18"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"uipMonCondUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfActualValue"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfRefValue"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonCondUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonCondLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMeasuringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrModeOff"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"reweldActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"weldspotRefIdent"</span><span class="token operator">:</span> <span class="token string">"UIR_PART"</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Torque_Gp"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Force_Corr"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Weldspot_Geo_Wear"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Wear_Length"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Beam_UpArching"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"CurrentCurve"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n        <span class="token number">11621</span><span class="token punctuation">,</span>\n        <span class="token number">15434</span><span class="token punctuation">,</span>\n        ...\n      <span class="token punctuation">]</span><span class="token punctuation">,</span>\n      <span class="token property">"VoltageCurve"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n        <span class="token number">39</span><span class="token punctuation">,</span>\n        <span class="token number">29</span><span class="token punctuation">,</span>\n        ...\n      <span class="token punctuation">]</span><span class="token punctuation">,</span>\n      <span class="token property">"ForceCurve"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n        <span class="token number">49</span><span class="token punctuation">,</span>\n        <span class="token number">49</span><span class="token punctuation">,</span>\n        ...\n      <span class="token punctuation">]</span>\n    <span class="token punctuation">}</span>\n  <span class="token punctuation">}</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<p>That\'s already very detailed, but it\'s unclear which device / welding spot the data comes from and what the timing of the curves was. Let\'s get some more structure in with PPMP!</p>\n<p>In PPMP, we have the option to differentiate between discrete manufacturing data (MES - part produced) by using the <a href="/unide/specification/measurement-message">measurement-message</a> and detailed process data by using the <a href="https://www.eclipse.org/unide/specification/process-message">process-message</a>. In the welding payload, that\'s all combined in one message. So we also want to split this payload into two.</p>\n<h2>Introducing Apache Camel</h2>\n<div class="card figure is-pulled-left">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="Apache Camel" title="Apache Camel" src="/unide/images/blog/Transform-PPMP-with-camel-camel.png"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tApache Camel, <a href="https://www.apache.org/licenses/LICENSE-2.0">(Apache&nbsp;License&nbsp;2.0)</a>\n\t</div>\n</div>\n<p><a href="https://en.wikipedia.org/wiki/Apache_Camel">Apache Camel</a> is a java-based Open Source framework, that can transform and route data. It supports most of the <a href="https://en.wikipedia.org/wiki/Enterprise_Integration_Patterns">Enterprise Integration Patterns</a> and hundreds(!) of <a href="http://camel.apache.org/components.html">connectors / components</a>. Think of it as an extensive transformation and workflow automation engine. In fact, it\'s so powerful and versatile, that it unfortunately doesn\'t come with a visual user interface or a plug-and-play installer. Luckily, for everyone who doesn\'t happen to be a java expert, there\'s also an xml configuration (via <a href="https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/xsd-configuration.html">spring xml</a>). And that\'s mostly all we need!</p>\n<h2>Transforming the Communication Protocol</h2>\n<p>We will use Spring XML to configure Apache Camel. The workflow in Camel are called <code>&lt;routes&gt;</code>. So let\'s create a route that transforms our mqtt to REST protocol:</p>\n<pre class="language-xml"><code class="language-xml"><span class="token prolog">&lt;?xml version="1.0" encoding="UTF-8"?></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>beans</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/beans<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>xsi</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.w3.org/2001/XMLSchema-instance<span class="token punctuation">"</span></span> <span class="token attr-name"><span class="token namespace">xmlns:</span>camel</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>util</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xsi:</span>schemaLocation</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util\n\thttp://www.springframework.org/schema/util/spring-util.xsd \n\thttp://www.springframework.org/schema/beans\n    http://www.springframework.org/schema/beans/spring-beans.xsd\n    http://camel.apache.org/schema/spring\n    http://camel.apache.org/schema/spring/camel-spring.xsd<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>mqtt://psi6000?host=tcp://192.168.123.135:1883<span class="token entity" title="&amp;">&amp;amp;</span>subscribeTopicName=PSI6000//PROCESS/PPMP/PROCESS<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://unide.eclipse.org:8080/rest/v2/measurement?bridgeEndpoint=true<span class="token entity" title="&amp;">&amp;amp;</span>throwExceptionOnFailure=true<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>beans</span><span class="token punctuation">></span></span>\n</code></pre>\n<p>That\'s it! A <code>&lt;route&gt;</code> that reads<code>&lt;from&gt;</code> mqtt and forwards <code>&lt;to&gt;</code> http. Not so difficult, is it? We could use many of the other <a href="http://camel.apache.org/components.html">connectors / components</a> in the example above as well to transform from/to different protocols.</p>\n<p>But wait! The welding payload above was not PPMP. So we also need to normalize the payload.</p>\n<h2>Normalizing the Payload</h2>\n<p>Now that we can easily convert protocols, let\'s address the structure of the payload. Overall, we want to have a workflow that looks as described in the diagram below:</p>\n<div class="card figure">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="data workflow" title="data workflow" src="/unide/images/blog/Transform-PPMP-with-camel-1.svg"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tBMW plant in Leipzig, Germany: Spot welding <a href="https://creativecommons.org/licenses/by-sa/2.0/de/deed.en">(CC BY-SA 2.0 DE)</a>\n\t</div>\n</div>\n<p>The extra steps here are:</p>\n<ol>\n<li>transform the PSI 6000 JSON String payload to a java object</li>\n<li>transform the PSI 6000 java object to two PPMP-java objects (<a href="/unide/specification/measurement-message">measurement-message</a> and <a href="https://www.eclipse.org/unide/specification/process-message">process-message</a>)</li>\n<li>split up the two PPMP objects</li>\n<li>route the objects individually</li>\n<li>transform each PPMP object back to a String</li>\n</ol>\n<h3>Create the PSI 6000 Java Object</h3>\n<p>Luckily, there are helpers for transforming json (or xml) to plain old java objects (POJOs). We are using <a href="http://www.jsonschema2pojo.org/">jsonschema2pojo</a> to convert the above json sample to POJOs with Jackson 2.x annotation. I name the resulting data type class <code>PSI6000DataType</code> and organize it in the package <code>org.eclipse.iot.unide.integrators</code>. Based on the given testdata, jsonschema2pojo cannot fully deduct all attribute types correctly. In order to allow floating point values, we would rename all <code>Integer</code> and <code>Object</code> types to <code>Number</code> in the WeldLog.java file. Also in the same file, we would change the type of the <code>dateTime</code> field from String to <code>LocalDateTime</code> to be more accurate:</p>\n<pre class="language-java"><code class="language-java"><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n<span class="token annotation punctuation">@JsonProperty</span><span class="token punctuation">(</span><span class="token string">"dateTime"</span><span class="token punctuation">)</span>\n<span class="token annotation punctuation">@JsonSerialize</span><span class="token punctuation">(</span>using <span class="token operator">=</span> LocalDateTimeSerializer<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span>\n<span class="token annotation punctuation">@JsonDeserialize</span><span class="token punctuation">(</span>using <span class="token operator">=</span> LocalDateTimeDeserializer<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span>\n<span class="token keyword">private</span> LocalDateTime dateTime<span class="token punctuation">;</span>\n<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n</code></pre>\n<p>For that, we also need to include the respective imports:</p>\n<pre class="language-java"><code class="language-java"><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>databind<span class="token punctuation">.</span>annotation<span class="token punctuation">.</span>JsonDeserialize<span class="token punctuation">;</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>databind<span class="token punctuation">.</span>annotation<span class="token punctuation">.</span>JsonSerialize<span class="token punctuation">;</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>datatype<span class="token punctuation">.</span>jsr310<span class="token punctuation">.</span>deser<span class="token punctuation">.</span>LocalDateTimeDeserializer<span class="token punctuation">;</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>datatype<span class="token punctuation">.</span>jsr310<span class="token punctuation">.</span>ser<span class="token punctuation">.</span>LocalDateTimeSerializer<span class="token punctuation">;</span>\n<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n</code></pre>\n<p>and adjust the getter (<code>getDateTime()</code>), setter (<code>setDateTime()</code>) and the type in the constructor (<code>public WeldLog(...)</code>) accordingly.</p>\n<p>Camel will be able to transform (&quot;<em>unmarshal</em>&quot;) this datatype from a string to a POJO after adding the definition to the above Spring XML:</p>\n<pre class="language-xml"><code class="language-xml">...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dataFormats</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000DataType<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dataFormats</span><span class="token punctuation">></span></span>\n\t...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n</code></pre>\n<h3>Use unide.java binding for PPMP Java Objects</h3>\n<p>For eventually transforming the PPMP objects back to String (&quot;<em>marshal</em>&quot;), we can make use of the <a href="https://github.com/eclipse/unide.java">unide PPMP java binding</a>. Just adjust the dataFormats section of the Spring XML so that it reads:</p>\n<pre class="language-xml"><code class="language-xml">...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dataFormats</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000DataType<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpMeasurementMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.measurements.MeasurementsWrapper<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span> \n\t\t\t<span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpProcessMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.process.ProcessWrapper<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dataFormats</span><span class="token punctuation">></span></span>\n\t...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n</code></pre>\n<h3>Create the Workflow</h3>\n<p>In order to better structure data flow, we use multiple <code>&lt;route&gt;</code>-s: one for retrieving the data and two more after the split of the payload. They are connected via the virtual camel protocol &quot;<em>direct</em>&quot;. In the following Spring XML, you can also find some <code>&lt;log&gt;</code> points and additional steps to set http header (<code>&lt;setHeader&gt;</code>) for posting to the unide server:</p>\n<pre class="language-xml"><code class="language-xml"><span class="token prolog">&lt;?xml version="1.0" encoding="UTF-8"?></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>beans</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/beans<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>xsi</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.w3.org/2001/XMLSchema-instance<span class="token punctuation">"</span></span> <span class="token attr-name"><span class="token namespace">xmlns:</span>camel</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>util</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xsi:</span>schemaLocation</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util\n\thttp://www.springframework.org/schema/util/spring-util.xsd \n\thttp://www.springframework.org/schema/beans\n    http://www.springframework.org/schema/beans/spring-beans.xsd\n    http://camel.apache.org/schema/spring\n    http://camel.apache.org/schema/spring/camel-spring.xsd<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>bean</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000-to-ppmp<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>bean</span><span class="token punctuation">></span></span>\n\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dataFormats</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000DataType<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpMeasurementMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.measurements.MeasurementsWrapper<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span> <span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpProcessMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.process.ProcessWrapper<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span> <span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dataFormats</span><span class="token punctuation">></span></span>\n\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span> <span class="token attr-name">autoStartup</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>true<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>mqtt://psi6000?host=tcp://192.168.123.135:1883<span class="token entity" title="&amp;">&amp;amp;</span>subscribeTopicName=PSI6000//PROCESS/PPMP/PROCESS<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>unmarshal</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>bean</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000-to-ppmp<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Content-Type<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>constant</span><span class="token punctuation">></span></span>application/json; charset=utf-8<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>constant</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>CamelHttpMethod<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>constant</span><span class="token punctuation">></span></span>POST<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>constant</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>multicast</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:measurement<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:process<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>multicast</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>done<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>{"result": true }<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:measurement<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>${body[0]}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>deviceId measurement: ${body.device.deviceID}<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>marshal</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpMeasurementMessage<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>sending measurement<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Content-Length<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>body.length<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://unide.eclipse.org:8080/rest/v2/measurement?bridgeEndpoint=true<span class="token entity" title="&amp;">&amp;amp;</span>throwExceptionOnFailure=true<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>measurement sent<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:process<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>${body[1]}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>deviceId process: ${body.device.deviceID}<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>marshal</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpProcessMessage<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>sending process<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Content-Length<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>body.length<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://unide.eclipse.org:8080/rest/v2/process?bridgeEndpoint=true<span class="token entity" title="&amp;">&amp;amp;</span>throwExceptionOnFailure=true<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>process sent<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>beans</span><span class="token punctuation">></span></span>\n</code></pre>\n<p>You might have noticed that we have not yet discussed one important item in this workflow: how do we actually transform the payload from one format to another?</p>\n<h3>Transforming from PSI 6000 POJO to PPMP POJOs</h3>\n<p>One thing that we\'ll hardwire as java code is the transformation from the source to the target structure. The same functionality could be achieved with scripting components (e.g. <a href="http://camel.apache.org/groovy.html">groovy</a>, but that would be less powerful and worse performance. Since we don\'t expect the format to change but mostly the workflow or endpoints, implementing a java bean is not too much effort. Here\'s how:<br>\nApache Camel offers a <code>Processor</code> interface that can be used to override the <code>process()</code> function. This function receives the complete message (<code>exchange</code>) and can modify it in any way. Since we have created the PSI 6000 Java Object already and want to produce PPMP java objects, the logic is mostly about creating the child objects and wiring the suitable getter to corresponding setter.</p>\n<pre class="language-java"><code class="language-java"><span class="token keyword">package</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>integrators<span class="token punctuation">;</span>\n\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>time<span class="token punctuation">.</span>OffsetDateTime<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>time<span class="token punctuation">.</span>ZoneOffset<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>Arrays<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>LinkedList<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>List<span class="token punctuation">;</span>\n\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>camel<span class="token punctuation">.</span>Exchange<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>camel<span class="token punctuation">.</span>Message<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>camel<span class="token punctuation">.</span>Processor<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>commons<span class="token punctuation">.</span>Device<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>commons<span class="token punctuation">.</span>MetaData<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>MeasurementsWrapper<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Process<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>ProcessWrapper<span class="token punctuation">;</span>\n\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>core<span class="token punctuation">.</span>JsonProcessingException<span class="token punctuation">;</span>\n\n<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">PSI6000</span> <span class="token keyword">implements</span> <span class="token class-name">Processor</span> <span class="token punctuation">{</span>\n\n\t<span class="token keyword">public</span> <span class="token function">PSI6000</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap <span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>\n\t\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap map<span class="token punctuation">,</span> String name<span class="token punctuation">,</span> Number value<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>value <span class="token operator">!=</span> null<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\tmap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span>name<span class="token punctuation">,</span> Arrays<span class="token punctuation">.</span><span class="token function">asList</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\t\t<span class="token keyword">return</span> map<span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token annotation punctuation">@Override</span>\n\t<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">process</span><span class="token punctuation">(</span>Exchange exchange<span class="token punctuation">)</span> <span class="token keyword">throws</span> JsonProcessingException<span class="token punctuation">,</span> Exception <span class="token punctuation">{</span>\n\t\tMessage msg <span class="token operator">=</span> exchange<span class="token punctuation">.</span><span class="token function">getIn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tPSI6000DataType doc <span class="token operator">=</span> msg<span class="token punctuation">.</span><span class="token function">getBody</span><span class="token punctuation">(</span>PSI6000DataType<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\tObject <span class="token punctuation">[</span><span class="token punctuation">]</span>bundle <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Object</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">;</span>\n\t\tbundle<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span>       <span class="token operator">=</span> <span class="token function">transformMeasurement</span><span class="token punctuation">(</span>doc<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tbundle<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>       <span class="token operator">=</span> <span class="token function">transformProcess</span><span class="token punctuation">(</span>doc<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tmsg<span class="token punctuation">.</span><span class="token function">setBody</span><span class="token punctuation">(</span>bundle<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\texchange<span class="token punctuation">.</span><span class="token function">setOut</span><span class="token punctuation">(</span>msg<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> <span class="token keyword">void</span> <span class="token function">setSpotName</span><span class="token punctuation">(</span>Device device<span class="token punctuation">,</span> WeldLog wl<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\tString spotName <span class="token operator">=</span> wl<span class="token punctuation">.</span><span class="token function">getSpotName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>spotName <span class="token operator">!=</span> null <span class="token operator">&amp;&amp;</span> spotName<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\tMetaData md <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MetaData</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tmd<span class="token punctuation">.</span><span class="token function">setMetaDataValue</span><span class="token punctuation">(</span><span class="token string">"spotName"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSpotName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tdevice<span class="token punctuation">.</span><span class="token function">setMetaData</span><span class="token punctuation">(</span>md<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> ProcessWrapper <span class="token function">transformProcess</span><span class="token punctuation">(</span>PSI6000DataType doc<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\tProcessWrapper wrapper <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ProcessWrapper</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tWeldLog wl <span class="token operator">=</span> doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tOffsetDateTime odt <span class="token operator">=</span> OffsetDateTime<span class="token punctuation">.</span><span class="token function">of</span><span class="token punctuation">(</span>wl<span class="token punctuation">.</span><span class="token function">getDateTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> ZoneOffset<span class="token punctuation">.</span>UTC<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// device</span>\n\t\tDevice device <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Device</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tdevice<span class="token punctuation">.</span><span class="token function">setDeviceID</span><span class="token punctuation">(</span>doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getTimerName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">setSpotName</span><span class="token punctuation">(</span>device<span class="token punctuation">,</span> wl<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setDevice</span><span class="token punctuation">(</span>device<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// part</span>\n\t\tString partId <span class="token operator">=</span> wl<span class="token punctuation">.</span><span class="token function">getPartIdentString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>partId <span class="token operator">!=</span> null <span class="token operator">&amp;&amp;</span> partId<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Part part <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Part</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tpart<span class="token punctuation">.</span><span class="token function">setPartID</span><span class="token punctuation">(</span>partId<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\twrapper<span class="token punctuation">.</span><span class="token function">setPart</span><span class="token punctuation">(</span>part<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\n\t\t<span class="token comment">// process</span>\n\t\tProcess process <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Process</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tprocess<span class="token punctuation">.</span><span class="token function">setTimestamp</span><span class="token punctuation">(</span>odt<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tprocess<span class="token punctuation">.</span><span class="token function">setExternalProcessId</span><span class="token punctuation">(</span>String<span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span>wl<span class="token punctuation">.</span><span class="token function">getProtRecordID</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setProcess</span><span class="token punctuation">(</span>process<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// measurements</span>\n\t\tList<span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements<span class="token operator">></span> measurements <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">LinkedList</span><span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements<span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements measurement <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setTimestamp</span><span class="token punctuation">(</span>odt<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">//values</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>SeriesMap seriesMap <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>SeriesMap</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"curentCurve"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentCurve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"voltageCurve"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getVoltageCurve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"forceCurve"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getForceCurve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setSeriesMap</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tmeasurements<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>measurement<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setMeasurements</span><span class="token punctuation">(</span>measurements<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\n\t\t<span class="token keyword">return</span> wrapper<span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> MeasurementsWrapper <span class="token function">transformMeasurement</span><span class="token punctuation">(</span>PSI6000DataType doc<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\tMeasurementsWrapper wrapper <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MeasurementsWrapper</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tWeldLog wl <span class="token operator">=</span> doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// device</span>\n\t\tDevice device <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Device</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tdevice<span class="token punctuation">.</span><span class="token function">setDeviceID</span><span class="token punctuation">(</span>doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getTimerName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">setSpotName</span><span class="token punctuation">(</span>device<span class="token punctuation">,</span> wl<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setDevice</span><span class="token punctuation">(</span>device<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// part</span>\n\t\tString partId <span class="token operator">=</span> wl<span class="token punctuation">.</span><span class="token function">getPartIdentString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>partId <span class="token operator">!=</span> null <span class="token operator">&amp;&amp;</span> partId<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Part part <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Part</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tpart<span class="token punctuation">.</span><span class="token function">setPartID</span><span class="token punctuation">(</span>partId<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\twrapper<span class="token punctuation">.</span><span class="token function">setPart</span><span class="token punctuation">(</span>part<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\n\t\t<span class="token comment">// measurements</span>\n\t\tList<span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements<span class="token operator">></span> measurements <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">LinkedList</span><span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements<span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements measurement <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setTimestamp</span><span class="token punctuation">(</span>OffsetDateTime<span class="token punctuation">.</span><span class="token function">of</span><span class="token punctuation">(</span>wl<span class="token punctuation">.</span><span class="token function">getDateTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> ZoneOffset<span class="token punctuation">.</span>UTC<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// values</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap seriesMap <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"$_time"</span><span class="token punctuation">,</span> Arrays<span class="token punctuation">.</span><span class="token function">asList</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"wear"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"wearPerCent"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWearPerCent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"monitorState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getMonitorState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulationState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulationState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"measureState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getMeasureState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"powerState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPowerState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sequenceState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSequenceState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sequenceStateAdd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSequenceStateAdd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sequenceRepeat"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSequenceRepeat</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"monitorMode"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getMonitorMode</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemandStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemandStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"ilsts"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIlsts</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulationStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulationStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemand1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemand1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iActual1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIActual1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulation1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulation1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemand2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemand2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iActual2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIActual2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulation2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulation2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemand3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemand3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iActual3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIActual3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulation3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulation3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"phaStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPhaStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pha1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPha1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pha2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPha2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pha3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPha3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"t_iDemandStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemandStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"tActualStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getTActualStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token comment">// addMeasurementPoint(seriesMap, "partIdentString",</span>\n\t\t<span class="token comment">// wl.getPartIdentString());</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"tipDressCounter"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getTipDressCounter</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"electrodeNo"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getElectrodeNo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgForceSetPoint"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgForceSetPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSheetThicknessSetPoint"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSheetThicknessSetPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSagGpSetPoint"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSagGpSetPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSpotWithSg"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSpotWithSg</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgMotorCurrent"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgMotorCurrent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgMotorTemp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgMotorTemp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgForce"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgForce</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSheetThickness"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSheetThickness</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSagGp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSagGp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSagGc"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSagGc</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regUsrUspJunction"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegUsrUspJunction</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regUsrUspMax"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegUsrUspMax</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regSpotDiaActual"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegSpotDiaActual</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regSpotDiaMinDemand"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegSpotDiaMinDemand</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regSplashTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegSplashTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"nuggetDiameter"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getNuggetDiameter</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"usp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUsp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"normingTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getNormingTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulationStartTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulationStartTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"returnToConstantCurrent"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getReturnToConstantCurrent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"declineUsp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getDeclineUsp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"offsetUsp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getOffsetUsp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"currentFactor"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentFactor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"triggerTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getTriggerTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrMeasuringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrMeasuringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrRegulationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrRegulationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrMonitoringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrMonitoringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrWeldTimeProlongationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrWeldTimeProlongationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"voltageActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getVoltageActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"voltageRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getVoltageRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"currentActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"currentReferenceValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentReferenceValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldTimeActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldTimeActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldTimeRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldTimeRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"energyActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getEnergyActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"energyRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getEnergyRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"powerActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPowerActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"powerRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPowerRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"resistanceActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getResistanceActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"resistanceRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getResistanceRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pulseWidthActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPulseWidthActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pulseWidthRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPulseWidthRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"stabilisationFactorActValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getStabilisationFactorActValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"stabilisationFactorRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getStabilisationFactorRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"thresholdStabilisationFactor"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getThresholdStabilisationFactor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"wldEffectStabilisationFactor"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWldEffectStabilisationFactor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uipActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUipActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uipRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUipRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirExpulsionTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirExpulsionTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirMeasuringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirMeasuringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirRegulationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirRegulationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirMonitoringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirMonitoringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirWeldTimeProlongationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirWeldTimeProlongationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirQStoppRefCntValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirQStoppRefCntValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirQStoppActCntValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirQStoppActCntValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirUipUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirUipUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirUipLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirUipLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirUipCondTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirUipCondTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirPsfLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirPsfLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirPsfCondTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirPsfCondTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP161</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP162</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP163</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_4"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP164</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_5"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP165</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP32_6"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP326</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_7"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP167</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_8"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP168</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_9"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP169</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_10"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1610</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_11"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1611</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP32_12"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP3212</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_13"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1613</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_14"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1614</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_15"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1615</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_16"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1616</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_17"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1617</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP32_18"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP3218</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uipMonCondUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUipMonCondUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonCondUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonCondUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonCondLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonCondLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMeasuringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMeasuringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrModeOff"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrModeOff</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"reweldActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getReweldActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token comment">// addMeasurementPoint(seriesMap, "weldspotRefIdent",</span>\n\t\t<span class="token comment">// wl.getWeldspotRefIdent());</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Torque_Gp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgTorqueGp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Force_Corr"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgForceCorr</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Weldspot_Geo_Wear"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgWeldspotGeoWear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Wear_Length"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgWearLength</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Beam_UpArching"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgBeamUpArching</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setSeriesMap</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tmeasurements<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>measurement<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setMeasurements</span><span class="token punctuation">(</span>measurements<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token keyword">return</span> wrapper<span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<h1>Summary</h1>\n<p>It takes a while to understand the involved software components. Yet, once the set up is running, it gets much easier to adapt it to another Use Case. And another. The pattern of wiring protocols and transforming the payload is very similar. The involved frameworks are powerful enough to support many Use Cases. This article is supposed to show that there are simple possibilities to transform transport protocols and payloads, so that you can focus on addressing functional challenges.</p>\n',url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z",tags:["use cases"],prev:{url:"/blog/2018/1/26/New-website",title:"Updated Website"},next:{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Transform-PPMP-with-camel",content:'<p>The Production Performance Management Protocol (PPMP) is a simple structure to send out machine data. Unide, as its hosting project, is supposed to provide exemplary implementations.</p>\n<p>We have already published <a href="https://github.com/eclipse/unide/tree/master/servers/rest">a REST server</a>, <a href="https://github.com/eclipse/unide.java">java-</a> and <a href="https://github.com/eclipse/unide.python">python-</a> bindings and an <a href="https://github.com/eclipse/unide/tree/master/clients/binsa">html5-client</a>. But how are these implementations used in real life?</p>\n<h1>The Challenge</h1>\n<div class="card figure">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="Welding robots" title="BMW plant, spot welding" src="/unide/images/blog/Transform-PPMP-with-camel-welding.jpg"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tBMW plant in Leipzig, Germany: Spot welding <a href="https://creativecommons.org/licenses/by-sa/2.0/de/deed.en">(CC BY-SA 2.0 DE)</a>\n\t</div>\n</div>\n<p>In the automotive industry, <a href="https://en.wikipedia.org/wiki/Spot_welding">welding spots</a> are crucial for the quality of a car and the security of the passenger. In modern production lines, hundreds of welding spots have to be precisely set in a single shift. In order to reduce product rework, scrap, destructible tests and machine downtime, the quality should be monitored consistently. That\'s what special welding controller in machines do. Unfortunately, this data is often only used locally, for a short period of time and in proprietary formats. Just enough to determine the immediate process outcome. In that case, further opportunities of analysing the information are not taken. With the continuous increase in complexity, price and time pressure, the demand for further processing and optimization grows. The data could be used to prevent or even predict maintenance or just store the data in long time archives in case of legal disputes.</p>\n<p>One prerequisite for such connectivity is the hardware and its connectivity. Older generations of welding controllers can only be accessed with proprietary stacks (like the <a href="https://www.boschrexroth.com/en/xc/products/product-groups/welding-technology/controllers-with-power-section/mf-system-psi6000/index">PSI 6000</a>) whereas newer generations (like the <a href="https://www.boschrexroth.com/en/xc/company/press/index2-29696">PRC 7000</a>) are much more flexible in terms of networking and communication. In general, there are two aspects that make up the communication: the transport protocol and the structure of the payload. This is similar to our daily life: if you want to chat with your friends, you need to use the same messenger or communication technology (phone, email) and you need speak the same language (English, German etc.).</p>\n<p>In the following sections, let\'s assume we need to transform the transport protocol as well as the payload. The data is generated by a welding controller and should be passed to <a href="https://unide.eclipse.org">the unide REST server</a> for persisting it in a dedicated timeseries database.</p>\n<h1>The Approach</h1>\n<p>We want to find a way to receive the data, transform it into PPMP and store it into a database in our <a href="https://unide.eclipse.org">REST Server</a>.</p>\n<p>First, we need to understand which interfaces the controller has, which communication protocol is used, and how the payload would be interpreted. In the case of the PSI 6000, it was configured to publish the quality data to a <a href="https://de.wikipedia.org/wiki/MQTT">mqtt</a> message broker (here: <a href="https://mosquitto.org/">Eclipse mosquitto</a>). We don\'t have an extensive documentation of the payload, but we can look at samples of it (some Curve data shortened at the end):</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"Name"</span><span class="token operator">:</span> <span class="token string">"WeldLog/UIR Testrack 24/"</span><span class="token punctuation">,</span>\n  <span class="token property">"WeldTimer"</span><span class="token operator">:</span> <span class="token string">"UIR Testrack 24"</span><span class="token punctuation">,</span>\n  <span class="token property">"TimeStamp"</span><span class="token operator">:</span> <span class="token string">"2018-01-17T10:41:00.0008436+01:00"</span><span class="token punctuation">,</span>\n  <span class="token property">"OutputFormat"</span><span class="token operator">:</span> <span class="token string">"JSON"</span><span class="token punctuation">,</span>\n  <span class="token property">"Message"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n    <span class="token property">"WeldLog"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n      <span class="token property">"protRecord_ID"</span><span class="token operator">:</span> <span class="token number">734827</span><span class="token punctuation">,</span>\n      <span class="token property">"dateTime"</span><span class="token operator">:</span> <span class="token string">"2018-01-15T16:52:32.09"</span><span class="token punctuation">,</span>\n      <span class="token property">"timerName"</span><span class="token operator">:</span> <span class="token string">"UIR Testrack 24"</span><span class="token punctuation">,</span>\n      <span class="token property">"progNo"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"spotName"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>\n      <span class="token property">"wear"</span><span class="token operator">:</span> <span class="token number">8312480</span><span class="token punctuation">,</span>\n      <span class="token property">"wearPerCent"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"monitorState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulationState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"measureState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"powerState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sequenceState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sequenceStateAdd"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sequenceRepeat"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"monitorMode"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemandStd"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"ilsts"</span><span class="token operator">:</span> <span class="token number">13.14</span><span class="token punctuation">,</span>\n      <span class="token property">"regulationStd"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemand1"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"iActual1"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulation1"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemand2"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"iActual2"</span><span class="token operator">:</span> <span class="token number">13.16</span><span class="token punctuation">,</span>\n      <span class="token property">"regulation2"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemand3"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"iActual3"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulation3"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>\n      <span class="token property">"phaStd"</span><span class="token operator">:</span> <span class="token number">24.96</span><span class="token punctuation">,</span>\n      <span class="token property">"pha1"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"pha2"</span><span class="token operator">:</span> <span class="token number">24.64</span><span class="token punctuation">,</span>\n      <span class="token property">"pha3"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"t_iDemandStd"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"tActualStd"</span><span class="token operator">:</span> <span class="token number">878</span><span class="token punctuation">,</span>\n      <span class="token property">"partIdentString"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>\n      <span class="token property">"tipDressCounter"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"electrodeNo"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sgForceSetPoint"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSheetThicknessSetPoint"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSagGpSetPoint"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSpotWithSg"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgMotorCurrent"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgMotorTemp"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgForce"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSheetThickness"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSagGp"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSagGc"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"regUsrUspJunction"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regUsrUspMax"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regSpotDiaActual"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regSpotDiaMinDemand"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regSplashTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"nuggetDiameter"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"usp"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"normingTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulationStartTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"returnToConstantCurrent"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"declineUsp"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"offsetUsp"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"currentFactor"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"triggerTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrMeasuringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrRegulationActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrMonitoringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrWeldTimeProlongationActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"voltageActualValue"</span><span class="token operator">:</span> <span class="token number">0.03</span><span class="token punctuation">,</span>\n      <span class="token property">"voltageRefValue"</span><span class="token operator">:</span> <span class="token number">0.03</span><span class="token punctuation">,</span>\n      <span class="token property">"currentActualValue"</span><span class="token operator">:</span> <span class="token number">13.17</span><span class="token punctuation">,</span>\n      <span class="token property">"currentReferenceValue"</span><span class="token operator">:</span> <span class="token number">13.95</span><span class="token punctuation">,</span>\n      <span class="token property">"weldTimeActualValue"</span><span class="token operator">:</span> <span class="token number">876</span><span class="token punctuation">,</span>\n      <span class="token property">"weldTimeRefValue"</span><span class="token operator">:</span> <span class="token number">760</span><span class="token punctuation">,</span>\n      <span class="token property">"energyActualValue"</span><span class="token operator">:</span> <span class="token number">395.1261</span><span class="token punctuation">,</span>\n      <span class="token property">"energyRefValue"</span><span class="token operator">:</span> <span class="token number">342</span><span class="token punctuation">,</span>\n      <span class="token property">"powerActualValue"</span><span class="token operator">:</span> <span class="token number">395.133</span><span class="token punctuation">,</span>\n      <span class="token property">"powerRefValue"</span><span class="token operator">:</span> <span class="token number">449.35</span><span class="token punctuation">,</span>\n      <span class="token property">"resistanceActualValue"</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span>\n      <span class="token property">"resistanceRefValue"</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span>\n      <span class="token property">"pulseWidthActualValue"</span><span class="token operator">:</span> <span class="token number">25.02</span><span class="token punctuation">,</span>\n      <span class="token property">"pulseWidthRefValue"</span><span class="token operator">:</span> <span class="token number">26.19</span><span class="token punctuation">,</span>\n      <span class="token property">"stabilisationFactorActValue"</span><span class="token operator">:</span> <span class="token number">55</span><span class="token punctuation">,</span>\n      <span class="token property">"stabilisationFactorRefValue"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"thresholdStabilisationFactor"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"wldEffectStabilisationFactor"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uipActualValue"</span><span class="token operator">:</span> <span class="token number">126</span><span class="token punctuation">,</span>\n      <span class="token property">"uipRefValue"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirExpulsionTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"uirMeasuringActive"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"uirRegulationActive"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"uirMonitoringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"uirWeldTimeProlongationActive"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"uirQStoppRefCntValue"</span><span class="token operator">:</span> <span class="token number">9</span><span class="token punctuation">,</span>\n      <span class="token property">"uirQStoppActCntValue"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"uirUipUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirUipLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirUipCondTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirPsfLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirPsfCondTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_1"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_2"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_3"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_4"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_5"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP32_6"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_7"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_8"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_9"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_10"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_11"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP32_12"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_13"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_14"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_15"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_16"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_17"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP32_18"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"uipMonCondUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfActualValue"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfRefValue"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonCondUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonCondLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMeasuringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrModeOff"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"reweldActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"weldspotRefIdent"</span><span class="token operator">:</span> <span class="token string">"UIR_PART"</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Torque_Gp"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Force_Corr"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Weldspot_Geo_Wear"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Wear_Length"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Beam_UpArching"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"CurrentCurve"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n        <span class="token number">11621</span><span class="token punctuation">,</span>\n        <span class="token number">15434</span><span class="token punctuation">,</span>\n        ...\n      <span class="token punctuation">]</span><span class="token punctuation">,</span>\n      <span class="token property">"VoltageCurve"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n        <span class="token number">39</span><span class="token punctuation">,</span>\n        <span class="token number">29</span><span class="token punctuation">,</span>\n        ...\n      <span class="token punctuation">]</span><span class="token punctuation">,</span>\n      <span class="token property">"ForceCurve"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n        <span class="token number">49</span><span class="token punctuation">,</span>\n        <span class="token number">49</span><span class="token punctuation">,</span>\n        ...\n      <span class="token punctuation">]</span>\n    <span class="token punctuation">}</span>\n  <span class="token punctuation">}</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<p>That\'s already very detailed, but it\'s unclear which device / welding spot the data comes from and what the timing of the curves was. Let\'s get some more structure in with PPMP!</p>\n<p>In PPMP, we have the option to differentiate between discrete manufacturing data (MES - part produced) by using the <a href="/unide/specification/measurement-message">measurement-message</a> and detailed process data by using the <a href="https://www.eclipse.org/unide/specification/process-message">process-message</a>. In the welding payload, that\'s all combined in one message. So we also want to split this payload into two.</p>\n<h2>Introducing Apache Camel</h2>\n<div class="card figure is-pulled-left">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="Apache Camel" title="Apache Camel" src="/unide/images/blog/Transform-PPMP-with-camel-camel.png"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tApache Camel, <a href="https://www.apache.org/licenses/LICENSE-2.0">(Apache&nbsp;License&nbsp;2.0)</a>\n\t</div>\n</div>\n<p><a href="https://en.wikipedia.org/wiki/Apache_Camel">Apache Camel</a> is a java-based Open Source framework, that can transform and route data. It supports most of the <a href="https://en.wikipedia.org/wiki/Enterprise_Integration_Patterns">Enterprise Integration Patterns</a> and hundreds(!) of <a href="http://camel.apache.org/components.html">connectors / components</a>. Think of it as an extensive transformation and workflow automation engine. In fact, it\'s so powerful and versatile, that it unfortunately doesn\'t come with a visual user interface or a plug-and-play installer. Luckily, for everyone who doesn\'t happen to be a java expert, there\'s also an xml configuration (via <a href="https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/xsd-configuration.html">spring xml</a>). And that\'s mostly all we need!</p>\n<h2>Transforming the Communication Protocol</h2>\n<p>We will use Spring XML to configure Apache Camel. The workflow in Camel are called <code>&lt;routes&gt;</code>. So let\'s create a route that transforms our mqtt to REST protocol:</p>\n<pre class="language-xml"><code class="language-xml"><span class="token prolog">&lt;?xml version="1.0" encoding="UTF-8"?></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>beans</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/beans<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>xsi</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.w3.org/2001/XMLSchema-instance<span class="token punctuation">"</span></span> <span class="token attr-name"><span class="token namespace">xmlns:</span>camel</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>util</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xsi:</span>schemaLocation</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util\n\thttp://www.springframework.org/schema/util/spring-util.xsd \n\thttp://www.springframework.org/schema/beans\n    http://www.springframework.org/schema/beans/spring-beans.xsd\n    http://camel.apache.org/schema/spring\n    http://camel.apache.org/schema/spring/camel-spring.xsd<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>mqtt://psi6000?host=tcp://192.168.123.135:1883<span class="token entity" title="&amp;">&amp;amp;</span>subscribeTopicName=PSI6000//PROCESS/PPMP/PROCESS<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://unide.eclipse.org:8080/rest/v2/measurement?bridgeEndpoint=true<span class="token entity" title="&amp;">&amp;amp;</span>throwExceptionOnFailure=true<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>beans</span><span class="token punctuation">></span></span>\n</code></pre>\n<p>That\'s it! A <code>&lt;route&gt;</code> that reads<code>&lt;from&gt;</code> mqtt and forwards <code>&lt;to&gt;</code> http. Not so difficult, is it? We could use many of the other <a href="http://camel.apache.org/components.html">connectors / components</a> in the example above as well to transform from/to different protocols.</p>\n<p>But wait! The welding payload above was not PPMP. So we also need to normalize the payload.</p>\n<h2>Normalizing the Payload</h2>\n<p>Now that we can easily convert protocols, let\'s address the structure of the payload. Overall, we want to have a workflow that looks as described in the diagram below:</p>\n<div class="card figure">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="data workflow" title="data workflow" src="/unide/images/blog/Transform-PPMP-with-camel-1.svg"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tWorkflow to extract the data from controller, convert it and send the data to the cloud application\n\t</div>\n</div>\n<p>The extra steps here are:</p>\n<ol>\n<li>transform the PSI 6000 JSON String payload to a java object</li>\n<li>transform the PSI 6000 java object to two PPMP-java objects (<a href="/unide/specification/measurement-message">measurement-message</a> and <a href="https://www.eclipse.org/unide/specification/process-message">process-message</a>)</li>\n<li>split up the two PPMP objects</li>\n<li>route the objects individually</li>\n<li>transform each PPMP object back to a String</li>\n</ol>\n<h3>Create the PSI 6000 Java Object</h3>\n<p>Luckily, there are helpers for transforming json (or xml) to plain old java objects (POJOs). We are using <a href="http://www.jsonschema2pojo.org/">jsonschema2pojo</a> to convert the above json sample to POJOs with Jackson 2.x annotation. I name the resulting data type class <code>PSI6000DataType</code> and organize it in the package <code>org.eclipse.iot.unide.integrators</code>. Based on the given testdata, jsonschema2pojo cannot fully deduct all attribute types correctly. In order to allow floating point values, we would rename all <code>Integer</code> and <code>Object</code> types to <code>Number</code> in the WeldLog.java file. Also in the same file, we would change the type of the <code>dateTime</code> field from String to <code>LocalDateTime</code> to be more accurate:</p>\n<pre class="language-java"><code class="language-java"><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n<span class="token annotation punctuation">@JsonProperty</span><span class="token punctuation">(</span><span class="token string">"dateTime"</span><span class="token punctuation">)</span>\n<span class="token annotation punctuation">@JsonSerialize</span><span class="token punctuation">(</span>using <span class="token operator">=</span> LocalDateTimeSerializer<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span>\n<span class="token annotation punctuation">@JsonDeserialize</span><span class="token punctuation">(</span>using <span class="token operator">=</span> LocalDateTimeDeserializer<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span>\n<span class="token keyword">private</span> LocalDateTime dateTime<span class="token punctuation">;</span>\n<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n</code></pre>\n<p>For that, we also need to include the respective imports:</p>\n<pre class="language-java"><code class="language-java"><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>databind<span class="token punctuation">.</span>annotation<span class="token punctuation">.</span>JsonDeserialize<span class="token punctuation">;</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>databind<span class="token punctuation">.</span>annotation<span class="token punctuation">.</span>JsonSerialize<span class="token punctuation">;</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>datatype<span class="token punctuation">.</span>jsr310<span class="token punctuation">.</span>deser<span class="token punctuation">.</span>LocalDateTimeDeserializer<span class="token punctuation">;</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>datatype<span class="token punctuation">.</span>jsr310<span class="token punctuation">.</span>ser<span class="token punctuation">.</span>LocalDateTimeSerializer<span class="token punctuation">;</span>\n<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n</code></pre>\n<p>and adjust the getter (<code>getDateTime()</code>), setter (<code>setDateTime()</code>) and the type in the constructor (<code>public WeldLog(...)</code>) accordingly.</p>\n<p>Camel will be able to transform (&quot;<em>unmarshal</em>&quot;) this datatype from a string to a POJO after adding the definition to the above Spring XML:</p>\n<pre class="language-xml"><code class="language-xml">...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dataFormats</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000DataType<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dataFormats</span><span class="token punctuation">></span></span>\n\t...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n</code></pre>\n<h3>Use unide.java binding for PPMP Java Objects</h3>\n<p>For eventually transforming the PPMP objects back to String (&quot;<em>marshal</em>&quot;), we can make use of the <a href="https://github.com/eclipse/unide.java">unide PPMP java binding</a>. Just adjust the dataFormats section of the Spring XML so that it reads:</p>\n<pre class="language-xml"><code class="language-xml">...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dataFormats</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000DataType<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpMeasurementMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.measurements.MeasurementsWrapper<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span> \n\t\t\t<span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpProcessMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.process.ProcessWrapper<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dataFormats</span><span class="token punctuation">></span></span>\n\t...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n</code></pre>\n<h3>Create the Workflow</h3>\n<p>In order to better structure data flow, we use multiple <code>&lt;route&gt;</code>-s: one for retrieving the data and two more after the split of the payload. They are connected via the virtual camel protocol &quot;<em>direct</em>&quot;. In the following Spring XML, you can also find some <code>&lt;log&gt;</code> points and additional steps to set http header (<code>&lt;setHeader&gt;</code>) for posting to the unide server:</p>\n<pre class="language-xml"><code class="language-xml"><span class="token prolog">&lt;?xml version="1.0" encoding="UTF-8"?></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>beans</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/beans<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>xsi</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.w3.org/2001/XMLSchema-instance<span class="token punctuation">"</span></span> <span class="token attr-name"><span class="token namespace">xmlns:</span>camel</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>util</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xsi:</span>schemaLocation</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util\n\thttp://www.springframework.org/schema/util/spring-util.xsd \n\thttp://www.springframework.org/schema/beans\n    http://www.springframework.org/schema/beans/spring-beans.xsd\n    http://camel.apache.org/schema/spring\n    http://camel.apache.org/schema/spring/camel-spring.xsd<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>bean</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000-to-ppmp<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>bean</span><span class="token punctuation">></span></span>\n\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dataFormats</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000DataType<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpMeasurementMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.measurements.MeasurementsWrapper<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span> <span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpProcessMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.process.ProcessWrapper<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span> <span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dataFormats</span><span class="token punctuation">></span></span>\n\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span> <span class="token attr-name">autoStartup</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>true<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>mqtt://psi6000?host=tcp://192.168.123.135:1883<span class="token entity" title="&amp;">&amp;amp;</span>subscribeTopicName=PSI6000//PROCESS/PPMP/PROCESS<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>unmarshal</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>bean</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000-to-ppmp<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Content-Type<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>constant</span><span class="token punctuation">></span></span>application/json; charset=utf-8<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>constant</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>CamelHttpMethod<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>constant</span><span class="token punctuation">></span></span>POST<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>constant</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>multicast</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:measurement<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:process<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>multicast</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>done<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>{"result": true }<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:measurement<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>${body[0]}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>deviceId measurement: ${body.device.deviceID}<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>marshal</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpMeasurementMessage<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>sending measurement<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Content-Length<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>body.length<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://unide.eclipse.org:8080/rest/v2/measurement?bridgeEndpoint=true<span class="token entity" title="&amp;">&amp;amp;</span>throwExceptionOnFailure=true<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>measurement sent<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:process<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>${body[1]}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>deviceId process: ${body.device.deviceID}<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>marshal</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpProcessMessage<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>sending process<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Content-Length<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>body.length<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://unide.eclipse.org:8080/rest/v2/process?bridgeEndpoint=true<span class="token entity" title="&amp;">&amp;amp;</span>throwExceptionOnFailure=true<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>process sent<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>beans</span><span class="token punctuation">></span></span>\n</code></pre>\n<p>You might have noticed that we have not yet discussed one important item in this workflow: how do we actually transform the payload from one format to another?</p>\n<h3>Transforming from PSI 6000 POJO to PPMP POJOs</h3>\n<p>One thing that we\'ll hardwire as java code is the transformation from the source to the target structure. The same functionality could be achieved with scripting components (e.g. <a href="http://camel.apache.org/groovy.html">groovy</a>, but that would be less powerful and worse performance. Since we don\'t expect the format to change but mostly the workflow or endpoints, implementing a java bean is not too much effort. Here\'s how:<br>\nApache Camel offers a <code>Processor</code> interface that can be used to override the <code>process()</code> function. This function receives the complete message (<code>exchange</code>) and can modify it in any way. Since we have created the PSI 6000 Java Object already and want to produce PPMP java objects, the logic is mostly about creating the child objects and wiring the suitable getter to corresponding setter.</p>\n<pre class="language-java"><code class="language-java"><span class="token keyword">package</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>integrators<span class="token punctuation">;</span>\n\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>time<span class="token punctuation">.</span>OffsetDateTime<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>time<span class="token punctuation">.</span>ZoneOffset<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>Arrays<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>LinkedList<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>List<span class="token punctuation">;</span>\n\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>camel<span class="token punctuation">.</span>Exchange<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>camel<span class="token punctuation">.</span>Message<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>camel<span class="token punctuation">.</span>Processor<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>commons<span class="token punctuation">.</span>Device<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>commons<span class="token punctuation">.</span>MetaData<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>MeasurementsWrapper<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Process<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>ProcessWrapper<span class="token punctuation">;</span>\n\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>core<span class="token punctuation">.</span>JsonProcessingException<span class="token punctuation">;</span>\n\n<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">PSI6000</span> <span class="token keyword">implements</span> <span class="token class-name">Processor</span> <span class="token punctuation">{</span>\n\n\t<span class="token keyword">public</span> <span class="token function">PSI6000</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap <span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>\n\t\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap map<span class="token punctuation">,</span> String name<span class="token punctuation">,</span> Number value<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>value <span class="token operator">!=</span> null<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\tmap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span>name<span class="token punctuation">,</span> Arrays<span class="token punctuation">.</span><span class="token function">asList</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\t\t<span class="token keyword">return</span> map<span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token annotation punctuation">@Override</span>\n\t<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">process</span><span class="token punctuation">(</span>Exchange exchange<span class="token punctuation">)</span> <span class="token keyword">throws</span> JsonProcessingException<span class="token punctuation">,</span> Exception <span class="token punctuation">{</span>\n\t\tMessage msg <span class="token operator">=</span> exchange<span class="token punctuation">.</span><span class="token function">getIn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tPSI6000DataType doc <span class="token operator">=</span> msg<span class="token punctuation">.</span><span class="token function">getBody</span><span class="token punctuation">(</span>PSI6000DataType<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\tObject <span class="token punctuation">[</span><span class="token punctuation">]</span>bundle <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Object</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">;</span>\n\t\tbundle<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span>       <span class="token operator">=</span> <span class="token function">transformMeasurement</span><span class="token punctuation">(</span>doc<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tbundle<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>       <span class="token operator">=</span> <span class="token function">transformProcess</span><span class="token punctuation">(</span>doc<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tmsg<span class="token punctuation">.</span><span class="token function">setBody</span><span class="token punctuation">(</span>bundle<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\texchange<span class="token punctuation">.</span><span class="token function">setOut</span><span class="token punctuation">(</span>msg<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> <span class="token keyword">void</span> <span class="token function">setSpotName</span><span class="token punctuation">(</span>Device device<span class="token punctuation">,</span> WeldLog wl<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\tString spotName <span class="token operator">=</span> wl<span class="token punctuation">.</span><span class="token function">getSpotName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>spotName <span class="token operator">!=</span> null <span class="token operator">&amp;&amp;</span> spotName<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\tMetaData md <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MetaData</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tmd<span class="token punctuation">.</span><span class="token function">setMetaDataValue</span><span class="token punctuation">(</span><span class="token string">"spotName"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSpotName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tdevice<span class="token punctuation">.</span><span class="token function">setMetaData</span><span class="token punctuation">(</span>md<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> ProcessWrapper <span class="token function">transformProcess</span><span class="token punctuation">(</span>PSI6000DataType doc<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\tProcessWrapper wrapper <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ProcessWrapper</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tWeldLog wl <span class="token operator">=</span> doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tOffsetDateTime odt <span class="token operator">=</span> OffsetDateTime<span class="token punctuation">.</span><span class="token function">of</span><span class="token punctuation">(</span>wl<span class="token punctuation">.</span><span class="token function">getDateTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> ZoneOffset<span class="token punctuation">.</span>UTC<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// device</span>\n\t\tDevice device <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Device</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tdevice<span class="token punctuation">.</span><span class="token function">setDeviceID</span><span class="token punctuation">(</span>doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getTimerName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">setSpotName</span><span class="token punctuation">(</span>device<span class="token punctuation">,</span> wl<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setDevice</span><span class="token punctuation">(</span>device<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// part</span>\n\t\tString partId <span class="token operator">=</span> wl<span class="token punctuation">.</span><span class="token function">getPartIdentString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>partId <span class="token operator">!=</span> null <span class="token operator">&amp;&amp;</span> partId<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Part part <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Part</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tpart<span class="token punctuation">.</span><span class="token function">setPartID</span><span class="token punctuation">(</span>partId<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\twrapper<span class="token punctuation">.</span><span class="token function">setPart</span><span class="token punctuation">(</span>part<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\n\t\t<span class="token comment">// process</span>\n\t\tProcess process <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Process</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tprocess<span class="token punctuation">.</span><span class="token function">setTimestamp</span><span class="token punctuation">(</span>odt<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tprocess<span class="token punctuation">.</span><span class="token function">setExternalProcessId</span><span class="token punctuation">(</span>String<span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span>wl<span class="token punctuation">.</span><span class="token function">getProtRecordID</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setProcess</span><span class="token punctuation">(</span>process<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// measurements</span>\n\t\tList<span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements<span class="token operator">></span> measurements <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">LinkedList</span><span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements<span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements measurement <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setTimestamp</span><span class="token punctuation">(</span>odt<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">//values</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>SeriesMap seriesMap <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>SeriesMap</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"curentCurve"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentCurve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"voltageCurve"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getVoltageCurve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"forceCurve"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getForceCurve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setSeriesMap</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tmeasurements<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>measurement<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setMeasurements</span><span class="token punctuation">(</span>measurements<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\n\t\t<span class="token keyword">return</span> wrapper<span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> MeasurementsWrapper <span class="token function">transformMeasurement</span><span class="token punctuation">(</span>PSI6000DataType doc<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\tMeasurementsWrapper wrapper <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MeasurementsWrapper</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tWeldLog wl <span class="token operator">=</span> doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// device</span>\n\t\tDevice device <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Device</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tdevice<span class="token punctuation">.</span><span class="token function">setDeviceID</span><span class="token punctuation">(</span>doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getTimerName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">setSpotName</span><span class="token punctuation">(</span>device<span class="token punctuation">,</span> wl<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setDevice</span><span class="token punctuation">(</span>device<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// part</span>\n\t\tString partId <span class="token operator">=</span> wl<span class="token punctuation">.</span><span class="token function">getPartIdentString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>partId <span class="token operator">!=</span> null <span class="token operator">&amp;&amp;</span> partId<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Part part <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Part</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tpart<span class="token punctuation">.</span><span class="token function">setPartID</span><span class="token punctuation">(</span>partId<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\twrapper<span class="token punctuation">.</span><span class="token function">setPart</span><span class="token punctuation">(</span>part<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\n\t\t<span class="token comment">// measurements</span>\n\t\tList<span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements<span class="token operator">></span> measurements <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">LinkedList</span><span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements<span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements measurement <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setTimestamp</span><span class="token punctuation">(</span>OffsetDateTime<span class="token punctuation">.</span><span class="token function">of</span><span class="token punctuation">(</span>wl<span class="token punctuation">.</span><span class="token function">getDateTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> ZoneOffset<span class="token punctuation">.</span>UTC<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// values</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap seriesMap <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"$_time"</span><span class="token punctuation">,</span> Arrays<span class="token punctuation">.</span><span class="token function">asList</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"wear"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"wearPerCent"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWearPerCent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"monitorState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getMonitorState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulationState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulationState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"measureState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getMeasureState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"powerState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPowerState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sequenceState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSequenceState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sequenceStateAdd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSequenceStateAdd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sequenceRepeat"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSequenceRepeat</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"monitorMode"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getMonitorMode</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemandStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemandStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"ilsts"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIlsts</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulationStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulationStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemand1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemand1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iActual1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIActual1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulation1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulation1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemand2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemand2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iActual2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIActual2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulation2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulation2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemand3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemand3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iActual3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIActual3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulation3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulation3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"phaStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPhaStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pha1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPha1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pha2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPha2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pha3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPha3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"t_iDemandStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemandStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"tActualStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getTActualStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token comment">// addMeasurementPoint(seriesMap, "partIdentString",</span>\n\t\t<span class="token comment">// wl.getPartIdentString());</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"tipDressCounter"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getTipDressCounter</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"electrodeNo"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getElectrodeNo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgForceSetPoint"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgForceSetPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSheetThicknessSetPoint"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSheetThicknessSetPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSagGpSetPoint"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSagGpSetPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSpotWithSg"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSpotWithSg</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgMotorCurrent"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgMotorCurrent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgMotorTemp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgMotorTemp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgForce"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgForce</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSheetThickness"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSheetThickness</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSagGp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSagGp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSagGc"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSagGc</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regUsrUspJunction"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegUsrUspJunction</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regUsrUspMax"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegUsrUspMax</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regSpotDiaActual"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegSpotDiaActual</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regSpotDiaMinDemand"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegSpotDiaMinDemand</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regSplashTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegSplashTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"nuggetDiameter"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getNuggetDiameter</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"usp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUsp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"normingTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getNormingTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulationStartTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulationStartTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"returnToConstantCurrent"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getReturnToConstantCurrent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"declineUsp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getDeclineUsp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"offsetUsp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getOffsetUsp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"currentFactor"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentFactor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"triggerTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getTriggerTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrMeasuringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrMeasuringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrRegulationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrRegulationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrMonitoringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrMonitoringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrWeldTimeProlongationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrWeldTimeProlongationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"voltageActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getVoltageActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"voltageRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getVoltageRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"currentActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"currentReferenceValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentReferenceValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldTimeActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldTimeActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldTimeRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldTimeRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"energyActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getEnergyActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"energyRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getEnergyRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"powerActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPowerActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"powerRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPowerRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"resistanceActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getResistanceActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"resistanceRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getResistanceRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pulseWidthActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPulseWidthActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pulseWidthRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPulseWidthRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"stabilisationFactorActValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getStabilisationFactorActValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"stabilisationFactorRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getStabilisationFactorRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"thresholdStabilisationFactor"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getThresholdStabilisationFactor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"wldEffectStabilisationFactor"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWldEffectStabilisationFactor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uipActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUipActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uipRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUipRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirExpulsionTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirExpulsionTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirMeasuringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirMeasuringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirRegulationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirRegulationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirMonitoringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirMonitoringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirWeldTimeProlongationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirWeldTimeProlongationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirQStoppRefCntValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirQStoppRefCntValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirQStoppActCntValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirQStoppActCntValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirUipUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirUipUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirUipLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirUipLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirUipCondTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirUipCondTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirPsfLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirPsfLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirPsfCondTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirPsfCondTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP161</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP162</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP163</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_4"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP164</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_5"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP165</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP32_6"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP326</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_7"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP167</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_8"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP168</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_9"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP169</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_10"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1610</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_11"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1611</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP32_12"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP3212</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_13"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1613</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_14"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1614</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_15"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1615</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_16"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1616</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_17"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1617</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP32_18"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP3218</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uipMonCondUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUipMonCondUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonCondUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonCondUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonCondLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonCondLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMeasuringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMeasuringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrModeOff"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrModeOff</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"reweldActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getReweldActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token comment">// addMeasurementPoint(seriesMap, "weldspotRefIdent",</span>\n\t\t<span class="token comment">// wl.getWeldspotRefIdent());</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Torque_Gp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgTorqueGp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Force_Corr"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgForceCorr</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Weldspot_Geo_Wear"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgWeldspotGeoWear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Wear_Length"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgWearLength</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Beam_UpArching"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgBeamUpArching</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setSeriesMap</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tmeasurements<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>measurement<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setMeasurements</span><span class="token punctuation">(</span>measurements<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token keyword">return</span> wrapper<span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<h1>Summary</h1>\n<p>It takes a while to understand the involved software components. Yet, once the set up is running, it gets much easier to adapt it to another Use Case. And another. The pattern of wiring protocols and transforming the payload is very similar. The involved frameworks are powerful enough to support many Use Cases. This article is supposed to show that there are simple possibilities to transform transport protocols and payloads, so that you can focus on addressing functional challenges.</p>\n',url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z",tags:["use cases"],prev:{url:"/blog/2018/1/26/New-website",title:"Updated Website"},next:{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2018/2/11/index.html b/blog/2018/2/11/index.html
index 787f547..148b6f0 100644
--- a/blog/2018/2/11/index.html
+++ b/blog/2018/2/11/index.html
@@ -22,7 +22,9 @@
           11
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -30,11 +32,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2" class="nuxt-link-active">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2" class="nuxt-link-active">
         March 2018
       </a>
       (2)
@@ -58,6 +62,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2018/2/13/grinding-machine-scenario/index.html b/blog/2018/2/13/grinding-machine-scenario/index.html
index f8d7216..0093982 100644
--- a/blog/2018/2/13/grinding-machine-scenario/index.html
+++ b/blog/2018/2/13/grinding-machine-scenario/index.html
@@ -142,9 +142,11 @@
 maintenance events, device master data and the Activity Stream, a place where<br>
 different parties can exchange information related to the grinding machine:</p>
 <p><img src="/unide/images/blog/grinding-machine-ce4iot-dashboard.png" alt="CONTACT Elements for IoT Dashboard"></p>
-</div></div><div class="columns pageNav"><div class="column"><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel" class="button is-fullwidth"><span class="icon"><i class="fa fa-chevron-left"></i></span><span>PPMP Use Cases: Simple Transformation with Apache Camel</span></a></div><!----></div></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
+</div></div><div class="columns pageNav"><div class="column"><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel" class="button is-fullwidth"><span class="icon"><i class="fa fa-chevron-left"></i></span><span>PPMP Use Cases: Simple Transformation with Apache Camel</span></a></div><div class="column"><a href="/unide/blog/2018/3/26/Release-0.2.0" class="button is-fullwidth"><span>Unide 0.2.0 released</span><span class="icon"><i class="fa fa-chevron-right"></i></span></a></div></div></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario" class="nuxt-link-exact-active nuxt-link-active">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario" class="nuxt-link-exact-active nuxt-link-active">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -152,11 +154,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2" class="nuxt-link-active">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2" class="nuxt-link-active">
         March 2018
       </a>
       (2)
@@ -180,6 +184,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"grinding-machine-scenario",content:'<h2>Abstract</h2>\n<p>In this blog post we present a real world condition monitoring scenario used in<br>\nthe <a href="https://iot.eclipse.org/testbeds/production-performance-management/#">Eclipse Production Performance Management Testbed</a>, where Unide and<br>\nPPMP plays a crucial role. Moreover, we also provide a code repository and<br>\ninstructions so that you can recreate the scenario in your own computer and<br>\nlearn about its components and the communication with each other.</p>\n<h2>Introduction</h2>\n<p>In the context of the <a href="https://iot.eclipse.org/testbeds/production-performance-management/#">Eclipse Production Performance Management Testbed</a>, a<br>\nreal world condition monitoring scenario has been recreated, in which a<br>\ngrinding machine is being continuously monitored allowing to have real time<br>\nhealth checks and prevent unexpected failures.</p>\n<p>This scenario consists of the following building blocks: device, gateway,<br>\nbackend. The communication between them happens seamlessly thanks to the<br>\nProduction Performance management Protocol (PPMP).</p>\n<ul>\n<li>\n<p>The device, i.e. the grinding machine, has been retrofitted with an<br>\nacceleration sensor attached to one of its critical components. The data<br>\nprovided by this sensor is routed to the gateway in the form of a <a href="https://www.eclipse.org/unide/specification/measurement-message#messageDetail">PPMP<br>\nMeasurement Message</a>.</p>\n</li>\n<li>\n<p>The gateway receives the raw acceleration measurements, calculates some<br>\nstatistical characteristics and and applies some machine learning techniques<br>\nto them in order to evaluate the condition of the grinding machine. Then both<br>\nthe statistical values and the condition are routed to the backend, again in<br>\nthe form of a PPMP Measurement Message.</p>\n</li>\n<li>\n<p>The backend, usually in the cloud, is any component that &quot;speaks PPMP&quot; and<br>\nperforms meaningful operations on the incoming messages. Most frequently it<br>\nis responsible for storing the arriving data and making it available to apps<br>\nthat want to consume it. Common responsibilities of these apps are the<br>\nrepresentation or display of the data (e.g. dashboards), or workflows<br>\nmanagement (e.g. the grinding machine is in bad condition and an inspection<br>\nmust be carried out).</p>\n<p>The backend can be swapped effortless with any entity adhering to PPMP standard.<br>\nIn the Eclipse PPM Testbed at least two different backends have been used:</p>\n<ul>\n<li>One directly based on <a href="https://github.com/eclipse/unide">Unide</a></li>\n<li>One based on <a href="https://www.contact-software.com/en/products/elements-for-iot/">CONTACT Elements for IoT</a>.</li>\n</ul>\n</li>\n</ul>\n<h2>Hands-on demonstration</h2>\n<p>In order to make this scenario more hands-on and interesting, within the<br>\n<a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement">Production Performance Management Testbed repository</a> project in Github, we<br>\nhave set up a <a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement/tree/master/grinding-machine">subproject for the grinding machine scenario</a>. There you can<br>\nfind a thorough description and code to simulate the device and the gateway,<br>\nand route messages to a given backend. The only requirements are git and conda<br>\n(the easiest way to get conda is to <a href="https://conda.io/miniconda.html">install miniconda</a>).</p>\n<p>So, let\'s get started! First of all, open your terminal and clone the<br>\nrepository:</p>\n<pre class="language-bash"><code class="language-bash">$ <span class="token function">git</span> clone https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement eclipse-testbed-ppm\n$ <span class="token function">cd</span> eclipse-testbed-ppm/grinding-machine\n</code></pre>\n<p>Then move to the grinding machine subproject directory:</p>\n<pre class="language-bash"><code class="language-bash">$ <span class="token function">cd</span> eclipse-testbed-ppm/grinding-machine\n</code></pre>\n<p>In that folder you will see two subfolders. The first one<br>\n<code>unide-grinding-machine</code> contains a Python program that simulates grinding<br>\nmachine and the second one <code>unide-grinding-machine-gateway</code> simulates the<br>\ngateway.</p>\n<h3>Grinding Machine simulator</h3>\n<p>Let\'s start with the first component. First <code>cd</code> to <code>unide-grinding-machine</code><br>\nand then create the conda environment:</p>\n<pre class="language-bash"><code class="language-bash">$ conda <span class="token function">env</span> create --prefix<span class="token operator">=</span>env\n</code></pre>\n<p>And then in order to use this environment, we need to activate it.</p>\n<pre class="language-bash"><code class="language-bash">$ <span class="token function">source</span> activate <span class="token function">env</span>    <span class="token comment"># or in windows: activate env </span>\n</code></pre>\n<p>Run <code>unide-grinding-machine -h</code> to get familiar with the CLI. With this<br>\nexecutable we can generate some machine grinding data, and (for the moment)<br>\nprint messages to the console. To do so, run <code>unide-grinding-machine send random</code> and you should get a large message on the console. This is the PPMP<br>\nmessage ought to be sent to the gateway.</p>\n<p>We don\'t have a gateway so far, but don\'t worry, we will get to that in a<br>\nminute. Don\'t close this console!</p>\n<h3>Gateway simulator</h3>\n<p>Open a new console, and similarly to the previous point, first <code>cd</code> to<br>\n<code>unide-grinding-machine-gateway</code>, create the environment (<code>conda env create --prefix=env</code>) and activate it (<code>source activate env</code>).</p>\n<p>The run the command <code>unide-grinding-machine-gateway -h</code> to test that everything<br>\nis in place. You should get the CLI documentation.</p>\n<p>Now, let\'s fire up the gateway by calling <code>unide-grinding-machine-gateway start_server</code>, and a message like this should show up:</p>\n<pre class="language-bash"><code class="language-bash">Running <span class="token operator">&lt;</span>unide_grinding_machine_gateway.server.App object at 0x<span class="token punctuation">..</span><span class="token punctuation">..</span>.<span class="token operator">></span>\nListening on http://127.0.0.1:5000\nPress Ctrl-C to stop<span class="token punctuation">..</span>.\n</code></pre>\n<p>We are getting closer. Leave the gateway running.</p>\n<h3>Communication Device-Gateway</h3>\n<p>Let\'s go back to the previous console where we had the <code>unide-grinding-machine</code><br>\nenvironment and  call again the <code>unide-grinding-machine</code> program, but this time<br>\npassing the as an argument where the gateway is listening to messages.</p>\n<pre class="language-bash"><code class="language-bash">$ unide-grinding-machine send random --endpoint<span class="token operator">=</span>http://127.0.0.1:5000\n</code></pre>\n<p>If you take peek at the gateway output, you should see new information printed<br>\nout, which is a PPMP message containing the result of the classification<br>\nalgorithms applied to the device data we just sent to it.</p>\n<p>We are getting somewhere! But still, it is not extremely useful to print some<br>\ncharacters into a console, is it?</p>\n<h3>Communication Device-Gateway-Backend</h3>\n<p>There is only a small but relevant point missing: the routing from the gateway<br>\nto the backend. We need a backend and the Unide project provides a service that<br>\ncan be used as a playground for these purposes. So let\'s restart the gateway,<br>\nthis time passing the Unide endpoint:</p>\n<pre class="language-bash"><code class="language-bash">$ unide-grinding-machine-gateway start_server --endpoint<span class="token operator">=</span>https://unide.eclipse.org/rest/v2\n</code></pre>\n<p>Now we can use the <code>unide-grinding-machine</code> to send raw data to the gateway<br>\nwhich in turn sends its results to the backend.  In order to be able to<br>\nidentify this data later, we are going to define a proper device ID (argument<br>\n<code>--device-id</code>), and also tell it to send data once each 10 seconds (argument<br>\n<code>--period</code>):</p>\n<pre class="language-bash"><code class="language-bash">$ unide-grinding-machine send random --endpoint<span class="token operator">=</span>http://127.0.0.1:5000 --device-id<span class="token operator">=</span>IoT-000028--3 --period<span class="token operator">=</span>10\n</code></pre>\n<p>Once started, a continuous flow of data is pumped through each component until<br>\nit reaches the backend, allowing us to use the applications that consume this<br>\ndata. For instance, the basic backend provided by Unide offers a <a href="https://grafana.com/">Grafana</a> based<br>\ndashboard that offers live monitoring of the statistical values calculated in the<br>\ngateway:</p>\n<p><img src="/unide/images/blog/grinding-machine-grafana-dashboard.png" alt="Grafana based dashboard monitoring grinding machine"></p>\n<p>If instead of that we use the the <a href="https://www.contact-software.com/en/products/elements-for-iot/">CONTACT Elements for IoT</a> based backend,<br>\nwe can see a different and richer dashboard: charts, 3D models, list of<br>\nmaintenance events, device master data and the Activity Stream, a place where<br>\ndifferent parties can exchange information related to the grinding machine:</p>\n<p><img src="/unide/images/blog/grinding-machine-ce4iot-dashboard.png" alt="CONTACT Elements for IoT Dashboard"></p>\n',url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z",tags:["use cases"],prev:{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"grinding-machine-scenario",content:'<h2>Abstract</h2>\n<p>In this blog post we present a real world condition monitoring scenario used in<br>\nthe <a href="https://iot.eclipse.org/testbeds/production-performance-management/#">Eclipse Production Performance Management Testbed</a>, where Unide and<br>\nPPMP plays a crucial role. Moreover, we also provide a code repository and<br>\ninstructions so that you can recreate the scenario in your own computer and<br>\nlearn about its components and the communication with each other.</p>\n<h2>Introduction</h2>\n<p>In the context of the <a href="https://iot.eclipse.org/testbeds/production-performance-management/#">Eclipse Production Performance Management Testbed</a>, a<br>\nreal world condition monitoring scenario has been recreated, in which a<br>\ngrinding machine is being continuously monitored allowing to have real time<br>\nhealth checks and prevent unexpected failures.</p>\n<p>This scenario consists of the following building blocks: device, gateway,<br>\nbackend. The communication between them happens seamlessly thanks to the<br>\nProduction Performance management Protocol (PPMP).</p>\n<ul>\n<li>\n<p>The device, i.e. the grinding machine, has been retrofitted with an<br>\nacceleration sensor attached to one of its critical components. The data<br>\nprovided by this sensor is routed to the gateway in the form of a <a href="https://www.eclipse.org/unide/specification/measurement-message#messageDetail">PPMP<br>\nMeasurement Message</a>.</p>\n</li>\n<li>\n<p>The gateway receives the raw acceleration measurements, calculates some<br>\nstatistical characteristics and and applies some machine learning techniques<br>\nto them in order to evaluate the condition of the grinding machine. Then both<br>\nthe statistical values and the condition are routed to the backend, again in<br>\nthe form of a PPMP Measurement Message.</p>\n</li>\n<li>\n<p>The backend, usually in the cloud, is any component that &quot;speaks PPMP&quot; and<br>\nperforms meaningful operations on the incoming messages. Most frequently it<br>\nis responsible for storing the arriving data and making it available to apps<br>\nthat want to consume it. Common responsibilities of these apps are the<br>\nrepresentation or display of the data (e.g. dashboards), or workflows<br>\nmanagement (e.g. the grinding machine is in bad condition and an inspection<br>\nmust be carried out).</p>\n<p>The backend can be swapped effortless with any entity adhering to PPMP standard.<br>\nIn the Eclipse PPM Testbed at least two different backends have been used:</p>\n<ul>\n<li>One directly based on <a href="https://github.com/eclipse/unide">Unide</a></li>\n<li>One based on <a href="https://www.contact-software.com/en/products/elements-for-iot/">CONTACT Elements for IoT</a>.</li>\n</ul>\n</li>\n</ul>\n<h2>Hands-on demonstration</h2>\n<p>In order to make this scenario more hands-on and interesting, within the<br>\n<a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement">Production Performance Management Testbed repository</a> project in Github, we<br>\nhave set up a <a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement/tree/master/grinding-machine">subproject for the grinding machine scenario</a>. There you can<br>\nfind a thorough description and code to simulate the device and the gateway,<br>\nand route messages to a given backend. The only requirements are git and conda<br>\n(the easiest way to get conda is to <a href="https://conda.io/miniconda.html">install miniconda</a>).</p>\n<p>So, let\'s get started! First of all, open your terminal and clone the<br>\nrepository:</p>\n<pre class="language-bash"><code class="language-bash">$ <span class="token function">git</span> clone https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement eclipse-testbed-ppm\n$ <span class="token function">cd</span> eclipse-testbed-ppm/grinding-machine\n</code></pre>\n<p>Then move to the grinding machine subproject directory:</p>\n<pre class="language-bash"><code class="language-bash">$ <span class="token function">cd</span> eclipse-testbed-ppm/grinding-machine\n</code></pre>\n<p>In that folder you will see two subfolders. The first one<br>\n<code>unide-grinding-machine</code> contains a Python program that simulates grinding<br>\nmachine and the second one <code>unide-grinding-machine-gateway</code> simulates the<br>\ngateway.</p>\n<h3>Grinding Machine simulator</h3>\n<p>Let\'s start with the first component. First <code>cd</code> to <code>unide-grinding-machine</code><br>\nand then create the conda environment:</p>\n<pre class="language-bash"><code class="language-bash">$ conda <span class="token function">env</span> create --prefix<span class="token operator">=</span>env\n</code></pre>\n<p>And then in order to use this environment, we need to activate it.</p>\n<pre class="language-bash"><code class="language-bash">$ <span class="token function">source</span> activate <span class="token function">env</span>    <span class="token comment"># or in windows: activate env </span>\n</code></pre>\n<p>Run <code>unide-grinding-machine -h</code> to get familiar with the CLI. With this<br>\nexecutable we can generate some machine grinding data, and (for the moment)<br>\nprint messages to the console. To do so, run <code>unide-grinding-machine send random</code> and you should get a large message on the console. This is the PPMP<br>\nmessage ought to be sent to the gateway.</p>\n<p>We don\'t have a gateway so far, but don\'t worry, we will get to that in a<br>\nminute. Don\'t close this console!</p>\n<h3>Gateway simulator</h3>\n<p>Open a new console, and similarly to the previous point, first <code>cd</code> to<br>\n<code>unide-grinding-machine-gateway</code>, create the environment (<code>conda env create --prefix=env</code>) and activate it (<code>source activate env</code>).</p>\n<p>The run the command <code>unide-grinding-machine-gateway -h</code> to test that everything<br>\nis in place. You should get the CLI documentation.</p>\n<p>Now, let\'s fire up the gateway by calling <code>unide-grinding-machine-gateway start_server</code>, and a message like this should show up:</p>\n<pre class="language-bash"><code class="language-bash">Running <span class="token operator">&lt;</span>unide_grinding_machine_gateway.server.App object at 0x<span class="token punctuation">..</span><span class="token punctuation">..</span>.<span class="token operator">></span>\nListening on http://127.0.0.1:5000\nPress Ctrl-C to stop<span class="token punctuation">..</span>.\n</code></pre>\n<p>We are getting closer. Leave the gateway running.</p>\n<h3>Communication Device-Gateway</h3>\n<p>Let\'s go back to the previous console where we had the <code>unide-grinding-machine</code><br>\nenvironment and  call again the <code>unide-grinding-machine</code> program, but this time<br>\npassing the as an argument where the gateway is listening to messages.</p>\n<pre class="language-bash"><code class="language-bash">$ unide-grinding-machine send random --endpoint<span class="token operator">=</span>http://127.0.0.1:5000\n</code></pre>\n<p>If you take peek at the gateway output, you should see new information printed<br>\nout, which is a PPMP message containing the result of the classification<br>\nalgorithms applied to the device data we just sent to it.</p>\n<p>We are getting somewhere! But still, it is not extremely useful to print some<br>\ncharacters into a console, is it?</p>\n<h3>Communication Device-Gateway-Backend</h3>\n<p>There is only a small but relevant point missing: the routing from the gateway<br>\nto the backend. We need a backend and the Unide project provides a service that<br>\ncan be used as a playground for these purposes. So let\'s restart the gateway,<br>\nthis time passing the Unide endpoint:</p>\n<pre class="language-bash"><code class="language-bash">$ unide-grinding-machine-gateway start_server --endpoint<span class="token operator">=</span>https://unide.eclipse.org/rest/v2\n</code></pre>\n<p>Now we can use the <code>unide-grinding-machine</code> to send raw data to the gateway<br>\nwhich in turn sends its results to the backend.  In order to be able to<br>\nidentify this data later, we are going to define a proper device ID (argument<br>\n<code>--device-id</code>), and also tell it to send data once each 10 seconds (argument<br>\n<code>--period</code>):</p>\n<pre class="language-bash"><code class="language-bash">$ unide-grinding-machine send random --endpoint<span class="token operator">=</span>http://127.0.0.1:5000 --device-id<span class="token operator">=</span>IoT-000028--3 --period<span class="token operator">=</span>10\n</code></pre>\n<p>Once started, a continuous flow of data is pumped through each component until<br>\nit reaches the backend, allowing us to use the applications that consume this<br>\ndata. For instance, the basic backend provided by Unide offers a <a href="https://grafana.com/">Grafana</a> based<br>\ndashboard that offers live monitoring of the statistical values calculated in the<br>\ngateway:</p>\n<p><img src="/unide/images/blog/grinding-machine-grafana-dashboard.png" alt="Grafana based dashboard monitoring grinding machine"></p>\n<p>If instead of that we use the the <a href="https://www.contact-software.com/en/products/elements-for-iot/">CONTACT Elements for IoT</a> based backend,<br>\nwe can see a different and richer dashboard: charts, 3D models, list of<br>\nmaintenance events, device master data and the Activity Stream, a place where<br>\ndifferent parties can exchange information related to the grinding machine:</p>\n<p><img src="/unide/images/blog/grinding-machine-ce4iot-dashboard.png" alt="CONTACT Elements for IoT Dashboard"></p>\n',url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z",tags:["use cases"],prev:{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel"},next:{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2018/2/13/index.html b/blog/2018/2/13/index.html
index 9d5b180..4fb6bb7 100644
--- a/blog/2018/2/13/index.html
+++ b/blog/2018/2/13/index.html
@@ -22,7 +22,9 @@
           13
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -30,11 +32,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2" class="nuxt-link-active">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2" class="nuxt-link-active">
         March 2018
       </a>
       (2)
@@ -58,6 +62,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2018/2/index.html b/blog/2018/2/index.html
index 6d84993..7bcde8d 100644
--- a/blog/2018/2/index.html
+++ b/blog/2018/2/index.html
@@ -26,7 +26,9 @@
           11
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -34,11 +36,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2" class="nuxt-link-exact-active nuxt-link-active">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2" class="nuxt-link-exact-active nuxt-link-active">
         March 2018
       </a>
       (2)
@@ -62,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/2018/3/26/Release-0.2.0/index.html b/blog/2018/3/26/Release-0.2.0/index.html
new file mode 100644
index 0000000..25aac1c
--- /dev/null
+++ b/blog/2018/3/26/Release-0.2.0/index.html
@@ -0,0 +1,195 @@
+<!DOCTYPE html>
+<html data-n-head="" data-n-head-ssr>
+  <head>
+    <meta data-n-head="true" charset="utf-8"><meta data-n-head="true" content="width=device-width,initial-scale=1" name="viewport"><meta data-n-head="true" content="Eclipse Unide: Understand Industry devices" name="description" data-hid="description"><title data-n-head="true">Eclipse unide - Unide 0.2.0 released</title><link href="/unide/favicon.ico" rel="icon" data-n-head="true" type="image/x-icon"><base href="/unide/"><link href="/unide/files/app.afe60790845d32718c70d2bd3d6005bc.css" rel="stylesheet"><style data-vue-ssr-id="771fc815:0">body .sidebar div{margin-bottom:2em;font-size:.875em}body .sidebar div .subtitle{margin-bottom:.5rem}</style><style data-vue-ssr-id="d5b0f30e:0">@keyframes spinAround{0%{transform:rotate(0)}to{transform:rotate(359deg)}}header.nav-header{box-shadow:0 3px 5px 0 #ddd;margin-bottom:2em;padding-bottom:0}header.nav-header nav.navbar{display:flex;align-items:flex-end;border-bottom:5px solid #50237f}header.nav-header nav.navbar .navbar-burger{margin-left:0;height:auto}header.nav-header nav.navbar .navbar-burger span{height:2px;width:25px}header.nav-header nav.navbar .navbar-burger span:first-child{margin-top:-9px}header.nav-header nav.navbar .navbar-burger span:nth-child(3){margin-top:7px}header.nav-header nav.navbar .navbar-brand{align-self:stretch}header.nav-header nav.navbar .navbar-brand .navbar-item img{max-height:none;width:240px}header.nav-header nav.navbar .navbar-item,header.nav-header nav.navbar .navbar-link,header.nav-header nav.navbar .navbar-link a{color:#a7a7a7}header.nav-header nav.navbar .navbar-item.is-active,header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link a.is-active,header.nav-header nav.navbar .navbar-link a:hover,header.nav-header nav.navbar .navbar-link.is-active,header.nav-header nav.navbar .navbar-link:hover{color:#78be20}header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link a:hover,header.nav-header nav.navbar .navbar-link:hover{background-color:transparent;text-decoration:none;font-weight:700}header.nav-header nav.navbar .navbar-item .dropdown-trigger,header.nav-header nav.navbar .navbar-link .dropdown-trigger,header.nav-header nav.navbar .navbar-link a .dropdown-trigger{display:flex}@media screen and (min-width:1024px){.nav-header .container>.navbar .navbar-menu{margin-right:1rem}}@media screen and (max-width:1007px){header.nav-header nav.navbar{flex-direction:column;align-items:stretch}header.nav-header nav.navbar .navbar-menu{order:1;box-shadow:none}}@media screen and (min-width:1008px){nav.navbar .container .navbar-menu{height:40px}}</style><style data-vue-ssr-id="73fc20d4:0">@keyframes spinAround{0%{transform:rotate(0)}to{transform:rotate(359deg)}}.article h1{font-weight:400}.article h2,.article h3,.article h4{color:#a7a7a7}.article .card{border-radius:5px}.article .card .card-header{border-radius:5px 5px 0 0}.article .card .card-header.is-primary{background-color:#50237f}.article .card .card-header.is-primary .card-header-title{color:#fff}.article .card.figure{margin-bottom:1rem;text-align:center}@media screen and (min-width:415px){.article .card.figure.is-pulled-left,.article .card.figure.is-pulled-right{max-width:33%}.article .card.figure.is-pulled-left{margin-right:1rem;text-align:left}.article .card.figure.is-pulled-right{margin-left:1rem}.article .card.figure.is-pulled-right .card-content{text-align:right}}.article .card.figure .card-content{padding:.5rem;font-size:.75rem}.article .card.figure figure{margin:0}.article>.columns.pageNav{margin-top:2em}.article>.columns.pageNav .column a.button{font-size:.9em;padding:1.3rem}.article pre[class*=language-]{max-height:400px}</style><style data-vue-ssr-id="fc44206e:0">.recentPosts ul{list-style:none}</style><style data-vue-ssr-id="3dafb0ac:0">.blogArchives ul{list-style:none}</style>
+  </head>
+  <body data-n-head="">
+    <div id="__nuxt" data-server-rendered="true"><div class="nuxt-progress" style="width:0%;height:2px;background-color:#50237f;opacity:0"></div><div id="__layout"><div><header class="nav-header"><div class="container"><nav class="navbar"><div class="navbar-menu" id="navMenu"><div class="navbar-start"><a href="/unide/" class="navbar-item">
+      Home
+    </a><a href="/unide/proposal" class="navbar-item">
+      Proposal
+    </a><a href="/unide/specification" class="navbar-item">
+      Specification 
+    </a><a href="/unide/blog" class="navbar-item is-active">
+      Blog Archives
+    </a><a href="/unide/faq" class="navbar-item">
+      FAQ
+    </a></div></div><div class="navbar-brand"><div class="navbar-burger burger"><span></span><span></span><span></span></div><a href="/unide/" class="navbar-item nuxt-link-active"><img src="logo.svg"></a></div></nav></div></header><div class="container"><div class="header clearfix"></div><div class="columns"><div class="article column is-8"><h1 class="title is-3">
+    Unide 0.2.0 released
+  </h1><h2 class="subtitle is-6"><i class="fa fa-calendar"></i>  
+    03/26/18, 12:39
+  </h2><div class="content"><div><p>Finally, the second version (0.2.0) of the Eclipse unide project is released! The <a href="http://unide.eclipse.org">REST Server on the Testserver</a> has been updated as well.</p>
+<h1>Quick start</h1>
+<h2>Binsa chrome app</h2>
+<p>Download the binsa chrome app from <a href="http://download.eclipse.org/unide/binsa.crx">download page</a>. Open your chrome browser at <a href="chrome://extensions">chrome://extensions</a> and drag the binsa.crx file onto the page. You should be able to see your new chrome app in <a href="chrome://apps">chrome://apps</a></p>
+<h2>REST Server</h2>
+<p>Download the REST server file from <a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-server/0.2.0/ppmp-server-0.2.0.jar">repo.eclipse.org</a>, create a simple configuration file (e.g. application_conf.json):</p>
+<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>
+  <span class="token property">"http.port"</span><span class="token operator">:</span> <span class="token number">8090</span><span class="token punctuation">,</span>
+  <span class="token property">"persistence.enable"</span><span class="token operator">:</span> <span class="token boolean">false</span>
+<span class="token punctuation">}</span>
+
+</code></pre>
+<p>and start the server</p>
+<pre class="language-bash"><code class="language-bash">java -jar ppmp-server-0.2.0.jar -conf application_conf.json
+</code></pre>
+<p>Point your browser to <a href="http://localhost:8090">http://localhost:8090</a> and see the servers documentation running on your local server! At this point, PPMP validation (via HTTP POST to <code>/rest/v2/validate</code>) is enabled, but no persistence.</p>
+<p>If you want to send data to the server, a quick way is via <a href="https://www.getpostman.com/">Postman App</a>, which is available as native app or <a href="https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en">Chrome app</a>. Once installed and started, you can easily use the "Import > Import From Link" feature to get the prepared <a href="https://raw.githubusercontent.com/eclipse/unide/f4d349bc4a0096d3f99e14cf5f8b9f53a5145fdd/servers/rest/assets/postman/unide.postman_collection.json">unide.postman_collection.json</a> and the corresponding <a href="https://raw.githubusercontent.com/eclipse/unide/f4d349bc4a0096d3f99e14cf5f8b9f53a5145fdd/servers/rest/assets/postman/unide.postman_environment.json">unide.postman_environment</a>. You should now have Machine/Measurement/Process messages and requests prepared in the Collections tab. In order to send, you could extend the URL with "/validate" and hit "Send" button. If you get the response</p>
+<blockquote>
+<p>Ppmp Message of type 'xy' is valid</p>
+</blockquote>
+<p>the unide REST server works as expected!</p>
+<h1>Persistence</h1>
+<h2>Influx DB</h2>
+<p><a href="https://portal.influxdata.com/downloads">Download</a> the InfluxDB Time-Series Data Storage and unzip or install it on your system. By default, it opens an http port at 8086. In order to make use of it, the configuration file should be modified, e.g. to:</p>
+<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>
+  <span class="token property">"http.port"</span><span class="token operator">:</span> <span class="token number">8090</span><span class="token punctuation">,</span>
+  <span class="token property">"persistence.enable"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
+  <span class="token property">"persistence.system"</span><span class="token operator">:</span> <span class="token string">"influxDb"</span><span class="token punctuation">,</span>
+  <span class="token property">"influxDb.url"</span><span class="token operator">:</span> <span class="token string">"http://localhost:8086"</span><span class="token punctuation">,</span>
+  <span class="token property">"influxDb.user"</span><span class="token operator">:</span> <span class="token string">"root"</span><span class="token punctuation">,</span>
+  <span class="token property">"influxDb.password"</span><span class="token operator">:</span> <span class="token string">"root"</span>
+<span class="token punctuation">}</span>
+</code></pre>
+<p>After starting the database and the unide REST server, it should be possible to send POST requests to <code>http://localhost:8090/rest/v2</code>. This path receives all message types. To query the database after, use:<br>
+<a href="http://localhost:8086/query?pretty=true&u=root&p=root&db=Measurements&q=SELECT%20*%20FROM%20%22ppmp_measurements%22">http://localhost:8086/query?pretty=true&u=root&p=root&db=Measurements&q=SELECT * FROM "ppmp_measurements"</a> or the other databases that are documented on the <a href="http://localhost:8090/#influxdb_schema_design">running server instance</a>, respectively.</p>
+<h2>SQL (timescale, h2)</h2>
+<p>Download the appropriate jdbc driver, e.g. <a href="http://repo1.maven.org/maven2/com/h2database/h2/1.4.197/h2-1.4.197.jar">h2-*.jar</a>, modify the configuration file, e.g. for h2:</p>
+<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>
+  <span class="token property">"http.port"</span><span class="token operator">:</span> <span class="token number">8090</span><span class="token punctuation">,</span>
+  <span class="token property">"persistence.enable"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
+  <span class="token property">"persistence.system"</span><span class="token operator">:</span> <span class="token string">"sql"</span><span class="token punctuation">,</span>
+  <span class="token property">"sqlDb.driver"</span><span class="token operator">:</span> <span class="token string">"org.h2.Driver"</span><span class="token punctuation">,</span>
+  <span class="token property">"sqlDb.url"</span><span class="token operator">:</span> <span class="token string">"jdbc:h2:./test"</span><span class="token punctuation">,</span>
+  <span class="token property">"sqlDb.user"</span><span class="token operator">:</span> <span class="token string">"sa"</span><span class="token punctuation">,</span>
+  <span class="token property">"sqlDb.password"</span><span class="token operator">:</span> <span class="token string">""</span>
+<span class="token punctuation">}</span>
+</code></pre>
+<p>Start the PPMP Server with the jdbc dependency on the classpath, e.g.:</p>
+<pre class="language-bash"><code class="language-bash">java -cp <span class="token string">"h2-1.4.197.jar;ppmp-server-0.2.0.jar"</span> io.vertx.core.Launcher org.eclipse.iot.unide.server.MainVerticle -conf application.conf
+</code></pre>
+<p>Now, all the data send to the REST server is persisted in the file <code>test.mv.db</code>.<br>
+For concurrent db actions (reading while writing), use the h2 tcp server instead. h2 is not recommended for production use!</p>
+<h1>Background</h1>
+<h2>Download</h2>
+<p>Available artifacts for download:</p>
+<ul>
+<li><a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-schema/2.0.0/">PPMP Schema v2</a></li>
+<li><a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-java-binding/0.2.0/">PPMP java Binding</a></li>
+<li><a href="https://pypi.python.org/packages/d5/af/c90911d1da56a1ed0238338ba01068d43b8cd0137e9ca52b0f52a279f73e/unide_python-0.2.0-py2.py3-none-any.whl#md5=ca67bcd536b3a4015f72f5fa53d36543">PPMP Python Binding</a></li>
+<li><a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-server/0.2.0/">PPMP Server</a></li>
+<li><a href="http://download.eclipse.org/unide/binsa.crx">binsa client chrome app</a></li>
+</ul>
+<p>Source code:</p>
+<ul>
+<li><a href="https://github.com/eclipse/unide/releases/tag/v0.2.0">unide</a></li>
+<li><a href="https://github.com/eclipse/unide.java/releases/tag/v0.2.0">java binding</a></li>
+<li><a href="https://github.com/eclipse/unide.python/releases/tag/v0.2.0">python binding</a></li>
+</ul>
+<h2>Release notes</h2>
+<h3>REST Server improvements (refactoring & persistence)</h3>
+<ul>
+<li>Added persistence to timeseries/postgres db</li>
+<li>Outfactored schema files</li>
+<li>Adjusted maven file</li>
+<li>Added unit tests</li>
+<li>Added documentation & java docs</li>
+<li>Adjusted error handling</li>
+<li>Removed unused code</li>
+<li>Added postman collections</li>
+<li>Added grafana configuration file</li>
+</ul>
+<h3>New HTML5 simulation client</h3>
+<ul>
+<li>Progressive Webapp runs as website (see <a href="https://unide.eclipse.org/binsa">https://unide.eclipse.org/binsa</a>), browser app, native client (via <a href="https://nwjs.io/">nw.js</a>) or app (via <a href="https://cordova.apache.org/">Apache cordova</a>)</li>
+</ul>
+<h3>PPMP JSON Schema files</h3>
+<ul>
+<li>Introduced separate bundle for schemas</li>
+<li>general fixes
+<ul>
+<li>make schema draft-06 compliant</li>
+<li>added 'id' and 'descriptions' where applicable</li>
+<li>added 'type' and 'default' for enums</li>
+<li>added 'required' fields where necessary</li>
+<li>made 'additionalProperties': true explicit for 'metaData'</li>
+<li>sorted the properties for improved readability</li>
+</ul>
+</li>
+<li>message_schema fixes
+<ul>
+<li>added minItems: 1 to messages</li>
+</ul>
+</li>
+<li>measurement_schema fixes
+<ul>
+<li>completed 'limits' specification</li>
+<li>added 'patternProperties' and minProperties detail to 'series'</li>
+<li>added minItems: 1 to measurements</li>
+</ul>
+</li>
+<li>process_schema fixes
+<ul>
+<li>made 'id' and 'name' of a 'program' mandatory</li>
+<li>fixed 'shutoffValues', having properties not items</li>
+<li>fixed 'limits', having properties not items and number values rather than object values as limits</li>
+<li>fixed 'specialValues' to be an array of specialValue items with 'name' for indicating the nature, rather than one single object with its keys indicating the nature. Offering optional '$_time' tag to be consistent with measurements.</li>
+<li>completed 'series' definition</li>
+</ul>
+</li>
+</ul>
+<h3>Website</h3>
+<ul>
+<li>Autogenerating PPMP specification from JSON schemas to avoid discrepancies</li>
+<li>Generating UML schemas with plantuml</li>
+<li>Using similar HTML5 stack as simulation client for SPA website</li>
+</ul>
+<h3>Other</h3>
+<ul>
+<li>java and new python bindings in separate github repositories</li>
+</ul>
+</div></div><div class="columns pageNav"><div class="column"><a href="/unide/blog/2018/2/13/grinding-machine-scenario" class="button is-fullwidth"><span class="icon"><i class="fa fa-chevron-left"></i></span><span>PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed</span></a></div><!----></div></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
+    Recent Posts
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0" class="nuxt-link-exact-active nuxt-link-active">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+        PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
+      </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
+        PPMP Use Cases: Simple Transformation with Apache Camel
+      </a><li><a href="/unide/blog/2018/1/26/New-website">
+        Updated Website
+      </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
+        Unide is part of Industry 4.0 Testbed
+      </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
+    Blog Archives 
+  </h4><ul><li><a href="/unide/blog/2018/3" class="nuxt-link-active">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
+        March 2018
+      </a>
+      (2)
+    <li><a href="/unide/blog/2018/1">
+        February 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2017/10">
+        November 2017
+      </a>
+      (2)
+    <li><a href="/unide/blog/2017/6">
+        July 2017
+      </a>
+      (2)
+    <li><a href="/unide/blog/2017/3">
+        April 2017
+      </a>
+      (1)
+    <li><a href="/unide/blog/2016/9">
+        October 2016
+      </a>
+      (4)
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Release-0.2.0",content:'<p>Finally, the second version (0.2.0) of the Eclipse unide project is released! The <a href="http://unide.eclipse.org">REST Server on the Testserver</a> has been updated as well.</p>\n<h1>Quick start</h1>\n<h2>Binsa chrome app</h2>\n<p>Download the binsa chrome app from <a href="http://download.eclipse.org/unide/binsa.crx">download page</a>. Open your chrome browser at <a href="chrome://extensions">chrome://extensions</a> and drag the binsa.crx file onto the page. You should be able to see your new chrome app in <a href="chrome://apps">chrome://apps</a></p>\n<h2>REST Server</h2>\n<p>Download the REST server file from <a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-server/0.2.0/ppmp-server-0.2.0.jar">repo.eclipse.org</a>, create a simple configuration file (e.g. application_conf.json):</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"http.port"</span><span class="token operator">:</span> <span class="token number">8090</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.enable"</span><span class="token operator">:</span> <span class="token boolean">false</span>\n<span class="token punctuation">}</span>\n\n</code></pre>\n<p>and start the server</p>\n<pre class="language-bash"><code class="language-bash">java -jar ppmp-server-0.2.0.jar -conf application_conf.json\n</code></pre>\n<p>Point your browser to <a href="http://localhost:8090">http://localhost:8090</a> and see the servers documentation running on your local server! At this point, PPMP validation (via HTTP POST to <code>/rest/v2/validate</code>) is enabled, but no persistence.</p>\n<p>If you want to send data to the server, a quick way is via <a href="https://www.getpostman.com/">Postman App</a>, which is available as native app or <a href="https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en">Chrome app</a>. Once installed and started, you can easily use the &quot;Import &gt; Import From Link&quot; feature to get the prepared <a href="https://raw.githubusercontent.com/eclipse/unide/f4d349bc4a0096d3f99e14cf5f8b9f53a5145fdd/servers/rest/assets/postman/unide.postman_collection.json">unide.postman_collection.json</a> and the corresponding <a href="https://raw.githubusercontent.com/eclipse/unide/f4d349bc4a0096d3f99e14cf5f8b9f53a5145fdd/servers/rest/assets/postman/unide.postman_environment.json">unide.postman_environment</a>. You should now have Machine/Measurement/Process messages and requests prepared in the Collections tab. In order to send, you could extend the URL with &quot;/validate&quot; and hit &quot;Send&quot; button. If you get the response</p>\n<blockquote>\n<p>Ppmp Message of type \'xy\' is valid</p>\n</blockquote>\n<p>the unide REST server works as expected!</p>\n<h1>Persistence</h1>\n<h2>Influx DB</h2>\n<p><a href="https://portal.influxdata.com/downloads">Download</a> the InfluxDB Time-Series Data Storage and unzip or install it on your system. By default, it opens an http port at 8086. In order to make use of it, the configuration file should be modified, e.g. to:</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"http.port"</span><span class="token operator">:</span> <span class="token number">8090</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.enable"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.system"</span><span class="token operator">:</span> <span class="token string">"influxDb"</span><span class="token punctuation">,</span>\n  <span class="token property">"influxDb.url"</span><span class="token operator">:</span> <span class="token string">"http://localhost:8086"</span><span class="token punctuation">,</span>\n  <span class="token property">"influxDb.user"</span><span class="token operator">:</span> <span class="token string">"root"</span><span class="token punctuation">,</span>\n  <span class="token property">"influxDb.password"</span><span class="token operator">:</span> <span class="token string">"root"</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<p>After starting the database and the unide REST server, it should be possible to send POST requests to <code>http://localhost:8090/rest/v2</code>. This path receives all message types. To query the database after, use:<br>\n<a href="http://localhost:8086/query?pretty=true&amp;u=root&amp;p=root&amp;db=Measurements&amp;q=SELECT%20*%20FROM%20%22ppmp_measurements%22">http://localhost:8086/query?pretty=true&amp;u=root&amp;p=root&amp;db=Measurements&amp;q=SELECT * FROM &quot;ppmp_measurements&quot;</a> or the other databases that are documented on the <a href="http://localhost:8090/#influxdb_schema_design">running server instance</a>, respectively.</p>\n<h2>SQL (timescale, h2)</h2>\n<p>Download the appropriate jdbc driver, e.g. <a href="http://repo1.maven.org/maven2/com/h2database/h2/1.4.197/h2-1.4.197.jar">h2-*.jar</a>, modify the configuration file, e.g. for h2:</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"http.port"</span><span class="token operator">:</span> <span class="token number">8090</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.enable"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.system"</span><span class="token operator">:</span> <span class="token string">"sql"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.driver"</span><span class="token operator">:</span> <span class="token string">"org.h2.Driver"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.url"</span><span class="token operator">:</span> <span class="token string">"jdbc:h2:./test"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.user"</span><span class="token operator">:</span> <span class="token string">"sa"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.password"</span><span class="token operator">:</span> <span class="token string">""</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<p>Start the PPMP Server with the jdbc dependency on the classpath, e.g.:</p>\n<pre class="language-bash"><code class="language-bash">java -cp <span class="token string">"h2-1.4.197.jar;ppmp-server-0.2.0.jar"</span> io.vertx.core.Launcher org.eclipse.iot.unide.server.MainVerticle -conf application.conf\n</code></pre>\n<p>Now, all the data send to the REST server is persisted in the file <code>test.mv.db</code>.<br>\nFor concurrent db actions (reading while writing), use the h2 tcp server instead. h2 is not recommended for production use!</p>\n<h1>Background</h1>\n<h2>Download</h2>\n<p>Available artifacts for download:</p>\n<ul>\n<li><a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-schema/2.0.0/">PPMP Schema v2</a></li>\n<li><a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-java-binding/0.2.0/">PPMP java Binding</a></li>\n<li><a href="https://pypi.python.org/packages/d5/af/c90911d1da56a1ed0238338ba01068d43b8cd0137e9ca52b0f52a279f73e/unide_python-0.2.0-py2.py3-none-any.whl#md5=ca67bcd536b3a4015f72f5fa53d36543">PPMP Python Binding</a></li>\n<li><a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-server/0.2.0/">PPMP Server</a></li>\n<li><a href="http://download.eclipse.org/unide/binsa.crx">binsa client chrome app</a></li>\n</ul>\n<p>Source code:</p>\n<ul>\n<li><a href="https://github.com/eclipse/unide/releases/tag/v0.2.0">unide</a></li>\n<li><a href="https://github.com/eclipse/unide.java/releases/tag/v0.2.0">java binding</a></li>\n<li><a href="https://github.com/eclipse/unide.python/releases/tag/v0.2.0">python binding</a></li>\n</ul>\n<h2>Release notes</h2>\n<h3>REST Server improvements (refactoring &amp; persistence)</h3>\n<ul>\n<li>Added persistence to timeseries/postgres db</li>\n<li>Outfactored schema files</li>\n<li>Adjusted maven file</li>\n<li>Added unit tests</li>\n<li>Added documentation &amp; java docs</li>\n<li>Adjusted error handling</li>\n<li>Removed unused code</li>\n<li>Added postman collections</li>\n<li>Added grafana configuration file</li>\n</ul>\n<h3>New HTML5 simulation client</h3>\n<ul>\n<li>Progressive Webapp runs as website (see <a href="https://unide.eclipse.org/binsa">https://unide.eclipse.org/binsa</a>), browser app, native client (via <a href="https://nwjs.io/">nw.js</a>) or app (via <a href="https://cordova.apache.org/">Apache cordova</a>)</li>\n</ul>\n<h3>PPMP JSON Schema files</h3>\n<ul>\n<li>Introduced separate bundle for schemas</li>\n<li>general fixes\n<ul>\n<li>make schema draft-06 compliant</li>\n<li>added \'id\' and \'descriptions\' where applicable</li>\n<li>added \'type\' and \'default\' for enums</li>\n<li>added \'required\' fields where necessary</li>\n<li>made \'additionalProperties\': true explicit for \'metaData\'</li>\n<li>sorted the properties for improved readability</li>\n</ul>\n</li>\n<li>message_schema fixes\n<ul>\n<li>added minItems: 1 to messages</li>\n</ul>\n</li>\n<li>measurement_schema fixes\n<ul>\n<li>completed \'limits\' specification</li>\n<li>added \'patternProperties\' and minProperties detail to \'series\'</li>\n<li>added minItems: 1 to measurements</li>\n</ul>\n</li>\n<li>process_schema fixes\n<ul>\n<li>made \'id\' and \'name\' of a \'program\' mandatory</li>\n<li>fixed \'shutoffValues\', having properties not items</li>\n<li>fixed \'limits\', having properties not items and number values rather than object values as limits</li>\n<li>fixed \'specialValues\' to be an array of specialValue items with \'name\' for indicating the nature, rather than one single object with its keys indicating the nature. Offering optional \'$_time\' tag to be consistent with measurements.</li>\n<li>completed \'series\' definition</li>\n</ul>\n</li>\n</ul>\n<h3>Website</h3>\n<ul>\n<li>Autogenerating PPMP specification from JSON schemas to avoid discrepancies</li>\n<li>Generating UML schemas with plantuml</li>\n<li>Using similar HTML5 stack as simulation client for SPA website</li>\n</ul>\n<h3>Other</h3>\n<ul>\n<li>java and new python bindings in separate github repositories</li>\n</ul>\n',url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z",tags:["releases"],prev:{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+  
+
diff --git a/blog/2018/3/26/index.html b/blog/2018/3/26/index.html
new file mode 100644
index 0000000..8b7d2a3
--- /dev/null
+++ b/blog/2018/3/26/index.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html data-n-head="" data-n-head-ssr>
+  <head>
+    <meta data-n-head="true" charset="utf-8"><meta data-n-head="true" content="width=device-width,initial-scale=1" name="viewport"><meta data-n-head="true" content="Eclipse Unide: Understand Industry devices" name="description" data-hid="description"><title data-n-head="true">Eclipse unide - April 26, 2018</title><link href="/unide/favicon.ico" rel="icon" data-n-head="true" type="image/x-icon"><base href="/unide/"><link href="/unide/files/app.afe60790845d32718c70d2bd3d6005bc.css" rel="stylesheet"><style data-vue-ssr-id="771fc815:0">body .sidebar div{margin-bottom:2em;font-size:.875em}body .sidebar div .subtitle{margin-bottom:.5rem}</style><style data-vue-ssr-id="d5b0f30e:0">@keyframes spinAround{0%{transform:rotate(0)}to{transform:rotate(359deg)}}header.nav-header{box-shadow:0 3px 5px 0 #ddd;margin-bottom:2em;padding-bottom:0}header.nav-header nav.navbar{display:flex;align-items:flex-end;border-bottom:5px solid #50237f}header.nav-header nav.navbar .navbar-burger{margin-left:0;height:auto}header.nav-header nav.navbar .navbar-burger span{height:2px;width:25px}header.nav-header nav.navbar .navbar-burger span:first-child{margin-top:-9px}header.nav-header nav.navbar .navbar-burger span:nth-child(3){margin-top:7px}header.nav-header nav.navbar .navbar-brand{align-self:stretch}header.nav-header nav.navbar .navbar-brand .navbar-item img{max-height:none;width:240px}header.nav-header nav.navbar .navbar-item,header.nav-header nav.navbar .navbar-link,header.nav-header nav.navbar .navbar-link a{color:#a7a7a7}header.nav-header nav.navbar .navbar-item.is-active,header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link a.is-active,header.nav-header nav.navbar .navbar-link a:hover,header.nav-header nav.navbar .navbar-link.is-active,header.nav-header nav.navbar .navbar-link:hover{color:#78be20}header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link a:hover,header.nav-header nav.navbar .navbar-link:hover{background-color:transparent;text-decoration:none;font-weight:700}header.nav-header nav.navbar .navbar-item .dropdown-trigger,header.nav-header nav.navbar .navbar-link .dropdown-trigger,header.nav-header nav.navbar .navbar-link a .dropdown-trigger{display:flex}@media screen and (min-width:1024px){.nav-header .container>.navbar .navbar-menu{margin-right:1rem}}@media screen and (max-width:1007px){header.nav-header nav.navbar{flex-direction:column;align-items:stretch}header.nav-header nav.navbar .navbar-menu{order:1;box-shadow:none}}@media screen and (min-width:1008px){nav.navbar .container .navbar-menu{height:40px}}</style><style data-vue-ssr-id="f0f738d2:0">@keyframes spinAround{0%{transform:rotate(0)}to{transform:rotate(359deg)}}.blog h1{border-bottom:1px solid gray;padding-bottom:.3em}.blog h3 a{color:#a7a7a7}.blog li{margin-bottom:2em}.blog a{text-decoration:none}</style><style data-vue-ssr-id="fc44206e:0">.recentPosts ul{list-style:none}</style><style data-vue-ssr-id="3dafb0ac:0">.blogArchives ul{list-style:none}</style>
+  </head>
+  <body data-n-head="">
+    <div id="__nuxt" data-server-rendered="true"><div class="nuxt-progress" style="width:0%;height:2px;background-color:#50237f;opacity:0"></div><div id="__layout"><div><header class="nav-header"><div class="container"><nav class="navbar"><div class="navbar-menu" id="navMenu"><div class="navbar-start"><a href="/unide/" class="navbar-item">
+      Home
+    </a><a href="/unide/proposal" class="navbar-item">
+      Proposal
+    </a><a href="/unide/specification" class="navbar-item">
+      Specification 
+    </a><a href="/unide/blog" class="navbar-item is-active">
+      Blog Archives
+    </a><a href="/unide/faq" class="navbar-item">
+      FAQ
+    </a></div></div><div class="navbar-brand"><div class="navbar-burger burger"><span></span><span></span><span></span></div><a href="/unide/" class="navbar-item nuxt-link-active"><img src="logo.svg"></a></div></nav></div></header><div class="container"><div class="header clearfix"></div><div class="columns"><div class="blog column is-8"><h1 class="title is-3">
+    April 26, 2018
+  </h1><ul><li><h2 class="title is-4"><a href="/unide/blog/2018/3/26/Release-0.2.0">
+          Unide 0.2.0 released
+        </a></h2><h3 class="subtitle is-6"><a href="/unide/blog/2018/3/26/Release-0.2.0"><i class="fa fa-calendar"></i>  
+          26, 12:39
+        </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
+    Recent Posts
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+        PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
+      </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
+        PPMP Use Cases: Simple Transformation with Apache Camel
+      </a><li><a href="/unide/blog/2018/1/26/New-website">
+        Updated Website
+      </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
+        Unide is part of Industry 4.0 Testbed
+      </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
+    Blog Archives 
+  </h4><ul><li><a href="/unide/blog/2018/3" class="nuxt-link-active">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
+        March 2018
+      </a>
+      (2)
+    <li><a href="/unide/blog/2018/1">
+        February 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2017/10">
+        November 2017
+      </a>
+      (2)
+    <li><a href="/unide/blog/2017/6">
+        July 2017
+      </a>
+      (2)
+    <li><a href="/unide/blog/2017/3">
+        April 2017
+      </a>
+      (1)
+    <li><a href="/unide/blog/2016/9">
+        October 2016
+      </a>
+      (4)
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+  
+
diff --git a/blog/2018/3/index.html b/blog/2018/3/index.html
new file mode 100644
index 0000000..7cea850
--- /dev/null
+++ b/blog/2018/3/index.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html data-n-head="" data-n-head-ssr>
+  <head>
+    <meta data-n-head="true" charset="utf-8"><meta data-n-head="true" content="width=device-width,initial-scale=1" name="viewport"><meta data-n-head="true" content="Eclipse Unide: Understand Industry devices" name="description" data-hid="description"><title data-n-head="true">Eclipse unide - April 2018</title><link href="/unide/favicon.ico" rel="icon" data-n-head="true" type="image/x-icon"><base href="/unide/"><link href="/unide/files/app.afe60790845d32718c70d2bd3d6005bc.css" rel="stylesheet"><style data-vue-ssr-id="771fc815:0">body .sidebar div{margin-bottom:2em;font-size:.875em}body .sidebar div .subtitle{margin-bottom:.5rem}</style><style data-vue-ssr-id="d5b0f30e:0">@keyframes spinAround{0%{transform:rotate(0)}to{transform:rotate(359deg)}}header.nav-header{box-shadow:0 3px 5px 0 #ddd;margin-bottom:2em;padding-bottom:0}header.nav-header nav.navbar{display:flex;align-items:flex-end;border-bottom:5px solid #50237f}header.nav-header nav.navbar .navbar-burger{margin-left:0;height:auto}header.nav-header nav.navbar .navbar-burger span{height:2px;width:25px}header.nav-header nav.navbar .navbar-burger span:first-child{margin-top:-9px}header.nav-header nav.navbar .navbar-burger span:nth-child(3){margin-top:7px}header.nav-header nav.navbar .navbar-brand{align-self:stretch}header.nav-header nav.navbar .navbar-brand .navbar-item img{max-height:none;width:240px}header.nav-header nav.navbar .navbar-item,header.nav-header nav.navbar .navbar-link,header.nav-header nav.navbar .navbar-link a{color:#a7a7a7}header.nav-header nav.navbar .navbar-item.is-active,header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link a.is-active,header.nav-header nav.navbar .navbar-link a:hover,header.nav-header nav.navbar .navbar-link.is-active,header.nav-header nav.navbar .navbar-link:hover{color:#78be20}header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link a:hover,header.nav-header nav.navbar .navbar-link:hover{background-color:transparent;text-decoration:none;font-weight:700}header.nav-header nav.navbar .navbar-item .dropdown-trigger,header.nav-header nav.navbar .navbar-link .dropdown-trigger,header.nav-header nav.navbar .navbar-link a .dropdown-trigger{display:flex}@media screen and (min-width:1024px){.nav-header .container>.navbar .navbar-menu{margin-right:1rem}}@media screen and (max-width:1007px){header.nav-header nav.navbar{flex-direction:column;align-items:stretch}header.nav-header nav.navbar .navbar-menu{order:1;box-shadow:none}}@media screen and (min-width:1008px){nav.navbar .container .navbar-menu{height:40px}}</style><style data-vue-ssr-id="f0f738d2:0">@keyframes spinAround{0%{transform:rotate(0)}to{transform:rotate(359deg)}}.blog h1{border-bottom:1px solid gray;padding-bottom:.3em}.blog h3 a{color:#a7a7a7}.blog li{margin-bottom:2em}.blog a{text-decoration:none}</style><style data-vue-ssr-id="fc44206e:0">.recentPosts ul{list-style:none}</style><style data-vue-ssr-id="3dafb0ac:0">.blogArchives ul{list-style:none}</style>
+  </head>
+  <body data-n-head="">
+    <div id="__nuxt" data-server-rendered="true"><div class="nuxt-progress" style="width:0%;height:2px;background-color:#50237f;opacity:0"></div><div id="__layout"><div><header class="nav-header"><div class="container"><nav class="navbar"><div class="navbar-menu" id="navMenu"><div class="navbar-start"><a href="/unide/" class="navbar-item">
+      Home
+    </a><a href="/unide/proposal" class="navbar-item">
+      Proposal
+    </a><a href="/unide/specification" class="navbar-item">
+      Specification 
+    </a><a href="/unide/blog" class="navbar-item is-active">
+      Blog Archives
+    </a><a href="/unide/faq" class="navbar-item">
+      FAQ
+    </a></div></div><div class="navbar-brand"><div class="navbar-burger burger"><span></span><span></span><span></span></div><a href="/unide/" class="navbar-item nuxt-link-active"><img src="logo.svg"></a></div></nav></div></header><div class="container"><div class="header clearfix"></div><div class="columns"><div class="blog column is-8"><h1 class="title is-3">
+    April 2018
+  </h1><ul><li><h2 class="title is-4"><a href="/unide/blog/2018/3/26/Release-0.2.0">
+          Unide 0.2.0 released
+        </a></h2><h3 class="subtitle is-6"><a href="/unide/blog/2018/3/26/Release-0.2.0"><i class="fa fa-calendar"></i>  
+          26, 12:39
+        </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
+    Recent Posts
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+        PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
+      </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
+        PPMP Use Cases: Simple Transformation with Apache Camel
+      </a><li><a href="/unide/blog/2018/1/26/New-website">
+        Updated Website
+      </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
+        Unide is part of Industry 4.0 Testbed
+      </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
+    Blog Archives 
+  </h4><ul><li><a href="/unide/blog/2018/3" class="nuxt-link-exact-active nuxt-link-active">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
+        March 2018
+      </a>
+      (2)
+    <li><a href="/unide/blog/2018/1">
+        February 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2017/10">
+        November 2017
+      </a>
+      (2)
+    <li><a href="/unide/blog/2017/6">
+        July 2017
+      </a>
+      (2)
+    <li><a href="/unide/blog/2017/3">
+        April 2017
+      </a>
+      (1)
+    <li><a href="/unide/blog/2016/9">
+        October 2016
+      </a>
+      (4)
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+  
+
diff --git a/blog/2018/index.html b/blog/2018/index.html
index 2378e47..9493f7e 100644
--- a/blog/2018/index.html
+++ b/blog/2018/index.html
@@ -16,7 +16,11 @@
       FAQ
     </a></div></div><div class="navbar-brand"><div class="navbar-burger burger"><span></span><span></span><span></span></div><a href="/unide/" class="navbar-item nuxt-link-active"><img src="logo.svg"></a></div></nav></div></header><div class="container"><div class="header clearfix"></div><div class="columns"><div class="blog column is-8"><h1 class="title is-3">
     2018
-  </h1><ul><li><h2 class="title is-4"><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h1><ul><li><h2 class="title is-4"><a href="/unide/blog/2018/3/26/Release-0.2.0">
+          Unide 0.2.0 released
+        </a></h2><h3 class="subtitle is-6"><a href="/unide/blog/2018/3/26/Release-0.2.0"><i class="fa fa-calendar"></i>  
+          March 26, 12:39
+        </a></h3><li><h2 class="title is-4"><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
           PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
         </a></h2><h3 class="subtitle is-6"><a href="/unide/blog/2018/2/13/grinding-machine-scenario"><i class="fa fa-calendar"></i>  
           February 13
@@ -30,7 +34,9 @@
           January 26
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -38,11 +44,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -66,6 +74,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"},{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"},{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"},{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/blog/index.html b/blog/index.html
index 12bf75b..9390722 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -16,7 +16,11 @@
       FAQ
     </a></div></div><div class="navbar-brand"><div class="navbar-burger burger"><span></span><span></span><span></span></div><a href="/unide/" class="navbar-item nuxt-link-active"><img src="logo.svg"></a></div></nav></div></header><div class="container"><div class="header clearfix"></div><div class="columns"><div class="blog column is-8"><h1 class="title is-3">
     Recent Posts
-  </h1><ul><li><h2 class="title is-4"><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h1><ul><li><h2 class="title is-4"><a href="/unide/blog/2018/3/26/Release-0.2.0">
+          Unide 0.2.0 released
+        </a></h2><h3 class="subtitle is-6"><a href="/unide/blog/2018/3/26/Release-0.2.0"><i class="fa fa-calendar"></i>  
+          March 26, 2018, 12:39
+        </a></h3><li><h2 class="title is-4"><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
           PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
         </a></h2><h3 class="subtitle is-6"><a href="/unide/blog/2018/2/13/grinding-machine-scenario"><i class="fa fa-calendar"></i>  
           February 13, 2018
@@ -32,13 +36,11 @@
           Unide is part of Industry 4.0 Testbed
         </a></h2><h3 class="subtitle is-6"><a href="/unide/blog/2017/10/19/i40-testbed-started"><i class="fa fa-calendar"></i>  
           October 19, 2017
-        </a></h3><li><h2 class="title is-4"><a href="/unide/blog/2017/10/6/DZone-article-published">
-          DZone article published
-        </a></h2><h3 class="subtitle is-6"><a href="/unide/blog/2017/10/6/DZone-article-published"><i class="fa fa-calendar"></i>  
-          October 06, 2017
         </a></h3></ul></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -46,11 +48,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -74,6 +78,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"},{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"},{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z"},{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:"2017-10-06T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"},{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"},{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"},{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/faq/index.html b/faq/index.html
index 8ed29b4..b02ec5a 100644
--- a/faq/index.html
+++ b/faq/index.html
@@ -34,7 +34,9 @@
         Why have you included content-spec uri, if that can also be expressed in the a REST url already?
       </p><a class="card-header-icon"><span class="icon"><i class="fa fa-angle-up"></i></span></a></header><div style="display:none"><div class="card-content"><div><a href="specification">content-spec</a> is included in the payload, because PPMP does not rely on a specific transport protocol (like REST).</div></div></div></div></div></div><div class="sidebar column is-3 is-offset-1"><div class="recentPosts"><h4 class="subtitle is-5">
     Recent Posts
-  </h4><ul><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
+  </h4><ul><li><a href="/unide/blog/2018/3/26/Release-0.2.0">
+        Unide 0.2.0 released
+      </a><li><a href="/unide/blog/2018/2/13/grinding-machine-scenario">
         PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed
       </a><li><a href="/unide/blog/2018/2/11/Transform-PPMP-with-camel">
         PPMP Use Cases: Simple Transformation with Apache Camel
@@ -42,11 +44,13 @@
         Updated Website
       </a><li><a href="/unide/blog/2017/10/19/i40-testbed-started">
         Unide is part of Industry 4.0 Testbed
-      </a><li><a href="/unide/blog/2017/10/6/DZone-article-published">
-        DZone article published
       </a></ul></div><div class="blogArchives"><h4 class="subtitle is-5">
     Blog Archives 
-  </h4><ul><li><a href="/unide/blog/2018/2">
+  </h4><ul><li><a href="/unide/blog/2018/3">
+        April 2018
+      </a>
+      (1)
+    <li><a href="/unide/blog/2018/2">
         March 2018
       </a>
       (2)
@@ -70,6 +74,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.2822695135bb29fc86bc.js"></script><script defer src="/unide/files/layouts_sidebar.3d0de0cb93d49bddf643.js"></script><script defer src="/unide/files/pages_faq.af7b946e7573917bdb35.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.ecfb1b4627b3bfc3847e.js"></script><script defer src="/unide/files/layouts_sidebar.db7fc3ff224972a0bda7.js"></script><script defer src="/unide/files/pages_faq.af7b946e7573917bdb35.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
   
 
diff --git a/files/14.9b1fc45b85a86295077f.js b/files/14.9b1fc45b85a86295077f.js
deleted file mode 100644
index 9140e84..0000000
--- a/files/14.9b1fc45b85a86295077f.js
+++ /dev/null
@@ -1 +0,0 @@
-webpackJsonp([14],{b4ia:function(e,t){e.exports=[{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:"2017-10-06T00:00:00.000Z"},{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z"},{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"},{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"}]}});
\ No newline at end of file
diff --git a/files/14.cdd965cf514a75d889de.js b/files/14.cdd965cf514a75d889de.js
new file mode 100644
index 0000000..7049fee
--- /dev/null
+++ b/files/14.cdd965cf514a75d889de.js
@@ -0,0 +1 @@
+webpackJsonp([14],{b4ia:function(e,t){e.exports=[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z"},{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"},{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"}]}});
\ No newline at end of file
diff --git a/files/15.6a445f07c93f6b5108e0.js b/files/15.6a445f07c93f6b5108e0.js
deleted file mode 100644
index 0a5fa51..0000000
--- a/files/15.6a445f07c93f6b5108e0.js
+++ /dev/null
@@ -1 +0,0 @@
-webpackJsonp([15],{rRyJ:function(e,t){e.exports={definitions:{device:{type:"object",description:"Contains information about the device",properties:{deviceID:{type:"string",description:"The unique ID of the device. As this is used to identify a device independently from time or location the ID itself must be stable and unique. The recommendation is to use a universally unique identifier (UUID).",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},operationalStatus:{type:"string",description:"The operationalStatus describes the status of a device. It is a string matching a definition in the Production Performance Manager"}},additionalProperties:!1,required:["deviceID"]},limit:{description:"Provides information about limits for data provided in the series element. The limits is an JSON object where the key is the name of a Measurement Point (see also series element) and the value is a structure of upper/lower limits",type:"object",patternProperties:{"^[^$].+":{oneOf:[{type:"object",description:"A constant limit for all corresponding measurements",properties:{lowerError:{description:"Indicates an error if this limit is underrun",type:"number"},lowerWarn:{description:"Indicates a warning if this limit is underrun",type:"number"},target:{description:"Indicates the intented target value of the measurement",type:"number"},upperError:{description:"Indicates an error if this limit is exceeded",type:"number"},upperWarn:{description:"Indicates a warning if this limit is exceeded",type:"number"}},additionalProperties:!1},{type:"object",description:"An array of limit values. The items of the array correspond to the respective measurements at the same position.",properties:{lowerError:{description:"Indicates an error if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},lowerWarn:{description:"Indicates a warning if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},target:{description:"Indicates the intented target values. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperError:{description:"Indicates an error if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperWarn:{description:"Indicates a warning if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}}},additionalProperties:!1}]}}}},type:"object",properties:{"content-spec":{type:"string",default:"urn:spec://eclipse.org/unide/process-message#v2",description:"Defines what the format version is"},device:{type:"object",description:"Contains information about the device",properties:{deviceID:{type:"string",description:"The unique ID of the device. As this is used to identify a device independently from time or location the ID itself must be stable and unique. The recommendation is to use a universally unique identifier (UUID).",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},operationalStatus:{type:"string",description:"The operationalStatus describes the status of a device. It is a string matching a definition in the Production Performance Manager"}},additionalProperties:!1,required:["deviceID"]},part:{type:"object",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},partID:{type:"string",description:"Identifies a part. This ID comes from a 3rd party system and thus we have no guarantees if this is unique or not.",maxLength:256},partTypeID:{type:"string",description:"Identifies a part type",maxLength:256},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"},type:{type:"string",enum:["SINGLE","BATCH"],description:"Describes the type of the part. Type SINGLE means a single item is processed. Type BATCH means multiple items of the same type are processed.",default:"SINGLE"}},required:[],additionalProperties:!1},process:{type:"object",description:"Contains information about the process. If the process JSON object is set, then all information in measurements are process phases",properties:{externalProcessId:{type:"string",description:"The process Id identifies the process as part of long living process. The process Id can be used to connect multiple processes in a manufacturing chain. The Id has to be set and tracked by the different devices in the chain.",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},program:{type:"object",description:"Contains information about the program that was used in the process.",properties:{id:{type:"string",description:"The ID of the program",maxLength:36},lastChangedDate:{type:"string",format:"date-time",description:"The date when the program was last changed"},name:{type:"string",description:"The name of the program",maxLength:256}},additionalProperties:!1,required:["id"]},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"},shutoffPhase:{type:"string",description:"The ID of the phase that led to stop the process. The shutOffPhase is the phase of the process in which either pre-defined parameters are met to successfully finish the process or an error that stopped the process. That is not necessarily the last phase. The shutOffPhase should be sent when the last process phase is sent."},shutoffValues:{type:"object",description:"The shutoff values contain the values of the process that stopped the process. The shutoffValues is a JSON object where the key is the name of a Measurement Point (see also series element) and the value is a structure of different upper/lower limits and the actual value as described below.",patternProperties:{"^[^$].+":{type:"object",properties:{lowerError:{type:"number",description:"Indicates an error if this limit is underrun"},lowerWarn:{type:"number",description:"Indicates a warning if this limit is underrun"},target:{type:"number",description:"Indicates the intented target value of the measurement"},ts:{type:"string",format:"date-time",description:"Time of the measured value"},upperWarn:{type:"number",description:"Indicates a warning if this limit is exceeded"},upperError:{type:"number",description:"Indicates an error if this limit is exceeded"},value:{type:"number",description:"The final value of the process"}},additionalProperties:!1,required:["value"]}}},ts:{type:"string",format:"date-time",description:"Start time of the process"}},additionalProperties:!1,required:["ts"]},measurements:{type:"array",items:{type:"object",description:"Contains the different phases of the process. Each phase represents an execution step in the process and contains information about that specific execution step. All phases should be sorted by the timestamp of the phase.",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:36},limits:{description:"Provides information about limits for data provided in the series element. The limits is an JSON object where the key is the name of a Measurement Point (see also series element) and the value is a structure of upper/lower limits",type:"object",patternProperties:{"^[^$].+":{oneOf:[{type:"object",description:"A constant limit for all corresponding measurements",properties:{lowerError:{description:"Indicates an error if this limit is underrun",type:"number"},lowerWarn:{description:"Indicates a warning if this limit is underrun",type:"number"},target:{description:"Indicates the intented target value of the measurement",type:"number"},upperError:{description:"Indicates an error if this limit is exceeded",type:"number"},upperWarn:{description:"Indicates a warning if this limit is exceeded",type:"number"}},additionalProperties:!1},{type:"object",description:"An array of limit values. The items of the array correspond to the respective measurements at the same position.",properties:{lowerError:{description:"Indicates an error if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},lowerWarn:{description:"Indicates a warning if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},target:{description:"Indicates the intented target values. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperError:{description:"Indicates an error if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperWarn:{description:"Indicates a warning if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}}},additionalProperties:!1}]}}},name:{type:"string",description:"The name of the process phase",maxLength:256},phase:{type:"string",description:"The id of the process phase",maxLength:256},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"},specialValues:{type:"array",items:{type:"object",description:"Provides information about special or interesting values during the process phase.",properties:{$_time:{type:"integer",description:"The time offset in milliseconds to the 'ts' field of the measurement"},name:{type:"string",description:"indicates the type of the specialValue (e.g. 'endanzug', 'turningPoint' etc.)"},value:{type:"object",description:"Contains the actual (multidimensional) value of interest. Similarly to series, every entry matches a Measurement Point of the device",patternProperties:{"^[^$].+":{type:"number"}},minProperties:1}},additionalProperties:!1,required:["value"]}},series:{type:"object",description:"The series data collected for the measurements. Every entry matches a Measurement Point of the device. In the case of a time series, one column contains the time offset in milliseconds (positive values in ascending order starting with 0). In this case the value is the keyword $_time. The maximum size for the measurement value is 10 positions before the decimal point. The decimal places are truncated to 2 in the historical data.",properties:{$_time:{type:"array",description:"The time offset in milliseconds (positive values in ascending order starting with 0) to the 'ts' field of the measurement",items:{type:"integer"}}},patternProperties:{"^[^$].+":{type:"array",items:{type:"number"}}},additionalProperties:!1},ts:{type:"string",format:"date-time",description:"Start time of the the data measurment in  ISO 8601 format"}},additionalProperties:!1,required:["ts","series"]}}},required:["content-spec","device","process","measurements"]}}});
\ No newline at end of file
diff --git a/files/15.d771450e0496b312779c.js b/files/15.d771450e0496b312779c.js
new file mode 100644
index 0000000..31bf951
--- /dev/null
+++ b/files/15.d771450e0496b312779c.js
@@ -0,0 +1 @@
+webpackJsonp([15],{rRyJ:function(e,t){e.exports={definitions:{device:{type:"object",description:"Contains information about the device",properties:{deviceID:{type:"string",description:"The unique ID of the device. As this is used to identify a device independently from time or location the ID itself must be stable and unique. The recommendation is to use a universally unique identifier (UUID).",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},operationalStatus:{type:"string",description:"The operationalStatus describes the status of a device. It is a string matching a definition in the Production Performance Manager"}},additionalProperties:!1,required:["deviceID"]},limit:{description:"Provides information about limits for data provided in the series element. The limits is an JSON object where the key is the name of a Measurement Point (see also series element) and the value is a structure of upper/lower limits",type:"object",patternProperties:{"^[^$]+":{oneOf:[{type:"object",description:"A constant limit for all corresponding measurements",properties:{lowerError:{description:"Indicates an error if this limit is underrun",type:"number"},lowerWarn:{description:"Indicates a warning if this limit is underrun",type:"number"},target:{description:"Indicates the intented target value of the measurement",type:"number"},upperError:{description:"Indicates an error if this limit is exceeded",type:"number"},upperWarn:{description:"Indicates a warning if this limit is exceeded",type:"number"}},additionalProperties:!1},{type:"object",description:"An array of limit values. The items of the array correspond to the respective measurements at the same position.",properties:{lowerError:{description:"Indicates an error if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},lowerWarn:{description:"Indicates a warning if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},target:{description:"Indicates the intented target values. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperError:{description:"Indicates an error if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperWarn:{description:"Indicates a warning if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}}},additionalProperties:!1}]}}}},type:"object",properties:{"content-spec":{type:"string",default:"urn:spec://eclipse.org/unide/process-message#v2",description:"Defines what the format version is"},device:{type:"object",description:"Contains information about the device",properties:{deviceID:{type:"string",description:"The unique ID of the device. As this is used to identify a device independently from time or location the ID itself must be stable and unique. The recommendation is to use a universally unique identifier (UUID).",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},operationalStatus:{type:"string",description:"The operationalStatus describes the status of a device. It is a string matching a definition in the Production Performance Manager"}},additionalProperties:!1,required:["deviceID"]},part:{type:"object",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},partID:{type:"string",description:"Identifies a part. This ID comes from a 3rd party system and thus we have no guarantees if this is unique or not.",maxLength:256},partTypeID:{type:"string",description:"Identifies a part type",maxLength:256},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"},type:{type:"string",enum:["SINGLE","BATCH"],description:"Describes the type of the part. Type SINGLE means a single item is processed. Type BATCH means multiple items of the same type are processed.",default:"SINGLE"}},required:[],additionalProperties:!1},process:{type:"object",description:"Contains information about the process. If the process JSON object is set, then all information in measurements are process phases",properties:{externalProcessId:{type:"string",description:"The process Id identifies the process as part of long living process. The process Id can be used to connect multiple processes in a manufacturing chain. The Id has to be set and tracked by the different devices in the chain.",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},program:{type:"object",description:"Contains information about the program that was used in the process.",properties:{id:{type:"string",description:"The ID of the program",maxLength:36},lastChangedDate:{type:"string",format:"date-time",description:"The date when the program was last changed"},name:{type:"string",description:"The name of the program",maxLength:256}},additionalProperties:!1,required:["id"]},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"},shutoffPhase:{type:"string",description:"The ID of the phase that led to stop the process. The shutOffPhase is the phase of the process in which either pre-defined parameters are met to successfully finish the process or an error that stopped the process. That is not necessarily the last phase. The shutOffPhase should be sent when the last process phase is sent."},shutoffValues:{type:"object",description:"The shutoff values contain the values of the process that stopped the process. The shutoffValues is a JSON object where the key is the name of a Measurement Point (see also series element) and the value is a structure of different upper/lower limits and the actual value as described below.",patternProperties:{"^[^$]+":{type:"object",properties:{lowerError:{type:"number",description:"Indicates an error if this limit is underrun"},lowerWarn:{type:"number",description:"Indicates a warning if this limit is underrun"},target:{type:"number",description:"Indicates the intented target value of the measurement"},ts:{type:"string",format:"date-time",description:"Time of the measured value"},upperWarn:{type:"number",description:"Indicates a warning if this limit is exceeded"},upperError:{type:"number",description:"Indicates an error if this limit is exceeded"},value:{type:"number",description:"The final value of the process"}},additionalProperties:!1,required:["value"]}}},ts:{type:"string",format:"date-time",description:"Start time of the process"}},additionalProperties:!1,required:["ts"]},measurements:{type:"array",items:{type:"object",description:"Contains the different phases of the process. Each phase represents an execution step in the process and contains information about that specific execution step. All phases should be sorted by the timestamp of the phase.",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:36},limits:{description:"Provides information about limits for data provided in the series element. The limits is an JSON object where the key is the name of a Measurement Point (see also series element) and the value is a structure of upper/lower limits",type:"object",patternProperties:{"^[^$]+":{oneOf:[{type:"object",description:"A constant limit for all corresponding measurements",properties:{lowerError:{description:"Indicates an error if this limit is underrun",type:"number"},lowerWarn:{description:"Indicates a warning if this limit is underrun",type:"number"},target:{description:"Indicates the intented target value of the measurement",type:"number"},upperError:{description:"Indicates an error if this limit is exceeded",type:"number"},upperWarn:{description:"Indicates a warning if this limit is exceeded",type:"number"}},additionalProperties:!1},{type:"object",description:"An array of limit values. The items of the array correspond to the respective measurements at the same position.",properties:{lowerError:{description:"Indicates an error if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},lowerWarn:{description:"Indicates a warning if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},target:{description:"Indicates the intented target values. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperError:{description:"Indicates an error if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperWarn:{description:"Indicates a warning if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}}},additionalProperties:!1}]}}},name:{type:"string",description:"The name of the process phase",maxLength:256},phase:{type:"string",description:"The id of the process phase",maxLength:256},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"},specialValues:{type:"array",items:{type:"object",description:"Provides information about special or interesting values during the process phase.",properties:{$_time:{type:"integer",description:"The time offset in milliseconds to the 'ts' field of the measurement"},name:{type:"string",description:"indicates the type of the specialValue (e.g. 'endanzug', 'turningPoint' etc.)"},value:{type:"object",description:"Contains the actual (multidimensional) value of interest. Similarly to series, every entry matches a Measurement Point of the device",patternProperties:{"^[^$]+":{type:"number"}},minProperties:1}},additionalProperties:!1,required:["value"]}},series:{type:"object",description:"The series data collected for the measurements. Every entry matches a Measurement Point of the device. In the case of a time series, one column contains the time offset in milliseconds (positive values in ascending order starting with 0). In this case the value is the keyword $_time. The maximum size for the measurement value is 10 positions before the decimal point. The decimal places are truncated to 2 in the historical data.",properties:{$_time:{type:"array",description:"The time offset in milliseconds (positive values in ascending order starting with 0) to the 'ts' field of the measurement",items:{type:"integer"}}},patternProperties:{"^[^$]+":{type:"array",items:{type:"number"}}},additionalProperties:!1},ts:{type:"string",format:"date-time",description:"Start time of the the data measurment in  ISO 8601 format"}},additionalProperties:!1,required:["ts","series"]}}},required:["content-spec","device","process","measurements"]}}});
\ No newline at end of file
diff --git a/files/17.3c5f27ac9691c6987800.js b/files/17.3c5f27ac9691c6987800.js
deleted file mode 100644
index 60a5d1e..0000000
--- a/files/17.3c5f27ac9691c6987800.js
+++ /dev/null
@@ -1 +0,0 @@
-webpackJsonp([17],{oGp6:function(e,t){e.exports={type:"object",properties:{"content-spec":{type:"string",default:"urn:spec://eclipse.org/unide/measurement-message#v2",description:"Defines what the format version is"},device:{type:"object",description:"Contains information about the device",properties:{deviceID:{type:"string",description:"The unique ID of the device. As this is used to identify a device independently from time or location the ID itself must be stable and unique. The recommendation is to use a universally unique identifier (UUID).",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},operationalStatus:{type:"string",description:"The operationalStatus describes the status of a device. It is a string matching a definition in the Production Performance Manager"}},additionalProperties:!1,required:["deviceID"]},part:{type:"object",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},partID:{type:"string",description:"Identifies a part. This ID comes from a 3rd party system and thus we have no guarantees if this is unique or not.",maxLength:256},partTypeID:{type:"string",description:"Identifies a part type",maxLength:256},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"}},additionalProperties:!1,required:[]},measurements:{type:"array",minItems:1,items:{type:"object",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:36},limits:{type:"object",description:"Provides information about limits for data provided in the series element.",patternProperties:{"^[^$].+":{type:"object",description:"The key shall be the name of a measurement point (element of series element). The value is a structure of different upper/lower limits.",properties:{lowerError:{type:"number",description:"Indicates an error if this limit is underrun"},lowerWarn:{type:"number",description:"Indicates a warning if this limit is underrun"},target:{type:"number",description:"Indicates the intented target value of the measurement"},upperError:{type:"number",description:"Indicates an error if this limit is exceeded"},upperWarn:{type:"number",description:"Indicates a warning if this limit is exceeded"}}}},additionalProperties:!1,required:[]},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"},series:{type:"object",description:"The series data collected for the measurements. Every entry matches a Measurement Point of the Device Type. In the case of a time series, one column contains the time offsets.",properties:{$_time:{type:"array",description:"The time offset in milliseconds (positive values in ascending order starting with 0) to the 'ts' field of the measurement",items:{type:"integer"}}},patternProperties:{"^[^$].+":{type:"array",items:{type:"number"}}},required:["$_time"],minProperties:2,additionalProperties:!1},ts:{format:"date-time",type:"string",description:"Start time of the the data measurment in  ISO 8601 format"}},required:["ts","series"]}}},additionalProperties:!1,required:["content-spec","device","measurements"]}}});
\ No newline at end of file
diff --git a/files/17.cead57eff5f5ca1f8446.js b/files/17.cead57eff5f5ca1f8446.js
new file mode 100644
index 0000000..854699b
--- /dev/null
+++ b/files/17.cead57eff5f5ca1f8446.js
@@ -0,0 +1 @@
+webpackJsonp([17],{oGp6:function(e,t){e.exports={type:"object",properties:{"content-spec":{type:"string",default:"urn:spec://eclipse.org/unide/measurement-message#v2",description:"Defines what the format version is"},device:{type:"object",description:"Contains information about the device",properties:{deviceID:{type:"string",description:"The unique ID of the device. As this is used to identify a device independently from time or location the ID itself must be stable and unique. The recommendation is to use a universally unique identifier (UUID).",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},operationalStatus:{type:"string",description:"The operationalStatus describes the status of a device. It is a string matching a definition in the Production Performance Manager"}},additionalProperties:!1,required:["deviceID"]},part:{type:"object",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},partID:{type:"string",description:"Identifies a part. This ID comes from a 3rd party system and thus we have no guarantees if this is unique or not.",maxLength:256},partTypeID:{type:"string",description:"Identifies a part type",maxLength:256},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"}},additionalProperties:!1,required:[]},measurements:{type:"array",minItems:1,items:{type:"object",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:36},limits:{type:"object",description:"Provides information about limits for data provided in the series element.",patternProperties:{"^[^$]+":{type:"object",description:"The key shall be the name of a measurement point (element of series element). The value is a structure of different upper/lower limits.",properties:{lowerError:{type:"number",description:"Indicates an error if this limit is underrun"},lowerWarn:{type:"number",description:"Indicates a warning if this limit is underrun"},target:{type:"number",description:"Indicates the intented target value of the measurement"},upperError:{type:"number",description:"Indicates an error if this limit is exceeded"},upperWarn:{type:"number",description:"Indicates a warning if this limit is exceeded"}}}},additionalProperties:!1,required:[]},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"},series:{type:"object",description:"The series data collected for the measurements. Every entry matches a Measurement Point of the Device Type. In the case of a time series, one column contains the time offsets.",properties:{$_time:{type:"array",description:"The time offset in milliseconds (positive values in ascending order starting with 0) to the 'ts' field of the measurement",items:{type:"integer"}}},patternProperties:{"^[^$]+":{type:"array",items:{type:"number"}}},required:["$_time"],minProperties:2,additionalProperties:!1},ts:{format:"date-time",type:"string",description:"Start time of the the data measurment in  ISO 8601 format"}},required:["ts","series"]}}},additionalProperties:!1,required:["content-spec","device","measurements"]}}});
\ No newline at end of file
diff --git a/files/layouts_sidebar.3d0de0cb93d49bddf643.js b/files/layouts_sidebar.db7fc3ff224972a0bda7.js
similarity index 79%
rename from files/layouts_sidebar.3d0de0cb93d49bddf643.js
rename to files/layouts_sidebar.db7fc3ff224972a0bda7.js
index 1f64c4f..b87f8ac 100644
--- a/files/layouts_sidebar.3d0de0cb93d49bddf643.js
+++ b/files/layouts_sidebar.db7fc3ff224972a0bda7.js
@@ -1 +1 @@
-webpackJsonp([5,14],{"+1eW":function(a,e,t){"use strict";var n=t("zRhM"),r=t.n(n),s=(navigator.languages&&navigator.languages[0]||navigator.language||navigator.userLanguage).toLowerCase().split(/[_-]+/)[0];e.a={data:function(){return{posts:r.a.slice().reverse()}},filters:{timeStamp:function(a){var e=a.year,t=a.month,n=new Date(Date.UTC(e,t||0,1));return Intl.DateTimeFormat(s,{month:"long",year:"numeric"}).format(n)}}}},"0rUs":function(a,e,t){var n=t("YV2r");"string"==typeof n&&(n=[[a.i,n,""]]),n.locals&&(a.exports=n.locals);t("rjj0")("771fc815",n,!1)},"4nd1":function(a,e,t){var n=t("EiyC");"string"==typeof n&&(n=[[a.i,n,""]]),n.locals&&(a.exports=n.locals);t("rjj0")("fc44206e",n,!1)},"58B5":function(a,e,t){(a.exports=t("YHym")(!1)).push([a.i,".blogArchives ul{list-style:none}",""])},"6mrF":function(a,e,t){"use strict";var n=function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("header",{staticClass:"nav-header"},[t("div",{staticClass:"container"},[t("nav",{staticClass:"navbar"},[t("div",{staticClass:"navbar-menu",class:{"is-active":a.isMenuActive},attrs:{id:"navMenu"},on:{click:function(e){a.isMenuActive=!1}}},[t("div",{staticClass:"navbar-start"},[a._t("default")],2)]),t("div",{staticClass:"navbar-brand"},[t("div",{staticClass:"navbar-burger burger",class:{"is-active":a.isMenuActive},on:{click:function(e){a.isMenuActive=!a.isMenuActive}}},[t("span"),t("span"),t("span")]),t("nuxt-link",{staticClass:"navbar-item",attrs:{to:"/"}},[t("img",{attrs:{src:"logo.svg",alt:a.brand}})])],1)])])])};n._withStripped=!0;var r={render:n,staticRenderFns:[]};e.a=r},"7EWE":function(a,e,t){"use strict";var n=t("yHEx"),r=t("w5zz"),s=t("XJHj");e.a={components:{navbar:n.a,recentPosts:r.a,blogArchives:s.a}}},"8ETN":function(a,e,t){var n=t("58B5");"string"==typeof n&&(n=[[a.i,n,""]]),n.locals&&(a.exports=n.locals);t("rjj0")("3dafb0ac",n,!1)},BoYc:function(a,e,t){var n=t("DGmj");"string"==typeof n&&(n=[[a.i,n,""]]),n.locals&&(a.exports=n.locals);t("rjj0")("d5b0f30e",n,!1)},DGmj:function(a,e,t){(a.exports=t("YHym")(!1)).push([a.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}header.nav-header{box-shadow:0 3px 5px 0 #ddd;margin-bottom:2em;padding-bottom:0}header.nav-header nav.navbar{display:flex;align-items:flex-end;border-bottom:5px solid #50237f}header.nav-header nav.navbar .navbar-burger{margin-left:0;height:auto}header.nav-header nav.navbar .navbar-burger span{height:2px;width:25px}header.nav-header nav.navbar .navbar-burger span:first-child{margin-top:-9px}header.nav-header nav.navbar .navbar-burger span:nth-child(3){margin-top:7px}header.nav-header nav.navbar .navbar-brand{align-self:stretch}header.nav-header nav.navbar .navbar-brand .navbar-item img{max-height:none;width:240px}header.nav-header nav.navbar .navbar-item,header.nav-header nav.navbar .navbar-link,header.nav-header nav.navbar .navbar-link a{color:#a7a7a7}header.nav-header nav.navbar .navbar-item.is-active,header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link.is-active,header.nav-header nav.navbar .navbar-link:hover,header.nav-header nav.navbar .navbar-link a.is-active,header.nav-header nav.navbar .navbar-link a:hover{color:#78be20}header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link:hover,header.nav-header nav.navbar .navbar-link a:hover{background-color:transparent;text-decoration:none;font-weight:700}header.nav-header nav.navbar .navbar-item .dropdown-trigger,header.nav-header nav.navbar .navbar-link .dropdown-trigger,header.nav-header nav.navbar .navbar-link a .dropdown-trigger{display:flex}@media screen and (min-width:1024px){.nav-header .container>.navbar .navbar-menu{margin-right:1rem}}@media screen and (max-width:1007px){header.nav-header nav.navbar{flex-direction:column;align-items:stretch}header.nav-header nav.navbar .navbar-menu{order:1;box-shadow:none}}@media screen and (min-width:1008px){nav.navbar .container .navbar-menu{height:40px}}",""])},DqLf:function(a,e,t){"use strict";var n=function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("div",{staticClass:"blogArchives"},[t("h4",{staticClass:"subtitle is-5"},[a._v("\n    Blog Archives \n  ")]),t("ul",a._l(a.posts,function(e){return t("li",{key:e.url},[t("nuxt-link",{attrs:{to:e.url}},[a._v("\n        "+a._s(a._f("timeStamp")(e))+"\n      ")]),a._v("\n      ("+a._s(e.count)+")\n    ")],1)}))])};n._withStripped=!0;var r={render:n,staticRenderFns:[]};e.a=r},EiyC:function(a,e,t){(a.exports=t("YHym")(!1)).push([a.i,".recentPosts ul{list-style:none}",""])},U7sK:function(a,e,t){"use strict";var n=function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("div",{staticClass:"recentPosts"},[t("h4",{staticClass:"subtitle is-5"},[a._v("\n    Recent Posts\n  ")]),t("ul",a._l(a.posts,function(e){return t("li",{key:e.url},[t("nuxt-link",{attrs:{to:e.url}},[a._v("\n        "+a._s(e.title)+"\n      ")])],1)}))])};n._withStripped=!0;var r={render:n,staticRenderFns:[]};e.a=r},XJHj:function(a,e,t){"use strict";var n=t("+1eW"),r=t("DqLf"),s=!1;var i=function(a){s||t("8ETN")},o=t("VU/8")(n.a,r.a,!1,i,null,null);o.options.__file="components\\blogArchives.vue",e.a=o.exports},YV2r:function(a,e,t){(a.exports=t("YHym")(!1)).push([a.i,"body .sidebar div{margin-bottom:2em;font-size:.875em}body .sidebar div .subtitle{margin-bottom:.5rem}",""])},ZjvN:function(a,e,t){"use strict";var n=function(){var a=this.$createElement,e=this._self._c||a;return e("div",[e("navbar",[e("nuxt-link",{staticClass:"navbar-item",attrs:{exact:"","active-class":"is-active",to:"/"}},[this._v("\n      Home\n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/proposal"}},[this._v("\n      Proposal\n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/specification"}},[this._v("\n      Specification \n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/blog"}},[this._v("\n      Blog Archives\n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/faq"}},[this._v("\n      FAQ\n    ")])],1),e("div",{staticClass:"container"},[e("div",{staticClass:"header clearfix"}),e("div",{staticClass:"columns"},[e("nuxt",{staticClass:"column is-8"}),e("div",{staticClass:"sidebar column is-3 is-offset-1"},[e("recentPosts"),e("blogArchives")],1)],1)]),this._m(0)],1)};n._withStripped=!0;var r={render:n,staticRenderFns:[function(){var a=this.$createElement,e=this._self._c||a;return e("footer",{staticClass:"footer"},[e("div",{staticClass:"container"},[e("div",{staticClass:"content has-text-centered"},[e("ul",[e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/privacy.php"}},[this._v("Privacy Policy")])]),e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/termsofuse.php"}},[this._v("Terms of Use")])]),e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/copyright.php"}},[this._v("Copyright Agent")])]),e("span",[e("a",{attrs:{href:"https://eclipse.org/security/ "}},[this._v("Security reports")])]),e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/"}},[this._v("Legal")])])])])])])}]};e.a=r},aIAa:function(a,e,t){"use strict";var n=t("b4ia"),r=t.n(n);e.a={data:function(){return{posts:r.a.slice().reverse()}},components:{}}},b4ia:function(a,e){a.exports=[{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:"2017-10-06T00:00:00.000Z"},{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z"},{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"},{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"}]},ofze:function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=t("7EWE"),r=t("ZjvN"),s=!1;var i=function(a){s||t("0rUs")},o=t("VU/8")(n.a,r.a,!1,i,null,null);o.options.__file="layouts\\sidebar.vue",e.default=o.exports},vaaU:function(a,e,t){"use strict";(function(a){e.a={data:function(){return{brand:a.env.BRAND,isMenuActive:!1}},components:{}}}).call(e,t("W2nU"))},w5zz:function(a,e,t){"use strict";var n=t("aIAa"),r=t("U7sK"),s=!1;var i=function(a){s||t("4nd1")},o=t("VU/8")(n.a,r.a,!1,i,null,null);o.options.__file="components\\recentPosts.vue",e.a=o.exports},yHEx:function(a,e,t){"use strict";var n=t("vaaU"),r=t("6mrF"),s=!1;var i=function(a){s||t("BoYc")},o=t("VU/8")(n.a,r.a,!1,i,null,null);o.options.__file="components\\navbar.vue",e.a=o.exports},zRhM:function(a,e){a.exports=[{year:"2016",month:"9",url:"/blog/2016/9",count:4},{year:"2017",month:"3",url:"/blog/2017/3",count:1},{year:"2017",month:"6",url:"/blog/2017/6",count:2},{year:"2017",month:"10",url:"/blog/2017/10",count:2},{year:"2018",month:"1",url:"/blog/2018/1",count:1},{year:"2018",month:"2",url:"/blog/2018/2",count:2}]}});
\ No newline at end of file
+webpackJsonp([5,14],{"+1eW":function(a,e,t){"use strict";var n=t("zRhM"),r=t.n(n),s=(navigator.languages&&navigator.languages[0]||navigator.language||navigator.userLanguage).toLowerCase().split(/[_-]+/)[0];e.a={data:function(){return{posts:r.a.slice().reverse()}},filters:{timeStamp:function(a){var e=a.year,t=a.month,n=new Date(Date.UTC(e,t||0,1));return Intl.DateTimeFormat(s,{month:"long",year:"numeric"}).format(n)}}}},"0rUs":function(a,e,t){var n=t("YV2r");"string"==typeof n&&(n=[[a.i,n,""]]),n.locals&&(a.exports=n.locals);t("rjj0")("771fc815",n,!1)},"4nd1":function(a,e,t){var n=t("EiyC");"string"==typeof n&&(n=[[a.i,n,""]]),n.locals&&(a.exports=n.locals);t("rjj0")("fc44206e",n,!1)},"58B5":function(a,e,t){(a.exports=t("YHym")(!1)).push([a.i,".blogArchives ul{list-style:none}",""])},"6mrF":function(a,e,t){"use strict";var n=function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("header",{staticClass:"nav-header"},[t("div",{staticClass:"container"},[t("nav",{staticClass:"navbar"},[t("div",{staticClass:"navbar-menu",class:{"is-active":a.isMenuActive},attrs:{id:"navMenu"},on:{click:function(e){a.isMenuActive=!1}}},[t("div",{staticClass:"navbar-start"},[a._t("default")],2)]),t("div",{staticClass:"navbar-brand"},[t("div",{staticClass:"navbar-burger burger",class:{"is-active":a.isMenuActive},on:{click:function(e){a.isMenuActive=!a.isMenuActive}}},[t("span"),t("span"),t("span")]),t("nuxt-link",{staticClass:"navbar-item",attrs:{to:"/"}},[t("img",{attrs:{src:"logo.svg",alt:a.brand}})])],1)])])])};n._withStripped=!0;var r={render:n,staticRenderFns:[]};e.a=r},"7EWE":function(a,e,t){"use strict";var n=t("yHEx"),r=t("w5zz"),s=t("XJHj");e.a={components:{navbar:n.a,recentPosts:r.a,blogArchives:s.a}}},"8ETN":function(a,e,t){var n=t("58B5");"string"==typeof n&&(n=[[a.i,n,""]]),n.locals&&(a.exports=n.locals);t("rjj0")("3dafb0ac",n,!1)},BoYc:function(a,e,t){var n=t("DGmj");"string"==typeof n&&(n=[[a.i,n,""]]),n.locals&&(a.exports=n.locals);t("rjj0")("d5b0f30e",n,!1)},DGmj:function(a,e,t){(a.exports=t("YHym")(!1)).push([a.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}header.nav-header{box-shadow:0 3px 5px 0 #ddd;margin-bottom:2em;padding-bottom:0}header.nav-header nav.navbar{display:flex;align-items:flex-end;border-bottom:5px solid #50237f}header.nav-header nav.navbar .navbar-burger{margin-left:0;height:auto}header.nav-header nav.navbar .navbar-burger span{height:2px;width:25px}header.nav-header nav.navbar .navbar-burger span:first-child{margin-top:-9px}header.nav-header nav.navbar .navbar-burger span:nth-child(3){margin-top:7px}header.nav-header nav.navbar .navbar-brand{align-self:stretch}header.nav-header nav.navbar .navbar-brand .navbar-item img{max-height:none;width:240px}header.nav-header nav.navbar .navbar-item,header.nav-header nav.navbar .navbar-link,header.nav-header nav.navbar .navbar-link a{color:#a7a7a7}header.nav-header nav.navbar .navbar-item.is-active,header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link.is-active,header.nav-header nav.navbar .navbar-link:hover,header.nav-header nav.navbar .navbar-link a.is-active,header.nav-header nav.navbar .navbar-link a:hover{color:#78be20}header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link:hover,header.nav-header nav.navbar .navbar-link a:hover{background-color:transparent;text-decoration:none;font-weight:700}header.nav-header nav.navbar .navbar-item .dropdown-trigger,header.nav-header nav.navbar .navbar-link .dropdown-trigger,header.nav-header nav.navbar .navbar-link a .dropdown-trigger{display:flex}@media screen and (min-width:1024px){.nav-header .container>.navbar .navbar-menu{margin-right:1rem}}@media screen and (max-width:1007px){header.nav-header nav.navbar{flex-direction:column;align-items:stretch}header.nav-header nav.navbar .navbar-menu{order:1;box-shadow:none}}@media screen and (min-width:1008px){nav.navbar .container .navbar-menu{height:40px}}",""])},DqLf:function(a,e,t){"use strict";var n=function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("div",{staticClass:"blogArchives"},[t("h4",{staticClass:"subtitle is-5"},[a._v("\n    Blog Archives \n  ")]),t("ul",a._l(a.posts,function(e){return t("li",{key:e.url},[t("nuxt-link",{attrs:{to:e.url}},[a._v("\n        "+a._s(a._f("timeStamp")(e))+"\n      ")]),a._v("\n      ("+a._s(e.count)+")\n    ")],1)}))])};n._withStripped=!0;var r={render:n,staticRenderFns:[]};e.a=r},EiyC:function(a,e,t){(a.exports=t("YHym")(!1)).push([a.i,".recentPosts ul{list-style:none}",""])},U7sK:function(a,e,t){"use strict";var n=function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("div",{staticClass:"recentPosts"},[t("h4",{staticClass:"subtitle is-5"},[a._v("\n    Recent Posts\n  ")]),t("ul",a._l(a.posts,function(e){return t("li",{key:e.url},[t("nuxt-link",{attrs:{to:e.url}},[a._v("\n        "+a._s(e.title)+"\n      ")])],1)}))])};n._withStripped=!0;var r={render:n,staticRenderFns:[]};e.a=r},XJHj:function(a,e,t){"use strict";var n=t("+1eW"),r=t("DqLf"),s=!1;var i=function(a){s||t("8ETN")},o=t("VU/8")(n.a,r.a,!1,i,null,null);o.options.__file="components\\blogArchives.vue",e.a=o.exports},YV2r:function(a,e,t){(a.exports=t("YHym")(!1)).push([a.i,"body .sidebar div{margin-bottom:2em;font-size:.875em}body .sidebar div .subtitle{margin-bottom:.5rem}",""])},ZjvN:function(a,e,t){"use strict";var n=function(){var a=this.$createElement,e=this._self._c||a;return e("div",[e("navbar",[e("nuxt-link",{staticClass:"navbar-item",attrs:{exact:"","active-class":"is-active",to:"/"}},[this._v("\n      Home\n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/proposal"}},[this._v("\n      Proposal\n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/specification"}},[this._v("\n      Specification \n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/blog"}},[this._v("\n      Blog Archives\n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/faq"}},[this._v("\n      FAQ\n    ")])],1),e("div",{staticClass:"container"},[e("div",{staticClass:"header clearfix"}),e("div",{staticClass:"columns"},[e("nuxt",{staticClass:"column is-8"}),e("div",{staticClass:"sidebar column is-3 is-offset-1"},[e("recentPosts"),e("blogArchives")],1)],1)]),this._m(0)],1)};n._withStripped=!0;var r={render:n,staticRenderFns:[function(){var a=this.$createElement,e=this._self._c||a;return e("footer",{staticClass:"footer"},[e("div",{staticClass:"container"},[e("div",{staticClass:"content has-text-centered"},[e("ul",[e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/privacy.php"}},[this._v("Privacy Policy")])]),e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/termsofuse.php"}},[this._v("Terms of Use")])]),e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/copyright.php"}},[this._v("Copyright Agent")])]),e("span",[e("a",{attrs:{href:"https://eclipse.org/security/ "}},[this._v("Security reports")])]),e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/"}},[this._v("Legal")])])])])])])}]};e.a=r},aIAa:function(a,e,t){"use strict";var n=t("b4ia"),r=t.n(n);e.a={data:function(){return{posts:r.a.slice().reverse()}},components:{}}},b4ia:function(a,e){a.exports=[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z"},{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"},{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"}]},ofze:function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=t("7EWE"),r=t("ZjvN"),s=!1;var i=function(a){s||t("0rUs")},o=t("VU/8")(n.a,r.a,!1,i,null,null);o.options.__file="layouts\\sidebar.vue",e.default=o.exports},vaaU:function(a,e,t){"use strict";(function(a){e.a={data:function(){return{brand:a.env.BRAND,isMenuActive:!1}},components:{}}}).call(e,t("W2nU"))},w5zz:function(a,e,t){"use strict";var n=t("aIAa"),r=t("U7sK"),s=!1;var i=function(a){s||t("4nd1")},o=t("VU/8")(n.a,r.a,!1,i,null,null);o.options.__file="components\\recentPosts.vue",e.a=o.exports},yHEx:function(a,e,t){"use strict";var n=t("vaaU"),r=t("6mrF"),s=!1;var i=function(a){s||t("BoYc")},o=t("VU/8")(n.a,r.a,!1,i,null,null);o.options.__file="components\\navbar.vue",e.a=o.exports},zRhM:function(a,e){a.exports=[{year:"2016",month:"9",url:"/blog/2016/9",count:4},{year:"2017",month:"3",url:"/blog/2017/3",count:1},{year:"2017",month:"6",url:"/blog/2017/6",count:2},{year:"2017",month:"10",url:"/blog/2017/10",count:2},{year:"2018",month:"1",url:"/blog/2018/1",count:1},{year:"2018",month:"2",url:"/blog/2018/2",count:2},{year:"2018",month:"3",url:"/blog/2018/3",count:1}]}});
\ No newline at end of file
diff --git a/files/manifest.2822695135bb29fc86bc.js b/files/manifest.ecfb1b4627b3bfc3847e.js
similarity index 70%
rename from files/manifest.2822695135bb29fc86bc.js
rename to files/manifest.ecfb1b4627b3bfc3847e.js
index bf2dc98..960bb46 100644
--- a/files/manifest.2822695135bb29fc86bc.js
+++ b/files/manifest.ecfb1b4627b3bfc3847e.js
@@ -1 +1 @@
-!function(e){var a=window.webpackJsonp;window.webpackJsonp=function(n,o,c){for(var i,f,s,d=0,p=[];d<n.length;d++)f=n[d],r[f]&&p.push(r[f][0]),r[f]=0;for(i in o)Object.prototype.hasOwnProperty.call(o,i)&&(e[i]=o[i]);for(a&&a(n,o,c);p.length;)p.shift()();if(c)for(d=0;d<c.length;d++)s=t(t.s=c[d]);return s};var n={},r={18:0};function t(a){if(n[a])return n[a].exports;var r=n[a]={i:a,l:!1,exports:{}};return e[a].call(r.exports,r,r.exports,t),r.l=!0,r.exports}t.e=function(e){var a=r[e];if(0===a)return new Promise(function(e){e()});if(a)return a[2];var n=new Promise(function(n,t){a=r[e]=[n,t]});a[2]=n;var o=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.charset="utf-8",c.async=!0,c.timeout=12e4,t.nc&&c.setAttribute("nonce",t.nc),c.src=t.p+""+({0:"pages_specification_process-message",1:"pages_specification_measurement-message",2:"pages_specification_machine-message",3:"pages_blog",4:"pages_article",5:"layouts_sidebar",6:"pages_faq",7:"layouts_default",8:"pages_specification",9:"pages_index",10:"pages_proposal",11:"pages_specification_index",12:"vendor",13:"app"}[e]||e)+"."+{0:"4a591726be19200d1dcf",1:"0d15bcfe330182da8363",2:"9d83bf77d0c0e786c248",3:"d6903346e5cdc54871a0",4:"841e1aa4e71e21120e8c",5:"3d0de0cb93d49bddf643",6:"af7b946e7573917bdb35",7:"2114b4fdc743f1b2e00e",8:"6def4404f10957a24495",9:"7d76ce931d19b81f54ec",10:"05a0b52aa840e2ad9ee2",11:"06dad5cb3f63c35339f3",12:"21b6003b92f8fb004a4d",13:"50a262a5ae4922a8876e",14:"9b1fc45b85a86295077f",15:"6a445f07c93f6b5108e0",16:"11f2dc8ba4d811532f0f",17:"3c5f27ac9691c6987800"}[e]+".js";var i=setTimeout(f,12e4);function f(){c.onerror=c.onload=null,clearTimeout(i);var a=r[e];0!==a&&(a&&a[1](new Error("Loading chunk "+e+" failed.")),r[e]=void 0)}return c.onerror=c.onload=f,o.appendChild(c),n},t.m=e,t.c=n,t.d=function(e,a,n){t.o(e,a)||Object.defineProperty(e,a,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(a,"a",a),a},t.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},t.p="/unide/files/",t.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
+!function(e){var a=window.webpackJsonp;window.webpackJsonp=function(n,o,c){for(var f,i,s,d=0,p=[];d<n.length;d++)i=n[d],r[i]&&p.push(r[i][0]),r[i]=0;for(f in o)Object.prototype.hasOwnProperty.call(o,f)&&(e[f]=o[f]);for(a&&a(n,o,c);p.length;)p.shift()();if(c)for(d=0;d<c.length;d++)s=t(t.s=c[d]);return s};var n={},r={18:0};function t(a){if(n[a])return n[a].exports;var r=n[a]={i:a,l:!1,exports:{}};return e[a].call(r.exports,r,r.exports,t),r.l=!0,r.exports}t.e=function(e){var a=r[e];if(0===a)return new Promise(function(e){e()});if(a)return a[2];var n=new Promise(function(n,t){a=r[e]=[n,t]});a[2]=n;var o=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.charset="utf-8",c.async=!0,c.timeout=12e4,t.nc&&c.setAttribute("nonce",t.nc),c.src=t.p+""+({0:"pages_specification_process-message",1:"pages_specification_measurement-message",2:"pages_specification_machine-message",3:"pages_blog",4:"pages_article",5:"layouts_sidebar",6:"pages_faq",7:"layouts_default",8:"pages_specification",9:"pages_index",10:"pages_proposal",11:"pages_specification_index",12:"vendor",13:"app"}[e]||e)+"."+{0:"4a591726be19200d1dcf",1:"0d15bcfe330182da8363",2:"9d83bf77d0c0e786c248",3:"d6903346e5cdc54871a0",4:"841e1aa4e71e21120e8c",5:"db7fc3ff224972a0bda7",6:"af7b946e7573917bdb35",7:"2114b4fdc743f1b2e00e",8:"6def4404f10957a24495",9:"7d76ce931d19b81f54ec",10:"05a0b52aa840e2ad9ee2",11:"06dad5cb3f63c35339f3",12:"21b6003b92f8fb004a4d",13:"50a262a5ae4922a8876e",14:"cdd965cf514a75d889de",15:"d771450e0496b312779c",16:"11f2dc8ba4d811532f0f",17:"cead57eff5f5ca1f8446"}[e]+".js";var f=setTimeout(i,12e4);function i(){c.onerror=c.onload=null,clearTimeout(f);var a=r[e];0!==a&&(a&&a[1](new Error("Loading chunk "+e+" failed.")),r[e]=void 0)}return c.onerror=c.onload=i,o.appendChild(c),n},t.m=e,t.c=n,t.d=function(e,a,n){t.o(e,a)||Object.defineProperty(e,a,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(a,"a",a),a},t.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},t.p="/unide/files/",t.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
diff --git a/files/posts/2018.json b/files/posts/2018.json
index f3f67cd..caef900 100644
--- a/files/posts/2018.json
+++ b/files/posts/2018.json
@@ -1 +1 @@
-[{"url":"/blog/2018/1/26/New-website","title":"Updated Website","date":"2018-01-26T00:00:00.000Z"},{"url":"/blog/2018/2/11/Transform-PPMP-with-camel","title":"PPMP Use Cases: Simple Transformation with Apache Camel","date":"2018-02-11T00:00:00.000Z"},{"url":"/blog/2018/2/13/grinding-machine-scenario","title":"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed","date":"2018-02-13T00:00:00.000Z"}]
\ No newline at end of file
+[{"url":"/blog/2018/1/26/New-website","title":"Updated Website","date":"2018-01-26T00:00:00.000Z"},{"url":"/blog/2018/2/11/Transform-PPMP-with-camel","title":"PPMP Use Cases: Simple Transformation with Apache Camel","date":"2018-02-11T00:00:00.000Z"},{"url":"/blog/2018/2/13/grinding-machine-scenario","title":"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed","date":"2018-02-13T00:00:00.000Z"},{"url":"/blog/2018/3/26/Release-0.2.0","title":"Unide 0.2.0 released","date":"2018-03-26T10:39:00.000Z"}]
\ No newline at end of file
diff --git a/files/posts/2018/3.json b/files/posts/2018/3.json
new file mode 100644
index 0000000..53ecba9
--- /dev/null
+++ b/files/posts/2018/3.json
@@ -0,0 +1 @@
+[{"url":"/blog/2018/3/26/Release-0.2.0","title":"Unide 0.2.0 released","date":"2018-03-26T10:39:00.000Z"}]
\ No newline at end of file
diff --git a/files/posts/2018/3/26.json b/files/posts/2018/3/26.json
new file mode 100644
index 0000000..53ecba9
--- /dev/null
+++ b/files/posts/2018/3/26.json
@@ -0,0 +1 @@
+[{"url":"/blog/2018/3/26/Release-0.2.0","title":"Unide 0.2.0 released","date":"2018-03-26T10:39:00.000Z"}]
\ No newline at end of file
diff --git a/files/posts/Release-0.2.0.json b/files/posts/Release-0.2.0.json
new file mode 100644
index 0000000..97d396b
--- /dev/null
+++ b/files/posts/Release-0.2.0.json
@@ -0,0 +1 @@
+{"name":"Release-0.2.0","content":"<p>Finally, the second version (0.2.0) of the Eclipse unide project is released! The <a href=\"http://unide.eclipse.org\">REST Server on the Testserver</a> has been updated as well.</p>\n<h1>Quick start</h1>\n<h2>Binsa chrome app</h2>\n<p>Download the binsa chrome app from <a href=\"http://download.eclipse.org/unide/binsa.crx\">download page</a>. Open your chrome browser at <a href=\"chrome://extensions\">chrome://extensions</a> and drag the binsa.crx file onto the page. You should be able to see your new chrome app in <a href=\"chrome://apps\">chrome://apps</a></p>\n<h2>REST Server</h2>\n<p>Download the REST server file from <a href=\"https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-server/0.2.0/ppmp-server-0.2.0.jar\">repo.eclipse.org</a>, create a simple configuration file (e.g. application_conf.json):</p>\n<pre class=\"language-json\"><code class=\"language-json\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">\"http.port\"</span><span class=\"token operator\">:</span> <span class=\"token number\">8090</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"persistence.enable\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">false</span>\n<span class=\"token punctuation\">}</span>\n\n</code></pre>\n<p>and start the server</p>\n<pre class=\"language-bash\"><code class=\"language-bash\">java -jar ppmp-server-0.2.0.jar -conf application_conf.json\n</code></pre>\n<p>Point your browser to <a href=\"http://localhost:8090\">http://localhost:8090</a> and see the servers documentation running on your local server! At this point, PPMP validation (via HTTP POST to <code>/rest/v2/validate</code>) is enabled, but no persistence.</p>\n<p>If you want to send data to the server, a quick way is via <a href=\"https://www.getpostman.com/\">Postman App</a>, which is available as native app or <a href=\"https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en\">Chrome app</a>. Once installed and started, you can easily use the &quot;Import &gt; Import From Link&quot; feature to get the prepared <a href=\"https://raw.githubusercontent.com/eclipse/unide/f4d349bc4a0096d3f99e14cf5f8b9f53a5145fdd/servers/rest/assets/postman/unide.postman_collection.json\">unide.postman_collection.json</a> and the corresponding <a href=\"https://raw.githubusercontent.com/eclipse/unide/f4d349bc4a0096d3f99e14cf5f8b9f53a5145fdd/servers/rest/assets/postman/unide.postman_environment.json\">unide.postman_environment</a>. You should now have Machine/Measurement/Process messages and requests prepared in the Collections tab. In order to send, you could extend the URL with &quot;/validate&quot; and hit &quot;Send&quot; button. If you get the response</p>\n<blockquote>\n<p>Ppmp Message of type 'xy' is valid</p>\n</blockquote>\n<p>the unide REST server works as expected!</p>\n<h1>Persistence</h1>\n<h2>Influx DB</h2>\n<p><a href=\"https://portal.influxdata.com/downloads\">Download</a> the InfluxDB Time-Series Data Storage and unzip or install it on your system. By default, it opens an http port at 8086. In order to make use of it, the configuration file should be modified, e.g. to:</p>\n<pre class=\"language-json\"><code class=\"language-json\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">\"http.port\"</span><span class=\"token operator\">:</span> <span class=\"token number\">8090</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"persistence.enable\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"persistence.system\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"influxDb\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"influxDb.url\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"http://localhost:8086\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"influxDb.user\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"root\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"influxDb.password\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"root\"</span>\n<span class=\"token punctuation\">}</span>\n</code></pre>\n<p>After starting the database and the unide REST server, it should be possible to send POST requests to <code>http://localhost:8090/rest/v2</code>. This path receives all message types. To query the database after, use:<br>\n<a href=\"http://localhost:8086/query?pretty=true&amp;u=root&amp;p=root&amp;db=Measurements&amp;q=SELECT%20*%20FROM%20%22ppmp_measurements%22\">http://localhost:8086/query?pretty=true&amp;u=root&amp;p=root&amp;db=Measurements&amp;q=SELECT * FROM &quot;ppmp_measurements&quot;</a> or the other databases that are documented on the <a href=\"http://localhost:8090/#influxdb_schema_design\">running server instance</a>, respectively.</p>\n<h2>SQL (timescale, h2)</h2>\n<p>Download the appropriate jdbc driver, e.g. <a href=\"http://repo1.maven.org/maven2/com/h2database/h2/1.4.197/h2-1.4.197.jar\">h2-*.jar</a>, modify the configuration file, e.g. for h2:</p>\n<pre class=\"language-json\"><code class=\"language-json\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">\"http.port\"</span><span class=\"token operator\">:</span> <span class=\"token number\">8090</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"persistence.enable\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"persistence.system\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"sql\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"sqlDb.driver\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"org.h2.Driver\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"sqlDb.url\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"jdbc:h2:./test\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"sqlDb.user\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"sa\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"sqlDb.password\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span>\n<span class=\"token punctuation\">}</span>\n</code></pre>\n<p>Start the PPMP Server with the jdbc dependency on the classpath, e.g.:</p>\n<pre class=\"language-bash\"><code class=\"language-bash\">java -cp <span class=\"token string\">\"h2-1.4.197.jar;ppmp-server-0.2.0.jar\"</span> io.vertx.core.Launcher org.eclipse.iot.unide.server.MainVerticle -conf application.conf\n</code></pre>\n<p>Now, all the data send to the REST server is persisted in the file <code>test.mv.db</code>.<br>\nFor concurrent db actions (reading while writing), use the h2 tcp server instead. h2 is not recommended for production use!</p>\n<h1>Background</h1>\n<h2>Download</h2>\n<p>Available artifacts for download:</p>\n<ul>\n<li><a href=\"https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-schema/2.0.0/\">PPMP Schema v2</a></li>\n<li><a href=\"https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-java-binding/0.2.0/\">PPMP java Binding</a></li>\n<li><a href=\"https://pypi.python.org/packages/d5/af/c90911d1da56a1ed0238338ba01068d43b8cd0137e9ca52b0f52a279f73e/unide_python-0.2.0-py2.py3-none-any.whl#md5=ca67bcd536b3a4015f72f5fa53d36543\">PPMP Python Binding</a></li>\n<li><a href=\"https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-server/0.2.0/\">PPMP Server</a></li>\n<li><a href=\"http://download.eclipse.org/unide/binsa.crx\">binsa client chrome app</a></li>\n</ul>\n<p>Source code:</p>\n<ul>\n<li><a href=\"https://github.com/eclipse/unide/releases/tag/v0.2.0\">unide</a></li>\n<li><a href=\"https://github.com/eclipse/unide.java/releases/tag/v0.2.0\">java binding</a></li>\n<li><a href=\"https://github.com/eclipse/unide.python/releases/tag/v0.2.0\">python binding</a></li>\n</ul>\n<h2>Release notes</h2>\n<h3>REST Server improvements (refactoring &amp; persistence)</h3>\n<ul>\n<li>Added persistence to timeseries/postgres db</li>\n<li>Outfactored schema files</li>\n<li>Adjusted maven file</li>\n<li>Added unit tests</li>\n<li>Added documentation &amp; java docs</li>\n<li>Adjusted error handling</li>\n<li>Removed unused code</li>\n<li>Added postman collections</li>\n<li>Added grafana configuration file</li>\n</ul>\n<h3>New HTML5 simulation client</h3>\n<ul>\n<li>Progressive Webapp runs as website (see <a href=\"https://unide.eclipse.org/binsa\">https://unide.eclipse.org/binsa</a>), browser app, native client (via <a href=\"https://nwjs.io/\">nw.js</a>) or app (via <a href=\"https://cordova.apache.org/\">Apache cordova</a>)</li>\n</ul>\n<h3>PPMP JSON Schema files</h3>\n<ul>\n<li>Introduced separate bundle for schemas</li>\n<li>general fixes\n<ul>\n<li>make schema draft-06 compliant</li>\n<li>added 'id' and 'descriptions' where applicable</li>\n<li>added 'type' and 'default' for enums</li>\n<li>added 'required' fields where necessary</li>\n<li>made 'additionalProperties': true explicit for 'metaData'</li>\n<li>sorted the properties for improved readability</li>\n</ul>\n</li>\n<li>message_schema fixes\n<ul>\n<li>added minItems: 1 to messages</li>\n</ul>\n</li>\n<li>measurement_schema fixes\n<ul>\n<li>completed 'limits' specification</li>\n<li>added 'patternProperties' and minProperties detail to 'series'</li>\n<li>added minItems: 1 to measurements</li>\n</ul>\n</li>\n<li>process_schema fixes\n<ul>\n<li>made 'id' and 'name' of a 'program' mandatory</li>\n<li>fixed 'shutoffValues', having properties not items</li>\n<li>fixed 'limits', having properties not items and number values rather than object values as limits</li>\n<li>fixed 'specialValues' to be an array of specialValue items with 'name' for indicating the nature, rather than one single object with its keys indicating the nature. Offering optional '$_time' tag to be consistent with measurements.</li>\n<li>completed 'series' definition</li>\n</ul>\n</li>\n</ul>\n<h3>Website</h3>\n<ul>\n<li>Autogenerating PPMP specification from JSON schemas to avoid discrepancies</li>\n<li>Generating UML schemas with plantuml</li>\n<li>Using similar HTML5 stack as simulation client for SPA website</li>\n</ul>\n<h3>Other</h3>\n<ul>\n<li>java and new python bindings in separate github repositories</li>\n</ul>\n","url":"/blog/2018/3/26/Release-0.2.0","title":"Unide 0.2.0 released","date":"2018-03-26T10:39:00.000Z","tags":["releases"],"prev":{"url":"/blog/2018/2/13/grinding-machine-scenario","title":"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed"}}
\ No newline at end of file
diff --git a/files/posts/Transform-PPMP-with-camel.json b/files/posts/Transform-PPMP-with-camel.json
index f034831..e6170a1 100644
--- a/files/posts/Transform-PPMP-with-camel.json
+++ b/files/posts/Transform-PPMP-with-camel.json
@@ -1 +1 @@
-{"name":"Transform-PPMP-with-camel","content":"<p>The Production Performance Management Protocol (PPMP) is a simple structure to send out machine data. Unide, as its hosting project, is supposed to provide exemplary implementations.</p>\n<p>We have already published <a href=\"https://github.com/eclipse/unide/tree/master/servers/rest\">a REST server</a>, <a href=\"https://github.com/eclipse/unide.java\">java-</a> and <a href=\"https://github.com/eclipse/unide.python\">python-</a> bindings and an <a href=\"https://github.com/eclipse/unide/tree/master/clients/binsa\">html5-client</a>. But how are these implementations used in real life?</p>\n<h1>The Challenge</h1>\n<div class=\"card figure\">\n\t<div class=\"card-image\">\n\t\t<figure class=\"image\">\n\t\t\t<img alt=\"Welding robots\" title=\"BMW plant, spot welding\" src=\"/unide/images/blog/Transform-PPMP-with-camel-welding.jpg\"></img>\n\t\t</figure>\n\t</div>\n\t<div class=\"card-content\">\n\t\tBMW plant in Leipzig, Germany: Spot welding <a href=\"https://creativecommons.org/licenses/by-sa/2.0/de/deed.en\">(CC BY-SA 2.0 DE)</a>\n\t</div>\n</div>\n<p>In the automotive industry, <a href=\"https://en.wikipedia.org/wiki/Spot_welding\">welding spots</a> are crucial for the quality of a car and the security of the passenger. In modern production lines, hundreds of welding spots have to be precisely set in a single shift. In order to reduce product rework, scrap, destructible tests and machine downtime, the quality should be monitored consistently. That's what special welding controller in machines do. Unfortunately, this data is often only used locally, for a short period of time and in proprietary formats. Just enough to determine the immediate process outcome. In that case, further opportunities of analysing the information are not taken. With the continuous increase in complexity, price and time pressure, the demand for further processing and optimization grows. The data could be used to prevent or even predict maintenance or just store the data in long time archives in case of legal disputes.</p>\n<p>One prerequisite for such connectivity is the hardware and its connectivity. Older generations of welding controllers can only be accessed with proprietary stacks (like the <a href=\"https://www.boschrexroth.com/en/xc/products/product-groups/welding-technology/controllers-with-power-section/mf-system-psi6000/index\">PSI 6000</a>) whereas newer generations (like the <a href=\"https://www.boschrexroth.com/en/xc/company/press/index2-29696\">PRC 7000</a>) are much more flexible in terms of networking and communication. In general, there are two aspects that make up the communication: the transport protocol and the structure of the payload. This is similar to our daily life: if you want to chat with your friends, you need to use the same messenger or communication technology (phone, email) and you need speak the same language (English, German etc.).</p>\n<p>In the following sections, let's assume we need to transform the transport protocol as well as the payload. The data is generated by a welding controller and should be passed to <a href=\"https://unide.eclipse.org\">the unide REST server</a> for persisting it in a dedicated timeseries database.</p>\n<h1>The Approach</h1>\n<p>We want to find a way to receive the data, transform it into PPMP and store it into a database in our <a href=\"https://unide.eclipse.org\">REST Server</a>.</p>\n<p>First, we need to understand which interfaces the controller has, which communication protocol is used, and how the payload would be interpreted. In the case of the PSI 6000, it was configured to publish the quality data to a <a href=\"https://de.wikipedia.org/wiki/MQTT\">mqtt</a> message broker (here: <a href=\"https://mosquitto.org/\">Eclipse mosquitto</a>). We don't have an extensive documentation of the payload, but we can look at samples of it (some Curve data shortened at the end):</p>\n<pre class=\"language-json\"><code class=\"language-json\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">\"Name\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"WeldLog/UIR Testrack 24/\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"WeldTimer\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"UIR Testrack 24\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"TimeStamp\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2018-01-17T10:41:00.0008436+01:00\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"OutputFormat\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"JSON\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"Message\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"WeldLog\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token property\">\"protRecord_ID\"</span><span class=\"token operator\">:</span> <span class=\"token number\">734827</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"dateTime\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2018-01-15T16:52:32.09\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"timerName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"UIR Testrack 24\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"progNo\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"spotName\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"wear\"</span><span class=\"token operator\">:</span> <span class=\"token number\">8312480</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"wearPerCent\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"monitorState\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"regulationState\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"measureState\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"powerState\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"sequenceState\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"sequenceStateAdd\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"sequenceRepeat\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"monitorMode\"</span><span class=\"token operator\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"iDemandStd\"</span><span class=\"token operator\">:</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"ilsts\"</span><span class=\"token operator\">:</span> <span class=\"token number\">13.14</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"regulationStd\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"iDemand1\"</span><span class=\"token operator\">:</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"iActual1\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"regulation1\"</span><span class=\"token operator\">:</span> <span class=\"token number\">4</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"iDemand2\"</span><span class=\"token operator\">:</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"iActual2\"</span><span class=\"token operator\">:</span> <span class=\"token number\">13.16</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"regulation2\"</span><span class=\"token operator\">:</span> <span class=\"token number\">4</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"iDemand3\"</span><span class=\"token operator\">:</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"iActual3\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"regulation3\"</span><span class=\"token operator\">:</span> <span class=\"token number\">4</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"phaStd\"</span><span class=\"token operator\">:</span> <span class=\"token number\">24.96</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"pha1\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"pha2\"</span><span class=\"token operator\">:</span> <span class=\"token number\">24.64</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"pha3\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"t_iDemandStd\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"tActualStd\"</span><span class=\"token operator\">:</span> <span class=\"token number\">878</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"partIdentString\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"tipDressCounter\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"electrodeNo\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"sgForceSetPoint\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"sgSheetThicknessSetPoint\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"sgSagGpSetPoint\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"sgSpotWithSg\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"sgMotorCurrent\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"sgMotorTemp\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"sgForce\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"sgSheetThickness\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"sgSagGp\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"sgSagGc\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"regUsrUspJunction\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"regUsrUspMax\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"regSpotDiaActual\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"regSpotDiaMinDemand\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"regSplashTime\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"nuggetDiameter\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"usp\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"normingTime\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"regulationStartTime\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"returnToConstantCurrent\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"declineUsp\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"offsetUsp\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"currentFactor\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"triggerTime\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"xqrMeasuringActive\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"xqrRegulationActive\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"xqrMonitoringActive\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"xqrWeldTimeProlongationActive\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"voltageActualValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0.03</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"voltageRefValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0.03</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"currentActualValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">13.17</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"currentReferenceValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">13.95</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldTimeActualValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">876</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldTimeRefValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">760</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"energyActualValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">395.1261</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"energyRefValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">342</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"powerActualValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">395.133</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"powerRefValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">449.35</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"resistanceActualValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"resistanceRefValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"pulseWidthActualValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">25.02</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"pulseWidthRefValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">26.19</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"stabilisationFactorActValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">55</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"stabilisationFactorRefValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"thresholdStabilisationFactor\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"wldEffectStabilisationFactor\"</span><span class=\"token operator\">:</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"uipActualValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">126</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"uipRefValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"uirExpulsionTime\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"uirMeasuringActive\"</span><span class=\"token operator\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"uirRegulationActive\"</span><span class=\"token operator\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"uirMonitoringActive\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"uirWeldTimeProlongationActive\"</span><span class=\"token operator\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"uirQStoppRefCntValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">9</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"uirQStoppActCntValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"uirUipUpperTol\"</span><span class=\"token operator\">:</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"uirUipLowerTol\"</span><span class=\"token operator\">:</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"uirUipCondTol\"</span><span class=\"token operator\">:</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"uirPsfLowerTol\"</span><span class=\"token operator\">:</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"uirPsfCondTol\"</span><span class=\"token operator\">:</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldSpotCustDataP16_1\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldSpotCustDataP16_2\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldSpotCustDataP16_3\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldSpotCustDataP16_4\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldSpotCustDataP16_5\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldSpotCustDataP32_6\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldSpotCustDataP16_7\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldSpotCustDataP16_8\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldSpotCustDataP16_9\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldSpotCustDataP16_10\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldSpotCustDataP16_11\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldSpotCustDataP32_12\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldSpotCustDataP16_13\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldSpotCustDataP16_14\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldSpotCustDataP16_15\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldSpotCustDataP16_16\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldSpotCustDataP16_17\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldSpotCustDataP32_18\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"uipMonCondUpperTol\"</span><span class=\"token operator\">:</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"fqfActualValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"fqfRefValue\"</span><span class=\"token operator\">:</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"fqfMonUpperTol\"</span><span class=\"token operator\">:</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"fqfMonLowerTol\"</span><span class=\"token operator\">:</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"fqfMonCondUpperTol\"</span><span class=\"token operator\">:</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"fqfMonCondLowerTol\"</span><span class=\"token operator\">:</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"fqfMeasuringActive\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"xqrModeOff\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"reweldActive\"</span><span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"weldspotRefIdent\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"UIR_PART\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"sg_Torque_Gp\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"sg_Force_Corr\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"sg_Weldspot_Geo_Wear\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"sg_Wear_Length\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"sg_Beam_UpArching\"</span><span class=\"token operator\">:</span> <span class=\"token null\">null</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"CurrentCurve\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n        <span class=\"token number\">11621</span><span class=\"token punctuation\">,</span>\n        <span class=\"token number\">15434</span><span class=\"token punctuation\">,</span>\n        ...\n      <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"VoltageCurve\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n        <span class=\"token number\">39</span><span class=\"token punctuation\">,</span>\n        <span class=\"token number\">29</span><span class=\"token punctuation\">,</span>\n        ...\n      <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n      <span class=\"token property\">\"ForceCurve\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n        <span class=\"token number\">49</span><span class=\"token punctuation\">,</span>\n        <span class=\"token number\">49</span><span class=\"token punctuation\">,</span>\n        ...\n      <span class=\"token punctuation\">]</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n</code></pre>\n<p>That's already very detailed, but it's unclear which device / welding spot the data comes from and what the timing of the curves was. Let's get some more structure in with PPMP!</p>\n<p>In PPMP, we have the option to differentiate between discrete manufacturing data (MES - part produced) by using the <a href=\"/unide/specification/measurement-message\">measurement-message</a> and detailed process data by using the <a href=\"https://www.eclipse.org/unide/specification/process-message\">process-message</a>. In the welding payload, that's all combined in one message. So we also want to split this payload into two.</p>\n<h2>Introducing Apache Camel</h2>\n<div class=\"card figure is-pulled-left\">\n\t<div class=\"card-image\">\n\t\t<figure class=\"image\">\n\t\t\t<img alt=\"Apache Camel\" title=\"Apache Camel\" src=\"/unide/images/blog/Transform-PPMP-with-camel-camel.png\"></img>\n\t\t</figure>\n\t</div>\n\t<div class=\"card-content\">\n\t\tApache Camel, <a href=\"https://www.apache.org/licenses/LICENSE-2.0\">(Apache&nbsp;License&nbsp;2.0)</a>\n\t</div>\n</div>\n<p><a href=\"https://en.wikipedia.org/wiki/Apache_Camel\">Apache Camel</a> is a java-based Open Source framework, that can transform and route data. It supports most of the <a href=\"https://en.wikipedia.org/wiki/Enterprise_Integration_Patterns\">Enterprise Integration Patterns</a> and hundreds(!) of <a href=\"http://camel.apache.org/components.html\">connectors / components</a>. Think of it as an extensive transformation and workflow automation engine. In fact, it's so powerful and versatile, that it unfortunately doesn't come with a visual user interface or a plug-and-play installer. Luckily, for everyone who doesn't happen to be a java expert, there's also an xml configuration (via <a href=\"https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/xsd-configuration.html\">spring xml</a>). And that's mostly all we need!</p>\n<h2>Transforming the Communication Protocol</h2>\n<p>We will use Spring XML to configure Apache Camel. The workflow in Camel are called <code>&lt;routes&gt;</code>. So let's create a route that transforms our mqtt to REST protocol:</p>\n<pre class=\"language-xml\"><code class=\"language-xml\"><span class=\"token prolog\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>beans</span> <span class=\"token attr-name\">xmlns</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>http://www.springframework.org/schema/beans<span class=\"token punctuation\">\"</span></span>\n\t<span class=\"token attr-name\"><span class=\"token namespace\">xmlns:</span>xsi</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>http://www.w3.org/2001/XMLSchema-instance<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\"><span class=\"token namespace\">xmlns:</span>camel</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>http://camel.apache.org/schema/spring<span class=\"token punctuation\">\"</span></span>\n\t<span class=\"token attr-name\"><span class=\"token namespace\">xmlns:</span>util</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>http://www.springframework.org/schema/util<span class=\"token punctuation\">\"</span></span>\n\t<span class=\"token attr-name\"><span class=\"token namespace\">xsi:</span>schemaLocation</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>http://www.springframework.org/schema/util\n\thttp://www.springframework.org/schema/util/spring-util.xsd \n\thttp://www.springframework.org/schema/beans\n    http://www.springframework.org/schema/beans/spring-beans.xsd\n    http://camel.apache.org/schema/spring\n    http://camel.apache.org/schema/spring/camel-spring.xsd<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n\t<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>camelContext</span> <span class=\"token attr-name\">xmlns</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>http://camel.apache.org/schema/spring<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n\t\t<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>route</span><span class=\"token punctuation\">></span></span>\n\t\t\t<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>from</span>\n\t\t\t\t<span class=\"token attr-name\">uri</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>mqtt://psi6000?host=tcp://192.168.123.135:1883<span class=\"token entity\" title=\"&amp;\">&amp;amp;</span>subscribeTopicName=PSI6000//PROCESS/PPMP/PROCESS<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n\t\t\t<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>to</span>\n\t\t\t\t<span class=\"token attr-name\">uri</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>jetty:http://unide.eclipse.org:8080/rest/v2/measurement?bridgeEndpoint=true<span class=\"token entity\" title=\"&amp;\">&amp;amp;</span>throwExceptionOnFailure=true<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">/></span></span>\n\t\t<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>route</span><span class=\"token punctuation\">></span></span>\n\t<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>camelContext</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>beans</span><span class=\"token punctuation\">></span></span>\n</code></pre>\n<p>That's it! A <code>&lt;route&gt;</code> that reads<code>&lt;from&gt;</code> mqtt and forwards <code>&lt;to&gt;</code> http. Not so difficult, is it? We could use many of the other <a href=\"http://camel.apache.org/components.html\">connectors / components</a> in the example above as well to transform from/to different protocols.</p>\n<p>But wait! The welding payload above was not PPMP. So we also need to normalize the payload.</p>\n<h2>Normalizing the Payload</h2>\n<p>Now that we can easily convert protocols, let's address the structure of the payload. Overall, we want to have a workflow that looks as described in the diagram below:</p>\n<div class=\"card figure\">\n\t<div class=\"card-image\">\n\t\t<figure class=\"image\">\n\t\t\t<img alt=\"data workflow\" title=\"data workflow\" src=\"/unide/images/blog/Transform-PPMP-with-camel-1.svg\"></img>\n\t\t</figure>\n\t</div>\n\t<div class=\"card-content\">\n\t\tBMW plant in Leipzig, Germany: Spot welding <a href=\"https://creativecommons.org/licenses/by-sa/2.0/de/deed.en\">(CC BY-SA 2.0 DE)</a>\n\t</div>\n</div>\n<p>The extra steps here are:</p>\n<ol>\n<li>transform the PSI 6000 JSON String payload to a java object</li>\n<li>transform the PSI 6000 java object to two PPMP-java objects (<a href=\"/unide/specification/measurement-message\">measurement-message</a> and <a href=\"https://www.eclipse.org/unide/specification/process-message\">process-message</a>)</li>\n<li>split up the two PPMP objects</li>\n<li>route the objects individually</li>\n<li>transform each PPMP object back to a String</li>\n</ol>\n<h3>Create the PSI 6000 Java Object</h3>\n<p>Luckily, there are helpers for transforming json (or xml) to plain old java objects (POJOs). We are using <a href=\"http://www.jsonschema2pojo.org/\">jsonschema2pojo</a> to convert the above json sample to POJOs with Jackson 2.x annotation. I name the resulting data type class <code>PSI6000DataType</code> and organize it in the package <code>org.eclipse.iot.unide.integrators</code>. Based on the given testdata, jsonschema2pojo cannot fully deduct all attribute types correctly. In order to allow floating point values, we would rename all <code>Integer</code> and <code>Object</code> types to <code>Number</code> in the WeldLog.java file. Also in the same file, we would change the type of the <code>dateTime</code> field from String to <code>LocalDateTime</code> to be more accurate:</p>\n<pre class=\"language-java\"><code class=\"language-java\"><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span>\n<span class=\"token annotation punctuation\">@JsonProperty</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"dateTime\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token annotation punctuation\">@JsonSerialize</span><span class=\"token punctuation\">(</span>using <span class=\"token operator\">=</span> LocalDateTimeSerializer<span class=\"token punctuation\">.</span><span class=\"token keyword\">class</span><span class=\"token punctuation\">)</span>\n<span class=\"token annotation punctuation\">@JsonDeserialize</span><span class=\"token punctuation\">(</span>using <span class=\"token operator\">=</span> LocalDateTimeDeserializer<span class=\"token punctuation\">.</span><span class=\"token keyword\">class</span><span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">private</span> LocalDateTime dateTime<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span>\n</code></pre>\n<p>For that, we also need to include the respective imports:</p>\n<pre class=\"language-java\"><code class=\"language-java\"><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span>\n<span class=\"token keyword\">import</span> com<span class=\"token punctuation\">.</span>fasterxml<span class=\"token punctuation\">.</span>jackson<span class=\"token punctuation\">.</span>databind<span class=\"token punctuation\">.</span>annotation<span class=\"token punctuation\">.</span>JsonDeserialize<span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">import</span> com<span class=\"token punctuation\">.</span>fasterxml<span class=\"token punctuation\">.</span>jackson<span class=\"token punctuation\">.</span>databind<span class=\"token punctuation\">.</span>annotation<span class=\"token punctuation\">.</span>JsonSerialize<span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">import</span> com<span class=\"token punctuation\">.</span>fasterxml<span class=\"token punctuation\">.</span>jackson<span class=\"token punctuation\">.</span>datatype<span class=\"token punctuation\">.</span>jsr310<span class=\"token punctuation\">.</span>deser<span class=\"token punctuation\">.</span>LocalDateTimeDeserializer<span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">import</span> com<span class=\"token punctuation\">.</span>fasterxml<span class=\"token punctuation\">.</span>jackson<span class=\"token punctuation\">.</span>datatype<span class=\"token punctuation\">.</span>jsr310<span class=\"token punctuation\">.</span>ser<span class=\"token punctuation\">.</span>LocalDateTimeSerializer<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span>\n</code></pre>\n<p>and adjust the getter (<code>getDateTime()</code>), setter (<code>setDateTime()</code>) and the type in the constructor (<code>public WeldLog(...)</code>) accordingly.</p>\n<p>Camel will be able to transform (&quot;<em>unmarshal</em>&quot;) this datatype from a string to a POJO after adding the definition to the above Spring XML:</p>\n<pre class=\"language-xml\"><code class=\"language-xml\">...\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>camelContext</span> <span class=\"token attr-name\">xmlns</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>http://camel.apache.org/schema/spring<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n\t<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>dataFormats</span><span class=\"token punctuation\">></span></span>\n\t\t<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>json</span> <span class=\"token attr-name\">id</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>psi6000<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">library</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>Jackson<span class=\"token punctuation\">\"</span></span>\n\t\t\t<span class=\"token attr-name\">unmarshalTypeName</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>org.eclipse.iot.unide.integrators.PSI6000DataType<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n\t<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>dataFormats</span><span class=\"token punctuation\">></span></span>\n\t...\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>camelContext</span><span class=\"token punctuation\">></span></span>\n</code></pre>\n<h3>Use unide.java binding for PPMP Java Objects</h3>\n<p>For eventually transforming the PPMP objects back to String (&quot;<em>marshal</em>&quot;), we can make use of the <a href=\"https://github.com/eclipse/unide.java\">unide PPMP java binding</a>. Just adjust the dataFormats section of the Spring XML so that it reads:</p>\n<pre class=\"language-xml\"><code class=\"language-xml\">...\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>camelContext</span> <span class=\"token attr-name\">xmlns</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>http://camel.apache.org/schema/spring<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n\t<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>d