Skip to content

Commit 0760945

Browse files
Turned Guice dependencies into singletons to improve performance
1 parent 2cb6049 commit 0760945

15 files changed

Lines changed: 42 additions & 0 deletions

src/main/java/se/gustavkarlsson/rocketchat/jira_trigger/configuration/AppConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package se.gustavkarlsson.rocketchat.jira_trigger.configuration;
22

3+
import com.google.inject.Singleton;
34
import se.gustavkarlsson.rocketchat.jira_trigger.server.Server;
45

56
import javax.inject.Inject;
67

78
import static org.apache.commons.lang3.Validate.inclusiveBetween;
89
import static org.apache.commons.lang3.Validate.notNull;
910

11+
@Singleton
1012
public class AppConfiguration {
1113
private static final String KEY_PREFIX = "app.";
1214
static final String PORT_KEY = KEY_PREFIX + "port";

src/main/java/se/gustavkarlsson/rocketchat/jira_trigger/configuration/ConfigurationModule.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.google.inject.AbstractModule;
44
import com.google.inject.Provides;
5+
import com.google.inject.Singleton;
56
import com.moandjiezana.toml.Toml;
67
import se.gustavkarlsson.rocketchat.jira_trigger.di.qualifiers.Default;
78

@@ -30,16 +31,19 @@ protected void configure() {
3031

3132
@Provides
3233
@Default
34+
@Singleton
3335
Toml provideDefaultToml() {
3436
return new Toml().read(ConfigurationModule.class.getClassLoader().getResourceAsStream(DEFAULTS_FILE_NAME));
3537
}
3638

3739
@Provides
40+
@Singleton
3841
Toml provideTomlFromFile() {
3942
return Optional.ofNullable(configFile).map(configFile -> new Toml().read(configFile)).orElse(null);
4043
}
4144

4245
@Provides
46+
@Singleton
4347
ConfigMap provideConfigMap(@Default Toml defaultToml, @Nullable Toml configFileToml) {
4448
List<ConfigMap> configMaps = new ArrayList<>();
4549
configMaps.add(new EnvVarConfigMap(System.getenv()));

src/main/java/se/gustavkarlsson/rocketchat/jira_trigger/configuration/JiraConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
package se.gustavkarlsson.rocketchat.jira_trigger.configuration;
22

3+
import com.google.inject.Singleton;
4+
35
import javax.inject.Inject;
46
import java.net.URI;
57

68
import static org.apache.commons.lang3.Validate.notNull;
79

10+
@Singleton
811
public class JiraConfiguration {
912
private static final String KEY_PREFIX = "jira.";
1013
static final String URI_KEY = KEY_PREFIX + "uri";

src/main/java/se/gustavkarlsson/rocketchat/jira_trigger/configuration/MessageConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package se.gustavkarlsson.rocketchat.jira_trigger.configuration;
22

3+
import com.google.inject.Singleton;
34
import org.joda.time.format.DateTimeFormat;
45
import org.joda.time.format.DateTimeFormatter;
56

@@ -13,6 +14,7 @@
1314
import static java.util.stream.Collectors.toSet;
1415
import static org.apache.commons.lang3.Validate.notNull;
1516

17+
@Singleton
1618
public class MessageConfiguration {
1719
private static final String KEY_PREFIX = "message.";
1820
static final String USERNAME_KEY = KEY_PREFIX + "username";

src/main/java/se/gustavkarlsson/rocketchat/jira_trigger/configuration/RocketChatConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package se.gustavkarlsson.rocketchat.jira_trigger.configuration;
22

3+
import com.google.inject.Singleton;
4+
35
import javax.inject.Inject;
46
import java.util.Collections;
57
import java.util.HashSet;
@@ -8,6 +10,7 @@
810

911
import static org.apache.commons.lang3.Validate.notNull;
1012

13+
@Singleton
1114
public class RocketChatConfiguration {
1215
private static final String KEY_PREFIX = "rocketchat.";
1316
static final String TOKENS_KEY = KEY_PREFIX + "tokens";

src/main/java/se/gustavkarlsson/rocketchat/jira_trigger/jira/AuthHandlerProvider.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.atlassian.jira.rest.client.auth.BasicHttpAuthenticationHandler;
66
import com.google.inject.Inject;
77
import com.google.inject.Provider;
8+
import com.google.inject.Singleton;
89
import org.slf4j.Logger;
910
import se.gustavkarlsson.rocketchat.jira_trigger.configuration.JiraConfiguration;
1011

@@ -13,6 +14,7 @@
1314

1415
import static org.slf4j.LoggerFactory.getLogger;
1516

17+
@Singleton
1618
class AuthHandlerProvider implements Provider<AuthenticationHandler> {
1719
private static final Logger log = getLogger(AuthHandlerProvider.class);
1820

src/main/java/se/gustavkarlsson/rocketchat/jira_trigger/jira/JiraModule.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory;
88
import com.google.inject.AbstractModule;
99
import com.google.inject.Provides;
10+
import com.google.inject.Singleton;
1011
import se.gustavkarlsson.rocketchat.jira_trigger.configuration.JiraConfiguration;
1112

1213
import java.io.Console;
@@ -18,22 +19,26 @@ protected void configure() {
1819
}
1920

2021
@Provides
22+
@Singleton
2123
JiraRestClient provideJiraRestClient(JiraConfiguration jiraConfig, AuthenticationHandler authHandler) {
2224
AsynchronousJiraRestClientFactory factory = new AsynchronousJiraRestClientFactory();
2325
return factory.create(jiraConfig.getUri(), authHandler);
2426
}
2527

2628
@Provides
29+
@Singleton
2730
MetadataRestClient provideMetadataRestClient(JiraRestClient jiraClient) {
2831
return jiraClient.getMetadataClient();
2932
}
3033

3134
@Provides
35+
@Singleton
3236
IssueRestClient provideIssueRestClient(JiraRestClient jiraClient) {
3337
return jiraClient.getIssueClient();
3438
}
3539

3640
@Provides
41+
@Singleton
3742
Console provideConsole() {
3843
return System.console();
3944
}

src/main/java/se/gustavkarlsson/rocketchat/jira_trigger/messages/DefaultFieldCreatorsProvider.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22

33
import com.google.inject.Inject;
44
import com.google.inject.Provider;
5+
import com.google.inject.Singleton;
56
import se.gustavkarlsson.rocketchat.jira_trigger.configuration.MessageConfiguration;
67
import se.gustavkarlsson.rocketchat.jira_trigger.messages.field_creators.FieldCreator;
78

89
import java.util.List;
910

1011
import static org.apache.commons.lang3.Validate.notNull;
1112

13+
@Singleton
1214
class DefaultFieldCreatorsProvider implements Provider<List<FieldCreator>> {
1315
private final FieldCreatorMapper fieldCreatorMapper;
1416
private final MessageConfiguration messageConfig;

src/main/java/se/gustavkarlsson/rocketchat/jira_trigger/messages/ExtendedFieldCreatorsProvider.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22

33
import com.google.inject.Inject;
44
import com.google.inject.Provider;
5+
import com.google.inject.Singleton;
56
import se.gustavkarlsson.rocketchat.jira_trigger.configuration.MessageConfiguration;
67
import se.gustavkarlsson.rocketchat.jira_trigger.messages.field_creators.FieldCreator;
78

89
import java.util.List;
910

1011
import static org.apache.commons.lang3.Validate.notNull;
1112

13+
@Singleton
1214
class ExtendedFieldCreatorsProvider implements Provider<List<FieldCreator>> {
1315
private final FieldCreatorMapper fieldCreatorMapper;
1416
private final MessageConfiguration messageConfig;

src/main/java/se/gustavkarlsson/rocketchat/jira_trigger/messages/MessageModule.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.google.inject.AbstractModule;
44
import com.google.inject.Provides;
5+
import com.google.inject.Singleton;
56
import com.google.inject.TypeLiteral;
67
import se.gustavkarlsson.rocketchat.jira_trigger.configuration.JiraConfiguration;
78
import se.gustavkarlsson.rocketchat.jira_trigger.configuration.MessageConfiguration;
@@ -20,16 +21,19 @@ protected void configure() {
2021
}
2122

2223
@Provides
24+
@Singleton
2325
ToRocketChatMessageFactory provideToRocketChatMessageFactory(MessageConfiguration messageConfig) {
2426
return new ToRocketChatMessageFactory(messageConfig.getUsername(), messageConfig.getIconUrl());
2527
}
2628

2729
@Provides
30+
@Singleton
2831
FieldCreatorMapper provideFieldCreatorMapper(MessageConfiguration messageConfig) {
2932
return new FieldCreatorMapper(messageConfig.isUseRealNames(), messageConfig.getDateFormatter());
3033
}
3134

3235
@Provides
36+
@Singleton
3337
AttachmentCreator provideAttachmentConverter(MessageConfiguration messageConfig, JiraConfiguration jiraConfig, @Default List<FieldCreator> defaultFieldCreators, List<FieldCreator> extendedFieldCreators) {
3438
return new AttachmentCreator(messageConfig.isPriorityColors(), messageConfig.getDefaultColor(), defaultFieldCreators, extendedFieldCreators, jiraConfig.getUri());
3539
}

0 commit comments

Comments
 (0)