1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 package org.apache.hadoop.chukwa.datacollection.adaptor.jms; 19 20 import javax.jms.Message; 21 import javax.jms.JMSException; 22 23 /** 24 * Class that knows how to transform a JMS Message to a byte array. The byte 25 * array will become the bytes bound to the Chukwa chunk. 26 */ 27 public interface JMSMessageTransformer { 28 29 /** 30 * Parse any transformer-specific args to initialize the transformer. Return 31 * a null if the arguments could not be parsed. This method will always be 32 * invoked before transform is called only if transformer arguments were 33 * passed. If they weren't, this method will never be called. 34 * 35 * @param args Arguments needed to configur the transformer. 36 * @return adaptor id 37 */ 38 public String parseArgs(String args); 39 40 /** 41 * Transform a Message to an array of bytes. Return null for a message that 42 * should be ignored. 43 * 44 * @param message JMS message received by a JMS Adaptor. 45 * @return the bytes that should be bound to the Chukwa chunk. 46 * @throws JMSException if there is problem process message 47 */ 48 public byte[] transform(Message message) throws JMSException; 49 }