...
 
Commits (2)
......@@ -92,5 +92,11 @@
<dependent-module archiveName="jackson-core.jar" deploy-path="/lib" handle="module:/classpath/var/M2_REPO/com/fasterxml/jackson/core/jackson-core/2.9.9/jackson-core-2.9.9.jar">
<dependency-type>uses</dependency-type>
</dependent-module>
<dependent-module archiveName="jedis.jar" deploy-path="/lib" handle="module:/classpath/var/M2_REPO/redis/clients/jedis/2.9.0/jedis-2.9.0.jar">
<dependency-type>uses</dependency-type>
</dependent-module>
<dependent-module archiveName="commons-pool2.jar" deploy-path="/lib" handle="module:/classpath/var/M2_REPO/org/apache/commons/commons-pool2/2.4.2/commons-pool2-2.4.2.jar">
<dependency-type>uses</dependency-type>
</dependent-module>
</wb-module>
</project-modules>
......@@ -47,7 +47,14 @@
<version>4.1.7</version>
</dependency>
<!-- Declare the APIs we depend on and need for compilation. All of
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<!-- Declare the APIs we depend on and need for compilation. All of
them are provided by JBoss WildFly -->
<!-- Import the EJB API, we use provided scope as the API is included in JBoss WildFly -->
......
package DataTypes;
public class DataKey {
String key;
public DataKey() {
super();
// TODO Auto-generated constructor stub
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
}
package DataTypes;
public class DataKeyValue {
String key;
String value;
public DataKeyValue() {
super();
// TODO Auto-generated constructor stub
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
package dao;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
import javax.ejb.LocalBean;
......@@ -14,13 +17,15 @@ import modelo.Comentario;
import net.ravendb.client.documents.session.IDocumentSession;
import redis.clients.jedis.Jedis;
/**
* Session Bean implementation class UsuariosDao
*/
@Stateless
@LocalBean
public class FacadeDao implements FacadeDaoLocal {
//private Jedis jedis = JedisConnection.getJedisInstance();
private IDocumentSession session = DocumentStoreHolder.getStore().openSession();
private final static Logger LOGGER = Logger.getLogger("logger");
......@@ -235,5 +240,130 @@ public class FacadeDao implements FacadeDaoLocal {
}
}
@Override
public String putValue(String key, String value){
Jedis jedis = new Jedis("localhost", 6379);
//Jedis jedis = new Jedis("localhost", 10840);
// Jedis jedis = new Jedis("localhost", 6379);
//jedis.auth("UnPasswordSuperDificil");
System.out.println("ping!: " + jedis.ping());
jedis.set(key, value);
jedis.expire(key, 10);
jedis.get(key); //ravenDB
List<String> list = new ArrayList<String>();
HashSet<String> list2 = new HashSet<String>();
//list.add(jedis.get(key))
// jedis.lpush( "comentarios/A-181", "holahola");
//jedis.lpush( "comentarios/A-182", "Whisper");
//String task = jedis.rpop("comentarios");
// list.add(task);
//Obtener todas las keys
jedis.set( "comentarios/A-183", "holahola");
jedis.expire("comentarios/A-183", 10);
jedis.set( "comentarios/A-184", "Whisper");
jedis.expire("comentarios/A-184", 10);
list2 = (HashSet<String>) jedis.keys("*");
//list = jedis.lrange("comentarios-A-181", 0, -1);
//boolean exists = jedis.sismember("nicknames", "nickname#1");
String respuesta = "";
if (jedis.exists("comentarios/A-183")) {
respuesta = "Se encontro el comentario: " + "comentarios/A-183";
}else {
respuesta = "No encontro el comentario: " + "comentarios/A-183";
}
try {
Thread.sleep(16000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (jedis.exists("comentarios/A-183")) {
respuesta = respuesta + " luego de 16 segundos" + "Se encontro el comentario: " + "comentarios/A-183";
}else {
respuesta = respuesta + " luego de 16 segundos" + "No encontro el comentario: " + "comentarios/A-183";
}
return respuesta;
}
@Override
public String altaComentarioConDelayRedis(String key, String value){
//Jedis jedis = new Jedis("localhost", 10840);
Jedis jedis = new Jedis("localhost", 6379);
System.out.println("ping!: " + jedis.ping());
jedis.set(key, value);
jedis.expire(key, 3);
String respuesta = "";
if (jedis.exists(key)) {
respuesta = "Se encontro el comentario: " + key + " Expira en 3 segundos";
}else {
respuesta = "No encontro el comentario: " + key;
}
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (jedis.exists(key)) {
respuesta = respuesta + "\n Luego de 5 segundos: " + "Se encontro el comentario: " + key;
}else {
respuesta = respuesta + "\n Luego de 5 segundos: " + "No encontro el comentario: " + key;
}
return respuesta;
}
@Override
public String altaComentarioRedis(String key, String value){
Jedis jedis = new Jedis("localhost", 6379);
System.out.println("ping!: " + jedis.ping());
jedis.set(key, value);
jedis.expire(key, 3);
String respuesta = "";
if (jedis.exists(key)) {
respuesta = key + " : " +jedis.get(key);
}else {
respuesta = "No se logro guardar el comentario";
}
return respuesta;
}
@Override
public String obtenerComentarioRedis(String key) {
Jedis jedis = new Jedis("localhost", 6379);
String respuesta = "";
if (jedis.exists(key)) {
respuesta = "{" + key + " : " +jedis.get(key) + "}";
}else {
respuesta = "No encontro el comentario: " + key;
}
return respuesta;
}
public Boolean existeComentarioRedis(String key) {
Jedis jedis = new Jedis("localhost", 6379);
return jedis.exists(key);
}
}
package dao;
import java.util.List;
import javax.ejb.Local;
import DataTypes.DataComentario;
......@@ -18,6 +20,13 @@ public interface FacadeDaoLocal {
public DataComentario altaComentario(String id, String texto, String emailUsuario);
public Comentario obtenerComentario(String id);
public String putValue(String key, String value);
public String altaComentarioConDelayRedis(String key, String value);
public String altaComentarioRedis(String key, String value);
public String obtenerComentarioRedis(String key);
public Boolean existeComentarioRedis(String key);
public DataComentario obtenerFullComentario(String idComentario);
......
package dao;
import redis.clients.jedis.Jedis;
public class JedisConnection {
private static Jedis jedis;
static {
//Jedis jedis = new Jedis("localhost", 10840);
Jedis jedis = new Jedis("localhost", 6379);
//jedis.auth("UnPasswordSuperDificil");
// System.out.println("ping!: " + jedis.ping());
}
public static Jedis getJedisInstance() {
return jedis;
}
}
package negocio;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
......@@ -64,6 +66,35 @@ public class FacadeNegocio implements FacadeNegocioLocal {
}
@Override
public String putValue(String key, String value) {
return dao.putValue(key, value);
}
@Override
public String altaComentarioConDelayRedis(String key, String value) {
// TODO Auto-generated method stub
return dao.altaComentarioConDelayRedis(key,value);
}
@Override
public String altaComentarioRedis(String key, String value) {
return dao.altaComentarioRedis(key,value);
}
@Override
public String obtenerComentarioRedis(String key) {
// TODO Auto-generated method stub
return dao.obtenerComentarioRedis(key);
}
@Override
public Boolean existeComentarioRedis(String key) {
// TODO Auto-generated method stub
return dao.existeComentarioRedis(key);
}
}
......@@ -15,4 +15,9 @@ public interface FacadeNegocioLocal {
public DataUsuario obtenerPublicacionesUsuario(String idUsuario, String mail) throws Exception;
public DataComentario obtenerFullComentario(String idComentario) throws Exception;
public String putValue(String key, String value);
public String altaComentarioConDelayRedis(String key, String value);
public String altaComentarioRedis(String key, String value);
public String obtenerComentarioRedis(String key);
public Boolean existeComentarioRedis(String key);
}
package api;
import java.util.List;
import javax.ejb.EJB;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
......@@ -12,6 +14,8 @@ import javax.ws.rs.core.Response;
import DataTypes.DataComentarComentario;
import DataTypes.DataComentario;
import DataTypes.DataKey;
import DataTypes.DataKeyValue;
import DataTypes.DataUsuario;
import negocio.FacadeNegocioLocal;
......@@ -84,4 +88,37 @@ public class ApiRest {
return Response.ok(e.getMessage()).build();
}
}
@Path("rtest")
@GET
public Response pruebaRedis() {
String resp = negocio.altaComentarioConDelayRedis("hola", "mundo");
return Response.ok(resp,MediaType.APPLICATION_JSON).build();
}
@Path("rcomentar")
@POST
public Response altaComentarioRedis(DataKeyValue kv) {
String resp = negocio.altaComentarioRedis(kv.getKey(), kv.getValue());
return Response.ok(resp).build();
}
@Path("robtener")
@POST
public Response obtenerComentarioRedis(DataKey key) {
String resp = negocio.obtenerComentarioRedis(key.getKey());
return Response.ok(resp,MediaType.APPLICATION_JSON).build();
}
@Path("rexiste")
@POST
public Response existeComentarioRedis(DataKey key) {
Boolean bool = negocio.existeComentarioRedis(key.getKey());
return Response.ok(bool,MediaType.APPLICATION_JSON).build();
}
}
\ No newline at end of file