update.

Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/af3362a7
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/af3362a7
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/af3362a7

Branch: refs/heads/master
Commit: af3362a7f9b8fe3a2711edffaaec66e8ffec7dda
Parents: 3c24250
Author: Daniel Dias <[email protected]>
Authored: Fri Dec 14 23:26:13 2018 -0200
Committer: Daniel Dias <[email protected]>
Committed: Fri Dec 21 01:52:26 2018 -0200

----------------------------------------------------------------------
 examples/mvc-resteasy/pom.xml                   | 47 ++++-------
 .../superbiz/application/TomeeController.java   | 22 ++++++
 .../superbiz/controller/TomeeController.java    | 23 ------
 .../src/test/java/org/superbiz/mvc/MVCTest.java | 26 ++++--
 .../superbiz/mvc/util/WebArchiveBuilder.java    | 83 ++++++++++++++++++++
 .../src/test/resources/arquillian.xml           | 35 +++++++++
 6 files changed, 176 insertions(+), 60 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/af3362a7/examples/mvc-resteasy/pom.xml
----------------------------------------------------------------------
diff --git a/examples/mvc-resteasy/pom.xml b/examples/mvc-resteasy/pom.xml
index a722a19..6221d5a 100644
--- a/examples/mvc-resteasy/pom.xml
+++ b/examples/mvc-resteasy/pom.xml
@@ -66,17 +66,6 @@
     </plugins>
   </build>
 
-  <repositories>
-    <repository>
-      <id>apache-m2-snapshot</id>
-      <name>Apache Snapshot Repository</name>
-      <url>https://repository.apache.org/content/groups/snapshots</url>
-      <snapshots>
-        <enabled>true</enabled>
-      </snapshots>
-    </repository>
-  </repositories>
-
   <dependencies>
     <dependency>
       <groupId>org.apache.tomee</groupId>
@@ -90,6 +79,13 @@
       <groupId>org.mvc-spec.ozark</groupId>
       <artifactId>ozark-resteasy</artifactId>
       <version>${version.ozark}</version>
+      <scope>runtime</scope>
+    </dependency>
+    
+    <dependency>
+        <groupId>javax.mvc</groupId>
+        <artifactId>javax.mvc-api</artifactId>
+        <version>1.0-pfd</version>
     </dependency>
 
     <!-- RestEasy -->
@@ -115,7 +111,7 @@
       <version>${version.arquillian}</version>
       <scope>test</scope>
     </dependency>
-    <!-- <dependency>
+    <dependency>
       <groupId>org.apache.tomee</groupId>
       <artifactId>arquillian-tomee-remote</artifactId>
       <version>${tomee.version}</version>
@@ -125,8 +121,9 @@
       <artifactId>apache-tomee</artifactId>
       <version>${tomee.version}</version>
       <classifier>webprofile</classifier>
+      <scope>test</scope>
       <type>zip</type>
-    </dependency> -->
+    </dependency>
     <dependency>
       <groupId>org.jboss.arquillian.graphene</groupId>
       <artifactId>graphene-webdriver</artifactId>
@@ -140,21 +137,11 @@
       <version>4.11</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>net.sourceforge.htmlunit</groupId>
+      <artifactId>htmlunit</artifactId>
+      <version>2.32</version>
+      <scope>test</scope>
+   </dependency>
   </dependencies>
-
-  <!--
-  This section allows you to configure where to publish libraries for sharing.
-  It is not required and may be deleted.  For more information see:
-  http://maven.apache.org/plugins/maven-deploy-plugin/
-  -->
-  <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>
\ No newline at end of file
+</project>

http://git-wip-us.apache.org/repos/asf/tomee/blob/af3362a7/examples/mvc-resteasy/src/main/java/org/superbiz/application/TomeeController.java
----------------------------------------------------------------------
diff --git 
a/examples/mvc-resteasy/src/main/java/org/superbiz/application/TomeeController.java
 
b/examples/mvc-resteasy/src/main/java/org/superbiz/application/TomeeController.java
new file mode 100644
index 0000000..c739a54
--- /dev/null
+++ 
b/examples/mvc-resteasy/src/main/java/org/superbiz/application/TomeeController.java
@@ -0,0 +1,22 @@
+package org.superbiz.application;
+
+import javax.inject.Inject;
+import javax.mvc.Controller;
+import javax.mvc.Models;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.QueryParam;
+
+@Controller
+@Path("hello")
+public class TomeeController {
+
+    @Inject
+    private Models models;
+
+    @GET
+    public String getHello(@QueryParam("name") String name) {
+        this.models.put("hello", name);
+        return "hello.jsp";
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tomee/blob/af3362a7/examples/mvc-resteasy/src/main/java/org/superbiz/controller/TomeeController.java
----------------------------------------------------------------------
diff --git 
a/examples/mvc-resteasy/src/main/java/org/superbiz/controller/TomeeController.java
 
b/examples/mvc-resteasy/src/main/java/org/superbiz/controller/TomeeController.java
deleted file mode 100644
index 1eecfa4..0000000
--- 
a/examples/mvc-resteasy/src/main/java/org/superbiz/controller/TomeeController.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.superbiz.controller;
-
-import javax.inject.Inject;
-import javax.mvc.Models;
-import javax.mvc.Controller;
-import javax.mvc.View;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.QueryParam;
-
-@Controller
-@Path("hello")
-public class TomeeController {
-
-    @Inject
-    private Models models;
-
-    @GET
-    @View("hello.jsp")
-    public void getHello(@QueryParam("name") String name) {
-        this.models.put("hello", name);
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tomee/blob/af3362a7/examples/mvc-resteasy/src/test/java/org/superbiz/mvc/MVCTest.java
----------------------------------------------------------------------
diff --git a/examples/mvc-resteasy/src/test/java/org/superbiz/mvc/MVCTest.java 
b/examples/mvc-resteasy/src/test/java/org/superbiz/mvc/MVCTest.java
index e13ae12..3d2ed85 100644
--- a/examples/mvc-resteasy/src/test/java/org/superbiz/mvc/MVCTest.java
+++ b/examples/mvc-resteasy/src/test/java/org/superbiz/mvc/MVCTest.java
@@ -4,6 +4,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import java.net.URL;
+import java.nio.file.Paths;
 
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.container.test.api.RunAsClient;
@@ -12,6 +13,7 @@ import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.arquillian.test.api.ArquillianResource;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
 import org.jboss.shrinkwrap.api.asset.EmptyAsset;
+import org.jboss.shrinkwrap.api.asset.FileAsset;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -22,24 +24,34 @@ import org.openqa.selenium.WebElement;
 @RunWith(Arquillian.class)
 public class MVCTest {
 
-    //@ArquillianResource
-    //private URL base;
+    @ArquillianResource
+    private URL base;
 
     @Drone
     private WebDriver webDriver;
 
-    @Deployment
+    @Deployment(testable = true)
     public static WebArchive createDeployment() {
-        return ShrinkWrap.create(WebArchive.class, 
"test.war").addClasses(MVCTest.class)
-                .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
+        final WebArchive webArchive = ShrinkWrap.create(WebArchive.class, 
"test.war")
+                .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml")
+                .addAsWebInfResource(new 
FileAsset(Paths.get("src/main/webapp/WEB-INF/").resolve("views/hello.jsp").toFile()),
 "views/" + "hello.jsp");
+                
+
+        System.out.println(webArchive.toString(true));
+
+        return webArchive;
     }
+    
+   
 
     @Test
     @RunAsClient
     public void test() {
-        webDriver.get("http://localhost:8080/mvc-resteasy/"; + 
"app/hello?name=TomEE");
+        webDriver.get(base + "app/hello?name=TomEE");
+        System.out.println(webDriver.getCurrentUrl());
         WebElement h1 = webDriver.findElement(By.tagName("h1"));
+        System.out.println(h1.getText());
         assertNotNull(h1);
         assertTrue(h1.getText().contains("Welcome TomEE !"));
     }
-}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tomee/blob/af3362a7/examples/mvc-resteasy/src/test/java/org/superbiz/mvc/util/WebArchiveBuilder.java
----------------------------------------------------------------------
diff --git 
a/examples/mvc-resteasy/src/test/java/org/superbiz/mvc/util/WebArchiveBuilder.java
 
b/examples/mvc-resteasy/src/test/java/org/superbiz/mvc/util/WebArchiveBuilder.java
new file mode 100644
index 0000000..61f34a4
--- /dev/null
+++ 
b/examples/mvc-resteasy/src/test/java/org/superbiz/mvc/util/WebArchiveBuilder.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright © 2017 Ivar Grimstad ([email protected])
+ *
+ * Licensed 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 org.superbiz.mvc.util;
+
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.Asset;
+import org.jboss.shrinkwrap.api.asset.EmptyAsset;
+import org.jboss.shrinkwrap.api.asset.FileAsset;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.jboss.shrinkwrap.resolver.api.maven.Maven;
+import org.jboss.shrinkwrap.resolver.api.maven.PomEquippedResolveStage;
+import org.jboss.shrinkwrap.resolver.api.maven.ScopeType;
+import org.jboss.shrinkwrap.resolver.api.maven.coordinate.MavenCoordinates;
+import org.jboss.shrinkwrap.resolver.api.maven.coordinate.MavenDependencies;
+import org.jboss.shrinkwrap.resolver.api.maven.coordinate.MavenDependency;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+
+public class WebArchiveBuilder {
+
+    private final WebArchive archive = ShrinkWrap.create(WebArchive.class);
+    private List<MavenDependency> additionalDependencies = new ArrayList<>();
+
+    public WebArchiveBuilder addPackage(String packageName) {
+        archive.addPackage(packageName);
+        return this;
+    }
+
+    public WebArchiveBuilder addView(Asset asset, String name) {
+        archive.addAsWebInfResource(asset, "views/" + name);
+        return this;
+    }
+
+    public WebArchiveBuilder addView(File file, String name) {
+        return this.addView(new FileAsset(file), name);
+    }
+
+    public WebArchiveBuilder addBeansXml() {
+        archive.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
+        return this;
+    }
+
+    public WebArchiveBuilder addDependencies(MavenDependency... dependencies) {
+        this.additionalDependencies.addAll(Arrays.asList(dependencies));
+        return this;
+    }
+
+    public WebArchiveBuilder addDependency(String coordinates) {
+        addDependencies(MavenDependencies.createDependency(coordinates, 
ScopeType.RUNTIME,false));
+        return this;
+    }
+
+    public WebArchive build() {
+        PomEquippedResolveStage stage = Maven.configureResolver().workOffline()
+            .withClassPathResolution(true)
+            .loadPomFromFile("pom.xml")
+            .importCompileAndRuntimeDependencies();
+
+        if (!this.additionalDependencies.isEmpty()) {
+            stage = stage.addDependencies(this.additionalDependencies);
+        }
+
+        return 
archive.addAsLibraries(stage.resolve().withTransitivity().asFile());
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/tomee/blob/af3362a7/examples/mvc-resteasy/src/test/resources/arquillian.xml
----------------------------------------------------------------------
diff --git a/examples/mvc-resteasy/src/test/resources/arquillian.xml 
b/examples/mvc-resteasy/src/test/resources/arquillian.xml
new file mode 100644
index 0000000..cec14c8
--- /dev/null
+++ b/examples/mvc-resteasy/src/test/resources/arquillian.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+
+    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.
+-->
+<arquillian xmlns="http://jboss.org/schema/arquillian";
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://jboss.org/schema/arquillian 
http://jboss.org/schema/arquillian/arquillian_1_0.xsd";>
+       <container qualifier="tomee" default="true">
+           <configuration>
+               <property name="httpPort">-1</property>
+               <property name="stopPort">-1</property>
+               <property name="ajpPort">-1</property>
+               <property name="dir">target/tomee</property>
+               <property 
name="appWorkingDir">target/arquillian-dump-dir</property>
+           </configuration>
+           
+       </container>
+       <extension qualifier="webdriver">
+        <property name="browser">htmlunit</property>
+    </extension>
+</arquillian>

Reply via email to