All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.activemq.apollo.openwire.OpenwireMessage.scala Maven / Gradle / Ivy

The newest version!
/**
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.activemq.apollo.openwire

import org.apache.activemq.apollo.broker.Message
import java.lang.{String, Class}
import org.fusesource.hawtdispatch.BaseRetained
import org.fusesource.hawtbuf.Buffer._
import org.fusesource.hawtbuf.{UTF8Buffer, AsciiBuffer, Buffer}
import command.{ActiveMQBytesMessage, ActiveMQTextMessage, ActiveMQMessage}

/**
 * 

*

* * @author Hiram Chirino */ class OpenwireMessage(val message:ActiveMQMessage) extends BaseRetained with Message { val _id = ascii(message.getMessageId.toString) def toString(buffer:AnyRef) = if (buffer==null) null else buffer.toString override def message_group: String = if(message.getGroupID!=null ) message.getGroupID.toString else null def getProperty(name: String) = { name match { case "JMSDeliveryMode" => if( message.isPersistent) "PERSISTENT" else "NON_PERSISTENT" case "JMSPriority" => new java.lang.Integer(message.getPriority) case "JMSType" => toString(message.getType) case "JMSMessageID" => toString(message.getMessageId) case "JMSDestination" => toString(message.getDestination) case "JMSReplyTo" => toString(message.getReplyTo) case "JMSCorrelationID" => toString(message.getCorrelationId) case "JMSExpiration" => new java.lang.Long(message.getExpiration) case "JMSXDeliveryCount" => new java.lang.Integer(message.getRedeliveryCounter) case "JMSXUserID" => toString(message.getUserID) case "JMSXGroupID" => toString(message.getGroupID) case "JMSXGroupSeq" => if ( message.getGroupID!=null ) { new java.lang.Integer(message.getGroupSequence) } else { null } case x => message.getProperty(name) } } override def headers_as_json: java.util.HashMap[String, Object] = { val rc = new java.util.HashMap[String, Object]() import collection.JavaConversions._ def fillin(name:String) = { val t = getProperty(name) if ( t !=null ) { rc.put(name, t.asInstanceOf[Object]) } } fillin("JMSDeliveryMode") fillin("JMSPriority") fillin("JMSType") fillin("JMSMessageID") fillin("JMSDestination") fillin("JMSReplyTo") fillin("JMSCorrelationID") fillin("JMSExpiration") fillin("JMSXDeliveryCount") fillin("JMSXUserID") fillin("JMSXGroupID") fillin("JMSXGroupSeq") for( (x,y) <- message.getProperties ) { rc.put(x,y) } rc } def getLocalConnectionId = message.getProducerId.getConnectionId def codec = OpenwireMessageCodec def getBodyAs[T](toType : Class[T]) = { (message match { case x:ActiveMQTextMessage => if( toType == classOf[String] ) { x.getText } else if (toType == classOf[Buffer]) { utf8(x.getText) } else if (toType == classOf[AsciiBuffer]) { ascii(x.getText) } else if (toType == classOf[UTF8Buffer]) { utf8(x.getText) } else { null } case x:ActiveMQBytesMessage => null case x:ActiveMQMessage => if( toType == classOf[String] ) { "" } else if (toType == classOf[Buffer]) { ascii("") } else if (toType == classOf[AsciiBuffer]) { ascii("") } else if (toType == classOf[UTF8Buffer]) { utf8("") } else { null } }).asInstanceOf[T] } } object EndOfBrowseMessage extends Message { def retained(): Int = 0 def retain() {} def release() {} def codec = null def priority: Byte = 0 def persistent: Boolean = false def expiration: Long = 0L def getProperty(name: String): AnyRef = null def getLocalConnectionId: AnyRef = null def getBodyAs[T](toType : Class[T]) = null.asInstanceOf[T] }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy