Facebook
From Reliable Bird, 7 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 300
  1.  
  2. @Singleton
  3. @ManagedService(path = "/async/parking/device-changes")
  4. public class ParkingDeviceChangeAsyncService implements MessageListener {
  5.     private final Logger logger = Logger.getLogger(ParkingDeviceChangeAsyncService.class);
  6.  
  7.     @Inject
  8.     @Named("/async/parking/device-changes")
  9.     private Broadcaster broadcaster;
  10.  
  11.     private ObjectMapper mapper;
  12.  
  13.     @PostConstruct
  14.     private void init() {
  15.         mapper = new ObjectMapper();
  16.         try {
  17.             JmsConnector.getInstance().listenOnDeviceChange(this);
  18.         } catch (JMSException e) {
  19.             logger.error(e);
  20.         } catch (NamingException e) {
  21.             logger.error(e);
  22.         }
  23.     }
  24.  
  25.     @Disconnect
  26.     public void onDisconnect(AtmosphereResourceEvent event) {
  27.         if (event.isCancelled()) {
  28.             logger.debug("Browser unexpectedly disconnected, resource UUID: " + event.getResource().uuid());
  29.         } else if (event.isClosedByClient()) {
  30.             logger.debug(
  31.                     "Browser closed the connection by client action, resource UUID: " + event.getResource().uuid());
  32.         }
  33.     }
  34.  
  35.     @Message(encoders = { DeviceChangeEncoder.class })
  36.     public JsonDeviceChange onPushMessage(JsonDeviceChange changes) {
  37.         if (changes != null) {
  38.             try {
  39.                 logger.debug("Recived device change: " + mapper.writeValueAsString(changes));
  40.             } catch (JsonProcessingException e) {
  41.                 logger.error(e.getCause());
  42.                 throw new RuntimeException(e);
  43.             }
  44.             return changes;
  45.         } else {
  46.             return null;
  47.         }
  48.     }
  49.  
  50.     @Ready
  51.     public void onReady(AtmosphereResource resource) {
  52.         logger.debug("Browser connected, resource UUID: " + resource.uuid());
  53.     }
  54.  
  55.     @Resume
  56.     public void onResume(AtmosphereResourceEvent resource) {
  57.         logger.debug("Browser resumed, resource UUID: " + resource.getResource().uuid());
  58.     }
  59.  
  60.     @Override
  61.     public void onMessage(javax.jms.Message message) {
  62.         JsonDeviceChange change;
  63.         try {
  64.             change = (JsonDeviceChange) ((ObjectMessage) message).getObject();
  65.             if (broadcaster != null) {
  66.                 broadcaster.broadcast(change);
  67.             }
  68.         } catch (JMSException e) {
  69.             logger.error(e);
  70.         }
  71.     }
  72. }
  73.  
  74.  
  75.  
  76.  
  77.