package biz.karms.sinkit.rest; import biz.karms.sinkit.ejb.DNSApi; import com.google.gson.FieldNamingPolicy; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import javax.ejb.Asynchronous; import javax.ejb.EJB; import javax.ejb.EJBException; import javax.enterprise.context.RequestScoped; import javax.inject.Inject; import java.io.Serializable; import java.util.logging.Level; import java.util.logging.Logger; /** * @author Michal Karm Babacek */ @RequestScoped public class DnsService implements Serializable { private static final long serialVersionUID = -6526195454588081093L; @EJB(beanInterface = DNSApi.class) private DNSApi dnsApi; @Inject private Logger log; private static final Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create(); String getSinkHole(final String client, final String key, final String fqdn, final Integer clientId) { long start = System.currentTimeMillis(); //TODO: Define the protocol already... String returned = "null"; try { returned = gson.toJson(dnsApi.getSinkHole(client, key, fqdn, clientId)); } catch (EJBException e) { log.log(Level.SEVERE, "getSinkHole went south:", e); } log.log(Level.FINE, "getSinkHole took: " + (System.currentTimeMillis() - start) + " ms."); return returned; } @Asynchronous void getAsyncSinkHole(final String client, final String key, final String fqdn, final Integer clientId) { getSinkHole(client, key, fqdn, clientId); } }