https://github.com/melthaw/spring-event-driven-message
The lightweight event driven message framework based on reactor or akka.
https://github.com/melthaw/spring-event-driven-message
akka java message reactor spring
Last synced: about 1 month ago
JSON representation
The lightweight event driven message framework based on reactor or akka.
- Host: GitHub
- URL: https://github.com/melthaw/spring-event-driven-message
- Owner: melthaw
- License: apache-2.0
- Created: 2017-07-21T08:08:09.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-07-21T08:08:38.000Z (almost 9 years ago)
- Last Synced: 2025-01-10T14:29:00.469Z (over 1 year ago)
- Topics: akka, java, message, reactor, spring
- Language: Java
- Homepage:
- Size: 49.8 KB
- Stars: 0
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Introduction
The lightweight event driven message framework based on reactor.
# Dependencies
* Reactor 2.0.4.RELEASE
# Usage
So far the following version is available
module name | latest version
------|------
daas-edm|1.0.2
daas-edm-email|1.0.0
daas-edm-push|1.1.3
daas-edm-sms|1.2.1
## Maven
in.clouthink.daas
daas-edm
${daas.edm.version}
in.clouthink.daas
daas-edm-email
${daas.edm.email.version}
in.clouthink.daas
daas-edm-push
${daas.edm.push.version}
in.clouthink.daas
daas-edm-sms
${daas.edm.sms.version}
## Gradle
compile "in.clouthink.daas:daas-edm:${daas_edm_version}"
## Spring Configuration
@Value("${mail.smtp.host}")
private String smtpHost;
@Value("${mail.smtp.port}")
private int smtpPort;
@Value("${mail.smtp.username}")
private String smtpUsername;
@Value("${mail.smtp.password}")
private String smtpPassword;
@Value("${sms.server.host}")
private String smsServer;
@Value("${sms.account.uid}")
private String smsUid;
@Value("${sms.account.key}")
private String smsKey;
@Value("${push.appKey}")
private String pushAppKey;
@Value("${push.appSecret}")
private String pushAppSecret;
@Value("${push.maxRetries}")
private int pushMaxRetries;
@Value("${push.timeToLive}")
private long pushTimeToLive;
@Value("${push.iosProduction}")
private boolean pushIosProduction;
private boolean initialized = false;
@Bean
public JavaMailSender javaMailSender() {
JavaMailSenderImpl result = new JavaMailSenderImpl();
result.setHost(smtpHost);
result.setPort(smtpPort);
result.setUsername(smtpUsername);
result.setPassword(smtpPassword);
result.getJavaMailProperties().put("mail.smtp.auth", true);
result.getJavaMailProperties().put("mail.smtp.starttls.enable", true);
return result;
}
@Bean
public SmsSender smsSender() {
WebChineseOptions options = new WebChineseOptions();
options.setKey(smsKey);
options.setServer(smsServer);
options.setUid(smsUid);
return new SmsSenderWebChineseImpl(options);
}
@Bean
public EmailSender emailSender() {
return new EmailSenderImpl(javaMailSender());
}
@Bean
public PushSender pushSender() {
JPushOptions options = new JPushOptions();
options.setApnsProduction(pushIosProduction);
options.setAppKey(pushAppKey);
options.setAppSecret(pushAppSecret);
options.setMaxRetries(pushMaxRetries);
options.setTimeToLive(pushTimeToLive);
return new PushSenderJPushImpl(options);
}
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
if (!initialized) {
Edms.getEdm().register("email", emailSender());
Edms.getEdm().register("sms", smsSender());
Edms.getEdm().register("push", pushSender());
initialized = true;
}
}