Skip to content

Commit 85b197d

Browse files
committed
Enabling support for non-Spring launching, documentation
Signed-off-by: William Dunne <william@tutuka.com>
1 parent 782ffab commit 85b197d

File tree

4 files changed

+54
-6
lines changed

4 files changed

+54
-6
lines changed

README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,38 @@ extends [Bot](/jbot-core/src/main/java/me/ramswaroop/jbot/core/slack/Bot.java) f
7676
bots as you want, just make the class extend [Bot](/jbot-core/src/main/java/me/ramswaroop/jbot/core/slack/Bot.java) class
7777
and it gets all the powers of a Slack Bot.
7878

79+
### Usage as a non-Boot application
80+
81+
```java
82+
public class SlackBot extends Bot {
83+
private String slackToken;
84+
85+
public SlackBot(String rtmUrl, String rtmToken) {
86+
this.slackToken = rtmToken;
87+
this.slackService = new SlackService();
88+
SlackDao slackDao = new SlackDao();
89+
slackDao.setRtmUrl(rtmUrl);
90+
this.slackService.setSlackDao(slackDao);
91+
}
92+
93+
public String getSlackToken() {
94+
return this.slackToken;
95+
}
96+
97+
public Bot getSlackBot() {
98+
return this;
99+
}
100+
}
101+
102+
public class Application {
103+
public static void main(String[] args) {
104+
SlackBot slackBot = new SlackBot(args[0], args[1]);
105+
slackBot.startWebSocketConnection();
106+
//something to stop the application terminating
107+
}
108+
}
109+
```
110+
79111
### Building a [Slack Integration](https://api.slack.com/) with JBot
80112

81113
You can integrate your services into Slack by any of the following ways:

jbot/src/main/java/me/ramswaroop/jbot/core/slack/Bot.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ private BotWebSocketHandler handler() {
394394
* and after which your bot becomes live.
395395
*/
396396
@PostConstruct
397-
private void startWebSocketConnection() {
397+
public void startWebSocketConnection() {
398398
slackService.startRTM(getSlackToken());
399399
if (slackService.getWebSocketUrl() != null) {
400400
WebSocketConnectionManager manager = new WebSocketConnectionManager(client(), handler(), slackService.getWebSocketUrl());

jbot/src/main/java/me/ramswaroop/jbot/core/slack/SlackDao.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,6 @@
3030
public class SlackDao {
3131

3232
private static final Logger logger = LoggerFactory.getLogger(SlackDao.class);
33-
/**
34-
* Endpoint for RTM.start()
35-
*/
3633
@Value("${rtmUrl}")
3734
private String rtmUrl;
3835
/**
@@ -84,7 +81,7 @@ public RTM deserialize(JsonParser p, DeserializationContext ctxt) {
8481
httpMessageConverters.add(jsonConverter);
8582
restTemplate.setMessageConverters(httpMessageConverters);
8683

87-
ResponseEntity<RTM> response = restTemplate.getForEntity(rtmUrl, RTM.class, slackToken);
84+
ResponseEntity<RTM> response = restTemplate.getForEntity(getRtmUrl(), RTM.class, slackToken);
8885
if (response.getBody() != null) {
8986
rtm.setWebSocketUrl(response.getBody().getWebSocketUrl());
9087
rtm.setDmChannels(response.getBody().getDmChannels());
@@ -100,4 +97,15 @@ public RTM deserialize(JsonParser p, DeserializationContext ctxt) {
10097

10198
return rtm;
10299
}
100+
101+
/**
102+
* Endpoint for RTM.start()
103+
*/
104+
public String getRtmUrl() {
105+
return rtmUrl;
106+
}
107+
108+
public void setRtmUrl(String rtmUrl) {
109+
this.rtmUrl = rtmUrl;
110+
}
103111
}

jbot/src/main/java/me/ramswaroop/jbot/core/slack/SlackService.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class SlackService {
3030
* @param slackToken
3131
*/
3232
public void startRTM(String slackToken) {
33-
RTM rtm = slackDao.startRTM(slackToken);
33+
RTM rtm = getSlackDao().startRTM(slackToken);
3434
currentUser = rtm.getUser();
3535
dmChannels = rtm.getDmChannels();
3636
webSocketUrl = rtm.getWebSocketUrl();
@@ -73,4 +73,12 @@ public String getWebSocketUrl() {
7373
public void setWebSocketUrl(String webSocketUrl) {
7474
this.webSocketUrl = webSocketUrl;
7575
}
76+
77+
public SlackDao getSlackDao() {
78+
return slackDao;
79+
}
80+
81+
public void setSlackDao(SlackDao slackDao) {
82+
this.slackDao = slackDao;
83+
}
7684
}

0 commit comments

Comments
 (0)