Unicon/grouper-amqp-esb-publisher

Name: grouper-amqp-esb-publisher

Owner: Unicon, Inc.

Description: Grouper ESB Publisher to AMQP broker exchanges

Created: 2015-03-17 20:26:08.0

Updated: 2018-04-02 02:07:46.0

Pushed: 2017-10-31 23:51:07.0

Homepage: null

Size: 70

Language: Groovy

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Grouper ESB AMQP Publisher

This is an implementation of Grouper ESB changelog publisher which pushes Grouper ESB JSON messages over to a configured AMQP broker exchange.

Current release

1.0.0-RC1

Prerequisites
Installation and configuration
edicated Grouper ESB logging
j.appender.grouper_esb                            = org.apache.log4j.DailyRollingFileAppender
j.appender.grouper_esb.File                       = ${grouper.home}logs/grouper_esb.log
j.appender.grouper_esb.DatePattern                = '.'yyyy-MM-dd
j.appender.grouper_esb.layout                     = org.apache.log4j.PatternLayout
j.appender.grouper_esb.layout.ConversionPattern   = %d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n

j.logger.net.unicon.grouper.changelog.esb.publisher = DEBUG, grouper_esb
B changelog consumer
geLog.consumer.esbAmqp.class = edu.internet2.middleware.grouper.changeLog.esb.consumer.EsbConsumer
 every minute
geLog.consumer.esbAmqp.quartzCron = 0 * * * * ?
geLog.consumer.esbAmqp.elfilter = event.eventType eq 'GROUP_DELETE' || event.eventType eq 'GROUP_ADD' || event.eventType eq 'MEMBERSHIP_DELETE' || event.eventType eq 'MEMBERSHIP_ADD'

geLog.consumer.esbAmqp.publisher.class = net.unicon.grouper.changelog.esb.publisher.EsbAmqpPublisher
geLog.consumer.esbAmqp.hostName = rabbit.docker
geLog.consumer.esbAmqp.defaultExchange = amq.topic

EL-based regex replacement definition. The chain of 'replaceFirst' method calls will be applied to an extracted group name (String) at runtime
e: http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#replaceFirst(java.lang.String,%20java.lang.String)
geLog.consumer.esbAmqp.regexReplacementDefinition = replaceFirst('^hawaii.edu:', 'group.modify.').replaceFirst('(:enrolled|:waitlisted|:withdrawn)$', '')
geLog.consumer.esbAmqp.replaceRoutingKeyColonsWithPeriods = true

Custom required properties are:

Sample configuration files are log4j.properties and grouper-loader.properties

Acknowledgements

Unicon's work on the RabbitMQ ESB Publisher is funded through a project with the University of Hawaii.

These individuals have provided guidance through out the development process:


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.