package org.littlewings.hazelcast.rest;
import javax.annotation.Resource;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import com.hazelcast.core.HazelcastInstance;
import fish.payara.nucleus.hazelcast.HazelcastCore;
@Path("lookup")
@RequestScoped
public class HazelcastLookupResource {
@GET
@Path("jndi")
@Produces(MediaType.TEXT_PLAIN)
public String jndi() throws NamingException {
InitialContext context = new InitialContext();
try {
HazelcastInstance instance = (HazelcastInstance) context.lookup("payara/Hazelcast");
return instance.getName();
} finally {
context.close();
}
}
@Resource(name = "payara/Hazelcast")
private HazelcastInstance hazelcastInstanceByResourcd;
@GET
@Path("resource")
@Produces(MediaType.TEXT_PLAIN)
public String resource() {
return hazelcastInstanceByResourcd.getName();
}
@Inject
private HazelcastInstance hazelcastInstanceByCdi;
@GET
@Path("cdi")
@Produces(MediaType.TEXT_PLAIN)
public String cdi() {
return hazelcastInstanceByCdi.getName();
}
@GET
@Path("internal")
@Produces(MediaType.TEXT_PLAIN)
public String internal() {
HazelcastCore core = HazelcastCore.getCore();
HazelcastInstance instance = core.getInstance();
return instance.getName();
}
}