package org.jboss.resteasy.test.cdi.extensions.resource;
import org.jboss.resteasy.test.cdi.util.Utilities;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import java.util.logging.Logger;
@Path("/extension")
@RequestScoped
public class ScopeExtensionResource {
private static int lastSecret2;
private static int lastSecret3;
@Inject
private Logger log;
@Inject
private Utilities utilities;
@Inject
private ScopeExtensionObsolescentAfterTwoUses oo2;
@Inject
private ScopeExtensionObsolescentAfterThreeUses oo3;
@POST
@Path("setup")
public Response setup() {
log.info("ObsolescentObject scope: " + utilities.testScope(ScopeExtensionObsolescentAfterTwoUses.class, ScopeExtensionPlannedObsolescenceScope.class));
if (utilities.testScope(ScopeExtensionObsolescentAfterTwoUses.class, ScopeExtensionPlannedObsolescenceScope.class)) {
lastSecret2 = oo2.getSecret();
lastSecret3 = oo3.getSecret();
log.info("current secret2: " + lastSecret2);
log.info("current secret3: " + lastSecret3);
return Response.ok().build();
} else {
return Response.serverError().build();
}
}
@POST
@Path("test1")
public Response test1() {
int currentSecret2 = oo2.getSecret();
int currentSecret3 = oo3.getSecret();
log.info("last secret2: " + lastSecret2);
log.info("last secret3: " + lastSecret3);
log.info("current secret2: " + currentSecret2);
log.info("current secret3: " + currentSecret3);
if (currentSecret2 == lastSecret2 && currentSecret3 == lastSecret3) {
lastSecret2 = currentSecret2;
lastSecret3 = currentSecret3;
return Response.ok().build();
} else {
return Response.serverError().build();
}
}
@POST
@Path("test2")
public Response test2() {
int currentSecret2 = oo2.getSecret();
int currentSecret3 = oo3.getSecret();
log.info("last secret2: " + lastSecret2);
log.info("last secret3: " + lastSecret3);
log.info("current secret2: " + currentSecret2);
log.info("current secret3: " + currentSecret3);
if (currentSecret2 != lastSecret2 && currentSecret3 == lastSecret3) {
lastSecret3 = currentSecret3;
return Response.ok().build();
} else {
return Response.serverError().build();
}
}
@POST
@Path("test3")
public Response test3() {
int currentSecret3 = oo3.getSecret();
log.info("last secret3: " + lastSecret3);
log.info("current secret3: " + currentSecret3);
if (currentSecret3 != lastSecret3) {
return Response.ok().build();
} else {
return Response.serverError().build();
}
}
}