Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
熊鹏飞
/
xxljob220
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
18991c3f
authored
Jan 26, 2018
by
xuxueli
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
调度中心配置加载优化,取消对配置文件名的强依赖,支持加载磁盘配置;
parent
dbf51a03
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
109 additions
and
86 deletions
doc/XXL-JOB官方文档.md
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/PermissionInterceptor.java
xxl-job-admin/src/main/java/com/xxl/job/admin/core/conf/XxlJobAdminConfig.java
xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/I18nUtil.java
xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/MailUtil.java
xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/PropertiesUtil.java
xxl-job-admin/src/main/resources/spring/applicationcontext-base.xml
xxl-job-admin/src/test/java/com/xxl/job/admin/controller/JobInfoControllerTest.java
xxl-job-admin/src/test/java/com/xxl/job/admin/util/I18nUtilTest.java
xxl-job-admin/src/test/java/com/xxl/job/admin/util/MailUtilTest.java
xxl-job-admin/src/test/java/com/xxl/job/admin/util/PropertiesUtilTest.java
doc/XXL-JOB官方文档.md
View file @
18991c3f
## 《分
布式任务调度平台XXL-JOB》
## 《分
布式任务调度平台XXL-JOB》
...
@@ -1146,6 +1146,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
...
@@ -1146,6 +1146,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
-
3、调度报表优化,报表SQL调优并且新增LocalCache缓存(缓存时间60s),提高大数据量下报表加载速度;
-
3、调度报表优化,报表SQL调优并且新增LocalCache缓存(缓存时间60s),提高大数据量下报表加载速度;
-
4、修复打包部署时资源文件乱码问题;
-
4、修复打包部署时资源文件乱码问题;
-
5、修复新版本chrome滚动到顶部失效问题;
-
5、修复新版本chrome滚动到顶部失效问题;
-
6、调度中心配置加载优化,取消对配置文件名的强依赖,支持加载磁盘配置;
### TODO LIST
### TODO LIST
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/PermissionInterceptor.java
View file @
18991c3f
package
com
.
xxl
.
job
.
admin
.
controller
.
interceptor
;
package
com
.
xxl
.
job
.
admin
.
controller
.
interceptor
;
import
com.xxl.job.admin.controller.annotation.PermessionLimit
;
import
com.xxl.job.admin.controller.annotation.PermessionLimit
;
import
com.xxl.job.admin.core.conf.XxlJobAdminConfig
;
import
com.xxl.job.admin.core.util.CookieUtil
;
import
com.xxl.job.admin.core.util.CookieUtil
;
import
com.xxl.job.admin.core.util.PropertiesUtil
;
import
org.apache.commons.codec.digest.DigestUtils
;
import
org.apache.commons.codec.digest.DigestUtils
;
import
org.springframework.web.method.HandlerMethod
;
import
org.springframework.web.method.HandlerMethod
;
import
org.springframework.web.servlet.handler.HandlerInterceptorAdapter
;
import
org.springframework.web.servlet.handler.HandlerInterceptorAdapter
;
...
@@ -22,8 +22,8 @@ public class PermissionInterceptor extends HandlerInterceptorAdapter {
...
@@ -22,8 +22,8 @@ public class PermissionInterceptor extends HandlerInterceptorAdapter {
public
static
final
String
LOGIN_IDENTITY_KEY
=
"XXL_JOB_LOGIN_IDENTITY"
;
public
static
final
String
LOGIN_IDENTITY_KEY
=
"XXL_JOB_LOGIN_IDENTITY"
;
public
static
final
String
LOGIN_IDENTITY_TOKEN
;
public
static
final
String
LOGIN_IDENTITY_TOKEN
;
static
{
static
{
String
username
=
PropertiesUtil
.
getString
(
"xxl.job.login.username"
);
String
username
=
XxlJobAdminConfig
.
getAdminConfig
().
getLoginUsername
(
);
String
password
=
PropertiesUtil
.
getString
(
"xxl.job.login.password"
);
String
password
=
XxlJobAdminConfig
.
getAdminConfig
().
getLoginPassword
(
);
// login token
// login token
String
tokenTmp
=
DigestUtils
.
md5Hex
(
username
+
"_"
+
password
);
String
tokenTmp
=
DigestUtils
.
md5Hex
(
username
+
"_"
+
password
);
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/conf/XxlJobAdminConfig.java
0 → 100644
View file @
18991c3f
package
com
.
xxl
.
job
.
admin
.
core
.
conf
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Configuration
;
/**
* xxl-job config
*
* @author xuxueli 2017-04-28
*/
@Configuration
public
class
XxlJobAdminConfig
implements
InitializingBean
{
private
static
XxlJobAdminConfig
adminConfig
=
null
;
public
static
XxlJobAdminConfig
getAdminConfig
()
{
return
adminConfig
;
}
@Override
public
void
afterPropertiesSet
()
throws
Exception
{
adminConfig
=
this
;
}
@Value
(
"${xxl.job.mail.host}"
)
private
String
mailHost
;
@Value
(
"${xxl.job.mail.port}"
)
private
String
mailPort
;
@Value
(
"${xxl.job.mail.username}"
)
private
String
mailUsername
;
@Value
(
"${xxl.job.mail.password}"
)
private
String
mailPassword
;
@Value
(
"${xxl.job.mail.sendNick}"
)
private
String
mailSendNick
;
@Value
(
"${xxl.job.login.username}"
)
private
String
loginUsername
;
@Value
(
"${xxl.job.login.password}"
)
private
String
loginPassword
;
@Value
(
"${xxl.job.i18n}"
)
private
String
i18n
;
public
String
getMailHost
()
{
return
mailHost
;
}
public
String
getMailPort
()
{
return
mailPort
;
}
public
String
getMailUsername
()
{
return
mailUsername
;
}
public
String
getMailPassword
()
{
return
mailPassword
;
}
public
String
getMailSendNick
()
{
return
mailSendNick
;
}
public
String
getLoginUsername
()
{
return
loginUsername
;
}
public
String
getLoginPassword
()
{
return
loginPassword
;
}
public
String
getI18n
()
{
return
i18n
;
}
}
xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/I18nUtil.java
View file @
18991c3f
package
com
.
xxl
.
job
.
admin
.
core
.
util
;
package
com
.
xxl
.
job
.
admin
.
core
.
util
;
import
com.xxl.job.admin.core.conf.XxlJobAdminConfig
;
import
com.xxl.job.core.util.JacksonUtil
;
import
com.xxl.job.core.util.JacksonUtil
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
...
@@ -23,23 +24,21 @@ import java.util.Properties;
...
@@ -23,23 +24,21 @@ import java.util.Properties;
public
class
I18nUtil
{
public
class
I18nUtil
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
I18nUtil
.
class
);
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
I18nUtil
.
class
);
private
static
final
String
I18N_PROP_CACHE
=
"i18n_prop_cache"
;
private
static
Properties
prop
=
null
;
public
static
Properties
loadI18nProp
(){
public
static
Properties
loadI18nProp
(){
Properties
prop
=
(
Properties
)
LocalCacheUtil
.
get
(
I18N_PROP_CACHE
);
if
(
prop
!=
null
)
{
if
(
prop
!=
null
)
{
return
prop
;
return
prop
;
}
}
try
{
try
{
// bild i18n prop
// bild i18n prop
String
i18n
=
PropertiesUtil
.
getString
(
"xxl.job.i18n"
);
String
i18n
=
XxlJobAdminConfig
.
getAdminConfig
().
getI18n
(
);
i18n
=
StringUtils
.
isNotBlank
(
i18n
)?(
"_"
+
i18n
):
i18n
;
i18n
=
StringUtils
.
isNotBlank
(
i18n
)?(
"_"
+
i18n
):
i18n
;
String
i18nFile
=
MessageFormat
.
format
(
"i18n/message{0}.properties"
,
i18n
);
String
i18nFile
=
MessageFormat
.
format
(
"i18n/message{0}.properties"
,
i18n
);
// load prop
// load prop
Resource
resource
=
new
ClassPathResource
(
i18nFile
);
Resource
resource
=
new
ClassPathResource
(
i18nFile
);
EncodedResource
encodedResource
=
new
EncodedResource
(
resource
,
"UTF-8"
);
EncodedResource
encodedResource
=
new
EncodedResource
(
resource
,
"UTF-8"
);
prop
=
PropertiesLoaderUtils
.
loadProperties
(
encodedResource
);
prop
=
PropertiesLoaderUtils
.
loadProperties
(
encodedResource
);
LocalCacheUtil
.
set
(
I18N_PROP_CACHE
,
prop
,
60
*
1000
);
// cache 60s
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
logger
.
error
(
e
.
getMessage
(),
e
);
}
}
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/MailUtil.java
View file @
18991c3f
package
com
.
xxl
.
job
.
admin
.
core
.
util
;
package
com
.
xxl
.
job
.
admin
.
core
.
util
;
import
com.xxl.job.admin.core.conf.XxlJobAdminConfig
;
import
org.apache.commons.mail.DefaultAuthenticator
;
import
org.apache.commons.mail.DefaultAuthenticator
;
import
org.apache.commons.mail.EmailException
;
import
org.apache.commons.mail.EmailException
;
import
org.apache.commons.mail.HtmlEmail
;
import
org.apache.commons.mail.HtmlEmail
;
...
@@ -16,19 +17,6 @@ import java.nio.charset.Charset;
...
@@ -16,19 +17,6 @@ import java.nio.charset.Charset;
public
class
MailUtil
{
public
class
MailUtil
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
MailUtil
.
class
);
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
MailUtil
.
class
);
private
static
String
host
;
private
static
String
port
;
private
static
String
username
;
private
static
String
password
;
private
static
String
sendNick
;
static
{
host
=
PropertiesUtil
.
getString
(
"xxl.job.mail.host"
);
port
=
PropertiesUtil
.
getString
(
"xxl.job.mail.port"
);
username
=
PropertiesUtil
.
getString
(
"xxl.job.mail.username"
);
password
=
PropertiesUtil
.
getString
(
"xxl.job.mail.password"
);
sendNick
=
PropertiesUtil
.
getString
(
"xxl.job.mail.sendNick"
);
}
/**
/**
*
*
* @param toAddress 收件人邮箱
* @param toAddress 收件人邮箱
...
@@ -46,13 +34,13 @@ public class MailUtil {
...
@@ -46,13 +34,13 @@ public class MailUtil {
//email.setTLS(true); // 是否TLS校验,,某些邮箱需要TLS安全校验,同理有SSL校验
//email.setTLS(true); // 是否TLS校验,,某些邮箱需要TLS安全校验,同理有SSL校验
//email.setSSL(true);
//email.setSSL(true);
email
.
setHostName
(
host
);
email
.
setHostName
(
XxlJobAdminConfig
.
getAdminConfig
().
getMailHost
()
);
email
.
setSmtpPort
(
Integer
.
valueOf
(
port
));
email
.
setSmtpPort
(
Integer
.
valueOf
(
XxlJobAdminConfig
.
getAdminConfig
().
getMailPort
()
));
//email.setSslSmtpPort(port);
//email.setSslSmtpPort(port);
email
.
setAuthenticator
(
new
DefaultAuthenticator
(
username
,
password
));
email
.
setAuthenticator
(
new
DefaultAuthenticator
(
XxlJobAdminConfig
.
getAdminConfig
().
getMailUsername
(),
XxlJobAdminConfig
.
getAdminConfig
().
getMailPassword
()
));
email
.
setCharset
(
Charset
.
defaultCharset
().
name
());
email
.
setCharset
(
Charset
.
defaultCharset
().
name
());
email
.
setFrom
(
username
,
sendNick
);
email
.
setFrom
(
XxlJobAdminConfig
.
getAdminConfig
().
getMailUsername
(),
XxlJobAdminConfig
.
getAdminConfig
().
getMailSendNick
()
);
email
.
addTo
(
toAddress
);
email
.
addTo
(
toAddress
);
email
.
setSubject
(
mailSubject
);
email
.
setSubject
(
mailSubject
);
email
.
setMsg
(
mailBody
);
email
.
setMsg
(
mailBody
);
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/PropertiesUtil.java
deleted
100644 → 0
View file @
dbf51a03
package
com
.
xxl
.
job
.
admin
.
core
.
util
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.core.io.ClassPathResource
;
import
org.springframework.core.io.Resource
;
import
org.springframework.core.io.support.EncodedResource
;
import
org.springframework.core.io.support.PropertiesLoaderUtils
;
import
java.io.IOException
;
import
java.util.Properties
;
/**
* properties util
*
* @author xuxueli 2015-8-28 10:35:53
*/
public
class
PropertiesUtil
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
PropertiesUtil
.
class
);
private
static
final
String
file_name
=
"xxl-job-admin.properties"
;
public
static
String
getString
(
String
key
)
{
Properties
prop
=
null
;
try
{
Resource
resource
=
new
ClassPathResource
(
file_name
);
EncodedResource
encodedResource
=
new
EncodedResource
(
resource
,
"UTF-8"
);
prop
=
PropertiesLoaderUtils
.
loadProperties
(
encodedResource
);
}
catch
(
IOException
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
}
if
(
prop
!=
null
)
{
return
prop
.
getProperty
(
key
);
}
return
null
;
}
}
xxl-job-admin/src/main/resources/spring/applicationcontext-base.xml
View file @
18991c3f
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"
>
http://www.springframework.org/schema/context/spring-context.xsd"
>
<context:component-scan
base-package=
"com.xxl.job.admin.service, com.xxl.job.admin.dao"
/>
<context:component-scan
base-package=
"com.xxl.job.admin.
core.conf, com.xxl.job.admin.
service, com.xxl.job.admin.dao"
/>
<bean
id=
"freemarkerConfig"
class=
"org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"
>
<bean
id=
"freemarkerConfig"
class=
"org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"
>
<property
name=
"templateLoaderPath"
value=
"/WEB-INF/template/"
/>
<property
name=
"templateLoaderPath"
value=
"/WEB-INF/template/"
/>
...
...
xxl-job-admin/src/test/java/com/xxl/job/admin/controller/JobInfoControllerTest.java
View file @
18991c3f
package
com
.
xxl
.
job
.
admin
.
controller
;
package
com
.
xxl
.
job
.
admin
.
controller
;
import
com.xxl.job.admin.controller.interceptor.PermissionInterceptor
;
import
com.xxl.job.admin.controller.interceptor.PermissionInterceptor
;
import
com.xxl.job.admin.core.
util.PropertiesUtil
;
import
com.xxl.job.admin.core.
conf.XxlJobAdminConfig
;
import
org.junit.Before
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.MediaType
;
...
@@ -22,8 +22,8 @@ public class JobInfoControllerTest extends AbstractSpringMvcTest {
...
@@ -22,8 +22,8 @@ public class JobInfoControllerTest extends AbstractSpringMvcTest {
MvcResult
ret
=
mockMvc
.
perform
(
MvcResult
ret
=
mockMvc
.
perform
(
post
(
"/login"
)
post
(
"/login"
)
.
contentType
(
MediaType
.
APPLICATION_FORM_URLENCODED
)
.
contentType
(
MediaType
.
APPLICATION_FORM_URLENCODED
)
.
param
(
"userName"
,
PropertiesUtil
.
getString
(
"xxl.job.login.username"
))
.
param
(
"userName"
,
XxlJobAdminConfig
.
getAdminConfig
().
getLoginUsername
(
))
.
param
(
"password"
,
PropertiesUtil
.
getString
(
"xxl.job.login.password"
))
.
param
(
"password"
,
XxlJobAdminConfig
.
getAdminConfig
().
getLoginPassword
(
))
).
andReturn
();
).
andReturn
();
cookie
=
ret
.
getResponse
().
getCookie
(
PermissionInterceptor
.
LOGIN_IDENTITY_KEY
);
cookie
=
ret
.
getResponse
().
getCookie
(
PermissionInterceptor
.
LOGIN_IDENTITY_KEY
);
}
}
...
...
xxl-job-admin/src/test/java/com/xxl/job/admin/util/I18nUtilTest.java
View file @
18991c3f
...
@@ -2,12 +2,17 @@ package com.xxl.job.admin.util;
...
@@ -2,12 +2,17 @@ package com.xxl.job.admin.util;
import
com.xxl.job.admin.core.util.I18nUtil
;
import
com.xxl.job.admin.core.util.I18nUtil
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
/**
/**
* email util test
* email util test
*
*
* @author xuxueli 2017-12-22 17:16:23
* @author xuxueli 2017-12-22 17:16:23
*/
*/
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@ContextConfiguration
(
locations
=
"classpath*:spring/applicationcontext-*.xml"
)
public
class
I18nUtilTest
{
public
class
I18nUtilTest
{
@Test
@Test
...
...
xxl-job-admin/src/test/java/com/xxl/job/admin/util/MailUtilTest.java
View file @
18991c3f
...
@@ -2,6 +2,9 @@ package com.xxl.job.admin.util;
...
@@ -2,6 +2,9 @@ package com.xxl.job.admin.util;
import
com.xxl.job.admin.core.util.MailUtil
;
import
com.xxl.job.admin.core.util.MailUtil
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
java.text.MessageFormat
;
import
java.text.MessageFormat
;
...
@@ -10,6 +13,8 @@ import java.text.MessageFormat;
...
@@ -10,6 +13,8 @@ import java.text.MessageFormat;
*
*
* @author xuxueli 2017-12-22 17:16:23
* @author xuxueli 2017-12-22 17:16:23
*/
*/
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@ContextConfiguration
(
locations
=
"classpath*:spring/applicationcontext-*.xml"
)
public
class
MailUtilTest
{
public
class
MailUtilTest
{
@Test
@Test
...
...
xxl-job-admin/src/test/java/com/xxl/job/admin/util/PropertiesUtilTest.java
deleted
100644 → 0
View file @
dbf51a03
package
com
.
xxl
.
job
.
admin
.
util
;
import
com.xxl.job.admin.core.util.PropertiesUtil
;
import
org.junit.Test
;
/**
* prop util test
*
* @author xuxueli 2017-12-25 15:17:36
*/
public
class
PropertiesUtilTest
{
@Test
public
void
registryTest
()
throws
Exception
{
System
.
out
.
println
(
PropertiesUtil
.
getString
(
"xxl.job.login.username"
));
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment