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

bdelacretaz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git

commit 98e3f5dd8cd5012b9887dad300e51afd2d14157b
Author: Bertrand Delacretaz <[email protected]>
AuthorDate: Thu Jul 4 12:00:43 2019 +0200

    Remove Mockito + quarkus-resteasy-jsonb which prevented native build
---
 graalvm/pom.xml                                    | 20 ++++++++-----
 .../engine/impl/SlingRequestProcessorWrapper.java  |  5 ++--
 .../java/org/apache/sling/graalvm/MsgProvider.java |  5 ----
 .../org/apache/sling/graalvm/MsgProviderImpl.java  | 17 -----------
 .../org/apache/sling/graalvm/SlingResource.java    | 29 -------------------
 .../sling/graalvm/http/JsonMessageBodyWriter.java  | 33 ++++++++++++++++++++++
 .../apache/sling/graalvm/http/SlingResource.java   | 15 ++--------
 .../apache/sling/graalvm/osgi/SlingContext.java    |  2 +-
 .../sling/graalvm/sling/MockFilterManager.java     |  9 ++++--
 .../org/apache/sling/serverless/HelloResource.java | 17 -----------
 .../sling/graalvm/NativeSlingResourceIT.java       |  8 ------
 .../apache/sling/graalvm/SlingResourceTest.java    | 21 --------------
 .../sling/graalvm/http/SlingResourceTest.java      |  4 +--
 .../apache/sling/serverless/HelloResourceTest.java | 21 --------------
 .../sling/serverless/NativeHelloResourceIT.java    |  9 ------
 15 files changed, 59 insertions(+), 156 deletions(-)

diff --git a/graalvm/pom.xml b/graalvm/pom.xml
index 89fee09..1a941c8 100644
--- a/graalvm/pom.xml
+++ b/graalvm/pom.xml
@@ -32,10 +32,6 @@
     </dependency>
     <dependency>
       <groupId>io.quarkus</groupId>
-      <artifactId>quarkus-resteasy-jsonb</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>io.quarkus</groupId>
       <artifactId>quarkus-junit5</artifactId>
       <scope>test</scope>
     </dependency>
@@ -56,6 +52,11 @@
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.service.http.whiteboard</artifactId>
+      <version>1.1.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
       <artifactId>org.osgi.service.component.annotations</artifactId>
       <version>1.3.0</version>
     </dependency>
@@ -75,14 +76,19 @@
       <version>2.6.20</version>
     </dependency>
     <dependency>
+      <groupId>org.apache.sling</groupId>
+      <artifactId>org.apache.sling.commons.testing</artifactId>
+      <version>2.1.2</version>
+    </dependency>
+    <dependency>
       <groupId>commons-fileupload</groupId>
       <artifactId>commons-fileupload</artifactId>
       <version>1.4</version>
     </dependency>
     <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
-      <version>1.10.19</version>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
+      <version>2.8.5</version>
     </dependency>
   </dependencies>
   <build>
diff --git 
a/graalvm/src/main/java/org/apache/sling/engine/impl/SlingRequestProcessorWrapper.java
 
b/graalvm/src/main/java/org/apache/sling/engine/impl/SlingRequestProcessorWrapper.java
index 0f2d901..0b57f45 100644
--- 
a/graalvm/src/main/java/org/apache/sling/engine/impl/SlingRequestProcessorWrapper.java
+++ 
b/graalvm/src/main/java/org/apache/sling/engine/impl/SlingRequestProcessorWrapper.java
@@ -5,14 +5,15 @@ import org.apache.sling.engine.impl.SlingRequestProcessorImpl;
 import org.apache.sling.graalvm.sling.MockErrorHandler;
 import org.apache.sling.graalvm.sling.MockFilterManager;
 import org.apache.sling.graalvm.sling.MockServletResolver;
+import org.osgi.framework.BundleContext;
 import org.osgi.service.component.annotations.Component;
 
 /** TODO hack: using the engine.impl package to access package private 
methods... */
 @Component(service=SlingRequestProcessor.class)
 public class SlingRequestProcessorWrapper extends SlingRequestProcessorImpl {
-    public SlingRequestProcessorWrapper() {
+    public SlingRequestProcessorWrapper(BundleContext bc) {
         this.setServletResolver(new MockServletResolver());
         this.setErrorHandler(new MockErrorHandler());
-        this.setFilterManager(new MockFilterManager());
+        this.setFilterManager(new MockFilterManager(bc));
     }
 }
\ No newline at end of file
diff --git a/graalvm/src/main/java/org/apache/sling/graalvm/MsgProvider.java 
b/graalvm/src/main/java/org/apache/sling/graalvm/MsgProvider.java
deleted file mode 100644
index bac6c06..0000000
--- a/graalvm/src/main/java/org/apache/sling/graalvm/MsgProvider.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package org.apache.sling.graalvm;
-
-public interface MsgProvider {
-    String getMsg();
-}
\ No newline at end of file
diff --git 
a/graalvm/src/main/java/org/apache/sling/graalvm/MsgProviderImpl.java 
b/graalvm/src/main/java/org/apache/sling/graalvm/MsgProviderImpl.java
deleted file mode 100644
index d2c2ec5..0000000
--- a/graalvm/src/main/java/org/apache/sling/graalvm/MsgProviderImpl.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.apache.sling.graalvm;
-
-import org.osgi.service.component.annotations.Component;
-import java.util.Date;
-
-@Component(service=MsgProvider.class)
-public class MsgProviderImpl implements MsgProvider {
-    private final String msg;
-
-    MsgProviderImpl(String msg) {
-        this.msg = msg;
-    }
-
-    public String getMsg() {
-        return msg + ", at " + new Date();
-    }
-}
\ No newline at end of file
diff --git a/graalvm/src/main/java/org/apache/sling/graalvm/SlingResource.java 
b/graalvm/src/main/java/org/apache/sling/graalvm/SlingResource.java
deleted file mode 100644
index c652dbf..0000000
--- a/graalvm/src/main/java/org/apache/sling/graalvm/SlingResource.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.apache.sling.graalvm;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.apache.sling.testing.mock.osgi.junit5.OsgiContext;
-
-@Path("/sling")
-public class SlingResource {
-
-    private String getMessage() {
-        // Yes this is funky, the goal is to verify that
-        // the Sling OSGi mocks context works in a
-        // native executable
-        final OsgiContext ctx = new OsgiContext();
-        ctx.registerInjectActivateService(new MsgProviderImpl("Hello"));
-        final MsgProvider svc = ctx.getService(MsgProvider.class);
-        return svc.getMsg();
-    }
-
-    @GET
-    @Produces(MediaType.TEXT_PLAIN)
-    public String hello() {
-        final String msg = getMessage();
-        return msg;
-    }
-}
\ No newline at end of file
diff --git 
a/graalvm/src/main/java/org/apache/sling/graalvm/http/JsonMessageBodyWriter.java
 
b/graalvm/src/main/java/org/apache/sling/graalvm/http/JsonMessageBodyWriter.java
new file mode 100644
index 0000000..59cfa69
--- /dev/null
+++ 
b/graalvm/src/main/java/org/apache/sling/graalvm/http/JsonMessageBodyWriter.java
@@ -0,0 +1,33 @@
+package org.apache.sling.graalvm.http;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+
+import javax.ws.rs.Produces;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.ext.MessageBodyWriter;
+import javax.ws.rs.ext.Provider;
+
+import com.google.gson.Gson;
+
+@Provider
+@Produces(MediaType.APPLICATION_JSON)
+public class JsonMessageBodyWriter implements MessageBodyWriter<Object> {
+
+    @Override
+    public boolean isWriteable(Class<?> type, Type genericType, Annotation[] 
annotations, MediaType mediaType) {
+        return mediaType.isCompatible(MediaType.APPLICATION_JSON_TYPE);
+    }
+
+    @Override
+    public void writeTo(Object data, Class<?> type, Type genericType, 
Annotation[] annotations, MediaType mediaType,
+            MultivaluedMap<String, Object> httpHeaders, OutputStream 
entityStream)
+            throws IOException, WebApplicationException {
+        entityStream.write(new Gson().toJson(data).getBytes("UTF-8"));
+    }
+
+}
\ No newline at end of file
diff --git 
a/graalvm/src/main/java/org/apache/sling/graalvm/http/SlingResource.java 
b/graalvm/src/main/java/org/apache/sling/graalvm/http/SlingResource.java
index 566d8f8..6d97215 100644
--- a/graalvm/src/main/java/org/apache/sling/graalvm/http/SlingResource.java
+++ b/graalvm/src/main/java/org/apache/sling/graalvm/http/SlingResource.java
@@ -1,14 +1,8 @@
 package org.apache.sling.graalvm.http;
 
-import static org.mockito.Mockito.when;
-import static org.mockito.Mockito.doReturn;
-
 import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringWriter;
 
 import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
@@ -19,10 +13,9 @@ import javax.ws.rs.core.Response;
 
 import org.apache.sling.graalvm.osgi.SlingContext;
 import org.apache.sling.graalvm.sling.MockServletResolver;
-import org.apache.sling.spi.resource.provider.ResourceProvider;
-import org.mockito.Mockito;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.commons.testing.sling.MockSlingHttpServletResponse;
 import org.apache.sling.engine.SlingRequestProcessor;
 
 @Path("/sling/{resourcePath: [^/][a-zA-Z/_0-9\\.]*}")
@@ -39,12 +32,8 @@ public class SlingResource {
         final ResourceResolver resolver = 
SlingContext.get().getService(ResourceResolver.class);
         assert (resolver != null);
 
-        final StringWriter sw = new StringWriter();
-        final HttpServletResponse resp = 
Mockito.mock(HttpServletResponse.class);
-        when(resp.getWriter()).thenReturn(new PrintWriter(sw));
-        
         try {
-            p.processRequest(request, resp, resolver);
+            p.processRequest(request, new MockSlingHttpServletResponse(), 
resolver);
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
diff --git 
a/graalvm/src/main/java/org/apache/sling/graalvm/osgi/SlingContext.java 
b/graalvm/src/main/java/org/apache/sling/graalvm/osgi/SlingContext.java
index bf9e27b..bbbf028 100644
--- a/graalvm/src/main/java/org/apache/sling/graalvm/osgi/SlingContext.java
+++ b/graalvm/src/main/java/org/apache/sling/graalvm/osgi/SlingContext.java
@@ -29,7 +29,7 @@ public class SlingContext {
         final MockResourceProvider mrp = new MockResourceProvider();
         result.registerInjectActivateService(new MockResourceResolver(mrp));
         result.registerInjectActivateService(mrp);
-        result.registerInjectActivateService(new 
SlingRequestProcessorWrapper());
+        result.registerInjectActivateService(new 
SlingRequestProcessorWrapper(result.bundleContext()));
         return result;
     }
 }
\ No newline at end of file
diff --git 
a/graalvm/src/main/java/org/apache/sling/graalvm/sling/MockFilterManager.java 
b/graalvm/src/main/java/org/apache/sling/graalvm/sling/MockFilterManager.java
index ee07726..dfc3b2a 100644
--- 
a/graalvm/src/main/java/org/apache/sling/graalvm/sling/MockFilterManager.java
+++ 
b/graalvm/src/main/java/org/apache/sling/graalvm/sling/MockFilterManager.java
@@ -1,12 +1,15 @@
 package org.apache.sling.graalvm.sling;
 
+import org.apache.sling.engine.impl.SlingMainServlet;
 import org.apache.sling.engine.impl.filter.ServletFilterManager;
 import org.apache.sling.engine.impl.helper.SlingServletContext;
-import org.mockito.Mockito;
 import org.osgi.framework.BundleContext;
 
 public class MockFilterManager extends ServletFilterManager {
-    public MockFilterManager() {
-        super(Mockito.mock(BundleContext.class), 
Mockito.mock(SlingServletContext.class));
+    public MockFilterManager(BundleContext bc) {
+        super(
+            bc, 
+            new SlingServletContext(bc, new SlingMainServlet())
+        );
     }
 }
\ No newline at end of file
diff --git 
a/graalvm/src/main/java/org/apache/sling/serverless/HelloResource.java 
b/graalvm/src/main/java/org/apache/sling/serverless/HelloResource.java
deleted file mode 100644
index 790193b..0000000
--- a/graalvm/src/main/java/org/apache/sling/serverless/HelloResource.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.apache.sling.serverless;
-
-import java.util.Date;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-@Path("/hello")
-public class HelloResource {
-
-    @GET
-    @Produces(MediaType.TEXT_PLAIN)
-    public String hello() {
-        return "hello, at " + new Date();
-    }
-}
\ No newline at end of file
diff --git 
a/graalvm/src/test/java/org/apache/sling/graalvm/NativeSlingResourceIT.java 
b/graalvm/src/test/java/org/apache/sling/graalvm/NativeSlingResourceIT.java
deleted file mode 100644
index d88ff6c..0000000
--- a/graalvm/src/test/java/org/apache/sling/graalvm/NativeSlingResourceIT.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package org.apache.sling.graalvm;
-
-import io.quarkus.test.junit.SubstrateTest;
-
-@SubstrateTest
-public class NativeSlingResourceIT extends SlingResourceTest {
-    // Execute the same tests but in native mode.
-}
\ No newline at end of file
diff --git 
a/graalvm/src/test/java/org/apache/sling/graalvm/SlingResourceTest.java 
b/graalvm/src/test/java/org/apache/sling/graalvm/SlingResourceTest.java
deleted file mode 100644
index 91a0f13..0000000
--- a/graalvm/src/test/java/org/apache/sling/graalvm/SlingResourceTest.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.apache.sling.graalvm;
-
-import io.quarkus.test.junit.QuarkusTest;
-import org.junit.jupiter.api.Test;
-
-import static io.restassured.RestAssured.given;
-import static org.hamcrest.CoreMatchers.containsString;
-
-@QuarkusTest
-public class SlingResourceTest {
-
-    @Test
-    public void testHelloEndpoint() {
-        given()
-          .when().get("/sling")
-          .then()
-             .statusCode(200)
-             .body(containsString("Hello, at"));
-    }
-
-}
\ No newline at end of file
diff --git 
a/graalvm/src/test/java/org/apache/sling/graalvm/http/SlingResourceTest.java 
b/graalvm/src/test/java/org/apache/sling/graalvm/http/SlingResourceTest.java
index d401d16..6168210 100644
--- a/graalvm/src/test/java/org/apache/sling/graalvm/http/SlingResourceTest.java
+++ b/graalvm/src/test/java/org/apache/sling/graalvm/http/SlingResourceTest.java
@@ -16,15 +16,13 @@ public class SlingResourceTest {
     public void testSlingResourceEndpoint() {
         final String prefix = "/sling/";
         final String path = "chouc/route";
-        final String resourceType = "mock/resource";
 
         given()
           .when().get(prefix + path)
           .then()
              .statusCode(200)
              .contentType(MediaType.APPLICATION_JSON)
-             .body("path", equalTo(prefix + path))
-             .body("resourceType", equalTo(resourceType));
+             .body("path", equalTo(prefix + path));
     }
 
 }
\ No newline at end of file
diff --git 
a/graalvm/src/test/java/org/apache/sling/serverless/HelloResourceTest.java 
b/graalvm/src/test/java/org/apache/sling/serverless/HelloResourceTest.java
deleted file mode 100644
index 9f4ac22..0000000
--- a/graalvm/src/test/java/org/apache/sling/serverless/HelloResourceTest.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.apache.sling.serverless;
-
-import io.quarkus.test.junit.QuarkusTest;
-import org.junit.jupiter.api.Test;
-
-import static io.restassured.RestAssured.given;
-import static org.hamcrest.CoreMatchers.containsString;
-
-@QuarkusTest
-public class HelloResourceTest {
-
-    @Test
-    public void testHelloEndpoint() {
-        given()
-          .when().get("/hello")
-          .then()
-             .statusCode(200)
-             .body(containsString("hello, at"));
-    }
-
-}
\ No newline at end of file
diff --git 
a/graalvm/src/test/java/org/apache/sling/serverless/NativeHelloResourceIT.java 
b/graalvm/src/test/java/org/apache/sling/serverless/NativeHelloResourceIT.java
deleted file mode 100644
index 7bfae1b..0000000
--- 
a/graalvm/src/test/java/org/apache/sling/serverless/NativeHelloResourceIT.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.apache.sling.serverless;
-
-import io.quarkus.test.junit.SubstrateTest;
-
-@SubstrateTest
-public class NativeHelloResourceIT extends HelloResourceTest {
-
-    // Execute the same tests but in native mode.
-}
\ No newline at end of file

Reply via email to