Adicionado agente Aprendiz, Mediador e Dominio
authorpbarros <pbarros@EDEVELOPER>
Tue, 3 Apr 2012 15:43:07 +0000 (12:43 -0300)
committerpbarros <pbarros@EDEVELOPER>
Tue, 3 Apr 2012 15:43:07 +0000 (12:43 -0300)
nbproject/project.properties
src/java/org/ufcspa/simdecs/action/AutenticaUsuarioAction.java [new file with mode: 0644]
src/java/org/ufcspa/simdecs/action/SendMessageAction.java
src/java/org/ufcspa/simdecs/agent/AprendizAgent.java
src/java/org/ufcspa/simdecs/agent/AprendizAgent1.java [new file with mode: 0644]
src/java/org/ufcspa/simdecs/agent/PongAgent.java
src/java/org/ufcspa/simdecs/comunicacao/MetodoAutenticacaoAgente.java [new file with mode: 0644]
src/java/org/ufcspa/simdecs/util/JadeUtil.java
web/teste.jsp

index 0ba3c30..d0cf659 100644 (file)
@@ -54,7 +54,7 @@ includes=**
 j2ee.compile.on.save=true\r
 j2ee.deploy.on.save=true\r
 j2ee.platform=1.6-web\r
-j2ee.platform.classpath=${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/jsf-impl.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar:${j2ee.server.home}/modules/javax.resource.jar:${j2ee.server.home}/modules/endorsed/javax.annotation.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/javax.management.j2ee.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.security.auth.message.jar:${j2ee.server.home}/modules/javax.jms.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.security.jacc.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/javax.enterprise.deploy.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/javax.ejb.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/jsf-api.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.servlet.jar:${j2ee.server.home}/modules/javax.transaction.jar:${j2ee.server.home}/modules/jersey-core.jar:${j2ee.server.home}/modules/jstl-impl.jar\r
+j2ee.platform.classpath=${j2ee.server.home}/modules/jsf-api.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.enterprise.deploy.jar:${j2ee.server.home}/modules/javax.ejb.jar:${j2ee.server.home}/modules/javax.transaction.jar:${j2ee.server.home}/modules/jstl-impl.jar:${j2ee.server.home}/modules/jsf-impl.jar:${j2ee.server.home}/modules/javax.management.j2ee.jar:${j2ee.server.home}/modules/javax.jms.jar:${j2ee.server.home}/modules/endorsed/javax.annotation.jar:${j2ee.server.home}/modules/jersey-core.jar:${j2ee.server.home}/modules/javax.security.jacc.jar:${j2ee.server.home}/modules/javax.resource.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar:${j2ee.server.home}/modules/javax.security.auth.message.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.servlet.jar\r
 j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar\r
 j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar\r
 j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar:${j2ee.server.home}/modules/javax.ejb.jar\r
diff --git a/src/java/org/ufcspa/simdecs/action/AutenticaUsuarioAction.java b/src/java/org/ufcspa/simdecs/action/AutenticaUsuarioAction.java
new file mode 100644 (file)
index 0000000..b7b3388
--- /dev/null
@@ -0,0 +1,76 @@
+package org.ufcspa.simdecs.action;
+/*****************************************************************
+
+SendMessageAction carries out sending the message to the GateWayAgent
+
+*****************************************************************/
+
+import jade.wrapper.gateway.JadeGateway;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.ufcspa.simdecs.bean.BlackBoardBean;
+import org.ufcspa.simdecs.entities.Usuario;
+import org.ufcspa.simdecs.util.DbUtil;
+
+public class AutenticaUsuarioAction implements Action {
+
+       public void perform(HttpServlet servlet, HttpServletRequest request, HttpServletResponse response)
+       throws IOException, ServletException    {
+               
+
+               // create a BlackBoard for the session if it not exist
+               BlackBoardBean board = new BlackBoardBean();
+                response.setContentType( "text/xml" );
+                response.setHeader( "Cache-Control", "no-cache" );
+                EntityManager em = DbUtil.getInstance().getEntityManager();
+               PrintWriter out = response.getWriter();
+                               
+               board.setReceiver("Aprendiz");
+               board.setMessage("Autentica");
+                
+               
+               try     {
+                       JadeGateway.execute(board);
+                        
+               } catch(Exception e) {
+                    e.printStackTrace(); 
+                }
+                
+
+                out.println( "<xml>" );
+
+                Usuario user;
+                try {
+                        user = (Usuario) em.createQuery("select usu from Usuario as usu where usu.login=:login and usu.senha=:senha")
+                                                                                        .setParameter("login", request.getParameter("user").toLowerCase())
+                                                                                        .setParameter("senha", request.getParameter("pass"))
+                                                                                        .getSingleResult();    
+
+                        out.println( "<id>" + String.valueOf(user.getId()) + "</id>" );
+
+
+                } catch (NoResultException ne) {
+                        out.println( "<id>" + "0" + "</id>" );
+                } finally {         
+                    out.print(board.getMessage());
+
+                    out.println( "</xml>" );
+                    out.close();
+                }
+
+               out.flush();
+               out.close();
+               
+       }
+
+}
+
index e1158ff..a04f159 100644 (file)
@@ -18,8 +18,7 @@ import org.ufcspa.simdecs.bean.BlackBoardBean;
 
 public class SendMessageAction implements Action {
 
-       public void perform(HttpServlet servlet, HttpServletRequest request, HttpServletResponse response)
-       throws IOException, ServletException    {
+       public void perform(HttpServlet servlet, HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException  {
                
 
                // create a BlackBoard for the session if it not exist
@@ -28,16 +27,17 @@ public class SendMessageAction implements Action {
                PrintWriter out = response.getWriter();
                                
                board.setReceiver("PingJani");
-               board.setMessage("Hey whats up");
+               board.setMessage("Hey whats up//");
                
                try     {
                        JadeGateway.execute(board);
+                        
                } catch(Exception e) { e.printStackTrace(); }
                                                
                
-               out.print("Message has been sent!<br/>");
+               out.print("Messagem ja foir enviada !<br/>");
                
-               out.print("Reply:"+board.getMessage());
+               out.print("Resposta:"+board.getMessage());
                
                out.print("<br/><a href='index.html'> Go back </a>");
                
index 7030cb1..a002a1d 100644 (file)
@@ -1,11 +1,14 @@
 package org.ufcspa.simdecs.agent;
-/*****************************************************************
-
-Agent which answers all messages with a "Pong"
-
-*****************************************************************/
-
 
+/**
+ * ***************************************************************
+ *
+ * Agent which answers all messages with a "Pong"
+ *
+ ****************************************************************
+ */
+import jade.content.onto.basic.Action;
+import jade.core.AID;
 import jade.core.Agent;
 import jade.core.behaviours.*;
 import jade.lang.acl.*;
@@ -13,41 +16,75 @@ import jade.lang.acl.*;
 import jade.domain.DFService;
 import jade.domain.FIPAAgentManagement.*;
 import jade.domain.FIPAException;
+import jade.wrapper.gateway.JadeGateway;
+import java.io.PrintWriter;
+import org.ufcspa.simdecs.bean.BlackBoardBean;
+import org.ufcspa.simdecs.util.JadeUtil;
 
-public class AprendizAgent extends Agent 
-{
-
-       protected void setup() 
-       {
-               
-               // pong behaviour
-               addBehaviour(new CyclicBehaviour(this) 
-               {
-                       public void action() 
-                       {
-                               ACLMessage msg = receive();
-                               String content= "";
-                               if (msg!=null) {
-                                       content=
-                                       "<br/> - " + myAgent.getLocalName() + " received: " + msg.getContent()+
-                                       "<br/> - " + myAgent.getLocalName() + " sent: " + "Pong";
-                                  
-                                       ACLMessage reply = msg.createReply();
-                                       reply.setPerformative( ACLMessage.INFORM );
-                                       reply.setContent(content);
-                                       send(reply);
-                                       System.out.print(content);
-                               } 
-                               else block();
-                       }
-               });
-               
-       }
-               
-        protected void takeDown() 
-          {
-                 try { DFService.deregister(this); }
-                 catch (Exception e) {}
-          }    
-}
+public class AprendizAgent extends Agent {
+
+    ACLMessage msg = null;
+    String content = "";
+    ACLMessage reply = null;
+
+    protected void setup() {
+
+
+        // pong behaviour
+        addBehaviour(new CyclicBehaviour(this) {
 
+            public void action() {
+                msg = receive();
+                if (msg != null) {
+                    if (msg.getContent().trim().equals("Autentica")) {
+                        reply = msg.createReply();
+                        addBehaviour(new AprendizBehaviour());
+                    }
+
+                } else {
+                    block();
+                }
+            }
+        });
+
+    }
+
+    protected void takeDown() {
+        try {
+            DFService.deregister(this);
+        } catch (Exception e) {
+        }
+    }
+
+    public class AprendizBehaviour extends Behaviour {
+
+        private int step = 0;
+
+        @Override
+        public void action() {
+            switch (step) {
+                case 0:
+                    reply.setPerformative(ACLMessage.INFORM);
+                    reply.setContent(content);
+                    send(reply);
+                    System.out.print(content);
+                    step++;
+                    break;
+                case 1:
+                    // Executar a operação Y
+                    ACLMessage msg1 = new ACLMessage(ACLMessage.REQUEST);
+                    msg1.addReceiver(new AID("PingJane", AID.ISLOCALNAME));
+                    msg1.setContent("Hey whats up/");
+                    send(msg1);
+                    System.out.print(msg1);
+                    step++;
+                    break;
+            }
+        }
+
+        @Override
+        public boolean done() {
+            return step == 2;
+        }
+    }
+}
diff --git a/src/java/org/ufcspa/simdecs/agent/AprendizAgent1.java b/src/java/org/ufcspa/simdecs/agent/AprendizAgent1.java
new file mode 100644 (file)
index 0000000..115cdc5
--- /dev/null
@@ -0,0 +1,69 @@
+package org.ufcspa.simdecs.agent;
+/*****************************************************************
+
+Agent which answers all messages with a "Pong"
+
+*****************************************************************/
+
+
+import jade.content.onto.basic.Action;
+import jade.core.AID;
+import jade.core.Agent;
+import jade.core.behaviours.*;
+import jade.lang.acl.*;
+
+import jade.domain.DFService;
+import jade.domain.FIPAAgentManagement.*;
+import jade.domain.FIPAException;
+import jade.wrapper.gateway.JadeGateway;
+import java.io.PrintWriter;
+import org.ufcspa.simdecs.bean.BlackBoardBean;
+import org.ufcspa.simdecs.util.JadeUtil;
+
+public class AprendizAgent1 extends Agent 
+{
+
+       protected void setup() 
+       {
+               
+               // pong behaviour
+               addBehaviour(new CyclicBehaviour(this) 
+               {
+                       public void action() 
+                       {
+                               ACLMessage msg = receive();
+                               String content= "";
+                               if (msg!=null) {
+                                                if ( msg.getContent().trim().equals("Autentica")){
+                                                    
+                                                    content = "<autentica>True<autentica>";
+                                                }
+                                                else
+                                                {
+                                                   content = "<autentica>false</autentica>";
+                                                }
+                                                
+                                       //"<br/> - " + myAgent.getLocalName() + " received: " + msg.getContent()+
+                                       //"<br/> - " + myAgent.getLocalName() + " sent: " + "Pong";
+                                  
+                                       ACLMessage reply = msg.createReply();
+                                       reply.setPerformative( ACLMessage.INFORM );
+                                        reply.setContent(content);
+                                       send(reply);
+                                       System.out.print(content);
+                                        
+//                                        
+                               } 
+                               else block();
+                       }
+               });
+               
+       }
+               
+        protected void takeDown() 
+          {
+                 try { DFService.deregister(this); }
+                 catch (Exception e) {}
+          }    
+}
+
index 5541bec..730a2ce 100644 (file)
@@ -29,8 +29,8 @@ public class PongAgent extends Agent
                                String content= "";
                                if (msg!=null) {
                                        content=
-                                       "<br/> - " + myAgent.getLocalName() + " received: " + msg.getContent()+
-                                       "<br/> - " + myAgent.getLocalName() + " sent: " + "Pong";
+                                       "<br/> - " + myAgent.getLocalName() + " Recebido: " + msg.getContent()+
+                                       "<br/> - " + myAgent.getLocalName() + " Enviado: " + "-Pong-";
                                   
                                        ACLMessage reply = msg.createReply();
                                        reply.setPerformative( ACLMessage.INFORM );
diff --git a/src/java/org/ufcspa/simdecs/comunicacao/MetodoAutenticacaoAgente.java b/src/java/org/ufcspa/simdecs/comunicacao/MetodoAutenticacaoAgente.java
new file mode 100644 (file)
index 0000000..134d0f4
--- /dev/null
@@ -0,0 +1,120 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.comunicacao;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.*;
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import org.ufcspa.simdecs.action.Action;
+import org.ufcspa.simdecs.entities.Usuario;
+import org.ufcspa.simdecs.util.DbUtil;
+import org.ufcspa.simdecs.util.JadeUtil;
+
+/**
+ *
+ * @author pbarros 
+ * 
+ */
+public class MetodoAutenticacaoAgente extends HttpServlet {
+
+    /**
+     * Processes requests for both HTTP
+     * <code>GET</code> and
+     * <code>POST</code> methods.
+     *
+     * @param request servlet request
+     * @param response servlet response
+     * @throws ServletException if a servlet-specific error occurs
+     * @throws IOException if an I/O error occurs
+     */
+    private ServletConfig config;
+    public void init(ServletConfig config)
+            throws ServletException{
+        this.config=config;
+    }
+    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
+            throws ServletException, IOException {
+        
+        
+        PrintWriter out = response.getWriter();
+        
+
+        
+        
+        response.setContentType( "text/xml" );
+        response.setHeader( "Cache-Control", "no-cache" );
+        EntityManager em = DbUtil.getInstance().getEntityManager();
+        
+        out.println( "<xml>" );
+        
+        Usuario user;
+       try {
+               user = (Usuario) em.createQuery("select usu from Usuario as usu where usu.login=:login and usu.senha=:senha")
+                                                                               .setParameter("login", request.getParameter("user").toLowerCase())
+                                                                               .setParameter("senha", request.getParameter("pass"))
+                                                                               .getSingleResult();     
+                
+                out.println( "<id>" + String.valueOf(user.getId()) + "</id>" );
+                
+                
+       } catch (NoResultException ne) {
+                out.println( "<id>" + "0" + "</id>" );
+       } finally {         
+            
+            out.println( "</xml>" );
+            out.close();
+        }
+        
+        
+        
+    }
+
+    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
+    /**
+     * Handles the HTTP
+     * <code>GET</code> method.
+     *
+     * @param request servlet request
+     * @param response servlet response
+     * @throws ServletException if a servlet-specific error occurs
+     * @throws IOException if an I/O error occurs
+     */
+    @Override
+    protected void doGet(HttpServletRequest request, HttpServletResponse response)
+            throws ServletException, IOException {
+        processRequest(request, response);
+    }
+
+    /**
+     * Handles the HTTP
+     * <code>POST</code> method.
+     *
+     * @param request servlet request
+     * @param response servlet response
+     * @throws ServletException if a servlet-specific error occurs
+     * @throws IOException if an I/O error occurs
+     */
+    @Override
+    protected void doPost(HttpServletRequest request, HttpServletResponse response)
+            throws ServletException, IOException {
+        processRequest(request, response);
+    }
+
+    /**
+     * Returns a short description of the servlet.
+     *
+     * @return a String containing servlet description
+     */
+    @Override
+    public String getServletInfo() {
+        return "Short description";
+    }// </editor-fold>
+}
index f026f89..aeda60a 100644 (file)
@@ -7,6 +7,7 @@ package org.ufcspa.simdecs.util;
 import jade.wrapper.gateway.JadeGateway;\r
 import java.util.HashMap;\r
 import org.ufcspa.simdecs.action.Action;\r
+import org.ufcspa.simdecs.action.AutenticaUsuarioAction;\r
 import org.ufcspa.simdecs.action.SendMessageAction;\r
 \r
 /**\r
@@ -21,6 +22,7 @@ public class JadeUtil {
     public JadeUtil() {\r
         actions = new HashMap<String,Action>();\r
         actions.put("sendmessage", new SendMessageAction());\r
+        actions.put("autenticausuario", new AutenticaUsuarioAction());\r
         // This sets that which class will be the GateWayAgent\r
         JadeGateway.init("org.ufcspa.simdecs.agent.MyGateWayAgent", null);\r
     }\r
index d369226..73b003a 100644 (file)
@@ -31,6 +31,7 @@ Password:<input type="password" name="pass" value=""/><br>
 
 </form>
     <br>
+    
 <br><h1>Metodo para gravar LOG</h1>
 <form name="frm" action="MetodoParaGravarLog" method="Post" >
 Id:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="ext" name="id" value=""/><br>
@@ -75,6 +76,17 @@ Tipo Log:
 <br>&nbsp;&nbsp;&nbsp;<input type="submit" value="Busca" />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset" value="Reset" />
 </form> 
+    <h1>Metodo autenticação / comunicacao agentes
+<br>
+</h1>
+<form name="frm" action="MetodoAutenticacaoAgente" method="Post" >
+Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="ext" name="user" value=""/><br>
+Password:<input type="password" name="pass" value=""/><br>
+<br>&nbsp;&nbsp;&nbsp;<input type="submit" value="Sign-In" />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset" value="Reset" />
+
+</form>
+    <br>
     
     
 </body>