...
Code Block |
---|
##################################### ## Messaging integration with change log ##################################### # note, change "messagingSample" in key to be the name of the consumer. e.g. changeLog.consumer.someNameAnyName.class changeLog.consumer.rabbitMqMessagingSample.class = edu.internet2.middleware.grouper.changeLog.esb.consumer.EsbConsumer changeLog.consumer.rabbitMqMessagingSample.publisher.class = edu.internet2.middleware.grouper.changeLog.esb.consumer.EsbMessagingPublisher changeLog.consumer.rabbitMqMessagingSample.publisher.messagingSystemName = rabbitmqSystem # note, routingKey property is valid only for rabbitmq. For other messaging systems, it is ignored. changeLog.consumer.rabbitMqMessagingSample.publisher.routingKey = ## queue or topic changeLog.consumer.rabbitMqMessagingSample.publisher.messageQueueType = queue changeLog.consumer.rabbitMqMessagingSample.publisher.queueOrTopicName = sampleQueue ## this is optional if not using "id" for subjectId, need to be a subject attribute in the sources.xml #changeLog.consumer.rabbitMqMessagingSample.publisher.addSubjectAttributes = email changeLog.consumer.rabbitMqMessagingSample.regexRoutingKeyReplacementDefinition = replaceFirst('^hawaii.edu:', 'group.modify.').replaceFirst('(:enrolled|:waitlisted|:withdrawn)$', '') changeLog.consumer.rabbitMqMessagingSample.replaceRoutingKeyColonsWithPeriods = true |
Filter messages with something like this:
Code Block |
---|
changeLog.consumer.rabbitMqMessagingSample.elfilter = event.eventType =~ ['GROUP_ADD', 'GROUP_UPDATE', 'GROUP_DELETE', 'MEMBERSHIP_ADD', 'MEMBERSHIP_UPDATE', 'MEMBERSHIP_DELETE'] and event.groupName =~ '^app:.*' and event.groupName !~ '.*:filter_sources$' |
Note, you need to create the rabbitmq queue (you can do this with the admin console: http://localhost:15672/#/queues
...