Skip to content

Instantly share code, notes, and snippets.

View paulparkinson's full-sized avatar

Paul Parkinson paulparkinson

View GitHub Profile
@paulparkinson
paulparkinson / RegisterClientLRA.java
Created September 13, 2019 20:09
RegisterClientLRA.java
public OrderResource() {
client = ClientBuilder.newBuilder()
.register(ClientLRARequestFilter.class)
.register(ClientLRAResponseFilter.class)
.build();
}
@paulparkinson
paulparkinson / LRAFilterRegistrationDynamicFeature.java
Last active September 13, 2019 20:17
LRA FilterRegistration DynamicFeature
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> s = new HashSet<Class<?>>();
s.add(FilterRegistration.class);
//...
return s;
}
@paulparkinson
paulparkinson / lraparticipantannotationchecker.pom
Last active September 13, 2019 20:21
LRA participant annotation checker: pom
<plugin>
<groupId>org.jboss.narayana.rts</groupId>
<artifactId>lra-annotation-checker-maven-plugin</artifactId>
<version>${narayana.lra.version}</version>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
@paulparkinson
paulparkinson / lraparticipantdependencies.pom
Last active September 13, 2019 20:24
LRA participant: pom dependencies
<dependency>
<groupId>org.eclipse.microprofile.lra</groupId>
<artifactId>microprofile-lra-api</artifactId>
<version>1.0-RC1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.jboss.narayana.rts</groupId>
<artifactId>lra-client</artifactId>
<version>${narayana.lra.version}</version>
@paulparkinson
paulparkinson / OrderResource.java
Last active September 14, 2019 02:14
LRA participant: order service
@Path("/placeOrder")
@GET
@Produces(MediaType.APPLICATION_JSON)
@LRA(value = LRA.Type.REQUIRES_NEW)
public Response placeOrder(@HeaderParam(LRA_HTTP_CONTEXT_HEADER) String lraId) {
//...
}
@Path("/cancelOrder")
@paulparkinson
paulparkinson / lra-coordinator.pom
Last active September 14, 2019 02:16
LRA: coordinator pom
<dependency>
<groupId>org.jboss.narayana.rts</groupId>
<artifactId>lra-coordinator</artifactId>
<version>${narayana.lra.version}</version>
<type>war</type>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.jboss.narayana.rts</groupId>
<artifactId>lra-service-base</artifactId>
@paulparkinson
paulparkinson / InventoryResource.java
Last active September 14, 2019 02:21
LRA participant: inventory service
@Path("/reserveInventoryForOrder")
@GET
@Produces(MediaType.APPLICATION_JSON)
@LRA(value = LRA.Type.MANDATORY, end = false)
public Response reserveInventoryForOrder(@HeaderParam(LRA_HTTP_CONTEXT_HEADER) String lraId) {
//...
if(inventoryExists) return Response.ok().entity("inventorysuccess").build();
else return Response.ok().entity("inventoryfailure").build();
}
@paulparkinson
paulparkinson / lra-successrun-steps.sh
Last active September 14, 2019 02:23
LRA: steps to run success case
curl http://localhost:8091/inventory/addInventory
curl http://localhost:8090/order/placeOrder
@paulparkinson
paulparkinson / lra-compensationrun-steps.sh
Last active September 14, 2019 02:24
LRA: steps to run compensation case
curl http://localhost:8091/inventory/removeInventory
curl http://localhost:8090/order/placeOrder
@paulparkinson
paulparkinson / StartLRAExampleAppServices
Created September 14, 2019 02:54
LRA: start example application services
java -jar lra-coordinator-helidon/target/lra-coordinator-helidon-0.0.1-SNAPSHOT.jar
java -jar order/target/order-0.0.1-SNAPSHOT.jar
java -jar inventory/target/inventory-0.0.1-SNAPSHOT.jar