Skip to content

Commit

Permalink
Merge pull request #102 from TAMULib/b03883-weaver-messaging-module
Browse files Browse the repository at this point in the history
B03883 weaver messaging module
  • Loading branch information
jcreel committed May 1, 2019
2 parents 90c59c9 + d1cc1b7 commit 930a84f
Show file tree
Hide file tree
Showing 16 changed files with 162 additions and 24 deletions.
10 changes: 5 additions & 5 deletions auth/pom.xml
Expand Up @@ -12,33 +12,33 @@
<parent>
<groupId>edu.tamu.weaver</groupId>
<artifactId>webservice-parent</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</parent>

<dependencies>

<dependency>
<groupId>edu.tamu.weaver</groupId>
<artifactId>core</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</dependency>

<dependency>
<groupId>edu.tamu.weaver</groupId>
<artifactId>user</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</dependency>

<dependency>
<groupId>edu.tamu.weaver</groupId>
<artifactId>token</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</dependency>

<dependency>
<groupId>edu.tamu.weaver</groupId>
<artifactId>email</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</dependency>

<dependency>
Expand Down
2 changes: 1 addition & 1 deletion core/pom.xml
Expand Up @@ -12,7 +12,7 @@
<parent>
<groupId>edu.tamu.weaver</groupId>
<artifactId>webservice-parent</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</parent>

<dependencies>
Expand Down
4 changes: 2 additions & 2 deletions data/pom.xml
Expand Up @@ -12,15 +12,15 @@
<parent>
<groupId>edu.tamu.weaver</groupId>
<artifactId>webservice-parent</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</parent>

<dependencies>

<dependency>
<groupId>edu.tamu.weaver</groupId>
<artifactId>core</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</dependency>

<dependency>
Expand Down
2 changes: 1 addition & 1 deletion email/pom.xml
Expand Up @@ -12,7 +12,7 @@
<parent>
<groupId>edu.tamu.weaver</groupId>
<artifactId>webservice-parent</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</parent>

<dependencies>
Expand Down
32 changes: 32 additions & 0 deletions messaging/pom.xml
@@ -0,0 +1,32 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<artifactId>messaging</artifactId>

<name>Weaver Messaging</name>

<description>Messaging for Weaver</description>

<parent>
<groupId>edu.tamu.weaver</groupId>
<artifactId>webservice-parent</artifactId>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</parent>

<dependencies>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>

</dependencies>

</project>
@@ -0,0 +1,25 @@
package edu.tamu.weaver.messaging.annotation;

import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import org.springframework.core.annotation.AliasFor;
import org.springframework.jms.annotation.JmsListener;

@Documented
@JmsListener(destination = "")
@Retention(RUNTIME)
@Target(METHOD)
public @interface WeaverMessageListener {

@AliasFor(annotation = JmsListener.class, attribute = "destination")
String destination() default "default";

@AliasFor(annotation = JmsListener.class, attribute = "containerFactory")
String containerFactory() default "";

}
@@ -0,0 +1,46 @@
package edu.tamu.weaver.messaging.config;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.jms.config.DefaultJmsListenerContainerFactory;
import org.springframework.jms.config.JmsListenerContainerFactory;
import org.springframework.jms.connection.CachingConnectionFactory;
import org.springframework.jms.core.JmsTemplate;

@Configuration
@Profile("weaver-messaging")
public class MessagingConfig {

@Value("${spring.activemq.broker-url}")
private String brokerUrl;

@Bean
public CachingConnectionFactory cachingConnectionFactory() {
return new CachingConnectionFactory(defaultActiveMQConnectionFactory());
}

@Bean
public JmsTemplate jmsTopicTemplate() {
JmsTemplate jmsTemplate = new JmsTemplate(cachingConnectionFactory());
jmsTemplate.setPubSubDomain(true);
return jmsTemplate;
}

private ActiveMQConnectionFactory defaultActiveMQConnectionFactory() {
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory();
activeMQConnectionFactory.setBrokerURL(brokerUrl);
return activeMQConnectionFactory;
}

@Bean
public JmsListenerContainerFactory<?> topicContainerFactory() {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(defaultActiveMQConnectionFactory());
factory.setPubSubDomain(true);
return factory;
}

}
@@ -0,0 +1,5 @@
package edu.tamu.weaver.messaging.model;

public enum MessageAction {
CREATE, READ, UPDATE, DELETE, REFRESH;
}
@@ -0,0 +1,29 @@
package edu.tamu.weaver.messaging.service;

import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Profile;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.messaging.Message;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.stereotype.Service;

@Service
@Profile("weaver-messaging")
public class MessagingService {

private final JmsMessagingTemplate jmsTemplate;

@Autowired
public MessagingService(JmsTemplate jmsTopicTemplate) {
this.jmsTemplate = new JmsMessagingTemplate(jmsTopicTemplate);
}

public void sendMessage(String destination, Map<String, String> payload) {
Message<Map<String, String>> message = MessageBuilder.withPayload(payload).build();
this.jmsTemplate.send(destination, message);
}

}
3 changes: 2 additions & 1 deletion pom.xml
Expand Up @@ -7,7 +7,7 @@

<artifactId>webservice-parent</artifactId>

<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>

<name>Weaver Webservice Parent</name>

Expand All @@ -21,6 +21,7 @@
<module>token</module>
<module>user</module>
<module>validation</module>
<module>messaging</module>

<module>token-provider</module>

Expand Down
6 changes: 3 additions & 3 deletions reporting/pom.xml
Expand Up @@ -12,21 +12,21 @@
<parent>
<groupId>edu.tamu.weaver</groupId>
<artifactId>webservice-parent</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</parent>

<dependencies>

<dependency>
<groupId>edu.tamu.weaver</groupId>
<artifactId>core</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</dependency>

<dependency>
<groupId>edu.tamu.weaver</groupId>
<artifactId>email</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</dependency>

<dependency>
Expand Down
6 changes: 3 additions & 3 deletions token-provider/pom.xml
Expand Up @@ -13,7 +13,7 @@
<parent>
<groupId>edu.tamu.weaver</groupId>
<artifactId>webservice-parent</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</parent>

<dependencies>
Expand All @@ -26,13 +26,13 @@
<dependency>
<groupId>edu.tamu.weaver</groupId>
<artifactId>token</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</dependency>

<dependency>
<groupId>edu.tamu.weaver</groupId>
<artifactId>core</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</dependency>

<dependency>
Expand Down
2 changes: 1 addition & 1 deletion token/pom.xml
Expand Up @@ -12,7 +12,7 @@
<parent>
<groupId>edu.tamu.weaver</groupId>
<artifactId>webservice-parent</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</parent>

<dependencies>
Expand Down
6 changes: 3 additions & 3 deletions user/pom.xml
Expand Up @@ -12,7 +12,7 @@
<parent>
<groupId>edu.tamu.weaver</groupId>
<artifactId>webservice-parent</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</parent>

<dependencies>
Expand All @@ -21,13 +21,13 @@
<dependency>
<groupId>edu.tamu.weaver</groupId>
<artifactId>data</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</dependency>

<dependency>
<groupId>edu.tamu.weaver</groupId>
<artifactId>validation</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</dependency>

</dependencies>
Expand Down
4 changes: 2 additions & 2 deletions validation/pom.xml
Expand Up @@ -12,7 +12,7 @@
<parent>
<groupId>edu.tamu.weaver</groupId>
<artifactId>webservice-parent</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</parent>

<dependencies>
Expand All @@ -21,7 +21,7 @@
<dependency>
<groupId>edu.tamu.weaver</groupId>
<artifactId>data</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</dependency>

<dependency>
Expand Down
4 changes: 2 additions & 2 deletions wro/pom.xml
Expand Up @@ -13,7 +13,7 @@
<parent>
<groupId>edu.tamu.weaver</groupId>
<artifactId>webservice-parent</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</parent>

<dependencies>
Expand All @@ -22,7 +22,7 @@
<dependency>
<groupId>edu.tamu.weaver</groupId>
<artifactId>data</artifactId>
<version>2.0.0</version>
<version>2.x-MESSAGING-MODULE-SNAPSHOT</version>
</dependency>

<dependency>
Expand Down

0 comments on commit 930a84f

Please sign in to comment.