Skip to content

Commit

Permalink
Updates to Infinispan 14.0.3.Final and covers more counters testing
Browse files Browse the repository at this point in the history
  • Loading branch information
karesti committed Dec 7, 2022
1 parent 1dc1a77 commit 88d1a6c
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 5 deletions.
2 changes: 1 addition & 1 deletion bom/application/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@
<junit.jupiter.version>5.9.1</junit.jupiter.version>
<junit-pioneer.version>1.5.0</junit-pioneer.version>
<testng.version>6.14.2</testng.version>
<infinispan.version>14.0.2.Final</infinispan.version>
<infinispan.version>14.0.3.Final</infinispan.version>
<infinispan.protostream.version>4.5.0.Final</infinispan.protostream.version>
<caffeine.version>3.1.1</caffeine.version>
<netty.version>4.1.85.Final</netty.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,19 @@
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionStage;
import java.util.stream.Collectors;

import javax.inject.Inject;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

Expand All @@ -25,11 +28,14 @@
import org.infinispan.counter.api.CounterConfiguration;
import org.infinispan.counter.api.CounterManager;
import org.infinispan.counter.api.CounterType;
import org.infinispan.counter.api.Storage;
import org.infinispan.counter.api.StrongCounter;
import org.infinispan.counter.api.WeakCounter;
import org.infinispan.query.dsl.Query;
import org.infinispan.query.dsl.QueryFactory;

import io.quarkus.infinispan.client.Remote;
import io.smallrye.common.annotation.Blocking;

@Path("/test")
public class TestServlet {
Expand Down Expand Up @@ -111,16 +117,38 @@ public String ickleQueryAuthorSurname(@PathParam("id") String name) {
.collect(Collectors.joining(",", "[", "]"));
}

@Path("counter/{id}")
@POST
@Produces(MediaType.TEXT_PLAIN)
@Blocking
public boolean defineCounter(@PathParam("id") String id, @QueryParam("type") String type,
@QueryParam("storage") String storage) {
cacheSetup.ensureStarted();
CounterConfiguration configuration = counterManager.getConfiguration(id);
if (configuration == null) {
configuration = CounterConfiguration.builder(CounterType.valueOf(type)).storage(Storage.valueOf(storage)).build();
return counterManager.defineCounter(id, configuration);
}
return true;
}

@Path("incr/{id}")
@GET
@Produces(MediaType.TEXT_PLAIN)
@Blocking
public CompletionStage<Long> incrementCounter(@PathParam("id") String id) {
cacheSetup.ensureStarted();
CounterConfiguration configuration = counterManager.getConfiguration(id);
if (configuration == null) {
configuration = CounterConfiguration.builder(CounterType.BOUNDED_STRONG).build();
counterManager.defineCounter(id, configuration);
return CompletableFuture.completedFuture(0L);
}

if (configuration.type() == CounterType.WEAK) {
WeakCounter weakCounter = counterManager.getWeakCounter(id);
weakCounter.sync().increment();
return CompletableFuture.completedFuture(weakCounter.getValue());
}

StrongCounter strongCounter = counterManager.getStrongCounter(id);
return strongCounter.incrementAndGet();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import static org.hamcrest.Matchers.is;
import static org.junit.jupiter.api.Assertions.assertEquals;

import org.infinispan.counter.api.CounterType;
import org.infinispan.counter.api.Storage;
import org.junit.jupiter.api.Test;

import io.quarkus.test.junit.QuarkusTest;
Expand Down Expand Up @@ -33,8 +35,30 @@ public void testIckleQuery() {

@Test
public void testCounterIncrement() {
String initialValue = RestAssured.when().get("test/incr/somevalue").body().print();
String nextValue = RestAssured.when().get("test/incr/somevalue").body().print();
RestAssured.given()
.queryParam("type", CounterType.BOUNDED_STRONG)
.queryParam("storage", Storage.VOLATILE)
.post("test/counter/strong-1").body().print();

RestAssured.given()
.queryParam("type", CounterType.WEAK)
.queryParam("storage", Storage.VOLATILE)
.post("test/counter/weak-1").body().print();

RestAssured.given()
.queryParam("type", CounterType.UNBOUNDED_STRONG)
.queryParam("storage", Storage.PERSISTENT)
.post("test/counter/strong-2").body().print();

assertCounterIncrement("strong-1");
assertCounterIncrement("weak-1");
assertCounterIncrement("strong-2");
}

private void assertCounterIncrement(String counterName) {
String initialValue = RestAssured.given()
.get("test/incr/" + counterName).body().print();
String nextValue = RestAssured.when().get("test/incr/" + counterName).body().print();
assertEquals(Integer.parseInt(initialValue) + 1, Integer.parseInt(nextValue));
}

Expand Down

0 comments on commit 88d1a6c

Please sign in to comment.