Class NotificationService

java.lang.Object
org.apache.camel.builder.BuilderSupport
org.apache.camel.builder.RouteBuilder
org.openremote.manager.notification.NotificationService
All Implemented Interfaces:
org.apache.camel.builder.ModelRoutesBuilder, org.apache.camel.CamelContextAware, org.apache.camel.Ordered, org.apache.camel.RoutesBuilder, org.apache.camel.spi.HasCamelContext, org.apache.camel.spi.ResourceAware, org.openremote.model.ContainerService

public class NotificationService extends org.apache.camel.builder.RouteBuilder implements org.openremote.model.ContainerService
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
     
    protected ExecutorService
     
     
    protected org.openremote.container.message.MessageBrokerService
     
    static final String
     
     
    protected org.openremote.container.persistence.PersistenceService
     
    protected org.openremote.container.timer.TimerService
     

    Fields inherited from class org.apache.camel.builder.RouteBuilder

    log

    Fields inherited from interface org.openremote.model.ContainerService

    DEFAULT_PRIORITY, HIGH_PRIORITY, LOW_PRIORITY, MED_PRIORITY

    Fields inherited from interface org.apache.camel.Ordered

    HIGHEST, LOWEST
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    checkAccess(org.openremote.model.notification.Notification.Source source, String sourceId, List<org.openremote.model.notification.Notification.Target> targets, String realm, String userId, boolean isSuperUser, boolean isRestrictedUser, String assetId)
     
    void
     
    List<org.openremote.model.notification.SentNotification>
    getNotifications(List<Long> ids, List<String> types, Long fromTimestamp, Long toTimestamp, List<String> realmIds, List<String> userIds, List<String> assetIds)
     
    int
     
    protected Instant
    getRepeatAfterTimestamp(org.openremote.model.notification.Notification notification, Instant lastSend)
     
    org.openremote.model.notification.SentNotification
    getSentNotification(Long notificationId)
     
    void
    init(org.openremote.model.Container container)
     
    protected boolean
    okToSendNotification(org.openremote.model.notification.Notification.Source source, String sourceId, org.openremote.model.notification.Notification.Target target, org.openremote.model.notification.Notification notification)
     
    protected void
    processCriteria(StringBuilder builder, List<Object> parameters, List<Long> ids, List<String> types, Long fromTimestamp, Long toTimestamp, List<String> realmIds, List<String> userIds, List<String> assetIds, boolean isRemove)
     
    void
     
    void
    removeNotifications(List<Long> ids, List<String> types, Long fromTimestamp, Long toTimestamp, List<String> realmIds, List<String> userIds, List<String> assetIds)
     
    boolean
    sendNotification(org.openremote.model.notification.Notification notification)
     
    boolean
    sendNotification(org.openremote.model.notification.Notification notification, org.openremote.model.notification.Notification.Source source, String sourceId)
     
    void
    sendNotificationAsync(org.openremote.model.notification.Notification notification, org.openremote.model.notification.Notification.Source source, String sourceId)
     
    void
    setNotificationAcknowledged(long id, String acknowledgement)
     
    void
    setNotificationAcknowledged(long id, String acknowledgement, long timestamp)
     
    void
     
    void
    setNotificationDelivered(long id, long timestamp)
     
    void
    start(org.openremote.model.Container container)
     
    void
    stop(org.openremote.model.Container container)
     

    Methods inherited from class org.apache.camel.builder.RouteBuilder

    addLifecycleInterceptor, addRoutes, addRoutesToCamelContext, addTemplatedRoutesToCamelContext, bindToRegistry, bindToRegistry, checkInitialized, configuration, configureRest, configureRests, configureRoute, configureRouteConfiguration, configureRoutes, configureRouteTemplate, configureTemplatedRoute, customize, customize, dataFormat, errorHandler, errorHandler, expression, from, from, from, fromF, fromV, fromV, getBeans, getOrder, getResource, getRestCollection, getRestConfiguration, getRests, getRouteCollection, getRoutes, getRouteTemplateCollection, getTemplatedRouteCollection, initializeCamelContext, intercept, interceptFrom, interceptFrom, interceptSendToEndpoint, loadRoutesBuilder, loadRoutesBuilder, onCompletion, onException, onException, populateBeans, populateOrUpdateRoutes, populateRests, populateRoutes, populateRouteTemplates, populateTemplatedRoutes, populateTransformers, populateValidators, prepareModel, property, propertyInject, removeLifecycleInterceptor, rest, rest, restConfiguration, routeTemplate, setErrorHandlerFactory, setResource, setRestCollection, setRouteTemplateCollection, setTemplatedRouteCollection, templatedRoute, tokenizer, toString, transformer, updateRoutesToCamelContext, validator

    Methods inherited from class org.apache.camel.builder.BuilderSupport

    body, bodyAs, constant, constant, constant, createErrorHandlerBuilder, csimple, csimple, datasonnet, datasonnet, datasonnet, deadLetterChannel, deadLetterChannel, defaultErrorHandler, endpoint, endpoint, exceptionMessage, exchangeProperty, expression, getCamelContext, getContext, getErrorHandlerFactory, hasErrorHandlerFactory, header, java, java, joor, joor, jq, jq, jsonpath, jsonpath, jtaTransactionErrorHandler, jtaTransactionErrorHandler, jtaTransactionErrorHandler, method, method, method, method, noErrorHandler, regexReplaceAll, regexReplaceAll, setCamelContext, simple, simple, simpleF, simpleF, springTransactionErrorHandler, springTransactionErrorHandler, springTransactionErrorHandler, systemProperty, systemProperty, variable, xpath, xpath, xpath, xpath

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • NOTIFICATION_QUEUE

      public static final String NOTIFICATION_QUEUE
      See Also:
    • timerService

      protected org.openremote.container.timer.TimerService timerService
    • persistenceService

      protected org.openremote.container.persistence.PersistenceService persistenceService
    • assetStorageService

      protected AssetStorageService assetStorageService
    • identityService

      protected ManagerIdentityService identityService
    • messageBrokerService

      protected org.openremote.container.message.MessageBrokerService messageBrokerService
    • executorService

      protected ExecutorService executorService
    • notificationHandlerMap

      protected Map<String,NotificationHandler> notificationHandlerMap
  • Constructor Details

    • NotificationService

      public NotificationService()
  • Method Details

    • getPriority

      public int getPriority()
      Specified by:
      getPriority in interface org.openremote.model.ContainerService
    • init

      public void init(org.openremote.model.Container container) throws Exception
      Specified by:
      init in interface org.openremote.model.ContainerService
      Throws:
      Exception
    • start

      public void start(org.openremote.model.Container container) throws Exception
      Specified by:
      start in interface org.openremote.model.ContainerService
      Throws:
      Exception
    • stop

      public void stop(org.openremote.model.Container container) throws Exception
      Specified by:
      stop in interface org.openremote.model.ContainerService
      Throws:
      Exception
    • configure

      public void configure() throws Exception
      Specified by:
      configure in class org.apache.camel.builder.RouteBuilder
      Throws:
      Exception
    • sendNotification

      public boolean sendNotification(org.openremote.model.notification.Notification notification)
    • sendNotificationAsync

      public void sendNotificationAsync(org.openremote.model.notification.Notification notification, org.openremote.model.notification.Notification.Source source, String sourceId)
    • sendNotification

      public boolean sendNotification(org.openremote.model.notification.Notification notification, org.openremote.model.notification.Notification.Source source, String sourceId)
    • setNotificationDelivered

      public void setNotificationDelivered(long id)
    • setNotificationDelivered

      public void setNotificationDelivered(long id, long timestamp)
    • setNotificationAcknowledged

      public void setNotificationAcknowledged(long id, String acknowledgement)
    • setNotificationAcknowledged

      public void setNotificationAcknowledged(long id, String acknowledgement, long timestamp)
    • getSentNotification

      public org.openremote.model.notification.SentNotification getSentNotification(Long notificationId)
    • getNotifications

      public List<org.openremote.model.notification.SentNotification> getNotifications(List<Long> ids, List<String> types, Long fromTimestamp, Long toTimestamp, List<String> realmIds, List<String> userIds, List<String> assetIds) throws IllegalArgumentException
      Throws:
      IllegalArgumentException
    • removeNotification

      public void removeNotification(Long id)
    • removeNotifications

      public void removeNotifications(List<Long> ids, List<String> types, Long fromTimestamp, Long toTimestamp, List<String> realmIds, List<String> userIds, List<String> assetIds) throws IllegalArgumentException
      Throws:
      IllegalArgumentException
    • processCriteria

      protected void processCriteria(StringBuilder builder, List<Object> parameters, List<Long> ids, List<String> types, Long fromTimestamp, Long toTimestamp, List<String> realmIds, List<String> userIds, List<String> assetIds, boolean isRemove)
    • getRepeatAfterTimestamp

      protected Instant getRepeatAfterTimestamp(org.openremote.model.notification.Notification notification, Instant lastSend)
    • checkAccess

      protected void checkAccess(org.openremote.model.notification.Notification.Source source, String sourceId, List<org.openremote.model.notification.Notification.Target> targets, String realm, String userId, boolean isSuperUser, boolean isRestrictedUser, String assetId) throws NotificationProcessingException
      Throws:
      NotificationProcessingException
    • okToSendNotification

      protected boolean okToSendNotification(org.openremote.model.notification.Notification.Source source, String sourceId, org.openremote.model.notification.Notification.Target target, org.openremote.model.notification.Notification notification)