Java tutorial
/* * Copyright (c) 2012 by the original author * * Licensed 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.powertac.samplebroker.core; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.TextMessage; import org.apache.log4j.Logger; import org.powertac.common.XMLMessageConverter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** * Receives incoming jms messages for the broker * @author Nguyen Nguyen, John Collins */ @Service public class BrokerMessageReceiver implements MessageListener { static private Logger log = Logger.getLogger(BrokerMessageReceiver.class); @Autowired XMLMessageConverter converter; @Autowired MessageDispatcher messageDispatcher; @Override public void onMessage(Message message) { if (message instanceof TextMessage) { try { log.debug("onMessage(Message) - receiving a message"); onMessage(((TextMessage) message).getText()); } catch (JMSException e) { log.error("failed to extract text from TextMessage", e); } } } private void onMessage(String xml) { log.info("onMessage(String) - received message:\n" + xml); Object message = converter.fromXML(xml); log.debug("onMessage(String) - received message of type " + message.getClass().getSimpleName()); messageDispatcher.routeMessage(message); } }