Guest User

Untitled

a guest
Apr 25th, 2016
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.72 KB | None | 0 0
  1. package jms;
  2.  
  3. import javax.ejb.ActivationConfigProperty;
  4. import javax.ejb.EJB;
  5. import javax.ejb.MessageDriven;
  6. import javax.jms.JMSException;
  7. import javax.jms.Message;
  8. import javax.jms.MessageListener;
  9. import javax.jms.TextMessage;
  10. import javax.websocket.Session;
  11. import javax.ws.rs.core.MediaType;
  12. import javax.ws.rs.core.Response;
  13.  
  14. import org.jboss.resteasy.client.jaxrs.ResteasyClient;
  15. import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
  16. import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;
  17.  
  18. import chat.database.ChatAppDB;
  19. import model.Host;
  20. import model.User;
  21. import user.database.UserAppDB;
  22.  
  23. /*
  24.  * Prvo probati sa queue/mojQueue2. Posto u tom slucaju ovaj MDB
  25.  * ne "hvata" poruke iz JMSQueue aplikacije, queue se prazni preko
  26.  * nje. Ako i ovaj bean prima iz istog reda (mojQueue), onda
  27.  * sama aplikacija nece ni stici da dobije poruku (MDB) ce je prvi
  28.  * "pojesti"
  29.  *
  30.  * Osim toga, probati i da JMSQueue ostane upaljena, a da se
  31.  * startuje jos jedna instanca iste aplikacije (dok MDB ne "hvata"
  32.  * poruke). Videcemo da queue polako raste (sa svakim startovanjem
  33.  * aplikacije).
  34.  *
  35.  */
  36.  
  37.  
  38. @MessageDriven(activationConfig =
  39. {
  40.   @ActivationConfigProperty(propertyName="destinationType",
  41.     propertyValue="javax.jms.Queue"),
  42.   @ActivationConfigProperty(propertyName="destination",
  43.     propertyValue="java:jboss/exported/jms/queue/mojQueue")
  44. })
  45.  
  46. public class PrimalacQueueMDB implements MessageListener {
  47.     @EJB
  48.     UserAppDB userDatabase;
  49.    
  50.     @EJB
  51.     ChatAppDB chatDatabase;
  52.    
  53.     @EJB
  54.     JMSDatabase jmsDatabase;
  55.    
  56.   public void onMessage (Message msg) {
  57.     try {
  58.       TextMessage tmsg = (TextMessage) msg;
  59.       try {
  60.           String text = tmsg.getText();
  61.           long time = tmsg.getLongProperty("sent");
  62.          
  63.          
  64.          
  65.           String property = msg.getStringProperty("property");
  66.           switch (property){
  67.               case "loginUser":{
  68.                     String tokens[] = text.split(" ");
  69.                     String username = tokens[0];
  70.                     String password = tokens[1];
  71.                     String hostAlias = tokens[2];
  72.                     String sessionID = tokens[3];
  73.                    
  74.                     Host host = chatDatabase.getHostByAlias(hostAlias);
  75.                     User user = new User(username,password,host);
  76.                    
  77.                     boolean flag = userDatabase.addActiveUser(user);
  78.                     Session session = jmsDatabase.getSessionByID(sessionID);
  79.                     session.getBasicRemote().sendText("REST-Uspesan login");
  80.  
  81.                     break;
  82.               }
  83.                    
  84.               case "registerUser":{
  85.                     String tokens[] = text.split(" ");
  86.                     String username = tokens[0];
  87.                     String password = tokens[1];
  88.                    
  89.                     User user = new User(username,password);
  90.                     boolean flag = userDatabase.addRegisteredUser(user);
  91.                    
  92.                     System.out.println("RegisterUser:" + flag);
  93.               }
  94.                     break;
  95.                    
  96.               case "remove":
  97.                     System.out.println("REMOVE");
  98.                     break;
  99.               case "test":
  100.                     System.out.println("TEST PORUKA JE STIGLA IDEMOOOOOOOOO");
  101.                     break;
  102.               default:
  103.                    
  104.                     ResteasyClient client = new ResteasyClientBuilder().build();
  105.                     ResteasyWebTarget target = client.target("http://localhost:8080/ProjekatREST/rest/users/print");
  106.                     Response response = target.request(MediaType.TEXT_PLAIN).get();
  107.                     String retVal = response.readEntity(String.class);
  108.                     System.out.println("Primio JMS : " + retVal);
  109.                     break;
  110.           }
  111.          
  112.       } catch (JMSException e) {
  113.           e.printStackTrace();
  114.       }
  115.     } catch (Exception e) {
  116.       e.printStackTrace ();
  117.     }
  118.   }
  119.  
  120. }
Add Comment
Please, Sign In to add comment