Pārlūkot izejas kodu

调度中心配置加载优化,取消对配置文件名的强依赖,支持加载磁盘配置;

xuxueli 8 gadus atpakaļ
vecāks
revīzija
18991c3f5b

+ 1 - 0
doc/XXL-JOB官方文档.md Parādīt failu

@@ -1146,6 +1146,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
1146 1146
 - 3、调度报表优化,报表SQL调优并且新增LocalCache缓存(缓存时间60s),提高大数据量下报表加载速度;
1147 1147
 - 4、修复打包部署时资源文件乱码问题;
1148 1148
 - 5、修复新版本chrome滚动到顶部失效问题;
1149
+- 6、调度中心配置加载优化,取消对配置文件名的强依赖,支持加载磁盘配置;
1149 1150
 
1150 1151
 
1151 1152
 ### TODO LIST

+ 3 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/PermissionInterceptor.java Parādīt failu

@@ -1,8 +1,8 @@
1 1
 package com.xxl.job.admin.controller.interceptor;
2 2
 
3 3
 import com.xxl.job.admin.controller.annotation.PermessionLimit;
4
+import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
4 5
 import com.xxl.job.admin.core.util.CookieUtil;
5
-import com.xxl.job.admin.core.util.PropertiesUtil;
6 6
 import org.apache.commons.codec.digest.DigestUtils;
7 7
 import org.springframework.web.method.HandlerMethod;
8 8
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
@@ -22,8 +22,8 @@ public class PermissionInterceptor extends HandlerInterceptorAdapter {
22 22
 	public static final String LOGIN_IDENTITY_KEY = "XXL_JOB_LOGIN_IDENTITY";
23 23
 	public static final String LOGIN_IDENTITY_TOKEN;
24 24
     static {
25
-        String username = PropertiesUtil.getString("xxl.job.login.username");
26
-        String password = PropertiesUtil.getString("xxl.job.login.password");
25
+        String username = XxlJobAdminConfig.getAdminConfig().getLoginUsername();
26
+        String password = XxlJobAdminConfig.getAdminConfig().getLoginPassword();
27 27
 
28 28
         // login token
29 29
         String tokenTmp = DigestUtils.md5Hex(username + "_" + password);

+ 81 - 0
xxl-job-admin/src/main/java/com/xxl/job/admin/core/conf/XxlJobAdminConfig.java Parādīt failu

@@ -0,0 +1,81 @@
1
+package com.xxl.job.admin.core.conf;
2
+
3
+import org.springframework.beans.factory.InitializingBean;
4
+import org.springframework.beans.factory.annotation.Value;
5
+import org.springframework.context.annotation.Configuration;
6
+
7
+/**
8
+ * xxl-job config
9
+ *
10
+ * @author xuxueli 2017-04-28
11
+ */
12
+@Configuration
13
+public class XxlJobAdminConfig implements InitializingBean{
14
+    private static XxlJobAdminConfig adminConfig = null;
15
+    public static XxlJobAdminConfig getAdminConfig() {
16
+        return adminConfig;
17
+    }
18
+
19
+    @Override
20
+    public void afterPropertiesSet() throws Exception {
21
+        adminConfig = this;
22
+    }
23
+
24
+    @Value("${xxl.job.mail.host}")
25
+    private String mailHost;
26
+
27
+    @Value("${xxl.job.mail.port}")
28
+    private String mailPort;
29
+
30
+    @Value("${xxl.job.mail.username}")
31
+    private String mailUsername;
32
+
33
+    @Value("${xxl.job.mail.password}")
34
+    private String mailPassword;
35
+
36
+    @Value("${xxl.job.mail.sendNick}")
37
+    private String mailSendNick;
38
+
39
+    @Value("${xxl.job.login.username}")
40
+    private String loginUsername;
41
+
42
+    @Value("${xxl.job.login.password}")
43
+    private String loginPassword;
44
+
45
+    @Value("${xxl.job.i18n}")
46
+    private String i18n;
47
+
48
+
49
+    public String getMailHost() {
50
+        return mailHost;
51
+    }
52
+
53
+    public String getMailPort() {
54
+        return mailPort;
55
+    }
56
+
57
+    public String getMailUsername() {
58
+        return mailUsername;
59
+    }
60
+
61
+    public String getMailPassword() {
62
+        return mailPassword;
63
+    }
64
+
65
+    public String getMailSendNick() {
66
+        return mailSendNick;
67
+    }
68
+
69
+    public String getLoginUsername() {
70
+        return loginUsername;
71
+    }
72
+
73
+    public String getLoginPassword() {
74
+        return loginPassword;
75
+    }
76
+
77
+    public String getI18n() {
78
+        return i18n;
79
+    }
80
+
81
+}

+ 4 - 5
xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/I18nUtil.java Parādīt failu

@@ -1,5 +1,6 @@
1 1
 package com.xxl.job.admin.core.util;
2 2
 
3
+import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
3 4
 import com.xxl.job.core.util.JacksonUtil;
4 5
 import org.apache.commons.lang3.StringUtils;
5 6
 import org.slf4j.Logger;
@@ -23,23 +24,21 @@ import java.util.Properties;
23 24
 public class I18nUtil {
24 25
     private static Logger logger = LoggerFactory.getLogger(I18nUtil.class);
25 26
 
26
-    private static final String I18N_PROP_CACHE = "i18n_prop_cache";
27
+    private static Properties prop = null;
27 28
     public static Properties loadI18nProp(){
28
-        Properties prop = (Properties) LocalCacheUtil.get(I18N_PROP_CACHE);
29 29
         if (prop != null) {
30 30
             return prop;
31 31
         }
32 32
         try {
33 33
             // bild i18n prop
34
-            String i18n = PropertiesUtil.getString("xxl.job.i18n");
34
+            String i18n = XxlJobAdminConfig.getAdminConfig().getI18n();
35 35
             i18n = StringUtils.isNotBlank(i18n)?("_"+i18n):i18n;
36
-            String i18nFile =MessageFormat.format("i18n/message{0}.properties", i18n);
36
+            String i18nFile = MessageFormat.format("i18n/message{0}.properties", i18n);
37 37
 
38 38
             // load prop
39 39
             Resource resource = new ClassPathResource(i18nFile);
40 40
             EncodedResource encodedResource = new EncodedResource(resource,"UTF-8");
41 41
             prop = PropertiesLoaderUtils.loadProperties(encodedResource);
42
-            LocalCacheUtil.set(I18N_PROP_CACHE, prop, 60*1000);     // cache 60s
43 42
         } catch (IOException e) {
44 43
             logger.error(e.getMessage(), e);
45 44
         }

+ 5 - 17
xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/MailUtil.java Parādīt failu

@@ -1,5 +1,6 @@
1 1
 package com.xxl.job.admin.core.util;
2 2
 
3
+import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
3 4
 import org.apache.commons.mail.DefaultAuthenticator;
4 5
 import org.apache.commons.mail.EmailException;
5 6
 import org.apache.commons.mail.HtmlEmail;
@@ -16,19 +17,6 @@ import java.nio.charset.Charset;
16 17
 public class MailUtil {
17 18
 	private static Logger logger = LoggerFactory.getLogger(MailUtil.class);
18 19
 	
19
-	private static String host;
20
-	private static String port;
21
-	private static String username;
22
-	private static String password;
23
-	private static String sendNick;
24
-	static{
25
-		host = PropertiesUtil.getString("xxl.job.mail.host");
26
-		port = PropertiesUtil.getString("xxl.job.mail.port");
27
-		username = PropertiesUtil.getString("xxl.job.mail.username");
28
-		password = PropertiesUtil.getString("xxl.job.mail.password");
29
-		sendNick = PropertiesUtil.getString("xxl.job.mail.sendNick");
30
-	}
31
-
32 20
 	/**
33 21
 	 *
34 22
 	 * @param toAddress		收件人邮箱
@@ -46,13 +34,13 @@ public class MailUtil {
46 34
 			//email.setTLS(true);		// 是否TLS校验,,某些邮箱需要TLS安全校验,同理有SSL校验
47 35
 			//email.setSSL(true);
48 36
 
49
-			email.setHostName(host);
50
-			email.setSmtpPort(Integer.valueOf(port));
37
+			email.setHostName(XxlJobAdminConfig.getAdminConfig().getMailHost());
38
+			email.setSmtpPort(Integer.valueOf(XxlJobAdminConfig.getAdminConfig().getMailPort()));
51 39
 			//email.setSslSmtpPort(port);
52
-			email.setAuthenticator(new DefaultAuthenticator(username, password));
40
+			email.setAuthenticator(new DefaultAuthenticator(XxlJobAdminConfig.getAdminConfig().getMailUsername(), XxlJobAdminConfig.getAdminConfig().getMailPassword()));
53 41
 			email.setCharset(Charset.defaultCharset().name());
54 42
 
55
-			email.setFrom(username, sendNick);
43
+			email.setFrom(XxlJobAdminConfig.getAdminConfig().getMailUsername(), XxlJobAdminConfig.getAdminConfig().getMailSendNick());
56 44
 			email.addTo(toAddress);
57 45
 			email.setSubject(mailSubject);
58 46
 			email.setMsg(mailBody);

+ 0 - 38
xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/PropertiesUtil.java Parādīt failu

@@ -1,38 +0,0 @@
1
-package com.xxl.job.admin.core.util;
2
-
3
-import org.slf4j.Logger;
4
-import org.slf4j.LoggerFactory;
5
-import org.springframework.core.io.ClassPathResource;
6
-import org.springframework.core.io.Resource;
7
-import org.springframework.core.io.support.EncodedResource;
8
-import org.springframework.core.io.support.PropertiesLoaderUtils;
9
-
10
-import java.io.IOException;
11
-import java.util.Properties;
12
-
13
-/**
14
- * properties util
15
- *
16
- * @author xuxueli 2015-8-28 10:35:53
17
- */
18
-public class PropertiesUtil {
19
-	private static Logger logger = LoggerFactory.getLogger(PropertiesUtil.class);
20
-	private static final String file_name = "xxl-job-admin.properties";
21
-
22
-
23
-	public static String getString(String key) {
24
-		Properties prop = null;
25
-		try {
26
-			Resource resource = new ClassPathResource(file_name);
27
-			EncodedResource encodedResource = new EncodedResource(resource,"UTF-8");
28
-			prop = PropertiesLoaderUtils.loadProperties(encodedResource);
29
-		} catch (IOException e) {
30
-			logger.error(e.getMessage(), e);
31
-		}
32
-		if (prop!=null) {
33
-			return prop.getProperty(key);
34
-		}
35
-		return null;
36
-	}
37
-
38
-}

+ 1 - 1
xxl-job-admin/src/main/resources/spring/applicationcontext-base.xml Parādīt failu

@@ -7,7 +7,7 @@
7 7
            http://www.springframework.org/schema/context
8 8
            http://www.springframework.org/schema/context/spring-context.xsd">
9 9
 
10
-	<context:component-scan base-package="com.xxl.job.admin.service, com.xxl.job.admin.dao" />
10
+	<context:component-scan base-package="com.xxl.job.admin.core.conf, com.xxl.job.admin.service, com.xxl.job.admin.dao" />
11 11
 
12 12
 	<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
13 13
 		<property name="templateLoaderPath" value="/WEB-INF/template/" />

+ 3 - 3
xxl-job-admin/src/test/java/com/xxl/job/admin/controller/JobInfoControllerTest.java Parādīt failu

@@ -1,7 +1,7 @@
1 1
 package com.xxl.job.admin.controller;
2 2
 
3 3
 import com.xxl.job.admin.controller.interceptor.PermissionInterceptor;
4
-import com.xxl.job.admin.core.util.PropertiesUtil;
4
+import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
5 5
 import org.junit.Before;
6 6
 import org.junit.Test;
7 7
 import org.springframework.http.MediaType;
@@ -22,8 +22,8 @@ public class JobInfoControllerTest extends AbstractSpringMvcTest {
22 22
     MvcResult ret = mockMvc.perform(
23 23
         post("/login")
24 24
             .contentType(MediaType.APPLICATION_FORM_URLENCODED)
25
-            .param("userName", PropertiesUtil.getString("xxl.job.login.username"))
26
-            .param("password", PropertiesUtil.getString("xxl.job.login.password"))
25
+            .param("userName", XxlJobAdminConfig.getAdminConfig().getLoginUsername())
26
+            .param("password", XxlJobAdminConfig.getAdminConfig().getLoginPassword())
27 27
     ).andReturn();
28 28
     cookie = ret.getResponse().getCookie(PermissionInterceptor.LOGIN_IDENTITY_KEY);
29 29
   }

+ 5 - 0
xxl-job-admin/src/test/java/com/xxl/job/admin/util/I18nUtilTest.java Parādīt failu

@@ -2,12 +2,17 @@ package com.xxl.job.admin.util;
2 2
 
3 3
 import com.xxl.job.admin.core.util.I18nUtil;
4 4
 import org.junit.Test;
5
+import org.junit.runner.RunWith;
6
+import org.springframework.test.context.ContextConfiguration;
7
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
5 8
 
6 9
 /**
7 10
  * email util test
8 11
  *
9 12
  * @author xuxueli 2017-12-22 17:16:23
10 13
  */
14
+@RunWith(SpringJUnit4ClassRunner.class)
15
+@ContextConfiguration(locations = "classpath*:spring/applicationcontext-*.xml")
11 16
 public class I18nUtilTest {
12 17
 
13 18
     @Test

+ 5 - 0
xxl-job-admin/src/test/java/com/xxl/job/admin/util/MailUtilTest.java Parādīt failu

@@ -2,6 +2,9 @@ package com.xxl.job.admin.util;
2 2
 
3 3
 import com.xxl.job.admin.core.util.MailUtil;
4 4
 import org.junit.Test;
5
+import org.junit.runner.RunWith;
6
+import org.springframework.test.context.ContextConfiguration;
7
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
5 8
 
6 9
 import java.text.MessageFormat;
7 10
 
@@ -10,6 +13,8 @@ import java.text.MessageFormat;
10 13
  *
11 14
  * @author xuxueli 2017-12-22 17:16:23
12 15
  */
16
+@RunWith(SpringJUnit4ClassRunner.class)
17
+@ContextConfiguration(locations = "classpath*:spring/applicationcontext-*.xml")
13 18
 public class MailUtilTest {
14 19
 
15 20
     @Test

+ 0 - 18
xxl-job-admin/src/test/java/com/xxl/job/admin/util/PropertiesUtilTest.java Parādīt failu

@@ -1,18 +0,0 @@
1
-package com.xxl.job.admin.util;
2
-
3
-import com.xxl.job.admin.core.util.PropertiesUtil;
4
-import org.junit.Test;
5
-
6
-/**
7
- * prop util test
8
- *
9
- * @author xuxueli 2017-12-25 15:17:36
10
- */
11
-public class PropertiesUtilTest {
12
-
13
-    @Test
14
-    public void registryTest() throws Exception {
15
-        System.out.println(PropertiesUtil.getString("xxl.job.login.username"));
16
-    }
17
-
18
-}