package cern.cmw.mom.test; import cern.cmw.mom.pubsub.*; import cern.cmw.mom.mapping.*; /** * This example shows how to subscribe to a device property through the pubsub API. * <P><blockquote><pre> * public void subscribeToProperty() { * String topic = MappingService.mapPropertyToTopic(DEV_CLASS, DEV_INSTANCE, DEV_PROPERTY); * String cycle_selector = MappingService.mapCycleSelectorToSelector(CYCLE_SELECTOR); * try { * subscriptionToken = sub.subscribe( topic, this, cycle_selector); * } catch(javax.jms.JMSException je) { * je.printStackTrace(); * } catch (javax.naming.NamingException ne) { * ne.printStackTrace(); * } * } * * <P></blockquote></pre> */ public class PropertySubscription implements SubscriptionListener { private Subscriber sub = null; private long subscriptionToken = 0; private static final String DEV_CLASS = "PowerConverter"; private static final String DEV_INSTANCE = "PC1"; private static final String DEV_PROPERTY = "Current"; private static final String CYCLE_SELECTOR = "Cycle_X"; /** * Constructor PropertySubscription * * */ public PropertySubscription() { try { sub = PubSubFactory.subscriber(); } catch (MOMException me) { System.out.println("MOMException raised while instantiating a Subscriber"); me.printStackTrace(); } subscribeToProperty(); } /** * Method subscribeToProperty * * */ public void subscribeToProperty() { try { String topic = MappingService.mapPropertyToTopic(DEV_CLASS, DEV_INSTANCE, DEV_PROPERTY); String cycle_selector = MappingService.mapCycleSelectorToSelector(CYCLE_SELECTOR); subscriptionToken = sub.subscribe(topic, this, cycle_selector); } catch (javax.jms.JMSException je) { je.printStackTrace(); } catch (javax.naming.NamingException ne) { ne.printStackTrace(); } catch (MOMException me) { me.printStackTrace(); } } /** * Method onMessage * * * @param message * */ public void onMessage(javax.jms.Message message) { try { System.out.println("Got a message"); sub.unSubscribe(subscriptionToken); sub.close(); } catch (javax.jms.JMSException e) { e.printStackTrace(); } } /** * Method main * * * @param args * */ public static void main(String[] args) { PropertySubscription propertySubscription1 = new PropertySubscription(); } } /*--- Formatted in Sun Java Convention Style on Mon, Feb 12, '01 ---*/ /*------ Formatted by Jindent 3.23 Gold 1.02 --- http://www.jindent.de ------*/