Package flex.messaging.io.amf

Examples of flex.messaging.io.amf.AmfTrace


     * @see flex.messaging.endpoints.amf.SuspendableAMFFilter#doInboundFilter(ActionContext)
     */
    protected void doInboundFilter(final ActionContext context) throws IOException
    {
        // Additional AMF packet tracing is enabled only at the debug logging level.
        AmfTrace debugTrace = Log.isDebug() ? new AmfTrace() : null;
       
        // Create an empty ActionMessage object to hold our response.
        context.setResponseMessage(new ActionMessage());
       
        // Flag to track whether we deserialize valid AMF (if we don't, we need to skip further inbound processing).
        boolean success = false;
       
        // Use the thread local serialization context.
        try
        {
            TypeMarshallingContext.setTypeMarshaller(typeMarshaller);
           
            // Deserialize the input stream into an ActionMessage object.
            MessageDeserializer deserializer = serializationContext.newMessageDeserializer();

            // Setup the deserialization context.          
            deserializer.initialize(serializationContext, input, debugTrace);

            // Record the length of the input stream for performance metrics.
            if (contentLength != -1)
                context.setDeserializedBytes(contentLength);

            // Set up the incoming MPI info if it is enabled.           
            if (context.isMPIenabled())
            {
                MessagePerformanceInfo mpi = new MessagePerformanceInfo();
                mpi.recordMessageSizes = context.isRecordMessageSizes();
                mpi.recordMessageTimes = context.isRecordMessageTimes();
                if (context.isRecordMessageTimes())
                    mpi.receiveTime = System.currentTimeMillis();
                if (context.isRecordMessageSizes())
                    mpi.messageSize = contentLength;
               
                context.setMPII(mpi);
            }

            ActionMessage m = new ActionMessage();
            context.setRequestMessage(m);
            deserializer.readMessage(m, context);
            success = true; // Continue inbound processing.
        }
        catch (EOFException eof)
        {
            context.setStatus(MessageIOConstants.STATUS_NOTAMF);
        }
        catch (IOException e)
        {
            if (Log.isDebug())
                logger.debug("IOException reading AMF message - client closed socket before sending the message?");

            throw e;
        }
        catch (Throwable t)
        {
            deserializationError(context, t);
        }
        finally
        {
            if (!success)
                setInboundAborted(true);
           
            TypeMarshallingContext.setTypeMarshaller(null);
           
            // Reset content length.
            contentLength = -1;
           
            // Use the same ActionMessage version for the response.
            ActionMessage respMsg = context.getResponseMessage();
            respMsg.setVersion(context.getVersion());

            // Log a trace of the inbound AMF message.
            if (Log.isDebug())
                logger.debug(debugTrace.toString());
        }
    }
View Full Code Here


        {
            ByteArrayOutputStream outBuffer = new ByteArrayOutputStream();                              
            ActionMessage respMesg = context.getResponseMessage();

            // Additional AMF packet tracing is enabled only at the debug logging level.
            AmfTrace debugTrace = Log.isDebug() ? new AmfTrace() : null;

            try
            {
                TypeMarshallingContext.setTypeMarshaller(typeMarshaller);
               
                // Overhead calculation is only necessary when MPI is enabled.
                long serializationOverhead=0;
                if (context.isRecordMessageTimes())
                {               
                    // Set server send time.
                    context.getMPIO().sendTime = System.currentTimeMillis();
                    if (context.isRecordMessageSizes())
                        serializationOverhead = System.currentTimeMillis();                    
                }       
               
                // Use the thread local serialization context to serialize the response.
                MessageSerializer serializer = serializationContext.newMessageSerializer();
                serializer.initialize(serializationContext, outBuffer, debugTrace);
                serializer.writeMessage(respMesg);
               
                // Keep track of serializes bytes for performance metrics.
                context.setSerializedBytes(outBuffer.size());
               
                // Serialize message again after adding info if mpio with sizing is enabled.
                if (context.isRecordMessageSizes())
                {
                    try
                    {                          
                        context.getMPIO().messageSize = outBuffer.size();
                       
                        // Reset server send time.          
                        if (context.isRecordMessageTimes())
                        {
                            serializationOverhead = System.currentTimeMillis() - serializationOverhead;
                            context.getMPIO().addToOverhead(serializationOverhead);
                            context.getMPIO().sendTime = System.currentTimeMillis();
                        }
                       
                        // Reserialize the message now that info has been added.
                        outBuffer = new ByteArrayOutputStream();
                        respMesg = context.getResponseMessage();
                        serializer = serializationContext.newMessageSerializer();
                        serializer.initialize(serializationContext, outBuffer, debugTrace);
                        serializer.writeMessage(respMesg);
                    }
                    catch(Exception e)
                    {
                        if (Log.isDebug())
                            logger.debug("MPI set up error: " + e.toString());
                    }
                }                                                                               
                context.setResponseOutput(outBuffer);
            }
            catch (Exception e)
            {
                serializationError(context, e);
            }
            finally
            {
                TypeMarshallingContext.setTypeMarshaller(null);
               
                if (Log.isDebug())
                    logger.debug(debugTrace.toString());
            }
        }       
    }
View Full Code Here

        // Serialize the error messages.
        SerializationContext sc = SerializationContext.getSerializationContext();
        MessageSerializer serializer = sc.newMessageSerializer();
        ByteArrayOutputStream outBuffer = new ByteArrayOutputStream();
        AmfTrace debugTrace = Log.isDebug() ? new AmfTrace() : null;
        serializer.initialize(sc, outBuffer, debugTrace);

        try
        {
            serializer.writeMessage(context.getResponseMessage());
View Full Code Here

    public void invoke(final ActionContext context) throws IOException
    {
        boolean success = false;

        // Log input/output for debug level
        AmfTrace debugTrace = isDebug ? new AmfTrace() : null;

        // Create an empty ActionMessage object to hold our response
        context.setResponseMessage(new ActionMessage());
        SerializationContext sc = SerializationContext.getSerializationContext();

        try
        {
            // Deserialize the input stream into an "ActionMessage" object.
            MessageDeserializer deserializer = sc.newMessageDeserializer();

            // Set up the deserialization context
            InputStream in = FlexContext.getHttpRequest().getInputStream();
            deserializer.initialize(sc, in, debugTrace);

            // record the length of the input stream for performance metrics
            int reqLen = FlexContext.getHttpRequest().getContentLength();
            context.setDeserializedBytes(reqLen);

            // set up the incoming MPI info if it is enabled
            if(context.isMPIenabled())
            {
                MessagePerformanceInfo mpi = new MessagePerformanceInfo();
                mpi.recordMessageSizes = context.isRecordMessageSizes();
                mpi.recordMessageTimes = context.isRecordMessageTimes();
                if(context.isRecordMessageTimes())
                    mpi.receiveTime = System.currentTimeMillis();
                if(context.isRecordMessageSizes())
                    mpi.messageSize =reqLen;

                context.setMPII(mpi);
            }

            ActionMessage m = new ActionMessage();
            context.setRequestMessage(m);
            deserializer.readMessage(m, context);
            success = true;
        }
        catch (EOFException eof)
        {
            context.setStatus(MessageIOConstants.STATUS_NOTAMF);
        }
        catch (IOException exc)
        {
            if (isDebug)
                logger.debug("IOException reading message - client closed socket before sending the message?");

            throw exc;
        }
        catch (Throwable t)
        {
            deserializationError(context, t);
        }
        finally
        {
            // Use the same ActionMessage version for the response
            ActionMessage respMsg = context.getResponseMessage();
            respMsg.setVersion(context.getVersion());

            if (isDebug)
                logger.debug(debugTrace.toString());
        }

        try
        {
            if (success)
            {
                next.invoke(context);
            }
        }
        catch (Throwable t)
        {
            unhandledError(context, t);
        }
        finally
        {
            // serialize output
            if (context.getStatus() != MessageIOConstants.STATUS_NOTAMF)
            {
                ByteArrayOutputStream outBuffer = new ByteArrayOutputStream();
                ActionMessage respMesg = context.getResponseMessage();

                if (isDebug)
                {
                    debugTrace = new AmfTrace();
                }

                try
                {
                    // overhead calculation is only necessary when MPI is enabled
                    long serializationOverhead=0;
                    if(context.isRecordMessageTimes())
                    {
                        // set server send time
                        context.getMPIO().sendTime = System.currentTimeMillis();
                        if(context.isRecordMessageSizes())
                            serializationOverhead = System.currentTimeMillis();
                    }
                    MessageSerializer serializer = sc.newMessageSerializer();
                    serializer.initialize(sc, outBuffer, debugTrace);
                    serializer.writeMessage(respMesg);

                    // keep track of serializes bytes for performance metrics
                    context.setSerializedBytes(outBuffer.size());

                    // serialized message again after adding info if mpio with sizing is enabled
                    if(context.isRecordMessageSizes())
                    {
                        try
                        {
                            context.getMPIO().messageSize = outBuffer.size();

                            // reset server send time
                            if(context.isRecordMessageTimes())
                            {
                                serializationOverhead = System.currentTimeMillis() - serializationOverhead;
                                context.getMPIO().addToOverhead(serializationOverhead);
                                context.getMPIO().sendTime = System.currentTimeMillis();
                            }

                            // reserialize the message now that info has been added
                            outBuffer = new ByteArrayOutputStream();
                            respMesg = context.getResponseMessage();
                            serializer = sc.newMessageSerializer();
                            serializer.initialize(sc, outBuffer, debugTrace);
                            serializer.writeMessage(respMesg);
                        }
                        catch(Exception e)
                        {
                            if (isDebug)
                                logger.debug("MPI set up error: " + e.toString());
                        }
                    }
                    context.setResponseOutput(outBuffer);
                }
                catch (Exception e)
                {
                    serializationError(context, e);
                }
                finally
                {
                    if (isDebug)
                        logger.debug(debugTrace.toString());
                }
            }
        }
    }
View Full Code Here

        // serialize the error messages
        SerializationContext sc = SerializationContext.getSerializationContext();
        MessageSerializer serializer = sc.newMessageSerializer();
        ByteArrayOutputStream outBuffer = new ByteArrayOutputStream();
        AmfTrace debugTrace = isDebug ? new AmfTrace() : null;
        serializer.initialize(sc, outBuffer, debugTrace);

        try
        {
            serializer.writeMessage(context.getResponseMessage());
View Full Code Here

    }

    requestMessage.addBody(amfMessage);

    AmfMessageSerializer amfMessageSerializer = new AmfMessageSerializer();
    amfMessageSerializer.initialize(SerializationContext.getSerializationContext(), out, new AmfTrace());
    amfMessageSerializer.writeMessage(requestMessage);

    out.close();
  }
View Full Code Here

    public void invoke(final ActionContext context) throws IOException
    {
        boolean success = false;

        // Log input/output for debug level
        AmfTrace debugTrace = isDebug ? new AmfTrace() : null;

        // Create an empty ActionMessage object to hold our response
        context.setResponseMessage(new ActionMessage());
        SerializationContext sc = SerializationContext.getSerializationContext();

        try
        {
            // Deserialize the input stream into an "ActionMessage" object.
            MessageDeserializer deserializer = sc.newMessageDeserializer();

            // Set up the deserialization context
            InputStream in = FlexContext.getHttpRequest().getInputStream();
            deserializer.initialize(sc, in, debugTrace);

            // record the length of the input stream for performance metrics
            int reqLen = FlexContext.getHttpRequest().getContentLength();
            context.setDeserializedBytes(reqLen);

            // set up the incoming MPI info if it is enabled           
            if(context.isMPIenabled())
            {
              MessagePerformanceInfo mpi = new MessagePerformanceInfo();
              mpi.recordMessageSizes = context.isRecordMessageSizes();
              mpi.recordMessageTimes = context.isRecordMessageTimes();
              if(context.isRecordMessageTimes())
                mpi.receiveTime = System.currentTimeMillis();
              if(context.isRecordMessageSizes())
                mpi.messageSize =reqLen;
             
              context.setMPII(mpi);
            }

            ActionMessage m = new ActionMessage();
            context.setRequestMessage(m);
            deserializer.readMessage(m, context);
            success = true;
        }
        catch (EOFException eof)
        {
            context.setStatus(MessageIOConstants.STATUS_NOTAMF);
        }
        catch (IOException exc)
        {
            if (isDebug)
                logger.debug("IOException reading message - client closed socket before sending the message?");

            throw exc;
        }
        catch (Throwable t)
        {
            deserializationError(context, t);
        }
        finally
        {
            // Use the same ActionMessage version for the response
            ActionMessage respMsg = context.getResponseMessage();
            respMsg.setVersion(context.getVersion());

            if (isDebug)
                logger.debug(debugTrace.toString());
        }

        try
        {
            if (success)
            {
                next.invoke(context);
            }
        }
        catch (Throwable t)
        {
            unhandledError(context, t);
        }
        finally
        {
            // serialize output
            if (context.getStatus() != MessageIOConstants.STATUS_NOTAMF)
            {
                ByteArrayOutputStream outBuffer = new ByteArrayOutputStream();                              
                ActionMessage respMesg = context.getResponseMessage();

                if (isDebug)
                {
                    debugTrace = new AmfTrace();
                }

                try
                {
                    // overhead calculation is only necessary when MPI is enabled
                    long serializationOverhead=0;
                    if(context.isRecordMessageTimes())
                    {               
                      // set server send time
                      context.getMPIO().sendTime = System.currentTimeMillis();
                        if(context.isRecordMessageSizes())
                          serializationOverhead = System.currentTimeMillis();                     
                    }                  
                    MessageSerializer serializer = sc.newMessageSerializer();
                    serializer.initialize(sc, outBuffer, debugTrace);
                    serializer.writeMessage(respMesg);
                   
                    // keep track of serializes bytes for performance metrics
                    context.setSerializedBytes(outBuffer.size());
                   
                    // serialized message again after adding info if mpio with sizing is enabled
                    if(context.isRecordMessageSizes())
                    {
                      try
                      {                       
                        context.getMPIO().messageSize = outBuffer.size();
                       
                        // reset server send time     
                        if(context.isRecordMessageTimes())
                        {
                            serializationOverhead = System.currentTimeMillis() - serializationOverhead;
                            context.getMPIO().addToOverhead(serializationOverhead);
                              context.getMPIO().sendTime = System.currentTimeMillis();
                        }
                       
                        // reserialize the message now that info has been added
                        outBuffer = new ByteArrayOutputStream();
                        respMesg = context.getResponseMessage();
                        serializer = sc.newMessageSerializer();
                        serializer.initialize(sc, outBuffer, debugTrace);
                        serializer.writeMessage(respMesg);
                      }
                      catch(Exception e)
                      {
                            if (isDebug)
                                logger.debug("MPI set up error: " + e.toString());
                      }
                    }                                                                               
                    context.setResponseOutput(outBuffer);
                }
                catch (Exception e)
                {
                    serializationError(context, e);
                }
                finally
                {
                    if (isDebug)
                        logger.debug(debugTrace.toString());
                }
            }
        }
    }
View Full Code Here

        // serialize the error messages
        SerializationContext sc = SerializationContext.getSerializationContext();
        MessageSerializer serializer = sc.newMessageSerializer();
        ByteArrayOutputStream outBuffer = new ByteArrayOutputStream();
        AmfTrace debugTrace = isDebug ? new AmfTrace() : null;
        serializer.initialize(sc, outBuffer, debugTrace);

        try
        {
            serializer.writeMessage(context.getResponseMessage());
View Full Code Here

  // Ignore
    }

    public void setBytes(String contentType, byte[] messageBytes) {
  this.messageBytes = (byte[]) messageBytes.clone();
  AmfTrace trace = new AmfTrace();
  trace = parseAMFMessage();
  addTreeTable();
  updateXmlArea();
  updateStringsArea(trace);
  updateHexArea();
View Full Code Here

  encodeAMFMessage();
  return (byte[]) messageBytes.clone();
    }

    private AmfTrace parseAMFMessage() {
  AmfTrace trace = null;
  try {
      serialContext = SerializationContext.getSerializationContext();
      serialContext.instantiateTypes = false;

      trace = new AmfTrace();

      AmfMessageDeserializer amfder = new AmfMessageDeserializer();
      amfder.initialize(serialContext, new ByteArrayInputStream(messageBytes), trace);

      message = new ActionMessage();
View Full Code Here

TOP

Related Classes of flex.messaging.io.amf.AmfTrace

Copyright © 2018 www.massapicom. 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.