Date: Thu, 28 Mar 2024 11:10:32 +0000 (UTC) Message-ID: <642959226.6193.1711624232117@ip-10-10-7-29.ec2.internal> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_6192_233363548.1711624232115" ------=_Part_6192_233363548.1711624232115 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
The info on this page applies to Grouper 2.5 and above.
The Grouper Messaging system interface has an ActiveMQ implementation.= p>
On Mac, Download ActiveMQ from http://activemq.apach= e.org/activemq-5150-release.html. Unzip the file and go to bin director= y. Run "./activemq console". It will launch ActiveMQ server and the web cli= ent.
Login to = http://localhost:8161 to access the web UI.
Notes:
Set the following properties in grouper.client.properties file
# class= that implements edu.internet2.middleware.grouperClient.messaging.GrouperMe= ssagingSystem grouper.messaging.system.activeMqSystem.class =3D edu.internet2.middleware.= grouperMessagingActiveMQ.GrouperMessagingActiveMQSystem grouper.messaging.system.activeMqSystem.name=3DactiveMqSystem # host address of activemq queue grouper.messaging.system.activeMqSystem.host =3D localhost # port of activemq queue grouper.messaging.system.activeMqSystem.port =3D 5672 # username of activemq queue grouper.messaging.system.activeMqSystem.username =3D # password of activemq queue grouper.messaging.system.activeMqSystem.password =3D # number of seconds to sleep while waiting grouper.messaging.system.activeMqSystem.polling.sleep.seconds =3D 5 grouper.messaging.system.activeMqSystem.defaultPageSize =3D 5 grouper.messaging.system.activeMqSystem.maxPageSize =3D 10
Here is an esb example of sending messages
#######= ############################## ## Messaging integration with ESB, send change log entries to a messaging s= ystem ##################################### # note, change "messagingEsb" in key to be the name of the consumer. e.g. = changeLog.consumer.myAzureConsumer.class # note, routingKey property is valid only for rabbitmq. For other messaging= systems, it is ignored. # {valueType: "class", readOnly: true, mustExtendClass: "edu.internet2.midd= leware.grouper.changeLog.ChangeLogConsumerBase"} changeLog.consumer.cmuActiveMQ.class =3D edu.internet2.middleware.grouper.c= hangeLog.esb.consumer.EsbConsumer # quartz cron # {valueType: "cron"} changeLog.consumer.cmuActiveMQ.quartzCron =3D 0 * * * * ? # el filter # {valueType: "string", regex: "^changeLog\\.consumer\\.([^.]+)\\.elfilter$= "} changeLog.consumer.cmuActiveMQ.elfilter =3D event.eventType eq 'GROUP_DELET= E' || event.eventType eq 'GROUP_ADD' || event.eventType eq 'MEMBERSHIP_DELE= TE' || event.eventType eq 'MEMBERSHIP_ADD' # publishing class # {valueType: "class", readOnly: true, mustExtendClass: "edu.internet2.midd= leware.grouper.changeLog.esb.consumer.EsbMessagingPublisher"} changeLog.consumer.cmuActiveMQ.publisher.class =3D edu.internet2.middleware= .grouper.changeLog.esb.consumer.EsbMessagingPublisher # messaging system name # {valueType: "string", regex: "^changeLog\\.consumer\\.([^.]+)\\.messaging= SystemName$"} changeLog.consumer.cmuActiveMQ.publisher.messagingSystemName =3D cmuActiveM= Q # queue or topic # {valueType: "string", regex: "^changeLog\\.consumer\\.([^.]+)\\.publisher= \\.messageQueueType$"} changeLog.consumer.cmuActiveMQ.publisher.messageQueueType =3D queue # queue or topic name # {valueType: "string", regex: "^changeLog\\.consumer\\.([^.]+)\\.publisher= \\.queueOrTopicName$"} changeLog.consumer.cmuActiveMQ.publisher.queueOrTopicName =3D test.grouper.= ws