Browse Source

Add com.dmdirc.util.system bundle.

pull/766/head
Chris Smith 7 years ago
parent
commit
76735c2d01
21 changed files with 125 additions and 72 deletions
  1. 0
    50
      api/src/main/java/com/dmdirc/interfaces/SystemLifecycleComponent.java
  2. 1
    0
      build.gradle
  3. 55
    0
      bundles/com.dmdirc.util.system/build.gradle
  4. 2
    7
      bundles/com.dmdirc.util.system/src/main/java/com/dmdirc/util/system/SystemInfo.java
  5. 45
    0
      bundles/com.dmdirc.util.system/src/main/java/com/dmdirc/util/system/SystemLifecycleComponent.java
  6. 7
    0
      src/main/java/com/dmdirc/ClientModule.java
  7. 1
    1
      src/main/java/com/dmdirc/LauncherUtils.java
  8. 1
    1
      src/main/java/com/dmdirc/Main.java
  9. 1
    1
      src/main/java/com/dmdirc/SystemLifecycleController.java
  10. 1
    1
      src/main/java/com/dmdirc/commandline/BaseDirectoryLocator.java
  11. 1
    1
      src/main/java/com/dmdirc/commandline/CommandLineParser.java
  12. 1
    1
      src/main/java/com/dmdirc/commandparser/aliases/AliasLifecycleManager.java
  13. 1
    1
      src/main/java/com/dmdirc/commandparser/aliases/AliasesModule.java
  14. 1
    1
      src/main/java/com/dmdirc/commandparser/auto/AutoCommandLifecycleManager.java
  15. 1
    1
      src/main/java/com/dmdirc/commandparser/auto/AutoCommandModule.java
  16. 1
    1
      src/main/java/com/dmdirc/config/profiles/ProfileManager.java
  17. 1
    1
      src/main/java/com/dmdirc/config/profiles/ProfileManagerLifeCycleManager.java
  18. 1
    1
      src/main/java/com/dmdirc/config/profiles/ProfilesModule.java
  19. 1
    1
      src/main/java/com/dmdirc/plugins/PluginEventFormatManager.java
  20. 1
    1
      src/main/java/com/dmdirc/plugins/PluginModule.java
  21. 1
    1
      src/test/java/com/dmdirc/config/profiles/ProfileManagerTest.java

+ 0
- 50
api/src/main/java/com/dmdirc/interfaces/SystemLifecycleComponent.java View File

@@ -1,50 +0,0 @@
1
-/*
2
- * Copyright (c) 2006-2015 DMDirc Developers
3
- *
4
- * Permission is hereby granted, free of charge, to any person obtaining a copy
5
- * of this software and associated documentation files (the "Software"), to deal
6
- * in the Software without restriction, including without limitation the rights
7
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- * copies of the Software, and to permit persons to whom the Software is
9
- * furnished to do so, subject to the following conditions:
10
- *
11
- * The above copyright notice and this permission notice shall be included in
12
- * all copies or substantial portions of the Software.
13
- *
14
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
- * SOFTWARE.
21
- */
22
-
23
-package com.dmdirc.interfaces;
24
-
25
-/**
26
- * A component that participates in or needs to know about the system lifecycle.
27
- */
28
-public interface SystemLifecycleComponent {
29
-
30
-    /**
31
-     * Called when the system or component is starting up.
32
-     */
33
-    void startUp();
34
-
35
-    /**
36
-     * Indicates that the component should save any configuration or other data to disk.
37
-     */
38
-    default void save() {}
39
-
40
-    /**
41
-     * Called when the system or component is shutting down.
42
-     * <p>
43
-     * Any resources or threads used by the implementing class must be released before returning
44
-     * from this method.
45
-     */
46
-    default void shutDown() {
47
-        save();
48
-    }
49
-
50
-}

+ 1
- 0
build.gradle View File

@@ -49,6 +49,7 @@ dependencies {
49 49
     bundle group: 'com.dmdirc', name: 'com.dmdirc.config.binding', version: '+', changing: true
50 50
     bundle group: 'com.dmdirc', name: 'com.dmdirc.events.eventbus', version: '+', changing: true
51 51
     bundle group: 'com.dmdirc', name: 'com.dmdirc.util.io.yaml', version: '+', changing: true
52
+    bundle group: 'com.dmdirc', name: 'com.dmdirc.util.system', version: '+', changing: true
52 53
 
53 54
     bundle group: 'com.dmdirc', name: 'api', version: '+', changing: true
54 55
     bundle group: 'com.dmdirc', name: 'util', version: '+', changing: true

+ 55
- 0
bundles/com.dmdirc.util.system/build.gradle View File

@@ -0,0 +1,55 @@
1
+/*
2
+ * Copyright (c) 2006-2017 DMDirc Developers
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
5
+ * documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
6
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
7
+ * permit persons to whom the Software is furnished to do so, subject to the following conditions:
8
+ *
9
+ * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
10
+ * Software.
11
+ *
12
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
13
+ * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
14
+ * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
15
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
+ */
17
+
18
+plugins {
19
+    id 'java'
20
+    id 'findbugs'
21
+    id 'pmd'
22
+    id 'idea'
23
+    id 'osgi'
24
+}
25
+
26
+group = 'com.dmdirc'
27
+
28
+idea {
29
+    module {
30
+         sourceDirs += file('src/main/generated')
31
+         testSourceDirs += file('src/test/generated_tests')
32
+         generatedSourceDirs = [file('src/main/generated'), file('src/test/generated_tests')]
33
+    }
34
+}
35
+
36
+configurations.all {
37
+    resolutionStrategy.cacheDynamicVersionsFor 2, 'minutes'
38
+    resolutionStrategy.cacheChangingModulesFor 2, 'minutes'
39
+}
40
+
41
+dependencies {
42
+    compile group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1'
43
+    compile group: 'org.slf4j', name: 'slf4j-api', version:'1.7.21'
44
+
45
+    testCompile group: 'junit', name: 'junit', version: '4.12'
46
+    testCompile group: 'org.mockito', name: 'mockito-core', version: '1.10.19'
47
+}
48
+
49
+sourceCompatibility = 1.8
50
+targetCompatibility = 1.8
51
+
52
+repositories {
53
+    mavenCentral()
54
+}
55
+

src/main/java/com/dmdirc/util/SystemInfo.java → bundles/com.dmdirc.util.system/src/main/java/com/dmdirc/util/system/SystemInfo.java View File

@@ -15,19 +15,13 @@
15 15
  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16 16
  */
17 17
 
18
-package com.dmdirc.util;
19
-
20
-import javax.inject.Inject;
18
+package com.dmdirc.util.system;
21 19
 
22 20
 /**
23 21
  * Injectable wrapper around {@link System}
24 22
  */
25 23
 public class SystemInfo {
26 24
 
27
-    @Inject
28
-    public SystemInfo() {
29
-    }
30
-
31 25
     public String getProperty(final String key) {
32 26
         return System.getProperty(key);
33 27
     }
@@ -35,4 +29,5 @@ public class SystemInfo {
35 29
     public String getenv(final String name) {
36 30
         return System.getenv(name);
37 31
     }
32
+
38 33
 }

+ 45
- 0
bundles/com.dmdirc.util.system/src/main/java/com/dmdirc/util/system/SystemLifecycleComponent.java View File

@@ -0,0 +1,45 @@
1
+/*
2
+ * Copyright (c) 2006-2017 DMDirc Developers
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
5
+ * documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
6
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
7
+ * permit persons to whom the Software is furnished to do so, subject to the following conditions:
8
+ *
9
+ * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
10
+ * Software.
11
+ *
12
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
13
+ * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
14
+ * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
15
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
+ */
17
+
18
+package com.dmdirc.util.system;
19
+
20
+/**
21
+ * A component that participates in or needs to know about the system lifecycle.
22
+ */
23
+public interface SystemLifecycleComponent {
24
+
25
+    /**
26
+     * Called when the system or component is starting up.
27
+     */
28
+    void startUp();
29
+
30
+    /**
31
+     * Indicates that the component should save any configuration or other data to disk.
32
+     */
33
+    default void save() {}
34
+
35
+    /**
36
+     * Called when the system or component is shutting down.
37
+     * <p>
38
+     * Any resources or threads used by the implementing class must be released before returning
39
+     * from this method.
40
+     */
41
+    default void shutDown() {
42
+        save();
43
+    }
44
+
45
+}

+ 7
- 0
src/main/java/com/dmdirc/ClientModule.java View File

@@ -44,6 +44,7 @@ import com.dmdirc.ui.themes.ThemeManager;
44 44
 import com.dmdirc.updater.UpdaterModule;
45 45
 import com.dmdirc.util.LoggingExecutorService;
46 46
 import com.dmdirc.util.io.Downloader;
47
+import com.dmdirc.util.system.SystemInfo;
47 48
 import dagger.Module;
48 49
 import dagger.ObjectGraph;
49 50
 import dagger.Provides;
@@ -75,6 +76,12 @@ public class ClientModule {
75 76
     /** The object graph to inject where necessary. */
76 77
     private ObjectGraph objectGraph;
77 78
 
79
+    @Provides
80
+    @Singleton
81
+    public SystemInfo getSystemInfo() {
82
+        return new SystemInfo();
83
+    }
84
+
78 85
     @Provides
79 86
     public ConnectionManager getConnectionManager(final ServerManager serverManager) {
80 87
         return serverManager;

+ 1
- 1
src/main/java/com/dmdirc/LauncherUtils.java View File

@@ -20,7 +20,7 @@ package com.dmdirc;
20 20
 import com.dmdirc.commandline.BaseDirectoryLocator;
21 21
 import com.dmdirc.commandline.CommandLineParser;
22 22
 import com.dmdirc.updater.Version;
23
-import com.dmdirc.util.SystemInfo;
23
+import com.dmdirc.util.system.SystemInfo;
24 24
 
25 25
 /**
26 26
  * Utility class to help launcher interface with client.

+ 1
- 1
src/main/java/com/dmdirc/Main.java View File

@@ -27,7 +27,7 @@ import com.dmdirc.interfaces.CommandController.CommandDetails;
27 27
 import com.dmdirc.interfaces.ConnectionManager;
28 28
 import com.dmdirc.events.eventbus.EventBus;
29 29
 import com.dmdirc.interfaces.Migrator;
30
-import com.dmdirc.interfaces.SystemLifecycleComponent;
30
+import com.dmdirc.util.system.SystemLifecycleComponent;
31 31
 import com.dmdirc.interfaces.config.IdentityController;
32 32
 import com.dmdirc.interfaces.ui.UIController;
33 33
 import com.dmdirc.logger.DMDircExceptionHandler;

+ 1
- 1
src/main/java/com/dmdirc/SystemLifecycleController.java View File

@@ -22,7 +22,7 @@ import com.dmdirc.events.ClientClosedEvent;
22 22
 import com.dmdirc.interfaces.ConnectionManager;
23 23
 import com.dmdirc.events.eventbus.EventBus;
24 24
 import com.dmdirc.interfaces.LifecycleController;
25
-import com.dmdirc.interfaces.SystemLifecycleComponent;
25
+import com.dmdirc.util.system.SystemLifecycleComponent;
26 26
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
27 27
 import com.dmdirc.interfaces.config.IdentityController;
28 28
 

+ 1
- 1
src/main/java/com/dmdirc/commandline/BaseDirectoryLocator.java View File

@@ -17,7 +17,7 @@
17 17
 
18 18
 package com.dmdirc.commandline;
19 19
 
20
-import com.dmdirc.util.SystemInfo;
20
+import com.dmdirc.util.system.SystemInfo;
21 21
 
22 22
 import java.io.File;
23 23
 

+ 1
- 1
src/main/java/com/dmdirc/commandline/CommandLineParser.java View File

@@ -21,7 +21,7 @@ import com.dmdirc.config.GlobalConfig;
21 21
 import com.dmdirc.interfaces.ConnectionManager;
22 22
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
23 23
 import com.dmdirc.util.InvalidURIException;
24
-import com.dmdirc.util.SystemInfo;
24
+import com.dmdirc.util.system.SystemInfo;
25 25
 import com.dmdirc.util.URIParser;
26 26
 
27 27
 import java.io.File;

+ 1
- 1
src/main/java/com/dmdirc/commandparser/aliases/AliasLifecycleManager.java View File

@@ -17,7 +17,7 @@
17 17
 
18 18
 package com.dmdirc.commandparser.aliases;
19 19
 
20
-import com.dmdirc.interfaces.SystemLifecycleComponent;
20
+import com.dmdirc.util.system.SystemLifecycleComponent;
21 21
 
22 22
 import javax.inject.Inject;
23 23
 import javax.inject.Singleton;

+ 1
- 1
src/main/java/com/dmdirc/commandparser/aliases/AliasesModule.java View File

@@ -20,7 +20,7 @@ package com.dmdirc.commandparser.aliases;
20 20
 import com.dmdirc.commandline.CommandLineOptionsModule.Directory;
21 21
 import com.dmdirc.commandline.CommandLineOptionsModule.DirectoryType;
22 22
 import com.dmdirc.interfaces.Migrator;
23
-import com.dmdirc.interfaces.SystemLifecycleComponent;
23
+import com.dmdirc.util.system.SystemLifecycleComponent;
24 24
 
25 25
 import java.nio.file.Path;
26 26
 

+ 1
- 1
src/main/java/com/dmdirc/commandparser/auto/AutoCommandLifecycleManager.java View File

@@ -17,7 +17,7 @@
17 17
 
18 18
 package com.dmdirc.commandparser.auto;
19 19
 
20
-import com.dmdirc.interfaces.SystemLifecycleComponent;
20
+import com.dmdirc.util.system.SystemLifecycleComponent;
21 21
 
22 22
 import javax.inject.Inject;
23 23
 import javax.inject.Singleton;

+ 1
- 1
src/main/java/com/dmdirc/commandparser/auto/AutoCommandModule.java View File

@@ -18,7 +18,7 @@
18 18
 package com.dmdirc.commandparser.auto;
19 19
 
20 20
 import com.dmdirc.interfaces.Migrator;
21
-import com.dmdirc.interfaces.SystemLifecycleComponent;
21
+import com.dmdirc.util.system.SystemLifecycleComponent;
22 22
 
23 23
 import java.nio.file.Path;
24 24
 

+ 1
- 1
src/main/java/com/dmdirc/config/profiles/ProfileManager.java View File

@@ -20,7 +20,7 @@ package com.dmdirc.config.profiles;
20 20
 import com.dmdirc.events.ProfileAddedEvent;
21 21
 import com.dmdirc.events.ProfileDeletedEvent;
22 22
 import com.dmdirc.events.eventbus.EventBus;
23
-import com.dmdirc.util.SystemInfo;
23
+import com.dmdirc.util.system.SystemInfo;
24 24
 
25 25
 import com.google.common.collect.Iterables;
26 26
 import com.google.common.collect.Lists;

+ 1
- 1
src/main/java/com/dmdirc/config/profiles/ProfileManagerLifeCycleManager.java View File

@@ -17,7 +17,7 @@
17 17
 
18 18
 package com.dmdirc.config.profiles;
19 19
 
20
-import com.dmdirc.interfaces.SystemLifecycleComponent;
20
+import com.dmdirc.util.system.SystemLifecycleComponent;
21 21
 
22 22
 import javax.inject.Inject;
23 23
 import javax.inject.Singleton;

+ 1
- 1
src/main/java/com/dmdirc/config/profiles/ProfilesModule.java View File

@@ -19,7 +19,7 @@ package com.dmdirc.config.profiles;
19 19
 
20 20
 import com.dmdirc.commandline.CommandLineOptionsModule;
21 21
 import com.dmdirc.interfaces.Migrator;
22
-import com.dmdirc.interfaces.SystemLifecycleComponent;
22
+import com.dmdirc.util.system.SystemLifecycleComponent;
23 23
 
24 24
 import java.nio.file.Path;
25 25
 

+ 1
- 1
src/main/java/com/dmdirc/plugins/PluginEventFormatManager.java View File

@@ -21,7 +21,7 @@ import com.dmdirc.config.GlobalConfig;
21 21
 import com.dmdirc.events.PluginLoadedEvent;
22 22
 import com.dmdirc.events.PluginUnloadedEvent;
23 23
 import com.dmdirc.events.eventbus.EventBus;
24
-import com.dmdirc.interfaces.SystemLifecycleComponent;
24
+import com.dmdirc.util.system.SystemLifecycleComponent;
25 25
 import com.dmdirc.ui.messages.ColourManager;
26 26
 import com.dmdirc.ui.messages.EventFormatProvider;
27 27
 import com.dmdirc.ui.messages.MultiEventFormatProvider;

+ 1
- 1
src/main/java/com/dmdirc/plugins/PluginModule.java View File

@@ -18,7 +18,7 @@
18 18
 package com.dmdirc.plugins;
19 19
 
20 20
 import com.dmdirc.events.eventbus.EventBus;
21
-import com.dmdirc.interfaces.SystemLifecycleComponent;
21
+import com.dmdirc.util.system.SystemLifecycleComponent;
22 22
 import com.dmdirc.interfaces.config.IdentityController;
23 23
 import com.dmdirc.updater.manager.UpdateManager;
24 24
 

+ 1
- 1
src/test/java/com/dmdirc/config/profiles/ProfileManagerTest.java View File

@@ -25,7 +25,7 @@ package com.dmdirc.config.profiles;
25 25
 import com.dmdirc.events.ProfileAddedEvent;
26 26
 import com.dmdirc.events.ProfileDeletedEvent;
27 27
 import com.dmdirc.events.eventbus.EventBus;
28
-import com.dmdirc.util.SystemInfo;
28
+import com.dmdirc.util.system.SystemInfo;
29 29
 
30 30
 import com.google.common.collect.Lists;
31 31
 

Loading…
Cancel
Save