openwebbeans-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From strub...@apache.org
Subject svn commit: r1828136 - /openwebbeans/meecrowave/trunk/README.adoc
Date Sun, 01 Apr 2018 09:44:12 GMT
Author: struberg
Date: Sun Apr  1 09:44:12 2018
New Revision: 1828136

URL: http://svn.apache.org/viewvc?rev=1828136&view=rev
Log:
improve our documentation

Patch provided by Sven Ruppert via github PR.
refs: #6

Modified:
    openwebbeans/meecrowave/trunk/README.adoc

Modified: openwebbeans/meecrowave/trunk/README.adoc
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/README.adoc?rev=1828136&r1=1828135&r2=1828136&view=diff
==============================================================================
--- openwebbeans/meecrowave/trunk/README.adoc (original)
+++ openwebbeans/meecrowave/trunk/README.adoc Sun Apr  1 09:44:12 2018
@@ -1,3 +1,120 @@
+
+
 = Apache Meecrowave
 
 Apache Meecrowave is a small Microprofile server (JAX-RS + CDI + JSON) fully based on Apache
products.
+
+== How to start
+If you want to start with your first *Hello World* you have to add the following dependencies
to your `pom.xml`.
+
+```xml
+ <properties>
+    <meecrowave.version>1.2.1</meecrowave.version>
+    <tomcat-servlet-api.version>9.0.5</tomcat-servlet-api.version>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-atinject_1.0_spec</artifactId>
+      <version>1.0</version>
+      <scope>provided</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-jcdi_2.0_spec</artifactId>
+      <version>1.0</version>
+      <scope>provided</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-jaxrs_2.0_spec</artifactId>
+      <version>1.0-alpha-1</version>
+      <scope>provided</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-json_1.1_spec</artifactId>
+      <version>1.0</version>
+      <scope>provided</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-api</artifactId>
+      <version>2.9.1</version>
+      <scope>provided</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.tomcat</groupId>
+      <artifactId>tomcat-servlet-api</artifactId>
+      <version>${tomcat-servlet-api.version}</version>
+    </dependency>
+  </dependencies>
+```
+
+This is not very convenient, means that an aggregating jar will be created soon to minimize
thee amount of dependencies you have to declare.
+The project itself should be used with Java8 as the minimum JDK-version.
+
+To work with the latest SNAPSHOT, you can clone the repo and make a ```mvn clean install```.
+
+== Hello World - REST - trivial
+Let´s start with an minimal REST Endpoint.
+The only result you can get is a *Hello World*.
+Additionally there is a class called ```HelloApplication``` to make sure your path will start
with **/api/**
+
+```java
+@Dependent
+@ApplicationPath("api")
+public class HelloApplication extends Application {
+}
+
+@Path("hello")
+@ApplicationScoped
+public class HelloEndpoint {
+
+  @GET
+  @Produces(MediaType.APPLICATION_JSON)
+  public String sayHi() {
+    return "Hello World";
+  }
+}
+```
+
+You can start writing your first test , now.
+Using junit4, the test class should annotated with ```@RunWith(MonoMeecrowave.Runner.class)```
+The Container start and stop will be managed for you.
+To have access to the dynamic data, like the random used port, use the the injected ```Meecrowave.Builder````.
+
+The test-request itself is written like a normal request.
+This example is using the class ```javax.ws.rs.client.ClientBuilder```.
+
+```java
+@RunWith(MonoMeecrowave.Runner.class)
+public class HelloEndpointTest {
+  @ConfigurationInject
+  private Meecrowave.Builder configuration;
+
+  @Test
+  public void hello() {
+    final Client client = ClientBuilder.newClient();
+    try {
+      assertEquals("Hello World", client.target("http://localhost:" + configuration.getHttpPort())
+                                        .path("api/hello")
+                                        .request(APPLICATION_JSON_TYPE)
+                                        .get(String.class));
+    } finally {
+      client.close();
+    }
+  }
+}
+```
+
+
+
+
+



Mime
View raw message