diff --git a/pom.xml b/pom.xml
index 901fcfd..b617be4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,6 @@
2.5.4
1.8.6
- 3.2.1
com.mysql.jdbc.Driver
@@ -198,7 +197,7 @@
${aspectj.version}
compile
-
+
commons-dbcp
commons-dbcp
@@ -328,17 +327,6 @@
-
-
- org.mybatis
- mybatis
- ${mybatis.version}
-
-
- org.mybatis
- mybatis-spring
- 1.1.1
-
javax.servlet
jstl
diff --git a/src/main/java/cc/wdcy/domain/oauth/OauthClientDetails.java b/src/main/java/cc/wdcy/domain/oauth/OauthClientDetails.java
index d1a235e..b5e6efb 100644
--- a/src/main/java/cc/wdcy/domain/oauth/OauthClientDetails.java
+++ b/src/main/java/cc/wdcy/domain/oauth/OauthClientDetails.java
@@ -11,6 +11,8 @@ import java.util.Date;
public class OauthClientDetails implements Serializable {
+ private static final long serialVersionUID = -6947822646185526939L;
+
private Date createTime = DateUtils.now();
private boolean archived = false;
@@ -64,9 +66,22 @@ public class OauthClientDetails implements Serializable {
*/
private boolean trusted = false;
+ /**
+ * Value is 'true' or 'false', default 'false'
+ */
+ private String autoApprove;
+
public OauthClientDetails() {
}
+ public String autoApprove() {
+ return autoApprove;
+ }
+
+ public OauthClientDetails autoApprove(String autoApprove) {
+ this.autoApprove = autoApprove;
+ return this;
+ }
public boolean trusted() {
return trusted;
@@ -76,6 +91,11 @@ public class OauthClientDetails implements Serializable {
return createTime;
}
+ public OauthClientDetails createTime(Date createTime) {
+ this.createTime = createTime;
+ return this;
+ }
+
public boolean archived() {
return archived;
}
@@ -196,4 +216,9 @@ public class OauthClientDetails implements Serializable {
this.additionalInformation = additionalInformation;
return this;
}
+
+ public OauthClientDetails archived(boolean archived) {
+ this.archived = archived;
+ return this;
+ }
}
\ No newline at end of file
diff --git a/src/main/java/cc/wdcy/domain/oauth/OauthRepository.java b/src/main/java/cc/wdcy/domain/oauth/OauthRepository.java
index ae6cff7..4e20adb 100644
--- a/src/main/java/cc/wdcy/domain/oauth/OauthRepository.java
+++ b/src/main/java/cc/wdcy/domain/oauth/OauthRepository.java
@@ -1,7 +1,6 @@
package cc.wdcy.domain.oauth;
import cc.wdcy.domain.shared.Repository;
-import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -14,7 +13,7 @@ public interface OauthRepository extends Repository {
List findAllOauthClientDetails();
- void updateOauthClientDetailsArchive(@Param("clientId") String clientId, @Param("archive") boolean archive);
+ void updateOauthClientDetailsArchive(String clientId, boolean archive);
void saveOauthClientDetails(OauthClientDetails clientDetails);
}
\ No newline at end of file
diff --git a/src/main/java/cc/wdcy/domain/shared/security/WdcyUserDetails.java b/src/main/java/cc/wdcy/domain/shared/security/WdcyUserDetails.java
index 4037be8..2ab5223 100644
--- a/src/main/java/cc/wdcy/domain/shared/security/WdcyUserDetails.java
+++ b/src/main/java/cc/wdcy/domain/shared/security/WdcyUserDetails.java
@@ -15,6 +15,8 @@ import java.util.List;
*/
public class WdcyUserDetails implements UserDetails {
+ private static final long serialVersionUID = 3957586021470480642L;
+
protected static final String ROLE_PREFIX = "ROLE_";
protected static final GrantedAuthority DEFAULT_USER_ROLE = new SimpleGrantedAuthority(ROLE_PREFIX + Privilege.USER.name());
diff --git a/src/main/java/cc/wdcy/domain/user/User.java b/src/main/java/cc/wdcy/domain/user/User.java
index a280dd3..deb20ba 100644
--- a/src/main/java/cc/wdcy/domain/user/User.java
+++ b/src/main/java/cc/wdcy/domain/user/User.java
@@ -2,6 +2,7 @@ package cc.wdcy.domain.user;
import cc.wdcy.domain.AbstractDomain;
+import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -12,6 +13,9 @@ import java.util.List;
public class User extends AbstractDomain {
+ private static final long serialVersionUID = -2921689304753120556L;
+
+
private String username;
private String password;
@@ -92,7 +96,18 @@ public class User extends AbstractDomain {
return lastLoginTime;
}
- public void lastLoginTime(Date lastLoginTime) {
+ public User lastLoginTime(Date lastLoginTime) {
this.lastLoginTime = lastLoginTime;
+ return this;
+ }
+
+ public User createTime(Date createTime) {
+ this.createTime = createTime;
+ return this;
+ }
+
+ public User password(String password) {
+ this.password = password;
+ return this;
}
}
\ No newline at end of file
diff --git a/src/main/java/cc/wdcy/infrastructure/jdbc/OauthClientDetailsRowMapper.java b/src/main/java/cc/wdcy/infrastructure/jdbc/OauthClientDetailsRowMapper.java
new file mode 100644
index 0000000..5134c3d
--- /dev/null
+++ b/src/main/java/cc/wdcy/infrastructure/jdbc/OauthClientDetailsRowMapper.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2015 MONKEYK Information Technology Co. Ltd
+ * www.monkeyk.com
+ * All rights reserved.
+ *
+ * This software is the confidential and proprietary information of
+ * MONKEYK Information Technology Co. Ltd ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use
+ * it only in accordance with the terms of the license agreement you
+ * entered into with MONKEYK Information Technology Co. Ltd.
+ */
+package cc.wdcy.infrastructure.jdbc;
+
+import cc.wdcy.domain.oauth.OauthClientDetails;
+import org.springframework.jdbc.core.RowMapper;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+/**
+ * 2015/11/16
+ *
+ * @author Shengzhao Li
+ */
+public class OauthClientDetailsRowMapper implements RowMapper {
+
+
+ public OauthClientDetailsRowMapper() {
+ }
+
+ @Override
+ public OauthClientDetails mapRow(ResultSet rs, int i) throws SQLException {
+ OauthClientDetails clientDetails = new OauthClientDetails();
+
+ clientDetails.clientId(rs.getString("client_id"));
+ clientDetails.resourceIds(rs.getString("resource_ids"));
+ clientDetails.clientSecret(rs.getString("client_secret"));
+
+ clientDetails.scope(rs.getString("scope"));
+ clientDetails.authorizedGrantTypes(rs.getString("authorized_grant_types"));
+ clientDetails.webServerRedirectUri(rs.getString("web_server_redirect_uri"));
+
+ clientDetails.authorities(rs.getString("authorities"));
+ clientDetails.accessTokenValidity(getInteger(rs, "access_token_validity"));
+ clientDetails.refreshTokenValidity(getInteger(rs, "refresh_token_validity"));
+
+ clientDetails.additionalInformation(rs.getString("additional_information"));
+ clientDetails.createTime(rs.getTimestamp("create_time"));
+ clientDetails.archived(rs.getBoolean("archived"));
+
+ clientDetails.trusted(rs.getBoolean("trusted"));
+ clientDetails.autoApprove(rs.getString("autoapprove"));
+
+ return clientDetails;
+ }
+
+
+ private Integer getInteger(ResultSet rs, String columnName) throws SQLException {
+ final Object object = rs.getObject(columnName);
+ if (object != null) {
+ return (Integer) object;
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/cc/wdcy/infrastructure/jdbc/OauthRepositoryJdbc.java b/src/main/java/cc/wdcy/infrastructure/jdbc/OauthRepositoryJdbc.java
new file mode 100644
index 0000000..0ea06a0
--- /dev/null
+++ b/src/main/java/cc/wdcy/infrastructure/jdbc/OauthRepositoryJdbc.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright (c) 2015 MONKEYK Information Technology Co. Ltd
+ * www.monkeyk.com
+ * All rights reserved.
+ *
+ * This software is the confidential and proprietary information of
+ * MONKEYK Information Technology Co. Ltd ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use
+ * it only in accordance with the terms of the license agreement you
+ * entered into with MONKEYK Information Technology Co. Ltd.
+ */
+package cc.wdcy.infrastructure.jdbc;
+
+import cc.wdcy.domain.oauth.OauthClientDetails;
+import cc.wdcy.domain.oauth.OauthRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DataAccessException;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.PreparedStatementCallback;
+import org.springframework.jdbc.core.PreparedStatementSetter;
+import org.springframework.stereotype.Repository;
+
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.util.List;
+
+/**
+ * 2015/11/16
+ *
+ * @author Shengzhao Li
+ */
+@Repository("oauthRepositoryJdbc")
+public class OauthRepositoryJdbc implements OauthRepository {
+
+
+
+ private static OauthClientDetailsRowMapper oauthClientDetailsRowMapper = new OauthClientDetailsRowMapper();
+
+
+ @Autowired
+ private JdbcTemplate jdbcTemplate;
+
+
+ @Override
+ public OauthClientDetails findOauthClientDetails(String clientId) {
+ final String sql = " select * from oauth_client_details where client_id = ? ";
+ final List list = this.jdbcTemplate.query(sql, new Object[]{clientId}, oauthClientDetailsRowMapper);
+ return list.isEmpty() ? null : list.get(0);
+ }
+
+ @Override
+ public List findAllOauthClientDetails() {
+ final String sql = " select * from oauth_client_details order by create_time desc ";
+ return this.jdbcTemplate.query(sql, oauthClientDetailsRowMapper);
+ }
+
+ @Override
+ public void updateOauthClientDetailsArchive(String clientId, boolean archive) {
+ final String sql = " update oauth_client_details set archived = ? where client_id = ? ";
+ this.jdbcTemplate.update(sql, archive, clientId);
+ }
+
+ @Override
+ public void saveOauthClientDetails(final OauthClientDetails clientDetails) {
+ final String sql = " insert into oauth_client_details(client_id,resource_ids,client_secret,scope,authorized_grant_types,web_server_redirect_uri," +
+ " authorities,access_token_validity,refresh_token_validity,additional_information,trusted,autoapprove) values (?,?,?,?,?,?,?,?,?,?,?,?)";
+
+ this.jdbcTemplate.update(sql, new PreparedStatementSetter() {
+ @Override
+ public void setValues(PreparedStatement ps) throws SQLException {
+ ps.setString(1, clientDetails.clientId());
+ ps.setString(2, clientDetails.resourceIds());
+
+ ps.setString(3, clientDetails.clientSecret());
+ ps.setString(4, clientDetails.scope());
+
+ ps.setString(5, clientDetails.authorizedGrantTypes());
+ ps.setString(6, clientDetails.webServerRedirectUri());
+
+ ps.setString(7, clientDetails.authorities());
+ ps.setObject(8, clientDetails.accessTokenValidity());
+
+ ps.setObject(9, clientDetails.refreshTokenValidity());
+ ps.setString(10, clientDetails.additionalInformation());
+
+ ps.setBoolean(11, clientDetails.trusted());
+ ps.setString(12, clientDetails.autoApprove());
+
+ }
+ });
+ }
+}
diff --git a/src/main/java/cc/wdcy/infrastructure/jdbc/UserRepositoryJdbc.java b/src/main/java/cc/wdcy/infrastructure/jdbc/UserRepositoryJdbc.java
new file mode 100644
index 0000000..6a7477e
--- /dev/null
+++ b/src/main/java/cc/wdcy/infrastructure/jdbc/UserRepositoryJdbc.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright (c) 2015 MONKEYK Information Technology Co. Ltd
+ * www.monkeyk.com
+ * All rights reserved.
+ *
+ * This software is the confidential and proprietary information of
+ * MONKEYK Information Technology Co. Ltd ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use
+ * it only in accordance with the terms of the license agreement you
+ * entered into with MONKEYK Information Technology Co. Ltd.
+ */
+package cc.wdcy.infrastructure.jdbc;
+
+import cc.wdcy.domain.user.Privilege;
+import cc.wdcy.domain.user.User;
+import cc.wdcy.domain.user.UserRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.PreparedStatementSetter;
+import org.springframework.stereotype.Repository;
+
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 2015/11/16
+ *
+ * @author Shengzhao Li
+ */
+@Repository("userRepositoryJdbc")
+public class UserRepositoryJdbc implements UserRepository {
+
+
+
+ private static UserRowMapper userRowMapper = new UserRowMapper();
+
+ @Autowired
+ private JdbcTemplate jdbcTemplate;
+
+ @Override
+ public User findByGuid(String guid) {
+ final String sql = " select * from user_ where guid = ? ";
+ final List list = this.jdbcTemplate.query(sql, new Object[]{guid}, userRowMapper);
+
+ User user = null;
+ if (!list.isEmpty()) {
+ user = list.get(0);
+ user.privileges().addAll(findPrivileges(user.id()));
+ }
+
+ return user;
+ }
+
+ private Collection findPrivileges(int userId) {
+ final String sql = " select privilege from user_privilege where user_id = ? ";
+ final List strings = this.jdbcTemplate.queryForList(sql, new Object[]{userId}, String.class);
+
+ List privileges = new ArrayList<>(strings.size());
+ for (String string : strings) {
+ privileges.add(Privilege.valueOf(string));
+ }
+ return privileges;
+ }
+
+ @Override
+ public void saveUser(final User user) {
+ final String sql = " insert into user_(guid,archived,create_time,email,password,username,phone) " +
+ " values (?,?,?,?,?,?,?) ";
+ this.jdbcTemplate.update(sql, new PreparedStatementSetter() {
+
+ @Override
+ public void setValues(PreparedStatement ps) throws SQLException {
+ ps.setString(1, user.guid());
+ ps.setBoolean(2, user.archived());
+
+ ps.setTimestamp(3, new Timestamp(user.createTime().getTime()));
+ ps.setString(4, user.email());
+
+ ps.setString(5, user.password());
+ ps.setString(6, user.username());
+
+ ps.setString(7, user.phone());
+ }
+ });
+ }
+
+ @Override
+ public void updateUser(final User user) {
+ final String sql = " update user_ set username = ?, password = ?, phone = ?,email = ? where guid = ? ";
+ this.jdbcTemplate.update(sql, new PreparedStatementSetter() {
+ @Override
+ public void setValues(PreparedStatement ps) throws SQLException {
+ ps.setString(1, user.username());
+ ps.setString(2, user.password());
+
+ ps.setString(3, user.phone());
+ ps.setString(4, user.email());
+
+ ps.setString(5, user.guid());
+ }
+ });
+ }
+
+ @Override
+ public User findByUsername(String username) {
+ final String sql = " select * from user_ where username = ? and archived = 0 ";
+ final List list = this.jdbcTemplate.query(sql, new Object[]{username}, userRowMapper);
+
+ User user = null;
+ if (!list.isEmpty()) {
+ user = list.get(0);
+ user.privileges().addAll(findPrivileges(user.id()));
+ }
+
+ return user;
+ }
+}
diff --git a/src/main/java/cc/wdcy/infrastructure/jdbc/UserRowMapper.java b/src/main/java/cc/wdcy/infrastructure/jdbc/UserRowMapper.java
new file mode 100644
index 0000000..43eeee4
--- /dev/null
+++ b/src/main/java/cc/wdcy/infrastructure/jdbc/UserRowMapper.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2015 MONKEYK Information Technology Co. Ltd
+ * www.monkeyk.com
+ * All rights reserved.
+ *
+ * This software is the confidential and proprietary information of
+ * MONKEYK Information Technology Co. Ltd ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use
+ * it only in accordance with the terms of the license agreement you
+ * entered into with MONKEYK Information Technology Co. Ltd.
+ */
+package cc.wdcy.infrastructure.jdbc;
+
+import cc.wdcy.domain.user.User;
+import org.springframework.jdbc.core.RowMapper;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+/**
+ * 2015/11/16
+ *
+ * @author Shengzhao Li
+ */
+public class UserRowMapper implements RowMapper {
+
+
+ public UserRowMapper() {
+ }
+
+ @Override
+ public User mapRow(ResultSet rs, int i) throws SQLException {
+ User user = new User();
+
+ user.id(rs.getInt("id"));
+ user.guid(rs.getString("guid"));
+
+ user.archived(rs.getBoolean("archived"));
+ user.createTime(rs.getTimestamp("create_time"));
+
+ user.email(rs.getString("email"));
+ user.phone(rs.getString("phone"));
+
+ user.password(rs.getString("password"));
+ user.username(rs.getString("username"));
+
+ user.lastLoginTime(rs.getTimestamp("last_login_time"));
+
+ return user;
+ }
+}
diff --git a/src/main/java/cc/wdcy/infrastructure/mybatis/OauthRepositoryMyBatis.java b/src/main/java/cc/wdcy/infrastructure/mybatis/OauthRepositoryMyBatis.java
deleted file mode 100644
index a70b781..0000000
--- a/src/main/java/cc/wdcy/infrastructure/mybatis/OauthRepositoryMyBatis.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package cc.wdcy.infrastructure.mybatis;
-
-import cc.wdcy.domain.oauth.OauthRepository;
-
-/**
- * @author Shengzhao Li
- */
-public interface OauthRepositoryMyBatis extends OauthRepository {
-}
\ No newline at end of file
diff --git a/src/main/java/cc/wdcy/infrastructure/mybatis/UserRepositoryMyBatis.java b/src/main/java/cc/wdcy/infrastructure/mybatis/UserRepositoryMyBatis.java
deleted file mode 100644
index e65506c..0000000
--- a/src/main/java/cc/wdcy/infrastructure/mybatis/UserRepositoryMyBatis.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package cc.wdcy.infrastructure.mybatis;
-
-import cc.wdcy.domain.user.UserRepository;
-
-/**
- * @author Shengzhao Li
- */
-public interface UserRepositoryMyBatis extends UserRepository {
-}
\ No newline at end of file
diff --git a/src/main/java/cc/wdcy/service/impl/UserServiceImpl.java b/src/main/java/cc/wdcy/service/impl/UserServiceImpl.java
index 43d8935..9b93364 100644
--- a/src/main/java/cc/wdcy/service/impl/UserServiceImpl.java
+++ b/src/main/java/cc/wdcy/service/impl/UserServiceImpl.java
@@ -28,7 +28,7 @@ public class UserServiceImpl implements UserService {
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
User user = userRepository.findByUsername(username);
- if (user == null) {
+ if (user == null || user.archived()) {
throw new UsernameNotFoundException("Not found any user for username[" + username + "]");
}
diff --git a/src/main/resources/cc/wdcy/infrastructure/mybatis/OauthMapper.xml b/src/main/resources/cc/wdcy/infrastructure/mybatis/OauthMapper.xml
deleted file mode 100644
index 20beaf5..0000000
--- a/src/main/resources/cc/wdcy/infrastructure/mybatis/OauthMapper.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- update oauth_client_details set archived = #{archive}
- where client_id = #{clientId}
-
-
-
-
- insert into oauth_client_details(client_id,resource_ids,client_secret,scope,authorized_grant_types,web_server_redirect_uri,
- authorities,access_token_validity,refresh_token_validity,additional_information,trusted)
- values
- (#{clientId},#{resourceIds},#{clientSecret},#{scope},#{authorizedGrantTypes}, #{webServerRedirectUri},
- #{authorities},#{accessTokenValidity},#{refreshTokenValidity},#{additionalInformation}, #{trusted})
-
-
-
-
\ No newline at end of file
diff --git a/src/main/resources/cc/wdcy/infrastructure/mybatis/UserMapper.xml b/src/main/resources/cc/wdcy/infrastructure/mybatis/UserMapper.xml
deleted file mode 100644
index 900f7a0..0000000
--- a/src/main/resources/cc/wdcy/infrastructure/mybatis/UserMapper.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- insert into user_(guid,archived,create_time,email,password,username,phone, last_login_time)
- values
- (#{guid},#{archived},#{createTime},#{email},#{password},#{username}, #{phone}, #{lastLoginTime})
-
-
-
- update user_ set
- username = #{username},
- password = #{password},
- phone = #{phone},
- email = #{email}
- where guid = #{guid}
-
-
-
\ No newline at end of file
diff --git a/src/main/resources/mybatis.xml b/src/main/resources/mybatis.xml
deleted file mode 100644
index 577028f..0000000
--- a/src/main/resources/mybatis.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/resources/spring/context.xml b/src/main/resources/spring/context.xml
index f18a430..65b850e 100644
--- a/src/main/resources/spring/context.xml
+++ b/src/main/resources/spring/context.xml
@@ -10,7 +10,7 @@
-
+
@@ -46,20 +46,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/wdcy-servlet.xml b/src/main/webapp/WEB-INF/mkk-servlet.xml
similarity index 88%
rename from src/main/webapp/WEB-INF/wdcy-servlet.xml
rename to src/main/webapp/WEB-INF/mkk-servlet.xml
index e6276b8..a9f0986 100644
--- a/src/main/webapp/WEB-INF/wdcy-servlet.xml
+++ b/src/main/webapp/WEB-INF/mkk-servlet.xml
@@ -1,31 +1,31 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index 7b4c539..26f500d 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -75,14 +75,14 @@
org.springframework.web.context.ContextLoaderListener
-
+
- wdcy
+ mkk
org.springframework.web.servlet.DispatcherServlet
2
- wdcy
+ mkk
/
diff --git a/src/test/java/cc/wdcy/ContextTest.java b/src/test/java/cc/wdcy/ContextTest.java
index b9ea46d..12b5400 100644
--- a/src/test/java/cc/wdcy/ContextTest.java
+++ b/src/test/java/cc/wdcy/ContextTest.java
@@ -7,7 +7,7 @@ import org.springframework.test.context.transaction.BeforeTransaction;
/**
* @author Shengzhao Li
*/
-@ContextConfiguration(locations = {"classpath:testApplicationContext.xml"})
+@ContextConfiguration(locations = {"classpath:/spring/*.xml"}, initializers = {TestApplicationContextInitializer.class})
public abstract class ContextTest extends AbstractTransactionalTestNGSpringContextTests {
@BeforeTransaction
diff --git a/src/test/java/cc/wdcy/TestApplicationContextInitializer.java b/src/test/java/cc/wdcy/TestApplicationContextInitializer.java
new file mode 100644
index 0000000..6a6d11c
--- /dev/null
+++ b/src/test/java/cc/wdcy/TestApplicationContextInitializer.java
@@ -0,0 +1,21 @@
+package cc.wdcy;
+
+import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
+import org.springframework.context.ApplicationContextInitializer;
+import org.springframework.context.support.AbstractApplicationContext;
+import org.springframework.core.io.ClassPathResource;
+
+/**
+ * @author Shengzhao Li
+ */
+public class TestApplicationContextInitializer implements ApplicationContextInitializer {
+
+ @Override
+ public void initialize(AbstractApplicationContext applicationContext) {
+ PropertyPlaceholderConfigurer propertyPlaceholderConfigurer = new PropertyPlaceholderConfigurer();
+ //load test.properties
+ propertyPlaceholderConfigurer.setLocation(new ClassPathResource("test.properties"));
+
+ applicationContext.addBeanFactoryPostProcessor(propertyPlaceholderConfigurer);
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/cc/wdcy/infrastructure/AbstractRepositoryTest.java b/src/test/java/cc/wdcy/infrastructure/AbstractRepositoryTest.java
index 022f2d7..91cb6da 100644
--- a/src/test/java/cc/wdcy/infrastructure/AbstractRepositoryTest.java
+++ b/src/test/java/cc/wdcy/infrastructure/AbstractRepositoryTest.java
@@ -1,7 +1,6 @@
package cc.wdcy.infrastructure;
import cc.wdcy.ContextTest;
-import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
@@ -14,13 +13,6 @@ public abstract class AbstractRepositoryTest extends ContextTest {
@Autowired
private JdbcTemplate jdbcTemplate;
- @Autowired
- private SqlSessionTemplate sqlSessionTemplate;
-
-
- public SqlSessionTemplate sqlSessionTemplate() {
- return sqlSessionTemplate;
- }
public JdbcTemplate jdbcTemplate() {
return jdbcTemplate;
diff --git a/src/test/java/cc/wdcy/infrastructure/mybatis/OauthRepositoryMyBatisTest.java b/src/test/java/cc/wdcy/infrastructure/jdbc/OauthRepositoryJdbcTest.java
similarity index 73%
rename from src/test/java/cc/wdcy/infrastructure/mybatis/OauthRepositoryMyBatisTest.java
rename to src/test/java/cc/wdcy/infrastructure/jdbc/OauthRepositoryJdbcTest.java
index a9680ba..ae02cc7 100644
--- a/src/test/java/cc/wdcy/infrastructure/mybatis/OauthRepositoryMyBatisTest.java
+++ b/src/test/java/cc/wdcy/infrastructure/jdbc/OauthRepositoryJdbcTest.java
@@ -1,4 +1,15 @@
-package cc.wdcy.infrastructure.mybatis;
+/*
+ * Copyright (c) 2015 MONKEYK Information Technology Co. Ltd
+ * www.monkeyk.com
+ * All rights reserved.
+ *
+ * This software is the confidential and proprietary information of
+ * MONKEYK Information Technology Co. Ltd ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use
+ * it only in accordance with the terms of the license agreement you
+ * entered into with MONKEYK Information Technology Co. Ltd.
+ */
+package cc.wdcy.infrastructure.jdbc;
import cc.wdcy.domain.oauth.OauthClientDetails;
import cc.wdcy.domain.oauth.OauthRepository;
@@ -11,10 +22,10 @@ import java.util.List;
import static org.testng.Assert.*;
-/**
- * @author Shengzhao Li
- */
-public class OauthRepositoryMyBatisTest extends AbstractRepositoryTest {
+/*
+ * @author Shengzhao Li
+ */
+public class OauthRepositoryJdbcTest extends AbstractRepositoryTest {
@Autowired
@@ -56,4 +67,5 @@ public class OauthRepositoryMyBatisTest extends AbstractRepositoryTest {
oauthRepositoryMyBatis.updateOauthClientDetailsArchive("ddooelddd", true);
}
+
}
\ No newline at end of file
diff --git a/src/test/java/cc/wdcy/infrastructure/mybatis/UserRepositoryMyBatisTest.java b/src/test/java/cc/wdcy/infrastructure/jdbc/UserRepositoryJdbcTest.java
similarity index 70%
rename from src/test/java/cc/wdcy/infrastructure/mybatis/UserRepositoryMyBatisTest.java
rename to src/test/java/cc/wdcy/infrastructure/jdbc/UserRepositoryJdbcTest.java
index 9a94d11..e6690b7 100644
--- a/src/test/java/cc/wdcy/infrastructure/mybatis/UserRepositoryMyBatisTest.java
+++ b/src/test/java/cc/wdcy/infrastructure/jdbc/UserRepositoryJdbcTest.java
@@ -1,4 +1,15 @@
-package cc.wdcy.infrastructure.mybatis;
+/*
+ * Copyright (c) 2015 MONKEYK Information Technology Co. Ltd
+ * www.monkeyk.com
+ * All rights reserved.
+ *
+ * This software is the confidential and proprietary information of
+ * MONKEYK Information Technology Co. Ltd ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall use
+ * it only in accordance with the terms of the license agreement you
+ * entered into with MONKEYK Information Technology Co. Ltd.
+ */
+package cc.wdcy.infrastructure.jdbc;
import cc.wdcy.domain.user.User;
import cc.wdcy.domain.user.UserRepository;
@@ -6,12 +17,16 @@ import cc.wdcy.infrastructure.AbstractRepositoryTest;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.annotations.Test;
-import static org.testng.AssertJUnit.*;
+import static org.testng.Assert.*;
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertNotNull;
+import static org.testng.AssertJUnit.assertNull;
+
+/*
+ * @author Shengzhao Li
+ */
+public class UserRepositoryJdbcTest extends AbstractRepositoryTest {
-/**
- * @author Shengzhao Li
- */
-public class UserRepositoryMyBatisTest extends AbstractRepositoryTest {
@Autowired
private UserRepository userRepository;
diff --git a/src/test/resources/testApplicationContext.xml b/src/test/resources/testApplicationContext.xml
deleted file mode 100644
index 9e8f3f6..0000000
--- a/src/test/resources/testApplicationContext.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-
-
- classpath:test.properties
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file