Skip to content

About

Apache OpenWebBeans meecrowave

Topics

Resources

Code of conduct

Security policy

Stars

62 stars

Watchers

17 watching

Forks

Latest commit

 

History

774 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Apache Meecrowave

Version

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.

 <properties>
    <meecrowave.version>LATEST</meecrowave.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.apache.meecrowave</groupId>
      <artifactId>meecrowave-specs-api</artifactId>
      <version>${meecrowave.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.meecrowave</groupId>
      <artifactId>meecrowave-core</artifactId>
      <version>${meecrowave.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.meecrowave</groupId>
      <artifactId>meecrowave-junit</artifactId>
      <version>${meecrowave.version}</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

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/

@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.

@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();
    }
  }
}

About

Apache OpenWebBeans meecrowave

Topics

Resources

Code of conduct

Security policy

Stars

62 stars

Watchers

17 watching

Forks

Releases

Packages

Contributors

Languages