Package nexj.core.rpc.jms

Source Code of nexj.core.rpc.jms.JMSRequestServer

// Copyright 2010 NexJ Systems Inc. This software is licensed under the terms of the Eclipse Public License 1.0
package nexj.core.rpc.jms;

import javax.jms.JMSException;
import javax.jms.Message;

import nexj.core.meta.Component;
import nexj.core.rpc.Request;
import nexj.core.rpc.Server;
import nexj.core.runtime.InvocationContext;
import nexj.core.util.Logger;

/**
* JMS server for receiving Request objects.
*/
public class JMSRequestServer implements JMSServer
{
   // associations
  
   /**
    * The server component.
    */
   protected Component m_server;

   /**
    * The class logger.
    */
   protected final static Logger s_logger = Logger.getLogger(JMSRequestServer.class);
  
   // operations
  
   /**
    * Sets the server component.
    * @param server The server component to set.
    */
   public void setServer(Component server)
   {
      m_server = server;
   }

   /**
    * @return The server component.
    */
   public Component getServer()
   {
      return m_server;
   }
  
   /**
    * @see nexj.core.rpc.jms.JMSServer#setReceiver(nexj.core.rpc.jms.JMSReceiver)
    */
   public void setReceiver(JMSReceiver receiver)
   {
   }
  
   /**
    * @see nexj.core.rpc.jms.JMSServer#receive(javax.jms.Message, nexj.core.runtime.InvocationContext)
    */
   public boolean receive(Message message, InvocationContext context) throws JMSException
   {
      Object obj = JMSReceiver.getObject(message);

      if (!(obj instanceof Request))
      {
         return false;
      }

      s_logger.debug("Processing a generic asynchronous server request");

      Request request = (Request)obj;

      request.setAsync(false);
      ((Server)m_server.getInstance(context)).invoke(request);

      return true;
   }
}
TOP

Related Classes of nexj.core.rpc.jms.JMSRequestServer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.