You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by st...@apache.org on 2019/03/14 09:56:17 UTC

[openwebbeans-meecrowave-examples] 02/28: added vaadin examples, extended pom.xml files..

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

struberg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openwebbeans-meecrowave-examples.git

commit 207eaa3daf78af7ea4d7651ab88ce9424ba74cb6
Author: Sven Ruppert <sv...@gmail.com>
AuthorDate: Fri Jun 29 12:38:30 2018 +0200

    added vaadin examples, extended pom.xml files..
---
 pom.xml                                            | 202 ++++++++++++++-------
 rest-trivial/pom.xml                               |   4 +-
 rest/pom.xml                                       |   4 +-
 servlet-trivial/pom.xml                            |  34 ++++
 .../com/superbiz/servlet/HelloWorldServlet.java    |  50 +++++
 .../com/superbiz/servlet/UpperCaseService.java     |  29 +++
 .../src/main/resources/WEB-INF/beans.xml           |  27 +++
 .../superbiz/servlet/HelloWorldServletTest.java    |  53 ++++++
 .../com/superbiz/servlet/UpperCaseServiceTest.java |  32 ++++
 servlet-vaadin-v08/pom.xml                         |  64 +++++++
 .../com/superbiz/servlet/vaadin/HelloVaadin.java   |  61 +++++++
 .../src/main/resources/WEB-INF/beans.xml           |  27 +++
 servlet-vaadin-v10/pom.xml                         | 118 ++++++++++++
 .../superbiz/servlet/vaadin/HelloVaadinV10.java    |  41 +++++
 14 files changed, 678 insertions(+), 68 deletions(-)

diff --git a/pom.xml b/pom.xml
index 152d160..abe342c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,68 +19,142 @@
 -->
 <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
          xsi:schemaLocation=" http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache</groupId>
-        <artifactId>apache</artifactId>
-        <version>18</version>
-    </parent>
-
-    <groupId>org.apache.meecrowave</groupId>
-    <artifactId>meecrowave-examples</artifactId>
-    <packaging>pom</packaging>
-    <name>Apache Meecrowave Examples</name>
-    <description>A project showing some of the Apache Meecrowave features.</description>
-
-    <modules>
-        <module>rest-trivial</module>
-        <module>rest</module>
-    </modules>
-
-    <properties>
-        <meecrowave.version>1.2.2-SNAPSHOT</meecrowave.version>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.meecrowave</groupId>
-            <artifactId>meecrowave-core</artifactId>
-            <version>${meecrowave.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>4.12</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.meecrowave</groupId>
-            <artifactId>meecrowave-junit</artifactId>
-            <version>${meecrowave.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.meecrowave</groupId>
-                <artifactId>meecrowave-maven-plugin</artifactId>
-                <version>${meecrowave.version}</version>
-            </plugin>
-        </plugins>
-    </build>
-
-    <distributionManagement>
-        <repository>
-            <id>localhost</id>
-            <url>file://${basedir}/target/repo/</url>
-        </repository>
-        <snapshotRepository>
-            <id>localhost</id>
-            <url>file://${basedir}/target/snapshot-repo/</url>
-        </snapshotRepository>
-    </distributionManagement>
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache</groupId>
+    <artifactId>apache</artifactId>
+    <version>18</version>
+  </parent>
+
+  <groupId>org.apache.meecrowave</groupId>
+  <artifactId>meecrowave-examples</artifactId>
+  <version>1.2.2-SNAPSHOT</version>
+
+  <packaging>pom</packaging>
+  <name>Apache Meecrowave Examples</name>
+  <description>A project showing some of the Apache Meecrowave features.</description>
+
+  <modules>
+    <module>rest-trivial</module>
+    <module>rest</module>
+    <module>servlet-trivial</module>
+    <module>servlet-vaadin-v08</module>
+    <module>servlet-vaadin-v10</module>
+  </modules>
+
+  <properties>
+    <meecrowave.version>1.2.2-SNAPSHOT</meecrowave.version>
+
+    <maven.compiler.target>1.8</maven.compiler.target>
+    <maven.compiler.source>1.8</maven.compiler.source>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+
+    <slf4j.version>1.7.25</slf4j.version>
+    <log4j-api.version>2.11.0</log4j-api.version>
+
+    <jacoco.version>0.8.1</jacoco.version>
+    <pitest.version>1.4.0</pitest.version>
+    <pitest-junit5-plugin.version>0.5</pitest-junit5-plugin.version>
+
+    <junit.version>4.12</junit.version>
+    <junit.jupiter.version>5.1.1</junit.jupiter.version>
+    <junit.platform.version>1.1.1</junit.platform.version>
+
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.meecrowave</groupId>
+      <artifactId>meecrowave-core</artifactId>
+      <version>${meecrowave.version}</version>
+    </dependency>
+
+    <!--jUnit5-->
+
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-api</artifactId>
+      <version>${junit.jupiter.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-params</artifactId>
+      <version>${junit.jupiter.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.junit.platform</groupId>
+      <artifactId>junit-platform-launcher</artifactId>
+      <version>${junit.platform.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <!-- Only required to run tests in an IDE that bundles an older version -->
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-engine</artifactId>
+      <version>${junit.jupiter.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <!-- Only required to run tests in an IDE that bundles an older version -->
+    <dependency>
+      <groupId>org.junit.vintage</groupId>
+      <artifactId>junit-vintage-engine</artifactId>
+      <version>${junit.jupiter.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <!--Meecrowave-->
+    <dependency>
+      <groupId>org.apache.meecrowave</groupId>
+      <artifactId>meecrowave-junit</artifactId>
+      <version>${meecrowave.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <!--Logger-->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>1.7.25</version>
+      <!--<scope>test</scope>-->
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>1.7.25</version>
+      <!--<scope>test</scope>-->
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-web</artifactId>
+      <version>2.11.0</version>
+    </dependency>
+
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.meecrowave</groupId>
+        <artifactId>meecrowave-maven-plugin</artifactId>
+        <version>${meecrowave.version}</version>
+      </plugin>
+    </plugins>
+  </build>
+
+  <distributionManagement>
+    <repository>
+      <id>localhost</id>
+      <url>file://${basedir}/target/repo/</url>
+    </repository>
+    <snapshotRepository>
+      <id>localhost</id>
+      <url>file://${basedir}/target/snapshot-repo/</url>
+    </snapshotRepository>
+  </distributionManagement>
 </project>
diff --git a/rest-trivial/pom.xml b/rest-trivial/pom.xml
index addad78..296d21f 100644
--- a/rest-trivial/pom.xml
+++ b/rest-trivial/pom.xml
@@ -3,13 +3,13 @@
          xmlns="http://maven.apache.org/POM/4.0.0"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <artifactId>samples</artifactId>
         <groupId>org.apache.meecrowave</groupId>
+        <artifactId>meecrowave-examples</artifactId>
         <version>1.2.2-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>samples-rest-trivial</artifactId>
-    <name>Meecrowave Samples - REST (trivial)</name>
+    <name>REST (trivial)</name>
 
 </project>
\ No newline at end of file
diff --git a/rest/pom.xml b/rest/pom.xml
index 0d27b79..6bf61b2 100644
--- a/rest/pom.xml
+++ b/rest/pom.xml
@@ -3,13 +3,13 @@
          xmlns="http://maven.apache.org/POM/4.0.0"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <artifactId>samples</artifactId>
         <groupId>org.apache.meecrowave</groupId>
+        <artifactId>meecrowave-examples</artifactId>
         <version>1.2.2-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>samples-rest</artifactId>
-    <name>Meecrowave Samples - REST</name>
+    <name>REST</name>
 
 </project>
\ No newline at end of file
diff --git a/servlet-trivial/pom.xml b/servlet-trivial/pom.xml
new file mode 100644
index 0000000..d66302a
--- /dev/null
+++ b/servlet-trivial/pom.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <parent>
+    <groupId>org.apache.meecrowave</groupId>
+    <artifactId>meecrowave-examples</artifactId>
+    <version>1.2.2-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>samples-servlet-trivial</artifactId>
+  <name>Servlet (trivial)</name>
+
+
+</project>
\ No newline at end of file
diff --git a/servlet-trivial/src/main/java/com/superbiz/servlet/HelloWorldServlet.java b/servlet-trivial/src/main/java/com/superbiz/servlet/HelloWorldServlet.java
new file mode 100644
index 0000000..aeb902b
--- /dev/null
+++ b/servlet-trivial/src/main/java/com/superbiz/servlet/HelloWorldServlet.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.superbiz.servlet;
+
+import javax.inject.Inject;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+
+/**
+ * request with curl would look like
+ *
+ * http://localhost:8080/?value=HalloNase
+ *
+ */
+@WebServlet("/*")
+public class HelloWorldServlet extends HttpServlet {
+
+
+  @Inject private UpperCaseService service;
+
+  public void doGet(HttpServletRequest request,
+                    HttpServletResponse response)
+      throws IOException {
+    response.setContentType("text/plain; charset=utf-8");
+
+    String value = request.getParameter("value");
+
+    response.getWriter().println(service.upperCase(value));
+  }
+}
diff --git a/servlet-trivial/src/main/java/com/superbiz/servlet/UpperCaseService.java b/servlet-trivial/src/main/java/com/superbiz/servlet/UpperCaseService.java
new file mode 100644
index 0000000..dae7e20
--- /dev/null
+++ b/servlet-trivial/src/main/java/com/superbiz/servlet/UpperCaseService.java
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.superbiz.servlet;
+
+import javax.enterprise.context.Dependent;
+
+@Dependent
+public class UpperCaseService{
+
+  public String upperCase(String txt) {
+    return txt.toUpperCase();
+  }
+}
diff --git a/servlet-trivial/src/main/resources/WEB-INF/beans.xml b/servlet-trivial/src/main/resources/WEB-INF/beans.xml
new file mode 100644
index 0000000..42a24b5
--- /dev/null
+++ b/servlet-trivial/src/main/resources/WEB-INF/beans.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<beans
+    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
+                      http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
+    bean-discovery-mode="all">
+
+</beans>
\ No newline at end of file
diff --git a/servlet-trivial/src/test/java/junit/com/superbiz/servlet/HelloWorldServletTest.java b/servlet-trivial/src/test/java/junit/com/superbiz/servlet/HelloWorldServletTest.java
new file mode 100644
index 0000000..2bfce55
--- /dev/null
+++ b/servlet-trivial/src/test/java/junit/com/superbiz/servlet/HelloWorldServletTest.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package junit.com.superbiz.servlet;
+
+import org.apache.meecrowave.junit.MeecrowaveRule;
+import org.junit.Assert;
+import org.junit.Rule;
+import org.junit.Test;
+
+import javax.ws.rs.client.Client;
+import javax.ws.rs.client.ClientBuilder;
+
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON_TYPE;
+import static org.junit.Assert.assertEquals;
+
+
+public class HelloWorldServletTest {
+
+  @Rule // started once for the class, @Rule would be per method
+  public final MeecrowaveRule rule = new MeecrowaveRule();
+
+  @Test
+  public void test001() {
+    final Client client = ClientBuilder.newClient();
+    try {
+      assertEquals("HALLONASE", client.target("http://127.0.0.1:" + rule.getConfiguration().getHttpPort())
+                                      .queryParam("value", "HalloNase")
+                                      .request(APPLICATION_JSON_TYPE)
+                                      .get(String.class)
+                                      .trim());
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    } finally {
+      client.close();
+    }
+  }
+}
diff --git a/servlet-trivial/src/test/java/junit/com/superbiz/servlet/UpperCaseServiceTest.java b/servlet-trivial/src/test/java/junit/com/superbiz/servlet/UpperCaseServiceTest.java
new file mode 100644
index 0000000..aa56d7c
--- /dev/null
+++ b/servlet-trivial/src/test/java/junit/com/superbiz/servlet/UpperCaseServiceTest.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package junit.com.superbiz.servlet;
+
+
+import com.superbiz.servlet.UpperCaseService;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class UpperCaseServiceTest {
+
+  @Test
+  public void test001() {
+    Assert.assertEquals("HALLO", new UpperCaseService().upperCase("hallo"));
+  }
+}
diff --git a/servlet-vaadin-v08/pom.xml b/servlet-vaadin-v08/pom.xml
new file mode 100644
index 0000000..1aefb84
--- /dev/null
+++ b/servlet-vaadin-v08/pom.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <parent>
+    <groupId>org.apache.meecrowave</groupId>
+    <artifactId>meecrowave-examples</artifactId>
+    <version>1.2.2-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>samples-servlet-vaadin-v08</artifactId>
+  <name>Servlet (Vaadin - V08)</name>
+
+  <dependencyManagement>
+    <dependencies>
+      <!--Vaadin -->
+      <dependency>
+        <groupId>com.vaadin</groupId>
+        <artifactId>vaadin-bom</artifactId>
+        <version>8.4.2</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+  <dependencies>
+
+    <!--Vaadin -->
+    <dependency>
+      <groupId>com.vaadin</groupId>
+      <artifactId>vaadin-server</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.vaadin</groupId>
+      <artifactId>vaadin-themes</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.vaadin</groupId>
+      <artifactId>vaadin-client-compiled</artifactId>
+    </dependency>
+
+  </dependencies>
+
+</project>
\ No newline at end of file
diff --git a/servlet-vaadin-v08/src/main/java/com/superbiz/servlet/vaadin/HelloVaadin.java b/servlet-vaadin-v08/src/main/java/com/superbiz/servlet/vaadin/HelloVaadin.java
new file mode 100644
index 0000000..d8f88f0
--- /dev/null
+++ b/servlet-vaadin-v08/src/main/java/com/superbiz/servlet/vaadin/HelloVaadin.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.superbiz.servlet.vaadin;
+
+import com.vaadin.annotations.VaadinServletConfiguration;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.server.VaadinServlet;
+import com.vaadin.ui.*;
+
+import javax.servlet.annotation.WebServlet;
+
+
+public class HelloVaadin {
+
+  public static class MyUI extends UI {
+
+    /**
+     * Start editing here to create your
+     * POC based on a Vaadin App.
+     * To start the app, -> start the main Method.
+     * <p>
+     * You will see in the logĀ“s the randomly used port.
+     *
+     * @param request that is created by the first request to init the app
+     */
+    @Override
+    protected void init(VaadinRequest request) {
+
+      //create the components you want to use
+      // and set the main component with setContent(..)
+      final Layout layout = new VerticalLayout();
+      layout
+          .addComponent(new Button("click me",
+                                   event -> layout.addComponents(new Label("clicked again"))
+          ));
+
+      //set the main Component
+      setContent(layout);
+    }
+
+    @WebServlet("/*")
+    @VaadinServletConfiguration(productionMode = false, ui = MyUI.class)
+    public static class MyProjectServlet extends VaadinServlet { }
+  }
+}
diff --git a/servlet-vaadin-v08/src/main/resources/WEB-INF/beans.xml b/servlet-vaadin-v08/src/main/resources/WEB-INF/beans.xml
new file mode 100644
index 0000000..42a24b5
--- /dev/null
+++ b/servlet-vaadin-v08/src/main/resources/WEB-INF/beans.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<beans
+    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
+                      http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
+    bean-discovery-mode="all">
+
+</beans>
\ No newline at end of file
diff --git a/servlet-vaadin-v10/pom.xml b/servlet-vaadin-v10/pom.xml
new file mode 100644
index 0000000..8fec11b
--- /dev/null
+++ b/servlet-vaadin-v10/pom.xml
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <parent>
+    <groupId>org.apache.meecrowave</groupId>
+    <artifactId>meecrowave-examples</artifactId>
+    <version>1.2.2-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>samples-servlet-vaadin-v10</artifactId>
+  <name>Servlet (Vaadin - V10)</name>
+
+
+  <properties>
+    <transpilation.output>${project.build.directory}/build</transpilation.output>
+    <vaadin.version>10.0.1</vaadin.version>
+  </properties>
+
+  <pluginRepositories>
+    <pluginRepository>
+      <id>vaadin-prereleases</id>
+      <url>https://maven.vaadin.com/vaadin-prereleases</url>
+    </pluginRepository>
+  </pluginRepositories>
+
+  <repositories>
+    <!--Releases-->
+    <repository>
+      <id>vaadin-addons</id>
+      <url>http://maven.vaadin.com/vaadin-addons</url>
+    </repository>
+
+    <!--Pre-Releases-->
+    <repository>
+      <id>vaadin-prereleases</id>
+      <url>http://maven.vaadin.com/vaadin-prereleases</url>
+    </repository>
+  </repositories>
+
+
+  <dependencyManagement>
+    <dependencies>
+      <!--Vaadin -->
+      <dependency>
+        <groupId>com.vaadin</groupId>
+        <artifactId>vaadin-bom</artifactId>
+        <version>${vaadin.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+  <dependencies>
+    <!--Vaadin -->
+    <dependency>
+      <groupId>com.vaadin</groupId>
+      <artifactId>vaadin-core</artifactId>
+    </dependency>
+  </dependencies>
+
+
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>com.vaadin</groupId>
+        <artifactId>vaadin-maven-plugin</artifactId>
+        <version>${vaadin.version}</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>copy-production-files</goal>
+              <goal>package-for-production</goal>
+            </goals>
+            <configuration>
+              <transpileOutputDirectory>${transpilation.output}</transpileOutputDirectory>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-war-plugin</artifactId>
+        <version>3.1.0</version>
+        <configuration>
+          <webResources>
+            <resource>
+              <directory>${transpilation.output}</directory>
+            </resource>
+          </webResources>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+</project>
\ No newline at end of file
diff --git a/servlet-vaadin-v10/src/main/java/com/superbiz/servlet/vaadin/HelloVaadinV10.java b/servlet-vaadin-v10/src/main/java/com/superbiz/servlet/vaadin/HelloVaadinV10.java
new file mode 100644
index 0000000..31ea511
--- /dev/null
+++ b/servlet-vaadin-v10/src/main/java/com/superbiz/servlet/vaadin/HelloVaadinV10.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.superbiz.servlet.vaadin;
+
+import com.vaadin.flow.component.Composite;
+import com.vaadin.flow.component.button.Button;
+import com.vaadin.flow.component.html.Div;
+import com.vaadin.flow.component.html.Label;
+import com.vaadin.flow.component.orderedlayout.VerticalLayout;
+import com.vaadin.flow.router.Route;
+
+@Route("")
+public class HelloVaadinV10 extends Composite<Div> {
+
+  public HelloVaadinV10() {
+    final VerticalLayout layout = new VerticalLayout();
+    layout
+        .add(new Button("click me",
+                        event -> layout.add(new Label("clicked again"))
+        ));
+    //set the main Component
+    getContent().add(layout);
+
+  }
+}