瀏覽代碼

Merge pull request #768 from csmith/master

Remove config dependency on ClientInfo.
pull/769/head
Greg Holmes 7 年之前
父節點
當前提交
b515700546

+ 3
- 9
src/main/java/com/dmdirc/config/ConfigManager.java 查看文件

22
 import com.dmdirc.config.provider.ConfigChangeListener;
22
 import com.dmdirc.config.provider.ConfigChangeListener;
23
 import com.dmdirc.config.provider.ConfigProvider;
23
 import com.dmdirc.config.provider.ConfigProvider;
24
 import com.dmdirc.config.provider.ConfigProviderMigrator;
24
 import com.dmdirc.config.provider.ConfigProviderMigrator;
25
-import com.dmdirc.util.ClientInfo;
26
 import com.dmdirc.util.validators.Validator;
25
 import com.dmdirc.util.validators.Validator;
27
 import com.google.common.collect.ArrayListMultimap;
26
 import com.google.common.collect.ArrayListMultimap;
28
 import com.google.common.collect.Multimap;
27
 import com.google.common.collect.Multimap;
56
     private final ConfigBinder binder;
55
     private final ConfigBinder binder;
57
     /** The manager to use to fetch global state. */
56
     /** The manager to use to fetch global state. */
58
     private final IdentityManager manager;
57
     private final IdentityManager manager;
59
-    /** Client info object. */
60
-    private final ClientInfo clientInfo;
61
     /** The protocol this manager is for. */
58
     /** The protocol this manager is for. */
62
     private String protocol;
59
     private String protocol;
63
     /** The ircd this manager is for. */
60
     /** The ircd this manager is for. */
81
      * @since 0.6.3
78
      * @since 0.6.3
82
      */
79
      */
83
     ConfigManager(
80
     ConfigManager(
84
-            final ClientInfo clientInfo,
85
             final IdentityManager manager,
81
             final IdentityManager manager,
86
             final String protocol, final String ircd,
82
             final String protocol, final String ircd,
87
             final String network, final String server) {
83
             final String network, final String server) {
88
-        this(clientInfo, manager, protocol, ircd, network, server, "<Unknown>");
84
+        this(manager, protocol, ircd, network, server, "<Unknown>");
89
     }
85
     }
90
 
86
 
91
     /**
87
     /**
101
      * @since 0.6.3
97
      * @since 0.6.3
102
      */
98
      */
103
     ConfigManager(
99
     ConfigManager(
104
-            final ClientInfo clientInfo,
105
             final IdentityManager manager,
100
             final IdentityManager manager,
106
             final String protocol, final String ircd,
101
             final String protocol, final String ircd,
107
             final String network, final String server, final String channel) {
102
             final String network, final String server, final String channel) {
108
         final String chanName = channel + '@' + network;
103
         final String chanName = channel + '@' + network;
109
 
104
 
110
-        this.clientInfo = clientInfo;
111
         this.manager = manager;
105
         this.manager = manager;
112
         this.protocol = protocol;
106
         this.protocol = protocol;
113
         this.ircd = ircd;
107
         this.ircd = ircd;
129
         doStats(domain, option);
123
         doStats(domain, option);
130
 
124
 
131
         if (VERSION_DOMAIN.equals(domain)) {
125
         if (VERSION_DOMAIN.equals(domain)) {
132
-            final String response = clientInfo.getVersionConfigSetting(VERSION_DOMAIN, option);
126
+            final String response = manager.getVersionSettings().getOption(VERSION_DOMAIN, option);
133
             if (response == null || validator.validate(response).isFailure()) {
127
             if (response == null || validator.validate(response).isFailure()) {
134
                 return null;
128
                 return null;
135
             }
129
             }
153
         doStats(domain, option);
147
         doStats(domain, option);
154
 
148
 
155
         if (VERSION_DOMAIN.equals(domain)) {
149
         if (VERSION_DOMAIN.equals(domain)) {
156
-            final String response = clientInfo.getVersionConfigSetting(VERSION_DOMAIN, option);
150
+            final String response = manager.getVersionSettings().getOption(VERSION_DOMAIN, option);
157
             return response != null && !validator.validate(response).isFailure();
151
             return response != null && !validator.validate(response).isFailure();
158
         }
152
         }
159
 
153
 

+ 3
- 9
src/main/java/com/dmdirc/config/ConfigModule.java 查看文件

24
 import com.dmdirc.interfaces.config.IdentityFactory;
24
 import com.dmdirc.interfaces.config.IdentityFactory;
25
 import com.dmdirc.logger.ErrorManager;
25
 import com.dmdirc.logger.ErrorManager;
26
 import com.dmdirc.ui.WarningDialog;
26
 import com.dmdirc.ui.WarningDialog;
27
-import com.dmdirc.util.ClientInfo;
28
-
27
+import dagger.Module;
28
+import dagger.Provides;
29
 import java.awt.GraphicsEnvironment;
29
 import java.awt.GraphicsEnvironment;
30
 import java.io.IOException;
30
 import java.io.IOException;
31
 import java.nio.file.Files;
31
 import java.nio.file.Files;
32
 import java.nio.file.Path;
32
 import java.nio.file.Path;
33
 import java.text.SimpleDateFormat;
33
 import java.text.SimpleDateFormat;
34
 import java.util.Date;
34
 import java.util.Date;
35
-
36
 import javax.inject.Singleton;
35
 import javax.inject.Singleton;
37
 
36
 
38
-import dagger.Module;
39
-import dagger.Provides;
40
-
41
 import static com.dmdirc.commandline.CommandLineOptionsModule.Directory;
37
 import static com.dmdirc.commandline.CommandLineOptionsModule.Directory;
42
 import static com.dmdirc.commandline.CommandLineOptionsModule.DirectoryType;
38
 import static com.dmdirc.commandline.CommandLineOptionsModule.DirectoryType;
43
 
39
 
55
             @Directory(DirectoryType.IDENTITIES) final Path identitiesDirectory,
51
             @Directory(DirectoryType.IDENTITIES) final Path identitiesDirectory,
56
             @Directory(DirectoryType.ERRORS) final Path errorsDirectory,
52
             @Directory(DirectoryType.ERRORS) final Path errorsDirectory,
57
             final CommandLineParser commandLineParser,
53
             final CommandLineParser commandLineParser,
58
-            final ClientInfo clientInfo,
59
             final ErrorManager errorManager) {
54
             final ErrorManager errorManager) {
60
-        final IdentityManager identityManager = new IdentityManager(baseDirectory,
61
-                identitiesDirectory, clientInfo);
55
+        final IdentityManager identityManager = new IdentityManager(baseDirectory, identitiesDirectory);
62
         errorManager.initialise(identityManager.getGlobalConfiguration());
56
         errorManager.initialise(identityManager.getGlobalConfiguration());
63
         identityManager.loadVersionIdentity();
57
         identityManager.loadVersionIdentity();
64
         try {
58
         try {

+ 5
- 22
src/main/java/com/dmdirc/config/IdentityManager.java 查看文件

17
 
17
 
18
 package com.dmdirc.config;
18
 package com.dmdirc.config;
19
 
19
 
20
-import com.dmdirc.Precondition;
21
 import com.dmdirc.config.provider.AggregateConfigProvider;
20
 import com.dmdirc.config.provider.AggregateConfigProvider;
22
 import com.dmdirc.config.provider.ConfigProvider;
21
 import com.dmdirc.config.provider.ConfigProvider;
23
 import com.dmdirc.config.provider.ConfigProviderMigrator;
22
 import com.dmdirc.config.provider.ConfigProviderMigrator;
24
 import com.dmdirc.interfaces.config.IdentityController;
23
 import com.dmdirc.interfaces.config.IdentityController;
25
 import com.dmdirc.interfaces.config.IdentityFactory;
24
 import com.dmdirc.interfaces.config.IdentityFactory;
26
-import com.dmdirc.util.ClientInfo;
27
 import com.dmdirc.util.io.ConfigFile;
25
 import com.dmdirc.util.io.ConfigFile;
28
 import com.dmdirc.util.io.FileUtils;
26
 import com.dmdirc.util.io.FileUtils;
29
 import com.dmdirc.util.io.InvalidConfigFileException;
27
 import com.dmdirc.util.io.InvalidConfigFileException;
30
-
31
 import com.google.common.collect.ArrayListMultimap;
28
 import com.google.common.collect.ArrayListMultimap;
32
 import com.google.common.collect.Multimap;
29
 import com.google.common.collect.Multimap;
33
-
34
 import java.io.IOException;
30
 import java.io.IOException;
35
 import java.lang.ref.WeakReference;
31
 import java.lang.ref.WeakReference;
36
 import java.net.URISyntaxException;
32
 import java.net.URISyntaxException;
46
 import java.util.Objects;
42
 import java.util.Objects;
47
 import java.util.concurrent.ConcurrentHashMap;
43
 import java.util.concurrent.ConcurrentHashMap;
48
 import java.util.stream.Collectors;
44
 import java.util.stream.Collectors;
49
-
50
 import org.slf4j.Logger;
45
 import org.slf4j.Logger;
51
 import org.slf4j.LoggerFactory;
46
 import org.slf4j.LoggerFactory;
52
 
47
 
86
      */
81
      */
87
     private final Multimap<String, WeakReference<ConfigProviderListener>> listeners =
82
     private final Multimap<String, WeakReference<ConfigProviderListener>> listeners =
88
             ArrayListMultimap.create();
83
             ArrayListMultimap.create();
89
-    /** Client info objecty. */
90
-    private final ClientInfo clientInfo;
91
     /** The identity file used for the global config. */
84
     /** The identity file used for the global config. */
92
     private ConfigFileBackedConfigProvider config;
85
     private ConfigFileBackedConfigProvider config;
93
     /** The identity file used for addon defaults. */
86
     /** The identity file used for addon defaults. */
103
      * @param baseDirectory       The BASE config directory.
96
      * @param baseDirectory       The BASE config directory.
104
      * @param identitiesDirectory The directory to store identities in.
97
      * @param identitiesDirectory The directory to store identities in.
105
      */
98
      */
106
-    public IdentityManager(final Path baseDirectory, final Path identitiesDirectory,
107
-            final ClientInfo clientInfo) {
99
+    public IdentityManager(final Path baseDirectory, final Path identitiesDirectory) {
108
         this.configDirectory = baseDirectory;
100
         this.configDirectory = baseDirectory;
109
         this.identitiesDirectory = identitiesDirectory;
101
         this.identitiesDirectory = identitiesDirectory;
110
-        this.clientInfo = clientInfo;
111
     }
102
     }
112
 
103
 
113
     /**
104
     /**
203
      *
194
      *
204
      * @param dir The directory to be loaded
195
      * @param dir The directory to be loaded
205
      */
196
      */
206
-    @Precondition({
207
-        "The specified File is not null",
208
-        "The specified File is a directory"
209
-    })
210
     private void loadUser(final Path dir) {
197
     private void loadUser(final Path dir) {
211
         checkNotNull(dir);
198
         checkNotNull(dir);
212
         checkArgument(Files.isDirectory(dir));
199
         checkArgument(Files.isDirectory(dir));
648
     @Override
635
     @Override
649
     public ConfigProviderMigrator createMigratableConfig(final String protocol,
636
     public ConfigProviderMigrator createMigratableConfig(final String protocol,
650
             final String ircd, final String network, final String server) {
637
             final String ircd, final String network, final String server) {
651
-        final ConfigManager configManager = new ConfigManager(clientInfo, this, protocol,
652
-                ircd, network, server);
638
+        final ConfigManager configManager = new ConfigManager(this, protocol, ircd, network, server);
653
         setUpConfigManager(configManager);
639
         setUpConfigManager(configManager);
654
         return new ConfigManagerMigrator(configManager);
640
         return new ConfigManagerMigrator(configManager);
655
     }
641
     }
657
     @Override
643
     @Override
658
     public ConfigProviderMigrator createMigratableConfig(final String protocol,
644
     public ConfigProviderMigrator createMigratableConfig(final String protocol,
659
             final String ircd, final String network, final String server, final String channel) {
645
             final String ircd, final String network, final String server, final String channel) {
660
-        final ConfigManager configManager = new ConfigManager(clientInfo, this, protocol,
661
-                ircd, network, server, channel);
646
+        final ConfigManager configManager = new ConfigManager(this, protocol, ircd, network, server, channel);
662
         setUpConfigManager(configManager);
647
         setUpConfigManager(configManager);
663
         return new ConfigManagerMigrator(configManager);
648
         return new ConfigManagerMigrator(configManager);
664
     }
649
     }
666
     @Override
651
     @Override
667
     public AggregateConfigProvider createAggregateConfig(final String protocol, final String ircd,
652
     public AggregateConfigProvider createAggregateConfig(final String protocol, final String ircd,
668
             final String network, final String server) {
653
             final String network, final String server) {
669
-        final ConfigManager configManager = new ConfigManager(clientInfo, this, protocol,
670
-                ircd, network, server);
654
+        final ConfigManager configManager = new ConfigManager(this, protocol, ircd, network, server);
671
         setUpConfigManager(configManager);
655
         setUpConfigManager(configManager);
672
         return configManager;
656
         return configManager;
673
     }
657
     }
675
     @Override
659
     @Override
676
     public AggregateConfigProvider createAggregateConfig(final String protocol, final String ircd,
660
     public AggregateConfigProvider createAggregateConfig(final String protocol, final String ircd,
677
             final String network, final String server, final String channel) {
661
             final String network, final String server, final String channel) {
678
-        final ConfigManager configManager = new ConfigManager(clientInfo, this, protocol,
679
-                ircd, network, server, channel);
662
+        final ConfigManager configManager = new ConfigManager(this, protocol, ircd, network, server, channel);
680
         setUpConfigManager(configManager);
663
         setUpConfigManager(configManager);
681
         return configManager;
664
         return configManager;
682
     }
665
     }

+ 0
- 5
src/main/java/com/dmdirc/interfaces/config/IdentityFactory.java 查看文件

17
 
17
 
18
 package com.dmdirc.interfaces.config;
18
 package com.dmdirc.interfaces.config;
19
 
19
 
20
-import com.dmdirc.Precondition;
21
 import com.dmdirc.config.ConfigTarget;
20
 import com.dmdirc.config.ConfigTarget;
22
 import com.dmdirc.config.provider.AggregateConfigProvider;
21
 import com.dmdirc.config.provider.AggregateConfigProvider;
23
 import com.dmdirc.config.provider.ConfigProvider;
22
 import com.dmdirc.config.provider.ConfigProvider;
38
      *
37
      *
39
      * @return A config provider for the channel
38
      * @return A config provider for the channel
40
      */
39
      */
41
-    @Precondition({"The specified network is non-null and not empty",
42
-            "The specified channel is non-null and not empty"})
43
     ConfigProvider createChannelConfig(String network, String channel);
40
     ConfigProvider createChannelConfig(String network, String channel);
44
 
41
 
45
     /**
42
     /**
49
      *
46
      *
50
      * @return A config provider for the network
47
      * @return A config provider for the network
51
      */
48
      */
52
-    @Precondition("The specified network is non-null and not empty")
53
     ConfigProvider createNetworkConfig(String network);
49
     ConfigProvider createNetworkConfig(String network);
54
 
50
 
55
     /**
51
     /**
59
      *
55
      *
60
      * @return A config provider for the server
56
      * @return A config provider for the server
61
      */
57
      */
62
-    @Precondition("The specified server is non-null and not empty")
63
     ConfigProvider createServerConfig(String server);
58
     ConfigProvider createServerConfig(String server);
64
 
59
 
65
     /**
60
     /**

+ 4
- 7
src/test/java/com/dmdirc/config/ConfigManagerTest.java 查看文件

23
 package com.dmdirc.config;
23
 package com.dmdirc.config;
24
 
24
 
25
 import com.dmdirc.config.provider.ConfigChangeListener;
25
 import com.dmdirc.config.provider.ConfigChangeListener;
26
-import com.dmdirc.util.ClientInfo;
27
 import com.dmdirc.util.validators.PermissiveValidator;
26
 import com.dmdirc.util.validators.PermissiveValidator;
28
-
29
 import org.junit.Test;
27
 import org.junit.Test;
30
 import org.junit.runner.RunWith;
28
 import org.junit.runner.RunWith;
31
 import org.mockito.Mock;
29
 import org.mockito.Mock;
43
 public class ConfigManagerTest {
41
 public class ConfigManagerTest {
44
 
42
 
45
     @Mock private IdentityManager identityManager;
43
     @Mock private IdentityManager identityManager;
46
-    @Mock private ClientInfo clientInfo;
47
 
44
 
48
     @Test
45
     @Test
49
     public void testNonExistantOption() {
46
     public void testNonExistantOption() {
50
-        assertNull(new ConfigManager(clientInfo, identityManager, "", "", "", "")
47
+        assertNull(new ConfigManager(identityManager, "", "", "", "")
51
                 .getOption("unit-test123", "foobar"));
48
                 .getOption("unit-test123", "foobar"));
52
     }
49
     }
53
 
50
 
54
     @Test
51
     @Test
55
     public void testStats() {
52
     public void testStats() {
56
-        final ConfigManager cm = new ConfigManager(clientInfo, identityManager, "", "", "", "");
53
+        final ConfigManager cm = new ConfigManager(identityManager, "", "", "", "");
57
         assertNull(ConfigManager.getStats().get("unit-test123.baz"));
54
         assertNull(ConfigManager.getStats().get("unit-test123.baz"));
58
         cm.hasOption("unit-test123", "baz", new PermissiveValidator<>());
55
         cm.hasOption("unit-test123", "baz", new PermissiveValidator<>());
59
         assertNotNull(ConfigManager.getStats().get("unit-test123.baz"));
56
         assertNotNull(ConfigManager.getStats().get("unit-test123.baz"));
63
     @Test
60
     @Test
64
     public void testDomainListener() {
61
     public void testDomainListener() {
65
         final ConfigChangeListener listener = mock(ConfigChangeListener.class);
62
         final ConfigChangeListener listener = mock(ConfigChangeListener.class);
66
-        final ConfigManager cm = new ConfigManager(clientInfo, identityManager, "", "", "", "");
63
+        final ConfigManager cm = new ConfigManager(identityManager, "", "", "", "");
67
         cm.addChangeListener("unit-test", listener);
64
         cm.addChangeListener("unit-test", listener);
68
 
65
 
69
         cm.configChanged("foo", "bar");
66
         cm.configChanged("foo", "bar");
76
     @Test
73
     @Test
77
     public void testDomainKeyListener() {
74
     public void testDomainKeyListener() {
78
         final ConfigChangeListener listener = mock(ConfigChangeListener.class);
75
         final ConfigChangeListener listener = mock(ConfigChangeListener.class);
79
-        final ConfigManager cm = new ConfigManager(clientInfo, identityManager, "", "", "", "");
76
+        final ConfigManager cm = new ConfigManager(identityManager, "", "", "", "");
80
         cm.addChangeListener("unit-test", "foo", listener);
77
         cm.addChangeListener("unit-test", "foo", listener);
81
 
78
 
82
         cm.configChanged("foo", "bar");
79
         cm.configChanged("foo", "bar");

+ 3
- 12
src/test/java/com/dmdirc/config/IdentityManagerTest.java 查看文件

24
 
24
 
25
 import com.dmdirc.config.provider.ConfigProvider;
25
 import com.dmdirc.config.provider.ConfigProvider;
26
 import com.dmdirc.tests.JimFsRule;
26
 import com.dmdirc.tests.JimFsRule;
27
-import com.dmdirc.util.ClientInfo;
28
-
29
 import java.nio.file.Files;
27
 import java.nio.file.Files;
30
 import java.nio.file.Path;
28
 import java.nio.file.Path;
31
 import java.util.Collection;
29
 import java.util.Collection;
32
-
33
 import org.junit.Before;
30
 import org.junit.Before;
34
 import org.junit.Rule;
31
 import org.junit.Rule;
35
 import org.junit.Test;
32
 import org.junit.Test;
36
 import org.junit.runner.RunWith;
33
 import org.junit.runner.RunWith;
37
-import org.mockito.Mock;
38
 import org.mockito.runners.MockitoJUnitRunner;
34
 import org.mockito.runners.MockitoJUnitRunner;
39
 
35
 
40
 import static org.junit.Assert.assertEquals;
36
 import static org.junit.Assert.assertEquals;
45
 
41
 
46
     @Rule public final JimFsRule jimFsRule = new JimFsRule();
42
     @Rule public final JimFsRule jimFsRule = new JimFsRule();
47
 
43
 
48
-    @Mock private ClientInfo clientInfo;
49
-
50
     private Path baseDirectory;
44
     private Path baseDirectory;
51
     private Path identitiesDirectory;
45
     private Path identitiesDirectory;
52
 
46
 
58
 
52
 
59
     @Test
53
     @Test
60
     public void testLoadsVersionIdentity() throws InvalidIdentityFileException {
54
     public void testLoadsVersionIdentity() throws InvalidIdentityFileException {
61
-        final IdentityManager identityManager = new IdentityManager(
62
-                baseDirectory, identitiesDirectory, clientInfo);
55
+        final IdentityManager identityManager = new IdentityManager(baseDirectory, identitiesDirectory);
63
         identityManager.initialise();
56
         identityManager.initialise();
64
 
57
 
65
         final ConfigFileBackedConfigProvider versionSettings =
58
         final ConfigFileBackedConfigProvider versionSettings =
71
 
64
 
72
     @Test
65
     @Test
73
     public void testUsesSystemUsernameForProfileNickname() throws InvalidIdentityFileException {
66
     public void testUsesSystemUsernameForProfileNickname() throws InvalidIdentityFileException {
74
-        final IdentityManager identityManager = new IdentityManager(
75
-                baseDirectory, identitiesDirectory, clientInfo);
67
+        final IdentityManager identityManager = new IdentityManager(baseDirectory, identitiesDirectory);
76
         identityManager.initialise();
68
         identityManager.initialise();
77
 
69
 
78
         System.setProperty("user.name", "Awesome User");
70
         System.setProperty("user.name", "Awesome User");
86
         Files.copy(getClass().getResourceAsStream("profile-new"),
78
         Files.copy(getClass().getResourceAsStream("profile-new"),
87
                 identitiesDirectory.resolve("profile"));
79
                 identitiesDirectory.resolve("profile"));
88
 
80
 
89
-        final IdentityManager identityManager = new IdentityManager(
90
-                baseDirectory, identitiesDirectory, clientInfo);
81
+        final IdentityManager identityManager = new IdentityManager(baseDirectory, identitiesDirectory);
91
         identityManager.initialise();
82
         identityManager.initialise();
92
 
83
 
93
         final Collection<ConfigProvider> profiles = identityManager.getProvidersByType("profile");
84
         final Collection<ConfigProvider> profiles = identityManager.getProvidersByType("profile");

Loading…
取消
儲存