From d9af76591ebcbee95a08e3d043ebfb0c385a9792 Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 5 Oct 2012 00:33:58 +0800 Subject: [PATCH 001/356] remove --- .../main/java/quickstart/entity/IdEntity.java | 34 ----- .../src/main/java/quickstart/entity/Task.java | 50 ------- .../src/main/java/quickstart/entity/User.java | 113 --------------- .../java/quickstart/repository/TaskDao.java | 21 --- .../java/quickstart/repository/UserDao.java | 11 -- .../quickstart/rest/TaskRestController.java | 102 ------------- .../quickstart/service/ServiceException.java | 32 ----- .../service/account/AccountService.java | 123 ---------------- .../service/account/ShiroDbRealm.java | 136 ------------------ .../quickstart/service/task/TaskService.java | 85 ----------- .../web/account/LoginController.java | 35 ----- .../web/account/ProfileController.java | 69 --------- .../web/account/RegisterController.java | 54 ------- .../web/account/UserAdminController.java | 74 ---------- .../quickstart/web/task/TaskController.java | 130 ----------------- .../test/java/quickstart/data/TaskData.java | 28 ---- .../test/java/quickstart/data/UserData.java | 19 --- .../quickstart/repository/JpaMappingTest.java | 40 ------ .../quickstart/repository/TaskDaoTest.java | 32 ----- .../service/account/AccountServiceTest.java | 92 ------------ 20 files changed, 1280 deletions(-) delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/entity/IdEntity.java delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/entity/Task.java delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/entity/User.java delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/repository/TaskDao.java delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/repository/UserDao.java delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/rest/TaskRestController.java delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/service/ServiceException.java delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/service/account/AccountService.java delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/service/account/ShiroDbRealm.java delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/service/task/TaskService.java delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/account/LoginController.java delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/account/ProfileController.java delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/account/RegisterController.java delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/account/UserAdminController.java delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/task/TaskController.java delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/data/TaskData.java delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/data/UserData.java delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/repository/JpaMappingTest.java delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/repository/TaskDaoTest.java delete mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/service/account/AccountServiceTest.java diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/entity/IdEntity.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/entity/IdEntity.java deleted file mode 100644 index 37d3211b7..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/entity/IdEntity.java +++ /dev/null @@ -1,34 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -package ${groupId}.${artifactId}.entity; - -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.MappedSuperclass; - -/** - * 统一定义id的entity基类. - * - * 基类统一定义id的属性名称、数据类型、列名映射及生成策略. - * Oracle需要每个Entity独立定义id的SEQUCENCE时,不继承于本类而改为实现一个Idable的接口。 - * - * @author calvin - */ -//JPA 基类的标识 -@MappedSuperclass -public abstract class IdEntity { - - protected Long id; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } -} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/entity/Task.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/entity/Task.java deleted file mode 100644 index 59663cf15..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/entity/Task.java +++ /dev/null @@ -1,50 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -package ${groupId}.${artifactId}.entity; - -import javax.persistence.Entity; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -import org.hibernate.validator.constraints.NotBlank; - -//JPA标识 -@Entity -@Table(name = "${tablePrefix}task") -public class Task extends IdEntity { - - private String title; - private String description; - private User user; - - // JSR303 BeanValidator的校验规则 - @NotBlank - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - // JPA 基于USER_ID列的多对一关系定义 - @ManyToOne - @JoinColumn(name = "user_id") - public User getUser() { - return user; - } - - public void setUser(User user) { - this.user = user; - } -} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/entity/User.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/entity/User.java deleted file mode 100644 index c7639567f..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/entity/User.java +++ /dev/null @@ -1,113 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -package ${groupId}.${artifactId}.entity; - -import java.util.Date; -import java.util.List; - -import javax.persistence.Entity; -import javax.persistence.Table; -import javax.persistence.Transient; - -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.hibernate.validator.constraints.NotBlank; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.google.common.collect.ImmutableList; - -@Entity -@Table(name = "${tablePrefix}user") -public class User extends IdEntity { - private String loginName; - private String name; - private String plainPassword; - private String password; - private String salt; - private String roles; - private Date registerDate; - - public User() { - } - - public User(Long id) { - this.id = id; - } - - @NotBlank - public String getLoginName() { - return loginName; - } - - public void setLoginName(String loginName) { - this.loginName = loginName; - } - - @NotBlank - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - // 不持久化到数据库,也不显示在Restful接口的属性. - @Transient - @JsonIgnore - public String getPlainPassword() { - return plainPassword; - } - - public void setPlainPassword(String plainPassword) { - this.plainPassword = plainPassword; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getSalt() { - return salt; - } - - public void setSalt(String salt) { - this.salt = salt; - } - - public String getRoles() { - return roles; - } - - public void setRoles(String roles) { - this.roles = roles; - } - - @Transient - @JsonIgnore - public List getRoleList() { - // 角色列表在数据库中实际以逗号分隔字符串存储,因此返回不能修改的List. - return ImmutableList.copyOf(StringUtils.split(roles, ",")); - } - - // 设定JSON序列化时的日期格式 - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00") - public Date getRegisterDate() { - return registerDate; - } - - public void setRegisterDate(Date registerDate) { - this.registerDate = registerDate; - } - - @Override - public String toString() { - return ToStringBuilder.reflectionToString(this); - } -} \ No newline at end of file diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/repository/TaskDao.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/repository/TaskDao.java deleted file mode 100644 index fb1aeb1a0..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/repository/TaskDao.java +++ /dev/null @@ -1,21 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -package ${groupId}.${artifactId}.repository; - -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.PagingAndSortingRepository; -import ${groupId}.${artifactId}.entity.Task; - -public interface TaskDao extends PagingAndSortingRepository, JpaSpecificationExecutor { - - Page findByUserId(Long id, Pageable pageRequest); - - @Modifying - @Query("delete from Task task where task.user.id=?1") - void deleteByUserId(Long id); -} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/repository/UserDao.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/repository/UserDao.java deleted file mode 100644 index 283bb2469..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/repository/UserDao.java +++ /dev/null @@ -1,11 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -package ${groupId}.${artifactId}.repository; - -import org.springframework.data.repository.PagingAndSortingRepository; -import ${groupId}.${artifactId}.entity.User; - -public interface UserDao extends PagingAndSortingRepository { - User findByLoginName(String loginName); -} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/rest/TaskRestController.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/rest/TaskRestController.java deleted file mode 100644 index ca16bd62f..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/rest/TaskRestController.java +++ /dev/null @@ -1,102 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -package ${groupId}.${artifactId}.rest; - -import java.net.URI; -import java.util.List; -import java.util.Set; - -import javax.validation.ConstraintViolation; -import javax.validation.Validator; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.ResponseStatus; -import org.springframework.web.util.UriComponentsBuilder; -import ${groupId}.${artifactId}.entity.Task; -import ${groupId}.${artifactId}.service.task.TaskService; -import org.springside.modules.beanvalidator.BeanValidators; - -/** - * Task的Restful API的Controller. - * - * @author calvin - */ -@Controller -@RequestMapping(value = "/api/v1/task") -public class TaskRestController { - - @Autowired - private TaskService taskService; - - @Autowired - private Validator validator; - - @RequestMapping(method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) - @ResponseBody - public List list() { - return taskService.getAllTask(); - } - - @RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) - @ResponseBody - public ResponseEntity get(@PathVariable("id") Long id) { - Task task = taskService.getTask(id); - if (task == null) { - return new ResponseEntity(HttpStatus.NOT_FOUND); - } - return new ResponseEntity(task, HttpStatus.OK); - } - - @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) - @ResponseBody - public ResponseEntity create(@RequestBody Task task, UriComponentsBuilder uriBuilder) { - //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息. - Set> failures = validator.validate(task); - if (!failures.isEmpty()) { - return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST); - } - - //保存任务 - taskService.saveTask(task); - - //按照Restful风格约定,创建指向新任务的url, 也可以直接返回id或对象. - Long id = task.getId(); - URI uri = uriBuilder.path("/api/v1/task/" + id).build().toUri(); - HttpHeaders headers = new HttpHeaders(); - headers.setLocation(uri); - - return new ResponseEntity(headers, HttpStatus.CREATED); - } - - @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity update(@RequestBody Task task) { - //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息. - Set> failures = validator.validate(task); - if (!failures.isEmpty()) { - return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST); - } - - //保存 - taskService.saveTask(task); - - //按Restful约定,返回204状态码, 无内容. 也可以返回200状态码. - return new ResponseEntity(HttpStatus.NO_CONTENT); - } - - @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) - @ResponseStatus(HttpStatus.NO_CONTENT) - public void delete(@PathVariable("id") Long id) { - taskService.deleteTask(id); - } -} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/service/ServiceException.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/service/ServiceException.java deleted file mode 100644 index 19780bf1c..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/service/ServiceException.java +++ /dev/null @@ -1,32 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -package ${groupId}.${artifactId}.service; - -/** - * Service层公用的Exception. - * - * 继承自RuntimeException, 从由Spring管理事务的函数中抛出时会触发事务回滚. - * - * @author calvin - */ -public class ServiceException extends RuntimeException { - - private static final long serialVersionUID = 3583566093089790852L; - - public ServiceException() { - super(); - } - - public ServiceException(String message) { - super(message); - } - - public ServiceException(Throwable cause) { - super(cause); - } - - public ServiceException(String message, Throwable cause) { - super(message, cause); - } -} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/service/account/AccountService.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/service/account/AccountService.java deleted file mode 100644 index 99ece6987..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/service/account/AccountService.java +++ /dev/null @@ -1,123 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -package ${groupId}.${artifactId}.service.account; - -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.shiro.SecurityUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; -import ${groupId}.${artifactId}.entity.User; -import ${groupId}.${artifactId}.repository.TaskDao; -import ${groupId}.${artifactId}.repository.UserDao; -import ${groupId}.${artifactId}.service.ServiceException; -import ${groupId}.${artifactId}.service.account.ShiroDbRealm.ShiroUser; -import org.springside.modules.security.utils.Digests; -import org.springside.modules.utils.DateProvider; -import org.springside.modules.utils.Encodes; - -/** - * 用户管理类. - * - * @author calvin - */ -// Spring Service Bean的标识. -@Component -@Transactional(readOnly = true) -public class AccountService { - - public static final String HASH_ALGORITHM = "SHA-1"; - public static final int HASH_INTERATIONS = 1024; - private static final int SALT_SIZE = 8; - - private static Logger logger = LoggerFactory.getLogger(AccountService.class); - - private UserDao userDao; - private TaskDao taskDao; - private DateProvider dateProvider = DateProvider.DEFAULT; - - public List getAllUser() { - return (List) userDao.findAll(); - } - - public User getUser(Long id) { - return userDao.findOne(id); - } - - public User findUserByLoginName(String loginName) { - return userDao.findByLoginName(loginName); - } - - @Transactional(readOnly = false) - public void registerUser(User user) { - entryptPassword(user); - user.setRoles("user"); - user.setRegisterDate(dateProvider.getDate()); - - userDao.save(user); - } - - @Transactional(readOnly = false) - public void updateUser(User user) { - if (StringUtils.isNotBlank(user.getPlainPassword())) { - entryptPassword(user); - } - userDao.save(user); - } - - @Transactional(readOnly = false) - public void deleteUser(Long id) { - if (isSupervisor(id)) { - logger.warn("操作员{}尝试删除超级管理员用户", getCurrentUserName()); - throw new ServiceException("不能删除超级管理员用户"); - } - userDao.delete(id); - taskDao.deleteByUserId(id); - - } - - /** - * 判断是否超级管理员. - */ - private boolean isSupervisor(Long id) { - return id == 1; - } - - /** - * 取出Shiro中的当前用户LoginName. - */ - private String getCurrentUserName() { - ShiroUser user = (ShiroUser) SecurityUtils.getSubject().getPrincipal(); - return user.loginName; - } - - /** - * 设定安全的密码,生成随机的salt并经过1024次 sha-1 hash - */ - private void entryptPassword(User user) { - byte[] salt = Digests.generateSalt(SALT_SIZE); - user.setSalt(Encodes.encodeHex(salt)); - - byte[] hashPassword = Digests.sha1(user.getPlainPassword().getBytes(), salt, HASH_INTERATIONS); - user.setPassword(Encodes.encodeHex(hashPassword)); - } - - @Autowired - public void setUserDao(UserDao userDao) { - this.userDao = userDao; - } - - @Autowired - public void setTaskDao(TaskDao taskDao) { - this.taskDao = taskDao; - } - - public void setDateProvider(DateProvider dateProvider) { - this.dateProvider = dateProvider; - } -} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/service/account/ShiroDbRealm.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/service/account/ShiroDbRealm.java deleted file mode 100644 index 9c23f934c..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/service/account/ShiroDbRealm.java +++ /dev/null @@ -1,136 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package ${groupId}.${artifactId}.service.account; - -import java.io.Serializable; - -import javax.annotation.PostConstruct; - -import org.apache.commons.lang3.builder.EqualsBuilder; -import org.apache.commons.lang3.builder.HashCodeBuilder; -import org.apache.shiro.authc.AuthenticationException; -import org.apache.shiro.authc.AuthenticationInfo; -import org.apache.shiro.authc.AuthenticationToken; -import org.apache.shiro.authc.SimpleAuthenticationInfo; -import org.apache.shiro.authc.UsernamePasswordToken; -import org.apache.shiro.authc.credential.HashedCredentialsMatcher; -import org.apache.shiro.authz.AuthorizationInfo; -import org.apache.shiro.authz.SimpleAuthorizationInfo; -import org.apache.shiro.realm.AuthorizingRealm; -import org.apache.shiro.subject.PrincipalCollection; -import org.apache.shiro.util.ByteSource; -import org.springframework.beans.factory.annotation.Autowired; -import ${groupId}.${artifactId}.entity.User; -import org.springside.modules.utils.Encodes; - -public class ShiroDbRealm extends AuthorizingRealm { - - protected AccountService accountService; - - /** - * 认证回调函数,登录时调用. - */ - @Override - protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken) throws AuthenticationException { - UsernamePasswordToken token = (UsernamePasswordToken) authcToken; - User user = accountService.findUserByLoginName(token.getUsername()); - if (user != null) { - byte[] salt = Encodes.decodeHex(user.getSalt()); - return new SimpleAuthenticationInfo(new ShiroUser(user.getId(), user.getLoginName(), user.getName()), - user.getPassword(), ByteSource.Util.bytes(salt), getName()); - } else { - return null; - } - } - - /** - * 授权查询回调函数, 进行鉴权但缓存中无用户的授权信息时调用. - */ - @Override - protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { - ShiroUser shiroUser = (ShiroUser) principals.getPrimaryPrincipal(); - User user = accountService.findUserByLoginName(shiroUser.loginName); - SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); - info.addRoles(user.getRoleList()); - return info; - } - - /** - * 设定Password校验的Hash算法与迭代次数. - */ - @PostConstruct - public void initCredentialsMatcher() { - HashedCredentialsMatcher matcher = new HashedCredentialsMatcher(AccountService.HASH_ALGORITHM); - matcher.setHashIterations(AccountService.HASH_INTERATIONS); - - setCredentialsMatcher(matcher); - } - - @Autowired - public void setAccountService(AccountService accountService) { - this.accountService = accountService; - } - - /** - * 自定义Authentication对象,使得Subject除了携带用户的登录名外还可以携带更多信息. - */ - public static class ShiroUser implements Serializable { - private static final long serialVersionUID = -1373760761780840081L; - public Long id; - public String loginName; - public String name; - - public ShiroUser(Long id, String loginName, String name) { - this.id = id; - this.loginName = loginName; - this.name = name; - } - - public String getName() { - return name; - } - - /** - * 本函数输出将作为默认的输出. - */ - @Override - public String toString() { - return loginName; - } - - /** - * 重载equals,只计算loginName; - */ - @Override - public int hashCode() { - return HashCodeBuilder.reflectionHashCode(this, "loginName"); - } - - /** - * 重载equals,只比较loginName - */ - @Override - public boolean equals(Object obj) { - return EqualsBuilder.reflectionEquals(this, obj, "loginName"); - } - } -} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/service/task/TaskService.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/service/task/TaskService.java deleted file mode 100644 index a2f6e7941..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/service/task/TaskService.java +++ /dev/null @@ -1,85 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -package ${groupId}.${artifactId}.service.task; - -import java.util.List; -import java.util.Map; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Sort; -import org.springframework.data.domain.Sort.Direction; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; -import ${groupId}.${artifactId}.entity.Task; -import ${groupId}.${artifactId}.repository.TaskDao; -import org.springside.modules.persistence.DynamicSpecifications; -import org.springside.modules.persistence.SearchFilter; -import org.springside.modules.persistence.SearchFilter.Operator; - -//Spring Bean的标识. -@Component -// 默认将类中的所有public函数纳入事务管理. -@Transactional(readOnly = true) -public class TaskService { - - private TaskDao taskDao; - - public Task getTask(Long id) { - return taskDao.findOne(id); - } - - @Transactional(readOnly = false) - public void saveTask(Task entity) { - taskDao.save(entity); - } - - @Transactional(readOnly = false) - public void deleteTask(Long id) { - taskDao.delete(id); - } - - public List getAllTask() { - return (List) taskDao.findAll(); - } - - public Page getUserTask(Long userId, Map filterParams, int pageNumber, int pageSize, - String sortType) { - PageRequest pageRequest = buildPageRequest(pageNumber, pageSize, sortType); - Specification spec = buildSpecification(userId, filterParams); - - return taskDao.findAll(spec, pageRequest); - } - - /** - * 创建分页请求. - */ - private PageRequest buildPageRequest(int pageNumber, int pagzSize, String sortType) { - Sort sort = null; - if ("auto".equals(sortType)) { - sort = new Sort(Direction.DESC, "id"); - } else if ("title".equals(sortType)) { - sort = new Sort(Direction.ASC, "title"); - } - - return new PageRequest(pageNumber - 1, pagzSize, sort); - } - - /** - * 创建动态查询条件组合. - */ - private Specification buildSpecification(Long userId, Map filterParams) { - Map filters = SearchFilter.parse(filterParams); - filters.put("user.id", new SearchFilter("user.id", Operator.EQ, userId)); - Specification spec = DynamicSpecifications.bySearchFilter(filters.values(), Task.class); - return spec; - } - - @Autowired - public void setTaskDao(TaskDao taskDao) { - this.taskDao = taskDao; - } -} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/account/LoginController.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/account/LoginController.java deleted file mode 100644 index a563faf3c..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/account/LoginController.java +++ /dev/null @@ -1,35 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -package ${groupId}.${artifactId}.web.account; - -import org.apache.shiro.web.filter.authc.FormAuthenticationFilter; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; - -/** - * LoginController负责打开登录页面(GET请求)和登录出错页面(POST请求), - - * 真正登录的POST请求由Filter完成, - * - * @author calvin - */ -@Controller -@RequestMapping(value = "/login") -public class LoginController { - - @RequestMapping(method = RequestMethod.GET) - public String login() { - return "account/login"; - } - - @RequestMapping(method = RequestMethod.POST) - public String fail(@RequestParam(FormAuthenticationFilter.DEFAULT_USERNAME_PARAM) String userName, Model model) { - model.addAttribute(FormAuthenticationFilter.DEFAULT_USERNAME_PARAM, userName); - return "account/login"; - } - -} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/account/ProfileController.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/account/ProfileController.java deleted file mode 100644 index c08c57b8a..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/account/ProfileController.java +++ /dev/null @@ -1,69 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -package ${groupId}.${artifactId}.web.account; - -import javax.validation.Valid; - -import org.apache.shiro.SecurityUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import ${groupId}.${artifactId}.entity.User; -import ${groupId}.${artifactId}.service.account.AccountService; -import ${groupId}.${artifactId}.service.account.ShiroDbRealm.ShiroUser; - -/** - * 用户修改自己资料的Controller. - * - * @author calvin - */ -@Controller -@RequestMapping(value = "/profile") -public class ProfileController { - - @Autowired - private AccountService accountService; - - @RequestMapping(method = RequestMethod.GET) - public String updateForm(Model model) { - Long id = getCurrentUserId(); - model.addAttribute("user", accountService.getUser(id)); - return "account/profile"; - } - - @RequestMapping(method = RequestMethod.POST) - public String update(@Valid @ModelAttribute("preloadUser") User user) { - accountService.updateUser(user); - updateCurrentUserName(user.getName()); - return "redirect:/"; - } - - @ModelAttribute("preloadUser") - public User getUser(@RequestParam(value = "id", required = false) Long id) { - if (id != null) { - return accountService.getUser(id); - } - return null; - } - - /** - * 取出Shiro中的当前用户Id. - */ - private Long getCurrentUserId() { - ShiroUser user = (ShiroUser) SecurityUtils.getSubject().getPrincipal(); - return user.id; - } - - /** - * 更新Shiro中当前用户的用户名. - */ - private void updateCurrentUserName(String userName) { - ShiroUser user = (ShiroUser) SecurityUtils.getSubject().getPrincipal(); - user.name = userName; - } -} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/account/RegisterController.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/account/RegisterController.java deleted file mode 100644 index 26f1dcaf9..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/account/RegisterController.java +++ /dev/null @@ -1,54 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -package ${groupId}.${artifactId}.web.account; - -import javax.validation.Valid; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.servlet.mvc.support.RedirectAttributes; -import ${groupId}.${artifactId}.entity.User; -import ${groupId}.${artifactId}.service.account.AccountService; - -/** - * 用户注册的Controller. - * - * @author calvin - */ -@Controller -@RequestMapping(value = "/register") -public class RegisterController { - - @Autowired - private AccountService accountService; - - @RequestMapping(method = RequestMethod.GET) - public String registerForm() { - return "account/register"; - } - - @RequestMapping(method = RequestMethod.POST) - public String register(@Valid User user, RedirectAttributes redirectAttributes) { - accountService.registerUser(user); - redirectAttributes.addFlashAttribute("username", user.getLoginName()); - return "redirect:/login"; - } - - /** - * Ajax请求校验loginName是否唯一。 - */ - @RequestMapping(value = "checkLoginName") - @ResponseBody - public String checkLoginName(@RequestParam("loginName") String loginName) { - if (accountService.findUserByLoginName(loginName) == null) { - return "true"; - } else { - return "false"; - } - } -} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/account/UserAdminController.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/account/UserAdminController.java deleted file mode 100644 index 77baab5cc..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/account/UserAdminController.java +++ /dev/null @@ -1,74 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -package ${groupId}.${artifactId}.web.account; - -import java.util.List; - -import javax.validation.Valid; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.servlet.mvc.support.RedirectAttributes; -import ${groupId}.${artifactId}.entity.User; -import ${groupId}.${artifactId}.service.account.AccountService; - -/** - * 管理员管理用户的Controller. - * - * @author calvin - */ -@Controller -@RequestMapping(value = "/admin/user") -public class UserAdminController { - - @Autowired - private AccountService accountService; - - @RequestMapping(method = RequestMethod.GET) - public String list(Model model) { - List users = accountService.getAllUser(); - model.addAttribute("users", users); - - return "account/adminUserList"; - } - - @RequestMapping(value = "update/{id}", method = RequestMethod.GET) - public String updateForm(@PathVariable("id") Long id, Model model) { - model.addAttribute("user", accountService.getUser(id)); - return "account/adminUserForm"; - } - - @RequestMapping(value = "update", method = RequestMethod.POST) - public String update(@Valid @ModelAttribute("preloadUser") User user, RedirectAttributes redirectAttributes) { - accountService.updateUser(user); - redirectAttributes.addFlashAttribute("message", "更新用户" + user.getLoginName() + "成功"); - return "redirect:/admin/user"; - } - - @RequestMapping(value = "delete/{id}") - public String delete(@PathVariable("id") Long id, RedirectAttributes redirectAttributes) { - User user = accountService.getUser(id); - accountService.deleteUser(id); - redirectAttributes.addFlashAttribute("message", "删除用户" + user.getLoginName() + "成功"); - return "redirect:/admin/user"; - } - - /** - * 使用@ModelAttribute, 实现Struts2 Preparable二次部分绑定的效果,先根据form的id从数据库查出User对象,再把Form提交的内容绑定到该对象上。 - * 因为仅update()方法的form中有id属性,因此本方法在该方法中执行. - */ - @ModelAttribute("preloadUser") - public User getUser(@RequestParam(value = "id", required = false) Long id) { - if (id != null) { - return accountService.getUser(id); - } - return null; - } -} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/task/TaskController.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/task/TaskController.java deleted file mode 100644 index 2ea5fd942..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/quickstart/web/task/TaskController.java +++ /dev/null @@ -1,130 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -package ${groupId}.${artifactId}.web.task; - -import java.util.Map; - -import javax.servlet.ServletRequest; -import javax.validation.Valid; - -import org.apache.shiro.SecurityUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.servlet.mvc.support.RedirectAttributes; -import ${groupId}.${artifactId}.entity.Task; -import ${groupId}.${artifactId}.entity.User; -import ${groupId}.${artifactId}.service.account.ShiroDbRealm.ShiroUser; -import ${groupId}.${artifactId}.service.task.TaskService; -import org.springside.modules.web.Servlets; - -import com.google.common.collect.Maps; - -/** - * Task管理的Controller, 使用Restful风格的Urls: - * - * List page : GET /task/ - * Create page : GET /task/create - * Create action : POST /task/create - * Update page : GET /task/update/{id} - * Update action : POST /task/update - * Delete action : GET /task/delete/{id} - * - * @author calvin - */ -@Controller -@RequestMapping(value = "/task") -public class TaskController { - - private static final int PAGE_SIZE = 3; - - private static Map sortTypes = Maps.newLinkedHashMap(); - static { - sortTypes.put("auto", "自动"); - sortTypes.put("title", "标题"); - } - - @Autowired - private TaskService taskService; - - @RequestMapping(value = "") - public String list(@RequestParam(value = "sortType", defaultValue = "auto") String sortType, - @RequestParam(value = "page", defaultValue = "1") int pageNumber, Model model, ServletRequest request) { - - Map searchParams = Servlets.getParametersStartingWith(request, "search_"); - Long userId = getCurrentUserId(); - - Page tasks = taskService.getUserTask(userId, searchParams, pageNumber, PAGE_SIZE, sortType); - model.addAttribute("tasks", tasks); - model.addAttribute("sortType", sortType); - model.addAttribute("sortTypes", sortTypes); - model.addAttribute("searchParams", Servlets.encodeParameterStringWithPrefix(searchParams, "search_")); - - return "task/taskList"; - } - - @RequestMapping(value = "create", method = RequestMethod.GET) - public String createForm(Model model) { - model.addAttribute("task", new Task()); - model.addAttribute("action", "create"); - return "task/taskForm"; - } - - @RequestMapping(value = "create", method = RequestMethod.POST) - public String create(@Valid Task newTask, RedirectAttributes redirectAttributes) { - User user = new User(getCurrentUserId()); - newTask.setUser(user); - - taskService.saveTask(newTask); - redirectAttributes.addFlashAttribute("message", "创建任务成功"); - return "redirect:/task/"; - } - - @RequestMapping(value = "update/{id}", method = RequestMethod.GET) - public String updateForm(@PathVariable("id") Long id, Model model) { - model.addAttribute("task", taskService.getTask(id)); - model.addAttribute("action", "update"); - return "task/taskForm"; - } - - @RequestMapping(value = "update", method = RequestMethod.POST) - public String update(@Valid @ModelAttribute("preloadTask") Task task, RedirectAttributes redirectAttributes) { - taskService.saveTask(task); - redirectAttributes.addFlashAttribute("message", "更新任务成功"); - return "redirect:/task/"; - } - - @RequestMapping(value = "delete/{id}") - public String delete(@PathVariable("id") Long id, RedirectAttributes redirectAttributes) { - taskService.deleteTask(id); - redirectAttributes.addFlashAttribute("message", "删除任务成功"); - return "redirect:/task/"; - } - - /** - * 使用@ModelAttribute, 实现Struts2 Preparable二次部分绑定的效果,先根据form的id从数据库查出Task对象,再把Form提交的内容绑定到该对象上。 - * 因为仅update()方法的form中有id属性,因此本方法在该方法中执行. - */ - @ModelAttribute("preloadTask") - public Task getTask(@RequestParam(value = "id", required = false) Long id) { - if (id != null) { - return taskService.getTask(id); - } - return null; - } - - /** - * 取出Shiro中的当前用户Id. - */ - private Long getCurrentUserId() { - ShiroUser user = (ShiroUser) SecurityUtils.getSubject().getPrincipal(); - return user.id; - } -} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/data/TaskData.java b/support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/data/TaskData.java deleted file mode 100644 index 34d184c8a..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/data/TaskData.java +++ /dev/null @@ -1,28 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -package ${groupId}.${artifactId}.data; - -import ${groupId}.${artifactId}.entity.Task; -import ${groupId}.${artifactId}.entity.User; -import org.springside.modules.test.data.RandomData; - -/** - * Task相关实体测试数据生成. - * - * @author calvin - */ -public class TaskData { - - public static Task randomTask() { - Task task = new Task(); - task.setTitle(randomTitle()); - User user = new User(1L); - task.setUser(user); - return task; - } - - public static String randomTitle() { - return RandomData.randomName("Task"); - } -} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/data/UserData.java b/support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/data/UserData.java deleted file mode 100644 index 9223b4743..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/data/UserData.java +++ /dev/null @@ -1,19 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -package ${groupId}.${artifactId}.data; - -import ${groupId}.${artifactId}.entity.User; -import org.springside.modules.test.data.RandomData; - -public class UserData { - - public static User randomNewUser() { - User user = new User(); - user.setLoginName(RandomData.randomName("user")); - user.setName(RandomData.randomName("User")); - user.setPlainPassword(RandomData.randomName("password")); - - return user; - } -} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/repository/JpaMappingTest.java b/support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/repository/JpaMappingTest.java deleted file mode 100644 index 4ad0a1ecc..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/repository/JpaMappingTest.java +++ /dev/null @@ -1,40 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -package ${groupId}.${artifactId}.repository; - -import static org.junit.Assert.*; - -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; -import javax.persistence.metamodel.EntityType; -import javax.persistence.metamodel.Metamodel; - -import org.junit.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.test.context.ContextConfiguration; -import org.springside.modules.test.spring.SpringTransactionalTestCase; - -@ContextConfiguration(locations = { "/applicationContext.xml" }) -public class JpaMappingTest extends SpringTransactionalTestCase { - - private static Logger logger = LoggerFactory.getLogger(JpaMappingTest.class); - - @PersistenceContext - private EntityManager em; - - @Test - public void allClassMapping() throws Exception { - Metamodel model = em.getEntityManagerFactory().getMetamodel(); - - assertTrue("No entity mapping found", model.getEntities().size() > 0); - - for (EntityType entityType : model.getEntities()) { - String entityName = entityType.getName(); - em.createQuery("select o from " + entityName + " o").getResultList(); - logger.info("ok: " + entityName); - - } - } -} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/repository/TaskDaoTest.java b/support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/repository/TaskDaoTest.java deleted file mode 100644 index 7d0cabb88..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/repository/TaskDaoTest.java +++ /dev/null @@ -1,32 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -package ${groupId}.${artifactId}.repository; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Sort.Direction; -import org.springframework.test.context.ContextConfiguration; -import ${groupId}.${artifactId}.entity.Task; -import org.springside.modules.test.spring.SpringTransactionalTestCase; - -@ContextConfiguration(locations = { "/applicationContext.xml" }) -public class TaskDaoTest extends SpringTransactionalTestCase { - - @Autowired - private TaskDao taskDao; - - @Test - public void findTasksByUserId() throws Exception { - Page tasks = taskDao.findByUserId(2L, new PageRequest(0, 100, Direction.ASC, "id")); - assertEquals(5, tasks.getContent().size()); - assertEquals(new Long(1), tasks.getContent().get(0).getId()); - - tasks = taskDao.findByUserId(99999L, new PageRequest(0, 100, Direction.ASC, "id")); - assertEquals(0, tasks.getContent().size()); - } -} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/service/account/AccountServiceTest.java b/support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/service/account/AccountServiceTest.java deleted file mode 100644 index 11fb4c370..000000000 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/test/java/quickstart/service/account/AccountServiceTest.java +++ /dev/null @@ -1,92 +0,0 @@ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -package ${groupId}.${artifactId}.service.account; - -import static org.junit.Assert.*; - -import java.util.Date; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import ${groupId}.${artifactId}.data.UserData; -import ${groupId}.${artifactId}.entity.User; -import ${groupId}.${artifactId}.repository.TaskDao; -import ${groupId}.${artifactId}.repository.UserDao; -import ${groupId}.${artifactId}.service.ServiceException; -import ${groupId}.${artifactId}.service.account.ShiroDbRealm.ShiroUser; -import org.springside.modules.test.security.shiro.ShiroTestUtils; -import org.springside.modules.utils.DateProvider.ConfigurableDateProvider; - -/** - * AccountService的测试用例, 测试Service层的业务逻辑. - * - * @author calvin - */ -public class AccountServiceTest { - - @InjectMocks - private AccountService accountService; - - @Mock - private UserDao mockUserDao; - - @Mock - private TaskDao mockTaskDao; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - ShiroTestUtils.mockSubject(new ShiroUser(3L, "foo", "Foo")); - } - - @Test - public void registerUser() { - User user = UserData.randomNewUser(); - Date currentTime = new Date(); - accountService.setDateProvider(new ConfigurableDateProvider(currentTime)); - - accountService.registerUser(user); - - // 验证user的角色,注册日期和加密后的密码都被自动更新了。 - assertEquals("user", user.getRoles()); - assertEquals(currentTime, user.getRegisterDate()); - assertNotNull(user.getPassword()); - assertNotNull(user.getSalt()); - } - - @Test - public void updateUser() { - // 如果明文密码不为空,加密密码会被更新. - User user = UserData.randomNewUser(); - accountService.updateUser(user); - assertNotNull(user.getSalt()); - - // 如果明文密码为空,加密密码无变化。 - User user2 = UserData.randomNewUser(); - user2.setPlainPassword(null); - accountService.updateUser(user2); - assertNull(user2.getSalt()); - } - - @Test - public void deleteUser() { - // 正常删除用户. - accountService.deleteUser(2L); - Mockito.verify(mockUserDao).delete(2L); - - // 删除超级管理用户抛出异常, userDao没有被执行 - try { - accountService.deleteUser(1L); - fail("expected ServicExcepton not be thrown"); - } catch (ServiceException e) { - // expected exception - } - Mockito.verify(mockUserDao, Mockito.never()).delete(1L); - } - -} From d6526b84a3b20c4a361cc3a655a76ba25f30ef61 Mon Sep 17 00:00:00 2001 From: xff8175 Date: Tue, 7 Jan 2014 15:35:53 +0800 Subject: [PATCH 002/356] Update schema.sql change regiser_date to register_date --- examples/quickstart/src/main/resources/sql/oracle/schema.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/quickstart/src/main/resources/sql/oracle/schema.sql b/examples/quickstart/src/main/resources/sql/oracle/schema.sql index c7fa99234..3fe81c38d 100644 --- a/examples/quickstart/src/main/resources/sql/oracle/schema.sql +++ b/examples/quickstart/src/main/resources/sql/oracle/schema.sql @@ -16,10 +16,10 @@ create table ss_user ( password varchar2(255) not null, salt varchar2(64) not null, roles varchar2(255) not null, - regiser_date date not null, + register_date date not null, primary key (id) ); create sequence ss_seq_task start with 100 increment by 20; -create sequence ss_seq_user start with 100 increment by 20; \ No newline at end of file +create sequence ss_seq_user start with 100 increment by 20; From 7c46831b3b76f9c7efe0ffab398ffa7e7081cff2 Mon Sep 17 00:00:00 2001 From: gqshao Date: Wed, 8 Jan 2014 10:42:43 +0800 Subject: [PATCH 003/356] Update schema.sql MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修正无效的数据类型 --- examples/quickstart/src/main/resources/sql/oracle/schema.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/quickstart/src/main/resources/sql/oracle/schema.sql b/examples/quickstart/src/main/resources/sql/oracle/schema.sql index 3fe81c38d..51baa7a99 100644 --- a/examples/quickstart/src/main/resources/sql/oracle/schema.sql +++ b/examples/quickstart/src/main/resources/sql/oracle/schema.sql @@ -5,8 +5,8 @@ create table ss_task ( id number(19,0), title varchar2(128) not null, description varchar2(255), - user_id bigint not null, - primary key (id) + user_id number(19,0) not null, + primary key (id) ); create table ss_user ( From 89d9d8709d847e89b69106e220e68b0d46b52136 Mon Sep 17 00:00:00 2001 From: Calvin Date: Wed, 8 Jan 2014 16:34:43 +0800 Subject: [PATCH 004/356] =?UTF-8?q?logstash=20=E6=96=87=E4=BB=B6=E9=87=8D?= =?UTF-8?q?=E5=91=BD=E5=90=8D=E4=B8=8E=E6=B3=A8=E9=87=8A=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- support/logstash/README.txt | 7 ++++- .../logstash/error_collector/collector.conf | 13 +++++---- .../error_collector/collector_start.bat | 2 +- support/logstash/error_collector/shipper.conf | 27 ------------------- .../error_collector/shipper.conf.example | 27 +++++++++++++++++++ .../error_collector/shipper_start.bat | 2 +- .../full_log_collector/full_log_collector.bat | 3 --- .../safe_log_collector/safe_log_collector.bat | 3 +++ .../safe_log_collector.conf.example} | 0 9 files changed, 44 insertions(+), 40 deletions(-) delete mode 100644 support/logstash/error_collector/shipper.conf create mode 100644 support/logstash/error_collector/shipper.conf.example delete mode 100644 support/logstash/full_log_collector/full_log_collector.bat create mode 100644 support/logstash/safe_log_collector/safe_log_collector.bat rename support/logstash/{full_log_collector/full_log_collector.conf => safe_log_collector/safe_log_collector.conf.example} (100%) diff --git a/support/logstash/README.txt b/support/logstash/README.txt index f44516b55..79375d957 100644 --- a/support/logstash/README.txt +++ b/support/logstash/README.txt @@ -2,4 +2,9 @@ Logstash Usage Demo =================== * error_collector: 从不同机器上收集日志文件中的所有错误日志,输出到一个文件中。 -* full_log_collector: logstash中file input的sincedb功能演示,如何保证所有的日志文件(包括rotate的文件)都能被logstash收集到(包括logstash收集节点中途停掉又恢复的情况)。 \ No newline at end of file +* safe_log_collector: logstash中file input的sincedb功能演示,如何保证所有的日志文件(包括rotate的文件)都能被logstash收集到(包括logstash收集节点中途停掉又恢复的情况)。 + +错误日志收集的演示流程: +1. 下载 logstash-1.3.2-flatjar.jar 放到本目录,将子目录中的shipper.conf.example 复制成 shipper.conf, 修改log日志路径。 +2. 运行 shipper 与 collector, 同时在showcase中产生错误日志 +3. 访问 http://localhost:9292/ 访问GUI \ No newline at end of file diff --git a/support/logstash/error_collector/collector.conf b/support/logstash/error_collector/collector.conf index 0a31cf726..c15c94c91 100644 --- a/support/logstash/error_collector/collector.conf +++ b/support/logstash/error_collector/collector.conf @@ -1,18 +1,17 @@ -input { +input { # 在TCP端口上侦听 tcp { host => "127.0.0.1" port => 6868 mode => "server" type => "showcase" - debug => true - codec => "plain" # 注意,TCP input的codec和TCP output的codec一定要一致,但现在1.3.1版本里的默认codec是不一致的!所以最好是自己定义. + codec => "plain" } } -output { - file { - path => "showcase_error.log" # 将所有收集到的错误日志统一输出到一个日志文件中 +output { + file { # 输出到统一错误日志,格式为仅包含message内容本身。 + path => "showcase_error.log" message_format => "%{message}" } - elasticsearch { embedded => true } # 同时将错误日志输出到ElasticSearch, 方便具体错误查找和统计 + elasticsearch { embedded => true } # 同时输出到嵌入式的ElasticSearch } \ No newline at end of file diff --git a/support/logstash/error_collector/collector_start.bat b/support/logstash/error_collector/collector_start.bat index 0e16d26cb..20a39e91d 100644 --- a/support/logstash/error_collector/collector_start.bat +++ b/support/logstash/error_collector/collector_start.bat @@ -1,3 +1,3 @@ -java -jar ../logstash-1.3.1-flatjar.jar agent -f collector.conf -- web +java -jar ../logstash-1.3.2-flatjar.jar agent -f collector.conf -- web pause; \ No newline at end of file diff --git a/support/logstash/error_collector/shipper.conf b/support/logstash/error_collector/shipper.conf deleted file mode 100644 index 47d1b5c1f..000000000 --- a/support/logstash/error_collector/shipper.conf +++ /dev/null @@ -1,27 +0,0 @@ -input { - file { - path => "C:\****\springside4\examples\showcase\logs\showcase.log" # 这里只能是绝对路径,logstash不认相对路径 - type => "showcase" - codec => multiline { # 将Exception打印出来的stacktrace拼接成一条日志记录 - pattern => "(^\d+\serror)|(^.+Exception: .+)|(^\s+at .+)|(^\s+... \d+ more)|(^\s*Caused by:.+)" - what => "previous" - } - start_position => "beginning" - } -} - -filter { - if [type] != "showcase" or [message] !~ /(ERROR)|(^.+Exception: .+)/{ - drop {} # 将非错误日志过滤掉,因为之前已经将stacktrace拼接成一条记录,所以这里的过滤条件也比较简单,不需要复杂的正则表达式,只要带Error或者Exception就可以了 - } -} - -output { - tcp { - host => "127.0.0.1" - port => 6868 - codec => plain { # 注意,TCP input的codec和TCP output的codec一定要一致,但现在1.3.1版本里的默认codec是不一致的!所以最好是自己定义. - format => "[%{host}]-%{message}" # 设置output的格式, 将主机名和日志一起output到TCP, 默认格式会在原日志message的基础上添加logstash处理这条日志的时间戳和主机名 - } - } -} diff --git a/support/logstash/error_collector/shipper.conf.example b/support/logstash/error_collector/shipper.conf.example new file mode 100644 index 000000000..7cc9e6125 --- /dev/null +++ b/support/logstash/error_collector/shipper.conf.example @@ -0,0 +1,27 @@ +input { + file { + path => "[SpringSide Dir]\examples\showcase\logs\showcase.log" # logstash要求必须是绝对路径 + type => "showcase" + codec => multiline { # 将Exception Stacktrace拼接成一条日志记录 + pattern => "(^\d+\serror)|(^.+Exception: .+)|(^\s+at .+)|(^\s+... \d+ more)|(^\s*Caused by:.+)" + what => "previous" + } + start_position => "beginning" + } +} + +filter { + if [type] != "showcase" or [message] !~ /(ERROR)|(^.+Exception: .+)/{ + drop {} # 将非错误日志过滤掉 + } +} + +output { + tcp { + host => "127.0.0.1" + port => 6868 + codec => plain { + format => "[%{host}]-%{message}" # 设置output的格式, 将主机名和日志一起output到TCP + } + } +} diff --git a/support/logstash/error_collector/shipper_start.bat b/support/logstash/error_collector/shipper_start.bat index f5611be15..4d8c32cf3 100644 --- a/support/logstash/error_collector/shipper_start.bat +++ b/support/logstash/error_collector/shipper_start.bat @@ -1,3 +1,3 @@ -java -jar ../logstash-1.3.1-flatjar.jar agent -f shipper.conf +java -jar ../logstash-1.3.2-flatjar.jar agent -f shipper.conf pause; \ No newline at end of file diff --git a/support/logstash/full_log_collector/full_log_collector.bat b/support/logstash/full_log_collector/full_log_collector.bat deleted file mode 100644 index 17500b363..000000000 --- a/support/logstash/full_log_collector/full_log_collector.bat +++ /dev/null @@ -1,3 +0,0 @@ -java -jar ../logstash-1.3.1-flatjar.jar agent -f full_log_collector.conf - -pause; \ No newline at end of file diff --git a/support/logstash/safe_log_collector/safe_log_collector.bat b/support/logstash/safe_log_collector/safe_log_collector.bat new file mode 100644 index 000000000..eee026519 --- /dev/null +++ b/support/logstash/safe_log_collector/safe_log_collector.bat @@ -0,0 +1,3 @@ +java -jar ../logstash-1.3.2-flatjar.jar agent -f safe_log_collector.conf + +pause; \ No newline at end of file diff --git a/support/logstash/full_log_collector/full_log_collector.conf b/support/logstash/safe_log_collector/safe_log_collector.conf.example similarity index 100% rename from support/logstash/full_log_collector/full_log_collector.conf rename to support/logstash/safe_log_collector/safe_log_collector.conf.example From 622efc09eda034c53996564144d0540d04271c9a Mon Sep 17 00:00:00 2001 From: Calvin Date: Wed, 8 Jan 2014 16:43:39 +0800 Subject: [PATCH 005/356] =?UTF-8?q?logstash=20=E6=96=87=E4=BB=B6=E9=87=8D?= =?UTF-8?q?=E5=91=BD=E5=90=8D=E4=B8=8E=E6=B3=A8=E9=87=8A=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- support/logstash/.gitignore | 1 + .../error_collector/{collector_start.bat => collector.bat} | 0 .../logstash/error_collector/{shipper_start.bat => shipper.bat} | 0 .../safe_log_collector.bat => safe_shipper/shipper.bat} | 0 .../shipper.conf.example} | 0 5 files changed, 1 insertion(+) create mode 100644 support/logstash/.gitignore rename support/logstash/error_collector/{collector_start.bat => collector.bat} (100%) rename support/logstash/error_collector/{shipper_start.bat => shipper.bat} (100%) rename support/logstash/{safe_log_collector/safe_log_collector.bat => safe_shipper/shipper.bat} (100%) rename support/logstash/{safe_log_collector/safe_log_collector.conf.example => safe_shipper/shipper.conf.example} (100%) diff --git a/support/logstash/.gitignore b/support/logstash/.gitignore new file mode 100644 index 000000000..f97d69a4a --- /dev/null +++ b/support/logstash/.gitignore @@ -0,0 +1 @@ +/logstash-*-flatjar.jar diff --git a/support/logstash/error_collector/collector_start.bat b/support/logstash/error_collector/collector.bat similarity index 100% rename from support/logstash/error_collector/collector_start.bat rename to support/logstash/error_collector/collector.bat diff --git a/support/logstash/error_collector/shipper_start.bat b/support/logstash/error_collector/shipper.bat similarity index 100% rename from support/logstash/error_collector/shipper_start.bat rename to support/logstash/error_collector/shipper.bat diff --git a/support/logstash/safe_log_collector/safe_log_collector.bat b/support/logstash/safe_shipper/shipper.bat similarity index 100% rename from support/logstash/safe_log_collector/safe_log_collector.bat rename to support/logstash/safe_shipper/shipper.bat diff --git a/support/logstash/safe_log_collector/safe_log_collector.conf.example b/support/logstash/safe_shipper/shipper.conf.example similarity index 100% rename from support/logstash/safe_log_collector/safe_log_collector.conf.example rename to support/logstash/safe_shipper/shipper.conf.example From 804e69df7a14f4d40c0963f1399257f366c2e876 Mon Sep 17 00:00:00 2001 From: Calvin Date: Wed, 8 Jan 2014 16:43:39 +0800 Subject: [PATCH 006/356] =?UTF-8?q?logstash=20=E6=96=87=E4=BB=B6=E9=87=8D?= =?UTF-8?q?=E5=91=BD=E5=90=8D=E4=B8=8E=E6=B3=A8=E9=87=8A=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- support/logstash/.gitignore | 3 ++- support/logstash/safe_shipper/shipper.bat | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/support/logstash/.gitignore b/support/logstash/.gitignore index f97d69a4a..f0e5e5f68 100644 --- a/support/logstash/.gitignore +++ b/support/logstash/.gitignore @@ -1 +1,2 @@ -/logstash-*-flatjar.jar +logstash-*-flatjar.jar +shipper.conf \ No newline at end of file diff --git a/support/logstash/safe_shipper/shipper.bat b/support/logstash/safe_shipper/shipper.bat index eee026519..4d8c32cf3 100644 --- a/support/logstash/safe_shipper/shipper.bat +++ b/support/logstash/safe_shipper/shipper.bat @@ -1,3 +1,3 @@ -java -jar ../logstash-1.3.2-flatjar.jar agent -f safe_log_collector.conf +java -jar ../logstash-1.3.2-flatjar.jar agent -f shipper.conf pause; \ No newline at end of file From be81faa7ca6a2179523491e91162f12908417c9d Mon Sep 17 00:00:00 2001 From: Calvin Date: Wed, 8 Jan 2014 18:46:25 +0800 Subject: [PATCH 007/356] =?UTF-8?q?logstash=20=E4=BF=AE=E6=AD=A3=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=96=87=E4=BB=B6=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- support/logstash/error_collector/collector.conf | 2 +- support/logstash/error_collector/shipper.conf.example | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/support/logstash/error_collector/collector.conf b/support/logstash/error_collector/collector.conf index c15c94c91..94c690c21 100644 --- a/support/logstash/error_collector/collector.conf +++ b/support/logstash/error_collector/collector.conf @@ -9,7 +9,7 @@ input { # 在TCP端口上侦听 } output { - file { # 输出到统一错误日志,格式为仅包含message内容本身。 + file { # 输出到统一错误日志,仅包含message内容本身。 path => "showcase_error.log" message_format => "%{message}" } diff --git a/support/logstash/error_collector/shipper.conf.example b/support/logstash/error_collector/shipper.conf.example index 7cc9e6125..cdb468812 100644 --- a/support/logstash/error_collector/shipper.conf.example +++ b/support/logstash/error_collector/shipper.conf.example @@ -3,7 +3,7 @@ input { path => "[SpringSide Dir]\examples\showcase\logs\showcase.log" # logstash要求必须是绝对路径 type => "showcase" codec => multiline { # 将Exception Stacktrace拼接成一条日志记录 - pattern => "(^\d+\serror)|(^.+Exception: .+)|(^\s+at .+)|(^\s+... \d+ more)|(^\s*Caused by:.+)" + pattern => "(^.+Exception: .+)|(^\s+at .+)|(^\s*Caused by:.+)"|(^\s+... \d+ common frames omitted) what => "previous" } start_position => "beginning" @@ -21,7 +21,7 @@ output { host => "127.0.0.1" port => 6868 codec => plain { - format => "[%{host}]-%{message}" # 设置output的格式, 将主机名和日志一起output到TCP + format => "[%{host}]-%{message}" # 设置output的格式,输出HostName + Message内容本身 } } } From daf16e57ba01cd61c796b0ccfae969d6a71c4d38 Mon Sep 17 00:00:00 2001 From: Calvin Date: Wed, 15 Jan 2014 18:01:05 +0800 Subject: [PATCH 008/356] add nosqlunit to test redis --- modules/extension/pom.xml | 37 +++++++------ .../springside/modules/metrics/Counting.java | 5 -- .../modules/nosql/redis/JedisTemplate.java | 2 +- .../nosql/redis/JedisTemplateTest.java | 54 +++++++++++++++++++ 4 files changed, 77 insertions(+), 21 deletions(-) delete mode 100644 modules/extension/src/main/java/org/springside/modules/metrics/Counting.java create mode 100644 modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java diff --git a/modules/extension/pom.xml b/modules/extension/pom.xml index 31644f04d..d8e77fbdb 100644 --- a/modules/extension/pom.xml +++ b/modules/extension/pom.xml @@ -33,25 +33,25 @@ true - - - redis.clients - jedis - true - - + + + redis.clients + jedis + true + + commons-io commons-io true - + org.freemarker freemarker true - + org.apache.commons @@ -79,17 +79,17 @@ org.springside springside-test - + junit junit - + org.mockito mockito-core - + org.springframework spring-test @@ -98,12 +98,19 @@ com.thimbleware.jmemcached jmemcached-core - + org.slf4j jcl-over-slf4j test + + + com.lordofthejars + nosqlunit-redis + 0.7.9 + test + @@ -121,12 +128,12 @@ - + org.apache.maven.plugins maven-enforcer-plugin - + \ No newline at end of file diff --git a/modules/extension/src/main/java/org/springside/modules/metrics/Counting.java b/modules/extension/src/main/java/org/springside/modules/metrics/Counting.java deleted file mode 100644 index d5dafb916..000000000 --- a/modules/extension/src/main/java/org/springside/modules/metrics/Counting.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.springside.modules.metrics; - -public interface Counting { - -} diff --git a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java index 28986466f..ba9ff50ce 100644 --- a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java +++ b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java @@ -103,7 +103,7 @@ public interface JedisActionNoResult { /** * 删除key, 如果key存在返回true, 否则返回false。 */ - public boolean del(final String key) { + public boolean del(final String... key) { return execute(new JedisAction() { @Override diff --git a/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java b/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java new file mode 100644 index 000000000..6177897f7 --- /dev/null +++ b/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java @@ -0,0 +1,54 @@ +package org.springside.modules.nosql.redis; + +import static org.junit.Assert.*; + +import org.junit.Before; +import org.junit.ClassRule; +import org.junit.Test; +import org.mockito.Mockito; + +import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisPool; + +import com.lordofthejars.nosqlunit.redis.EmbeddedRedis; +import com.lordofthejars.nosqlunit.redis.EmbeddedRedis.EmbeddedRedisRuleBuilder; +import com.lordofthejars.nosqlunit.redis.EmbeddedRedisInstances; + +public class JedisTemplateTest { + + private JedisTemplate jedisTemplate; + + @ClassRule + public static EmbeddedRedis embeddedRedisRule = EmbeddedRedisRuleBuilder.newEmbeddedRedisRule().build(); + + @Before + public void setup() { + Jedis embeddedRedis = EmbeddedRedisInstances.getInstance().getDefaultJedis(); + JedisPool jedisPool = Mockito.mock(JedisPool.class); + Mockito.when(jedisPool.getResource()).thenReturn(embeddedRedis); + + jedisTemplate = new JedisTemplate(jedisPool); + } + + @Test + public void stringActions() { + String key = "test.string.key"; + String notExistKey = key + "not.exist"; + String value = "123"; + + jedisTemplate.set(key, value); + assertEquals(jedisTemplate.get(key), value); + assertNull(jedisTemplate.get(notExistKey)); + + assertTrue(jedisTemplate.del(key)); + assertFalse(jedisTemplate.del(notExistKey)); + + jedisTemplate.set(key, value); + assertEquals((int) jedisTemplate.getAsInt(key), 123); + assertEquals((int) jedisTemplate.getAsInt(notExistKey), 0); + + jedisTemplate.set(key, value); + assertEquals((long) jedisTemplate.getAsLong(key), 123L); + assertEquals((long) jedisTemplate.getAsLong(notExistKey), 0); + } +} From 17483bc954424af2298d7e1e04de5a3dfb638381 Mon Sep 17 00:00:00 2001 From: Calvin Date: Wed, 15 Jan 2014 21:44:47 +0800 Subject: [PATCH 009/356] slight update --- examples/quickstart/pom.xml | 6 +++--- .../org/springside/examples/quickstart/entity/Task.java | 6 ++++++ modules/parent/pom.xml | 8 ++++---- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/examples/quickstart/pom.xml b/examples/quickstart/pom.xml index 57f199dbb..2a745d825 100644 --- a/examples/quickstart/pom.xml +++ b/examples/quickstart/pom.xml @@ -31,7 +31,7 @@ UTF-8 - 1.6 + 1.6 com.h2database @@ -414,8 +414,8 @@ maven-compiler-plugin 3.1 - ${jdk.version} - ${jdk.version} + ${java.version} + ${java.version} true diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/entity/Task.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/entity/Task.java index b809c6371..e81bd8479 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/entity/Task.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/entity/Task.java @@ -5,6 +5,7 @@ import javax.persistence.ManyToOne; import javax.persistence.Table; +import org.apache.commons.lang3.builder.ToStringBuilder; import org.hibernate.validator.constraints.NotBlank; //JPA标识 @@ -44,4 +45,9 @@ public User getUser() { public void setUser(User user) { this.user = user; } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } } diff --git a/modules/parent/pom.xml b/modules/parent/pom.xml index 0377ac089..1bb56b631 100644 --- a/modules/parent/pom.xml +++ b/modules/parent/pom.xml @@ -46,9 +46,9 @@ 7.6.14.v20131031 1.3.174 - + UTF-8 - 1.6 + 1.6 @@ -797,8 +797,8 @@ maven-compiler-plugin 3.1 - ${jdk.version} - ${jdk.version} + ${java.version} + ${java.version} true From f502088aadba3a30f1151706aca0e753e461778f Mon Sep 17 00:00:00 2001 From: Calvin Date: Thu, 16 Jan 2014 00:26:07 +0800 Subject: [PATCH 010/356] =?UTF-8?q?#323=20=E5=90=88=E5=B9=B6SpringSide-Cor?= =?UTF-8?q?e=20=E4=B8=8E=20Spring-Test=20module?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/quickstart/pom.xml | 3 +- examples/showcase/pom.xml | 11 ++- modules/core/install.bat | 2 +- modules/core/pom.xml | 95 +++++++++++++++---- .../modules/test/category/Smoke.java | 0 .../modules/test/category/UnStable.java | 0 .../modules/test/data/DataFixtures.java | 0 .../modules/test/data/RandomData.java | 0 .../modules/test/jetty/JettyFactory.java | 0 .../modules/test/jetty}/JettyFactoryTest.java | 3 +- .../modules/test/log/LogbackListAppender.java | 0 .../test/log/LogbackMockAppenderTest.java | 0 .../test/security/shiro/ShiroTestUtils.java | 0 .../security}/shiro/ShiroTestUtilsTest.java | 3 +- .../modules/test/selenium/Selenium2.java | 0 .../test/selenium/SeleniumSnapshotRule.java | 0 .../test/selenium/WebDriverFactory.java | 0 .../test/selenium}/WebDriverFactoryTest.java | 3 +- .../modules/test/spring/Profiles.java | 0 .../test/spring/SpringContextTestCase.java | 0 .../spring/SpringTransactionalTestCase.java | 0 .../resources/jetty/webdefault-windows.xml | 0 modules/extension/install.bat | 2 +- modules/extension/pom.xml | 39 ++++++-- .../modules/test/benchmark/BenchmarkTask.java | 0 .../test/benchmark/ConcurrentBenchmark.java | 0 .../cache/memcached/MemcachedSimulator.java | 0 .../test/mail/MailServerSimulator.java | 0 .../test/mail/MailServerSimulatorTest.java | 2 +- .../resources/applicationContext-mail.xml | 7 ++ .../metrics/report/ReportScheduler.java | 4 + modules/parent/pom.xml | 52 +++++----- modules/pom.xml | 1 - .../resources/applicationContext-test.xml | 28 ------ quick-start | 2 +- quick-start.bat | 2 +- 36 files changed, 171 insertions(+), 88 deletions(-) rename modules/{test/src/main => core/src/test}/java/org/springside/modules/test/category/Smoke.java (100%) rename modules/{test/src/main => core/src/test}/java/org/springside/modules/test/category/UnStable.java (100%) rename modules/{test/src/main => core/src/test}/java/org/springside/modules/test/data/DataFixtures.java (100%) rename modules/{test/src/main => core/src/test}/java/org/springside/modules/test/data/RandomData.java (100%) rename modules/{test/src/main => core/src/test}/java/org/springside/modules/test/jetty/JettyFactory.java (100%) rename modules/{test/src/test/java/org/springside/modules/test/functional => core/src/test/java/org/springside/modules/test/jetty}/JettyFactoryTest.java (83%) rename modules/{test/src/main => core/src/test}/java/org/springside/modules/test/log/LogbackListAppender.java (100%) rename modules/{test => core}/src/test/java/org/springside/modules/test/log/LogbackMockAppenderTest.java (100%) rename modules/{test/src/main => core/src/test}/java/org/springside/modules/test/security/shiro/ShiroTestUtils.java (100%) rename modules/{test/src/test/java/org/springside/modules/test => core/src/test/java/org/springside/modules/test/security}/shiro/ShiroTestUtilsTest.java (83%) rename modules/{test/src/main => core/src/test}/java/org/springside/modules/test/selenium/Selenium2.java (100%) rename modules/{test/src/main => core/src/test}/java/org/springside/modules/test/selenium/SeleniumSnapshotRule.java (100%) rename modules/{test/src/main => core/src/test}/java/org/springside/modules/test/selenium/WebDriverFactory.java (100%) rename modules/{test/src/test/java/org/springside/modules/test/functional => core/src/test/java/org/springside/modules/test/selenium}/WebDriverFactoryTest.java (94%) rename modules/{test/src/main => core/src/test}/java/org/springside/modules/test/spring/Profiles.java (100%) rename modules/{test/src/main => core/src/test}/java/org/springside/modules/test/spring/SpringContextTestCase.java (100%) rename modules/{test/src/main => core/src/test}/java/org/springside/modules/test/spring/SpringTransactionalTestCase.java (100%) rename modules/{test/src/main => core/src/test}/resources/jetty/webdefault-windows.xml (100%) rename modules/{test/src/main => extension/src/test}/java/org/springside/modules/test/benchmark/BenchmarkTask.java (100%) rename modules/{test/src/main => extension/src/test}/java/org/springside/modules/test/benchmark/ConcurrentBenchmark.java (100%) rename modules/{test/src/main => extension/src/test}/java/org/springside/modules/test/cache/memcached/MemcachedSimulator.java (100%) rename modules/{test/src/main => extension/src/test}/java/org/springside/modules/test/mail/MailServerSimulator.java (100%) rename modules/{test => extension}/src/test/java/org/springside/modules/test/mail/MailServerSimulatorTest.java (89%) create mode 100644 modules/extension/src/test/resources/applicationContext-mail.xml delete mode 100644 modules/test/src/test/resources/applicationContext-test.xml diff --git a/examples/quickstart/pom.xml b/examples/quickstart/pom.xml index 2a745d825..65a2127b3 100644 --- a/examples/quickstart/pom.xml +++ b/examples/quickstart/pom.xml @@ -273,8 +273,9 @@ org.springside - springside-test + springside-core ${springside.version} + tests test diff --git a/examples/showcase/pom.xml b/examples/showcase/pom.xml index 32ddaf9ea..2b6de6973 100644 --- a/examples/showcase/pom.xml +++ b/examples/showcase/pom.xml @@ -365,7 +365,16 @@ org.springside - springside-test + springside-core + tests + + compile + + + + org.springside + springside-extension + tests compile diff --git a/modules/core/install.bat b/modules/core/install.bat index d726fa0ad..bb2bf4704 100644 --- a/modules/core/install.bat +++ b/modules/core/install.bat @@ -2,5 +2,5 @@ echo [INFO] Install jar to local repository. cd %~dp0 -call mvn clean install -Dmaven.test.skip=true +call mvn clean install pause \ No newline at end of file diff --git a/modules/core/pom.xml b/modules/core/pom.xml index 53272a72d..c762ddcc9 100644 --- a/modules/core/pom.xml +++ b/modules/core/pom.xml @@ -25,7 +25,7 @@ true - + org.apache.shiro @@ -34,20 +34,20 @@ - + org.springframework spring-webmvc true - - javax.servlet - jsp-api - 2.0 - true - + + javax.servlet + jsp-api + 2.0 + true + - + com.google.guava @@ -80,9 +80,9 @@ true - com.fasterxml.jackson.module - jackson-module-jaxb-annotations - true + com.fasterxml.jackson.module + jackson-module-jaxb-annotations + true net.sf.dozer @@ -110,16 +110,28 @@ - + + + org.eclipse.jetty.aggregate + jetty-webapp + + + + org.seleniumhq.selenium + selenium-java + - org.springside - springside-test + org.seleniumhq.selenium + selenium-remote-driver + + + junit junit - + org.mockito mockito-core @@ -129,12 +141,38 @@ org.springframework spring-test - + + + org.powermock + powermock-module-junit4 + + + org.powermock + powermock-api-mockito + + + + com.h2database + h2 + test + jaxen jaxen test + + + org.springframework + spring-aop + test + + + + org.slf4j + jcl-over-slf4j + test + @@ -153,7 +191,28 @@ - + + + + maven-jar-plugin + + + + test-jar + + + + org/springside/modules/test/**/*.class + jetty/webdefault-windows.xml + + + org/springside/modules/test/**/*Test.class + + + + + + org.apache.maven.plugins diff --git a/modules/test/src/main/java/org/springside/modules/test/category/Smoke.java b/modules/core/src/test/java/org/springside/modules/test/category/Smoke.java similarity index 100% rename from modules/test/src/main/java/org/springside/modules/test/category/Smoke.java rename to modules/core/src/test/java/org/springside/modules/test/category/Smoke.java diff --git a/modules/test/src/main/java/org/springside/modules/test/category/UnStable.java b/modules/core/src/test/java/org/springside/modules/test/category/UnStable.java similarity index 100% rename from modules/test/src/main/java/org/springside/modules/test/category/UnStable.java rename to modules/core/src/test/java/org/springside/modules/test/category/UnStable.java diff --git a/modules/test/src/main/java/org/springside/modules/test/data/DataFixtures.java b/modules/core/src/test/java/org/springside/modules/test/data/DataFixtures.java similarity index 100% rename from modules/test/src/main/java/org/springside/modules/test/data/DataFixtures.java rename to modules/core/src/test/java/org/springside/modules/test/data/DataFixtures.java diff --git a/modules/test/src/main/java/org/springside/modules/test/data/RandomData.java b/modules/core/src/test/java/org/springside/modules/test/data/RandomData.java similarity index 100% rename from modules/test/src/main/java/org/springside/modules/test/data/RandomData.java rename to modules/core/src/test/java/org/springside/modules/test/data/RandomData.java diff --git a/modules/test/src/main/java/org/springside/modules/test/jetty/JettyFactory.java b/modules/core/src/test/java/org/springside/modules/test/jetty/JettyFactory.java similarity index 100% rename from modules/test/src/main/java/org/springside/modules/test/jetty/JettyFactory.java rename to modules/core/src/test/java/org/springside/modules/test/jetty/JettyFactory.java diff --git a/modules/test/src/test/java/org/springside/modules/test/functional/JettyFactoryTest.java b/modules/core/src/test/java/org/springside/modules/test/jetty/JettyFactoryTest.java similarity index 83% rename from modules/test/src/test/java/org/springside/modules/test/functional/JettyFactoryTest.java rename to modules/core/src/test/java/org/springside/modules/test/jetty/JettyFactoryTest.java index 22f21d063..011ff4d45 100644 --- a/modules/test/src/test/java/org/springside/modules/test/functional/JettyFactoryTest.java +++ b/modules/core/src/test/java/org/springside/modules/test/jetty/JettyFactoryTest.java @@ -1,11 +1,10 @@ -package org.springside.modules.test.functional; +package org.springside.modules.test.jetty; import static org.junit.Assert.*; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.webapp.WebAppContext; import org.junit.Test; -import org.springside.modules.test.jetty.JettyFactory; public class JettyFactoryTest { diff --git a/modules/test/src/main/java/org/springside/modules/test/log/LogbackListAppender.java b/modules/core/src/test/java/org/springside/modules/test/log/LogbackListAppender.java similarity index 100% rename from modules/test/src/main/java/org/springside/modules/test/log/LogbackListAppender.java rename to modules/core/src/test/java/org/springside/modules/test/log/LogbackListAppender.java diff --git a/modules/test/src/test/java/org/springside/modules/test/log/LogbackMockAppenderTest.java b/modules/core/src/test/java/org/springside/modules/test/log/LogbackMockAppenderTest.java similarity index 100% rename from modules/test/src/test/java/org/springside/modules/test/log/LogbackMockAppenderTest.java rename to modules/core/src/test/java/org/springside/modules/test/log/LogbackMockAppenderTest.java diff --git a/modules/test/src/main/java/org/springside/modules/test/security/shiro/ShiroTestUtils.java b/modules/core/src/test/java/org/springside/modules/test/security/shiro/ShiroTestUtils.java similarity index 100% rename from modules/test/src/main/java/org/springside/modules/test/security/shiro/ShiroTestUtils.java rename to modules/core/src/test/java/org/springside/modules/test/security/shiro/ShiroTestUtils.java diff --git a/modules/test/src/test/java/org/springside/modules/test/shiro/ShiroTestUtilsTest.java b/modules/core/src/test/java/org/springside/modules/test/security/shiro/ShiroTestUtilsTest.java similarity index 83% rename from modules/test/src/test/java/org/springside/modules/test/shiro/ShiroTestUtilsTest.java rename to modules/core/src/test/java/org/springside/modules/test/security/shiro/ShiroTestUtilsTest.java index 7b8655364..d1ec23b19 100644 --- a/modules/test/src/test/java/org/springside/modules/test/shiro/ShiroTestUtilsTest.java +++ b/modules/core/src/test/java/org/springside/modules/test/security/shiro/ShiroTestUtilsTest.java @@ -1,10 +1,9 @@ -package org.springside.modules.test.shiro; +package org.springside.modules.test.security.shiro; import static org.junit.Assert.*; import org.apache.shiro.SecurityUtils; import org.junit.Test; -import org.springside.modules.test.security.shiro.ShiroTestUtils; public class ShiroTestUtilsTest { diff --git a/modules/test/src/main/java/org/springside/modules/test/selenium/Selenium2.java b/modules/core/src/test/java/org/springside/modules/test/selenium/Selenium2.java similarity index 100% rename from modules/test/src/main/java/org/springside/modules/test/selenium/Selenium2.java rename to modules/core/src/test/java/org/springside/modules/test/selenium/Selenium2.java diff --git a/modules/test/src/main/java/org/springside/modules/test/selenium/SeleniumSnapshotRule.java b/modules/core/src/test/java/org/springside/modules/test/selenium/SeleniumSnapshotRule.java similarity index 100% rename from modules/test/src/main/java/org/springside/modules/test/selenium/SeleniumSnapshotRule.java rename to modules/core/src/test/java/org/springside/modules/test/selenium/SeleniumSnapshotRule.java diff --git a/modules/test/src/main/java/org/springside/modules/test/selenium/WebDriverFactory.java b/modules/core/src/test/java/org/springside/modules/test/selenium/WebDriverFactory.java similarity index 100% rename from modules/test/src/main/java/org/springside/modules/test/selenium/WebDriverFactory.java rename to modules/core/src/test/java/org/springside/modules/test/selenium/WebDriverFactory.java diff --git a/modules/test/src/test/java/org/springside/modules/test/functional/WebDriverFactoryTest.java b/modules/core/src/test/java/org/springside/modules/test/selenium/WebDriverFactoryTest.java similarity index 94% rename from modules/test/src/test/java/org/springside/modules/test/functional/WebDriverFactoryTest.java rename to modules/core/src/test/java/org/springside/modules/test/selenium/WebDriverFactoryTest.java index 428663f79..8ea35f63f 100644 --- a/modules/test/src/test/java/org/springside/modules/test/functional/WebDriverFactoryTest.java +++ b/modules/core/src/test/java/org/springside/modules/test/selenium/WebDriverFactoryTest.java @@ -1,4 +1,4 @@ -package org.springside.modules.test.functional; +package org.springside.modules.test.selenium; import static org.junit.Assert.*; @@ -17,7 +17,6 @@ import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; -import org.springside.modules.test.selenium.WebDriverFactory; @RunWith(PowerMockRunner.class) @PrepareForTest({ WebDriverFactory.class, FirefoxDriver.class, InternetExplorerDriver.class, ChromeDriver.class, diff --git a/modules/test/src/main/java/org/springside/modules/test/spring/Profiles.java b/modules/core/src/test/java/org/springside/modules/test/spring/Profiles.java similarity index 100% rename from modules/test/src/main/java/org/springside/modules/test/spring/Profiles.java rename to modules/core/src/test/java/org/springside/modules/test/spring/Profiles.java diff --git a/modules/test/src/main/java/org/springside/modules/test/spring/SpringContextTestCase.java b/modules/core/src/test/java/org/springside/modules/test/spring/SpringContextTestCase.java similarity index 100% rename from modules/test/src/main/java/org/springside/modules/test/spring/SpringContextTestCase.java rename to modules/core/src/test/java/org/springside/modules/test/spring/SpringContextTestCase.java diff --git a/modules/test/src/main/java/org/springside/modules/test/spring/SpringTransactionalTestCase.java b/modules/core/src/test/java/org/springside/modules/test/spring/SpringTransactionalTestCase.java similarity index 100% rename from modules/test/src/main/java/org/springside/modules/test/spring/SpringTransactionalTestCase.java rename to modules/core/src/test/java/org/springside/modules/test/spring/SpringTransactionalTestCase.java diff --git a/modules/test/src/main/resources/jetty/webdefault-windows.xml b/modules/core/src/test/resources/jetty/webdefault-windows.xml similarity index 100% rename from modules/test/src/main/resources/jetty/webdefault-windows.xml rename to modules/core/src/test/resources/jetty/webdefault-windows.xml diff --git a/modules/extension/install.bat b/modules/extension/install.bat index d726fa0ad..bb2bf4704 100644 --- a/modules/extension/install.bat +++ b/modules/extension/install.bat @@ -2,5 +2,5 @@ echo [INFO] Install jar to local repository. cd %~dp0 -call mvn clean install -Dmaven.test.skip=true +call mvn clean install pause \ No newline at end of file diff --git a/modules/extension/pom.xml b/modules/extension/pom.xml index d8e77fbdb..ec8e09dcd 100644 --- a/modules/extension/pom.xml +++ b/modules/extension/pom.xml @@ -18,7 +18,6 @@ org.springside springside-core - org.springframework @@ -75,15 +74,16 @@ - - org.springside - springside-test - - junit junit + + + org.springside + springside-core + tests + org.mockito @@ -111,6 +111,13 @@ 0.7.9 test + + + + com.icegreen + greenmail + test + @@ -129,6 +136,26 @@ + + + maven-jar-plugin + + + + test-jar + + + + org/springside/modules/test/**/*.class + + + org/springside/modules/test/**/*Test.class + + + + + + org.apache.maven.plugins diff --git a/modules/test/src/main/java/org/springside/modules/test/benchmark/BenchmarkTask.java b/modules/extension/src/test/java/org/springside/modules/test/benchmark/BenchmarkTask.java similarity index 100% rename from modules/test/src/main/java/org/springside/modules/test/benchmark/BenchmarkTask.java rename to modules/extension/src/test/java/org/springside/modules/test/benchmark/BenchmarkTask.java diff --git a/modules/test/src/main/java/org/springside/modules/test/benchmark/ConcurrentBenchmark.java b/modules/extension/src/test/java/org/springside/modules/test/benchmark/ConcurrentBenchmark.java similarity index 100% rename from modules/test/src/main/java/org/springside/modules/test/benchmark/ConcurrentBenchmark.java rename to modules/extension/src/test/java/org/springside/modules/test/benchmark/ConcurrentBenchmark.java diff --git a/modules/test/src/main/java/org/springside/modules/test/cache/memcached/MemcachedSimulator.java b/modules/extension/src/test/java/org/springside/modules/test/cache/memcached/MemcachedSimulator.java similarity index 100% rename from modules/test/src/main/java/org/springside/modules/test/cache/memcached/MemcachedSimulator.java rename to modules/extension/src/test/java/org/springside/modules/test/cache/memcached/MemcachedSimulator.java diff --git a/modules/test/src/main/java/org/springside/modules/test/mail/MailServerSimulator.java b/modules/extension/src/test/java/org/springside/modules/test/mail/MailServerSimulator.java similarity index 100% rename from modules/test/src/main/java/org/springside/modules/test/mail/MailServerSimulator.java rename to modules/extension/src/test/java/org/springside/modules/test/mail/MailServerSimulator.java diff --git a/modules/test/src/test/java/org/springside/modules/test/mail/MailServerSimulatorTest.java b/modules/extension/src/test/java/org/springside/modules/test/mail/MailServerSimulatorTest.java similarity index 89% rename from modules/test/src/test/java/org/springside/modules/test/mail/MailServerSimulatorTest.java rename to modules/extension/src/test/java/org/springside/modules/test/mail/MailServerSimulatorTest.java index a47129092..c43fe743b 100644 --- a/modules/test/src/test/java/org/springside/modules/test/mail/MailServerSimulatorTest.java +++ b/modules/extension/src/test/java/org/springside/modules/test/mail/MailServerSimulatorTest.java @@ -9,7 +9,7 @@ import com.icegreen.greenmail.util.GreenMail; -@ContextConfiguration(locations = { "/applicationContext-test.xml" }) +@ContextConfiguration(locations = { "/applicationContext-mail.xml" }) public class MailServerSimulatorTest extends SpringContextTestCase { @Autowired diff --git a/modules/extension/src/test/resources/applicationContext-mail.xml b/modules/extension/src/test/resources/applicationContext-mail.xml new file mode 100644 index 000000000..d4bda60eb --- /dev/null +++ b/modules/extension/src/test/resources/applicationContext-mail.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/modules/metrics/src/main/java/org/springside/modules/metrics/report/ReportScheduler.java b/modules/metrics/src/main/java/org/springside/modules/metrics/report/ReportScheduler.java index 3d7f5832b..2b48706cc 100644 --- a/modules/metrics/src/main/java/org/springside/modules/metrics/report/ReportScheduler.java +++ b/modules/metrics/src/main/java/org/springside/modules/metrics/report/ReportScheduler.java @@ -39,6 +39,10 @@ public ReportScheduler(MetricRegistry metricRegistry, List reporters) this.executor = Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(SCHEDULER_NAME)); } + public void addReporter(Reporter reporter) { + reporters.add(reporter); + } + public void report() { SortedMap counterMap = metricRegistry.getCounters(); SortedMap histogramMap = metricRegistry.getHistograms(); diff --git a/modules/parent/pom.xml b/modules/parent/pom.xml index 1bb56b631..7e9d82e07 100644 --- a/modules/parent/pom.xml +++ b/modules/parent/pom.xml @@ -42,7 +42,7 @@ 4.11 1.9.5 1.5.2 - 2.38.0 + 2.39.0 7.6.14.v20131031 1.3.174 @@ -55,30 +55,28 @@ 3.0.0 - - - + + + --> - + @@ -86,11 +84,13 @@ org.springside springside-core ${springside.version} + compile org.springside springside-extension ${springside.version} + compile org.springside @@ -99,7 +99,7 @@ - + org.springframework spring-core @@ -417,9 +417,9 @@ - + - + org.javasimon javasimon-spring @@ -475,7 +475,7 @@ - + jaxen jaxen @@ -673,8 +673,16 @@ org.springside - springside-test + springside-core + ${springside.version} + tests + test + + + org.springside + springside-extension ${springside.version} + tests test @@ -770,7 +778,7 @@ test - + org.hamcrest hamcrest-core @@ -836,7 +844,7 @@ 1.8 - + org.codehaus.mojo cobertura-maven-plugin @@ -886,7 +894,7 @@ 2.5.1 - + org.apache.maven.plugins maven-enforcer-plugin @@ -983,7 +991,7 @@ - + skip-unstable diff --git a/modules/pom.xml b/modules/pom.xml index 0e1bdd18d..d463deef3 100644 --- a/modules/pom.xml +++ b/modules/pom.xml @@ -17,6 +17,5 @@ core extension metrics - test \ No newline at end of file diff --git a/modules/test/src/test/resources/applicationContext-test.xml b/modules/test/src/test/resources/applicationContext-test.xml deleted file mode 100644 index 544bace0b..000000000 --- a/modules/test/src/test/resources/applicationContext-test.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - Spring公共配置文件 - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/quick-start b/quick-start index caff2170a..66dcda795 100644 --- a/quick-start +++ b/quick-start @@ -7,7 +7,7 @@ set MAVEN_OPTS=$MAVEN_OPTS -XX:MaxPermSize=128m echo "[Step 1] Install all springside modules and archetype to local maven repository." cd modules -mvn clean install -Dmaven.test.skip=true +mvn clean install cd ../support/maven-archetype mvn clean install diff --git a/quick-start.bat b/quick-start.bat index e57aa95cc..f42b54b8a 100644 --- a/quick-start.bat +++ b/quick-start.bat @@ -7,7 +7,7 @@ set MAVEN_OPTS=%MAVEN_OPTS% -XX:MaxPermSize=128m echo [Step 1] Install all springside modules and archetype to local maven repository. cd modules -call %MVN% clean install -Dmaven.test.skip=true +call %MVN% clean install if errorlevel 1 goto error cd ..\support\maven-archetype From 4c78c00dfbe38fb69ad7bab427b7520644dce4f4 Mon Sep 17 00:00:00 2001 From: Calvin Date: Thu, 16 Jan 2014 00:31:40 +0800 Subject: [PATCH 011/356] update deprecate method in selenium2 --- examples/quickstart/pom.xml | 2 +- .../java/org/springside/modules/test/selenium/Selenium2.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/quickstart/pom.xml b/examples/quickstart/pom.xml index 65a2127b3..b2f164cc3 100644 --- a/examples/quickstart/pom.xml +++ b/examples/quickstart/pom.xml @@ -25,7 +25,7 @@ 15.0 4.11 1.9.5 - 2.38.0 + 2.39.0 7.6.14.v20131031 1.3.174 diff --git a/modules/core/src/test/java/org/springside/modules/test/selenium/Selenium2.java b/modules/core/src/test/java/org/springside/modules/test/selenium/Selenium2.java index 1bce0c97c..c1c2baf0f 100644 --- a/modules/core/src/test/java/org/springside/modules/test/selenium/Selenium2.java +++ b/modules/core/src/test/java/org/springside/modules/test/selenium/Selenium2.java @@ -308,14 +308,14 @@ public void waitForVisible(By by, int timeout) { * 等待Element的内容为text, 使用默认timeout时间. */ public void waitForTextPresent(By by, String text) { - waitForCondition(ExpectedConditions.textToBePresentInElement(by, text), DEFAULT_WAIT_TIME); + waitForCondition(ExpectedConditions.textToBePresentInElementLocated(by, text), DEFAULT_WAIT_TIME); } /** * 等待Element的内容为text, timeout单位为秒. */ public void waitForTextPresent(By by, String text, int timeout) { - waitForCondition(ExpectedConditions.textToBePresentInElement(by, text), timeout); + waitForCondition(ExpectedConditions.textToBePresentInElementLocated(by, text), timeout); } /** From 849506e1299a8bb663443e80a54688a21b83574b Mon Sep 17 00:00:00 2001 From: Calvin Date: Thu, 16 Jan 2014 00:36:43 +0800 Subject: [PATCH 012/356] =?UTF-8?q?#322=20=E9=BB=98=E8=AE=A4=E4=B8=8D?= =?UTF-8?q?=E6=89=93=E5=BC=80GraphiteReporter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../showcase/demos/metrics/MetricsManager.java | 15 +++++++++++++-- .../monitor/applicationContext-metrics.xml | 6 ++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/metrics/MetricsManager.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/metrics/MetricsManager.java index 16d0b4188..72f984db7 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/metrics/MetricsManager.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/metrics/MetricsManager.java @@ -15,11 +15,18 @@ public class MetricsManager { private ReportScheduler scheduler; + private boolean graphiteEnabled = false; + @PostConstruct public void start() { - GraphiteReporter graphiteReporter = new GraphiteReporter(new InetSocketAddress("localhost", 2003)); ConsoleReporter consoleReporter = new ConsoleReporter(); - scheduler = new ReportScheduler(MetricRegistry.INSTANCE, consoleReporter, graphiteReporter); + scheduler = new ReportScheduler(MetricRegistry.INSTANCE, consoleReporter); + + if (graphiteEnabled) { + GraphiteReporter graphiteReporter = new GraphiteReporter(new InetSocketAddress("localhost", 2003)); + scheduler.addReporter(graphiteReporter); + } + scheduler.start(10, TimeUnit.SECONDS); } @@ -27,4 +34,8 @@ public void start() { public void stop() { scheduler.stop(); } + + public void setGraphiteEnabled(boolean graphiteEnabled) { + this.graphiteEnabled = graphiteEnabled; + } } diff --git a/examples/showcase/src/main/resources/monitor/applicationContext-metrics.xml b/examples/showcase/src/main/resources/monitor/applicationContext-metrics.xml index 527db0735..44d17199a 100644 --- a/examples/showcase/src/main/resources/monitor/applicationContext-metrics.xml +++ b/examples/showcase/src/main/resources/monitor/applicationContext-metrics.xml @@ -1,8 +1,10 @@ - Metrics监控配置 - + + + \ No newline at end of file From 2d6b89e9b37f8049097ea6546a6814dc5eb1a8de Mon Sep 17 00:00:00 2001 From: Calvin Date: Thu, 16 Jan 2014 00:37:36 +0800 Subject: [PATCH 013/356] =?UTF-8?q?#323=20=E5=90=88=E5=B9=B6SpringSide-Cor?= =?UTF-8?q?e=20=E4=B8=8E=20Spring-Test=20module?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/test/install.bat | 6 - modules/test/pom.xml | 188 -------------------- modules/test/src/test/resources/logback.xml | 12 -- 3 files changed, 206 deletions(-) delete mode 100644 modules/test/install.bat delete mode 100644 modules/test/pom.xml delete mode 100644 modules/test/src/test/resources/logback.xml diff --git a/modules/test/install.bat b/modules/test/install.bat deleted file mode 100644 index d726fa0ad..000000000 --- a/modules/test/install.bat +++ /dev/null @@ -1,6 +0,0 @@ -@echo off -echo [INFO] Install jar to local repository. - -cd %~dp0 -call mvn clean install -Dmaven.test.skip=true -pause \ No newline at end of file diff --git a/modules/test/pom.xml b/modules/test/pom.xml deleted file mode 100644 index 9d904ed19..000000000 --- a/modules/test/pom.xml +++ /dev/null @@ -1,188 +0,0 @@ - - - 4.0.0 - - org.springside - springside-parent - 4.1.1-SNAPSHOT - ../parent/ - - springside-test - jar - Springside :: Module :: Test - - - - - org.springframework - spring-jdbc - true - - - org.springframework - spring-context - true - - - - - - net.spy - spymemcached - true - - - com.thimbleware.jmemcached - jmemcached-core - compile - true - - - - - org.apache.shiro - shiro-core - true - - - - - - com.icegreen - greenmail - compile - true - - - - - org.apache.commons - commons-lang3 - true - - - com.google.guava - guava - true - - - commons-io - commons-io - true - - - - - - org.slf4j - slf4j-api - true - - - ch.qos.logback - logback-classic - compile - true - - - - - - org.mockito - mockito-core - compile - true - - - - org.springframework - spring-test - compile - true - - - - org.eclipse.jetty.aggregate - jetty-webapp - compile - true - - - - org.seleniumhq.selenium - selenium-java - compile - true - - - org.seleniumhq.selenium - selenium-remote-driver - compile - true - - - - - - junit - junit - compile - true - - - - org.powermock - powermock-module-junit4 - true - - - org.powermock - powermock-api-mockito - true - - - - com.h2database - h2 - test - - - - org.springframework - spring-aop - test - - - - org.slf4j - jcl-over-slf4j - test - - - - - - - - - org.apache.maven.plugins - maven-source-plugin - - - attach-sources - - jar - - - - - - - - org.apache.maven.plugins - maven-enforcer-plugin - - - - diff --git a/modules/test/src/test/resources/logback.xml b/modules/test/src/test/resources/logback.xml deleted file mode 100644 index 8ea05885f..000000000 --- a/modules/test/src/test/resources/logback.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - \ No newline at end of file From bb42deb23177bf1a987eee45744ba259f238c57a Mon Sep 17 00:00:00 2001 From: Calvin Date: Thu, 16 Jan 2014 00:40:23 +0800 Subject: [PATCH 014/356] update official site --- README.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.txt b/README.txt index 8d8eba085..38c0a533e 100644 --- a/README.txt +++ b/README.txt @@ -8,5 +8,5 @@ 2. Showcase -- demonstrate many other interesting technologies. ------------------------------- -Offical Site: http://www.springside.org.cn +Offical Site: http://springside.github.io Document: https://github.com/springside/springside4/wiki \ No newline at end of file From f1b2d42d3ec4c9e64656f5cc4a3b6db591b6270d Mon Sep 17 00:00:00 2001 From: Calvin Date: Thu, 16 Jan 2014 23:04:46 +0800 Subject: [PATCH 015/356] update archetype --- .../resources/archetype-resources/pom.xml | 88 +++++++++++-------- .../src/main/java/entity/Task.java | 6 ++ .../main/java/rest/RestExceptionHandler.java | 20 ++--- .../java/service/account/AccountService.java | 10 +-- .../main/java/web/api/ApiListController.java | 17 ++++ .../src/main/resources/applicationContext.xml | 6 +- .../src/main/resources/sql/oracle/schema.sql | 8 +- .../main/webapp/WEB-INF/layouts/header.jsp | 1 + .../main/webapp/WEB-INF/views/api/list.jsp | 28 ++++++ .../functional/rest/TaskRestFT.java | 8 +- .../service/account/AccountServiceTest.java | 4 +- 11 files changed, 129 insertions(+), 67 deletions(-) create mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/api/ApiListController.java create mode 100644 support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/views/api/list.jsp diff --git a/support/maven-archetype/src/main/resources/archetype-resources/pom.xml b/support/maven-archetype/src/main/resources/archetype-resources/pom.xml index 6d69a9ffb..8a6560f40 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/pom.xml +++ b/support/maven-archetype/src/main/resources/archetype-resources/pom.xml @@ -10,27 +10,27 @@ 4.1.1-SNAPSHOT - 3.2.4.RELEASE - 4.2.5.Final - 1.4.1.RELEASE - 7.0.42 + 3.2.6.RELEASE + 4.2.8.Final + 1.4.3.RELEASE + 7.0.47 2.4.2 1.2.2 4.3.1.Final - 2.2.3 + 2.3.0 1.7.5 1.0.13 3.1 15.0 4.11 1.9.5 - 2.35.0 - 7.6.12.v20130726 - 1.3.173 + 2.39.0 + 7.6.14.v20131031 + 1.3.174 UTF-8 - 1.6 + 1.6 com.h2database @@ -43,6 +43,10 @@ --> + + 3.0.0 + + - - org.springframework - spring-tx - ${spring.version} - org.springframework.data spring-data-jpa @@ -110,10 +109,10 @@ ${spring.version} - org.springframework - spring-jdbc - ${spring.version} - + org.springframework + spring-tx + ${spring.version} + @@ -191,11 +190,6 @@ - - com.fasterxml.jackson.core - jackson-core - ${jackson.version} - com.fasterxml.jackson.core jackson-databind @@ -268,8 +262,9 @@ org.springside - springside-test + springside-core ${springside.version} + tests test @@ -340,13 +335,13 @@ - + @@ -409,8 +404,8 @@ maven-compiler-plugin 3.1 - ${jdk.version} - ${jdk.version} + ${java.version} + ${java.version} true @@ -470,7 +465,7 @@ org.codehaus.mojo cobertura-maven-plugin - 2.5.2 + 2.6 @@ -481,7 +476,7 @@ - + org.apache.maven.plugins maven-enforcer-plugin @@ -495,20 +490,21 @@ - 3.0.3 - - - 1.6 - + 3.0.3 + + + 1.6 + true - commons-logging aspectj:aspectj* - org.springframework:2.* - org.springframework:3.0.* + org.springframework + + org.springframework:*:3.2.* + true @@ -537,11 +533,25 @@ + + + org.apache.maven.plugins + maven-resource-plugin + 2.5 + + org.apache.maven.plugins maven-install-plugin - 2.5 + 2.5.1 + + + + + org.apache.maven.plugins + maven-antrun-plugin + 1.7 diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/entity/Task.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/entity/Task.java index 91fe81fca..5348921b0 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/entity/Task.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/entity/Task.java @@ -8,6 +8,7 @@ import javax.persistence.ManyToOne; import javax.persistence.Table; +import org.apache.commons.lang3.builder.ToStringBuilder; import org.hibernate.validator.constraints.NotBlank; //JPA标识 @@ -47,4 +48,9 @@ public User getUser() { public void setUser(User user) { this.user = user; } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } } diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/rest/RestExceptionHandler.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/rest/RestExceptionHandler.java index f6b9eefb4..b95e63f00 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/rest/RestExceptionHandler.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/rest/RestExceptionHandler.java @@ -30,24 +30,24 @@ public class RestExceptionHandler extends ResponseEntityExceptionHandler { private JsonMapper jsonMapper = new JsonMapper(); /** - * 处理JSR311 Validation异常. + * 处理RestException. */ - @ExceptionHandler(value = { ConstraintViolationException.class }) - public final ResponseEntity handleException(ConstraintViolationException ex, WebRequest request) { - Map errors = BeanValidators.extractPropertyAndMessage(ex.getConstraintViolations()); - String body = jsonMapper.toJson(errors); + @ExceptionHandler(value = { RestException.class }) + public final ResponseEntity handleException(RestException ex, WebRequest request) { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.parseMediaType(MediaTypes.TEXT_PLAIN_UTF_8)); - return handleExceptionInternal(ex, body, headers, HttpStatus.BAD_REQUEST, request); + return handleExceptionInternal(ex, ex.getMessage(), headers, ex.status, request); } /** - * 处理RestException. + * 处理JSR311 Validation异常. */ - @ExceptionHandler(value = { RestException.class }) - public final ResponseEntity handleException(RestException ex, WebRequest request) { + @ExceptionHandler(value = { ConstraintViolationException.class }) + public final ResponseEntity handleException(ConstraintViolationException ex, WebRequest request) { + Map errors = BeanValidators.extractPropertyAndMessage(ex.getConstraintViolations()); + String body = jsonMapper.toJson(errors); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.parseMediaType(MediaTypes.TEXT_PLAIN_UTF_8)); - return handleExceptionInternal(ex, ex.getMessage(), headers, ex.status, request); + return handleExceptionInternal(ex, body, headers, HttpStatus.BAD_REQUEST, request); } } diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/account/AccountService.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/account/AccountService.java index 5a791b323..62330d63d 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/account/AccountService.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/account/AccountService.java @@ -18,7 +18,7 @@ import ${package}.service.ServiceException; import ${package}.service.account.ShiroDbRealm.ShiroUser; import org.springside.modules.security.utils.Digests; -import org.springside.modules.utils.DateProvider; +import org.springside.modules.utils.Clock; import org.springside.modules.utils.Encodes; /** @@ -39,7 +39,7 @@ public class AccountService { private UserDao userDao; private TaskDao taskDao; - private DateProvider dateProvider = DateProvider.DEFAULT; + private Clock clock = Clock.DEFAULT; public List getAllUser() { return (List) userDao.findAll(); @@ -56,7 +56,7 @@ public User findUserByLoginName(String loginName) { public void registerUser(User user) { entryptPassword(user); user.setRoles("user"); - user.setRegisterDate(dateProvider.getDate()); + user.setRegisterDate(clock.getCurrentDate()); userDao.save(user); } @@ -114,7 +114,7 @@ public void setTaskDao(TaskDao taskDao) { this.taskDao = taskDao; } - public void setDateProvider(DateProvider dateProvider) { - this.dateProvider = dateProvider; + public void setClock(Clock clock) { + this.clock = clock; } } diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/api/ApiListController.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/api/ApiListController.java new file mode 100644 index 000000000..1f248224f --- /dev/null +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/api/ApiListController.java @@ -0,0 +1,17 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +package ${package}.web.api; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +@Controller +@RequestMapping(value = "/api") +public class ApiListController { + @RequestMapping(method = RequestMethod.GET) + public String list() { + return "api/list"; + } +} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/applicationContext.xml b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/applicationContext.xml index 4e8095716..1a1bf5668 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/applicationContext.xml +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/applicationContext.xml @@ -75,9 +75,9 @@ - - - + + + diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/oracle/schema.sql b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/oracle/schema.sql index b39e5592e..100821179 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/oracle/schema.sql +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/oracle/schema.sql @@ -8,8 +8,8 @@ create table ${tablePrefix}task ( id number(19,0), title varchar2(128) not null, description varchar2(255), - user_id bigint not null, - primary key (id) + user_id number(19,0) not null, + primary key (id) ); create table ${tablePrefix}user ( @@ -19,10 +19,10 @@ create table ${tablePrefix}user ( password varchar2(255) not null, salt varchar2(64) not null, roles varchar2(255) not null, - regiser_date date not null, + register_date date not null, primary key (id) ); create sequence ${tablePrefix}seq_task start with 100 increment by 20; -create sequence ${tablePrefix}seq_user start with 100 increment by 20; \ No newline at end of file +create sequence ${tablePrefix}seq_user start with 100 increment by 20; diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/layouts/header.jsp b/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/layouts/header.jsp index ff8ed9455..15abc1bb4 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/layouts/header.jsp +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/layouts/header.jsp @@ -20,6 +20,7 @@
  • Admin Users
  • +
  • APIs
  • Edit Profile
  • Logout
  • diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/views/api/list.jsp b/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/views/api/list.jsp new file mode 100644 index 000000000..74fd7db5c --- /dev/null +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/views/api/list.jsp @@ -0,0 +1,28 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + + + Restful API 列表 + + + + +

    Restful API 列表

    +

    查询 API

    + + +

    修改API

    +
      +
    • 创建任务 :http://${symbol_dollar}{pageContext.request.serverName}:${symbol_dollar}{pageContext.request.serverPort}${symbol_dollar}{pageContext.request.contextPath}/api/v1/task method=Post, consumes=JSON
    • +
    • 修改任务(id=1) :http://${symbol_dollar}{pageContext.request.serverName}:${symbol_dollar}{pageContext.request.serverPort}${symbol_dollar}{pageContext.request.contextPath}/api/v1/task/1 method=Put, consumes=JSON
    • +
    + + diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/test/functional/functional/rest/TaskRestFT.java b/support/maven-archetype/src/main/resources/archetype-resources/src/test/functional/functional/rest/TaskRestFT.java index fe51c2225..63f5d485d 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/test/functional/functional/rest/TaskRestFT.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/test/functional/functional/rest/TaskRestFT.java @@ -14,7 +14,7 @@ import org.junit.Test; import org.junit.experimental.categories.Category; import org.springframework.http.HttpStatus; -import org.springframework.web.client.HttpClientErrorException; +import org.springframework.web.client.HttpStatusCodeException; import org.springframework.web.client.RestTemplate; import ${package}.data.TaskData; import ${package}.entity.Task; @@ -95,7 +95,7 @@ public void createUpdateAndDeleteTask() { try { restTemplate.getForObject(taskUri, Task.class); fail("Get should fail while feth a deleted task"); - } catch (HttpClientErrorException e) { + } catch (HttpStatusCodeException e) { assertEquals(HttpStatus.NOT_FOUND, e.getStatusCode()); } } @@ -108,7 +108,7 @@ public void invalidInput() { try { restTemplate.postForLocation(resoureUrl, titleBlankTask); fail("Create should fail while title is blank"); - } catch (HttpClientErrorException e) { + } catch (HttpStatusCodeException e) { assertEquals(HttpStatus.BAD_REQUEST, e.getStatusCode()); Map messages = jsonMapper.fromJson(e.getResponseBodyAsString(), Map.class); assertEquals(1, messages.size()); @@ -120,7 +120,7 @@ public void invalidInput() { try { restTemplate.put(resoureUrl + "/1", titleBlankTask); fail("Update should fail while title is blank"); - } catch (HttpClientErrorException e) { + } catch (HttpStatusCodeException e) { assertEquals(HttpStatus.BAD_REQUEST, e.getStatusCode()); Map messages = jsonMapper.fromJson(e.getResponseBodyAsString(), Map.class); assertEquals(1, messages.size()); diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/test/java/service/account/AccountServiceTest.java b/support/maven-archetype/src/main/resources/archetype-resources/src/test/java/service/account/AccountServiceTest.java index baae4553d..5c3d617b1 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/test/java/service/account/AccountServiceTest.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/test/java/service/account/AccountServiceTest.java @@ -20,7 +20,7 @@ import ${package}.service.ServiceException; import ${package}.service.account.ShiroDbRealm.ShiroUser; import org.springside.modules.test.security.shiro.ShiroTestUtils; -import org.springside.modules.utils.DateProvider.ConfigurableDateProvider; +import org.springside.modules.utils.Clock.MockClock; /** * AccountService的测试用例, 测试Service层的业务逻辑. @@ -48,7 +48,7 @@ public void setUp() { public void registerUser() { User user = UserData.randomNewUser(); Date currentTime = new Date(); - accountService.setDateProvider(new ConfigurableDateProvider(currentTime)); + accountService.setClock(new MockClock(currentTime)); accountService.registerUser(user); From 8da3f0983d6c78a0d061c222ac8b6d876408266c Mon Sep 17 00:00:00 2001 From: Calvin Date: Thu, 16 Jan 2014 23:08:09 +0800 Subject: [PATCH 016/356] release SpringSide 4.2.0 --- examples/pom.xml | 2 +- examples/quickstart/pom.xml | 4 ++-- examples/showcase/pom.xml | 2 +- modules/core/pom.xml | 2 +- modules/extension/pom.xml | 2 +- modules/metrics/pom.xml | 2 +- modules/parent/pom.xml | 4 ++-- modules/pom.xml | 2 +- pom.xml | 2 +- support/h2/pom.xml | 2 +- support/maven-archetype/pom.xml | 2 +- .../src/main/resources/archetype-resources/pom.xml | 2 +- 12 files changed, 14 insertions(+), 14 deletions(-) diff --git a/examples/pom.xml b/examples/pom.xml index 699df835c..0b6fab352 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -5,7 +5,7 @@ org.springside springside-parent - 4.1.1-SNAPSHOT + 4.2.0 ../modules/parent/ org.springside.examples diff --git a/examples/quickstart/pom.xml b/examples/quickstart/pom.xml index b2f164cc3..0aa366592 100644 --- a/examples/quickstart/pom.xml +++ b/examples/quickstart/pom.xml @@ -4,13 +4,13 @@ 4.0.0 org.springside.examples quickstart - 4.1.1-SNAPSHOT + 4.2.0 war Springside :: Example :: QuickStart - 4.1.1-SNAPSHOT + 4.2.0 3.2.6.RELEASE 4.2.8.Final 1.4.3.RELEASE diff --git a/examples/showcase/pom.xml b/examples/showcase/pom.xml index 2b6de6973..0e8581bf6 100644 --- a/examples/showcase/pom.xml +++ b/examples/showcase/pom.xml @@ -5,7 +5,7 @@ org.springside springside-parent - 4.1.1-SNAPSHOT + 4.2.0 ../../modules/parent/ org.springside.examples diff --git a/modules/core/pom.xml b/modules/core/pom.xml index c762ddcc9..dfb60cc58 100644 --- a/modules/core/pom.xml +++ b/modules/core/pom.xml @@ -5,7 +5,7 @@ org.springside springside-parent - 4.1.1-SNAPSHOT + 4.2.0 ../parent/ springside-core diff --git a/modules/extension/pom.xml b/modules/extension/pom.xml index ec8e09dcd..a21ece9eb 100644 --- a/modules/extension/pom.xml +++ b/modules/extension/pom.xml @@ -5,7 +5,7 @@ org.springside springside-parent - 4.1.1-SNAPSHOT + 4.2.0 ../parent/ springside-extension diff --git a/modules/metrics/pom.xml b/modules/metrics/pom.xml index fb3a7b3ee..083ab175f 100644 --- a/modules/metrics/pom.xml +++ b/modules/metrics/pom.xml @@ -5,7 +5,7 @@ org.springside springside-parent - 4.1.1-SNAPSHOT + 4.2.0 ../parent/ springside-metrics diff --git a/modules/parent/pom.xml b/modules/parent/pom.xml index 7e9d82e07..c645ae49c 100644 --- a/modules/parent/pom.xml +++ b/modules/parent/pom.xml @@ -4,13 +4,13 @@ 4.0.0 org.springside springside-parent - 4.1.1-SNAPSHOT + 4.2.0 Springside :: Module :: Parent pom - 4.1.1-SNAPSHOT + 4.2.0 3.2.6.RELEASE 4.2.8.Final 3.2.3 diff --git a/modules/pom.xml b/modules/pom.xml index d463deef3..a0f72e676 100644 --- a/modules/pom.xml +++ b/modules/pom.xml @@ -5,7 +5,7 @@ org.springside springside-parent - 4.1.1-SNAPSHOT + 4.2.0 ../modules/parent/ springside-modules diff --git a/pom.xml b/pom.xml index af389d915..8338fcc7f 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.springside springside-project - 4.1.1-SNAPSHOT + 4.2.0 Springside :: Project pom diff --git a/support/h2/pom.xml b/support/h2/pom.xml index a64f067d2..a48b42145 100644 --- a/support/h2/pom.xml +++ b/support/h2/pom.xml @@ -5,7 +5,7 @@ org.springside springside-parent - 4.1.1-SNAPSHOT + 4.2.0 ../../modules/parent/ org.springside diff --git a/support/maven-archetype/pom.xml b/support/maven-archetype/pom.xml index 93a3e2ddc..b7b25dd84 100644 --- a/support/maven-archetype/pom.xml +++ b/support/maven-archetype/pom.xml @@ -4,7 +4,7 @@ org.springside.examples quickstart-archetype - 4.1.1-SNAPSHOT + 4.2.0 maven-archetype SpringSide :: Archetype :: QuickStart diff --git a/support/maven-archetype/src/main/resources/archetype-resources/pom.xml b/support/maven-archetype/src/main/resources/archetype-resources/pom.xml index 8a6560f40..ec10c980f 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/pom.xml +++ b/support/maven-archetype/src/main/resources/archetype-resources/pom.xml @@ -9,7 +9,7 @@ - 4.1.1-SNAPSHOT + 4.2.0 3.2.6.RELEASE 4.2.8.Final 1.4.3.RELEASE From 8f4410017d8db3b10bc51ad267a7f9564e765e5f Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 17 Jan 2014 00:26:28 +0800 Subject: [PATCH 017/356] begin 4.3.0 --- examples/pom.xml | 2 +- examples/quickstart/pom.xml | 4 ++-- examples/showcase/pom.xml | 2 +- modules/core/pom.xml | 2 +- modules/extension/pom.xml | 2 +- modules/metrics/pom.xml | 2 +- modules/parent/pom.xml | 4 ++-- modules/pom.xml | 2 +- pom.xml | 2 +- support/h2/pom.xml | 2 +- support/maven-archetype/pom.xml | 2 +- .../src/main/resources/archetype-resources/pom.xml | 2 +- 12 files changed, 14 insertions(+), 14 deletions(-) diff --git a/examples/pom.xml b/examples/pom.xml index 0b6fab352..57e6d81c6 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -5,7 +5,7 @@ org.springside springside-parent - 4.2.0 + 4.3.0-SNAPSHOT ../modules/parent/ org.springside.examples diff --git a/examples/quickstart/pom.xml b/examples/quickstart/pom.xml index 0aa366592..37e8e8df1 100644 --- a/examples/quickstart/pom.xml +++ b/examples/quickstart/pom.xml @@ -4,13 +4,13 @@ 4.0.0 org.springside.examples quickstart - 4.2.0 + 4.3.0-SNAPSHOT war Springside :: Example :: QuickStart - 4.2.0 + 4.3.0-SNAPSHOT 3.2.6.RELEASE 4.2.8.Final 1.4.3.RELEASE diff --git a/examples/showcase/pom.xml b/examples/showcase/pom.xml index 0e8581bf6..ea5982a0c 100644 --- a/examples/showcase/pom.xml +++ b/examples/showcase/pom.xml @@ -5,7 +5,7 @@ org.springside springside-parent - 4.2.0 + 4.3.0-SNAPSHOT ../../modules/parent/ org.springside.examples diff --git a/modules/core/pom.xml b/modules/core/pom.xml index dfb60cc58..6e3aeda56 100644 --- a/modules/core/pom.xml +++ b/modules/core/pom.xml @@ -5,7 +5,7 @@ org.springside springside-parent - 4.2.0 + 4.3.0-SNAPSHOT ../parent/ springside-core diff --git a/modules/extension/pom.xml b/modules/extension/pom.xml index a21ece9eb..8960a5cad 100644 --- a/modules/extension/pom.xml +++ b/modules/extension/pom.xml @@ -5,7 +5,7 @@ org.springside springside-parent - 4.2.0 + 4.3.0-SNAPSHOT ../parent/ springside-extension diff --git a/modules/metrics/pom.xml b/modules/metrics/pom.xml index 083ab175f..6055b89de 100644 --- a/modules/metrics/pom.xml +++ b/modules/metrics/pom.xml @@ -5,7 +5,7 @@ org.springside springside-parent - 4.2.0 + 4.3.0-SNAPSHOT ../parent/ springside-metrics diff --git a/modules/parent/pom.xml b/modules/parent/pom.xml index c645ae49c..08414f39c 100644 --- a/modules/parent/pom.xml +++ b/modules/parent/pom.xml @@ -4,13 +4,13 @@ 4.0.0 org.springside springside-parent - 4.2.0 + 4.3.0-SNAPSHOT Springside :: Module :: Parent pom - 4.2.0 + 4.3.0-SNAPSHOT 3.2.6.RELEASE 4.2.8.Final 3.2.3 diff --git a/modules/pom.xml b/modules/pom.xml index a0f72e676..327aede43 100644 --- a/modules/pom.xml +++ b/modules/pom.xml @@ -5,7 +5,7 @@ org.springside springside-parent - 4.2.0 + 4.3.0-SNAPSHOT ../modules/parent/ springside-modules diff --git a/pom.xml b/pom.xml index 8338fcc7f..8fc954bb3 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.springside springside-project - 4.2.0 + 4.3.0-SNAPSHOT Springside :: Project pom diff --git a/support/h2/pom.xml b/support/h2/pom.xml index a48b42145..122bdc8f9 100644 --- a/support/h2/pom.xml +++ b/support/h2/pom.xml @@ -5,7 +5,7 @@ org.springside springside-parent - 4.2.0 + 4.3.0-SNAPSHOT ../../modules/parent/ org.springside diff --git a/support/maven-archetype/pom.xml b/support/maven-archetype/pom.xml index b7b25dd84..85bf5d913 100644 --- a/support/maven-archetype/pom.xml +++ b/support/maven-archetype/pom.xml @@ -4,7 +4,7 @@ org.springside.examples quickstart-archetype - 4.2.0 + 4.3.0-SNAPSHOT maven-archetype SpringSide :: Archetype :: QuickStart diff --git a/support/maven-archetype/src/main/resources/archetype-resources/pom.xml b/support/maven-archetype/src/main/resources/archetype-resources/pom.xml index ec10c980f..fdd16ba43 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/pom.xml +++ b/support/maven-archetype/src/main/resources/archetype-resources/pom.xml @@ -9,7 +9,7 @@ - 4.2.0 + 4.3.0-SNAPSHOT 3.2.6.RELEASE 4.2.8.Final 1.4.3.RELEASE From a78733dc037835342086e27937c49e515446b03b Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 17 Jan 2014 00:40:22 +0800 Subject: [PATCH 018/356] update 3pp version --- examples/quickstart/pom.xml | 18 ++++++++--------- modules/parent/pom.xml | 20 +++++++++---------- .../resources/archetype-resources/pom.xml | 4 ++-- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/examples/quickstart/pom.xml b/examples/quickstart/pom.xml index 37e8e8df1..c3cd5e13f 100644 --- a/examples/quickstart/pom.xml +++ b/examples/quickstart/pom.xml @@ -11,17 +11,17 @@ 4.3.0-SNAPSHOT - 3.2.6.RELEASE - 4.2.8.Final + 4.0.0.RELEASE + 4.3.0.Final 1.4.3.RELEASE - 7.0.47 + 7.0.50 2.4.2 1.2.2 4.3.1.Final - 2.3.0 + 2.3.1 1.7.5 1.0.13 - 3.1 + 3.2.1 15.0 4.11 1.9.5 @@ -189,7 +189,7 @@ commons-codec commons-codec - 1.8 + 1.9 @@ -544,11 +544,11 @@ - + org.apache.maven.plugins - maven-resource-plugin - 2.5 + maven-resources-plugin + 2.6 diff --git a/modules/parent/pom.xml b/modules/parent/pom.xml index 08414f39c..b4cf50199 100644 --- a/modules/parent/pom.xml +++ b/modules/parent/pom.xml @@ -11,11 +11,11 @@ 4.3.0-SNAPSHOT - 3.2.6.RELEASE - 4.2.8.Final - 3.2.3 + 4.0.0.RELEASE + 4.3.0.Final + 3.2.4 1.4.3.RELEASE - 7.0.47 + 7.0.50 2.4.2 1.2.2 2.7.8 @@ -23,15 +23,15 @@ 2.2.1 2.2.1 2.6.6 - 2.10.3 + 2.10.4 4.3.1.Final 1.1.5 1.3.8 3.4.0 - 2.3.0 + 2.3.1 1.7.5 1.0.13 - 3.1 + 3.2.1 2.4 15.0 2.3 @@ -41,7 +41,7 @@ 1.7.3 4.11 1.9.5 - 1.5.2 + 1.5.3 2.39.0 7.6.14.v20131031 1.3.174 @@ -542,12 +542,12 @@ commons-codec commons-codec - 1.8 + 1.9 commons-beanutils commons-beanutils - 1.9.0 + 1.9.1 commons-logging diff --git a/support/maven-archetype/src/main/resources/archetype-resources/pom.xml b/support/maven-archetype/src/main/resources/archetype-resources/pom.xml index fdd16ba43..94b1e6d20 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/pom.xml +++ b/support/maven-archetype/src/main/resources/archetype-resources/pom.xml @@ -536,8 +536,8 @@ org.apache.maven.plugins - maven-resource-plugin - 2.5 + maven-resources-plugin + 2.6 From f513211300787bf100818a74e756007df4aca7d1 Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 17 Jan 2014 01:45:53 +0800 Subject: [PATCH 019/356] =?UTF-8?q?#311=20=E7=94=A8assertJ=E7=AE=80?= =?UTF-8?q?=E5=8C=96assert=E7=BC=96=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/quickstart/pom.xml | 7 +++++ .../quickstart/functional/gui/ProfileFT.java | 7 +++-- .../quickstart/functional/gui/RegisterFT.java | 14 +++++----- .../quickstart/functional/gui/SecurityFT.java | 10 +++---- .../quickstart/functional/gui/TaskGuiFT.java | 16 +++++------ .../functional/gui/UserAdminFT.java | 12 ++++----- .../functional/rest/TaskRestFT.java | 27 ++++++++++--------- .../quickstart/repository/JpaMappingTest.java | 6 ++--- .../quickstart/repository/TaskDaoTest.java | 9 ++++--- .../service/account/AccountServiceTest.java | 17 ++++++------ 10 files changed, 66 insertions(+), 59 deletions(-) diff --git a/examples/quickstart/pom.xml b/examples/quickstart/pom.xml index c3cd5e13f..88008d9ce 100644 --- a/examples/quickstart/pom.xml +++ b/examples/quickstart/pom.xml @@ -286,6 +286,13 @@ test + + org.assertj + assertj-core + 1.5.0 + test + + org.mockito mockito-core diff --git a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/ProfileFT.java b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/ProfileFT.java index aa8439dec..61e9ae557 100644 --- a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/ProfileFT.java +++ b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/ProfileFT.java @@ -1,6 +1,6 @@ package org.springside.examples.quickstart.functional.gui; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.Test; import org.openqa.selenium.By; @@ -9,14 +9,13 @@ public class ProfileFT extends BaseSeleniumTestCase { /** - * 修改用户资料. + * 修改用户资料. */ @Test public void editProfile() { s.open("/profile"); s.type(By.id("name"), "Kevin"); s.click(By.id("submit_btn")); - - assertTrue("没有成功消息", s.isTextPresent("Kevin")); + assertThat(s.isTextPresent("Kevin")).describedAs("没有成功消息").isTrue(); } } diff --git a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/RegisterFT.java b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/RegisterFT.java index 6c6fd9201..9961fb44e 100644 --- a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/RegisterFT.java +++ b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/RegisterFT.java @@ -1,6 +1,6 @@ package org.springside.examples.quickstart.functional.gui; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.Test; import org.openqa.selenium.By; @@ -10,7 +10,7 @@ public class RegisterFT extends BaseSeleniumTestCase { @Test public void register() { - //注册用户 + // 注册用户 s.open("/logout"); s.click(By.linkText("注册")); @@ -21,17 +21,17 @@ public void register() { s.click(By.id("submit_btn")); - //跳转到登录页 + // 跳转到登录页 s.waitForTitleContains("登录页"); - assertEquals("user2", s.getValue(By.name("username"))); + assertThat(s.getValue(By.name("username"))).isEqualTo("user2"); s.type(By.name("password"), "user2"); s.click(By.id("submit_btn")); - //登陆成功 + // 登陆成功 s.waitForTitleContains("任务管理"); - //退出用户 + // 退出用户 s.open("/logout"); } @@ -40,7 +40,7 @@ public void inputInValidateValue() { s.open("/register"); s.click(By.id("submit_btn")); - assertEquals("必选字段", s.getText(By.xpath("//fieldset/div/div/span"))); + assertThat(s.getText(By.xpath("//fieldset/div/div/span"))).isEqualTo("必选字段"); } } diff --git a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/SecurityFT.java b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/SecurityFT.java index 57ac1655a..52a579611 100644 --- a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/SecurityFT.java +++ b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/SecurityFT.java @@ -1,6 +1,6 @@ package org.springside.examples.quickstart.functional.gui; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.Test; import org.openqa.selenium.By; @@ -18,11 +18,11 @@ public class SecurityFT extends BaseSeleniumTestCase { */ @Test public void anonymousUserAccessSystem() { - //访问退出登录页面,退出之前的登录 + // 访问退出登录页面,退出之前的登录 s.open("/logout"); s.waitForTitleContains("登录页"); - //访问任意页面会跳转到登录界面 + // 访问任意页面会跳转到登录界面 s.open("/task"); s.waitForTitleContains("登录页"); } @@ -34,7 +34,7 @@ public void anonymousUserAccessSystem() { public void userTryToManageUsers() { loginAsUserIfNecessary(); s.open("/admin/user"); - assertEquals("Error 401 Unauthorized", s.getTitle()); + assertThat(s.getTitle()).isEqualTo("Error 401 Unauthorized"); } /** @@ -49,6 +49,6 @@ public void loginWithWrongPassword() { s.click(By.id("submit_btn")); s.waitForTitleContains("登录页"); - assertTrue(s.isTextPresent("登录失败,请重试.")); + assertThat(s.isTextPresent("登录失败,请重试.")).isTrue(); } } diff --git a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/TaskGuiFT.java b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/TaskGuiFT.java index 115383d22..9f3ee3ba5 100644 --- a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/TaskGuiFT.java +++ b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/TaskGuiFT.java @@ -1,6 +1,6 @@ package org.springside.examples.quickstart.functional.gui; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -26,7 +26,7 @@ public class TaskGuiFT extends BaseSeleniumTestCase { public void viewTaskList() { s.open("/task/"); WebElement table = s.findElement(By.id("contentTable")); - assertEquals("Release SpringSide 4.0", s.getTable(table, 0, 0)); + assertThat(s.getTable(table, 0, 0)).isEqualTo("Release SpringSide 4.0"); } /** @@ -44,25 +44,25 @@ public void crudTask() { s.type(By.id("task_title"), task.getTitle()); s.click(By.id("submit_btn")); - assertTrue(s.isTextPresent("创建任务成功")); + assertThat(s.isTextPresent("创建任务成功")).isTrue(); // update s.click(By.linkText(task.getTitle())); - assertEquals(task.getTitle(), s.getValue(By.id("task_title"))); + assertThat(s.getValue(By.id("task_title"))).isEqualTo(task.getTitle()); String newTitle = TaskData.randomTitle(); s.type(By.id("task_title"), newTitle); s.click(By.id("submit_btn")); - assertTrue(s.isTextPresent("更新任务成功")); + assertThat(s.isTextPresent("更新任务成功")).isTrue(); // search s.type(By.name("search_LIKE_title"), newTitle); s.click(By.id("search_btn")); - assertEquals(newTitle, s.getTable(By.id("contentTable"), 0, 0)); + assertThat(s.getTable(By.id("contentTable"), 0, 0)).isEqualTo(newTitle); // delete s.click(By.linkText("删除")); - assertTrue("没有成功消息", s.isTextPresent("删除任务成功")); + assertThat(s.isTextPresent("删除任务成功")).describedAs("没有成功消息").isTrue(); } @Test @@ -71,6 +71,6 @@ public void inputInValidateValue() { s.click(By.linkText("创建任务")); s.click(By.id("submit_btn")); - assertEquals("必选字段", s.getText(By.xpath("//fieldset/div/div/span"))); + assertThat(s.getText(By.xpath("//fieldset/div/div/span"))).isEqualTo("必选字段"); } } diff --git a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/UserAdminFT.java b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/UserAdminFT.java index a92f7c4ec..2ced8e7f3 100644 --- a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/UserAdminFT.java +++ b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/UserAdminFT.java @@ -1,6 +1,6 @@ package org.springside.examples.quickstart.functional.gui; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -34,8 +34,8 @@ public static void logout() { public void viewUserList() { s.open("/admin/user"); WebElement table = s.findElement(By.id("contentTable")); - assertEquals("admin", s.getTable(table, 0, 0)); - assertEquals("user", s.getTable(table, 1, 0)); + assertThat(s.getTable(table, 0, 0)).isEqualTo("admin"); + assertThat(s.getTable(table, 1, 0)).isEqualTo("user"); } @Test @@ -46,14 +46,14 @@ public void editUser() { s.type(By.id("confirmPassword"), "user2"); s.click(By.id("submit_btn")); - assertTrue("没有成功消息", s.isTextPresent("更新用户user成功")); + assertThat(s.isTextPresent("更新用户user成功")).describedAs("没有成功消息").isTrue(); WebElement table = s.findElement(By.id("contentTable")); - assertEquals("Kevin", s.getTable(table, 1, 1)); + assertThat(s.getTable(table, 1, 1)).isEqualTo("Kevin"); } @Test public void deleteUser() { s.open("/admin/user/delete/2"); - assertTrue("没有成功消息", s.isTextPresent("删除用户user成功")); + assertThat(s.isTextPresent("删除用户user成功")).describedAs("没有成功消息").isTrue(); } } diff --git a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/rest/TaskRestFT.java b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/rest/TaskRestFT.java index 59644f256..05894201e 100644 --- a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/rest/TaskRestFT.java +++ b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/rest/TaskRestFT.java @@ -1,12 +1,13 @@ package org.springside.examples.quickstart.functional.rest; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.net.URI; import java.util.ArrayList; import java.util.Map; import org.apache.commons.lang3.StringUtils; +import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -47,8 +48,8 @@ public static void initUrl() { @Category(Smoke.class) public void listTasks() { TaskList tasks = restTemplate.getForObject(resoureUrl, TaskList.class); - assertEquals(5, tasks.size()); - assertEquals("Study PlayFramework 2.0", tasks.get(0).getTitle()); + assertThat(tasks).hasSize(5); + assertThat(tasks.get(0).getTitle()).isEqualTo("Study PlayFramework 2.0"); } /** @@ -58,7 +59,7 @@ public void listTasks() { @Category(Smoke.class) public void getTask() { Task task = restTemplate.getForObject(resoureUrl + "/{id}", Task.class, 1L); - assertEquals("Study PlayFramework 2.0", task.getTitle()); + assertThat(task.getTitle()).isEqualTo("Study PlayFramework 2.0"); } /** @@ -74,7 +75,7 @@ public void createUpdateAndDeleteTask() { URI taskUri = restTemplate.postForLocation(resoureUrl, task); System.out.println(taskUri.toString()); Task createdTask = restTemplate.getForObject(taskUri, Task.class); - assertEquals(task.getTitle(), createdTask.getTitle()); + assertThat(createdTask.getTitle()).isEqualTo(task.getTitle()); // update String id = StringUtils.substringAfterLast(taskUri.toString(), "/"); @@ -84,7 +85,7 @@ public void createUpdateAndDeleteTask() { restTemplate.put(taskUri, task); Task updatedTask = restTemplate.getForObject(taskUri, Task.class); - assertEquals(task.getTitle(), updatedTask.getTitle()); + assertThat(updatedTask.getTitle()).isEqualTo(task.getTitle()); // delete restTemplate.delete(taskUri); @@ -93,7 +94,7 @@ public void createUpdateAndDeleteTask() { restTemplate.getForObject(taskUri, Task.class); fail("Get should fail while feth a deleted task"); } catch (HttpStatusCodeException e) { - assertEquals(HttpStatus.NOT_FOUND, e.getStatusCode()); + assertThat(e.getStatusCode()).isEqualTo(HttpStatus.NOT_FOUND); } } @@ -106,10 +107,10 @@ public void invalidInput() { restTemplate.postForLocation(resoureUrl, titleBlankTask); fail("Create should fail while title is blank"); } catch (HttpStatusCodeException e) { - assertEquals(HttpStatus.BAD_REQUEST, e.getStatusCode()); + assertThat(e.getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST); Map messages = jsonMapper.fromJson(e.getResponseBodyAsString(), Map.class); - assertEquals(1, messages.size()); - assertTrue(messages.get("title").equals("may not be empty") || messages.get("title").equals("不能为空")); + assertThat(messages).hasSize(1); + Assert.assertTrue(messages.get("title").equals("may not be empty") || messages.get("title").equals("不能为空")); } // update @@ -118,10 +119,10 @@ public void invalidInput() { restTemplate.put(resoureUrl + "/1", titleBlankTask); fail("Update should fail while title is blank"); } catch (HttpStatusCodeException e) { - assertEquals(HttpStatus.BAD_REQUEST, e.getStatusCode()); + assertThat(e.getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST); Map messages = jsonMapper.fromJson(e.getResponseBodyAsString(), Map.class); - assertEquals(1, messages.size()); - assertTrue(messages.get("title").equals("may not be empty") || messages.get("title").equals("不能为空")); + assertThat(messages).hasSize(1); + Assert.assertTrue(messages.get("title").equals("may not be empty") || messages.get("title").equals("不能为空")); } } } diff --git a/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/JpaMappingTest.java b/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/JpaMappingTest.java index 6ed14fa61..3fb1e2c2d 100644 --- a/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/JpaMappingTest.java +++ b/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/JpaMappingTest.java @@ -1,6 +1,6 @@ package org.springside.examples.quickstart.repository; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @@ -24,14 +24,12 @@ public class JpaMappingTest extends SpringTransactionalTestCase { @Test public void allClassMapping() throws Exception { Metamodel model = em.getEntityManagerFactory().getMetamodel(); - - assertTrue("No entity mapping found", model.getEntities().size() > 0); + assertThat(model.getEntities()).describedAs("No entity mapping found").isNotEmpty(); for (EntityType entityType : model.getEntities()) { String entityName = entityType.getName(); em.createQuery("select o from " + entityName + " o").getResultList(); logger.info("ok: " + entityName); - } } } diff --git a/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/TaskDaoTest.java b/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/TaskDaoTest.java index 1f74c9b8f..41fc145f6 100644 --- a/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/TaskDaoTest.java +++ b/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/TaskDaoTest.java @@ -1,6 +1,6 @@ package org.springside.examples.quickstart.repository; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -20,10 +20,11 @@ public class TaskDaoTest extends SpringTransactionalTestCase { @Test public void findTasksByUserId() throws Exception { Page tasks = taskDao.findByUserId(2L, new PageRequest(0, 100, Direction.ASC, "id")); - assertEquals(5, tasks.getContent().size()); - assertEquals(new Long(1), tasks.getContent().get(0).getId()); + assertThat(tasks.getContent()).hasSize(5); + assertThat(tasks.getContent().get(0).getId()).isEqualTo(1); tasks = taskDao.findByUserId(99999L, new PageRequest(0, 100, Direction.ASC, "id")); - assertEquals(0, tasks.getContent().size()); + assertThat(tasks.getContent()).isEmpty(); + assertThat(tasks.getContent()).isEmpty(); } } diff --git a/examples/quickstart/src/test/java/org/springside/examples/quickstart/service/account/AccountServiceTest.java b/examples/quickstart/src/test/java/org/springside/examples/quickstart/service/account/AccountServiceTest.java index e0f1f30b0..f2bd7cf96 100644 --- a/examples/quickstart/src/test/java/org/springside/examples/quickstart/service/account/AccountServiceTest.java +++ b/examples/quickstart/src/test/java/org/springside/examples/quickstart/service/account/AccountServiceTest.java @@ -1,9 +1,10 @@ package org.springside.examples.quickstart.service.account; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.Date; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; @@ -50,10 +51,10 @@ public void registerUser() { accountService.registerUser(user); // 验证user的角色,注册日期和加密后的密码都被自动更新了。 - assertEquals("user", user.getRoles()); - assertEquals(currentTime, user.getRegisterDate()); - assertNotNull(user.getPassword()); - assertNotNull(user.getSalt()); + assertThat(user.getRoles()).isEqualTo("user"); + assertThat(user.getRegisterDate()).isEqualTo(currentTime); + assertThat(user.getPassword()).isNotNull(); + assertThat(user.getSalt()).isNotNull(); } @Test @@ -61,13 +62,13 @@ public void updateUser() { // 如果明文密码不为空,加密密码会被更新. User user = UserData.randomNewUser(); accountService.updateUser(user); - assertNotNull(user.getSalt()); + assertThat(user.getSalt()).isNotNull(); // 如果明文密码为空,加密密码无变化。 User user2 = UserData.randomNewUser(); user2.setPlainPassword(null); accountService.updateUser(user2); - assertNull(user2.getSalt()); + assertThat(user2.getSalt()).isNull(); } @Test @@ -79,7 +80,7 @@ public void deleteUser() { // 删除超级管理用户抛出异常, userDao没有被执行 try { accountService.deleteUser(1L); - fail("expected ServicExcepton not be thrown"); + Assert.fail("expected ServiceException not be thrown"); } catch (ServiceException e) { // expected exception } From 3d798b6000ee3d218b86544d38850ab247383368 Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 17 Jan 2014 15:18:21 +0800 Subject: [PATCH 020/356] =?UTF-8?q?#311=20=E7=94=A8assertJ=E7=AE=80?= =?UTF-8?q?=E5=8C=96assert=E7=BC=96=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/quickstart/pom.xml | 3 ++- .../quickstart/functional/gui/ProfileFT.java | 2 +- .../quickstart/functional/gui/TaskGuiFT.java | 2 +- .../functional/gui/UserAdminFT.java | 4 +-- .../quickstart/repository/JpaMappingTest.java | 2 +- examples/showcase/pom.xml | 6 +++++ .../showcase/functional/rest/UserRestFT.java | 4 +-- modules/core/pom.xml | 5 ++++ modules/extension/pom.xml | 4 +++ .../memcached/SpyMemcachedClientTest.java | 27 +++++++++---------- .../nosql/redis/JedisTemplateTest.java | 18 ++++++------- .../modules/tools/FreemarkersTest.java | 8 +++--- modules/metrics/pom.xml | 5 ++++ modules/parent/pom.xml | 10 +++++++ 14 files changed, 65 insertions(+), 35 deletions(-) diff --git a/examples/quickstart/pom.xml b/examples/quickstart/pom.xml index 88008d9ce..837e775ba 100644 --- a/examples/quickstart/pom.xml +++ b/examples/quickstart/pom.xml @@ -24,6 +24,7 @@ 3.2.1 15.0 4.11 + 1.5.0 1.9.5 2.39.0 7.6.14.v20131031 @@ -289,7 +290,7 @@ org.assertj assertj-core - 1.5.0 + ${assertj.version} test diff --git a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/ProfileFT.java b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/ProfileFT.java index 61e9ae557..3cca29088 100644 --- a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/ProfileFT.java +++ b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/ProfileFT.java @@ -16,6 +16,6 @@ public void editProfile() { s.open("/profile"); s.type(By.id("name"), "Kevin"); s.click(By.id("submit_btn")); - assertThat(s.isTextPresent("Kevin")).describedAs("没有成功消息").isTrue(); + assertThat(s.isTextPresent("Kevin")).as("没有成功消息").isTrue(); } } diff --git a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/TaskGuiFT.java b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/TaskGuiFT.java index 9f3ee3ba5..6b3037cad 100644 --- a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/TaskGuiFT.java +++ b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/TaskGuiFT.java @@ -62,7 +62,7 @@ public void crudTask() { // delete s.click(By.linkText("删除")); - assertThat(s.isTextPresent("删除任务成功")).describedAs("没有成功消息").isTrue(); + assertThat(s.isTextPresent("删除任务成功")).as("没有成功消息").isTrue(); } @Test diff --git a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/UserAdminFT.java b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/UserAdminFT.java index 2ced8e7f3..d79337ee2 100644 --- a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/UserAdminFT.java +++ b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/UserAdminFT.java @@ -46,7 +46,7 @@ public void editUser() { s.type(By.id("confirmPassword"), "user2"); s.click(By.id("submit_btn")); - assertThat(s.isTextPresent("更新用户user成功")).describedAs("没有成功消息").isTrue(); + assertThat(s.isTextPresent("更新用户user成功")).as("没有成功消息").isTrue(); WebElement table = s.findElement(By.id("contentTable")); assertThat(s.getTable(table, 1, 1)).isEqualTo("Kevin"); } @@ -54,6 +54,6 @@ public void editUser() { @Test public void deleteUser() { s.open("/admin/user/delete/2"); - assertThat(s.isTextPresent("删除用户user成功")).describedAs("没有成功消息").isTrue(); + assertThat(s.isTextPresent("删除用户user成功")).as("没有成功消息").isTrue(); } } diff --git a/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/JpaMappingTest.java b/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/JpaMappingTest.java index 3fb1e2c2d..d83f5a233 100644 --- a/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/JpaMappingTest.java +++ b/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/JpaMappingTest.java @@ -24,7 +24,7 @@ public class JpaMappingTest extends SpringTransactionalTestCase { @Test public void allClassMapping() throws Exception { Metamodel model = em.getEntityManagerFactory().getMetamodel(); - assertThat(model.getEntities()).describedAs("No entity mapping found").isNotEmpty(); + assertThat(model.getEntities()).as("No entity mapping found").isNotEmpty(); for (EntityType entityType : model.getEntities()) { String entityName = entityType.getName(); diff --git a/examples/showcase/pom.xml b/examples/showcase/pom.xml index ea5982a0c..e031d9db8 100644 --- a/examples/showcase/pom.xml +++ b/examples/showcase/pom.xml @@ -349,6 +349,12 @@ compile + + org.assertj + assertj-core + compile + + org.mockito mockito-core diff --git a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserRestFT.java b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserRestFT.java index 2c563b0f0..9657b5705 100644 --- a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserRestFT.java +++ b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserRestFT.java @@ -72,7 +72,7 @@ public void initRestTemplate() { } @After - public void destoryClient() { + public void destoryClient() throws Exception { // 退出时关闭HttpClient4连接池中的连接 httpClientRequestFactory.destroy(); } @@ -107,7 +107,7 @@ public void getUserAsXML() { } /** - * 演示使用ClientHttpRequestInterceptor设置header + * 演示使用ClientHttpRequestInterceptor设置header, see #initRestTemplate() * 演示json格式数据. * 演示使用Apache Http client4. */ diff --git a/modules/core/pom.xml b/modules/core/pom.xml index 6e3aeda56..622aaf0b6 100644 --- a/modules/core/pom.xml +++ b/modules/core/pom.xml @@ -131,6 +131,11 @@ junit junit + + + org.assertj + assertj-core + org.mockito diff --git a/modules/extension/pom.xml b/modules/extension/pom.xml index 8960a5cad..2549099d2 100644 --- a/modules/extension/pom.xml +++ b/modules/extension/pom.xml @@ -78,6 +78,10 @@ junit junit + + org.assertj + assertj-core + org.springside diff --git a/modules/extension/src/test/java/org/springside/modules/memcached/SpyMemcachedClientTest.java b/modules/extension/src/test/java/org/springside/modules/memcached/SpyMemcachedClientTest.java index 61c99f8b4..80da7e43c 100644 --- a/modules/extension/src/test/java/org/springside/modules/memcached/SpyMemcachedClientTest.java +++ b/modules/extension/src/test/java/org/springside/modules/memcached/SpyMemcachedClientTest.java @@ -1,6 +1,6 @@ package org.springside.modules.memcached; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.Map; @@ -35,42 +35,41 @@ public void normal() { client.set(key, 60 * 60 * 1, value); Threads.sleep(1000); String result = client.get(key); - assertEquals(value, result); + assertThat(result).isEqualTo(value); // safeSet client.safeSet(key2, 60 * 60 * 1, value2); result = client.get(key2); - assertEquals(value2, result); + assertThat(result).isEqualTo(value2); // bulk Map bulkResult = client.getBulk(Lists.newArrayList(key, key2)); - assertEquals(2, bulkResult.size()); - assertEquals(value, bulkResult.get(key)); + assertThat(bulkResult).hasSize(2); + assertThat(bulkResult).contains(entry(key, value), entry(key2, value2)); // delete client.delete(key); Threads.sleep(1000); result = client.get(key); - assertNull(result); + assertThat(result).isNull(); client.safeDelete(key); result = client.get(key); - assertNull(result); + assertThat(result).isNull(); } @Test public void incr() { String key = "counter"; - assertEquals(1, client.incr(key, 1, 1)); + assertThat(client.incr(key, 1, 1)).isEqualTo(1); // 注意counter的实际类型是String - assertEquals("1", client.get(key)); + assertThat(client.get(key)).isEqualTo("1"); - assertEquals(2, client.incr(key, 1, 1)); - assertEquals("2", client.get(key)); - - assertEquals(0, client.decr(key, 2, 1)); - assertEquals("0", client.get(key)); + assertThat(client.incr(key, 1, 1)).isEqualTo(2); + assertThat(client.get(key)).isEqualTo("2"); + assertThat(client.decr(key, 2, 1)).isEqualTo(0); + assertThat(client.get(key)).isEqualTo("0"); } } diff --git a/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java b/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java index 6177897f7..934b0fc3b 100644 --- a/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java +++ b/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java @@ -1,6 +1,6 @@ package org.springside.modules.nosql.redis; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.Before; import org.junit.ClassRule; @@ -37,18 +37,18 @@ public void stringActions() { String value = "123"; jedisTemplate.set(key, value); - assertEquals(jedisTemplate.get(key), value); - assertNull(jedisTemplate.get(notExistKey)); + assertThat(jedisTemplate.get(key)).isEqualTo(value); + assertThat(jedisTemplate.get(notExistKey)).isNull(); - assertTrue(jedisTemplate.del(key)); - assertFalse(jedisTemplate.del(notExistKey)); + assertThat(jedisTemplate.del(key)).isTrue(); + assertThat(jedisTemplate.del(notExistKey)).isFalse(); jedisTemplate.set(key, value); - assertEquals((int) jedisTemplate.getAsInt(key), 123); - assertEquals((int) jedisTemplate.getAsInt(notExistKey), 0); + assertThat((int) jedisTemplate.getAsInt(key)).isEqualTo(123); + assertThat((int) jedisTemplate.getAsInt(notExistKey)).isZero(); jedisTemplate.set(key, value); - assertEquals((long) jedisTemplate.getAsLong(key), 123L); - assertEquals((long) jedisTemplate.getAsLong(notExistKey), 0); + assertThat((long) jedisTemplate.getAsLong(key)).isEqualTo(123L); + assertThat((long) jedisTemplate.getAsLong(notExistKey)).isZero(); } } diff --git a/modules/extension/src/test/java/org/springside/modules/tools/FreemarkersTest.java b/modules/extension/src/test/java/org/springside/modules/tools/FreemarkersTest.java index 04629010d..e80a87fc6 100644 --- a/modules/extension/src/test/java/org/springside/modules/tools/FreemarkersTest.java +++ b/modules/extension/src/test/java/org/springside/modules/tools/FreemarkersTest.java @@ -1,6 +1,6 @@ package org.springside.modules.tools; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.io.IOException; import java.util.List; @@ -23,7 +23,7 @@ public void renderString() { Map model = Maps.newHashMap(); model.put("userName", "calvin"); String result = FreeMarkers.renderString(TEMPLATE, model); - assertEquals("hello calvin", result); + assertThat(result).isEqualTo("hello calvin"); } @Test @@ -34,7 +34,7 @@ public void renderString2() { model.put("friends", friends); String result = FreeMarkers.renderString("hello ${friends[0]}", model); - assertEquals("hello a", result); + assertThat(result).isEqualTo("hello a"); } @Test(expected = RuntimeException.class) @@ -51,6 +51,6 @@ public void renderFile() throws IOException { Configuration cfg = FreeMarkers.buildConfiguration("classpath:/"); Template template = cfg.getTemplate("testTemplate.ftl"); String result = FreeMarkers.renderTemplate(template, model); - assertEquals("hello calvin", result); + assertThat(result).isEqualTo("hello calvin"); } } diff --git a/modules/metrics/pom.xml b/modules/metrics/pom.xml index 6055b89de..352ed6dce 100644 --- a/modules/metrics/pom.xml +++ b/modules/metrics/pom.xml @@ -23,6 +23,11 @@ junit junit + + + org.assertj + assertj-core + org.mockito diff --git a/modules/parent/pom.xml b/modules/parent/pom.xml index b4cf50199..d4de45761 100644 --- a/modules/parent/pom.xml +++ b/modules/parent/pom.xml @@ -40,6 +40,7 @@ 2.3.20 1.7.3 4.11 + 1.5.0 1.9.5 1.5.3 2.39.0 @@ -644,6 +645,15 @@ ${junit.version} test + + + + org.assertj + assertj-core + ${assertj.version} + test + + org.mockito From e75af17d8c4470dd31ef2eff79fa0180aaa60d86 Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 17 Jan 2014 15:34:18 +0800 Subject: [PATCH 021/356] =?UTF-8?q?#314=20=E4=BD=BF=E7=94=A8NoSQL=20Unit?= =?UTF-8?q?=E7=9A=84=E5=B5=8C=E5=85=A5=E5=BC=8FRedis=E7=BC=96=E5=86=99?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/nosql/redis/JedisTemplate.java | 15 +++++++--- .../nosql/redis/JedisTemplateTest.java | 30 +++++++++++++++++++ 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java index ba9ff50ce..8bd675a3f 100644 --- a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java +++ b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java @@ -188,7 +188,6 @@ public Boolean action(Jedis jedis) { public long incr(final String key) { return execute(new JedisAction() { - @Override public Long action(Jedis jedis) { return jedis.incr(key); @@ -198,7 +197,6 @@ public Long action(Jedis jedis) { public long decr(final String key) { return execute(new JedisAction() { - @Override public Long action(Jedis jedis) { return jedis.decr(key); @@ -209,7 +207,6 @@ public Long action(Jedis jedis) { // ////////////// 关于List /////////////////////////// public void lpush(final String key, final String value) { execute(new JedisActionNoResult() { - @Override public void action(Jedis jedis) { jedis.lpush(key, value); @@ -217,6 +214,16 @@ public void action(Jedis jedis) { }); } + public String rpop(final String key) { + return execute(new JedisAction() { + + @Override + public String action(Jedis jedis) { + return jedis.rpop(key); + } + }); + } + /** * 返回List长度, key不存在时返回0,key类型不是list时抛出异常. */ @@ -284,7 +291,7 @@ public Boolean action(Jedis jedis) { } /** - * 返回List长度, key不存在时返回0,key类型不是sorted set时抛出异常. + * 返回sorted set长度, key不存在时返回0,key类型不是sorted set时抛出异常. */ public long zcard(final String key) { return execute(new JedisAction() { diff --git a/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java b/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java index 934b0fc3b..fbc78216e 100644 --- a/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java +++ b/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java @@ -51,4 +51,34 @@ public void stringActions() { assertThat((long) jedisTemplate.getAsLong(key)).isEqualTo(123L); assertThat((long) jedisTemplate.getAsLong(notExistKey)).isZero(); } + + @Test + public void listActions() { + String key = "test.string.key"; + String value = "123"; + String value2 = "456"; + + // push/pop single element + jedisTemplate.lpush(key, value); + assertThat(jedisTemplate.llen(key)).isEqualTo(1); + assertThat(jedisTemplate.rpop(key)).isEqualTo(value); + + // push/pop two elements + jedisTemplate.lpush(key, value); + jedisTemplate.lpush(key, value2); + assertThat(jedisTemplate.llen(key)).isEqualTo(2); + assertThat(jedisTemplate.rpop(key)).isEqualTo(value); + assertThat(jedisTemplate.rpop(key)).isEqualTo(value2); + + // remove elements + jedisTemplate.lpush(key, value); + jedisTemplate.lpush(key, value); + jedisTemplate.lpush(key, value); + assertThat(jedisTemplate.llen(key)).isEqualTo(3); + assertThat(jedisTemplate.lremOne(key, value)).isTrue(); + assertThat(jedisTemplate.llen(key)).isEqualTo(2); + assertThat(jedisTemplate.lremAll(key, value)).isTrue(); + assertThat(jedisTemplate.llen(key)).isEqualTo(0); + assertThat(jedisTemplate.lremAll(key, value)).isFalse(); + } } From 8548b518263f85bece43de0019a83a0dc6742e72 Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 17 Jan 2014 16:08:38 +0800 Subject: [PATCH 022/356] #309 Spring 4.0, update servlet to 3.0 for Spring 4.0 MockHttpRequest --- examples/showcase/pom.xml | 2 -- modules/core/pom.xml | 1 - modules/extension/pom.xml | 2 -- modules/parent/pom.xml | 23 ++++++++++++++++++++++- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/examples/showcase/pom.xml b/examples/showcase/pom.xml index e031d9db8..b166b6b65 100644 --- a/examples/showcase/pom.xml +++ b/examples/showcase/pom.xml @@ -498,7 +498,6 @@ org.apache.tomcat.maven tomcat7-maven-plugin - 2.1 development @@ -623,7 +622,6 @@ org.apache.tomcat.maven tomcat7-maven-plugin - 2.1 tomcat-run diff --git a/modules/core/pom.xml b/modules/core/pom.xml index 622aaf0b6..e44a1cae2 100644 --- a/modules/core/pom.xml +++ b/modules/core/pom.xml @@ -43,7 +43,6 @@ javax.servlet jsp-api - 2.0 true diff --git a/modules/extension/pom.xml b/modules/extension/pom.xml index 2549099d2..8da2d47cd 100644 --- a/modules/extension/pom.xml +++ b/modules/extension/pom.xml @@ -112,8 +112,6 @@ com.lordofthejars nosqlunit-redis - 0.7.9 - test diff --git a/modules/parent/pom.xml b/modules/parent/pom.xml index d4de45761..f06227f6a 100644 --- a/modules/parent/pom.xml +++ b/modules/parent/pom.xml @@ -44,6 +44,7 @@ 1.9.5 1.5.3 2.39.0 + 0.7.9 7.6.14.v20131031 1.3.174 @@ -239,10 +240,11 @@ + javax.servlet servlet-api - 2.5 + 3.0-alpha-1 provided @@ -250,6 +252,11 @@ jstl 1.2 + + javax.servlet + jsp-api + 2.0 + @@ -750,6 +757,14 @@ + + + com.lordofthejars + nosqlunit-redis + ${nosqlunit.version} + test + + org.eclipse.jetty.aggregate @@ -947,6 +962,12 @@ jetty-maven-plugin ${jetty.version} + + + org.apache.tomcat.maven + tomcat7-maven-plugin + 2.2 + From 15aa962c187e22b2d9703e937a1631aa8fcbbf13 Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 17 Jan 2014 16:25:50 +0800 Subject: [PATCH 023/356] #309 Spring 4.0, update servlet to 3.0 for Spring 4.0 MockHttpRequest --- modules/core/pom.xml | 6 ++++++ modules/parent/pom.xml | 10 ++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/modules/core/pom.xml b/modules/core/pom.xml index e44a1cae2..b61c9ea3e 100644 --- a/modules/core/pom.xml +++ b/modules/core/pom.xml @@ -45,6 +45,12 @@ jsp-api true + + javax.servlet + javax.servlet-api + true + + diff --git a/modules/parent/pom.xml b/modules/parent/pom.xml index f06227f6a..1cd4b4c2d 100644 --- a/modules/parent/pom.xml +++ b/modules/parent/pom.xml @@ -243,8 +243,8 @@ javax.servlet - servlet-api - 3.0-alpha-1 + javax.servlet-api + 3.0.1 provided @@ -256,6 +256,12 @@ javax.servlet jsp-api 2.0 + + + javax.servlet + javax.servlet-api + + From 585eb29ef1369af395ecdf88e797f0a1f227f5ed Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 17 Jan 2014 16:30:54 +0800 Subject: [PATCH 024/356] #309 Spring 4.0, update servlet to 3.0 for Spring 4.0 MockHttpRequest --- examples/showcase/pom.xml | 2 +- modules/core/pom.xml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/showcase/pom.xml b/examples/showcase/pom.xml index b166b6b65..b3b68a21d 100644 --- a/examples/showcase/pom.xml +++ b/examples/showcase/pom.xml @@ -120,7 +120,7 @@ javax.servlet - servlet-api + javax.servlet-api diff --git a/modules/core/pom.xml b/modules/core/pom.xml index b61c9ea3e..207d8adf8 100644 --- a/modules/core/pom.xml +++ b/modules/core/pom.xml @@ -50,7 +50,6 @@ javax.servlet-api true - From 6c8366ca087aed0ab4cd26bd723ccea852bab130 Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 17 Jan 2014 17:01:02 +0800 Subject: [PATCH 025/356] =?UTF-8?q?#314=20=E4=BD=BF=E7=94=A8NoSQL=20Unit?= =?UTF-8?q?=E7=9A=84=E5=B5=8C=E5=85=A5=E5=BC=8FRedis=E7=BC=96=E5=86=99?= =?UTF-8?q?=E6=B5=8B=E8=AF=95,=20fix=20case?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/springside/modules/nosql/redis/JedisTemplate.java | 8 ++++---- .../springside/modules/nosql/redis/JedisTemplateTest.java | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java index 8bd675a3f..b28ec2040 100644 --- a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java +++ b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java @@ -103,12 +103,12 @@ public interface JedisActionNoResult { /** * 删除key, 如果key存在返回true, 否则返回false。 */ - public boolean del(final String... key) { + public boolean del(final String... keys) { return execute(new JedisAction() { @Override public Boolean action(Jedis jedis) { - return jedis.del(key) == 1 ? true : false; + return jedis.del(keys) == 1 ? true : false; } }); } @@ -205,11 +205,11 @@ public Long action(Jedis jedis) { } // ////////////// 关于List /////////////////////////// - public void lpush(final String key, final String value) { + public void lpush(final String key, final String... values) { execute(new JedisActionNoResult() { @Override public void action(Jedis jedis) { - jedis.lpush(key, value); + jedis.lpush(key, values); } }); } diff --git a/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java b/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java index fbc78216e..e9caecf91 100644 --- a/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java +++ b/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java @@ -54,7 +54,7 @@ public void stringActions() { @Test public void listActions() { - String key = "test.string.key"; + String key = "test.list.key"; String value = "123"; String value2 = "456"; From bc6ec05db429ec2b3426dbb5f1d974b3b5172075 Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 17 Jan 2014 17:38:17 +0800 Subject: [PATCH 026/356] fix cases for mybatis --- examples/showcase/src/main/resources/mybatis/TeamMapper.xml | 2 +- examples/showcase/src/main/resources/mybatis/UserMapper.xml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/showcase/src/main/resources/mybatis/TeamMapper.xml b/examples/showcase/src/main/resources/mybatis/TeamMapper.xml index 07b37d007..27de06b9b 100644 --- a/examples/showcase/src/main/resources/mybatis/TeamMapper.xml +++ b/examples/showcase/src/main/resources/mybatis/TeamMapper.xml @@ -19,7 +19,7 @@ - select t.id as team_id, t.name as team_name, m.id as master_id, diff --git a/examples/showcase/src/main/resources/mybatis/UserMapper.xml b/examples/showcase/src/main/resources/mybatis/UserMapper.xml index 9d1112e2a..52c295f5b 100644 --- a/examples/showcase/src/main/resources/mybatis/UserMapper.xml +++ b/examples/showcase/src/main/resources/mybatis/UserMapper.xml @@ -6,7 +6,7 @@ - select id, name, email, login_name as loginName, team_id as "team.id" @@ -40,7 +40,7 @@ - + delete from ss_user where id=#{id} From 8cd89650179b0bc41dfabeff223a3dbb6a173cbb Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 17 Jan 2014 17:55:01 +0800 Subject: [PATCH 027/356] updat travis to fail fast, if unit test error, stop test the project --- .travis.yml | 3 +-- examples/quickstart/pom.xml | 26 ++++++++++++++++++++++++++ examples/showcase/pom.xml | 26 ++++++++++++++++++++++++++ 3 files changed, 53 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9a68a274f..801584e15 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ language: java script: -- mvn test -- mvn test -Pfunctional-test -Dselenium.driver=firefox +- mvn test -Pall-test -Dselenium.driver=firefox env: MAVEN_OPTS="-XX:MaxPermSize=128m" addons: firefox: "22.0" diff --git a/examples/quickstart/pom.xml b/examples/quickstart/pom.xml index 837e775ba..d4c84d160 100644 --- a/examples/quickstart/pom.xml +++ b/examples/quickstart/pom.xml @@ -601,6 +601,32 @@ + + + all-test + + + + org.apache.maven.plugins + maven-surefire-plugin + + -Xmx256M -XX:MaxPermSize=128m + + **/*FT.java + **/*Test.java + + + false + + + ${selenium.driver} + + + + + + + run-smoke diff --git a/examples/showcase/pom.xml b/examples/showcase/pom.xml index b3b68a21d..8f4a5eefe 100644 --- a/examples/showcase/pom.xml +++ b/examples/showcase/pom.xml @@ -554,6 +554,32 @@ + + + + all-test + + + + org.apache.maven.plugins + maven-surefire-plugin + + -Xmx256M -XX:MaxPermSize=128m + + **/*FT.java + **/*Test.java + + + false + + + ${selenium.driver} + + + + + + From 7202262953d9de73ab13c245cd18e39f816cf6ce Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 17 Jan 2014 18:24:07 +0800 Subject: [PATCH 028/356] =?UTF-8?q?rollback,=20ehcache=20=E5=AF=BC?= =?UTF-8?q?=E8=87=B4ut=E5=92=8Cft=E4=B8=8D=E8=83=BD=E4=B8=80=E8=B5=B7?= =?UTF-8?q?=E8=B7=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 3 ++- examples/quickstart/pom.xml | 26 -------------------------- examples/showcase/pom.xml | 26 -------------------------- 3 files changed, 2 insertions(+), 53 deletions(-) diff --git a/.travis.yml b/.travis.yml index 801584e15..9a68a274f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,7 @@ language: java script: -- mvn test -Pall-test -Dselenium.driver=firefox +- mvn test +- mvn test -Pfunctional-test -Dselenium.driver=firefox env: MAVEN_OPTS="-XX:MaxPermSize=128m" addons: firefox: "22.0" diff --git a/examples/quickstart/pom.xml b/examples/quickstart/pom.xml index d4c84d160..837e775ba 100644 --- a/examples/quickstart/pom.xml +++ b/examples/quickstart/pom.xml @@ -601,32 +601,6 @@ - - - all-test - - - - org.apache.maven.plugins - maven-surefire-plugin - - -Xmx256M -XX:MaxPermSize=128m - - **/*FT.java - **/*Test.java - - - false - - - ${selenium.driver} - - - - - - - run-smoke diff --git a/examples/showcase/pom.xml b/examples/showcase/pom.xml index 8f4a5eefe..b3b68a21d 100644 --- a/examples/showcase/pom.xml +++ b/examples/showcase/pom.xml @@ -554,32 +554,6 @@ - - - - all-test - - - - org.apache.maven.plugins - maven-surefire-plugin - - -Xmx256M -XX:MaxPermSize=128m - - **/*FT.java - **/*Test.java - - - false - - - ${selenium.driver} - - - - - - From 6df93c856f7a0cd3853ebddea55e3972f578f7bb Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 17 Jan 2014 18:42:33 +0800 Subject: [PATCH 029/356] update firefox version in travis-ci --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9a68a274f..03dcbc184 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,7 @@ script: - mvn test -Pfunctional-test -Dselenium.driver=firefox env: MAVEN_OPTS="-XX:MaxPermSize=128m" addons: - firefox: "22.0" + firefox: "26.0" before_install: - "export DISPLAY=:99.0" - "sh -e /etc/init.d/xvfb start" From fe6524977f349de302f15effee128ab6346c7313 Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 17 Jan 2014 19:08:59 +0800 Subject: [PATCH 030/356] =?UTF-8?q?#314=20=E4=BD=BF=E7=94=A8NoSQL=20Unit?= =?UTF-8?q?=E7=9A=84=E5=B5=8C=E5=85=A5=E5=BC=8FRedis=E7=BC=96=E5=86=99?= =?UTF-8?q?=E6=B5=8B=E8=AF=95,=20=20update=20the=20tempate=20return=20code?= =?UTF-8?q?=20to=20Integer/Long=20to=20support=20null.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/nosql/redis/JedisTemplate.java | 49 ++++++++++++------- .../nosql/redis/JedisTemplateTest.java | 38 ++++++++++++-- 2 files changed, 65 insertions(+), 22 deletions(-) diff --git a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java index b28ec2040..e0a164e07 100644 --- a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java +++ b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java @@ -103,7 +103,7 @@ public interface JedisActionNoResult { /** * 删除key, 如果key存在返回true, 否则返回false。 */ - public boolean del(final String... keys) { + public Boolean del(final String... keys) { return execute(new JedisAction() { @Override @@ -138,19 +138,19 @@ public String action(Jedis jedis) { } /** - * 如果key不存在, 返回0. + * 如果key不存在, 返回null. */ public Long getAsLong(final String key) { String result = get(key); - return result != null ? Long.valueOf(result) : 0; + return result != null ? Long.valueOf(result) : null; } /** - * 如果key不存在, 返回0. + * 如果key不存在, 返回null. */ public Integer getAsInt(final String key) { String result = get(key); - return result != null ? Integer.valueOf(result) : 0; + return result != null ? Integer.valueOf(result) : null; } public void set(final String key, final String value) { @@ -176,7 +176,7 @@ public void action(Jedis jedis) { /** * 如果key还不存在则进行设置,返回true,否则返回false. */ - public boolean setnx(final String key, final String value) { + public Boolean setnx(final String key, final String value) { return execute(new JedisAction() { @Override @@ -186,7 +186,7 @@ public Boolean action(Jedis jedis) { }); } - public long incr(final String key) { + public Long incr(final String key) { return execute(new JedisAction() { @Override public Long action(Jedis jedis) { @@ -195,7 +195,7 @@ public Long action(Jedis jedis) { }); } - public long decr(final String key) { + public Long decr(final String key) { return execute(new JedisAction() { @Override public Long action(Jedis jedis) { @@ -227,7 +227,7 @@ public String action(Jedis jedis) { /** * 返回List长度, key不存在时返回0,key类型不是list时抛出异常. */ - public long llen(final String key) { + public Long llen(final String key) { return execute(new JedisAction() { @Override @@ -238,9 +238,9 @@ public Long action(Jedis jedis) { } /** - * 删除List中的第一个等于value的元素,value不存在或key不存在时返回0. + * 删除List中的第一个等于value的元素,value不存在或key不存在时返回false. */ - public boolean lremOne(final String key, final String value) { + public Boolean lremOne(final String key, final String value) { return execute(new JedisAction() { @Override public Boolean action(Jedis jedis) { @@ -251,9 +251,9 @@ public Boolean action(Jedis jedis) { } /** - * 删除List中的所有等于value的元素,value不存在或key不存在时返回0. + * 删除List中的所有等于value的元素,value不存在或key不存在时返回false. */ - public boolean lremAll(final String key, final String value) { + public Boolean lremAll(final String key, final String value) { return execute(new JedisAction() { @Override public Boolean action(Jedis jedis) { @@ -265,9 +265,9 @@ public Boolean action(Jedis jedis) { // ////////////// 关于Sorted Set /////////////////////////// /** - * 加入Sorted set, 如果member在Set里已存在,只更新score并返回false,否则返回true. + * 加入Sorted set, 如果member在Set里已存在, 只更新score并返回false, 否则返回true. */ - public boolean zadd(final String key, final String member, final double score) { + public Boolean zadd(final String key, final String member, final double score) { return execute(new JedisAction() { @Override @@ -280,7 +280,7 @@ public Boolean action(Jedis jedis) { /** * 删除sorted set中的元素,成功删除返回true,key或member不存在返回false。 */ - public boolean zrem(final String key, final String member) { + public Boolean zrem(final String key, final String member) { return execute(new JedisAction() { @Override @@ -291,9 +291,22 @@ public Boolean action(Jedis jedis) { } /** - * 返回sorted set长度, key不存在时返回0,key类型不是sorted set时抛出异常. + * 当key不存在时返回null. + */ + public Double zscore(final String key, final String member) { + return execute(new JedisAction() { + + @Override + public Double action(Jedis jedis) { + return jedis.zscore(key, member); + } + }); + } + + /** + * 返回sorted set长度, key不存在时返回0. */ - public long zcard(final String key) { + public Long zcard(final String key) { return execute(new JedisAction() { @Override diff --git a/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java b/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java index e9caecf91..4beeddb2d 100644 --- a/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java +++ b/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java @@ -44,12 +44,12 @@ public void stringActions() { assertThat(jedisTemplate.del(notExistKey)).isFalse(); jedisTemplate.set(key, value); - assertThat((int) jedisTemplate.getAsInt(key)).isEqualTo(123); - assertThat((int) jedisTemplate.getAsInt(notExistKey)).isZero(); + assertThat(jedisTemplate.getAsInt(key)).isEqualTo(123); + assertThat(jedisTemplate.getAsInt(notExistKey)).isNull(); jedisTemplate.set(key, value); - assertThat((long) jedisTemplate.getAsLong(key)).isEqualTo(123L); - assertThat((long) jedisTemplate.getAsLong(notExistKey)).isZero(); + assertThat(jedisTemplate.getAsLong(key)).isEqualTo(123L); + assertThat(jedisTemplate.getAsLong(notExistKey)).isNull(); } @Test @@ -62,6 +62,7 @@ public void listActions() { jedisTemplate.lpush(key, value); assertThat(jedisTemplate.llen(key)).isEqualTo(1); assertThat(jedisTemplate.rpop(key)).isEqualTo(value); + assertThat(jedisTemplate.rpop(key)).isNull(); // push/pop two elements jedisTemplate.lpush(key, value); @@ -81,4 +82,33 @@ public void listActions() { assertThat(jedisTemplate.llen(key)).isEqualTo(0); assertThat(jedisTemplate.lremAll(key, value)).isFalse(); } + + @Test + public void orderedSetActions() { + String key = "test.orderedSet.key"; + String member = "abc"; + String member2 = "def"; + double score1 = 1; + double score11 = 11; + double score2 = 2; + + // zadd + assertThat(jedisTemplate.zadd(key, member, score1)).isTrue(); + assertThat(jedisTemplate.zadd(key, member2, score2)).isTrue(); + + // zcard + assertThat(jedisTemplate.zcard(key)).isEqualTo(2); + assertThat(jedisTemplate.zcard(key + "not.exist")).isEqualTo(0); + + // zrem + assertThat(jedisTemplate.zrem(key, member2)).isTrue(); + assertThat(jedisTemplate.zcard(key)).isEqualTo(1); + assertThat(jedisTemplate.zrem(key, member2 + "not.exist")).isFalse(); + + // unique & zscore + assertThat(jedisTemplate.zadd(key, member, score11)).isFalse(); + assertThat(jedisTemplate.zcard(key)).isEqualTo(1); + assertThat(jedisTemplate.zscore(key, member)).isEqualTo(score11); + assertThat(jedisTemplate.zscore(key, member + "not.exist")).isNull(); + } } From e6f36ef3961ef8b44b42aea12f2f06e76d80f03f Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 17 Jan 2014 20:58:33 +0800 Subject: [PATCH 031/356] fix unstable test --- .../showcase/demos/schedule/QuartzClusterableJob.java | 5 +++-- .../examples/showcase/demos/schedule/UserCountScanner.java | 5 ++--- .../examples/showcase/demos/schedule/JdkTimerJobTest.java | 4 ++-- .../showcase/demos/schedule/QuartzTimerClusterJobTest.java | 5 ++--- .../examples/showcase/demos/schedule/SpringTimerJobTest.java | 4 ++-- 5 files changed, 11 insertions(+), 12 deletions(-) diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/QuartzClusterableJob.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/QuartzClusterableJob.java index c34e5e7bb..fd3f3b15f 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/QuartzClusterableJob.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/QuartzClusterableJob.java @@ -20,7 +20,8 @@ */ public class QuartzClusterableJob extends QuartzJobBean { - private static Logger logger = LoggerFactory.getLogger(QuartzClusterableJob.class); + private static Logger logger = LoggerFactory + .getLogger(QuartzClusterableJob.class.getName() + ".quartz cluster job"); private ApplicationContext applicationContext; @@ -42,6 +43,6 @@ protected void executeInternal(JobExecutionContext ctx) throws JobExecutionExcep long userCount = accountService.getUserCount(); String nodeName = (String) config.get("nodeName"); - logger.info("There are {} user in database, printed by quartz cluster job on node {}.", userCount, nodeName); + logger.info("There are {} user in database, on node {}.", userCount, nodeName); } } diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/UserCountScanner.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/UserCountScanner.java index a7f375c32..b336a2627 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/UserCountScanner.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/UserCountScanner.java @@ -14,8 +14,6 @@ @Component public class UserCountScanner { - private static Logger logger = LoggerFactory.getLogger(UserCountScanner.class); - @Autowired private AccountService accountService; @@ -46,7 +44,8 @@ public void executeBySpringTimerByXml() { * 定时打印当前用户数到日志. */ private void execute(String by) { + Logger logger = LoggerFactory.getLogger(UserCountScanner.class.getName() + "." + by); long userCount = accountService.getUserCount(); - logger.info("There are {} user in database, printed by {}.", userCount, by); + logger.info("There are {} user in database.", userCount); } } diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/JdkTimerJobTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/JdkTimerJobTest.java index 789f55f64..a58f259de 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/JdkTimerJobTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/JdkTimerJobTest.java @@ -24,7 +24,7 @@ public class JdkTimerJobTest extends SpringTransactionalTestCase { public static void initLogger() { // 加载测试用logger appender appender = new LogbackListAppender(); - appender.addToLogger(UserCountScanner.class); + appender.addToLogger(UserCountScanner.class.getName() + ".jdk timer job"); } @AfterClass @@ -39,6 +39,6 @@ public void scheduleJob() throws Exception { // 验证任务已执行 assertEquals(1, appender.getLogsCount()); - assertEquals("There are 6 user in database, printed by jdk timer job.", appender.getFirstMessage()); + assertEquals("There are 6 user in database.", appender.getFirstMessage()); } } diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/QuartzTimerClusterJobTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/QuartzTimerClusterJobTest.java index 3bb2b449a..ae9ff557e 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/QuartzTimerClusterJobTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/QuartzTimerClusterJobTest.java @@ -29,7 +29,7 @@ public class QuartzTimerClusterJobTest extends SpringTransactionalTestCase { public static void initLogger() { // 加载测试用logger appender appender = new LogbackListAppender(); - appender.addToLogger(QuartzClusterableJob.class); + appender.addToLogger(QuartzClusterableJob.class.getName() + ".quartz cluster job"); } @AfterClass @@ -45,7 +45,6 @@ public void scheduleJob() throws Exception { // 验证任务已执行 assertEquals(1, appender.getLogsCount()); - assertEquals("There are 6 user in database, printed by quartz cluster job on node default.", - appender.getFirstMessage()); + assertEquals("There are 6 user in database, on node default.", appender.getFirstMessage()); } } diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/SpringTimerJobTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/SpringTimerJobTest.java index dd035626d..7b8a4ad78 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/SpringTimerJobTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/SpringTimerJobTest.java @@ -24,7 +24,7 @@ public class SpringTimerJobTest extends SpringTransactionalTestCase { public static void initLogger() { // 加载测试用logger appender appender = new LogbackListAppender(); - appender.addToLogger(UserCountScanner.class); + appender.addToLogger(UserCountScanner.class.getName() + ".spring timer job by xml"); } @AfterClass @@ -39,6 +39,6 @@ public void scheduleJob() throws Exception { // 验证任务已执行 assertEquals(1, appender.getLogsCount()); - assertEquals("There are 6 user in database, printed by spring timer job by xml.", appender.getFirstMessage()); + assertEquals("There are 6 user in database.", appender.getFirstMessage()); } } From dae36f31d139ce9d8bbd7ac1d2ba4a8b93a474e0 Mon Sep 17 00:00:00 2001 From: Calvin Date: Sat, 18 Jan 2014 00:39:10 +0800 Subject: [PATCH 032/356] =?UTF-8?q?#311=20=E7=94=A8assertJ=E7=AE=80?= =?UTF-8?q?=E5=8C=96assert=E7=BC=96=E5=86=99,=20springside-core=E9=83=A8?= =?UTF-8?q?=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../functional/rest/TaskRestFT.java | 5 +- .../beanvalidator/BeanValidatorsTest.java | 20 +++--- .../modules/mapper/JaxbMapperTest.java | 13 ++-- .../modules/mapper/JsonMapperTest.java | 33 ++++----- .../modules/persistence/HibernatesTest.java | 26 +++---- .../modules/persistence/SearchFilterTest.java | 16 ++--- .../modules/security/utils/CryptosTest.java | 16 ++--- .../modules/test/jetty/JettyFactoryTest.java | 8 +-- .../test/log/LogbackListAppenderTest.java | 72 +++++++++++++++++++ .../test/log/LogbackMockAppenderTest.java | 72 ------------------- .../security/shiro/ShiroTestUtilsTest.java | 10 +-- .../test/selenium/WebDriverFactoryTest.java | 10 +-- .../modules/utils/Collecitons3Test.java | 13 ++-- .../springside/modules/utils/EncodesTest.java | 18 ++--- .../modules/utils/ExceptionsTest.java | 17 ++--- .../modules/utils/IdentitiesTest.java | 1 - .../modules/utils/PropertiesLoaderTest.java | 25 +++---- .../modules/utils/ReflectionsTest.java | 41 +++++------ .../springside/modules/utils/ThreadsTest.java | 22 +++--- .../springside/modules/web/ServletsTest.java | 36 +++++----- .../memcached/SpyMemcachedClientTest.java | 3 +- .../test/mail/MailServerSimulatorTest.java | 4 +- 22 files changed, 234 insertions(+), 247 deletions(-) create mode 100644 modules/core/src/test/java/org/springside/modules/test/log/LogbackListAppenderTest.java delete mode 100644 modules/core/src/test/java/org/springside/modules/test/log/LogbackMockAppenderTest.java diff --git a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/rest/TaskRestFT.java b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/rest/TaskRestFT.java index 05894201e..7e7363b6d 100644 --- a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/rest/TaskRestFT.java +++ b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/rest/TaskRestFT.java @@ -7,7 +7,6 @@ import java.util.Map; import org.apache.commons.lang3.StringUtils; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -110,7 +109,7 @@ public void invalidInput() { assertThat(e.getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST); Map messages = jsonMapper.fromJson(e.getResponseBodyAsString(), Map.class); assertThat(messages).hasSize(1); - Assert.assertTrue(messages.get("title").equals("may not be empty") || messages.get("title").equals("不能为空")); + assertThat(messages.get("title")).isIn("may not be empty", "不能为空"); } // update @@ -122,7 +121,7 @@ public void invalidInput() { assertThat(e.getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST); Map messages = jsonMapper.fromJson(e.getResponseBodyAsString(), Map.class); assertThat(messages).hasSize(1); - Assert.assertTrue(messages.get("title").equals("may not be empty") || messages.get("title").equals("不能为空")); + assertThat(messages.get("title")).isIn("may not be empty", "不能为空"); } } } diff --git a/modules/core/src/test/java/org/springside/modules/beanvalidator/BeanValidatorsTest.java b/modules/core/src/test/java/org/springside/modules/beanvalidator/BeanValidatorsTest.java index 1e70320fb..89205bb72 100644 --- a/modules/core/src/test/java/org/springside/modules/beanvalidator/BeanValidatorsTest.java +++ b/modules/core/src/test/java/org/springside/modules/beanvalidator/BeanValidatorsTest.java @@ -1,6 +1,6 @@ package org.springside.modules.beanvalidator; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.List; import java.util.Locale; @@ -24,7 +24,7 @@ public class BeanValidatorsTest extends SpringContextTestCase { @Autowired - Validator validator; + private Validator validator; @BeforeClass public static void beforeClass() { @@ -39,22 +39,20 @@ public void validate() { customer.setEmail("aaa"); Set> violations = validator.validate(customer); - assertEquals(2, violations.size()); + assertThat(violations).hasSize(2); // extract message as list List result = BeanValidators.extractMessage(violations); - assertTrue(result.contains("not a well-formed email address")); - assertTrue(result.contains("may not be empty")); + assertThat(result).containsOnly("not a well-formed email address", "may not be empty"); // extract propertyPath and message as map; Map mapResult = BeanValidators.extractPropertyAndMessage(violations); - assertEquals("not a well-formed email address", mapResult.get("email")); - assertEquals("may not be empty", mapResult.get("name")); + assertThat(mapResult).containsOnly(entry("email", "not a well-formed email address"), + entry("name", "may not be empty")); // extract propertyPath and message as map; result = BeanValidators.extractPropertyAndMessageAsList(violations); - assertTrue(result.contains("email not a well-formed email address")); - assertTrue(result.contains("name may not be empty")); + assertThat(result).containsOnly("email not a well-formed email address", "name may not be empty"); } @Test @@ -67,8 +65,8 @@ public void validateWithException() { Assert.fail("should throw excepion"); } catch (ConstraintViolationException e) { Map mapResult = BeanValidators.extractPropertyAndMessage(e); - assertEquals("not a well-formed email address", mapResult.get("email")); - assertEquals("may not be empty", mapResult.get("name")); + assertThat(mapResult).contains(entry("email", "not a well-formed email address"), + entry("name", "may not be empty")); } } diff --git a/modules/core/src/test/java/org/springside/modules/mapper/JaxbMapperTest.java b/modules/core/src/test/java/org/springside/modules/mapper/JaxbMapperTest.java index 647884e83..42354a509 100644 --- a/modules/core/src/test/java/org/springside/modules/mapper/JaxbMapperTest.java +++ b/modules/core/src/test/java/org/springside/modules/mapper/JaxbMapperTest.java @@ -1,6 +1,6 @@ package org.springside.modules.mapper; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.List; @@ -59,9 +59,8 @@ public void xmlToObject() { System.out.println("Jaxb Xml to Object result:\n" + user); - assertEquals(Long.valueOf(1L), user.getId()); - assertEquals(2, user.getInterests().size()); - assertEquals("movie", user.getInterests().get(0)); + assertThat(user.getId()).isEqualTo(1L); + assertThat(user.getInterests()).containsOnly("movie", "sports"); } /** @@ -112,11 +111,11 @@ private static void assertXmlByDom4j(String xml) { fail(e.getMessage()); } Element user = doc.getRootElement(); - assertEquals("1", user.attribute("id").getValue()); + assertThat(user.attribute("id").getValue()).isEqualTo("1"); Element interests = (Element) doc.selectSingleNode("//interests"); - assertEquals(2, interests.elements().size()); - assertEquals("movie", ((Element) interests.elements().get(0)).getText()); + assertThat(interests.elements()).hasSize(2); + assertThat(((Element) interests.elements().get(0)).getText()).isEqualTo("movie"); } @XmlRootElement diff --git a/modules/core/src/test/java/org/springside/modules/mapper/JsonMapperTest.java b/modules/core/src/test/java/org/springside/modules/mapper/JsonMapperTest.java index 60ff345d7..188763a23 100644 --- a/modules/core/src/test/java/org/springside/modules/mapper/JsonMapperTest.java +++ b/modules/core/src/test/java/org/springside/modules/mapper/JsonMapperTest.java @@ -1,6 +1,6 @@ package org.springside.modules.mapper; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.HashMap; import java.util.List; @@ -32,7 +32,7 @@ public void toJson() throws Exception { TestBean bean = new TestBean("A"); String beanString = binder.toJson(bean); System.out.println("Bean:" + beanString); - assertEquals("{\"name\":\"A\"}", beanString); + assertThat(beanString).isEqualTo("{\"name\":\"A\"}"); // Map Map map = Maps.newLinkedHashMap(); @@ -40,25 +40,25 @@ public void toJson() throws Exception { map.put("age", 2); String mapString = binder.toJson(map); System.out.println("Map:" + mapString); - assertEquals("{\"name\":\"A\",\"age\":2}", mapString); + assertThat(mapString).isEqualTo("{\"name\":\"A\",\"age\":2}"); // List List stringList = Lists.newArrayList("A", "B", "C"); String listString = binder.toJson(stringList); System.out.println("String List:" + listString); - assertEquals("[\"A\",\"B\",\"C\"]", listString); + assertThat(listString).isEqualTo("[\"A\",\"B\",\"C\"]"); // List List beanList = Lists.newArrayList(new TestBean("A"), new TestBean("B")); String beanListString = binder.toJson(beanList); System.out.println("Bean List:" + beanListString); - assertEquals("[{\"name\":\"A\"},{\"name\":\"B\"}]", beanListString); + assertThat(beanListString).isEqualTo("[{\"name\":\"A\"},{\"name\":\"B\"}]"); // Bean[] TestBean[] beanArray = new TestBean[] { new TestBean("A"), new TestBean("B") }; String beanArrayString = binder.toJson(beanArray); System.out.println("Array List:" + beanArrayString); - assertEquals("[{\"name\":\"A\"},{\"name\":\"B\"}]", beanArrayString); + assertThat(beanArrayString).isEqualTo("[{\"name\":\"A\"},{\"name\":\"B\"}]"); } /** @@ -107,31 +107,31 @@ public void nullAndEmpty() { // Null Bean TestBean nullBean = null; String nullBeanString = binder.toJson(nullBean); - assertEquals("null", nullBeanString); + assertThat(nullBeanString).isEqualTo("null"); // Empty List List emptyList = Lists.newArrayList(); String emptyListString = binder.toJson(emptyList); - assertEquals("[]", emptyListString); + assertThat(emptyListString).isEqualTo("[]"); // fromJson测试 // // Null String for Bean TestBean nullBeanResult = binder.fromJson(null, TestBean.class); - assertNull(nullBeanResult); + assertThat(nullBeanResult).isNull(); nullBeanResult = binder.fromJson("null", TestBean.class); - assertNull(nullBeanResult); + assertThat(nullBeanResult).isNull(); // Null/Empty String for List List nullListResult = binder.fromJson(null, List.class); - assertNull(nullListResult); + assertThat(nullListResult).isNull(); nullListResult = binder.fromJson("null", List.class); - assertNull(nullListResult); + assertThat(nullListResult).isNull(); nullListResult = binder.fromJson("[]", List.class); - assertEquals(0, nullListResult.size()); + assertThat(nullListResult).isEmpty(); } /** @@ -142,15 +142,16 @@ public void threeTypeBinders() { // 打印全部属性 JsonMapper normalBinder = new JsonMapper(); TestBean bean = new TestBean("A"); - assertEquals("{\"name\":\"A\",\"defaultValue\":\"hello\",\"nullValue\":null}", normalBinder.toJson(bean)); + assertThat(normalBinder.toJson(bean)).isEqualTo( + "{\"name\":\"A\",\"defaultValue\":\"hello\",\"nullValue\":null}"); // 不打印nullValue属性 JsonMapper nonNullBinder = JsonMapper.nonEmptyMapper(); - assertEquals("{\"name\":\"A\",\"defaultValue\":\"hello\"}", nonNullBinder.toJson(bean)); + assertThat(nonNullBinder.toJson(bean)).isEqualTo("{\"name\":\"A\",\"defaultValue\":\"hello\"}"); // 不打印默认值未改变的nullValue与defaultValue属性 JsonMapper nonDefaultBinder = JsonMapper.nonDefaultMapper(); - assertEquals("{\"name\":\"A\"}", nonDefaultBinder.toJson(bean)); + assertThat(nonDefaultBinder.toJson(bean)).isEqualTo("{\"name\":\"A\"}"); } public static class TestBean { diff --git a/modules/core/src/test/java/org/springside/modules/persistence/HibernatesTest.java b/modules/core/src/test/java/org/springside/modules/persistence/HibernatesTest.java index f9a07d6db..c9ba45329 100644 --- a/modules/core/src/test/java/org/springside/modules/persistence/HibernatesTest.java +++ b/modules/core/src/test/java/org/springside/modules/persistence/HibernatesTest.java @@ -1,6 +1,7 @@ package org.springside.modules.persistence; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; +import static org.mockito.Mockito.*; import java.sql.Connection; import java.sql.DatabaseMetaData; @@ -12,29 +13,28 @@ import org.hibernate.dialect.MySQL5InnoDBDialect; import org.hibernate.dialect.Oracle10gDialect; import org.junit.Test; -import org.mockito.Mockito; public class HibernatesTest { @Test public void testGetDialect() throws SQLException { - DataSource mockDataSource = Mockito.mock(DataSource.class); - Connection mockConnection = Mockito.mock(Connection.class); - DatabaseMetaData mockMetaData = Mockito.mock(DatabaseMetaData.class); + DataSource mockDataSource = mock(DataSource.class); + Connection mockConnection = mock(Connection.class); + DatabaseMetaData mockMetaData = mock(DatabaseMetaData.class); - Mockito.when(mockDataSource.getConnection()).thenReturn(mockConnection); - Mockito.when(mockConnection.getMetaData()).thenReturn(mockMetaData); + when(mockDataSource.getConnection()).thenReturn(mockConnection); + when(mockConnection.getMetaData()).thenReturn(mockMetaData); - Mockito.when(mockMetaData.getURL()).thenReturn("jdbc:h2:file:~/test;AUTO_SERVER=TRUE"); + when(mockMetaData.getURL()).thenReturn("jdbc:h2:file:~/test;AUTO_SERVER=TRUE"); String dialect = Hibernates.getDialect(mockDataSource); - assertEquals(H2Dialect.class.getName(), dialect); + assertThat(dialect).isEqualTo(H2Dialect.class.getName()); - Mockito.when(mockMetaData.getURL()).thenReturn("jdbc:mysql://localhost:3306/test"); + when(mockMetaData.getURL()).thenReturn("jdbc:mysql://localhost:3306/test"); dialect = Hibernates.getDialect(mockDataSource); - assertEquals(MySQL5InnoDBDialect.class.getName(), dialect); + assertThat(dialect).isEqualTo(MySQL5InnoDBDialect.class.getName()); - Mockito.when(mockMetaData.getURL()).thenReturn("jdbc:oracle:thin:@127.0.0.1:1521:XE"); + when(mockMetaData.getURL()).thenReturn("jdbc:oracle:thin:@127.0.0.1:1521:XE"); dialect = Hibernates.getDialect(mockDataSource); - assertEquals(Oracle10gDialect.class.getName(), dialect); + assertThat(dialect).isEqualTo(Oracle10gDialect.class.getName()); } } diff --git a/modules/core/src/test/java/org/springside/modules/persistence/SearchFilterTest.java b/modules/core/src/test/java/org/springside/modules/persistence/SearchFilterTest.java index 50c8cfb6f..1ad95ca8f 100644 --- a/modules/core/src/test/java/org/springside/modules/persistence/SearchFilterTest.java +++ b/modules/core/src/test/java/org/springside/modules/persistence/SearchFilterTest.java @@ -1,6 +1,6 @@ package org.springside.modules.persistence; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.Map; @@ -21,14 +21,14 @@ public void normal() { Map filters = SearchFilter.parse(params); SearchFilter nameFilter = filters.get("EQ_name"); - assertEquals(Operator.EQ, nameFilter.operator); - assertEquals("name", nameFilter.fieldName); - assertEquals("foo", nameFilter.value); + assertThat(nameFilter.operator).isEqualTo(Operator.EQ); + assertThat(nameFilter.fieldName).isEqualTo("name"); + assertThat(nameFilter.value).isEqualTo("foo"); SearchFilter ageFilter = filters.get("LT_age"); - assertEquals(Operator.LT, ageFilter.operator); - assertEquals("age", ageFilter.fieldName); - assertEquals("1", ageFilter.value); + assertThat(ageFilter.operator).isEqualTo(Operator.LT); + assertThat(ageFilter.fieldName).isEqualTo("age"); + assertThat(ageFilter.value).isEqualTo("1"); } @Test @@ -40,7 +40,7 @@ public void emptyValue() { params.put("LT_mail", ""); Map filters = SearchFilter.parse(params); - assertEquals(1, filters.size()); + assertThat(filters).hasSize(1).containsKey("EQ_name"); } @Test diff --git a/modules/core/src/test/java/org/springside/modules/security/utils/CryptosTest.java b/modules/core/src/test/java/org/springside/modules/security/utils/CryptosTest.java index 7e2a75606..847f799b7 100644 --- a/modules/core/src/test/java/org/springside/modules/security/utils/CryptosTest.java +++ b/modules/core/src/test/java/org/springside/modules/security/utils/CryptosTest.java @@ -1,6 +1,6 @@ package org.springside.modules.security.utils; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.Test; import org.springside.modules.utils.Encodes; @@ -13,19 +13,19 @@ public void mac() { // key可为任意字符串 // byte[] key = "a foo key".getBytes(); byte[] key = Cryptos.generateHmacSha1Key(); - assertEquals(20, key.length); + assertThat(key).hasSize(20); byte[] macResult = Cryptos.hmacSha1(input.getBytes(), key); System.out.println("hmac-sha1 key in hex :" + Encodes.encodeHex(key)); System.out.println("hmac-sha1 in hex result :" + Encodes.encodeHex(macResult)); - assertTrue(Cryptos.isMacValid(macResult, input.getBytes(), key)); + assertThat(Cryptos.isMacValid(macResult, input.getBytes(), key)).isTrue(); } @Test public void aes() { byte[] key = Cryptos.generateAesKey(); - assertEquals(16, key.length); + assertThat(key).hasSize(16); String input = "foo message"; byte[] encryptResult = Cryptos.aesEncrypt(input.getBytes(), key); @@ -33,15 +33,15 @@ public void aes() { System.out.println("aes key in hex :" + Encodes.encodeHex(key)); System.out.println("aes encrypt in hex result :" + Encodes.encodeHex(encryptResult)); - assertEquals(input, descryptResult); + assertThat(descryptResult).isEqualTo(input); } @Test public void aesWithIV() { byte[] key = Cryptos.generateAesKey(); byte[] iv = Cryptos.generateIV(); - assertEquals(16, key.length); - assertEquals(16, iv.length); + assertThat(key).hasSize(16); + assertThat(iv).hasSize(16); String input = "foo message"; byte[] encryptResult = Cryptos.aesEncrypt(input.getBytes(), key, iv); @@ -50,6 +50,6 @@ public void aesWithIV() { System.out.println("aes key in hex :" + Encodes.encodeHex(key)); System.out.println("iv in hex :" + Encodes.encodeHex(iv)); System.out.println("aes encrypt in hex result :" + Encodes.encodeHex(encryptResult)); - assertEquals(input, descryptResult); + assertThat(descryptResult).isEqualTo(input); } } diff --git a/modules/core/src/test/java/org/springside/modules/test/jetty/JettyFactoryTest.java b/modules/core/src/test/java/org/springside/modules/test/jetty/JettyFactoryTest.java index 011ff4d45..77d45a220 100644 --- a/modules/core/src/test/java/org/springside/modules/test/jetty/JettyFactoryTest.java +++ b/modules/core/src/test/java/org/springside/modules/test/jetty/JettyFactoryTest.java @@ -1,6 +1,6 @@ package org.springside.modules.test.jetty; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.webapp.WebAppContext; @@ -12,8 +12,8 @@ public class JettyFactoryTest { public void createServer() { Server server = JettyFactory.createServerInSource(1978, "/test"); - assertEquals(1978, server.getConnectors()[0].getPort()); - assertEquals("/test", ((WebAppContext) server.getHandler()).getContextPath()); - assertEquals("src/main/webapp", ((WebAppContext) server.getHandler()).getWar()); + assertThat(server.getConnectors()[0].getPort()).isEqualTo(1978); + assertThat(((WebAppContext) server.getHandler()).getContextPath()).isEqualTo("/test"); + assertThat(((WebAppContext) server.getHandler()).getWar()).isEqualTo("src/main/webapp"); } } diff --git a/modules/core/src/test/java/org/springside/modules/test/log/LogbackListAppenderTest.java b/modules/core/src/test/java/org/springside/modules/test/log/LogbackListAppenderTest.java new file mode 100644 index 000000000..7ebc4e713 --- /dev/null +++ b/modules/core/src/test/java/org/springside/modules/test/log/LogbackListAppenderTest.java @@ -0,0 +1,72 @@ +package org.springside.modules.test.log; + +import static org.assertj.core.api.Assertions.*; + +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class LogbackListAppenderTest { + + @Test + public void normal() { + String testString1 = "Hello"; + String testString2 = "World"; + LogbackListAppender appender = new LogbackListAppender(); + appender.addToLogger(LogbackListAppenderTest.class); + + // null + assertThat(appender.getFirstLog()).isNull(); + assertThat(appender.getLastLog()).isNull(); + assertThat(appender.getFirstMessage()).isNull(); + assertThat(appender.getFirstMessage()).isNull(); + + Logger logger = LoggerFactory.getLogger(LogbackListAppenderTest.class); + logger.warn(testString1); + logger.warn(testString2); + + // getFirstLog/getLastLog + assertThat(appender.getFirstLog().getMessage()).isEqualTo(testString1); + assertThat(appender.getLastLog().getMessage()).isEqualTo(testString2); + + assertThat(appender.getFirstMessage()).isEqualTo(testString1); + assertThat(appender.getLastMessage()).isEqualTo(testString2); + + // getAllLogs + assertThat(appender.getLogsCount()).isEqualTo(2); + assertThat(appender.getAllLogs()).hasSize(2); + assertThat(appender.getAllLogs().get(1).getMessage()).isEqualTo(testString2); + + // clearLogs + appender.clearLogs(); + assertThat(appender.getFirstLog()).isNull(); + assertThat(appender.getLastLog()).isNull(); + } + + @Test + public void addAndRemoveAppender() { + String testString = "Hello"; + Logger logger = LoggerFactory.getLogger(LogbackListAppenderTest.class); + LogbackListAppender appender = new LogbackListAppender(); + // class + appender.addToLogger(LogbackListAppenderTest.class); + logger.warn(testString); + assertThat(appender.getFirstLog()).isNotNull(); + + appender.clearLogs(); + appender.removeFromLogger(LogbackListAppenderTest.class); + logger.warn(testString); + assertThat(appender.getFirstLog()).isNull(); + + // name + appender.clearLogs(); + appender.addToLogger("org.springside.modules.test.log"); + logger.warn(testString); + assertThat(appender.getFirstLog()).isNotNull(); + + appender.clearLogs(); + appender.removeFromLogger("org.springside.modules.test.log"); + logger.warn(testString); + assertThat(appender.getFirstLog()).isNull(); + } +} diff --git a/modules/core/src/test/java/org/springside/modules/test/log/LogbackMockAppenderTest.java b/modules/core/src/test/java/org/springside/modules/test/log/LogbackMockAppenderTest.java deleted file mode 100644 index ef6678de8..000000000 --- a/modules/core/src/test/java/org/springside/modules/test/log/LogbackMockAppenderTest.java +++ /dev/null @@ -1,72 +0,0 @@ -package org.springside.modules.test.log; - -import static org.junit.Assert.*; - -import org.junit.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class LogbackMockAppenderTest { - - @Test - public void normal() { - String testString1 = "Hello"; - String testString2 = "World"; - LogbackListAppender appender = new LogbackListAppender(); - appender.addToLogger(LogbackMockAppenderTest.class); - - // null - assertNull(appender.getFirstLog()); - assertNull(appender.getLastLog()); - assertNull(appender.getFirstMessage()); - assertNull(appender.getFirstMessage()); - - Logger logger = LoggerFactory.getLogger(LogbackMockAppenderTest.class); - logger.warn(testString1); - logger.warn(testString2); - - // getFirstLog/getLastLog - assertEquals(testString1, appender.getFirstLog().getMessage()); - assertEquals(testString2, appender.getLastLog().getMessage()); - - assertEquals(testString1, appender.getFirstMessage()); - assertEquals(testString2, appender.getLastMessage()); - - // getAllLogs - assertEquals(2, appender.getLogsCount()); - assertEquals(2, appender.getAllLogs().size()); - assertEquals(testString2, appender.getAllLogs().get(1).getMessage()); - - // clearLogs - appender.clearLogs(); - assertNull(appender.getFirstLog()); - assertNull(appender.getLastLog()); - } - - @Test - public void addAndRemoveAppender() { - String testString = "Hello"; - Logger logger = LoggerFactory.getLogger(LogbackMockAppenderTest.class); - LogbackListAppender appender = new LogbackListAppender(); - // class - appender.addToLogger(LogbackMockAppenderTest.class); - logger.warn(testString); - assertNotNull(appender.getFirstLog()); - - appender.clearLogs(); - appender.removeFromLogger(LogbackMockAppenderTest.class); - logger.warn(testString); - assertNull(appender.getFirstLog()); - - // name - appender.clearLogs(); - appender.addToLogger("org.springside.modules.test.log"); - logger.warn(testString); - assertNotNull(appender.getFirstLog()); - - appender.clearLogs(); - appender.removeFromLogger("org.springside.modules.test.log"); - logger.warn(testString); - assertNull(appender.getFirstLog()); - } -} diff --git a/modules/core/src/test/java/org/springside/modules/test/security/shiro/ShiroTestUtilsTest.java b/modules/core/src/test/java/org/springside/modules/test/security/shiro/ShiroTestUtilsTest.java index d1ec23b19..b05e712a6 100644 --- a/modules/core/src/test/java/org/springside/modules/test/security/shiro/ShiroTestUtilsTest.java +++ b/modules/core/src/test/java/org/springside/modules/test/security/shiro/ShiroTestUtilsTest.java @@ -1,6 +1,6 @@ package org.springside.modules.test.security.shiro; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.apache.shiro.SecurityUtils; import org.junit.Test; @@ -10,14 +10,14 @@ public class ShiroTestUtilsTest { @Test public void mockSubject() { ShiroTestUtils.mockSubject("foo"); - assertTrue(SecurityUtils.getSubject().isAuthenticated()); - assertEquals("foo", SecurityUtils.getSubject().getPrincipal()); + assertThat(SecurityUtils.getSubject().isAuthenticated()).isTrue(); + assertThat(SecurityUtils.getSubject().getPrincipal()).isEqualTo("foo"); ShiroTestUtils.clearSubject(); ShiroTestUtils.mockSubject("bar"); - assertTrue(SecurityUtils.getSubject().isAuthenticated()); - assertEquals("bar", SecurityUtils.getSubject().getPrincipal()); + assertThat(SecurityUtils.getSubject().isAuthenticated()).isTrue(); + assertThat(SecurityUtils.getSubject().getPrincipal()).isEqualTo("bar"); } diff --git a/modules/core/src/test/java/org/springside/modules/test/selenium/WebDriverFactoryTest.java b/modules/core/src/test/java/org/springside/modules/test/selenium/WebDriverFactoryTest.java index 8ea35f63f..3d2dde4ad 100644 --- a/modules/core/src/test/java/org/springside/modules/test/selenium/WebDriverFactoryTest.java +++ b/modules/core/src/test/java/org/springside/modules/test/selenium/WebDriverFactoryTest.java @@ -1,6 +1,6 @@ package org.springside.modules.test.selenium; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.net.URL; @@ -37,20 +37,20 @@ public void buildWebDriver() throws Exception { PowerMockito.whenNew(FirefoxDriver.class).withNoArguments().thenReturn(firefoxDriver); WebDriver driver = WebDriverFactory.createDriver("firefox"); - assertTrue(driver instanceof FirefoxDriver); + assertThat(driver).isInstanceOf(FirefoxDriver.class); PowerMockito.whenNew(InternetExplorerDriver.class).withNoArguments().thenReturn(internetExplorerDriver); driver = WebDriverFactory.createDriver("ie"); - assertTrue(driver instanceof InternetExplorerDriver); + assertThat(driver).isInstanceOf(InternetExplorerDriver.class); PowerMockito.whenNew(ChromeDriver.class).withNoArguments().thenReturn(chromerDriver); driver = WebDriverFactory.createDriver("chrome"); - assertTrue(driver instanceof ChromeDriver); + assertThat(driver).isInstanceOf(ChromeDriver.class); PowerMockito.whenNew(RemoteWebDriver.class) .withArguments(new URL("http://localhost:4444/wd/hub"), DesiredCapabilities.firefox()) .thenReturn(remoteWebDriver); driver = WebDriverFactory.createDriver("remote:localhost:4444:firefox"); - assertTrue(driver instanceof RemoteWebDriver); + assertThat(driver).isInstanceOf(RemoteWebDriver.class); } } diff --git a/modules/core/src/test/java/org/springside/modules/utils/Collecitons3Test.java b/modules/core/src/test/java/org/springside/modules/utils/Collecitons3Test.java index ad829d260..1be28cdf5 100644 --- a/modules/core/src/test/java/org/springside/modules/utils/Collecitons3Test.java +++ b/modules/core/src/test/java/org/springside/modules/utils/Collecitons3Test.java @@ -1,6 +1,6 @@ package org.springside.modules.utils; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.List; @@ -19,7 +19,7 @@ public void convertElementPropertyToString() { List list = Lists.newArrayList(bean1, bean2); - assertEquals("1,2", Collections3.extractToString(list, "id", ",")); + assertThat(Collections3.extractToString(list, "id", ",")).isEqualTo("1,2"); } @Test @@ -30,19 +30,18 @@ public void convertElementPropertyToList() { bean2.setId(2); List list = Lists.newArrayList(bean1, bean2); - List result = Collections3.extractToList(list, "id"); - assertEquals(2, result.size()); - assertEquals(1, result.get(0)); + List result = Collections3.extractToList(list, "id"); + assertThat(result).containsOnly(1, 2); } @Test public void convertCollectionToString() { List list = Lists.newArrayList("aa", "bb"); String result = Collections3.convertToString(list, ","); - assertEquals("aa,bb", result); + assertThat(result).isEqualTo("aa,bb"); result = Collections3.convertToString(list, "
  • ", "
  • "); - assertEquals("
  • aa
  • bb
  • ", result); + assertThat(result).isEqualTo("
  • aa
  • bb
  • "); } public static class TestBean3 { diff --git a/modules/core/src/test/java/org/springside/modules/utils/EncodesTest.java b/modules/core/src/test/java/org/springside/modules/utils/EncodesTest.java index cabefa778..5ce2a34fc 100644 --- a/modules/core/src/test/java/org/springside/modules/utils/EncodesTest.java +++ b/modules/core/src/test/java/org/springside/modules/utils/EncodesTest.java @@ -1,6 +1,6 @@ package org.springside.modules.utils; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.Test; @@ -10,21 +10,21 @@ public class EncodesTest { public void hexEncode() { String input = "haha,i am a very long message"; String result = Encodes.encodeHex(input.getBytes()); - assertEquals(input, new String(Encodes.decodeHex(result))); + assertThat(new String(Encodes.decodeHex(result))).isEqualTo(input); } @Test public void base64Encode() { String input = "haha,i am a very long message"; String result = Encodes.encodeBase64(input.getBytes()); - assertEquals(input, new String(Encodes.decodeBase64(result))); + assertThat(new String(Encodes.decodeBase64(result))).isEqualTo(input); } @Test public void base64UrlSafeEncode() { String input = "haha,i am a very long message"; String result = Encodes.encodeUrlSafeBase64(input.getBytes()); - assertEquals(input, new String(Encodes.decodeBase64(result))); + assertThat(new String(Encodes.decodeBase64(result))).isEqualTo(input); } @Test @@ -33,22 +33,22 @@ public void urlEncode() { String result = Encodes.urlEncode(input); System.out.println(result); - assertEquals(input, Encodes.urlDecode(result)); + assertThat(Encodes.urlDecode(result)).isEqualTo(input); } @Test public void xmlEncode() { String input = "1>2"; String result = Encodes.escapeXml(input); - assertEquals("1>2", result); - assertEquals(input, Encodes.unescapeXml(result)); + assertThat(result).isEqualTo("1>2"); + assertThat(Encodes.unescapeXml(result)).isEqualTo(input); } @Test public void html() { String input = "1>2"; String result = Encodes.escapeHtml(input); - assertEquals("1>2", result); - assertEquals(input, Encodes.unescapeHtml(result)); + assertThat(result).isEqualTo("1>2"); + assertThat(Encodes.unescapeHtml(result)).isEqualTo(input); } } diff --git a/modules/core/src/test/java/org/springside/modules/utils/ExceptionsTest.java b/modules/core/src/test/java/org/springside/modules/utils/ExceptionsTest.java index 36d058202..afff136dc 100644 --- a/modules/core/src/test/java/org/springside/modules/utils/ExceptionsTest.java +++ b/modules/core/src/test/java/org/springside/modules/utils/ExceptionsTest.java @@ -1,6 +1,6 @@ package org.springside.modules.utils; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.io.IOException; @@ -10,12 +10,14 @@ public class ExceptionsTest { @Test public void unchecked() { + // convert Exception to RuntimeException with cause Exception exception = new Exception("my exception"); RuntimeException runtimeException = Exceptions.unchecked(exception); - assertEquals(exception, runtimeException.getCause()); + assertThat(runtimeException.getCause()).isEqualTo(exception); + // do nothing of RuntimeException RuntimeException runtimeException2 = Exceptions.unchecked(runtimeException); - assertEquals(runtimeException, runtimeException2); + assertThat(runtimeException2).isSameAs(runtimeException); } @Test @@ -33,11 +35,10 @@ public void isCausedBy() { IllegalStateException illegalStateException = new IllegalStateException(ioexception); RuntimeException runtimeException = new RuntimeException(illegalStateException); - assertTrue(Exceptions.isCausedBy(runtimeException, IOException.class)); - assertTrue(Exceptions.isCausedBy(runtimeException, IllegalStateException.class, IOException.class)); - assertTrue(Exceptions.isCausedBy(runtimeException, Exception.class)); - assertFalse(Exceptions.isCausedBy(runtimeException, IllegalAccessException.class)); - + assertThat(Exceptions.isCausedBy(runtimeException, IOException.class)).isTrue(); + assertThat(Exceptions.isCausedBy(runtimeException, IllegalStateException.class, IOException.class)).isTrue(); + assertThat(Exceptions.isCausedBy(runtimeException, Exception.class)).isTrue(); + assertThat(Exceptions.isCausedBy(runtimeException, IllegalAccessException.class)).isFalse(); } } diff --git a/modules/core/src/test/java/org/springside/modules/utils/IdentitiesTest.java b/modules/core/src/test/java/org/springside/modules/utils/IdentitiesTest.java index e987ba4f8..968da6bb0 100644 --- a/modules/core/src/test/java/org/springside/modules/utils/IdentitiesTest.java +++ b/modules/core/src/test/java/org/springside/modules/utils/IdentitiesTest.java @@ -11,5 +11,4 @@ public void demo() { System.out.println("randomLong: " + Identities.randomLong()); System.out.println("randomBase62:" + Identities.randomBase62(7)); } - } diff --git a/modules/core/src/test/java/org/springside/modules/utils/PropertiesLoaderTest.java b/modules/core/src/test/java/org/springside/modules/utils/PropertiesLoaderTest.java index dfe400dd4..7c8e4e1f0 100644 --- a/modules/core/src/test/java/org/springside/modules/utils/PropertiesLoaderTest.java +++ b/modules/core/src/test/java/org/springside/modules/utils/PropertiesLoaderTest.java @@ -1,6 +1,6 @@ package org.springside.modules.utils; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.io.IOException; import java.util.NoSuchElementException; @@ -15,50 +15,51 @@ public void multiProperty() throws IOException { Properties p = new PropertiesLoader("classpath:/test1.properties", "classpath:/test2.properties") .getProperties(); - assertEquals("1", p.getProperty("p1")); + assertThat(p.getProperty("p1")).isEqualTo("1"); // value in test2 will override the value in test1 - assertEquals("10", p.getProperty("p2")); - assertEquals("3", p.getProperty("p3")); + assertThat(p.getProperty("p2")).isEqualTo("10"); + assertThat(p.getProperty("p3")).isEqualTo("3"); } @Test public void notExistProperty() throws IOException { PropertiesLoader pl = new PropertiesLoader("classpath:/notexist.properties"); try { - assertNull(pl.getProperty("notexist")); + assertThat(pl.getProperty("notexist")).isNull(); fail("should fail here"); } catch (NoSuchElementException e) { } - assertEquals("defaultValue", pl.getProperty("notexist", "defaultValue")); + assertThat(pl.getProperty("notexist", "defaultValue")).isEqualTo("defaultValue"); } @Test public void integerDoubleAndBooleanProperty() { PropertiesLoader pl = new PropertiesLoader("classpath:/test1.properties", "classpath:/test2.properties"); - assertEquals(new Integer(1), pl.getInteger("p1")); + assertThat(pl.getInteger("p1")).isEqualTo(new Integer(1)); try { pl.getInteger("notExist"); fail("should fail here"); } catch (NoSuchElementException e) { } - assertEquals(new Integer(100), pl.getInteger("notExist", 100)); + assertThat(pl.getInteger("notExist", 100)).isEqualTo(new Integer(100)); + + assertThat(pl.getBoolean("p4")).isEqualTo(new Boolean(true)); + assertThat(pl.getBoolean("p4", true)).isEqualTo(new Boolean(true)); - assertEquals(new Boolean(true), pl.getBoolean("p4")); - assertEquals(new Boolean(true), pl.getBoolean("p4", true)); try { pl.getBoolean("notExist"); fail("should fail here"); } catch (NoSuchElementException e) { } - assertEquals(new Boolean(true), pl.getBoolean("notExist", true)); + assertThat(pl.getBoolean("notExist", true)).isEqualTo(new Boolean(true)); } @Test public void systemProperty() throws IOException { System.setProperty("p1", "sys"); PropertiesLoader pl = new PropertiesLoader("classpath:/test1.properties", "classpath:/test2.properties"); - assertEquals("sys", pl.getProperty("p1")); + assertThat(pl.getProperty("p1")).isEqualTo("sys"); System.clearProperty("p1"); } } diff --git a/modules/core/src/test/java/org/springside/modules/utils/ReflectionsTest.java b/modules/core/src/test/java/org/springside/modules/utils/ReflectionsTest.java index 43e0a2a8b..e39df92d3 100644 --- a/modules/core/src/test/java/org/springside/modules/utils/ReflectionsTest.java +++ b/modules/core/src/test/java/org/springside/modules/utils/ReflectionsTest.java @@ -1,6 +1,6 @@ package org.springside.modules.utils; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.lang.reflect.InvocationTargetException; @@ -12,19 +12,18 @@ public class ReflectionsTest { public void getAndSetFieldValue() { TestBean bean = new TestBean(); // 无需getter函数, 直接读取privateField - assertEquals(1, Reflections.getFieldValue(bean, "privateField")); + assertThat(Reflections.getFieldValue(bean, "privateField")).isEqualTo(1); // 绕过将publicField+1的getter函数,直接读取publicField的原始值 - assertEquals(1, Reflections.getFieldValue(bean, "publicField")); + assertThat(Reflections.getFieldValue(bean, "publicField")).isEqualTo(1); bean = new TestBean(); // 无需setter函数, 直接设置privateField Reflections.setFieldValue(bean, "privateField", 2); - assertEquals(2, bean.inspectPrivateField()); + assertThat(bean.inspectPrivateField()).isEqualTo(2); // 绕过将publicField+1的setter函数,直接设置publicField的原始值 Reflections.setFieldValue(bean, "publicField", 2); - - assertEquals(2, bean.inspectPublicField()); + assertThat(bean.inspectPublicField()).isEqualTo(2); try { Reflections.getFieldValue(bean, "notExist"); @@ -45,23 +44,26 @@ public void getAndSetFieldValue() { @Test public void invokeGetterAndSetter() { TestBean bean = new TestBean(); - assertEquals(bean.inspectPublicField() + 1, Reflections.invokeGetter(bean, "publicField")); + assertThat(Reflections.invokeGetter(bean, "publicField")).isEqualTo(bean.inspectPublicField() + 1); bean = new TestBean(); // 通过setter的函数将+1 Reflections.invokeSetter(bean, "publicField", 10); - assertEquals(10 + 1, bean.inspectPublicField()); + assertThat(bean.inspectPublicField()).isEqualTo(10 + 1); } @Test public void invokeMethod() { TestBean bean = new TestBean(); // 使用函数名+参数类型的匹配 - assertEquals("hello calvin", Reflections.invokeMethod(bean, "privateMethod", new Class[] { String.class }, - new Object[] { "calvin" })); + assertThat( + Reflections + .invokeMethod(bean, "privateMethod", new Class[] { String.class }, new Object[] { "calvin" })) + .isEqualTo("hello calvin"); // 仅匹配函数名 - assertEquals("hello calvin", Reflections.invokeMethodByName(bean, "privateMethod", new Object[] { "calvin" })); + assertThat(Reflections.invokeMethodByName(bean, "privateMethod", new Object[] { "calvin" })).isEqualTo( + "hello calvin"); // 函数名错 try { @@ -92,14 +94,14 @@ public void invokeMethod() { @Test public void getSuperClassGenricType() { // 获取第1,2个泛型类型 - assertEquals(String.class, Reflections.getClassGenricType(TestBean.class)); - assertEquals(Long.class, Reflections.getClassGenricType(TestBean.class, 1)); + assertThat(Reflections.getClassGenricType(TestBean.class)).isEqualTo(String.class); + assertThat(Reflections.getClassGenricType(TestBean.class, 1)).isEqualTo(Long.class); // 定义父类时无泛型定义 - assertEquals(Object.class, Reflections.getClassGenricType(TestBean2.class)); + assertThat(Reflections.getClassGenricType(TestBean2.class)).isEqualTo(Object.class); // 无父类定义 - assertEquals(Object.class, Reflections.getClassGenricType(TestBean3.class)); + assertThat(Reflections.getClassGenricType(TestBean3.class)).isEqualTo(Object.class); } @Test @@ -107,22 +109,21 @@ public void convertReflectionExceptionToUnchecked() { IllegalArgumentException iae = new IllegalArgumentException(); // ReflectionException,normal RuntimeException e = Reflections.convertReflectionExceptionToUnchecked(iae); - assertEquals(iae, e.getCause()); + assertThat(e.getCause()).isEqualTo(iae); // InvocationTargetException,extract it's target exception. Exception ex = new Exception(); e = Reflections.convertReflectionExceptionToUnchecked(new InvocationTargetException(ex)); - assertEquals(ex, e.getCause()); + assertThat(e.getCause()).isEqualTo(ex); // UncheckedException, ignore it. RuntimeException re = new RuntimeException("abc"); e = Reflections.convertReflectionExceptionToUnchecked(re); - assertEquals("abc", e.getMessage()); + assertThat(e).hasMessage("abc"); // Unexcepted Checked exception. e = Reflections.convertReflectionExceptionToUnchecked(ex); - assertEquals("Unexpected Checked Exception.", e.getMessage()); - + assertThat(e).hasMessage("Unexpected Checked Exception."); } public static class ParentBean { diff --git a/modules/core/src/test/java/org/springside/modules/utils/ThreadsTest.java b/modules/core/src/test/java/org/springside/modules/utils/ThreadsTest.java index e4833a39a..2f9534184 100644 --- a/modules/core/src/test/java/org/springside/modules/utils/ThreadsTest.java +++ b/modules/core/src/test/java/org/springside/modules/utils/ThreadsTest.java @@ -1,12 +1,6 @@ -/* - * $HeadURL: https://springside.googlecode.com/svn/springside4/trunk/modules/core/src/test/java/org/springside/modules/utils/ThreadsTest.java $ - * $Id: ThreadsTest.java 1680 2012-02-11 12:58:02Z calvinxiu $ - * Copyright (c) 2010 by Ericsson, all rights reserved. - */ - package org.springside.modules.utils; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; @@ -35,8 +29,8 @@ public void gracefulShutdown() throws InterruptedException { Runnable task = new Task(logger, 500, 0); pool.execute(task); Threads.gracefulShutdown(pool, 1000, 1000, TimeUnit.MILLISECONDS); - assertTrue(pool.isTerminated()); - assertNull(appender.getFirstLog()); + assertThat(pool.isTerminated()).isTrue(); + assertThat(appender.getFirstLog()).isNull(); // time not enough to shutdown,call shutdownNow appender.clearLogs(); @@ -44,8 +38,8 @@ public void gracefulShutdown() throws InterruptedException { task = new Task(logger, 1000, 0); pool.execute(task); Threads.gracefulShutdown(pool, 500, 1000, TimeUnit.MILLISECONDS); - assertTrue(pool.isTerminated()); - assertEquals("InterruptedException", appender.getFirstLog().getMessage()); + assertThat(pool.isTerminated()).isTrue(); + assertThat(appender.getFirstLog().getMessage()).isEqualTo("InterruptedException"); // self thread interrupt while calling gracefulShutdown appender.clearLogs(); @@ -67,7 +61,7 @@ public void run() { lock.await(); thread.interrupt(); Threads.sleep(500); - assertEquals("InterruptedException", appender.getFirstLog().getMessage()); + assertThat(appender.getFirstLog().getMessage()).isEqualTo("InterruptedException"); } @Test @@ -83,8 +77,8 @@ public void normalShutdown() throws InterruptedException { Runnable task = new Task(logger, 1000, 0); pool.execute(task); Threads.normalShutdown(pool, 500, TimeUnit.MILLISECONDS); - assertTrue(pool.isTerminated()); - assertEquals("InterruptedException", appender.getFirstMessage()); + assertThat(pool.isTerminated()).isTrue(); + assertThat(appender.getFirstMessage()).isEqualTo("InterruptedException"); } static class Task implements Runnable { diff --git a/modules/core/src/test/java/org/springside/modules/web/ServletsTest.java b/modules/core/src/test/java/org/springside/modules/web/ServletsTest.java index cd29aada3..33f2d1fae 100644 --- a/modules/core/src/test/java/org/springside/modules/web/ServletsTest.java +++ b/modules/core/src/test/java/org/springside/modules/web/ServletsTest.java @@ -1,6 +1,6 @@ package org.springside.modules.web; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.Date; import java.util.Map; @@ -18,14 +18,14 @@ public void checkIfModified() { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); // 未设Header,返回true,需要传输内容 - assertEquals(true, Servlets.checkIfModifiedSince(request, response, (new Date().getTime() - 2000))); + assertThat(Servlets.checkIfModifiedSince(request, response, (new Date().getTime() - 2000))).isTrue(); // 设置If-Modified-Since Header request.addHeader("If-Modified-Since", new Date().getTime()); // 文件修改时间比Header时间小,文件未修改, 返回false. - assertEquals(false, Servlets.checkIfModifiedSince(request, response, (new Date().getTime() - 2000))); + assertThat(Servlets.checkIfModifiedSince(request, response, (new Date().getTime() - 2000))).isFalse(); // 文件修改时间比Header时间大,文件已修改, 返回true,需要传输内容. - assertEquals(true, Servlets.checkIfModifiedSince(request, response, (new Date().getTime() + 2000))); + assertThat(Servlets.checkIfModifiedSince(request, response, (new Date().getTime() + 2000))).isTrue(); } @Test @@ -33,14 +33,14 @@ public void checkIfNoneMatch() { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); // 未设Header,返回true,需要传输内容 - assertEquals(true, Servlets.checkIfNoneMatchEtag(request, response, "V1.0")); + assertThat(Servlets.checkIfNoneMatchEtag(request, response, "V1.0")).isTrue(); // 设置If-None-Match Header request.addHeader("If-None-Match", "V1.0,V1.1"); // 存在Etag - assertEquals(false, Servlets.checkIfNoneMatchEtag(request, response, "V1.0")); + assertThat(Servlets.checkIfNoneMatchEtag(request, response, "V1.0")).isFalse(); // 不存在Etag - assertEquals(true, Servlets.checkIfNoneMatchEtag(request, response, "V2.0")); + assertThat(Servlets.checkIfNoneMatchEtag(request, response, "V2.0")).isTrue(); } @Test @@ -50,17 +50,13 @@ public void getParametersStartingWith() { request.addParameter("pre_b", "bb"); request.addParameter("c", "c"); Map result = Servlets.getParametersStartingWith(request, "pre_"); - assertEquals(2, result.size()); - assertTrue(result.keySet().contains("a")); - assertTrue(result.keySet().contains("b")); - assertTrue(result.values().contains("aa")); - assertTrue(result.values().contains("bb")); + assertThat(result).containsOnly(entry("a", "aa"), entry("b", "bb")); result = Servlets.getParametersStartingWith(request, "error_"); - assertEquals(0, result.size()); + assertThat(result).isEmpty(); result = Servlets.getParametersStartingWith(request, null); - assertEquals(3, result.size()); + assertThat(result).hasSize(3); } @Test @@ -70,28 +66,28 @@ public void encodeParameterStringWithPrefix() { params.put("age", "1"); String queryString = Servlets.encodeParameterStringWithPrefix(params, "search_"); - assertEquals("search_name=foo&search_age=1", queryString); + assertThat(queryString).isEqualTo("search_name=foo&search_age=1"); // data type is not String params.clear(); params.put("name", "foo"); params.put("age", 1); queryString = Servlets.encodeParameterStringWithPrefix(params, "search_"); - assertEquals("search_name=foo&search_age=1", queryString); + assertThat(queryString).isEqualTo("search_name=foo&search_age=1"); // prefix is blank or null queryString = Servlets.encodeParameterStringWithPrefix(params, null); - assertEquals("name=foo&age=1", queryString); + assertThat(queryString).isEqualTo("name=foo&age=1"); queryString = Servlets.encodeParameterStringWithPrefix(params, ""); - assertEquals("name=foo&age=1", queryString); + assertThat(queryString).isEqualTo("name=foo&age=1"); // map is empty or null queryString = Servlets.encodeParameterStringWithPrefix(null, "search_"); - assertEquals("", queryString); + assertThat(queryString).isEmpty(); params.clear(); queryString = Servlets.encodeParameterStringWithPrefix(params, "search_"); - assertEquals("", queryString); + assertThat(queryString).isEmpty(); } } diff --git a/modules/extension/src/test/java/org/springside/modules/memcached/SpyMemcachedClientTest.java b/modules/extension/src/test/java/org/springside/modules/memcached/SpyMemcachedClientTest.java index 80da7e43c..4457c3730 100644 --- a/modules/extension/src/test/java/org/springside/modules/memcached/SpyMemcachedClientTest.java +++ b/modules/extension/src/test/java/org/springside/modules/memcached/SpyMemcachedClientTest.java @@ -44,8 +44,7 @@ public void normal() { // bulk Map bulkResult = client.getBulk(Lists.newArrayList(key, key2)); - assertThat(bulkResult).hasSize(2); - assertThat(bulkResult).contains(entry(key, value), entry(key2, value2)); + assertThat(bulkResult).containsOnly(entry(key, value), entry(key2, value2)); // delete client.delete(key); diff --git a/modules/extension/src/test/java/org/springside/modules/test/mail/MailServerSimulatorTest.java b/modules/extension/src/test/java/org/springside/modules/test/mail/MailServerSimulatorTest.java index c43fe743b..4d15aa14d 100644 --- a/modules/extension/src/test/java/org/springside/modules/test/mail/MailServerSimulatorTest.java +++ b/modules/extension/src/test/java/org/springside/modules/test/mail/MailServerSimulatorTest.java @@ -1,6 +1,6 @@ package org.springside.modules.test.mail; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -17,6 +17,6 @@ public class MailServerSimulatorTest extends SpringContextTestCase { @Test public void greenMail() { - assertEquals(3025, greenMail.getSmtp().getPort()); + assertThat(greenMail.getSmtp().getPort()).isEqualTo(3025); } } From 9ad845d4e8d83f9a3d9b4be0d9b4d1c311910926 Mon Sep 17 00:00:00 2001 From: Calvin Date: Sat, 18 Jan 2014 01:08:52 +0800 Subject: [PATCH 033/356] fix copy-right --- .../examples/quickstart/entity/IdEntity.java | 5 +++++ .../examples/quickstart/entity/Task.java | 5 +++++ .../examples/quickstart/entity/User.java | 5 +++++ .../quickstart/repository/TaskDao.java | 5 +++++ .../quickstart/repository/UserDao.java | 5 +++++ .../quickstart/rest/RestException.java | 5 +++++ .../quickstart/rest/RestExceptionHandler.java | 5 +++++ .../quickstart/rest/TaskRestController.java | 5 +++++ .../quickstart/service/ServiceException.java | 5 +++++ .../service/account/AccountService.java | 5 +++++ .../service/account/ShiroDbRealm.java | 21 ++++--------------- .../quickstart/service/task/TaskService.java | 5 +++++ .../web/account/LoginController.java | 5 +++++ .../web/account/ProfileController.java | 5 +++++ .../web/account/RegisterController.java | 5 +++++ .../web/account/UserAdminController.java | 5 +++++ .../quickstart/web/api/ApiListController.java | 5 +++++ .../quickstart/web/task/TaskController.java | 5 +++++ .../functional/BaseFunctionalTestCase.java | 5 +++++ .../functional/BaseSeleniumTestCase.java | 5 +++++ .../quickstart/functional/gui/ProfileFT.java | 5 +++++ .../quickstart/functional/gui/RegisterFT.java | 5 +++++ .../quickstart/functional/gui/SecurityFT.java | 5 +++++ .../quickstart/functional/gui/TaskGuiFT.java | 5 +++++ .../functional/gui/UserAdminFT.java | 5 +++++ .../functional/rest/TaskRestFT.java | 5 +++++ .../examples/quickstart/QuickStartServer.java | 5 +++++ .../examples/quickstart/data/TaskData.java | 5 +++++ .../examples/quickstart/data/UserData.java | 5 +++++ .../quickstart/repository/JpaMappingTest.java | 5 +++++ .../quickstart/repository/TaskDaoTest.java | 5 +++++ .../service/account/AccountServiceTest.java | 5 +++++ .../springside/examples/showcase/Main.java | 5 +++++ .../demos/cache/ehcache/EhcacheDemo.java | 5 +++++ .../demos/cache/guava/GuavaCacheDemo.java | 5 +++++ .../demos/cache/memcached/MemcachedDemo.java | 5 +++++ .../cache/memcached/MemcachedObjectType.java | 5 +++++ .../DependencyResourceController.java | 5 +++++ .../demos/hystrix/service/GetUserCommand.java | 5 +++++ .../demos/hystrix/service/UserService.java | 5 +++++ .../hystrix/web/HystrixDemoController.java | 5 +++++ .../hystrix/web/HystrixExceptionHandler.java | 5 +++++ .../AdvancedNotifyMessageListener.java | 5 +++++ .../AdvancedNotifyMessageProducer.java | 5 +++++ .../jms/simple/NotifyMessageListener.java | 5 +++++ .../jms/simple/NotifyMessageProducer.java | 5 +++++ .../demos/jmx/ApplicationStatistics.java | 5 +++++ .../demos/metrics/MetricsManager.java | 5 +++++ .../demos/redis/JedisPoolFactory.java | 5 +++++ .../demos/redis/RedisCounterBenchmark.java | 5 +++++ .../demos/redis/RedisSessionBenchmark.java | 5 +++++ .../showcase/demos/redis/Session.java | 5 +++++ .../redis/elector/MasterElectorDemo.java | 5 +++++ .../AdvancedJobConsumerBatchPopDemo.java | 5 +++++ .../AdvancedJobConsumerSinglePopDemo.java | 5 +++++ .../job/consumer/SimpleJobConsumerDemo.java | 5 +++++ .../dispatcher/ReliableJobDispatcherDemo.java | 5 +++++ .../dispatcher/SimpleJobDispatcherDemo.java | 5 +++++ .../redis/job/producer/JobProducerDemo.java | 5 +++++ .../showcase/demos/schedule/JdkTimerJob.java | 5 +++++ .../demos/schedule/QuartzClusterableJob.java | 5 +++++ .../demos/schedule/SpringCronJob.java | 5 +++++ .../demos/schedule/UserCountScanner.java | 5 +++++ .../utilities/collection/AdvancedMapDemo.java | 5 +++++ .../utilities/collection/CollectionsDemo.java | 5 +++++ .../demos/utilities/dozer/DozerDemo.java | 5 +++++ .../utilities/email/MimeMailService.java | 5 +++++ .../utilities/email/SimpleMailService.java | 5 +++++ .../showcase/demos/utilities/io/IODemo.java | 5 +++++ .../demos/utilities/json/JsonDemo.java | 5 +++++ .../demos/utilities/string/StringDemo.java | 5 +++++ .../demos/utilities/time/JodaDemo.java | 5 +++++ .../utilities/validate/ValidateDemo.java | 5 +++++ .../demos/utilities/xml/HouseMapAdapter.java | 5 +++++ .../demos/utilities/xml/JaxbDemo.java | 5 +++++ .../showcase/demos/utilities/xml/Role.java | 5 +++++ .../showcase/demos/utilities/xml/User.java | 5 +++++ .../demos/web/CacheControlHeaderFilter.java | 5 +++++ .../demos/web/MashupServerController.java | 5 +++++ .../demos/web/RemoteContentServlet.java | 5 +++++ .../demos/web/StaticContentServlet.java | 5 +++++ .../examples/showcase/entity/IdEntity.java | 5 +++++ .../examples/showcase/entity/Role.java | 5 +++++ .../examples/showcase/entity/Team.java | 5 +++++ .../examples/showcase/entity/User.java | 5 +++++ .../showcase/repository/jpa/RoleDao.java | 5 +++++ .../showcase/repository/jpa/UserDao.java | 5 +++++ .../repository/mybatis/MyBatisRepository.java | 5 +++++ .../repository/mybatis/TeamMybatisDao.java | 5 +++++ .../repository/mybatis/UserMybatisDao.java | 5 +++++ .../service/AccountEffectiveService.java | 5 +++++ .../showcase/service/AccountService.java | 5 +++++ .../showcase/service/BusinessLogger.java | 5 +++++ .../showcase/service/ServiceException.java | 5 +++++ .../showcase/service/ShiroDbRealm.java | 21 ++++--------------- .../showcase/web/LoginController.java | 5 +++++ .../showcase/web/StoryController.java | 5 +++++ .../examples/showcase/web/UserController.java | 5 +++++ .../webservice/jaxrs/AccountJaxRsService.java | 5 +++++ .../webservice/rest/RestException.java | 5 +++++ .../webservice/rest/RestExceptionHandler.java | 5 +++++ .../showcase/webservice/rest/UserDTO.java | 5 +++++ .../webservice/rest/UserRestController.java | 5 +++++ .../webservice/soap/AccountSoapService.java | 5 +++++ .../soap/AccountSoapServiceImpl.java | 5 +++++ .../showcase/webservice/soap/WsConstants.java | 5 +++++ .../soap/response/GetTeamDetailResult.java | 5 +++++ .../soap/response/GetUserResult.java | 5 +++++ .../soap/response/SearchUserResult.java | 5 +++++ .../soap/response/base/IdResult.java | 5 +++++ .../soap/response/base/WSResult.java | 5 +++++ .../webservice/soap/response/dto/TeamDTO.java | 5 +++++ .../webservice/soap/response/dto/UserDTO.java | 5 +++++ .../functional/BaseFunctionalTestCase.java | 5 +++++ .../functional/BaseSeleniumTestCase.java | 5 +++++ .../functional/account/UserManagerFT.java | 5 +++++ .../showcase/functional/ajax/AjaxFT.java | 5 +++++ .../showcase/functional/rest/UserJaxRsFT.java | 5 +++++ .../showcase/functional/rest/UserRestFT.java | 5 +++++ ...ntWebServiceWithDynamicCreateClientFT.java | 5 +++++ ...ccountWebServiceWithPredefineClientFT.java | 5 +++++ .../examples/showcase/ShowcaseServer.java | 5 +++++ .../examples/showcase/data/UserData.java | 5 +++++ .../showcase/demos/jms/JmsAdvancedTest.java | 5 +++++ .../showcase/demos/jms/JmsSimpleTest.java | 5 +++++ .../showcase/demos/mail/MailServiceTest.java | 5 +++++ .../demos/schedule/JdkTimerJobTest.java | 5 +++++ .../schedule/QuartzTimerClusterJobTest.java | 5 +++++ .../demos/schedule/SpringTimerJobTest.java | 5 +++++ .../web/CacheControlHeaderFilterTest.java | 5 +++++ .../jpa/DynamicSpecificationTest.java | 5 +++++ .../repository/jpa/JpaMappingTest.java | 5 +++++ .../mybatis/TeamMybatisDaoTest.java | 5 +++++ .../mybatis/UserMybatisDaoTest.java | 5 +++++ .../showcase/service/AccountServiceTest.java | 5 +++++ .../modules/beanvalidator/BeanValidators.java | 6 +++--- .../springside/modules/mapper/BeanMapper.java | 6 +++--- .../springside/modules/mapper/JaxbMapper.java | 6 +++--- .../springside/modules/mapper/JsonMapper.java | 6 +++--- .../persistence/DynamicSpecifications.java | 5 +++++ .../modules/persistence/Hibernates.java | 5 +++++ .../modules/persistence/SearchFilter.java | 5 +++++ .../security/shiro/HasAnyPermissionsTag.java | 5 +++++ .../modules/security/utils/Cryptos.java | 6 +++--- .../modules/security/utils/Digests.java | 6 +++--- .../org/springside/modules/utils/Clock.java | 5 +++++ .../modules/utils/Collections3.java | 6 +++--- .../org/springside/modules/utils/Encodes.java | 6 +++--- .../springside/modules/utils/Exceptions.java | 6 +++--- .../springside/modules/utils/Identities.java | 6 +++--- .../modules/utils/PropertiesLoader.java | 8 +++---- .../springside/modules/utils/Reflections.java | 6 +++--- .../springside/modules/utils/StopWatch.java | 5 +++++ .../org/springside/modules/utils/Threads.java | 6 +++--- .../springside/modules/web/MediaTypes.java | 5 +++++ .../org/springside/modules/web/Servlets.java | 6 +++--- .../BSAbstractMultiCheckedElementTag.java | 5 +++++ .../modules/web/taglib/BSCheckboxesTag.java | 5 +++++ .../modules/web/taglib/BSRadioButtonsTag.java | 5 +++++ .../beanvalidator/BeanValidatorsTest.java | 5 +++++ .../modules/mapper/JaxbMapperTest.java | 5 +++++ .../modules/mapper/JsonMapperTest.java | 5 +++++ .../modules/persistence/HibernatesTest.java | 5 +++++ .../modules/persistence/SearchFilterTest.java | 5 +++++ .../modules/security/utils/CryptosTest.java | 5 +++++ .../modules/security/utils/DigestsTest.java | 5 +++++ .../modules/test/category/Smoke.java | 5 +++++ .../modules/test/category/UnStable.java | 5 +++++ .../modules/test/data/DataFixtures.java | 5 +++++ .../modules/test/data/RandomData.java | 6 +++--- .../modules/test/jetty/JettyFactory.java | 6 +++--- .../modules/test/jetty/JettyFactoryTest.java | 5 +++++ .../modules/test/log/LogbackListAppender.java | 6 +++--- .../test/log/LogbackListAppenderTest.java | 5 +++++ .../test/security/shiro/ShiroTestUtils.java | 6 +++--- .../security/shiro/ShiroTestUtilsTest.java | 5 +++++ .../modules/test/selenium/Selenium2.java | 6 +++--- .../test/selenium/SeleniumSnapshotRule.java | 5 +++++ .../test/selenium/WebDriverFactory.java | 6 +++--- .../test/selenium/WebDriverFactoryTest.java | 5 +++++ .../modules/test/spring/Profiles.java | 5 +++++ .../test/spring/SpringContextTestCase.java | 6 +++--- .../spring/SpringTransactionalTestCase.java | 6 +++--- .../modules/utils/Collecitons3Test.java | 5 +++++ .../springside/modules/utils/EncodesTest.java | 5 +++++ .../modules/utils/ExceptionsTest.java | 5 +++++ .../modules/utils/IdentitiesTest.java | 5 +++++ .../modules/utils/PropertiesLoaderTest.java | 5 +++++ .../modules/utils/ReflectionsTest.java | 5 +++++ .../springside/modules/utils/ThreadsTest.java | 5 +++++ .../springside/modules/web/ServletsTest.java | 5 +++++ .../cache/memcached/SpyMemcachedClient.java | 6 +++--- .../nosql/redis/JedisScriptExecutor.java | 5 +++++ .../modules/nosql/redis/JedisTemplate.java | 5 +++++ .../modules/nosql/redis/JedisUtils.java | 5 +++++ .../nosql/redis/elector/MasterElector.java | 12 ++++------- .../redis/scheduler/AdvancedConsumer.java | 12 ++++------- .../nosql/redis/scheduler/JobDispatcher.java | 5 +++++ .../nosql/redis/scheduler/JobProducer.java | 12 ++++------- .../nosql/redis/scheduler/JobStatistics.java | 5 +++++ .../modules/nosql/redis/scheduler/Keys.java | 5 +++++ .../redis/scheduler/SimpleJobConsumer.java | 12 ++++------- .../springside/modules/tools/FreeMarkers.java | 5 +++++ .../memcached/SpyMemcachedClientTest.java | 5 +++++ .../nosql/redis/JedisTemplateTest.java | 5 +++++ .../modules/test/benchmark/BenchmarkTask.java | 5 +++++ .../test/benchmark/ConcurrentBenchmark.java | 5 +++++ .../cache/memcached/MemcachedSimulator.java | 6 +++--- .../test/mail/MailServerSimulator.java | 5 +++++ .../test/mail/MailServerSimulatorTest.java | 5 +++++ .../modules/tools/FreemarkersTest.java | 5 +++++ .../springside/modules/metrics/Counter.java | 5 +++++ .../modules/metrics/CounterMetric.java | 5 +++++ .../springside/modules/metrics/Execution.java | 5 +++++ .../modules/metrics/ExecutionMetric.java | 5 +++++ .../springside/modules/metrics/Histogram.java | 5 +++++ .../modules/metrics/HistogramMetric.java | 5 +++++ .../modules/metrics/MetricRegistry.java | 5 +++++ .../metrics/report/ConsoleReporter.java | 5 +++++ .../metrics/report/GraphiteReporter.java | 5 +++++ .../metrics/report/ReportScheduler.java | 5 +++++ .../modules/metrics/report/Reporter.java | 5 +++++ .../modules/metrics/report/Slf4jReporter.java | 5 +++++ .../modules/metrics/utils/Clock.java | 5 +++++ .../modules/metrics/CounterTest.java | 5 +++++ .../modules/metrics/ExecutionTest.java | 5 +++++ .../modules/metrics/HistogramTest.java | 5 +++++ .../modules/metrics/MetricRegistryTest.java | 5 +++++ .../modules/metrics/ReporterTest.java | 5 +++++ 229 files changed, 1091 insertions(+), 140 deletions(-) diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/entity/IdEntity.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/entity/IdEntity.java index 116b4f404..98c61bf1d 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/entity/IdEntity.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/entity/IdEntity.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.entity; import javax.persistence.GeneratedValue; diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/entity/Task.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/entity/Task.java index e81bd8479..e6694c7e5 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/entity/Task.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/entity/Task.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.entity; import javax.persistence.Entity; diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/entity/User.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/entity/User.java index ef367bac3..48b429ba6 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/entity/User.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/entity/User.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.entity; import java.util.Date; diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/repository/TaskDao.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/repository/TaskDao.java index e1569c901..53c5d8499 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/repository/TaskDao.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/repository/TaskDao.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.repository; import org.springframework.data.domain.Page; diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/repository/UserDao.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/repository/UserDao.java index 02f690a83..ae6905d4d 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/repository/UserDao.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/repository/UserDao.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.repository; import org.springframework.data.repository.PagingAndSortingRepository; diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/rest/RestException.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/rest/RestException.java index 906cbbdb3..370c719b8 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/rest/RestException.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/rest/RestException.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.rest; import org.springframework.http.HttpStatus; diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/rest/RestExceptionHandler.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/rest/RestExceptionHandler.java index d7f00bf37..e84e23617 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/rest/RestExceptionHandler.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/rest/RestExceptionHandler.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.rest; import java.util.Map; diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/rest/TaskRestController.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/rest/TaskRestController.java index 9ad8a32e9..99fbfb4a3 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/rest/TaskRestController.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/rest/TaskRestController.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.rest; import java.net.URI; diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/service/ServiceException.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/service/ServiceException.java index f852b73bc..2b6cc4396 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/service/ServiceException.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/service/ServiceException.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.service; /** diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/service/account/AccountService.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/service/account/AccountService.java index 6d1df0123..5b106e6c2 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/service/account/AccountService.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/service/account/AccountService.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.service.account; import java.util.List; diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/service/account/ShiroDbRealm.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/service/account/ShiroDbRealm.java index f07cebe60..871f6695e 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/service/account/ShiroDbRealm.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/service/account/ShiroDbRealm.java @@ -1,21 +1,8 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.service.account; import java.io.Serializable; diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/service/task/TaskService.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/service/task/TaskService.java index 56fa7ba24..f97f7d190 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/service/task/TaskService.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/service/task/TaskService.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.service.task; import java.util.List; diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/LoginController.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/LoginController.java index a2d219ae9..51aca1791 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/LoginController.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/LoginController.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.web.account; import org.apache.shiro.web.filter.authc.FormAuthenticationFilter; diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/ProfileController.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/ProfileController.java index 98c737d6e..cb60847f3 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/ProfileController.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/ProfileController.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.web.account; import javax.validation.Valid; diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/RegisterController.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/RegisterController.java index 8351a6a20..37bb7857e 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/RegisterController.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/RegisterController.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.web.account; import javax.validation.Valid; diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/UserAdminController.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/UserAdminController.java index dc883e62f..963da199d 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/UserAdminController.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/UserAdminController.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.web.account; import java.util.List; diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/api/ApiListController.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/api/ApiListController.java index ba85aad87..5374e125f 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/api/ApiListController.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/api/ApiListController.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.web.api; import org.springframework.stereotype.Controller; diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/task/TaskController.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/task/TaskController.java index 4630de57a..b5afef146 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/task/TaskController.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/task/TaskController.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.web.task; import java.util.Map; diff --git a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/BaseFunctionalTestCase.java b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/BaseFunctionalTestCase.java index 36d044fd5..eef7a31d6 100644 --- a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/BaseFunctionalTestCase.java +++ b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/BaseFunctionalTestCase.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.functional; import java.net.URL; diff --git a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/BaseSeleniumTestCase.java b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/BaseSeleniumTestCase.java index 25294d44d..d4b331d56 100644 --- a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/BaseSeleniumTestCase.java +++ b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/BaseSeleniumTestCase.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.functional; import org.junit.BeforeClass; diff --git a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/ProfileFT.java b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/ProfileFT.java index 3cca29088..80f09541c 100644 --- a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/ProfileFT.java +++ b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/ProfileFT.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.functional.gui; import static org.assertj.core.api.Assertions.*; diff --git a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/RegisterFT.java b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/RegisterFT.java index 9961fb44e..3a215499d 100644 --- a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/RegisterFT.java +++ b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/RegisterFT.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.functional.gui; import static org.assertj.core.api.Assertions.*; diff --git a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/SecurityFT.java b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/SecurityFT.java index 52a579611..7e2b593ae 100644 --- a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/SecurityFT.java +++ b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/SecurityFT.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.functional.gui; import static org.assertj.core.api.Assertions.*; diff --git a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/TaskGuiFT.java b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/TaskGuiFT.java index 6b3037cad..57451cc6e 100644 --- a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/TaskGuiFT.java +++ b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/TaskGuiFT.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.functional.gui; import static org.assertj.core.api.Assertions.*; diff --git a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/UserAdminFT.java b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/UserAdminFT.java index d79337ee2..942b58c1a 100644 --- a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/UserAdminFT.java +++ b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/gui/UserAdminFT.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.functional.gui; import static org.assertj.core.api.Assertions.*; diff --git a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/rest/TaskRestFT.java b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/rest/TaskRestFT.java index 7e7363b6d..effc0d17d 100644 --- a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/rest/TaskRestFT.java +++ b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/rest/TaskRestFT.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.functional.rest; import static org.assertj.core.api.Assertions.*; diff --git a/examples/quickstart/src/test/java/org/springside/examples/quickstart/QuickStartServer.java b/examples/quickstart/src/test/java/org/springside/examples/quickstart/QuickStartServer.java index 1c90d05a2..f78778387 100644 --- a/examples/quickstart/src/test/java/org/springside/examples/quickstart/QuickStartServer.java +++ b/examples/quickstart/src/test/java/org/springside/examples/quickstart/QuickStartServer.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart; import org.eclipse.jetty.server.Server; diff --git a/examples/quickstart/src/test/java/org/springside/examples/quickstart/data/TaskData.java b/examples/quickstart/src/test/java/org/springside/examples/quickstart/data/TaskData.java index ba9798baa..b02f339bf 100644 --- a/examples/quickstart/src/test/java/org/springside/examples/quickstart/data/TaskData.java +++ b/examples/quickstart/src/test/java/org/springside/examples/quickstart/data/TaskData.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.data; import org.springside.examples.quickstart.entity.Task; diff --git a/examples/quickstart/src/test/java/org/springside/examples/quickstart/data/UserData.java b/examples/quickstart/src/test/java/org/springside/examples/quickstart/data/UserData.java index 7abcc5c48..922c38e9f 100644 --- a/examples/quickstart/src/test/java/org/springside/examples/quickstart/data/UserData.java +++ b/examples/quickstart/src/test/java/org/springside/examples/quickstart/data/UserData.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.data; import org.springside.examples.quickstart.entity.User; diff --git a/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/JpaMappingTest.java b/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/JpaMappingTest.java index d83f5a233..dfbb3a250 100644 --- a/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/JpaMappingTest.java +++ b/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/JpaMappingTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.repository; import static org.assertj.core.api.Assertions.*; diff --git a/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/TaskDaoTest.java b/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/TaskDaoTest.java index 41fc145f6..23f7661c6 100644 --- a/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/TaskDaoTest.java +++ b/examples/quickstart/src/test/java/org/springside/examples/quickstart/repository/TaskDaoTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.repository; import static org.assertj.core.api.Assertions.*; diff --git a/examples/quickstart/src/test/java/org/springside/examples/quickstart/service/account/AccountServiceTest.java b/examples/quickstart/src/test/java/org/springside/examples/quickstart/service/account/AccountServiceTest.java index f2bd7cf96..151627b3f 100644 --- a/examples/quickstart/src/test/java/org/springside/examples/quickstart/service/account/AccountServiceTest.java +++ b/examples/quickstart/src/test/java/org/springside/examples/quickstart/service/account/AccountServiceTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.quickstart.service.account; import static org.assertj.core.api.Assertions.*; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/Main.java b/examples/showcase/src/main/java/org/springside/examples/showcase/Main.java index 3fdf2c43a..43fd3452c 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/Main.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/Main.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase; import java.io.File; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/ehcache/EhcacheDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/ehcache/EhcacheDemo.java index 59be088bc..81a89418a 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/ehcache/EhcacheDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/ehcache/EhcacheDemo.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.cache.ehcache; import static org.junit.Assert.*; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/guava/GuavaCacheDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/guava/GuavaCacheDemo.java index df641cf69..a49345940 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/guava/GuavaCacheDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/guava/GuavaCacheDemo.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.cache.guava; import static org.junit.Assert.*; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/memcached/MemcachedDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/memcached/MemcachedDemo.java index 9e4483cc2..20f14ce9c 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/memcached/MemcachedDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/memcached/MemcachedDemo.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.cache.memcached; import static org.junit.Assert.*; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/memcached/MemcachedObjectType.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/memcached/MemcachedObjectType.java index 0bec2c293..cd23c4036 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/memcached/MemcachedObjectType.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/memcached/MemcachedObjectType.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.cache.memcached; /** diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/dependency/DependencyResourceController.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/dependency/DependencyResourceController.java index 80f6fceff..8b130a046 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/dependency/DependencyResourceController.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/dependency/DependencyResourceController.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.hystrix.dependency; import org.springframework.beans.factory.annotation.Autowired; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/service/GetUserCommand.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/service/GetUserCommand.java index 4fafbb982..cd1455156 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/service/GetUserCommand.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/service/GetUserCommand.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.hystrix.service; import org.slf4j.Logger; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/service/UserService.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/service/UserService.java index c3b43cb17..be3cd1bfd 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/service/UserService.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/service/UserService.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.hystrix.service; import java.util.HashMap; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/web/HystrixDemoController.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/web/HystrixDemoController.java index afddb8cdd..21b29fe34 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/web/HystrixDemoController.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/web/HystrixDemoController.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.hystrix.web; import java.util.Map; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/web/HystrixExceptionHandler.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/web/HystrixExceptionHandler.java index 26c8c2fd5..4d52d37df 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/web/HystrixExceptionHandler.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/web/HystrixExceptionHandler.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.hystrix.web; import org.springframework.http.HttpHeaders; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jms/advanced/AdvancedNotifyMessageListener.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jms/advanced/AdvancedNotifyMessageListener.java index e20bd16e7..1f152ed63 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jms/advanced/AdvancedNotifyMessageListener.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jms/advanced/AdvancedNotifyMessageListener.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.jms.advanced; import javax.jms.MapMessage; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jms/advanced/AdvancedNotifyMessageProducer.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jms/advanced/AdvancedNotifyMessageProducer.java index 8ee0a46cc..fc2153c01 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jms/advanced/AdvancedNotifyMessageProducer.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jms/advanced/AdvancedNotifyMessageProducer.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.jms.advanced; import javax.jms.Destination; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jms/simple/NotifyMessageListener.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jms/simple/NotifyMessageListener.java index 0b2f1c11c..607259382 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jms/simple/NotifyMessageListener.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jms/simple/NotifyMessageListener.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.jms.simple; import javax.jms.MapMessage; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jms/simple/NotifyMessageProducer.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jms/simple/NotifyMessageProducer.java index ac6172d0c..c7ef6314f 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jms/simple/NotifyMessageProducer.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jms/simple/NotifyMessageProducer.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.jms.simple; import java.util.HashMap; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jmx/ApplicationStatistics.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jmx/ApplicationStatistics.java index 8aa76337b..78ccbab05 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jmx/ApplicationStatistics.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/jmx/ApplicationStatistics.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.jmx; import java.util.concurrent.atomic.AtomicInteger; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/metrics/MetricsManager.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/metrics/MetricsManager.java index 72f984db7..9a3f21c5a 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/metrics/MetricsManager.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/metrics/MetricsManager.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.metrics; import java.net.InetSocketAddress; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/JedisPoolFactory.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/JedisPoolFactory.java index e5f935d74..52d84ee78 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/JedisPoolFactory.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/JedisPoolFactory.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.redis; import org.springside.modules.nosql.redis.JedisUtils; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/RedisCounterBenchmark.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/RedisCounterBenchmark.java index be124dbec..82082dd83 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/RedisCounterBenchmark.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/RedisCounterBenchmark.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.redis; import org.springside.modules.nosql.redis.JedisTemplate; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/RedisSessionBenchmark.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/RedisSessionBenchmark.java index e6e796d6e..cd5689587 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/RedisSessionBenchmark.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/RedisSessionBenchmark.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.redis; import java.security.SecureRandom; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/Session.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/Session.java index bfa27bb9c..56af661d7 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/Session.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/Session.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.redis; import java.util.Map; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/elector/MasterElectorDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/elector/MasterElectorDemo.java index 9dc2ecf42..4b19e49ee 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/elector/MasterElectorDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/elector/MasterElectorDemo.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.redis.elector; import org.springside.examples.showcase.demos.redis.JedisPoolFactory; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/AdvancedJobConsumerBatchPopDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/AdvancedJobConsumerBatchPopDemo.java index 3b40f5c42..a3f596af7 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/AdvancedJobConsumerBatchPopDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/AdvancedJobConsumerBatchPopDemo.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.redis.job.consumer; import java.util.List; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/AdvancedJobConsumerSinglePopDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/AdvancedJobConsumerSinglePopDemo.java index 5b3533e20..233e402b5 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/AdvancedJobConsumerSinglePopDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/AdvancedJobConsumerSinglePopDemo.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.redis.job.consumer; import java.util.concurrent.ExecutorService; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/SimpleJobConsumerDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/SimpleJobConsumerDemo.java index 4568cd1ad..3daec4a81 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/SimpleJobConsumerDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/SimpleJobConsumerDemo.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.redis.job.consumer; import java.util.concurrent.ExecutorService; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/dispatcher/ReliableJobDispatcherDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/dispatcher/ReliableJobDispatcherDemo.java index 38b5bdc4e..e9e2d12d3 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/dispatcher/ReliableJobDispatcherDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/dispatcher/ReliableJobDispatcherDemo.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.redis.job.dispatcher; import java.util.concurrent.Executors; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/dispatcher/SimpleJobDispatcherDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/dispatcher/SimpleJobDispatcherDemo.java index 4c2ddb751..820315dfa 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/dispatcher/SimpleJobDispatcherDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/dispatcher/SimpleJobDispatcherDemo.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.redis.job.dispatcher; import java.util.concurrent.Executors; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/producer/JobProducerDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/producer/JobProducerDemo.java index c7b2053df..4dda22321 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/producer/JobProducerDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/producer/JobProducerDemo.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.redis.job.producer; import java.util.concurrent.TimeUnit; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/JdkTimerJob.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/JdkTimerJob.java index 2f0deb37b..b69cadd9f 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/JdkTimerJob.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/JdkTimerJob.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.schedule; import java.util.concurrent.Executors; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/QuartzClusterableJob.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/QuartzClusterableJob.java index fd3f3b15f..5937af03f 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/QuartzClusterableJob.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/QuartzClusterableJob.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.schedule; import java.util.Map; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/SpringCronJob.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/SpringCronJob.java index ac4c8227d..51f2fde9b 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/SpringCronJob.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/SpringCronJob.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.schedule; import java.util.concurrent.ScheduledExecutorService; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/UserCountScanner.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/UserCountScanner.java index b336a2627..45b9bf678 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/UserCountScanner.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/schedule/UserCountScanner.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.schedule; import org.slf4j.Logger; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/AdvancedMapDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/AdvancedMapDemo.java index 6a153a5a2..05269c2c3 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/AdvancedMapDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/AdvancedMapDemo.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.collection; import static org.junit.Assert.*; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/CollectionsDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/CollectionsDemo.java index f867aa3ae..3ce023924 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/CollectionsDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/CollectionsDemo.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.collection; import static org.junit.Assert.*; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/dozer/DozerDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/dozer/DozerDemo.java index 2ca6e5d52..181f13cab 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/dozer/DozerDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/dozer/DozerDemo.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.dozer; import static org.junit.Assert.*; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/email/MimeMailService.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/email/MimeMailService.java index 4029a9156..886206248 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/email/MimeMailService.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/email/MimeMailService.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.email; import java.io.File; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/email/SimpleMailService.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/email/SimpleMailService.java index c00f23183..a07d159dd 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/email/SimpleMailService.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/email/SimpleMailService.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.email; import java.util.Date; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/io/IODemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/io/IODemo.java index 3e9db96d2..9d0cd74e1 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/io/IODemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/io/IODemo.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.io; import java.io.File; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/json/JsonDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/json/JsonDemo.java index 4de6af02e..4fe9ff455 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/json/JsonDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/json/JsonDemo.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.json; import static org.junit.Assert.*; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/StringDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/StringDemo.java index 4f79b407e..da917ca4b 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/StringDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/StringDemo.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.string; import static org.junit.Assert.*; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/time/JodaDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/time/JodaDemo.java index 582316578..da22d9f86 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/time/JodaDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/time/JodaDemo.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.time; import static org.junit.Assert.*; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/validate/ValidateDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/validate/ValidateDemo.java index f0a2381bc..f9d9e1a3f 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/validate/ValidateDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/validate/ValidateDemo.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.validate; import static org.junit.Assert.*; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/HouseMapAdapter.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/HouseMapAdapter.java index a91048a00..e5fc05990 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/HouseMapAdapter.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/HouseMapAdapter.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.xml; import java.util.ArrayList; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/JaxbDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/JaxbDemo.java index b5c7e1f79..374041d5a 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/JaxbDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/JaxbDemo.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.xml; import static org.junit.Assert.*; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/Role.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/Role.java index 9209ae2fa..86bb73c7a 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/Role.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/Role.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.xml; import javax.xml.bind.annotation.XmlAttribute; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/User.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/User.java index 9c5b9a995..00d2a2871 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/User.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/User.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.xml; import java.util.List; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/CacheControlHeaderFilter.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/CacheControlHeaderFilter.java index 947638d65..857fb8c77 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/CacheControlHeaderFilter.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/CacheControlHeaderFilter.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.web; import java.io.IOException; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/MashupServerController.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/MashupServerController.java index 7cee68049..c0ccf7789 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/MashupServerController.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/MashupServerController.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.web; import java.util.Collections; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/RemoteContentServlet.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/RemoteContentServlet.java index 05aca874a..33f633550 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/RemoteContentServlet.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/RemoteContentServlet.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.web; import java.io.FileNotFoundException; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/StaticContentServlet.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/StaticContentServlet.java index c97a33d87..911b54e55 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/StaticContentServlet.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/StaticContentServlet.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.web; import java.io.File; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/entity/IdEntity.java b/examples/showcase/src/main/java/org/springside/examples/showcase/entity/IdEntity.java index 68551cd85..08420d093 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/entity/IdEntity.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/entity/IdEntity.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.entity; import javax.persistence.GeneratedValue; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/entity/Role.java b/examples/showcase/src/main/java/org/springside/examples/showcase/entity/Role.java index 1ef15ef66..abc4576e1 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/entity/Role.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/entity/Role.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.entity; import java.util.List; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/entity/Team.java b/examples/showcase/src/main/java/org/springside/examples/showcase/entity/Team.java index 63b896f9a..61af68e1e 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/entity/Team.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/entity/Team.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.entity; import java.util.List; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/entity/User.java b/examples/showcase/src/main/java/org/springside/examples/showcase/entity/User.java index 0913f7e7d..51743eebf 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/entity/User.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/entity/User.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.entity; import java.util.List; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/repository/jpa/RoleDao.java b/examples/showcase/src/main/java/org/springside/examples/showcase/repository/jpa/RoleDao.java index 83905f6d4..39defd6f8 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/repository/jpa/RoleDao.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/repository/jpa/RoleDao.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.repository.jpa; import org.springframework.data.repository.PagingAndSortingRepository; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/repository/jpa/UserDao.java b/examples/showcase/src/main/java/org/springside/examples/showcase/repository/jpa/UserDao.java index c392f39cd..a0928e5f7 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/repository/jpa/UserDao.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/repository/jpa/UserDao.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.repository.jpa; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/repository/mybatis/MyBatisRepository.java b/examples/showcase/src/main/java/org/springside/examples/showcase/repository/mybatis/MyBatisRepository.java index a9cb99877..2811b3b64 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/repository/mybatis/MyBatisRepository.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/repository/mybatis/MyBatisRepository.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.repository.mybatis; import java.lang.annotation.Documented; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/repository/mybatis/TeamMybatisDao.java b/examples/showcase/src/main/java/org/springside/examples/showcase/repository/mybatis/TeamMybatisDao.java index 4d049e470..f0fdd583d 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/repository/mybatis/TeamMybatisDao.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/repository/mybatis/TeamMybatisDao.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.repository.mybatis; import org.springside.examples.showcase.entity.Team; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/repository/mybatis/UserMybatisDao.java b/examples/showcase/src/main/java/org/springside/examples/showcase/repository/mybatis/UserMybatisDao.java index 20345db47..07fc0f578 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/repository/mybatis/UserMybatisDao.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/repository/mybatis/UserMybatisDao.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.repository.mybatis; import java.util.List; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/service/AccountEffectiveService.java b/examples/showcase/src/main/java/org/springside/examples/showcase/service/AccountEffectiveService.java index 6caf70501..ad287d9d2 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/service/AccountEffectiveService.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/service/AccountEffectiveService.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.service; import java.util.List; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/service/AccountService.java b/examples/showcase/src/main/java/org/springside/examples/showcase/service/AccountService.java index 4f9136b1f..6955a4a90 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/service/AccountService.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/service/AccountService.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.service; import java.util.List; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/service/BusinessLogger.java b/examples/showcase/src/main/java/org/springside/examples/showcase/service/BusinessLogger.java index a68a06e4a..b0098c1de 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/service/BusinessLogger.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/service/BusinessLogger.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.service; import java.util.Map; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/service/ServiceException.java b/examples/showcase/src/main/java/org/springside/examples/showcase/service/ServiceException.java index 6d17b46ec..b76b212e9 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/service/ServiceException.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/service/ServiceException.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.service; /** diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/service/ShiroDbRealm.java b/examples/showcase/src/main/java/org/springside/examples/showcase/service/ShiroDbRealm.java index 59d3d3541..ebc2edc0f 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/service/ShiroDbRealm.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/service/ShiroDbRealm.java @@ -1,21 +1,8 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.service; import java.io.Serializable; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/web/LoginController.java b/examples/showcase/src/main/java/org/springside/examples/showcase/web/LoginController.java index 23a05b9e6..748438150 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/web/LoginController.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/web/LoginController.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.web; import org.apache.shiro.web.filter.authc.FormAuthenticationFilter; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/web/StoryController.java b/examples/showcase/src/main/java/org/springside/examples/showcase/web/StoryController.java index 6eb8a35c3..96aaaa4c5 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/web/StoryController.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/web/StoryController.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.web; import org.springframework.stereotype.Controller; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/web/UserController.java b/examples/showcase/src/main/java/org/springside/examples/showcase/web/UserController.java index 6714a7e36..0c0a190c3 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/web/UserController.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/web/UserController.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.web; import java.util.List; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/jaxrs/AccountJaxRsService.java b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/jaxrs/AccountJaxRsService.java index 6207b1855..edb7ab2d5 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/jaxrs/AccountJaxRsService.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/jaxrs/AccountJaxRsService.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.webservice.jaxrs; import javax.ws.rs.GET; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/RestException.java b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/RestException.java index e0b9516c6..8b290ce0f 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/RestException.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/RestException.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.webservice.rest; import org.springframework.http.HttpStatus; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/RestExceptionHandler.java b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/RestExceptionHandler.java index d2b854ae9..422437dc3 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/RestExceptionHandler.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/RestExceptionHandler.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.webservice.rest; import java.util.Map; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserDTO.java b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserDTO.java index 829f1d40b..62d0f4b14 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserDTO.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserDTO.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.webservice.rest; import javax.xml.bind.annotation.XmlRootElement; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserRestController.java b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserRestController.java index b7d022b4f..8f9fa916a 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserRestController.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserRestController.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.webservice.rest; import javax.annotation.PostConstruct; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/AccountSoapService.java b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/AccountSoapService.java index bfec07023..7ca293de1 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/AccountSoapService.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/AccountSoapService.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.webservice.soap; import javax.jws.WebParam; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/AccountSoapServiceImpl.java b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/AccountSoapServiceImpl.java index 943c6aba0..18b0f9200 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/AccountSoapServiceImpl.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/AccountSoapServiceImpl.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.webservice.soap; import java.util.List; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/WsConstants.java b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/WsConstants.java index 9d6ebc1ed..f68ca42bd 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/WsConstants.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/WsConstants.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.webservice.soap; /** diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/GetTeamDetailResult.java b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/GetTeamDetailResult.java index ee5a59346..12992208e 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/GetTeamDetailResult.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/GetTeamDetailResult.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.webservice.soap.response; import javax.xml.bind.annotation.XmlType; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/GetUserResult.java b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/GetUserResult.java index f312bf62b..c6cfcf6f5 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/GetUserResult.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/GetUserResult.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.webservice.soap.response; import javax.xml.bind.annotation.XmlType; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/SearchUserResult.java b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/SearchUserResult.java index f84cbe232..d60ba2c5f 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/SearchUserResult.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/SearchUserResult.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.webservice.soap.response; import java.util.List; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/base/IdResult.java b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/base/IdResult.java index 5b3dad85d..d48d3cb05 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/base/IdResult.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/base/IdResult.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.webservice.soap.response.base; import javax.xml.bind.annotation.XmlType; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/base/WSResult.java b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/base/WSResult.java index df81b3cb9..014ffc776 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/base/WSResult.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/base/WSResult.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.webservice.soap.response.base; import javax.xml.bind.annotation.XmlType; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/dto/TeamDTO.java b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/dto/TeamDTO.java index a0b5c4919..8aa8805b8 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/dto/TeamDTO.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/dto/TeamDTO.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.webservice.soap.response.dto; import java.util.List; diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/dto/UserDTO.java b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/dto/UserDTO.java index d1b8c266a..f017d4936 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/dto/UserDTO.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/soap/response/dto/UserDTO.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.webservice.soap.response.dto; import javax.xml.bind.annotation.XmlRootElement; diff --git a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/BaseFunctionalTestCase.java b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/BaseFunctionalTestCase.java index 7347f8061..ed3b0ce02 100644 --- a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/BaseFunctionalTestCase.java +++ b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/BaseFunctionalTestCase.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.functional; import java.net.URL; diff --git a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/BaseSeleniumTestCase.java b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/BaseSeleniumTestCase.java index 9831064b1..bab76a30c 100644 --- a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/BaseSeleniumTestCase.java +++ b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/BaseSeleniumTestCase.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.functional; import org.junit.BeforeClass; diff --git a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/account/UserManagerFT.java b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/account/UserManagerFT.java index 58e1343b3..048d4bc0d 100644 --- a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/account/UserManagerFT.java +++ b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/account/UserManagerFT.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.functional.account; import static org.junit.Assert.*; diff --git a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/ajax/AjaxFT.java b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/ajax/AjaxFT.java index 1eacdf7a1..5269ba31c 100644 --- a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/ajax/AjaxFT.java +++ b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/ajax/AjaxFT.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.functional.ajax; import static org.junit.Assert.*; diff --git a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserJaxRsFT.java b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserJaxRsFT.java index eb1507839..3897ace34 100644 --- a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserJaxRsFT.java +++ b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserJaxRsFT.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.functional.rest; import static org.junit.Assert.*; diff --git a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserRestFT.java b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserRestFT.java index 9657b5705..99070e221 100644 --- a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserRestFT.java +++ b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserRestFT.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.functional.rest; import static org.junit.Assert.*; diff --git a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/soap/AccountWebServiceWithDynamicCreateClientFT.java b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/soap/AccountWebServiceWithDynamicCreateClientFT.java index 39c895dd7..cdb7f9011 100644 --- a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/soap/AccountWebServiceWithDynamicCreateClientFT.java +++ b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/soap/AccountWebServiceWithDynamicCreateClientFT.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.functional.soap; import static org.junit.Assert.*; diff --git a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/soap/AccountWebServiceWithPredefineClientFT.java b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/soap/AccountWebServiceWithPredefineClientFT.java index cee11088d..ff10fc249 100644 --- a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/soap/AccountWebServiceWithPredefineClientFT.java +++ b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/soap/AccountWebServiceWithPredefineClientFT.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.functional.soap; import static org.junit.Assert.*; diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/ShowcaseServer.java b/examples/showcase/src/test/java/org/springside/examples/showcase/ShowcaseServer.java index 8e8c314ac..4b4ec052e 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/ShowcaseServer.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/ShowcaseServer.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase; import org.eclipse.jetty.server.Server; diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/data/UserData.java b/examples/showcase/src/test/java/org/springside/examples/showcase/data/UserData.java index a687aed40..f72389171 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/data/UserData.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/data/UserData.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.data; import org.springside.examples.showcase.entity.Role; diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/jms/JmsAdvancedTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/jms/JmsAdvancedTest.java index 7f2170020..29adc3fcd 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/jms/JmsAdvancedTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/jms/JmsAdvancedTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.jms; import static org.junit.Assert.*; diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/jms/JmsSimpleTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/jms/JmsSimpleTest.java index ca02e6d17..3211b0054 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/jms/JmsSimpleTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/jms/JmsSimpleTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.jms; import static org.junit.Assert.*; diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/mail/MailServiceTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/mail/MailServiceTest.java index 86ee3aa72..98501968b 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/mail/MailServiceTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/mail/MailServiceTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.mail; import static org.junit.Assert.*; diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/JdkTimerJobTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/JdkTimerJobTest.java index a58f259de..91836e54b 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/JdkTimerJobTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/JdkTimerJobTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.schedule; import static org.junit.Assert.*; diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/QuartzTimerClusterJobTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/QuartzTimerClusterJobTest.java index ae9ff557e..6b01ea695 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/QuartzTimerClusterJobTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/QuartzTimerClusterJobTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.schedule; import static org.junit.Assert.*; diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/SpringTimerJobTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/SpringTimerJobTest.java index 7b8a4ad78..131209084 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/SpringTimerJobTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/SpringTimerJobTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.schedule; import static org.junit.Assert.*; diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/web/CacheControlHeaderFilterTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/web/CacheControlHeaderFilterTest.java index f9914f0ce..3447acf72 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/web/CacheControlHeaderFilterTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/web/CacheControlHeaderFilterTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.demos.web; import static org.junit.Assert.*; diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/repository/jpa/DynamicSpecificationTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/repository/jpa/DynamicSpecificationTest.java index 60803aba8..37c9c6477 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/repository/jpa/DynamicSpecificationTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/repository/jpa/DynamicSpecificationTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.repository.jpa; import static org.junit.Assert.*; diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/repository/jpa/JpaMappingTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/repository/jpa/JpaMappingTest.java index 52445b206..bd5462c18 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/repository/jpa/JpaMappingTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/repository/jpa/JpaMappingTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.repository.jpa; import static org.junit.Assert.*; diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/repository/mybatis/TeamMybatisDaoTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/repository/mybatis/TeamMybatisDaoTest.java index 8d9d12aa9..b0fcbf5ae 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/repository/mybatis/TeamMybatisDaoTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/repository/mybatis/TeamMybatisDaoTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.repository.mybatis; import static org.junit.Assert.*; diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/repository/mybatis/UserMybatisDaoTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/repository/mybatis/UserMybatisDaoTest.java index fb9b41eaa..b08bb99cd 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/repository/mybatis/UserMybatisDaoTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/repository/mybatis/UserMybatisDaoTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.repository.mybatis; import static org.junit.Assert.*; diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/service/AccountServiceTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/service/AccountServiceTest.java index 986debb38..768336cc5 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/service/AccountServiceTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/service/AccountServiceTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.examples.showcase.service; import static org.junit.Assert.*; diff --git a/modules/core/src/main/java/org/springside/modules/beanvalidator/BeanValidators.java b/modules/core/src/main/java/org/springside/modules/beanvalidator/BeanValidators.java index 978e7a635..a5e658cd9 100644 --- a/modules/core/src/main/java/org/springside/modules/beanvalidator/BeanValidators.java +++ b/modules/core/src/main/java/org/springside/modules/beanvalidator/BeanValidators.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.beanvalidator; import java.util.List; diff --git a/modules/core/src/main/java/org/springside/modules/mapper/BeanMapper.java b/modules/core/src/main/java/org/springside/modules/mapper/BeanMapper.java index 2b07adade..80c5e8d58 100644 --- a/modules/core/src/main/java/org/springside/modules/mapper/BeanMapper.java +++ b/modules/core/src/main/java/org/springside/modules/mapper/BeanMapper.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.mapper; import java.util.Collection; diff --git a/modules/core/src/main/java/org/springside/modules/mapper/JaxbMapper.java b/modules/core/src/main/java/org/springside/modules/mapper/JaxbMapper.java index 3533467fd..1bbc1e88b 100644 --- a/modules/core/src/main/java/org/springside/modules/mapper/JaxbMapper.java +++ b/modules/core/src/main/java/org/springside/modules/mapper/JaxbMapper.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.mapper; import java.io.StringReader; diff --git a/modules/core/src/main/java/org/springside/modules/mapper/JsonMapper.java b/modules/core/src/main/java/org/springside/modules/mapper/JsonMapper.java index 9a37e1e2d..c5a832471 100644 --- a/modules/core/src/main/java/org/springside/modules/mapper/JsonMapper.java +++ b/modules/core/src/main/java/org/springside/modules/mapper/JsonMapper.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.mapper; import java.io.IOException; diff --git a/modules/core/src/main/java/org/springside/modules/persistence/DynamicSpecifications.java b/modules/core/src/main/java/org/springside/modules/persistence/DynamicSpecifications.java index 2ec528c75..63f0df5e2 100644 --- a/modules/core/src/main/java/org/springside/modules/persistence/DynamicSpecifications.java +++ b/modules/core/src/main/java/org/springside/modules/persistence/DynamicSpecifications.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.persistence; import java.util.Collection; diff --git a/modules/core/src/main/java/org/springside/modules/persistence/Hibernates.java b/modules/core/src/main/java/org/springside/modules/persistence/Hibernates.java index 8c514d724..8320ee2a2 100644 --- a/modules/core/src/main/java/org/springside/modules/persistence/Hibernates.java +++ b/modules/core/src/main/java/org/springside/modules/persistence/Hibernates.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.persistence; import java.sql.Connection; diff --git a/modules/core/src/main/java/org/springside/modules/persistence/SearchFilter.java b/modules/core/src/main/java/org/springside/modules/persistence/SearchFilter.java index d5fa3a637..a908c2698 100644 --- a/modules/core/src/main/java/org/springside/modules/persistence/SearchFilter.java +++ b/modules/core/src/main/java/org/springside/modules/persistence/SearchFilter.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.persistence; import java.util.Map; diff --git a/modules/core/src/main/java/org/springside/modules/security/shiro/HasAnyPermissionsTag.java b/modules/core/src/main/java/org/springside/modules/security/shiro/HasAnyPermissionsTag.java index 17933e749..21353a955 100644 --- a/modules/core/src/main/java/org/springside/modules/security/shiro/HasAnyPermissionsTag.java +++ b/modules/core/src/main/java/org/springside/modules/security/shiro/HasAnyPermissionsTag.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.security.shiro; import org.apache.shiro.subject.Subject; diff --git a/modules/core/src/main/java/org/springside/modules/security/utils/Cryptos.java b/modules/core/src/main/java/org/springside/modules/security/utils/Cryptos.java index 2f3c64a10..423fbbe63 100644 --- a/modules/core/src/main/java/org/springside/modules/security/utils/Cryptos.java +++ b/modules/core/src/main/java/org/springside/modules/security/utils/Cryptos.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.security.utils; import java.security.GeneralSecurityException; diff --git a/modules/core/src/main/java/org/springside/modules/security/utils/Digests.java b/modules/core/src/main/java/org/springside/modules/security/utils/Digests.java index 4d45d9618..03b4603e7 100644 --- a/modules/core/src/main/java/org/springside/modules/security/utils/Digests.java +++ b/modules/core/src/main/java/org/springside/modules/security/utils/Digests.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.security.utils; import java.io.IOException; diff --git a/modules/core/src/main/java/org/springside/modules/utils/Clock.java b/modules/core/src/main/java/org/springside/modules/utils/Clock.java index 94bfdaef0..c72bbbca0 100644 --- a/modules/core/src/main/java/org/springside/modules/utils/Clock.java +++ b/modules/core/src/main/java/org/springside/modules/utils/Clock.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.utils; import java.util.Date; diff --git a/modules/core/src/main/java/org/springside/modules/utils/Collections3.java b/modules/core/src/main/java/org/springside/modules/utils/Collections3.java index a1da55c1b..0e3e8b30b 100644 --- a/modules/core/src/main/java/org/springside/modules/utils/Collections3.java +++ b/modules/core/src/main/java/org/springside/modules/utils/Collections3.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.utils; import java.util.ArrayList; diff --git a/modules/core/src/main/java/org/springside/modules/utils/Encodes.java b/modules/core/src/main/java/org/springside/modules/utils/Encodes.java index 050c03543..4d7ae560d 100644 --- a/modules/core/src/main/java/org/springside/modules/utils/Encodes.java +++ b/modules/core/src/main/java/org/springside/modules/utils/Encodes.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.utils; import java.io.UnsupportedEncodingException; diff --git a/modules/core/src/main/java/org/springside/modules/utils/Exceptions.java b/modules/core/src/main/java/org/springside/modules/utils/Exceptions.java index 9427ce8dc..e1ee0b352 100644 --- a/modules/core/src/main/java/org/springside/modules/utils/Exceptions.java +++ b/modules/core/src/main/java/org/springside/modules/utils/Exceptions.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.utils; import java.io.PrintWriter; diff --git a/modules/core/src/main/java/org/springside/modules/utils/Identities.java b/modules/core/src/main/java/org/springside/modules/utils/Identities.java index 162f55e24..921d6de47 100644 --- a/modules/core/src/main/java/org/springside/modules/utils/Identities.java +++ b/modules/core/src/main/java/org/springside/modules/utils/Identities.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.utils; import java.security.SecureRandom; diff --git a/modules/core/src/main/java/org/springside/modules/utils/PropertiesLoader.java b/modules/core/src/main/java/org/springside/modules/utils/PropertiesLoader.java index c3bdae0f4..3a648c426 100644 --- a/modules/core/src/main/java/org/springside/modules/utils/PropertiesLoader.java +++ b/modules/core/src/main/java/org/springside/modules/utils/PropertiesLoader.java @@ -1,10 +1,8 @@ -/** - * Copyright (c) 2005-2011 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - * - * $Id: PropertiesLoader.java 1690 2012-02-22 13:42:00Z calvinxiu $ - */ + *******************************************************************************/ package org.springside.modules.utils; import java.io.IOException; diff --git a/modules/core/src/main/java/org/springside/modules/utils/Reflections.java b/modules/core/src/main/java/org/springside/modules/utils/Reflections.java index f493dc0b6..315e991dd 100644 --- a/modules/core/src/main/java/org/springside/modules/utils/Reflections.java +++ b/modules/core/src/main/java/org/springside/modules/utils/Reflections.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.utils; import java.lang.reflect.Field; diff --git a/modules/core/src/main/java/org/springside/modules/utils/StopWatch.java b/modules/core/src/main/java/org/springside/modules/utils/StopWatch.java index 1fb9186ba..b9cd0bf21 100644 --- a/modules/core/src/main/java/org/springside/modules/utils/StopWatch.java +++ b/modules/core/src/main/java/org/springside/modules/utils/StopWatch.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.utils; /** diff --git a/modules/core/src/main/java/org/springside/modules/utils/Threads.java b/modules/core/src/main/java/org/springside/modules/utils/Threads.java index 08240d07b..e013ce112 100644 --- a/modules/core/src/main/java/org/springside/modules/utils/Threads.java +++ b/modules/core/src/main/java/org/springside/modules/utils/Threads.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.utils; import java.util.concurrent.ExecutorService; diff --git a/modules/core/src/main/java/org/springside/modules/web/MediaTypes.java b/modules/core/src/main/java/org/springside/modules/web/MediaTypes.java index 168e069d1..c12704e3d 100644 --- a/modules/core/src/main/java/org/springside/modules/web/MediaTypes.java +++ b/modules/core/src/main/java/org/springside/modules/web/MediaTypes.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.web; /** diff --git a/modules/core/src/main/java/org/springside/modules/web/Servlets.java b/modules/core/src/main/java/org/springside/modules/web/Servlets.java index 2de6e0787..84bbc39cd 100644 --- a/modules/core/src/main/java/org/springside/modules/web/Servlets.java +++ b/modules/core/src/main/java/org/springside/modules/web/Servlets.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.web; import java.io.UnsupportedEncodingException; diff --git a/modules/core/src/main/java/org/springside/modules/web/taglib/BSAbstractMultiCheckedElementTag.java b/modules/core/src/main/java/org/springside/modules/web/taglib/BSAbstractMultiCheckedElementTag.java index 7f48122e5..c3602615e 100644 --- a/modules/core/src/main/java/org/springside/modules/web/taglib/BSAbstractMultiCheckedElementTag.java +++ b/modules/core/src/main/java/org/springside/modules/web/taglib/BSAbstractMultiCheckedElementTag.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.web.taglib; import java.util.Collection; diff --git a/modules/core/src/main/java/org/springside/modules/web/taglib/BSCheckboxesTag.java b/modules/core/src/main/java/org/springside/modules/web/taglib/BSCheckboxesTag.java index 715af993d..ef8ecda34 100644 --- a/modules/core/src/main/java/org/springside/modules/web/taglib/BSCheckboxesTag.java +++ b/modules/core/src/main/java/org/springside/modules/web/taglib/BSCheckboxesTag.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.web.taglib; import javax.servlet.jsp.JspException; diff --git a/modules/core/src/main/java/org/springside/modules/web/taglib/BSRadioButtonsTag.java b/modules/core/src/main/java/org/springside/modules/web/taglib/BSRadioButtonsTag.java index f5eac098d..44e168c18 100644 --- a/modules/core/src/main/java/org/springside/modules/web/taglib/BSRadioButtonsTag.java +++ b/modules/core/src/main/java/org/springside/modules/web/taglib/BSRadioButtonsTag.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.web.taglib; public class BSRadioButtonsTag extends BSAbstractMultiCheckedElementTag { diff --git a/modules/core/src/test/java/org/springside/modules/beanvalidator/BeanValidatorsTest.java b/modules/core/src/test/java/org/springside/modules/beanvalidator/BeanValidatorsTest.java index 89205bb72..5470baa3d 100644 --- a/modules/core/src/test/java/org/springside/modules/beanvalidator/BeanValidatorsTest.java +++ b/modules/core/src/test/java/org/springside/modules/beanvalidator/BeanValidatorsTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.beanvalidator; import static org.assertj.core.api.Assertions.*; diff --git a/modules/core/src/test/java/org/springside/modules/mapper/JaxbMapperTest.java b/modules/core/src/test/java/org/springside/modules/mapper/JaxbMapperTest.java index 42354a509..d287f05c5 100644 --- a/modules/core/src/test/java/org/springside/modules/mapper/JaxbMapperTest.java +++ b/modules/core/src/test/java/org/springside/modules/mapper/JaxbMapperTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.mapper; import static org.assertj.core.api.Assertions.*; diff --git a/modules/core/src/test/java/org/springside/modules/mapper/JsonMapperTest.java b/modules/core/src/test/java/org/springside/modules/mapper/JsonMapperTest.java index 188763a23..dc3e7dd0c 100644 --- a/modules/core/src/test/java/org/springside/modules/mapper/JsonMapperTest.java +++ b/modules/core/src/test/java/org/springside/modules/mapper/JsonMapperTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.mapper; import static org.assertj.core.api.Assertions.*; diff --git a/modules/core/src/test/java/org/springside/modules/persistence/HibernatesTest.java b/modules/core/src/test/java/org/springside/modules/persistence/HibernatesTest.java index c9ba45329..9d1a5faae 100644 --- a/modules/core/src/test/java/org/springside/modules/persistence/HibernatesTest.java +++ b/modules/core/src/test/java/org/springside/modules/persistence/HibernatesTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.persistence; import static org.assertj.core.api.Assertions.*; diff --git a/modules/core/src/test/java/org/springside/modules/persistence/SearchFilterTest.java b/modules/core/src/test/java/org/springside/modules/persistence/SearchFilterTest.java index 1ad95ca8f..36f8fc926 100644 --- a/modules/core/src/test/java/org/springside/modules/persistence/SearchFilterTest.java +++ b/modules/core/src/test/java/org/springside/modules/persistence/SearchFilterTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.persistence; import static org.assertj.core.api.Assertions.*; diff --git a/modules/core/src/test/java/org/springside/modules/security/utils/CryptosTest.java b/modules/core/src/test/java/org/springside/modules/security/utils/CryptosTest.java index 847f799b7..8f1f12b1c 100644 --- a/modules/core/src/test/java/org/springside/modules/security/utils/CryptosTest.java +++ b/modules/core/src/test/java/org/springside/modules/security/utils/CryptosTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.security.utils; import static org.assertj.core.api.Assertions.*; diff --git a/modules/core/src/test/java/org/springside/modules/security/utils/DigestsTest.java b/modules/core/src/test/java/org/springside/modules/security/utils/DigestsTest.java index d7be236eb..af62848a7 100644 --- a/modules/core/src/test/java/org/springside/modules/security/utils/DigestsTest.java +++ b/modules/core/src/test/java/org/springside/modules/security/utils/DigestsTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.security.utils; import java.io.IOException; diff --git a/modules/core/src/test/java/org/springside/modules/test/category/Smoke.java b/modules/core/src/test/java/org/springside/modules/test/category/Smoke.java index 0fa7c0c28..4b245b754 100644 --- a/modules/core/src/test/java/org/springside/modules/test/category/Smoke.java +++ b/modules/core/src/test/java/org/springside/modules/test/category/Smoke.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.test.category; /** diff --git a/modules/core/src/test/java/org/springside/modules/test/category/UnStable.java b/modules/core/src/test/java/org/springside/modules/test/category/UnStable.java index d6580c533..e0dbae7ab 100644 --- a/modules/core/src/test/java/org/springside/modules/test/category/UnStable.java +++ b/modules/core/src/test/java/org/springside/modules/test/category/UnStable.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.test.category; /** diff --git a/modules/core/src/test/java/org/springside/modules/test/data/DataFixtures.java b/modules/core/src/test/java/org/springside/modules/test/data/DataFixtures.java index 499dd7fc7..9e86618b8 100644 --- a/modules/core/src/test/java/org/springside/modules/test/data/DataFixtures.java +++ b/modules/core/src/test/java/org/springside/modules/test/data/DataFixtures.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.test.data; import javax.sql.DataSource; diff --git a/modules/core/src/test/java/org/springside/modules/test/data/RandomData.java b/modules/core/src/test/java/org/springside/modules/test/data/RandomData.java index daecff615..03cb24af6 100644 --- a/modules/core/src/test/java/org/springside/modules/test/data/RandomData.java +++ b/modules/core/src/test/java/org/springside/modules/test/data/RandomData.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.test.data; import java.util.Collections; diff --git a/modules/core/src/test/java/org/springside/modules/test/jetty/JettyFactory.java b/modules/core/src/test/java/org/springside/modules/test/jetty/JettyFactory.java index 3852c80a7..81e085f8c 100644 --- a/modules/core/src/test/java/org/springside/modules/test/jetty/JettyFactory.java +++ b/modules/core/src/test/java/org/springside/modules/test/jetty/JettyFactory.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.test.jetty; import java.util.List; diff --git a/modules/core/src/test/java/org/springside/modules/test/jetty/JettyFactoryTest.java b/modules/core/src/test/java/org/springside/modules/test/jetty/JettyFactoryTest.java index 77d45a220..90edbbddc 100644 --- a/modules/core/src/test/java/org/springside/modules/test/jetty/JettyFactoryTest.java +++ b/modules/core/src/test/java/org/springside/modules/test/jetty/JettyFactoryTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.test.jetty; import static org.assertj.core.api.Assertions.*; diff --git a/modules/core/src/test/java/org/springside/modules/test/log/LogbackListAppender.java b/modules/core/src/test/java/org/springside/modules/test/log/LogbackListAppender.java index 0937c3cd4..6d74f7dec 100644 --- a/modules/core/src/test/java/org/springside/modules/test/log/LogbackListAppender.java +++ b/modules/core/src/test/java/org/springside/modules/test/log/LogbackListAppender.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.test.log; import java.util.List; diff --git a/modules/core/src/test/java/org/springside/modules/test/log/LogbackListAppenderTest.java b/modules/core/src/test/java/org/springside/modules/test/log/LogbackListAppenderTest.java index 7ebc4e713..cc39ef0bd 100644 --- a/modules/core/src/test/java/org/springside/modules/test/log/LogbackListAppenderTest.java +++ b/modules/core/src/test/java/org/springside/modules/test/log/LogbackListAppenderTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.test.log; import static org.assertj.core.api.Assertions.*; diff --git a/modules/core/src/test/java/org/springside/modules/test/security/shiro/ShiroTestUtils.java b/modules/core/src/test/java/org/springside/modules/test/security/shiro/ShiroTestUtils.java index fc44d1ea9..272d07872 100644 --- a/modules/core/src/test/java/org/springside/modules/test/security/shiro/ShiroTestUtils.java +++ b/modules/core/src/test/java/org/springside/modules/test/security/shiro/ShiroTestUtils.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.test.security.shiro; import org.apache.shiro.subject.Subject; diff --git a/modules/core/src/test/java/org/springside/modules/test/security/shiro/ShiroTestUtilsTest.java b/modules/core/src/test/java/org/springside/modules/test/security/shiro/ShiroTestUtilsTest.java index b05e712a6..203bb057f 100644 --- a/modules/core/src/test/java/org/springside/modules/test/security/shiro/ShiroTestUtilsTest.java +++ b/modules/core/src/test/java/org/springside/modules/test/security/shiro/ShiroTestUtilsTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.test.security.shiro; import static org.assertj.core.api.Assertions.*; diff --git a/modules/core/src/test/java/org/springside/modules/test/selenium/Selenium2.java b/modules/core/src/test/java/org/springside/modules/test/selenium/Selenium2.java index c1c2baf0f..9cb0ffd78 100644 --- a/modules/core/src/test/java/org/springside/modules/test/selenium/Selenium2.java +++ b/modules/core/src/test/java/org/springside/modules/test/selenium/Selenium2.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.test.selenium; import java.io.File; diff --git a/modules/core/src/test/java/org/springside/modules/test/selenium/SeleniumSnapshotRule.java b/modules/core/src/test/java/org/springside/modules/test/selenium/SeleniumSnapshotRule.java index 51b80ccb5..6bc028dec 100644 --- a/modules/core/src/test/java/org/springside/modules/test/selenium/SeleniumSnapshotRule.java +++ b/modules/core/src/test/java/org/springside/modules/test/selenium/SeleniumSnapshotRule.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.test.selenium; import org.junit.rules.TestWatcher; diff --git a/modules/core/src/test/java/org/springside/modules/test/selenium/WebDriverFactory.java b/modules/core/src/test/java/org/springside/modules/test/selenium/WebDriverFactory.java index 7ea12155f..f3366e1c6 100644 --- a/modules/core/src/test/java/org/springside/modules/test/selenium/WebDriverFactory.java +++ b/modules/core/src/test/java/org/springside/modules/test/selenium/WebDriverFactory.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.test.selenium; import java.net.MalformedURLException; diff --git a/modules/core/src/test/java/org/springside/modules/test/selenium/WebDriverFactoryTest.java b/modules/core/src/test/java/org/springside/modules/test/selenium/WebDriverFactoryTest.java index 3d2dde4ad..e199724cf 100644 --- a/modules/core/src/test/java/org/springside/modules/test/selenium/WebDriverFactoryTest.java +++ b/modules/core/src/test/java/org/springside/modules/test/selenium/WebDriverFactoryTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.test.selenium; import static org.assertj.core.api.Assertions.*; diff --git a/modules/core/src/test/java/org/springside/modules/test/spring/Profiles.java b/modules/core/src/test/java/org/springside/modules/test/spring/Profiles.java index eca3790af..4fa8bf8b5 100644 --- a/modules/core/src/test/java/org/springside/modules/test/spring/Profiles.java +++ b/modules/core/src/test/java/org/springside/modules/test/spring/Profiles.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.test.spring; /** diff --git a/modules/core/src/test/java/org/springside/modules/test/spring/SpringContextTestCase.java b/modules/core/src/test/java/org/springside/modules/test/spring/SpringContextTestCase.java index afd6a2d5f..6b74160d0 100644 --- a/modules/core/src/test/java/org/springside/modules/test/spring/SpringContextTestCase.java +++ b/modules/core/src/test/java/org/springside/modules/test/spring/SpringContextTestCase.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.test.spring; import org.springframework.test.context.ActiveProfiles; diff --git a/modules/core/src/test/java/org/springside/modules/test/spring/SpringTransactionalTestCase.java b/modules/core/src/test/java/org/springside/modules/test/spring/SpringTransactionalTestCase.java index 90ea3bbe4..f78397937 100644 --- a/modules/core/src/test/java/org/springside/modules/test/spring/SpringTransactionalTestCase.java +++ b/modules/core/src/test/java/org/springside/modules/test/spring/SpringTransactionalTestCase.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.test.spring; import javax.sql.DataSource; diff --git a/modules/core/src/test/java/org/springside/modules/utils/Collecitons3Test.java b/modules/core/src/test/java/org/springside/modules/utils/Collecitons3Test.java index 1be28cdf5..936102b2d 100644 --- a/modules/core/src/test/java/org/springside/modules/utils/Collecitons3Test.java +++ b/modules/core/src/test/java/org/springside/modules/utils/Collecitons3Test.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.utils; import static org.assertj.core.api.Assertions.*; diff --git a/modules/core/src/test/java/org/springside/modules/utils/EncodesTest.java b/modules/core/src/test/java/org/springside/modules/utils/EncodesTest.java index 5ce2a34fc..2ea23cb5b 100644 --- a/modules/core/src/test/java/org/springside/modules/utils/EncodesTest.java +++ b/modules/core/src/test/java/org/springside/modules/utils/EncodesTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.utils; import static org.assertj.core.api.Assertions.*; diff --git a/modules/core/src/test/java/org/springside/modules/utils/ExceptionsTest.java b/modules/core/src/test/java/org/springside/modules/utils/ExceptionsTest.java index afff136dc..b02acb52a 100644 --- a/modules/core/src/test/java/org/springside/modules/utils/ExceptionsTest.java +++ b/modules/core/src/test/java/org/springside/modules/utils/ExceptionsTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.utils; import static org.assertj.core.api.Assertions.*; diff --git a/modules/core/src/test/java/org/springside/modules/utils/IdentitiesTest.java b/modules/core/src/test/java/org/springside/modules/utils/IdentitiesTest.java index 968da6bb0..18636779f 100644 --- a/modules/core/src/test/java/org/springside/modules/utils/IdentitiesTest.java +++ b/modules/core/src/test/java/org/springside/modules/utils/IdentitiesTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.utils; import org.junit.Test; diff --git a/modules/core/src/test/java/org/springside/modules/utils/PropertiesLoaderTest.java b/modules/core/src/test/java/org/springside/modules/utils/PropertiesLoaderTest.java index 7c8e4e1f0..a34a7e7fd 100644 --- a/modules/core/src/test/java/org/springside/modules/utils/PropertiesLoaderTest.java +++ b/modules/core/src/test/java/org/springside/modules/utils/PropertiesLoaderTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.utils; import static org.assertj.core.api.Assertions.*; diff --git a/modules/core/src/test/java/org/springside/modules/utils/ReflectionsTest.java b/modules/core/src/test/java/org/springside/modules/utils/ReflectionsTest.java index e39df92d3..7e62641ca 100644 --- a/modules/core/src/test/java/org/springside/modules/utils/ReflectionsTest.java +++ b/modules/core/src/test/java/org/springside/modules/utils/ReflectionsTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.utils; import static org.assertj.core.api.Assertions.*; diff --git a/modules/core/src/test/java/org/springside/modules/utils/ThreadsTest.java b/modules/core/src/test/java/org/springside/modules/utils/ThreadsTest.java index 2f9534184..bd6b4f170 100644 --- a/modules/core/src/test/java/org/springside/modules/utils/ThreadsTest.java +++ b/modules/core/src/test/java/org/springside/modules/utils/ThreadsTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.utils; import static org.assertj.core.api.Assertions.*; diff --git a/modules/core/src/test/java/org/springside/modules/web/ServletsTest.java b/modules/core/src/test/java/org/springside/modules/web/ServletsTest.java index 33f2d1fae..9d6d34e0c 100644 --- a/modules/core/src/test/java/org/springside/modules/web/ServletsTest.java +++ b/modules/core/src/test/java/org/springside/modules/web/ServletsTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.web; import static org.assertj.core.api.Assertions.*; diff --git a/modules/extension/src/main/java/org/springside/modules/cache/memcached/SpyMemcachedClient.java b/modules/extension/src/main/java/org/springside/modules/cache/memcached/SpyMemcachedClient.java index ea15cbdbe..ed0669ebd 100644 --- a/modules/extension/src/main/java/org/springside/modules/cache/memcached/SpyMemcachedClient.java +++ b/modules/extension/src/main/java/org/springside/modules/cache/memcached/SpyMemcachedClient.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.cache.memcached; import java.util.Collection; diff --git a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisScriptExecutor.java b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisScriptExecutor.java index 9a48782a8..c0ad6c953 100644 --- a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisScriptExecutor.java +++ b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisScriptExecutor.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.nosql.redis; import java.io.IOException; diff --git a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java index e0a164e07..9adba0c36 100644 --- a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java +++ b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.nosql.redis; import org.slf4j.Logger; diff --git a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisUtils.java b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisUtils.java index 2919fd589..eab16d905 100644 --- a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisUtils.java +++ b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisUtils.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.nosql.redis; import redis.clients.jedis.Jedis; diff --git a/modules/extension/src/main/java/org/springside/modules/nosql/redis/elector/MasterElector.java b/modules/extension/src/main/java/org/springside/modules/nosql/redis/elector/MasterElector.java index 60487f227..faa5080e4 100644 --- a/modules/extension/src/main/java/org/springside/modules/nosql/redis/elector/MasterElector.java +++ b/modules/extension/src/main/java/org/springside/modules/nosql/redis/elector/MasterElector.java @@ -1,12 +1,8 @@ -/*------------------------------------------------------------------------------ - * COPYRIGHT Ericsson 2013 +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * - * The copyright to the computer program(s) herein is the property of - * Ericsson Inc. The programs may be used and/or copied only with written - * permission from Ericsson Inc. or in accordance with the terms and - * conditions stipulated in the agreement/contract under which the - * program(s) have been supplied. - *----------------------------------------------------------------------------*/ + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.nosql.redis.elector; import java.net.InetAddress; diff --git a/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/AdvancedConsumer.java b/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/AdvancedConsumer.java index c122a6c34..75227be5c 100644 --- a/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/AdvancedConsumer.java +++ b/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/AdvancedConsumer.java @@ -1,12 +1,8 @@ -/*------------------------------------------------------------------------------ - * COPYRIGHT Ericsson 2013 +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * - * The copyright to the computer program(s) herein is the property of - * Ericsson Inc. The programs may be used and/or copied only with written - * permission from Ericsson Inc. or in accordance with the terms and - * conditions stipulated in the agreement/contract under which the - * program(s) have been supplied. - *----------------------------------------------------------------------------*/ + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.nosql.redis.scheduler; import java.util.List; diff --git a/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/JobDispatcher.java b/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/JobDispatcher.java index 00e8b1885..771300526 100644 --- a/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/JobDispatcher.java +++ b/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/JobDispatcher.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.nosql.redis.scheduler; import java.util.List; diff --git a/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/JobProducer.java b/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/JobProducer.java index 5b40579a1..348fe43d9 100644 --- a/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/JobProducer.java +++ b/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/JobProducer.java @@ -1,12 +1,8 @@ -/*------------------------------------------------------------------------------ - * COPYRIGHT Ericsson 2013 +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * - * The copyright to the computer program(s) herein is the property of - * Ericsson Inc. The programs may be used and/or copied only with written - * permission from Ericsson Inc. or in accordance with the terms and - * conditions stipulated in the agreement/contract under which the - * program(s) have been supplied. - *----------------------------------------------------------------------------*/ + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.nosql.redis.scheduler; import java.util.concurrent.TimeUnit; diff --git a/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/JobStatistics.java b/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/JobStatistics.java index 3537eb8f0..20cc30f9b 100644 --- a/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/JobStatistics.java +++ b/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/JobStatistics.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.nosql.redis.scheduler; import org.springside.modules.nosql.redis.JedisTemplate; diff --git a/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/Keys.java b/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/Keys.java index 6c1eacdeb..7f40b7919 100644 --- a/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/Keys.java +++ b/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/Keys.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.nosql.redis.scheduler; public class Keys { diff --git a/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/SimpleJobConsumer.java b/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/SimpleJobConsumer.java index 6a0c490b1..3cd918907 100644 --- a/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/SimpleJobConsumer.java +++ b/modules/extension/src/main/java/org/springside/modules/nosql/redis/scheduler/SimpleJobConsumer.java @@ -1,12 +1,8 @@ -/*------------------------------------------------------------------------------ - * COPYRIGHT Ericsson 2013 +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * - * The copyright to the computer program(s) herein is the property of - * Ericsson Inc. The programs may be used and/or copied only with written - * permission from Ericsson Inc. or in accordance with the terms and - * conditions stipulated in the agreement/contract under which the - * program(s) have been supplied. - *----------------------------------------------------------------------------*/ + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.nosql.redis.scheduler; import java.util.List; diff --git a/modules/extension/src/main/java/org/springside/modules/tools/FreeMarkers.java b/modules/extension/src/main/java/org/springside/modules/tools/FreeMarkers.java index 1fdd4626a..2cb41dd52 100644 --- a/modules/extension/src/main/java/org/springside/modules/tools/FreeMarkers.java +++ b/modules/extension/src/main/java/org/springside/modules/tools/FreeMarkers.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.tools; import java.io.IOException; diff --git a/modules/extension/src/test/java/org/springside/modules/memcached/SpyMemcachedClientTest.java b/modules/extension/src/test/java/org/springside/modules/memcached/SpyMemcachedClientTest.java index 4457c3730..0b5081305 100644 --- a/modules/extension/src/test/java/org/springside/modules/memcached/SpyMemcachedClientTest.java +++ b/modules/extension/src/test/java/org/springside/modules/memcached/SpyMemcachedClientTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.memcached; import static org.assertj.core.api.Assertions.*; diff --git a/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java b/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java index 4beeddb2d..ea4354a9a 100644 --- a/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java +++ b/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.nosql.redis; import static org.assertj.core.api.Assertions.*; diff --git a/modules/extension/src/test/java/org/springside/modules/test/benchmark/BenchmarkTask.java b/modules/extension/src/test/java/org/springside/modules/test/benchmark/BenchmarkTask.java index ec949dc3b..61b48effd 100644 --- a/modules/extension/src/test/java/org/springside/modules/test/benchmark/BenchmarkTask.java +++ b/modules/extension/src/test/java/org/springside/modules/test/benchmark/BenchmarkTask.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.test.benchmark; import java.math.BigDecimal; diff --git a/modules/extension/src/test/java/org/springside/modules/test/benchmark/ConcurrentBenchmark.java b/modules/extension/src/test/java/org/springside/modules/test/benchmark/ConcurrentBenchmark.java index 14a3ffea8..295badb0c 100644 --- a/modules/extension/src/test/java/org/springside/modules/test/benchmark/ConcurrentBenchmark.java +++ b/modules/extension/src/test/java/org/springside/modules/test/benchmark/ConcurrentBenchmark.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.test.benchmark; import java.util.Date; diff --git a/modules/extension/src/test/java/org/springside/modules/test/cache/memcached/MemcachedSimulator.java b/modules/extension/src/test/java/org/springside/modules/test/cache/memcached/MemcachedSimulator.java index 9d7d35663..caddff537 100644 --- a/modules/extension/src/test/java/org/springside/modules/test/cache/memcached/MemcachedSimulator.java +++ b/modules/extension/src/test/java/org/springside/modules/test/cache/memcached/MemcachedSimulator.java @@ -1,8 +1,8 @@ -/** - * Copyright (c) 2005-2012 springside.org.cn +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); - */ + *******************************************************************************/ package org.springside.modules.test.cache.memcached; import net.spy.memcached.AddrUtil; diff --git a/modules/extension/src/test/java/org/springside/modules/test/mail/MailServerSimulator.java b/modules/extension/src/test/java/org/springside/modules/test/mail/MailServerSimulator.java index 82b155208..0c81c9055 100644 --- a/modules/extension/src/test/java/org/springside/modules/test/mail/MailServerSimulator.java +++ b/modules/extension/src/test/java/org/springside/modules/test/mail/MailServerSimulator.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.test.mail; import org.springframework.beans.factory.DisposableBean; diff --git a/modules/extension/src/test/java/org/springside/modules/test/mail/MailServerSimulatorTest.java b/modules/extension/src/test/java/org/springside/modules/test/mail/MailServerSimulatorTest.java index 4d15aa14d..51eda13b7 100644 --- a/modules/extension/src/test/java/org/springside/modules/test/mail/MailServerSimulatorTest.java +++ b/modules/extension/src/test/java/org/springside/modules/test/mail/MailServerSimulatorTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.test.mail; import static org.assertj.core.api.Assertions.*; diff --git a/modules/extension/src/test/java/org/springside/modules/tools/FreemarkersTest.java b/modules/extension/src/test/java/org/springside/modules/tools/FreemarkersTest.java index e80a87fc6..5c19d3869 100644 --- a/modules/extension/src/test/java/org/springside/modules/tools/FreemarkersTest.java +++ b/modules/extension/src/test/java/org/springside/modules/tools/FreemarkersTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.tools; import static org.assertj.core.api.Assertions.*; diff --git a/modules/metrics/src/main/java/org/springside/modules/metrics/Counter.java b/modules/metrics/src/main/java/org/springside/modules/metrics/Counter.java index 6aaca8a1b..aa0d9f9dc 100644 --- a/modules/metrics/src/main/java/org/springside/modules/metrics/Counter.java +++ b/modules/metrics/src/main/java/org/springside/modules/metrics/Counter.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.metrics; import java.util.concurrent.atomic.AtomicLong; diff --git a/modules/metrics/src/main/java/org/springside/modules/metrics/CounterMetric.java b/modules/metrics/src/main/java/org/springside/modules/metrics/CounterMetric.java index 030c32fb6..ef380029f 100644 --- a/modules/metrics/src/main/java/org/springside/modules/metrics/CounterMetric.java +++ b/modules/metrics/src/main/java/org/springside/modules/metrics/CounterMetric.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.metrics; public class CounterMetric { diff --git a/modules/metrics/src/main/java/org/springside/modules/metrics/Execution.java b/modules/metrics/src/main/java/org/springside/modules/metrics/Execution.java index 4448d20e7..71eff47c3 100644 --- a/modules/metrics/src/main/java/org/springside/modules/metrics/Execution.java +++ b/modules/metrics/src/main/java/org/springside/modules/metrics/Execution.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.metrics; import org.springside.modules.metrics.utils.Clock; diff --git a/modules/metrics/src/main/java/org/springside/modules/metrics/ExecutionMetric.java b/modules/metrics/src/main/java/org/springside/modules/metrics/ExecutionMetric.java index a718af5de..ccd4be58d 100644 --- a/modules/metrics/src/main/java/org/springside/modules/metrics/ExecutionMetric.java +++ b/modules/metrics/src/main/java/org/springside/modules/metrics/ExecutionMetric.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.metrics; public class ExecutionMetric { diff --git a/modules/metrics/src/main/java/org/springside/modules/metrics/Histogram.java b/modules/metrics/src/main/java/org/springside/modules/metrics/Histogram.java index 3ad0c7a5c..8dedc2339 100644 --- a/modules/metrics/src/main/java/org/springside/modules/metrics/Histogram.java +++ b/modules/metrics/src/main/java/org/springside/modules/metrics/Histogram.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.metrics; import java.util.Arrays; diff --git a/modules/metrics/src/main/java/org/springside/modules/metrics/HistogramMetric.java b/modules/metrics/src/main/java/org/springside/modules/metrics/HistogramMetric.java index 697e1d5ef..62deb288d 100644 --- a/modules/metrics/src/main/java/org/springside/modules/metrics/HistogramMetric.java +++ b/modules/metrics/src/main/java/org/springside/modules/metrics/HistogramMetric.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.metrics; import java.util.LinkedHashMap; diff --git a/modules/metrics/src/main/java/org/springside/modules/metrics/MetricRegistry.java b/modules/metrics/src/main/java/org/springside/modules/metrics/MetricRegistry.java index 49aef324d..8ed3a0f8a 100644 --- a/modules/metrics/src/main/java/org/springside/modules/metrics/MetricRegistry.java +++ b/modules/metrics/src/main/java/org/springside/modules/metrics/MetricRegistry.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.metrics; import java.util.Collections; diff --git a/modules/metrics/src/main/java/org/springside/modules/metrics/report/ConsoleReporter.java b/modules/metrics/src/main/java/org/springside/modules/metrics/report/ConsoleReporter.java index 106f6a73d..93d1a636c 100644 --- a/modules/metrics/src/main/java/org/springside/modules/metrics/report/ConsoleReporter.java +++ b/modules/metrics/src/main/java/org/springside/modules/metrics/report/ConsoleReporter.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.metrics.report; import java.io.PrintStream; diff --git a/modules/metrics/src/main/java/org/springside/modules/metrics/report/GraphiteReporter.java b/modules/metrics/src/main/java/org/springside/modules/metrics/report/GraphiteReporter.java index 0c7ec6520..5895d4154 100644 --- a/modules/metrics/src/main/java/org/springside/modules/metrics/report/GraphiteReporter.java +++ b/modules/metrics/src/main/java/org/springside/modules/metrics/report/GraphiteReporter.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.metrics.report; import java.io.BufferedWriter; diff --git a/modules/metrics/src/main/java/org/springside/modules/metrics/report/ReportScheduler.java b/modules/metrics/src/main/java/org/springside/modules/metrics/report/ReportScheduler.java index 2b48706cc..cd4c93f2c 100644 --- a/modules/metrics/src/main/java/org/springside/modules/metrics/report/ReportScheduler.java +++ b/modules/metrics/src/main/java/org/springside/modules/metrics/report/ReportScheduler.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.metrics.report; import java.util.Arrays; diff --git a/modules/metrics/src/main/java/org/springside/modules/metrics/report/Reporter.java b/modules/metrics/src/main/java/org/springside/modules/metrics/report/Reporter.java index 0f347b162..dd0337698 100644 --- a/modules/metrics/src/main/java/org/springside/modules/metrics/report/Reporter.java +++ b/modules/metrics/src/main/java/org/springside/modules/metrics/report/Reporter.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.metrics.report; import java.util.Map; diff --git a/modules/metrics/src/main/java/org/springside/modules/metrics/report/Slf4jReporter.java b/modules/metrics/src/main/java/org/springside/modules/metrics/report/Slf4jReporter.java index aab672a52..da7e1430b 100644 --- a/modules/metrics/src/main/java/org/springside/modules/metrics/report/Slf4jReporter.java +++ b/modules/metrics/src/main/java/org/springside/modules/metrics/report/Slf4jReporter.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.metrics.report; import java.util.Map; diff --git a/modules/metrics/src/main/java/org/springside/modules/metrics/utils/Clock.java b/modules/metrics/src/main/java/org/springside/modules/metrics/utils/Clock.java index 5e72bc2f6..eb660bc65 100644 --- a/modules/metrics/src/main/java/org/springside/modules/metrics/utils/Clock.java +++ b/modules/metrics/src/main/java/org/springside/modules/metrics/utils/Clock.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.metrics.utils; /** diff --git a/modules/metrics/src/test/java/org/springside/modules/metrics/CounterTest.java b/modules/metrics/src/test/java/org/springside/modules/metrics/CounterTest.java index 8f977beae..fd3135e5a 100644 --- a/modules/metrics/src/test/java/org/springside/modules/metrics/CounterTest.java +++ b/modules/metrics/src/test/java/org/springside/modules/metrics/CounterTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.metrics; import static org.junit.Assert.*; diff --git a/modules/metrics/src/test/java/org/springside/modules/metrics/ExecutionTest.java b/modules/metrics/src/test/java/org/springside/modules/metrics/ExecutionTest.java index d13d4c7ff..ff0b8be16 100644 --- a/modules/metrics/src/test/java/org/springside/modules/metrics/ExecutionTest.java +++ b/modules/metrics/src/test/java/org/springside/modules/metrics/ExecutionTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.metrics; import static org.junit.Assert.*; diff --git a/modules/metrics/src/test/java/org/springside/modules/metrics/HistogramTest.java b/modules/metrics/src/test/java/org/springside/modules/metrics/HistogramTest.java index 75ca83650..2b89e6f29 100644 --- a/modules/metrics/src/test/java/org/springside/modules/metrics/HistogramTest.java +++ b/modules/metrics/src/test/java/org/springside/modules/metrics/HistogramTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.metrics; import static org.junit.Assert.*; diff --git a/modules/metrics/src/test/java/org/springside/modules/metrics/MetricRegistryTest.java b/modules/metrics/src/test/java/org/springside/modules/metrics/MetricRegistryTest.java index e636be7f5..759397647 100644 --- a/modules/metrics/src/test/java/org/springside/modules/metrics/MetricRegistryTest.java +++ b/modules/metrics/src/test/java/org/springside/modules/metrics/MetricRegistryTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.metrics; import static org.junit.Assert.*; diff --git a/modules/metrics/src/test/java/org/springside/modules/metrics/ReporterTest.java b/modules/metrics/src/test/java/org/springside/modules/metrics/ReporterTest.java index 26d8e276e..de5a635a4 100644 --- a/modules/metrics/src/test/java/org/springside/modules/metrics/ReporterTest.java +++ b/modules/metrics/src/test/java/org/springside/modules/metrics/ReporterTest.java @@ -1,3 +1,8 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ package org.springside.modules.metrics; import java.net.InetSocketAddress; From 5a1eb2ce96c065a0eba9cfadf5f5f1f24e17f9fd Mon Sep 17 00:00:00 2001 From: Calvin Date: Sat, 18 Jan 2014 01:32:32 +0800 Subject: [PATCH 034/356] =?UTF-8?q?#311=20=E7=94=A8assertJ=E7=AE=80?= =?UTF-8?q?=E5=8C=96assert=E7=BC=96=E5=86=99,=20springside-metrics?= =?UTF-8?q?=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/metrics/CounterTest.java | 20 ++++---- .../modules/metrics/ExecutionTest.java | 12 ++--- .../modules/metrics/HistogramTest.java | 50 +++++++++---------- .../modules/metrics/MetricRegistryTest.java | 37 ++++++-------- 4 files changed, 57 insertions(+), 62 deletions(-) diff --git a/modules/metrics/src/test/java/org/springside/modules/metrics/CounterTest.java b/modules/metrics/src/test/java/org/springside/modules/metrics/CounterTest.java index fd3135e5a..6dc6d5490 100644 --- a/modules/metrics/src/test/java/org/springside/modules/metrics/CounterTest.java +++ b/modules/metrics/src/test/java/org/springside/modules/metrics/CounterTest.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.modules.metrics; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.Before; import org.junit.Test; @@ -30,17 +30,17 @@ public void normal() { clock.increaseTime(1000); CounterMetric metric = counter.calculateMetric(); - assertEquals(60, metric.totalCount); - assertEquals(60, metric.lastCount); - assertEquals(60d, metric.lastRate, 0); + assertThat(metric.totalCount).isEqualTo(60); + assertThat(metric.lastCount).isEqualTo(60); + assertThat(metric.lastRate).isEqualTo(60); counter.inc(20); clock.increaseTime(1000); metric = counter.calculateMetric(); - assertEquals(80, metric.totalCount); - assertEquals(20, metric.lastCount); - assertEquals(20d, metric.lastRate, 0); + assertThat(metric.totalCount).isEqualTo(80); + assertThat(metric.lastCount).isEqualTo(20); + assertThat(metric.lastRate).isEqualTo(20); } @Test @@ -55,7 +55,7 @@ public void incAndDec() { clock.increaseTime(1000); CounterMetric metric = counter.calculateMetric(); - assertEquals(11, metric.totalCount); + assertThat(metric.totalCount).isEqualTo(11); } @Test @@ -64,7 +64,7 @@ public void empty() { clock.increaseTime(1000); CounterMetric metric = counter.calculateMetric(); - assertEquals(0, metric.totalCount); - assertEquals(0d, metric.lastRate, 0); + assertThat(metric.totalCount).isEqualTo(0); + assertThat(metric.lastRate).isEqualTo(0); } } diff --git a/modules/metrics/src/test/java/org/springside/modules/metrics/ExecutionTest.java b/modules/metrics/src/test/java/org/springside/modules/metrics/ExecutionTest.java index ff0b8be16..b2b92baf8 100644 --- a/modules/metrics/src/test/java/org/springside/modules/metrics/ExecutionTest.java +++ b/modules/metrics/src/test/java/org/springside/modules/metrics/ExecutionTest.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.modules.metrics; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.Test; import org.springside.modules.metrics.Execution.ExecutionTimer; @@ -30,11 +30,11 @@ public void normal() { ExecutionMetric metric = execution.calculateMetric(); - assertEquals(2, metric.counterMetric.totalCount); - assertEquals(4, metric.counterMetric.lastRate, 0); + assertThat(metric.counterMetric.totalCount).isEqualTo(2); + assertThat(metric.counterMetric.lastRate).isEqualTo(4); - assertEquals(200, metric.histogramMetric.min); - assertEquals(250, metric.histogramMetric.mean, 0); - assertEquals(300, metric.histogramMetric.pcts.get(90d), 0); + assertThat(metric.histogramMetric.min).isEqualTo(200); + assertThat(metric.histogramMetric.mean).isEqualTo(250); + assertThat(metric.histogramMetric.pcts.get(90d)).isEqualTo(300); } } diff --git a/modules/metrics/src/test/java/org/springside/modules/metrics/HistogramTest.java b/modules/metrics/src/test/java/org/springside/modules/metrics/HistogramTest.java index 2b89e6f29..13c2ceedb 100644 --- a/modules/metrics/src/test/java/org/springside/modules/metrics/HistogramTest.java +++ b/modules/metrics/src/test/java/org/springside/modules/metrics/HistogramTest.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.modules.metrics; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.Test; @@ -21,11 +21,11 @@ public void normal() { HistogramMetric metric = histogram.calculateMetric(); - assertEquals(1, metric.min); - assertEquals(100, metric.max); - assertEquals(50.5, metric.mean, 0); - assertEquals(90, metric.pcts.get(90d), 0); - assertEquals(95, metric.pcts.get(95d), 0); + assertThat(metric.min).isEqualTo(1); + assertThat(metric.max).isEqualTo(100); + assertThat(metric.mean).isEqualTo(50.5); + assertThat(metric.pcts.get(90d)).isEqualTo(90); + assertThat(metric.pcts.get(95d)).isEqualTo(95); for (int i = 1; i <= 100; i++) { histogram.update(i * 2); @@ -33,11 +33,11 @@ public void normal() { metric = histogram.calculateMetric(); - assertEquals(2, metric.min); - assertEquals(200, metric.max); - assertEquals(101, metric.mean, 0); - assertEquals(180, metric.pcts.get(90d), 0); - assertEquals(190, metric.pcts.get(95d), 0); + assertThat(metric.min).isEqualTo(2); + assertThat(metric.max).isEqualTo(200); + assertThat(metric.mean).isEqualTo(101); + assertThat(metric.pcts.get(90d)).isEqualTo(180); + assertThat(metric.pcts.get(95d)).isEqualTo(190); } @Test @@ -46,19 +46,19 @@ public void fewData() { histogram.update(1); HistogramMetric metric = histogram.calculateMetric(); - assertEquals(1, metric.pcts.get(90d), 0); - assertEquals(1, metric.pcts.get(95d), 0); + assertThat(metric.pcts.get(90d)).isEqualTo(1); + assertThat(metric.pcts.get(95d)).isEqualTo(1); for (int i = 1; i <= 3; i++) { histogram.update(i); } metric = histogram.calculateMetric(); - assertEquals(1, metric.min); - assertEquals(3, metric.max); - assertEquals(2, metric.mean, 0); - assertEquals(3, metric.pcts.get(90d), 0); - assertEquals(3, metric.pcts.get(95d), 0); + assertThat(metric.min).isEqualTo(1); + assertThat(metric.max).isEqualTo(3); + assertThat(metric.mean).isEqualTo(2); + assertThat(metric.pcts.get(90d)).isEqualTo(3); + assertThat(metric.pcts.get(95d)).isEqualTo(3); } @Test @@ -67,10 +67,10 @@ public void emptyMesures() { HistogramMetric metric = histogram.calculateMetric(); - assertEquals(0, metric.min); - assertEquals(0, metric.max); - assertEquals(0, metric.mean, 0); - assertEquals(0, metric.pcts.get(90d), 0); + assertThat(metric.min).isZero(); + assertThat(metric.max).isZero(); + assertThat(metric.mean).isZero(); + assertThat(metric.pcts.get(90d)).isZero(); } @Test() @@ -81,8 +81,8 @@ public void emptyPcts() { } HistogramMetric metric = histogram.calculateMetric(); - assertEquals(3, metric.max); - assertTrue(metric.pcts.isEmpty()); - assertNull(metric.pcts.get(90d)); + assertThat(metric.max).isEqualTo(3); + assertThat(metric.pcts).isEmpty(); + assertThat(metric.pcts.get(90d)).isNull(); } } diff --git a/modules/metrics/src/test/java/org/springside/modules/metrics/MetricRegistryTest.java b/modules/metrics/src/test/java/org/springside/modules/metrics/MetricRegistryTest.java index 759397647..5d152fe84 100644 --- a/modules/metrics/src/test/java/org/springside/modules/metrics/MetricRegistryTest.java +++ b/modules/metrics/src/test/java/org/springside/modules/metrics/MetricRegistryTest.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.modules.metrics; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.Map; @@ -17,34 +17,31 @@ public class MetricRegistryTest { public void counter() { MetricRegistry metricRegistry = new MetricRegistry(); Counter counter = metricRegistry.counter(MetricRegistry.name("UserService", "getUser.counter")); - assertNotNull(counter); + assertThat(counter).isNotNull(); Map counters = metricRegistry.getCounters(); Counter counter2 = counters.get("UserService.getUser.counter"); - assertNotNull(counter2); - assertTrue(counter == counter2); + assertThat(counter2).isNotNull().isSameAs(counter); Counter counter3 = metricRegistry.counter(MetricRegistry.name("UserService", "getUser.counter")); - assertNotNull(counter3); - assertTrue(counter == counter3); + assertThat(counter3).isNotNull().isSameAs(counter); } @Test public void histogram() { MetricRegistry metricRegistry = new MetricRegistry(); Histogram histogram = metricRegistry.histogram(MetricRegistry.name("UserService", "getUser.latency")); - assertNotNull(histogram); + assertThat(histogram).isNotNull(); Map histograms = metricRegistry.getHistograms(); Histogram histogram2 = histograms.get("UserService.getUser.latency"); - assertNotNull(histogram2); - assertTrue(histogram == histogram2); + assertThat(histogram2).isNotNull().isSameAs(histogram); Histogram histogram3 = metricRegistry.histogram(MetricRegistry.name("UserService", "getUser.latency")); - assertNotNull(histogram3); - assertTrue(histogram == histogram3); + assertThat(histogram3).isNotNull().isSameAs(histogram); + } @Test @@ -52,17 +49,15 @@ public void execution() { MetricRegistry metricRegistry = new MetricRegistry(); Execution execution = metricRegistry.execution(MetricRegistry.name("UserService", "getUser.execution")); - assertNotNull(execution); + assertThat(execution).isNotNull(); Map executions = metricRegistry.getExecutions(); Execution execution2 = executions.get("UserService.getUser.execution"); - assertNotNull(execution2); - assertTrue(execution == execution2); + assertThat(execution2).isNotNull().isSameAs(execution); Execution execution3 = metricRegistry.execution(MetricRegistry.name("UserService", "getUser.execution")); - assertNotNull(execution3); - assertTrue(execution == execution3); + assertThat(execution3).isNotNull().isSameAs(execution); } @Test @@ -79,8 +74,8 @@ public void defaultPcts() { HistogramMetric metric = histogram.calculateMetric(); - assertEquals(60, metric.pcts.get(60d), 0); - assertEquals(70, metric.pcts.get(70d), 0); + assertThat(metric.pcts.get(60d)).isEqualTo(60); + assertThat(metric.pcts.get(70d)).isEqualTo(70); // default 90 Histogram histogramWithDefaultPcts = metricRegistry.histogram(MetricRegistry.name("UserService", @@ -90,7 +85,7 @@ public void defaultPcts() { } metric = histogramWithDefaultPcts.calculateMetric(); - assertEquals(90, metric.pcts.get(90d), 0); + assertThat(metric.pcts.get(90d)).isEqualTo(90); // new default 50 metricRegistry.setDefaultPcts(new Double[] { 50d }); @@ -103,7 +98,7 @@ public void defaultPcts() { metric = histogramWithNewDefaultPcts.calculateMetric(); - assertEquals(50, metric.pcts.get(50d), 0); - assertNull(metric.pcts.get(90d)); + assertThat(metric.pcts.get(50d)).isEqualTo(50); + assertThat(metric.pcts.get(90d)).isNull(); } } From f5c354dd3f341c27413aa1a9544109c6493e9c38 Mon Sep 17 00:00:00 2001 From: Calvin Date: Sat, 18 Jan 2014 02:28:36 +0800 Subject: [PATCH 035/356] =?UTF-8?q?#311=20=E7=94=A8assertJ=E7=AE=80?= =?UTF-8?q?=E5=8C=96assert=E7=BC=96=E5=86=99,=20showcase=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demos/cache/ehcache/EhcacheDemo.java | 4 +- .../demos/cache/guava/GuavaCacheDemo.java | 14 +-- .../demos/cache/memcached/MemcachedDemo.java | 32 +++---- .../utilities/collection/AdvancedMapDemo.java | 14 +-- .../utilities/collection/CollectionsDemo.java | 12 +-- .../demos/utilities/dozer/DozerDemo.java | 24 ++--- .../demos/utilities/json/JsonDemo.java | 89 ++++++++++--------- .../demos/utilities/string/StringDemo.java | 58 ++++++------ .../demos/utilities/time/JodaDemo.java | 12 +-- .../utilities/validate/ValidateDemo.java | 12 +-- .../demos/utilities/xml/JaxbDemo.java | 28 +++--- .../functional/account/UserManagerFT.java | 16 ++-- .../showcase/functional/ajax/AjaxFT.java | 4 +- .../showcase/functional/rest/UserJaxRsFT.java | 15 ++-- .../showcase/functional/rest/UserRestFT.java | 16 ++-- ...ntWebServiceWithDynamicCreateClientFT.java | 10 +-- ...ccountWebServiceWithPredefineClientFT.java | 21 +++-- .../showcase/demos/jms/JmsAdvancedTest.java | 10 ++- .../showcase/demos/jms/JmsSimpleTest.java | 6 +- .../showcase/demos/mail/MailServiceTest.java | 20 ++--- .../demos/schedule/JdkTimerJobTest.java | 6 +- .../schedule/QuartzTimerClusterJobTest.java | 7 +- .../demos/schedule/SpringTimerJobTest.java | 6 +- .../web/CacheControlHeaderFilterTest.java | 4 +- .../jpa/DynamicSpecificationTest.java | 36 ++++---- .../repository/jpa/JpaMappingTest.java | 4 +- .../mybatis/TeamMybatisDaoTest.java | 7 +- .../mybatis/UserMybatisDaoTest.java | 18 ++-- .../showcase/service/AccountServiceTest.java | 2 +- 29 files changed, 249 insertions(+), 258 deletions(-) diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/ehcache/EhcacheDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/ehcache/EhcacheDemo.java index 81a89418a..eb7cdb22e 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/ehcache/EhcacheDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/ehcache/EhcacheDemo.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.demos.cache.ehcache; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import net.sf.ehcache.Element; @@ -43,7 +43,7 @@ public void demo() { put(key, value); Object result = get(key); - assertEquals(value, result); + assertThat(result).isEqualTo(value); } public Object get(String key) { diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/guava/GuavaCacheDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/guava/GuavaCacheDemo.java index a49345940..b43ea92ac 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/guava/GuavaCacheDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/guava/GuavaCacheDemo.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.demos.cache.guava; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.concurrent.TimeUnit; @@ -57,19 +57,19 @@ public User load(Long key) throws Exception { // 第一次加载会查数据库 User user = cache.get(1L); - assertEquals("admin", user.getLoginName()); - assertFalse(appender.isEmpty()); + assertThat(user.getLoginName()).isEqualTo("admin"); + assertThat(appender.isEmpty()).isFalse(); appender.clearLogs(); // 第二次加载时直接从缓存里取 User user2 = cache.get(1L); - assertEquals("admin", user2.getLoginName()); - assertTrue(appender.isEmpty()); + assertThat(user2.getLoginName()).isEqualTo("admin"); + assertThat(appender.isEmpty()).isTrue(); // 第三次加载时,因为缓存已经过期所以会查数据库 Threads.sleep(10, TimeUnit.SECONDS); User user3 = cache.get(1L); - assertEquals("admin", user3.getLoginName()); - assertFalse(appender.isEmpty()); + assertThat(user3.getLoginName()).isEqualTo("admin"); + assertThat(appender.isEmpty()).isFalse(); } } diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/memcached/MemcachedDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/memcached/MemcachedDemo.java index 20f14ce9c..5c9da0148 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/memcached/MemcachedDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/cache/memcached/MemcachedDemo.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.demos.cache.memcached; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.Map; @@ -32,22 +32,19 @@ public void normal() { spyMemcachedClient.set(key, 60 * 60 * 1, value); String result = spyMemcachedClient.get(key); - assertEquals(value, result); + assertThat(result).isEqualTo(value); spyMemcachedClient.delete(key); result = spyMemcachedClient.get(key); - assertNull(result); + assertThat(result).isNull(); } @Test public void safeDelete() { String key = "consumer:1"; spyMemcachedClient.set(key, 60, "admin"); - boolean result = spyMemcachedClient.safeDelete(key); - assertTrue(result); - - result = spyMemcachedClient.safeDelete("consumer:1"); - assertFalse(result); + assertThat(spyMemcachedClient.safeDelete(key)).isTrue(); + assertThat(spyMemcachedClient.safeDelete("consumer:1")).isFalse(); } @Test @@ -65,9 +62,9 @@ public void getBulk() { spyMemcachedClient.set(key2, 60 * 60 * 1, value2); Map result = spyMemcachedClient.getBulk(Lists.newArrayList(key1, key2)); - assertEquals(value1, result.get(key1)); - assertEquals(value2, result.get(key2)); - assertNull(result.get(key3)); + assertThat(result.get(key1)).isEqualTo(value1); + assertThat(result.get(key2)).isEqualTo(value2); + assertThat(result.get(key3)).isNull(); } @Test @@ -76,18 +73,17 @@ public void incr() { // 注意,incr返回的数值使用long表达 long result = spyMemcachedClient.incr(key, 2, 1); - assertEquals(1, result); + assertThat(result).isEqualTo(1); // 注意,get返回的数值使用字符串表达 - assertEquals("1", spyMemcachedClient.get(key)); + assertThat(spyMemcachedClient.get(key)).isEqualTo("1"); - result = spyMemcachedClient.incr(key, 2, 1); - assertEquals(3, result); - assertEquals("3", spyMemcachedClient.get(key)); + assertThat(spyMemcachedClient.incr(key, 2, 1)).isEqualTo(3); + assertThat(spyMemcachedClient.get(key)).isEqualTo("3"); key = "set_and_incr_key"; // 注意,set中的数值必须使用字符串,后面的incr操作结果才会正确. spyMemcachedClient.set(key, 60 * 60 * 1, "1"); - result = spyMemcachedClient.incr(key, 2, 1); - assertEquals(3, result); + assertThat(spyMemcachedClient.incr(key, 2, 1)).isEqualTo(3); + } } diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/AdvancedMapDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/AdvancedMapDemo.java index 05269c2c3..d3bd56891 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/AdvancedMapDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/AdvancedMapDemo.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.collection; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.Collection; @@ -33,14 +33,14 @@ public void multiMap() { // 取出key=1的两个值 Collection values = multimap.get(1); - assertEquals(2, values.size()); + assertThat(values).hasSize(2); // size是4不是3 - assertEquals(4, multimap.size()); + assertThat(multimap.size()).isEqualTo(4); // 删除其中一个值 multimap.remove(1, "a"); - assertEquals(1, multimap.get(1).size()); + assertThat(multimap.get(1).size()).isEqualTo(1); } @@ -54,10 +54,10 @@ public void biMap() { bimap.put(1, "a"); bimap.put(2, "b"); - assertEquals(Integer.valueOf(2), inverseMap.get("b")); + assertThat(inverseMap.get("b")).isEqualTo(2); inverseMap.put("c", 3); - assertEquals("c", bimap.get(3)); + assertThat(bimap.get(3)).isEqualTo("c"); } /* @@ -71,7 +71,7 @@ public void table() { table.put(2, "a", "2a"); table.put(2, "b", "2b"); - assertEquals("2a", table.get(2, "a")); + assertThat(table.get(2, "a")).isEqualTo("2a"); } } diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/CollectionsDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/CollectionsDemo.java index 3ce023924..acd751007 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/CollectionsDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/CollectionsDemo.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.collection; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.List; import java.util.Map; @@ -44,22 +44,22 @@ public void operation() { List list2 = Lists.newArrayList("a", "b"); // nullsafe的判断是否为空 - assertFalse(Collections3.isEmpty(list)); + assertThat(Collections3.isEmpty(list)).isFalse(); // 获取最后一个 - assertEquals("c", Collections3.getLast(list)); + assertThat(Collections3.getLast(list)).isEqualTo("c"); // list+list2的新List List result = Collections3.union(list, list2); - assertEquals("[a, b, c, a, b]", result.toString()); + assertThat(result).containsSequence("a", "b", "c", "a", "b"); // list-list2的新List result = Collections3.subtract(list, list2); - assertEquals("[c]", result.toString()); + assertThat(result).containsOnly("c"); // list与list2的交集的新List result = Collections3.intersection(list, list2); - assertEquals("[a, b]", result.toString()); + assertThat(result).containsOnly("a", "b"); } } diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/dozer/DozerDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/dozer/DozerDemo.java index 181f13cab..8a5006f2a 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/dozer/DozerDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/dozer/DozerDemo.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.dozer; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.List; @@ -38,19 +38,19 @@ public void map() { // ProductDTO->Product Product product = BeanMapper.map(productDTO, Product.class); - assertEquals("car", product.getProductName()); + assertThat(product.getProductName()).isEqualTo("car"); // 原来的字符串被Map成Double。 - assertEquals(Double.valueOf(200), product.getPrice()); + assertThat(product.getPrice()).isEqualTo(200); // 原来的PartDTO同样被Map成Part ,Array被Map成List - assertEquals("door", product.getParts().get(0).getName()); + assertThat(product.getParts().get(0).getName()).isEqualTo("door"); // Part中循环依赖的Product同样被赋值。 - assertEquals("car", product.getParts().get(0).getProduct().getProductName()); + assertThat(product.getParts().get(0).getProduct().getProductName()).isEqualTo("car"); // 再反向从Product->ProductDTO ProductDTO productDTO2 = BeanMapper.map(product, ProductDTO.class); - assertEquals("car", productDTO2.getName()); - assertEquals("200.0", productDTO2.getPrice()); - assertEquals("door", productDTO2.getParts()[0].getName()); + assertThat(productDTO2.getName()).isEqualTo("car"); + assertThat(productDTO2.getPrice()).isEqualTo("200.0"); + assertThat(productDTO2.getParts()[0].getName()).isEqualTo("door"); } /** @@ -76,13 +76,13 @@ public void copy() { BeanMapper.copy(productDTO, product); // 原来的horse,被替换成car - assertEquals("car", product.getProductName()); + assertThat(product.getProductName()).isEqualTo("car"); // 原来的20的属性被覆盖成200,同样被从字符串被专为Double。 - assertEquals(Double.valueOf(200), product.getPrice()); + assertThat(product.getPrice()).isEqualTo(200); // DTO中没有的属性值,在Product中被保留 - assertEquals(Double.valueOf(20), product.getWeight()); + assertThat(product.getWeight()).isEqualTo(20); // Part中循环依赖的Product同样被赋值。 - assertEquals("car", product.getParts().get(0).getProduct().getProductName()); + assertThat(product.getParts().get(0).getProduct().getProductName()).isEqualTo("car"); } public static class Product { diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/json/JsonDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/json/JsonDemo.java index 4fe9ff455..afad5b860 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/json/JsonDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/json/JsonDemo.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.json; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.io.IOException; import java.util.Date; @@ -69,7 +69,7 @@ public void toJson() throws Exception { TestBean bean = new TestBean("A"); String beanString = mapper.toJson(bean); System.out.println("Bean:" + beanString); - assertEquals("{\"name\":\"A\"}", beanString); + assertThat(beanString).isEqualTo("{\"name\":\"A\"}"); // Map Map map = Maps.newLinkedHashMap(); @@ -77,25 +77,25 @@ public void toJson() throws Exception { map.put("age", 2); String mapString = mapper.toJson(map); System.out.println("Map:" + mapString); - assertEquals("{\"name\":\"A\",\"age\":2}", mapString); + assertThat(mapString).isEqualTo("{\"name\":\"A\",\"age\":2}"); // List List stringList = Lists.newArrayList("A", "B", "C"); String listString = mapper.toJson(stringList); System.out.println("String List:" + listString); - assertEquals("[\"A\",\"B\",\"C\"]", listString); + assertThat(listString).isEqualTo("[\"A\",\"B\",\"C\"]"); // List List beanList = Lists.newArrayList(new TestBean("A"), new TestBean("B")); String beanListString = mapper.toJson(beanList); System.out.println("Bean List:" + beanListString); - assertEquals("[{\"name\":\"A\"},{\"name\":\"B\"}]", beanListString); + assertThat(beanListString).isEqualTo("[{\"name\":\"A\"},{\"name\":\"B\"}]"); // Bean[] TestBean[] beanArray = new TestBean[] { new TestBean("A"), new TestBean("B") }; String beanArrayString = mapper.toJson(beanArray); System.out.println("Array List:" + beanArrayString); - assertEquals("[{\"name\":\"A\"},{\"name\":\"B\"}]", beanArrayString); + assertThat(beanArrayString).isEqualTo("[{\"name\":\"A\"},{\"name\":\"B\"}]"); } /** @@ -143,15 +143,16 @@ public void threeTypeInclusion() { // 打印全部属性 JsonMapper normalMapper = new JsonMapper(); - assertEquals("{\"name\":\"A\",\"defaultValue\":\"hello\",\"nullValue\":null}", normalMapper.toJson(bean)); + assertThat(normalMapper.toJson(bean)).isEqualTo( + "{\"name\":\"A\",\"defaultValue\":\"hello\",\"nullValue\":null}"); // 不打印nullValue属性 JsonMapper nonEmptyMapper = JsonMapper.nonEmptyMapper(); - assertEquals("{\"name\":\"A\",\"defaultValue\":\"hello\"}", nonEmptyMapper.toJson(bean)); + assertThat(nonEmptyMapper.toJson(bean)).isEqualTo("{\"name\":\"A\",\"defaultValue\":\"hello\"}"); // 不打印默认值未改变的nullValue与defaultValue属性 JsonMapper nonDefaultMaper = JsonMapper.nonDefaultMapper(); - assertEquals("{\"name\":\"A\"}", nonDefaultMaper.toJson(bean)); + assertThat(nonDefaultMaper.toJson(bean)).isEqualTo("{\"name\":\"A\"}"); } /* @@ -161,7 +162,7 @@ public void threeTypeInclusion() { public void jacksonAnnoation() { TestBean2 testBean = new TestBean2(1, "foo", 18); // 结果name属性输出在前,且被改名为productName,且age属性被ignore - assertEquals("{\"productName\":\"foo\",\"id\":1}", mapper.toJson(testBean)); + assertThat(mapper.toJson(testBean)).isEqualTo("{\"productName\":\"foo\",\"id\":1}"); } /* @@ -173,7 +174,7 @@ public void jaxbAnnoation() { newMapper.enableJaxbAnnotation(); TestBean3 testBean = new TestBean3(1, "foo", 18); // 结果name属性输出在前,且被改名为productName,且age属性被ignore - assertEquals("{\"productName\":\"foo\",\"id\":1}", newMapper.toJson(testBean)); + assertThat(newMapper.toJson(testBean)).isEqualTo("{\"productName\":\"foo\",\"id\":1}"); } // 调转顺序 @@ -237,9 +238,9 @@ public void updateBean() { mapper.update(jsonString, bean); // name被赋值 - assertEquals("A", bean.getName()); + assertThat(bean.getName()).isEqualTo("A"); // DefaultValue不在Json串中,依然保留。 - assertEquals("Foobar", bean.getDefaultValue()); + assertThat(bean.getDefaultValue()).isEqualTo("Foobar"); } /** @@ -248,8 +249,7 @@ public void updateBean() { @Test public void jsonp() { TestBean bean = new TestBean("foo"); - String jsonpString = mapper.toJsonP("callback", bean); - assertEquals("callback({\"name\":\"foo\"})", jsonpString); + assertThat(mapper.toJsonP("callback", bean)).isEqualTo("callback({\"name\":\"foo\"})"); } /** @@ -306,17 +306,17 @@ public String toString() { @Test public void enumType() { // toJSon默認使用enum.name() - assertEquals("\"One\"", mapper.toJson(TestEnum.One)); + assertThat(mapper.toJson(TestEnum.One)).isEqualTo("\"One\""); // fromJson使用enum.name()或enum.order() - assertEquals(TestEnum.One, mapper.fromJson("\"One\"", TestEnum.class)); - assertEquals(TestEnum.One, mapper.fromJson("0", TestEnum.class)); + assertThat(mapper.fromJson("\"One\"", TestEnum.class)).isEqualTo(TestEnum.One); + assertThat(mapper.fromJson("0", TestEnum.class)).isEqualTo(TestEnum.One); // 使用enum.toString(), 注意配置必須在所有讀寫動作之前調用. // 建议toString()使用index数字属性,比enum.name()节约了空间,比enum.order()则不会有顺序随时改变不确定的问题。 JsonMapper newMapper = new JsonMapper(); newMapper.enableEnumUseToString(); - assertEquals("\"1\"", newMapper.toJson(TestEnum.One)); - assertEquals(TestEnum.One, newMapper.fromJson("\"1\"", TestEnum.class)); + assertThat(newMapper.toJson(TestEnum.One)).isEqualTo("\"1\""); + assertThat(newMapper.fromJson("\"1\"", TestEnum.class)).isEqualTo(TestEnum.One); } /** @@ -360,14 +360,14 @@ public void dateType() { // to json String expectedJson = "{\"startDate\":" + timestampString + ",\"endDate\":\"" + formatedString + "\",\"dateTime\":" + timestampString + "}"; - assertEquals(expectedJson, mapper.toJson(dateBean)); + assertThat(mapper.toJson(dateBean)).isEqualTo(expectedJson); // from json Date expectedEndDate = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss").parseDateTime(formatedString).toDate(); DateBean resultBean = mapper.fromJson(expectedJson, DateBean.class); - assertEquals(date, resultBean.startDate); - assertEquals(expectedEndDate, resultBean.endDate); + assertThat(resultBean.startDate).isEqualTo(date); + assertThat(resultBean.endDate).isEqualTo(expectedEndDate); } public static class DateBean { @@ -390,31 +390,31 @@ public void nullAndEmpty() { // Null Bean TestBean nullBean = null; String nullBeanString = mapper.toJson(nullBean); - assertEquals("null", nullBeanString); + assertThat(nullBeanString).isEqualTo("null"); // Empty List List emptyList = Lists.newArrayList(); String emptyListString = mapper.toJson(emptyList); - assertEquals("[]", emptyListString); + assertThat(emptyListString).isEqualTo("[]"); // fromJson测试 // // Null String for Bean TestBean nullBeanResult = mapper.fromJson(null, TestBean.class); - assertNull(nullBeanResult); + assertThat(nullBeanResult).isNull(); nullBeanResult = mapper.fromJson("null", TestBean.class); - assertNull(nullBeanResult); + assertThat(nullBeanResult).isNull(); // Null/Empty String for List List nullListResult = mapper.fromJson(null, List.class); - assertNull(nullListResult); + assertThat(nullListResult).isNull(); nullListResult = mapper.fromJson("null", List.class); - assertNull(nullListResult); + assertThat(nullListResult).isNull(); nullListResult = mapper.fromJson("[]", List.class); - assertEquals(0, nullListResult.size()); + assertThat(nullListResult).isEmpty(); } // // 高级应用 //// @@ -436,19 +436,19 @@ public void cycleReferenceBean() { // 序列化是, json字符串裡children中的child1/child2都不包含到parent的屬性 String jsonString = "{\"name\":\"parent\",\"children\":[{\"name\":\"child1\"},{\"name\":\"child2\"}]}"; - assertEquals(jsonString, mapper.toJson(parent)); + assertThat(mapper.toJson(parent)).isEqualTo(jsonString); // 注意此時如果單獨序列化child1,也不會打印parent,信息將丟失。 - assertEquals("{\"name\":\"child1\"}", mapper.toJson(child1)); + assertThat(mapper.toJson(child1)).isEqualTo("{\"name\":\"child1\"}"); // 反向序列化时,Json已很聪明的把parent填入child1/child2中. CycleReferenceBean parentResult = mapper.fromJson(jsonString, CycleReferenceBean.class); - assertEquals("parent", parentResult.getChildren().get(0).getParent().getName()); + assertThat(parentResult.getChildren().get(0).getParent().getName()).isEqualTo("parent"); // 单独反序列化child1,当然parent也是空 CycleReferenceBean child1Result = mapper.fromJson("{\"name\":\"child1\"}", CycleReferenceBean.class); - assertNull(child1Result.parent); - assertEquals("child1", child1Result.getName()); + assertThat(child1Result.parent).isNull(); + assertThat(child1Result.getName()).isEqualTo("child1"); } /** @@ -509,11 +509,11 @@ public void extensibleBean() { String jsonString = "{\"name\" : \"Foobar\",\"age\" : 37,\"occupation\" : \"coder man\"}"; ExtensibleBean extensibleBean = mapper.fromJson(jsonString, ExtensibleBean.class); // 固定属性 - assertEquals("Foobar", extensibleBean.getName()); - assertEquals(null, extensibleBean.getProperties().get("name")); + assertThat(extensibleBean.getName()).isEqualTo("Foobar"); + assertThat(extensibleBean.getProperties().get("name")).isNull(); // 可扩展属性 - assertEquals("coder man", extensibleBean.getProperties().get("occupation")); + assertThat(extensibleBean.getProperties().get("occupation")).isEqualTo("coder man"); } /** @@ -559,11 +559,13 @@ public void multiViewBean() throws IOException { // public view ObjectWriter publicWriter = mapper.getMapper().writerWithView(Views.Public.class); - assertEquals("{\"name\":\"Foo\",\"otherValue\":\"others\"}", publicWriter.writeValueAsString(multiViewBean)); + assertThat(publicWriter.writeValueAsString(multiViewBean)).isEqualTo( + "{\"name\":\"Foo\",\"otherValue\":\"others\"}"); // internal view ObjectWriter internalWriter = mapper.getMapper().writerWithView(Views.Internal.class); - assertEquals("{\"age\":16,\"otherValue\":\"others\"}", internalWriter.writeValueAsString(multiViewBean)); + assertThat(internalWriter.writeValueAsString(multiViewBean)) + .isEqualTo("{\"age\":16,\"otherValue\":\"others\"}"); } @@ -632,11 +634,11 @@ public void customConverter() { String jsonString = newMapper.toJson(user); - assertEquals("{\"name\":\"foo\",\"salary\":\"1.2\"}", jsonString); + assertThat(jsonString).isEqualTo("{\"name\":\"foo\",\"salary\":\"1.2\"}"); // from User resultUser = newMapper.fromJson(jsonString, User.class); - assertEquals(Double.valueOf(1.2), resultUser.getSalary().value); + assertThat(resultUser.getSalary().value).isEqualTo(1.2); } @@ -717,8 +719,7 @@ public void customPropertyNaming() throws JsonMappingException { bean.setDefaultValue("bar"); JsonMapper newMapper = JsonMapper.nonEmptyMapper(); newMapper.getMapper().setPropertyNamingStrategy(new LowerCaseNaming()); - String jsonpString = newMapper.toJson(bean); - assertEquals("{\"name\":\"foo\",\"defaultvalue\":\"bar\"}", jsonpString); + assertThat(newMapper.toJson(bean)).isEqualTo("{\"name\":\"foo\",\"defaultvalue\":\"bar\"}"); } public static class LowerCaseNaming extends PropertyNamingStrategy { diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/StringDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/StringDemo.java index da917ca4b..2fa53c3e8 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/StringDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/StringDemo.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.string; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.List; import java.util.Map; @@ -37,52 +37,52 @@ public class StringDemo { @Test public void utilsByApache() { // 判断非空,最常用函数 - assertFalse(StringUtils.isNotBlank(null)); - assertFalse(StringUtils.isNotBlank("")); - assertFalse(StringUtils.isNotBlank(" ")); + assertThat(StringUtils.isNotBlank(null)).isFalse(); + assertThat(StringUtils.isNotBlank("")).isFalse(); + assertThat(StringUtils.isNotBlank(" ")).isFalse(); // null的default值 - assertEquals("", StringUtils.defaultString(null)); - assertEquals("defaultStr", StringUtils.defaultString(null, "defaultStr")); - assertEquals("defaultStr", StringUtils.defaultIfBlank(null, "defaultStr")); - assertEquals("defaultStr", StringUtils.defaultIfBlank(" ", "defaultStr")); + assertThat(StringUtils.defaultString(null)).isEqualTo(""); + assertThat(StringUtils.defaultString(null, "defaultStr")).isEqualTo("defaultStr"); + assertThat(StringUtils.defaultIfBlank(null, "defaultStr")).isEqualTo("defaultStr"); + assertThat(StringUtils.defaultIfBlank(" ", "defaultStr")).isEqualTo("defaultStr"); // 截取字符串 String input = "hahakaka"; String result = StringUtils.substringAfter(input, "ha"); - assertEquals("hakaka", result); + assertThat(result).isEqualTo("hakaka"); result = StringUtils.substringAfterLast(input, "ha"); - assertEquals("kaka", result); + assertThat(result).isEqualTo("kaka"); - assertEquals("haha", StringUtils.substringBetween("'haha'", "'")); - assertEquals("haha", StringUtils.substringBetween("{haha}", "{", "}")); + assertThat(StringUtils.substringBetween("'haha'", "'")).isEqualTo("haha"); + assertThat(StringUtils.substringBetween("{haha}", "{", "}")).isEqualTo("haha"); // join List inputList = Lists.newArrayList("a", "b", "c"); result = StringUtils.join(inputList, ","); - assertEquals("a,b,c", result); + assertThat(result).isEqualTo("a,b,c"); // ignoreCase的比较函数:contains/startWith/EndWith/indexOf/lastIndexOf - assertTrue(StringUtils.containsIgnoreCase("Aaabbb", "aaa")); - assertEquals(0, StringUtils.indexOfIgnoreCase("Aaabbb", "aaa")); + assertThat(StringUtils.containsIgnoreCase("Aaabbb", "aaa")).isTrue(); + assertThat(StringUtils.indexOfIgnoreCase("Aaabbb", "aaa")).isEqualTo(0); // /split input = "a,b,c"; String[] resultArray = StringUtils.split(input, ","); - assertEquals("b", resultArray[1]); + assertThat(resultArray[1]).isEqualTo("b"); // 左边补0 result = StringUtils.leftPad("1", 3, '0'); - assertEquals("001", result); + assertThat(result).isEqualTo("001"); // 超长部分变省略号 - assertEquals("abcdefg", StringUtils.abbreviate("abcdefg", 7)); - assertEquals("abc...", StringUtils.abbreviate("abcdefg", 6)); + assertThat(StringUtils.abbreviate("abcdefg", 7)).isEqualTo("abcdefg"); + assertThat(StringUtils.abbreviate("abcdefg", 6)).isEqualTo("abc..."); // 首字母大写 - assertEquals("Abc", StringUtils.capitalize("abc")); - assertEquals("abc", StringUtils.uncapitalize("Abc")); + assertThat(StringUtils.capitalize("abc")).isEqualTo("Abc"); + assertThat(StringUtils.uncapitalize("Abc")).isEqualTo("abc"); } /** @@ -96,12 +96,12 @@ public void joinerByGuava() { // 忽略Null值。 String[] fantasyGenres = { "Space Opera", null, "Horror", "Magic realism", null, "Religion" }; String joined = Joiner.on(", ").skipNulls().join(fantasyGenres); - assertEquals("Space Opera, Horror, Magic realism, Religion", joined); + assertThat(joined).isEqualTo("Space Opera, Horror, Magic realism, Religion"); // 将Null值转换为特定字符串. String[] fantasyGenres2 = { "Space Opera", null, "Horror", "Magic realism", null, "Religion" }; joined = Joiner.on(", ").useForNull("NULL!!!").join(fantasyGenres2); - assertEquals("Space Opera, NULL!!!, Horror, Magic realism, NULL!!!, Religion", joined); + assertThat(joined).isEqualTo("Space Opera, NULL!!!, Horror, Magic realism, NULL!!!, Religion"); // join Map类型 Map map = Maps.newHashMap(); @@ -109,12 +109,12 @@ public void joinerByGuava() { map.put(2, "Horror"); map.put(3, "Magic realism"); joined = Joiner.on(",").withKeyValueSeparator(":").join(map); - assertEquals("1:Space Opera,2:Horror,3:Magic realism", joined); + assertThat(joined).isEqualTo("1:Space Opera,2:Horror,3:Magic realism"); // append一个已存在的字符串 StringBuilder sb = new StringBuilder("Append StringBulder demo: "); joined = Joiner.on(", ").skipNulls().appendTo(sb, fantasyGenres).toString(); - assertEquals("Append StringBulder demo: Space Opera, Horror, Magic realism, Religion", joined); + assertThat(joined).isEqualTo("Append StringBulder demo: Space Opera, Horror, Magic realism, Religion"); } /** @@ -123,9 +123,9 @@ public void joinerByGuava() { @Test public void caseFormatByGuava() { String name = "SPACE_SIZE"; - assertEquals("SpaceSize", CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, name)); - assertEquals("spaceSize", CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, name)); - assertEquals("space_size", CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_UNDERSCORE, name)); - assertEquals("space-size", CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_HYPHEN, name)); + assertThat(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, name)).isEqualTo("SpaceSize"); + assertThat(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, name)).isEqualTo("spaceSize"); + assertThat(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_UNDERSCORE, name)).isEqualTo("space_size"); + assertThat(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_HYPHEN, name)).isEqualTo("space-size"); } } diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/time/JodaDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/time/JodaDemo.java index da22d9f86..82e423146 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/time/JodaDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/time/JodaDemo.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.time; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.Locale; @@ -36,13 +36,13 @@ public void convertFromString() { DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"); // 第一种方法,直接构造函数,注意日期和时间之间用T分割 DateTime dt1 = new DateTime("1978-06-01"); - assertEquals(1978, dt1.getYear()); + assertThat(dt1.getYear()).isEqualTo(1978); DateTime dt2 = new DateTime("1978-06-01T12:10:08"); - assertEquals(1978, dt2.getYear()); + assertThat(dt2.getYear()).isEqualTo(1978); // 第二种方法,使用Formatter DateTime dt3 = fmt.parseDateTime(dateString); - assertEquals(1978, dt3.getYear()); + assertThat(dt3.getYear()).isEqualTo(1978); } @@ -123,9 +123,9 @@ public static String formatDateTime(DateTime dateTime, String style, String lang public void daysPlusAndMinusBetweenAndBetweenx() { DateTime now = new DateTime(); DateTime birthDate = now.minusYears(10); - assertEquals(10, Years.yearsBetween(birthDate, new DateTime()).getYears()); + assertThat(Years.yearsBetween(birthDate, new DateTime()).getYears()).isEqualTo(10); birthDate = now.minusYears(10).plusDays(2); - assertEquals(9, Years.yearsBetween(birthDate, new DateTime()).getYears()); + assertThat(Years.yearsBetween(birthDate, new DateTime()).getYears()).isEqualTo(9); } /** diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/validate/ValidateDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/validate/ValidateDemo.java index f9d9e1a3f..b0806bf7d 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/validate/ValidateDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/validate/ValidateDemo.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.validate; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.List; @@ -35,7 +35,7 @@ public void asserts() { Validate.notNull(null); Assert.fail(); } catch (NullPointerException e) { - assertEquals("The validated object is null", e.getMessage()); + assertThat(e).hasMessage("The validated object is null"); } // notBlank String @@ -43,14 +43,14 @@ public void asserts() { String parameter = "abc"; // 可选择将输入参数赋值到新变量 String result = Validate.notBlank(parameter); - assertEquals("abc", result); + assertThat(result).isEqualTo("abc"); // 检验not null,用自定义出错信息. Validate.notBlank("", "The name must not be blank"); Assert.fail(); } catch (IllegalArgumentException e) { - assertEquals("The name must not be blank", e.getMessage()); + assertThat(e).hasMessage("The name must not be blank"); } // notEmpty Collection @@ -59,7 +59,7 @@ public void asserts() { Validate.notEmpty(parameter); Assert.fail(); } catch (IllegalArgumentException e) { - assertEquals("The validated collection is empty", e.getMessage()); + assertThat(e).hasMessage("The validated collection is empty"); } // is true @@ -68,7 +68,7 @@ public void asserts() { Validate.isTrue(1 == 3, "Message %s", "foo"); Assert.fail(); } catch (IllegalArgumentException e) { - assertEquals("Message foo", e.getMessage()); + assertThat(e).hasMessage("Message foo"); } } } diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/JaxbDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/JaxbDemo.java index 374041d5a..d9b21df66 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/JaxbDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/xml/JaxbDemo.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.demos.utilities.xml; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.List; @@ -70,15 +70,11 @@ public void xmlToObject() { System.out.println("Jaxb Xml to Object result:\n" + user); - assertEquals(Long.valueOf(1L), user.getId()); - assertEquals(2, user.getRoles().size()); - assertEquals("admin", user.getRoles().get(0).getName()); - - assertEquals(2, user.getInterests().size()); - assertEquals("movie", user.getInterests().get(0)); - - assertEquals(2, user.getHouses().size()); - assertEquals("house1", user.getHouses().get("bj")); + assertThat(user.getId()).isEqualTo(1); + assertThat(user.getRoles()).hasSize(2); + assertThat(user.getRoles().get(0).getName()).isEqualTo("admin"); + assertThat(user.getInterests()).hasSize(2).containsSequence("movie"); + assertThat(user.getHouses()).hasSize(2).contains(entry("bj", "house1")); } /** @@ -139,17 +135,17 @@ private static void assertXmlByDom4j(String xml) { fail(e.getMessage()); } Element user = doc.getRootElement(); - assertEquals("1", user.attribute("id").getValue()); + assertThat(user.attribute("id").getValue()).isEqualTo("1"); Element adminRole = (Element) doc.selectSingleNode("//roles/role[@id=1]"); - assertEquals(2, adminRole.getParent().elements().size()); - assertEquals("admin", adminRole.attribute("name").getValue()); + assertThat(adminRole.getParent().elements()).hasSize(2); + assertThat(adminRole.attribute("name").getValue()).isEqualTo("admin"); Element interests = (Element) doc.selectSingleNode("//interests"); - assertEquals(2, interests.elements().size()); - assertEquals("movie", ((Element) interests.elements().get(0)).getText()); + assertThat(interests.elements()).hasSize(2); + assertThat(((Element) interests.elements().get(0)).getText()).isEqualTo("movie"); Element house1 = (Element) doc.selectSingleNode("//houses/house[@key='bj']"); - assertEquals("house1", house1.getText()); + assertThat(house1.getText()).isEqualTo("house1"); } } diff --git a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/account/UserManagerFT.java b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/account/UserManagerFT.java index 048d4bc0d..4a1ac8ede 100644 --- a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/account/UserManagerFT.java +++ b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/account/UserManagerFT.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.functional.account; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -29,7 +29,7 @@ public void list() { loginAsAdminIfNecessary(); s.waitForTitleContains("综合演示用例"); WebElement table = s.findElement(By.id("contentTable")); - assertEquals("管理员 ", s.getTable(table, 0, 1)); + assertThat(s.getTable(table, 0, 1)).isEqualTo("管理员 "); } @Test @@ -41,24 +41,24 @@ public void editUser() { s.click(By.id("editLink-user")); - //点击提交按钮 + // 点击提交按钮 s.type(By.name("name"), "user_foo"); s.check(By.id("status2")); s.click(By.id("submit_btn")); - //重新进入用户修改页面, 检查最后修改者 + // 重新进入用户修改页面, 检查最后修改者 s.click(By.id("editLink-user")); - assertEquals("user_foo", s.getValue(By.name("name"))); - assertTrue(s.isChecked(By.id("status2"))); + assertThat(s.getValue(By.name("name"))).isEqualTo("user_foo"); + assertThat(s.isChecked(By.id("status2"))).isTrue(); - //恢复原有值 + // 恢复原有值 s.type(By.name("name"), "user"); s.check(By.id("status1")); s.click(By.id("submit_btn")); } private void loginAsAdminIfNecessary() { - //修改用户需要登录管理员权限 + // 修改用户需要登录管理员权限 if ("Showcase示例:登录页".equals(s.getTitle())) { s.type(By.name("username"), "admin"); s.type(By.name("password"), "admin"); diff --git a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/ajax/AjaxFT.java b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/ajax/AjaxFT.java index 5269ba31c..d4f4b5c87 100644 --- a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/ajax/AjaxFT.java +++ b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/ajax/AjaxFT.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.functional.ajax; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.Test; import org.openqa.selenium.By; @@ -26,6 +26,6 @@ public void mashup() { s.click(By.xpath("//input[@value='获取内容']")); s.waitForVisible(By.id("mashupContent")); - assertEquals("你好,世界!", s.getText(By.id("mashupContent"))); + assertThat(s.getText(By.id("mashupContent"))).isEqualTo("你好,世界!"); } } diff --git a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserJaxRsFT.java b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserJaxRsFT.java index 3897ace34..9bcfaacd6 100644 --- a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserJaxRsFT.java +++ b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserJaxRsFT.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.functional.rest; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.BeforeClass; import org.junit.Test; @@ -33,16 +33,17 @@ public static void initUrl() { @Test public void getUser() { UserDTO user = restTemplate.getForObject(resoureUrl + "/{id}.xml", UserDTO.class, 1L); - assertEquals("admin", user.getLoginName()); - assertEquals("管理员", user.getName()); - assertEquals(new Long(1), user.getTeamId()); + assertThat(user.getLoginName()).isEqualTo("admin"); + assertThat(user.getName()).isEqualTo("管理员"); + assertThat(user.getTeamId()).isEqualTo(1); + try { user = restTemplate.getForObject(resoureUrl + "/{id}.json", UserDTO.class, 1L); } catch (HttpStatusCodeException e) { fail(e.getMessage()); } - assertEquals("admin", user.getLoginName()); - assertEquals("管理员", user.getName()); - assertEquals(new Long(1), user.getTeamId()); + assertThat(user.getLoginName()).isEqualTo("admin"); + assertThat(user.getName()).isEqualTo("管理员"); + assertThat(user.getTeamId()).isEqualTo(1); } } diff --git a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserRestFT.java b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserRestFT.java index 99070e221..2e70682e1 100644 --- a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserRestFT.java +++ b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/rest/UserRestFT.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.functional.rest; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.io.IOException; @@ -98,9 +98,9 @@ public void getUserAsXML() { try { HttpEntity response = jdkTemplate.exchange(resoureUrl + "/{id}.xml", HttpMethod.GET, requestEntity, UserDTO.class, 1L); - assertEquals("admin", response.getBody().getLoginName()); - assertEquals("管理员", response.getBody().getName()); - assertEquals(new Long(1), response.getBody().getTeamId()); + assertThat(response.getBody().getLoginName()).isEqualTo("admin"); + assertThat(response.getBody().getName()).isEqualTo("管理员"); + assertThat(response.getBody().getTeamId()).isEqualTo(1); // 直接取出XML串 HttpEntity xml = jdkTemplate.exchange(resoureUrl + "/{id}.xml", HttpMethod.GET, requestEntity, @@ -120,9 +120,9 @@ public void getUserAsXML() { @Category(Smoke.class) public void getUserAsJson() { UserDTO user = httpClientRestTemplate.getForObject(resoureUrl + "/{id}.json", UserDTO.class, 1L); - assertEquals("admin", user.getLoginName()); - assertEquals("管理员", user.getName()); - assertEquals(new Long(1), user.getTeamId()); + assertThat(user.getLoginName()).isEqualTo("admin"); + assertThat(user.getName()).isEqualTo("管理员"); + assertThat(user.getTeamId()).isEqualTo(1); try { // 直接取出JSON串 @@ -148,7 +148,7 @@ public void authWithHttpBasic() { jdkTemplate.exchange(resoureUrl + "/{id}.xml", HttpMethod.GET, requestEntity, UserDTO.class, 1L); fail("Get should fail with error username/password"); } catch (HttpStatusCodeException e) { - assertEquals(HttpStatus.UNAUTHORIZED, e.getStatusCode()); + assertThat(e.getStatusCode()).isEqualTo(HttpStatus.UNAUTHORIZED); } } diff --git a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/soap/AccountWebServiceWithDynamicCreateClientFT.java b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/soap/AccountWebServiceWithDynamicCreateClientFT.java index cdb7f9011..54bde130c 100644 --- a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/soap/AccountWebServiceWithDynamicCreateClientFT.java +++ b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/soap/AccountWebServiceWithDynamicCreateClientFT.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.functional.soap; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import javax.xml.ws.BindingProvider; @@ -40,11 +40,11 @@ public AccountSoapService creatClient() { proxyFactory.setServiceClass(AccountSoapService.class); AccountSoapService accountWebServiceProxy = (AccountSoapService) proxyFactory.create(); - //(可选)演示重新设定endpoint address. + // (可选)演示重新设定endpoint address. ((BindingProvider) accountWebServiceProxy).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, address); - //(可选)演示重新设定Timeout时间 + // (可选)演示重新设定Timeout时间 Client client = ClientProxy.getClient(accountWebServiceProxy); HTTPConduit conduit = (HTTPConduit) client.getConduit(); HTTPClientPolicy policy = conduit.getClient(); @@ -62,7 +62,7 @@ public void getTeamDetail() { AccountSoapService accountWebService = creatClient(); GetTeamDetailResult result = accountWebService.getTeamDetail(1L); - assertEquals("Dolphin", result.getTeam().getName()); - assertEquals("管理员", result.getTeam().getMaster().getName()); + assertThat(result.getTeam().getName()).isEqualTo("Dolphin"); + assertThat(result.getTeam().getMaster().getName()).isEqualTo("管理员"); } } diff --git a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/soap/AccountWebServiceWithPredefineClientFT.java b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/soap/AccountWebServiceWithPredefineClientFT.java index ff10fc249..833691c17 100644 --- a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/soap/AccountWebServiceWithPredefineClientFT.java +++ b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/soap/AccountWebServiceWithPredefineClientFT.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.functional.soap; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -51,7 +51,7 @@ public class AccountWebServiceWithPredefineClientFT extends BaseFunctionalTestCa @Category(Smoke.class) public void getUser() { GetUserResult response = accountWebServiceClient.getUser(1L); - assertEquals("admin", response.getUser().getLoginName()); + assertThat(response.getUser().getLoginName()).isEqualTo("admin"); } /** @@ -59,11 +59,10 @@ public void getUser() { */ @Test public void searchUser() { - SearchUserResult response = accountWebServiceClient.searchUser(null, null); - assertTrue(response.getUserList().size() >= 4); - assertEquals("管理员", response.getUserList().get(0).getName()); + assertThat(response.getUserList().size() >= 4).isTrue(); + assertThat(response.getUserList().get(0).getName()).isEqualTo("管理员"); } /** @@ -75,9 +74,9 @@ public void createUser() { UserDTO userDTO = BeanMapper.map(user, UserDTO.class); IdResult response = accountWebServiceClient.createUser(userDTO); - assertNotNull(response.getId()); + assertThat(response.getId()).isNotNull(); GetUserResult response2 = accountWebServiceClient.getUser(response.getId()); - assertEquals(user.getLoginName(), response2.getUser().getLoginName()); + assertThat(response2.getUser().getLoginName()).isEqualTo(user.getLoginName()); } /** @@ -88,14 +87,14 @@ public void createUserWithInvalidLoginName() { User user = UserData.randomUser(); UserDTO userDTO = BeanMapper.map(user, UserDTO.class); - //登录名为空 + // 登录名为空 userDTO.setLoginName(null); IdResult response = accountWebServiceClient.createUser(userDTO); - assertEquals(WSResult.PARAMETER_ERROR, response.getCode()); + assertThat(response.getCode()).isEqualTo(WSResult.PARAMETER_ERROR); - //登录名重复 + // 登录名重复 userDTO.setLoginName("user"); response = accountWebServiceClient.createUser(userDTO); - assertEquals(WSResult.PARAMETER_ERROR, response.getCode()); + assertThat(response.getCode()).isEqualTo(WSResult.PARAMETER_ERROR); } } diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/jms/JmsAdvancedTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/jms/JmsAdvancedTest.java index 29adc3fcd..c60664bfa 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/jms/JmsAdvancedTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/jms/JmsAdvancedTest.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.demos.jms; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import javax.annotation.Resource; import javax.jms.Destination; @@ -55,7 +55,8 @@ public void queueMessage() { notifyMessageProducer.sendQueue(user); Threads.sleep(1000); - assertEquals("UserName:calvin, Email:calvin@sringside.org.cn, ObjectType:user", appender.getFirstMessage()); + assertThat(appender.getFirstMessage()).isEqualTo( + "UserName:calvin, Email:calvin@sringside.org.cn, ObjectType:user"); } @Test @@ -70,7 +71,8 @@ public void topicMessage() { notifyMessageProducer.sendTopic(user); Threads.sleep(1000); - assertEquals("UserName:calvin, Email:calvin@sringside.org.cn, ObjectType:user", appender.getFirstMessage()); + assertThat(appender.getFirstMessage()).isEqualTo( + "UserName:calvin, Email:calvin@sringside.org.cn, ObjectType:user"); } @Test @@ -90,6 +92,6 @@ public Message createMessage(Session session) throws JMSException { }); Threads.sleep(1000); - assertTrue(appender.isEmpty()); + assertThat(appender.isEmpty()).isTrue(); } } diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/jms/JmsSimpleTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/jms/JmsSimpleTest.java index 3211b0054..b9db57a7e 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/jms/JmsSimpleTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/jms/JmsSimpleTest.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.demos.jms; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -42,7 +42,7 @@ public void queueMessage() { logger.info("sended message"); Threads.sleep(1000); - assertEquals("UserName:calvin, Email:calvin@sringside.org.cn", appender.getFirstMessage()); + assertThat(appender.getFirstMessage()).isEqualTo("UserName:calvin, Email:calvin@sringside.org.cn"); } @Test @@ -59,6 +59,6 @@ public void topicMessage() { logger.info("sended message"); Threads.sleep(1000); - assertEquals("UserName:calvin, Email:calvin@sringside.org.cn", appender.getFirstMessage()); + assertThat(appender.getFirstMessage()).isEqualTo("UserName:calvin, Email:calvin@sringside.org.cn"); } } diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/mail/MailServiceTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/mail/MailServiceTest.java index 98501968b..ee3add312 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/mail/MailServiceTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/mail/MailServiceTest.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.demos.mail; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.io.IOException; @@ -48,12 +48,11 @@ public void sendSimpleMail() throws MessagingException, InterruptedException, IO MimeMessage[] messages = greenMail.getReceivedMessages(); MimeMessage message = messages[messages.length - 1]; - assertEquals("springside3.demo@gmail.com", message.getFrom()[0].toString()); - assertEquals("用户修改通知", message.getSubject()); + assertThat(message.getFrom()[0].toString()).isEqualTo("springside3.demo@gmail.com"); + assertThat(message.getSubject()).isEqualTo("用户修改通知"); // text格式内容 System.out.println(message.getContent()); - assertTrue(((String) message.getContent()).contains("被修改")); - + assertThat(((String) message.getContent())).contains("被修改"); } @Test @@ -64,21 +63,20 @@ public void sendMimeMail() throws InterruptedException, MessagingException, IOEx MimeMessage[] messages = greenMail.getReceivedMessages(); MimeMessage message = messages[messages.length - 1]; - assertEquals("springside3.demo@gmail.com", message.getFrom()[0].toString()); - assertEquals("用户修改通知", message.getSubject()); + assertThat(message.getFrom()[0].toString()).isEqualTo("springside3.demo@gmail.com"); + assertThat(message.getSubject()).isEqualTo("用户修改通知"); MimeMultipart mimeMultipart = (MimeMultipart) message.getContent(); - assertEquals(2, mimeMultipart.getCount()); + assertThat(mimeMultipart.getCount()).isEqualTo(2); // Html格式的主邮件 String mainPartText = getMainPartText(mimeMultipart.getBodyPart(0)); System.out.println(mainPartText); - assertTrue(mainPartText.contains("

    用户calvin被修改.

    ")); + assertThat(mainPartText).contains("

    用户calvin被修改.

    "); // 附件 - assertEquals("Hello,i am a attachment.", GreenMailUtil.getBody(mimeMultipart.getBodyPart(1)).trim()); - + assertThat(GreenMailUtil.getBody(mimeMultipart.getBodyPart(1)).trim()).isEqualTo("Hello,i am a attachment."); } private String getMainPartText(Part mainPart) throws MessagingException, IOException { diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/JdkTimerJobTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/JdkTimerJobTest.java index 91836e54b..bb125efbb 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/JdkTimerJobTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/JdkTimerJobTest.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.demos.schedule; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -43,7 +43,7 @@ public void scheduleJob() throws Exception { Threads.sleep(3000); // 验证任务已执行 - assertEquals(1, appender.getLogsCount()); - assertEquals("There are 6 user in database.", appender.getFirstMessage()); + assertThat(appender.getLogsCount()).isEqualTo(1); + assertThat(appender.getFirstMessage()).isEqualTo("There are 6 user in database."); } } diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/QuartzTimerClusterJobTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/QuartzTimerClusterJobTest.java index 6b01ea695..f94e1eec4 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/QuartzTimerClusterJobTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/QuartzTimerClusterJobTest.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.demos.schedule; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -48,8 +48,7 @@ public void scheduleJob() throws Exception { Threads.sleep(4000); // 验证任务已执行 - assertEquals(1, appender.getLogsCount()); - - assertEquals("There are 6 user in database, on node default.", appender.getFirstMessage()); + assertThat(appender.getLogsCount()).isEqualTo(1); + assertThat(appender.getFirstMessage()).isEqualTo("There are 6 user in database, on node default."); } } diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/SpringTimerJobTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/SpringTimerJobTest.java index 131209084..ffb2d4771 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/SpringTimerJobTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/schedule/SpringTimerJobTest.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.demos.schedule; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -43,7 +43,7 @@ public void scheduleJob() throws Exception { Threads.sleep(2000); // 验证任务已执行 - assertEquals(1, appender.getLogsCount()); - assertEquals("There are 6 user in database.", appender.getFirstMessage()); + assertThat(appender.getLogsCount()).isEqualTo(1); + assertThat(appender.getFirstMessage()).isEqualTo("There are 6 user in database."); } } diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/web/CacheControlHeaderFilterTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/web/CacheControlHeaderFilterTest.java index 3447acf72..45df91f27 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/demos/web/CacheControlHeaderFilterTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/demos/web/CacheControlHeaderFilterTest.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.demos.web; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.io.IOException; @@ -30,6 +30,6 @@ public void test() throws IOException, ServletException { filter.init(config); filter.doFilter(request, response, chain); - assertEquals("private, max-age=123", response.getHeader("Cache-Control")); + assertThat(response.getHeader("Cache-Control")).isEqualTo("private, max-age=123"); } } diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/repository/jpa/DynamicSpecificationTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/repository/jpa/DynamicSpecificationTest.java index 37c9c6477..a9238ea3d 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/repository/jpa/DynamicSpecificationTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/repository/jpa/DynamicSpecificationTest.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.repository.jpa; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.ArrayList; import java.util.List; @@ -35,81 +35,81 @@ public void fineUserByFilter() { SearchFilter filter = new SearchFilter("name", Operator.EQ, "管理员"); List users = userDao .findAll(DynamicSpecifications.bySearchFilter(Lists.newArrayList(filter), User.class)); - assertEquals(1, users.size()); + assertThat(users).hasSize(1); // LIKE filter = new SearchFilter("loginName", Operator.LIKE, "min"); users = userDao.findAll(DynamicSpecifications.bySearchFilter(Lists.newArrayList(filter), User.class)); - assertEquals(1, users.size()); + assertThat(users).hasSize(1); // GT filter = new SearchFilter("id", Operator.GT, "1"); users = userDao.findAll(DynamicSpecifications.bySearchFilter(Lists.newArrayList(filter), User.class)); - assertEquals(5, users.size()); + assertThat(users).hasSize(5); filter = new SearchFilter("id", Operator.GT, "6"); users = userDao.findAll(DynamicSpecifications.bySearchFilter(Lists.newArrayList(filter), User.class)); - assertEquals(0, users.size()); + assertThat(users).isEmpty(); // GTE filter = new SearchFilter("id", Operator.GTE, "1"); users = userDao.findAll(DynamicSpecifications.bySearchFilter(Lists.newArrayList(filter), User.class)); - assertEquals(6, users.size()); + assertThat(users).hasSize(6); filter = new SearchFilter("id", Operator.GTE, "6"); users = userDao.findAll(DynamicSpecifications.bySearchFilter(Lists.newArrayList(filter), User.class)); - assertEquals(1, users.size()); + assertThat(users).hasSize(1); // LT filter = new SearchFilter("id", Operator.LT, "6"); users = userDao.findAll(DynamicSpecifications.bySearchFilter(Lists.newArrayList(filter), User.class)); - assertEquals(5, users.size()); + assertThat(users).hasSize(5); filter = new SearchFilter("id", Operator.LT, "1"); users = userDao.findAll(DynamicSpecifications.bySearchFilter(Lists.newArrayList(filter), User.class)); - assertEquals(0, users.size()); + assertThat(users).isEmpty(); // LTE filter = new SearchFilter("id", Operator.LTE, "6"); users = userDao.findAll(DynamicSpecifications.bySearchFilter(Lists.newArrayList(filter), User.class)); - assertEquals(6, users.size()); + assertThat(users).hasSize(6); filter = new SearchFilter("id", Operator.LTE, "1"); users = userDao.findAll(DynamicSpecifications.bySearchFilter(Lists.newArrayList(filter), User.class)); - assertEquals(1, users.size()); + assertThat(users).hasSize(1); // Empty filters, select all users = userDao.findAll(DynamicSpecifications.bySearchFilter(new ArrayList(), User.class)); - assertEquals(6, users.size()); + assertThat(users).hasSize(6); users = userDao.findAll(DynamicSpecifications.bySearchFilter(null, User.class)); - assertEquals(6, users.size()); + assertThat(users).hasSize(6); // AND 2 Conditions SearchFilter filter1 = new SearchFilter("name", Operator.EQ, "管理员"); SearchFilter filter2 = new SearchFilter("loginName", Operator.LIKE, "min"); users = userDao.findAll(DynamicSpecifications.bySearchFilter(Lists.newArrayList(filter1, filter2), User.class)); - assertEquals(1, users.size()); + assertThat(users).hasSize(1); filter1 = new SearchFilter("name", Operator.EQ, "管理员"); filter2 = new SearchFilter("loginName", Operator.LIKE, "user"); users = userDao.findAll(DynamicSpecifications.bySearchFilter(Lists.newArrayList(filter1, filter2), User.class)); - assertEquals(0, users.size()); + assertThat(users).isEmpty(); // 2 conditions on same field filter1 = new SearchFilter("id", Operator.GTE, "1"); filter2 = new SearchFilter("id", Operator.LTE, "6"); users = userDao.findAll(DynamicSpecifications.bySearchFilter(Lists.newArrayList(filter1, filter2), User.class)); - assertEquals(6, users.size()); + assertThat(users).hasSize(6); // Nest Attribute filter = new SearchFilter("team.id", Operator.EQ, "1"); users = userDao.findAll(DynamicSpecifications.bySearchFilter(Lists.newArrayList(filter), User.class)); - assertEquals(6, users.size()); + assertThat(users).hasSize(6); filter = new SearchFilter("team.id", Operator.EQ, "10"); users = userDao.findAll(DynamicSpecifications.bySearchFilter(Lists.newArrayList(filter), User.class)); - assertEquals(0, users.size()); + assertThat(users).isEmpty(); } } diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/repository/jpa/JpaMappingTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/repository/jpa/JpaMappingTest.java index bd5462c18..e13711b85 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/repository/jpa/JpaMappingTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/repository/jpa/JpaMappingTest.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.repository.jpa; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @@ -35,7 +35,7 @@ public class JpaMappingTest extends SpringTransactionalTestCase { public void allClassMapping() throws Exception { Metamodel model = em.getEntityManagerFactory().getMetamodel(); - assertTrue("No entity mapping found", model.getEntities().size() > 0); + assertThat(model.getEntities()).as("No entity mapping found").isNotEmpty(); for (EntityType entityType : model.getEntities()) { String entityName = entityType.getName(); diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/repository/mybatis/TeamMybatisDaoTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/repository/mybatis/TeamMybatisDaoTest.java index b0fcbf5ae..e9158cc30 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/repository/mybatis/TeamMybatisDaoTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/repository/mybatis/TeamMybatisDaoTest.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.repository.mybatis; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -24,8 +24,7 @@ public class TeamMybatisDaoTest extends SpringTransactionalTestCase { @Test public void getTeamWithDetail() throws Exception { Team team = teamDao.getWithDetail(1L); - assertEquals("Dolphin", team.getName()); - assertEquals("管理员", team.getMaster().getName()); + assertThat(team.getName()).isEqualTo("Dolphin"); + assertThat(team.getMaster().getName()).isEqualTo("管理员"); } - } diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/repository/mybatis/UserMybatisDaoTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/repository/mybatis/UserMybatisDaoTest.java index b08bb99cd..3e44ed734 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/repository/mybatis/UserMybatisDaoTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/repository/mybatis/UserMybatisDaoTest.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.repository.mybatis; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import java.util.List; import java.util.Map; @@ -30,8 +30,8 @@ public class UserMybatisDaoTest extends SpringTransactionalTestCase { @Test public void getUser() throws Exception { User user = userDao.get(1L); - assertNotNull("User not found", user); - assertEquals("admin", user.getLoginName()); + assertThat(user).as("User not found").isNotNull(); + assertThat(user.getLoginName()).isEqualTo("admin"); } @Test @@ -39,8 +39,8 @@ public void searchUser() throws Exception { Map parameter = Maps.newHashMap(); parameter.put("name", "管理员"); List result = userDao.search(parameter); - assertEquals(1, result.size()); - assertEquals("admin", result.get(0).getLoginName()); + assertThat(result).hasSize(1); + assertThat(result.get(0).getLoginName()).isEqualTo("admin"); } @Test @@ -51,14 +51,14 @@ public void createAndDeleteUser() throws Exception { userDao.save(user); Long id = user.getId(); - assertEquals(count + 1, countRowsInTable("ss_user")); + assertThat(countRowsInTable("ss_user")).isEqualTo(count + 1); User result = userDao.get(id); - assertEquals(user.getLoginName(), result.getLoginName()); + assertThat(result.getLoginName()).isEqualTo(user.getLoginName()); // delete userDao.delete(id); - assertEquals(count, countRowsInTable("ss_user")); - assertNull(userDao.get(id)); + assertThat(countRowsInTable("ss_user")).isEqualTo(count); + assertThat(userDao.get(id)).isNull(); } } diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/service/AccountServiceTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/service/AccountServiceTest.java index 768336cc5..e3a02db2b 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/service/AccountServiceTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/service/AccountServiceTest.java @@ -5,7 +5,7 @@ *******************************************************************************/ package org.springside.examples.showcase.service; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import org.junit.After; import org.junit.Before; From c771be6c93416de4d1320bc2468c26ee06f9d274 Mon Sep 17 00:00:00 2001 From: Calvin Date: Sat, 18 Jan 2014 15:52:14 +0800 Subject: [PATCH 036/356] =?UTF-8?q?#309=20Spring=204.0,=20=E4=BD=BF?= =?UTF-8?q?=E7=94=A8@RestController=EF=BC=8C=E4=B8=8D=E7=94=A8=E6=AF=8F?= =?UTF-8?q?=E4=B8=AA=E6=96=B9=E6=B3=95=E9=83=BD=E5=AE=9A=E4=B9=89@Response?= =?UTF-8?q?Body?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../examples/quickstart/rest/TaskRestController.java | 8 ++------ .../showcase/webservice/rest/UserRestController.java | 6 ++---- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/rest/TaskRestController.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/rest/TaskRestController.java index 99fbfb4a3..62b026c66 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/rest/TaskRestController.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/rest/TaskRestController.java @@ -16,13 +16,12 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestController; import org.springframework.web.util.UriComponentsBuilder; import org.springside.examples.quickstart.entity.Task; import org.springside.examples.quickstart.service.task.TaskService; @@ -34,7 +33,7 @@ * * @author calvin */ -@Controller +@RestController @RequestMapping(value = "/api/v1/task") public class TaskRestController { @@ -47,13 +46,11 @@ public class TaskRestController { private Validator validator; @RequestMapping(method = RequestMethod.GET, produces = MediaTypes.JSON_UTF_8) - @ResponseBody public List list() { return taskService.getAllTask(); } @RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = MediaTypes.JSON_UTF_8) - @ResponseBody public Task get(@PathVariable("id") Long id) { Task task = taskService.getTask(id); if (task == null) { @@ -65,7 +62,6 @@ public Task get(@PathVariable("id") Long id) { } @RequestMapping(method = RequestMethod.POST, consumes = MediaTypes.JSON) - @ResponseBody public ResponseEntity create(@RequestBody Task task, UriComponentsBuilder uriBuilder) { // 调用JSR303 Bean Validator进行校验, 异常将由RestExceptionHandler统一处理. BeanValidators.validateWithException(validator, task); diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserRestController.java b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserRestController.java index 8f9fa916a..9815c08e5 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserRestController.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserRestController.java @@ -11,11 +11,10 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; -import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; import org.springside.examples.showcase.entity.User; import org.springside.examples.showcase.service.AccountEffectiveService; import org.springside.modules.mapper.BeanMapper; @@ -28,7 +27,7 @@ * * @author calvin */ -@Controller +@RestController @RequestMapping(value = { "/api/v1/user", "/api/secure/v1/user" }) public class UserRestController { private static Logger logger = LoggerFactory.getLogger(UserRestController.class); @@ -50,7 +49,6 @@ public void register() { * /api/v1/user/1 返回xml(why?) */ @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody public UserDTO getUser(@PathVariable("id") Long id) { final ExecutionTimer exectuionTimer = executionMetrics.start(); try { From 2478aa8f3295964fc3eb2f71dba1d4ddd614a698 Mon Sep 17 00:00:00 2001 From: Calvin Date: Sat, 18 Jan 2014 16:07:54 +0800 Subject: [PATCH 037/356] =?UTF-8?q?#309=20Spring=204.0,=20=E4=BD=BF?= =?UTF-8?q?=E7=94=A8@RestController=EF=BC=8Cupdate=20shcema=20version?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/applicationContext-shiro.xml | 2 +- .../src/main/resources/applicationContext.xml | 10 +++++----- .../quickstart/src/main/webapp/WEB-INF/spring-mvc.xml | 6 +++--- .../main/resources/applicationContext-showcases.xml | 2 +- .../showcase/src/main/resources/applicationContext.xml | 10 +++++----- .../resources/cache/applicationContext-ehcache.xml | 2 +- .../resources/cache/applicationContext-memcached.xml | 2 +- .../main/resources/email/applicationContext-email.xml | 2 +- .../resources/jms/applicationContext-jms-advanced.xml | 2 +- .../resources/jms/applicationContext-jms-simple.xml | 2 +- .../src/main/resources/jmx/applicationContext-jmx.xml | 4 ++-- .../resources/monitor/applicationContext-metrics.xml | 2 +- .../resources/monitor/applicationContext-profiler.xml | 4 ++-- .../schedule/applicationContext-jdk-timer.xml | 2 +- .../schedule/applicationContext-quartz-cron-local.xml | 2 +- .../applicationContext-quartz-timer-cluster.xml | 4 ++-- .../schedule/applicationContext-spring-scheduler.xml | 4 ++-- .../resources/security/applicationContext-shiro.xml | 2 +- .../webservice/applicationContext-jaxrs-server.xml | 2 +- .../webservice/applicationContext-soap-server.xml | 2 +- .../showcase/src/main/webapp/WEB-INF/spring-mvc.xml | 6 +++--- .../test/resources/applicationContext-soap-client.xml | 4 ++-- .../test/resources/applicationContext-core-test.xml | 6 +++--- .../src/test/resources/applicationContext-mail.xml | 2 +- .../test/resources/applicationContext-memcached.xml | 2 +- 25 files changed, 44 insertions(+), 44 deletions(-) diff --git a/examples/quickstart/src/main/resources/applicationContext-shiro.xml b/examples/quickstart/src/main/resources/applicationContext-shiro.xml index 5d0da1e90..c6fc5dbec 100644 --- a/examples/quickstart/src/main/resources/applicationContext-shiro.xml +++ b/examples/quickstart/src/main/resources/applicationContext-shiro.xml @@ -1,6 +1,6 @@ Shiro安全配置 diff --git a/examples/quickstart/src/main/resources/applicationContext.xml b/examples/quickstart/src/main/resources/applicationContext.xml index c6150a2fe..9217c51a1 100644 --- a/examples/quickstart/src/main/resources/applicationContext.xml +++ b/examples/quickstart/src/main/resources/applicationContext.xml @@ -4,11 +4,11 @@ xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xsi:schemaLocation=" - http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd - http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd - http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd - http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd - http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd + http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd + http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd + http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd + http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd" default-lazy-init="true"> diff --git a/examples/quickstart/src/main/webapp/WEB-INF/spring-mvc.xml b/examples/quickstart/src/main/webapp/WEB-INF/spring-mvc.xml index 76b637458..21f0299e3 100644 --- a/examples/quickstart/src/main/webapp/WEB-INF/spring-mvc.xml +++ b/examples/quickstart/src/main/webapp/WEB-INF/spring-mvc.xml @@ -3,9 +3,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" - xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd - http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd - http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> + xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd + http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> diff --git a/examples/showcase/src/main/resources/applicationContext-showcases.xml b/examples/showcase/src/main/resources/applicationContext-showcases.xml index 4fd8e3275..808b47267 100644 --- a/examples/showcase/src/main/resources/applicationContext-showcases.xml +++ b/examples/showcase/src/main/resources/applicationContext-showcases.xml @@ -1,6 +1,6 @@ + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> 导入ShowCase中的applicationContext文件列表 diff --git a/examples/showcase/src/main/resources/applicationContext.xml b/examples/showcase/src/main/resources/applicationContext.xml index 4c4684596..98303d841 100644 --- a/examples/showcase/src/main/resources/applicationContext.xml +++ b/examples/showcase/src/main/resources/applicationContext.xml @@ -4,11 +4,11 @@ xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xsi:schemaLocation=" - http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd - http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd - http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd - http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd - http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd + http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd + http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd + http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd + http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd" default-lazy-init="true"> diff --git a/examples/showcase/src/main/resources/cache/applicationContext-ehcache.xml b/examples/showcase/src/main/resources/cache/applicationContext-ehcache.xml index a5e09e9f1..7382cc374 100644 --- a/examples/showcase/src/main/resources/cache/applicationContext-ehcache.xml +++ b/examples/showcase/src/main/resources/cache/applicationContext-ehcache.xml @@ -1,6 +1,6 @@ EhCache配置文件 diff --git a/examples/showcase/src/main/resources/cache/applicationContext-memcached.xml b/examples/showcase/src/main/resources/cache/applicationContext-memcached.xml index 4fbfe0ec7..0086b2977 100644 --- a/examples/showcase/src/main/resources/cache/applicationContext-memcached.xml +++ b/examples/showcase/src/main/resources/cache/applicationContext-memcached.xml @@ -1,6 +1,6 @@ diff --git a/examples/showcase/src/main/resources/email/applicationContext-email.xml b/examples/showcase/src/main/resources/email/applicationContext-email.xml index 49c01beaa..fd6f4eb68 100644 --- a/examples/showcase/src/main/resources/email/applicationContext-email.xml +++ b/examples/showcase/src/main/resources/email/applicationContext-email.xml @@ -1,6 +1,6 @@ Email配置 diff --git a/examples/showcase/src/main/resources/jms/applicationContext-jms-advanced.xml b/examples/showcase/src/main/resources/jms/applicationContext-jms-advanced.xml index 6fa1f9441..1368c5357 100644 --- a/examples/showcase/src/main/resources/jms/applicationContext-jms-advanced.xml +++ b/examples/showcase/src/main/resources/jms/applicationContext-jms-advanced.xml @@ -1,6 +1,6 @@ + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> JMS高级应用配置(NON_PERSISTENT,DURIABLE,SELECTOR) diff --git a/examples/showcase/src/main/resources/jms/applicationContext-jms-simple.xml b/examples/showcase/src/main/resources/jms/applicationContext-jms-simple.xml index 3a3ea8422..250e6f5a9 100644 --- a/examples/showcase/src/main/resources/jms/applicationContext-jms-simple.xml +++ b/examples/showcase/src/main/resources/jms/applicationContext-jms-simple.xml @@ -1,6 +1,6 @@ + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> JMS简单应用配置 diff --git a/examples/showcase/src/main/resources/jmx/applicationContext-jmx.xml b/examples/showcase/src/main/resources/jmx/applicationContext-jmx.xml index f425f857e..cf1c6b2ec 100644 --- a/examples/showcase/src/main/resources/jmx/applicationContext-jmx.xml +++ b/examples/showcase/src/main/resources/jmx/applicationContext-jmx.xml @@ -1,8 +1,8 @@ + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> JMX服务端配置 diff --git a/examples/showcase/src/main/resources/monitor/applicationContext-metrics.xml b/examples/showcase/src/main/resources/monitor/applicationContext-metrics.xml index 44d17199a..dc6219ca8 100644 --- a/examples/showcase/src/main/resources/monitor/applicationContext-metrics.xml +++ b/examples/showcase/src/main/resources/monitor/applicationContext-metrics.xml @@ -1,7 +1,7 @@ + http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> Metrics监控配置 diff --git a/examples/showcase/src/main/resources/monitor/applicationContext-profiler.xml b/examples/showcase/src/main/resources/monitor/applicationContext-profiler.xml index ac8acc694..203c00327 100644 --- a/examples/showcase/src/main/resources/monitor/applicationContext-profiler.xml +++ b/examples/showcase/src/main/resources/monitor/applicationContext-profiler.xml @@ -2,8 +2,8 @@ + http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd + http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd"> JavaSimon监控配置 diff --git a/examples/showcase/src/main/resources/schedule/applicationContext-jdk-timer.xml b/examples/showcase/src/main/resources/schedule/applicationContext-jdk-timer.xml index cc93f224a..0be513b1f 100644 --- a/examples/showcase/src/main/resources/schedule/applicationContext-jdk-timer.xml +++ b/examples/showcase/src/main/resources/schedule/applicationContext-jdk-timer.xml @@ -1,6 +1,6 @@ 使用JDK ScheduledExecutorService的定时任务配置 diff --git a/examples/showcase/src/main/resources/schedule/applicationContext-quartz-cron-local.xml b/examples/showcase/src/main/resources/schedule/applicationContext-quartz-cron-local.xml index d4acc24b5..873060a1a 100644 --- a/examples/showcase/src/main/resources/schedule/applicationContext-quartz-cron-local.xml +++ b/examples/showcase/src/main/resources/schedule/applicationContext-quartz-cron-local.xml @@ -1,6 +1,6 @@ Quartz的本地Cron式执行任务配置 diff --git a/examples/showcase/src/main/resources/schedule/applicationContext-quartz-timer-cluster.xml b/examples/showcase/src/main/resources/schedule/applicationContext-quartz-timer-cluster.xml index 1cb9853c5..0716ebb82 100644 --- a/examples/showcase/src/main/resources/schedule/applicationContext-quartz-timer-cluster.xml +++ b/examples/showcase/src/main/resources/schedule/applicationContext-quartz-timer-cluster.xml @@ -1,8 +1,8 @@ Quartz的定时集群任务配置 diff --git a/examples/showcase/src/main/resources/schedule/applicationContext-spring-scheduler.xml b/examples/showcase/src/main/resources/schedule/applicationContext-spring-scheduler.xml index 98d8a8f11..3a3bf3e51 100644 --- a/examples/showcase/src/main/resources/schedule/applicationContext-spring-scheduler.xml +++ b/examples/showcase/src/main/resources/schedule/applicationContext-spring-scheduler.xml @@ -1,8 +1,8 @@ 使用Spring的 Scheduled的定时任务配置 diff --git a/examples/showcase/src/main/resources/security/applicationContext-shiro.xml b/examples/showcase/src/main/resources/security/applicationContext-shiro.xml index 8295a7f53..d688cdf08 100644 --- a/examples/showcase/src/main/resources/security/applicationContext-shiro.xml +++ b/examples/showcase/src/main/resources/security/applicationContext-shiro.xml @@ -1,6 +1,6 @@ Shiro安全配置 diff --git a/examples/showcase/src/main/resources/webservice/applicationContext-jaxrs-server.xml b/examples/showcase/src/main/resources/webservice/applicationContext-jaxrs-server.xml index 6de5702d0..d69c8bf0e 100644 --- a/examples/showcase/src/main/resources/webservice/applicationContext-jaxrs-server.xml +++ b/examples/showcase/src/main/resources/webservice/applicationContext-jaxrs-server.xml @@ -1,7 +1,7 @@ Apache CXF的Restful Web Service配置 diff --git a/examples/showcase/src/main/resources/webservice/applicationContext-soap-server.xml b/examples/showcase/src/main/resources/webservice/applicationContext-soap-server.xml index 90210df37..2684ac167 100644 --- a/examples/showcase/src/main/resources/webservice/applicationContext-soap-server.xml +++ b/examples/showcase/src/main/resources/webservice/applicationContext-soap-server.xml @@ -1,7 +1,7 @@ Apache CXF的 SOAP Web Service配置 diff --git a/examples/showcase/src/main/webapp/WEB-INF/spring-mvc.xml b/examples/showcase/src/main/webapp/WEB-INF/spring-mvc.xml index a24bd1abb..1174362b7 100644 --- a/examples/showcase/src/main/webapp/WEB-INF/spring-mvc.xml +++ b/examples/showcase/src/main/webapp/WEB-INF/spring-mvc.xml @@ -3,9 +3,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" - xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd - http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd - http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> + xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd + http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> diff --git a/examples/showcase/src/test/resources/applicationContext-soap-client.xml b/examples/showcase/src/test/resources/applicationContext-soap-client.xml index 9b74d4fa8..a65ec0d47 100644 --- a/examples/showcase/src/test/resources/applicationContext-soap-client.xml +++ b/examples/showcase/src/test/resources/applicationContext-soap-client.xml @@ -1,9 +1,9 @@ Apache CXF Web Service Client端配置 diff --git a/modules/core/src/test/resources/applicationContext-core-test.xml b/modules/core/src/test/resources/applicationContext-core-test.xml index 4f289ef90..52a6f41d8 100644 --- a/modules/core/src/test/resources/applicationContext-core-test.xml +++ b/modules/core/src/test/resources/applicationContext-core-test.xml @@ -1,9 +1,9 @@ Spring公共配置文件 diff --git a/modules/extension/src/test/resources/applicationContext-mail.xml b/modules/extension/src/test/resources/applicationContext-mail.xml index d4bda60eb..9fd03cb4e 100644 --- a/modules/extension/src/test/resources/applicationContext-mail.xml +++ b/modules/extension/src/test/resources/applicationContext-mail.xml @@ -1,6 +1,6 @@ diff --git a/modules/extension/src/test/resources/applicationContext-memcached.xml b/modules/extension/src/test/resources/applicationContext-memcached.xml index ff2d22432..423510d0b 100644 --- a/modules/extension/src/test/resources/applicationContext-memcached.xml +++ b/modules/extension/src/test/resources/applicationContext-memcached.xml @@ -1,6 +1,6 @@ From cf622ffc784ad4a9a4704528b652af955dac5875 Mon Sep 17 00:00:00 2001 From: Calvin Date: Sat, 18 Jan 2014 19:29:22 +0800 Subject: [PATCH 038/356] =?UTF-8?q?#309=20Spring=204.0,=20pom.xml=E9=87=8C?= =?UTF-8?q?=E4=BD=BF=E7=94=A8spring-framework-bom=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E7=94=A8=E5=86=8D=E5=AE=9A=E4=B9=89spring=E6=89=80=E6=9C=89?= =?UTF-8?q?=E5=AD=90=E6=A8=A1=E5=9D=97=E7=9A=84=E7=89=88=E6=9C=AC=EF=BC=8C?= =?UTF-8?q?=E5=B9=B6=E9=87=8D=E6=96=B0=E6=A3=80=E6=9F=A5=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E6=97=A0=E9=9C=80=E6=98=BE=E5=BC=8F=E5=AE=9A=E4=B9=89=E7=9A=84?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/quickstart/pom.xml | 86 ++++++++++------------------------- examples/showcase/pom.xml | 20 +++++---- modules/core/pom.xml | 12 +++++ modules/extension/pom.xml | 12 +++++ modules/parent/pom.xml | 90 +++++++++---------------------------- 5 files changed, 81 insertions(+), 139 deletions(-) diff --git a/examples/quickstart/pom.xml b/examples/quickstart/pom.xml index 837e775ba..5b220f8dd 100644 --- a/examples/quickstart/pom.xml +++ b/examples/quickstart/pom.xml @@ -59,7 +59,7 @@ --> - - - org.aspectj - aspectjrt - 1.7.3 - - - org.aspectj - aspectjweaver - 1.7.3 - runtime - - - @@ -115,16 +101,19 @@ + + - org.springframework - spring-orm - ${spring.version} + org.aspectj + aspectjrt + 1.7.3 - org.springframework - spring-tx - ${spring.version} - + org.aspectj + aspectjweaver + 1.7.3 + runtime + @@ -147,7 +136,6 @@ org.springframework spring-webmvc - ${spring.version} @@ -165,8 +153,8 @@ javax.servlet - servlet-api - 2.5 + javax.servlet-api + 3.0.1 provided @@ -182,16 +170,6 @@ shiro-ehcache ${shiro.version} - - net.sf.ehcache - ehcache-core - 2.6.6 - - - commons-codec - commons-codec - 1.9 - @@ -304,7 +282,6 @@ org.springframework spring-test - ${spring.version} test @@ -382,36 +359,21 @@ org.springframework - spring-core + spring-framework-bom ${spring.version} - - - commons-logging - commons-logging - - + pom + import - org.springframework - spring-beans - ${spring.version} - - - org.springframework - spring-context - ${spring.version} + net.sf.ehcache + ehcache-core + 2.6.6 - org.springframework - spring-aop - ${spring.version} - - - commons-logging - commons-logging - - - + commons-codec + commons-codec + 1.9 + @@ -522,7 +484,7 @@ org.springframework - org.springframework:*:3.2.* + org.springframework:*:4.0.* diff --git a/examples/showcase/pom.xml b/examples/showcase/pom.xml index b3b68a21d..2802a71ce 100644 --- a/examples/showcase/pom.xml +++ b/examples/showcase/pom.xml @@ -83,10 +83,6 @@ org.springframework.data spring-data-jpa - - org.springframework - spring-orm - @@ -335,10 +331,6 @@ javax.mail mail - - javax.activation - activation - @@ -428,6 +420,18 @@ + + + + + org.springframework + spring-framework-bom + ${spring.version} + pom + import + + + diff --git a/modules/core/pom.xml b/modules/core/pom.xml index 207d8adf8..3df132027 100644 --- a/modules/core/pom.xml +++ b/modules/core/pom.xml @@ -184,6 +184,18 @@ + + + + + org.springframework + spring-framework-bom + ${spring.version} + pom + import + + + diff --git a/modules/extension/pom.xml b/modules/extension/pom.xml index 8da2d47cd..a726c20cf 100644 --- a/modules/extension/pom.xml +++ b/modules/extension/pom.xml @@ -122,6 +122,18 @@ + + + + org.springframework + spring-framework-bom + ${spring.version} + pom + import + + + + diff --git a/modules/parent/pom.xml b/modules/parent/pom.xml index 1cd4b4c2d..217758665 100644 --- a/modules/parent/pom.xml +++ b/modules/parent/pom.xml @@ -100,8 +100,9 @@ ${springside.version} - - + + + org.springframework spring-core @@ -113,46 +114,7 @@ - - org.springframework - spring-beans - ${spring.version} - - - org.springframework - spring-context - ${spring.version} - - - - - org.springframework - spring-aop - ${spring.version} - - - org.aspectj - aspectjrt - ${aspectj.version} - - - org.aspectj - aspectjweaver - ${aspectj.version} - runtime - - - org.springframework - spring-tx - ${spring.version} - - - - org.springframework - spring-context-support - ${spring.version} - - + @@ -185,6 +147,19 @@ + + + org.aspectj + aspectjrt + ${aspectj.version} + + + org.aspectj + aspectjweaver + ${aspectj.version} + runtime + + org.mybatis @@ -196,19 +171,7 @@ mybatis-spring 1.2.1 - - - - org.springframework - spring-orm - ${spring.version} - - - org.springframework - spring-jdbc - ${spring.version} - - + org.apache.tomcat @@ -219,18 +182,13 @@ - - - org.springframework - spring-web - ${spring.version} - + org.springframework spring-webmvc ${spring.version} - + opensymphony @@ -344,12 +302,6 @@ - - org.springframework - spring-jms - ${spring.version} - - org.apache.activemq activemq-core @@ -952,7 +904,7 @@ org.springframework - org.springframework:*:3.2.* + org.springframework:*:4.0.* From d1e96f479ee873c4cadfff2c748821d14262dd34 Mon Sep 17 00:00:00 2001 From: Calvin Date: Sat, 18 Jan 2014 23:10:15 +0800 Subject: [PATCH 039/356] =?UTF-8?q?#311=20=E7=94=A8assertJ=E7=AE=80?= =?UTF-8?q?=E5=8C=96assert=E7=BC=96=E5=86=99,=20=E5=B0=86fail=E6=94=B9?= =?UTF-8?q?=E4=B8=BAfailBecauseExceptionWasNotThrown(excepted=20exception?= =?UTF-8?q?=20class);?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../quickstart/service/account/AccountServiceTest.java | 3 +-- .../demos/utilities/validate/ValidateDemo.java | 9 ++++----- .../examples/showcase/service/AccountServiceTest.java | 2 +- .../modules/beanvalidator/BeanValidatorsTest.java | 3 +-- .../springside/modules/utils/PropertiesLoaderTest.java | 6 +++--- .../org/springside/modules/utils/ReflectionsTest.java | 10 +++++----- 6 files changed, 15 insertions(+), 18 deletions(-) diff --git a/examples/quickstart/src/test/java/org/springside/examples/quickstart/service/account/AccountServiceTest.java b/examples/quickstart/src/test/java/org/springside/examples/quickstart/service/account/AccountServiceTest.java index 151627b3f..603256c57 100644 --- a/examples/quickstart/src/test/java/org/springside/examples/quickstart/service/account/AccountServiceTest.java +++ b/examples/quickstart/src/test/java/org/springside/examples/quickstart/service/account/AccountServiceTest.java @@ -9,7 +9,6 @@ import java.util.Date; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; @@ -85,7 +84,7 @@ public void deleteUser() { // 删除超级管理用户抛出异常, userDao没有被执行 try { accountService.deleteUser(1L); - Assert.fail("expected ServiceException not be thrown"); + failBecauseExceptionWasNotThrown(ServiceException.class); } catch (ServiceException e) { // expected exception } diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/validate/ValidateDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/validate/ValidateDemo.java index b0806bf7d..afb2c720e 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/validate/ValidateDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/validate/ValidateDemo.java @@ -10,7 +10,6 @@ import java.util.List; import org.apache.commons.lang3.Validate; -import org.junit.Assert; import org.junit.Test; import com.google.common.collect.Lists; @@ -33,7 +32,7 @@ public void asserts() { // 检验not null,用默认出错信息. Validate.notNull(null); - Assert.fail(); + failBecauseExceptionWasNotThrown(NullPointerException.class); } catch (NullPointerException e) { assertThat(e).hasMessage("The validated object is null"); } @@ -47,7 +46,7 @@ public void asserts() { // 检验not null,用自定义出错信息. Validate.notBlank("", "The name must not be blank"); - Assert.fail(); + failBecauseExceptionWasNotThrown(IllegalArgumentException.class); } catch (IllegalArgumentException e) { assertThat(e).hasMessage("The name must not be blank"); @@ -57,7 +56,7 @@ public void asserts() { try { List parameter = Lists.newArrayList(); Validate.notEmpty(parameter); - Assert.fail(); + failBecauseExceptionWasNotThrown(IllegalArgumentException.class); } catch (IllegalArgumentException e) { assertThat(e).hasMessage("The validated collection is empty"); } @@ -66,7 +65,7 @@ public void asserts() { try { // 出錯信息可格式化參數 Validate.isTrue(1 == 3, "Message %s", "foo"); - Assert.fail(); + failBecauseExceptionWasNotThrown(IllegalArgumentException.class); } catch (IllegalArgumentException e) { assertThat(e).hasMessage("Message foo"); } diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/service/AccountServiceTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/service/AccountServiceTest.java index e3a02db2b..06d5fc673 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/service/AccountServiceTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/service/AccountServiceTest.java @@ -56,7 +56,7 @@ public void saveUser() { // 保存超级管理用户抛出异常. try { accountService.saveUser(admin); - fail("expected ServicExcepton should be thrown"); + failBecauseExceptionWasNotThrown(ServiceException.class); } catch (ServiceException e) { // expected exception } diff --git a/modules/core/src/test/java/org/springside/modules/beanvalidator/BeanValidatorsTest.java b/modules/core/src/test/java/org/springside/modules/beanvalidator/BeanValidatorsTest.java index 5470baa3d..b3699cb7b 100644 --- a/modules/core/src/test/java/org/springside/modules/beanvalidator/BeanValidatorsTest.java +++ b/modules/core/src/test/java/org/springside/modules/beanvalidator/BeanValidatorsTest.java @@ -18,7 +18,6 @@ import org.hibernate.validator.constraints.Email; import org.hibernate.validator.constraints.NotBlank; -import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -67,7 +66,7 @@ public void validateWithException() { try { BeanValidators.validateWithException(validator, customer); - Assert.fail("should throw excepion"); + failBecauseExceptionWasNotThrown(ConstraintViolationException.class); } catch (ConstraintViolationException e) { Map mapResult = BeanValidators.extractPropertyAndMessage(e); assertThat(mapResult).contains(entry("email", "not a well-formed email address"), diff --git a/modules/core/src/test/java/org/springside/modules/utils/PropertiesLoaderTest.java b/modules/core/src/test/java/org/springside/modules/utils/PropertiesLoaderTest.java index a34a7e7fd..8b480e038 100644 --- a/modules/core/src/test/java/org/springside/modules/utils/PropertiesLoaderTest.java +++ b/modules/core/src/test/java/org/springside/modules/utils/PropertiesLoaderTest.java @@ -31,7 +31,7 @@ public void notExistProperty() throws IOException { PropertiesLoader pl = new PropertiesLoader("classpath:/notexist.properties"); try { assertThat(pl.getProperty("notexist")).isNull(); - fail("should fail here"); + failBecauseExceptionWasNotThrown(NoSuchElementException.class); } catch (NoSuchElementException e) { } assertThat(pl.getProperty("notexist", "defaultValue")).isEqualTo("defaultValue"); @@ -44,7 +44,7 @@ public void integerDoubleAndBooleanProperty() { assertThat(pl.getInteger("p1")).isEqualTo(new Integer(1)); try { pl.getInteger("notExist"); - fail("should fail here"); + failBecauseExceptionWasNotThrown(NoSuchElementException.class); } catch (NoSuchElementException e) { } assertThat(pl.getInteger("notExist", 100)).isEqualTo(new Integer(100)); @@ -54,7 +54,7 @@ public void integerDoubleAndBooleanProperty() { try { pl.getBoolean("notExist"); - fail("should fail here"); + failBecauseExceptionWasNotThrown(NoSuchElementException.class); } catch (NoSuchElementException e) { } assertThat(pl.getBoolean("notExist", true)).isEqualTo(new Boolean(true)); diff --git a/modules/core/src/test/java/org/springside/modules/utils/ReflectionsTest.java b/modules/core/src/test/java/org/springside/modules/utils/ReflectionsTest.java index 7e62641ca..790d03b96 100644 --- a/modules/core/src/test/java/org/springside/modules/utils/ReflectionsTest.java +++ b/modules/core/src/test/java/org/springside/modules/utils/ReflectionsTest.java @@ -32,14 +32,14 @@ public void getAndSetFieldValue() { try { Reflections.getFieldValue(bean, "notExist"); - fail("should throw exception here"); + failBecauseExceptionWasNotThrown(IllegalArgumentException.class); } catch (IllegalArgumentException e) { } try { Reflections.setFieldValue(bean, "notExist", 2); - fail("should throw exception here"); + failBecauseExceptionWasNotThrown(IllegalArgumentException.class); } catch (IllegalArgumentException e) { } @@ -73,7 +73,7 @@ public void invokeMethod() { // 函数名错 try { Reflections.invokeMethod(bean, "notExistMethod", new Class[] { String.class }, new Object[] { "calvin" }); - fail("should throw exception here"); + failBecauseExceptionWasNotThrown(IllegalArgumentException.class); } catch (IllegalArgumentException e) { } @@ -81,7 +81,7 @@ public void invokeMethod() { // 参数类型错 try { Reflections.invokeMethod(bean, "privateMethod", new Class[] { Integer.class }, new Object[] { "calvin" }); - fail("should throw exception here"); + failBecauseExceptionWasNotThrown(RuntimeException.class); } catch (RuntimeException e) { } @@ -89,7 +89,7 @@ public void invokeMethod() { // 函数名错 try { Reflections.invokeMethodByName(bean, "notExistMethod", new Object[] { "calvin" }); - fail("should throw exception here"); + failBecauseExceptionWasNotThrown(IllegalArgumentException.class); } catch (IllegalArgumentException e) { } From 62ab2837e808f46b73daa8461f78f5b99bc96129 Mon Sep 17 00:00:00 2001 From: Calvin Date: Mon, 20 Jan 2014 18:25:30 +0800 Subject: [PATCH 040/356] #327 try scalatest for BDD testing --- examples/showcase/pom.xml | 41 +++++++++++++++++++ .../test/scala/account/UserManagerSpec.scala | 36 ++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 examples/showcase/src/test/scala/account/UserManagerSpec.scala diff --git a/examples/showcase/pom.xml b/examples/showcase/pom.xml index 2802a71ce..faa9941df 100644 --- a/examples/showcase/pom.xml +++ b/examples/showcase/pom.xml @@ -418,6 +418,13 @@ com.icegreen greenmail + + + org.scalatest + scalatest_2.10 + 2.0 + test + @@ -558,6 +565,40 @@
    + + + + bdd-test + + + + org.apache.maven.plugins + maven-surefire-plugin + + true + + + + org.scalatest + scalatest-maven-plugin + 1.0-RC2 + + ${project.build.directory}/surefire-reports + . + WDF TestSuite.txt + + + + test + + test + + + + + + + diff --git a/examples/showcase/src/test/scala/account/UserManagerSpec.scala b/examples/showcase/src/test/scala/account/UserManagerSpec.scala new file mode 100644 index 000000000..455b15299 --- /dev/null +++ b/examples/showcase/src/test/scala/account/UserManagerSpec.scala @@ -0,0 +1,36 @@ +package account + +import org.scalatest.GivenWhenThen +import org.scalatest.FeatureSpec +import org.scalatest.Matchers + +class userManagerSpec extends FeatureSpec with GivenWhenThen with Matchers { + + feature("Manage users") { + info("As a administrator") + info("i want to list and edit the current users, but i don't want to add new user") + + scenario("List users") { + Given("login as administrator") + When("login success and redirect to default page") + val a = 1 + Then("admin user is displayed in page") + a should be > 0 + } + + scenario("Edit user1") { + Given("login as administrator") + When("edit user1 with new name") + val a = 1 + Then("user1 with new name display in page") + a should be > 2 + } + + scenario("Edit admin") { + Given("login as administrator") + When("edit admin and update his name") + Then("admin had update the name") + pending + } + } +} \ No newline at end of file From c7398710ba072295a77cfbec5bc07dc81ca95507 Mon Sep 17 00:00:00 2001 From: Calvin Date: Tue, 21 Jan 2014 22:24:59 +0800 Subject: [PATCH 041/356] update version of guava and hibernate-validator --- examples/quickstart/pom.xml | 4 ++-- modules/parent/pom.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/quickstart/pom.xml b/examples/quickstart/pom.xml index 5b220f8dd..b198e431c 100644 --- a/examples/quickstart/pom.xml +++ b/examples/quickstart/pom.xml @@ -17,12 +17,12 @@ 7.0.50 2.4.2 1.2.2 - 4.3.1.Final + 5.0.2.Final 2.3.1 1.7.5 1.0.13 3.2.1 - 15.0 + 16.0 4.11 1.5.0 1.9.5 diff --git a/modules/parent/pom.xml b/modules/parent/pom.xml index 217758665..f9580be51 100644 --- a/modules/parent/pom.xml +++ b/modules/parent/pom.xml @@ -24,7 +24,7 @@ 2.2.1 2.6.6 2.10.4 - 4.3.1.Final + 5.0.2.Final 1.1.5 1.3.8 3.4.0 @@ -33,7 +33,7 @@ 1.0.13 3.2.1 2.4 - 15.0 + 16.0 2.3 5.4.0 4.3.1 From e51b3cc94b00bb484b0346bc4a87c61e849fd662 Mon Sep 17 00:00:00 2001 From: Calvin Date: Wed, 22 Jan 2014 00:50:00 +0800 Subject: [PATCH 042/356] =?UTF-8?q?Issue=20#285=20httpclient=204.3=20?= =?UTF-8?q?=E5=8F=98=E5=8A=A8=EF=BC=8C=E5=8F=8A=E5=85=B6Fluent=20API?= =?UTF-8?q?=E6=BC=94=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/showcase/pom.xml | 97 ++++++------ .../demos/web/RemoteContentServlet.java | 143 +++++++++--------- modules/parent/pom.xml | 26 +++- 3 files changed, 143 insertions(+), 123 deletions(-) diff --git a/examples/showcase/pom.xml b/examples/showcase/pom.xml index faa9941df..151f5bb63 100644 --- a/examples/showcase/pom.xml +++ b/examples/showcase/pom.xml @@ -43,9 +43,9 @@ org.springframework spring-context-support - + - + org.aspectj @@ -55,7 +55,7 @@ org.aspectj aspectjweaver - + @@ -67,7 +67,7 @@ org.hibernate hibernate-ehcache - + org.mybatis @@ -119,7 +119,7 @@ javax.servlet-api - + org.apache.shiro @@ -130,7 +130,7 @@ shiro-ehcache - + org.apache.cxf @@ -141,16 +141,16 @@ cxf-rt-transports-http - + org.apache.cxf cxf-rt-frontend-jaxrs - com.fasterxml.jackson.jaxrs - jackson-jaxrs-json-provider - + com.fasterxml.jackson.jaxrs + jackson-jaxrs-json-provider + @@ -170,13 +170,13 @@ org.quartz-scheduler quartz - - + + - redis.clients - jedis + redis.clients + jedis - + net.spy @@ -195,7 +195,7 @@ ehcache-core - + org.jolokia @@ -207,7 +207,7 @@ com.netflix.hystrix hystrix-core - + @@ -222,14 +222,14 @@ org.javasimon javasimon-console-embed - - - + + + org.hibernate hibernate-validator - + com.fasterxml.jackson.core @@ -240,10 +240,10 @@ jackson-module-jaxb-annotations - com.fasterxml.jackson.datatype - jackson-datatype-joda - - + com.fasterxml.jackson.datatype + jackson-datatype-joda + + dom4j @@ -254,19 +254,19 @@ jaxen jaxen - - + + org.slf4j slf4j-api - + ch.qos.logback logback-classic - + org.slf4j log4j-over-slf4j @@ -277,11 +277,11 @@ org.slf4j - jul-to-slf4j - + jul-to-slf4j + - com.googlecode.log4jdbc + com.googlecode.log4jdbc log4jdbc @@ -318,7 +318,7 @@ org.apache.httpcomponents - httpclient + fluent-hc @@ -331,9 +331,9 @@ javax.mail mail - + - + junit junit @@ -427,7 +427,7 @@ - + @@ -436,7 +436,7 @@ ${spring.version} pom import - + @@ -461,7 +461,7 @@ - + org.apache.maven.plugins @@ -504,7 +504,7 @@ - + org.apache.tomcat.maven @@ -516,13 +516,13 @@ true - + org.apache.maven.plugins maven-enforcer-plugin - + org.apache.cxf @@ -565,7 +565,7 @@ - + bdd-test @@ -612,13 +612,14 @@ - + - - + + - + @@ -658,7 +659,7 @@ - + standalone-tomcat diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/RemoteContentServlet.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/RemoteContentServlet.java index 33f633550..c0cda83af 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/RemoteContentServlet.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/RemoteContentServlet.java @@ -12,6 +12,7 @@ import java.net.HttpURLConnection; import java.net.URL; +import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; @@ -20,21 +21,21 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpEntity; -import org.apache.http.HttpResponse; -import org.apache.http.client.HttpClient; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.fluent.Executor; +import org.apache.http.client.fluent.Request; +import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; -import org.apache.http.impl.client.DefaultHttpClient; -import org.apache.http.impl.conn.PoolingClientConnectionManager; -import org.apache.http.params.HttpConnectionParams; -import org.apache.http.protocol.BasicHttpContext; -import org.apache.http.protocol.HttpContext; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * 获取远程静态内容并进行展示的Servlet. + * 演示使用多线程安全且带连接池的Apache HttpClient和 JDK两种方案获取远程静态内容并进行展示的Servlet. * - * 演示使用多线程安全的Apache HttpClient获取远程静态内容. + * 另外简单演示了轻量级更易用的Apache Fluent API。 * * 演示访问地址如下(contentUrl已经过URL编码): * remote-content?contentUrl=http%3A%2F%2Flocalhost%3A8080%2Fshowcase%2Fimages%2Flogo.jpg @@ -45,110 +46,69 @@ public class RemoteContentServlet extends HttpServlet { private static final long serialVersionUID = -8483811141908827663L; - private static final int CONNECTION_POOL_SIZE = 10; private static final int TIMEOUT_SECONDS = 20; + private static final int POOL_SIZE = 20; + private static Logger logger = LoggerFactory.getLogger(RemoteContentServlet.class); - private HttpClient httpClient = null; + private static CloseableHttpClient httpClient; @Override - public void init() throws ServletException { + public void init(ServletConfig config) throws ServletException { initApacheHttpClient(); } @Override public void destroy() { - destoryApacheHttpClient(); + destroyApacheHttpClient(); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - // 获取参数 + // 获取URL String contentUrl = request.getParameter("contentUrl"); if (StringUtils.isBlank(contentUrl)) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "contentUrl parameter is required."); } - // 远程访问获取内容的方式 + // 基於配置,使用HttpClient或JDK 獲取URL內容 String client = request.getParameter("client"); - - InputStream input = null; if ("apache".equals(client)) { - // 使用Apache HttpClient fetchContentByApacheHttpClient(response, contentUrl); } else { - // 使用JDK HttpUrlConnection fetchContentByJDKConnection(response, contentUrl); } } - /** - * 创建多线程安全的HttpClient实例并设置连接池和timeout. - */ - private void initApacheHttpClient() { - // init connection pool - PoolingClientConnectionManager cm = new PoolingClientConnectionManager(); - cm.setMaxTotal(CONNECTION_POOL_SIZE); - - // create client - httpClient = new DefaultHttpClient(cm); - - // set timeout - HttpConnectionParams.setSoTimeout(httpClient.getParams(), TIMEOUT_SECONDS * 1000); - } - - /** - * 销毁HttpClient连接池. - */ - private void destoryApacheHttpClient() { - if (httpClient != null) { - httpClient.getConnectionManager().shutdown(); - } - } - - /** - * 使用HttpClient取得内容. - */ private void fetchContentByApacheHttpClient(HttpServletResponse response, String contentUrl) throws IOException { - // 获取内容 - HttpEntity entity = null; HttpGet httpGet = new HttpGet(contentUrl); + CloseableHttpResponse remoteResponse = httpClient.execute(httpGet); try { - HttpContext context = new BasicHttpContext(); - HttpResponse remoteResponse = httpClient.execute(httpGet, context); - entity = remoteResponse.getEntity(); - } catch (Exception e) { - logger.error("fetch remote content" + contentUrl + " error", e); - httpGet.abort(); - return; - } - - // 404返回 - if (entity == null) { - response.sendError(HttpServletResponse.SC_NOT_FOUND, contentUrl + " is not found."); - return; - } + // 判断返回值 + int statusCode = remoteResponse.getStatusLine().getStatusCode(); + if (statusCode >= 400) { + response.sendError(statusCode, "fetch image error from " + contentUrl); + return; + } - // 设置Header - response.setContentType(entity.getContentType().getValue()); - if (entity.getContentLength() > 0) { - response.setContentLength((int) entity.getContentLength()); - } + HttpEntity entity = remoteResponse.getEntity(); - // 输出内容 - InputStream input = entity.getContent(); - OutputStream output = response.getOutputStream(); - try { + // 设置Header + response.setContentType(entity.getContentType().getValue()); + if (entity.getContentLength() > 0) { + response.setContentLength((int) entity.getContentLength()); + } + // 输出内容 + InputStream input = entity.getContent(); + OutputStream output = response.getOutputStream(); // 基于byte数组读取InputStream并直接写入OutputStream, 数组默认大小为4k. IOUtils.copy(input, output); output.flush(); } finally { - // 保证InputStream的关闭. - IOUtils.closeQuietly(input); + remoteResponse.close(); } - } private void fetchContentByJDKConnection(HttpServletResponse response, String contentUrl) throws IOException { @@ -188,4 +148,39 @@ private void fetchContentByJDKConnection(HttpServletResponse response, String co connection.disconnect(); } } + + // 创建包含connection pool与超时设置的client + private void initApacheHttpClient() { + RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(TIMEOUT_SECONDS * 1000) + .setConnectTimeout(TIMEOUT_SECONDS * 1000).build(); + + httpClient = HttpClientBuilder.create().setMaxConnTotal(POOL_SIZE).setMaxConnPerRoute(POOL_SIZE) + .setDefaultRequestConfig(requestConfig).build(); + } + + private void destroyApacheHttpClient() { + try { + httpClient.close(); + } catch (IOException e) { + logger.error("httpclient close fail", e); + } + } + + /** + * 演示FluentAPI。 + * 使用默认连接池(200 total/100 per route), entity会自动获取全部并关闭。 + */ + @SuppressWarnings("unused") + private void fluentAPIDemo(String contentUrl) throws ClientProtocolException, IOException { + // 获取文字 + Request.Get(contentUrl).execute().returnContent().asString(); + + // 设置timeout, 获取图片 + Request.Get(contentUrl).connectTimeout(TIMEOUT_SECONDS * 1000).socketTimeout(TIMEOUT_SECONDS * 1000).execute() + .returnContent().asBytes(); + + // 使用之前设置好了连接池与超时的httpClient + Executor executor = Executor.newInstance(httpClient); + executor.execute(Request.Get(contentUrl)).returnContent().asString(); + } } diff --git a/modules/parent/pom.xml b/modules/parent/pom.xml index f9580be51..c69624294 100644 --- a/modules/parent/pom.xml +++ b/modules/parent/pom.xml @@ -36,7 +36,7 @@ 16.0 2.3 5.4.0 - 4.3.1 + 4.3.2 2.3.20 1.7.3 4.11 @@ -574,6 +574,30 @@ + + + org.apache.httpcomponents + fluent-hc + ${httpclient.version} + + + commons-logging + commons-logging + + + + + + org.apache.httpcomponents + http-core + ${httpclient.version} + + + commons-logging + commons-logging + + + From 477c861c80d59f2ef789ab3ddf2f00b077cf2a77 Mon Sep 17 00:00:00 2001 From: Calvin Date: Wed, 22 Jan 2014 00:55:49 +0800 Subject: [PATCH 043/356] format pom.xml --- examples/quickstart/pom.xml | 63 +++++++++++++++++++------------------ modules/core/pom.xml | 6 ++-- modules/extension/pom.xml | 2 +- modules/metrics/pom.xml | 12 +++---- 4 files changed, 42 insertions(+), 41 deletions(-) diff --git a/examples/quickstart/pom.xml b/examples/quickstart/pom.xml index b198e431c..4a840adc5 100644 --- a/examples/quickstart/pom.xml +++ b/examples/quickstart/pom.xml @@ -29,11 +29,11 @@ 2.39.0 7.6.14.v20131031 1.3.174 - + UTF-8 1.6 - + com.h2database h2 @@ -101,7 +101,7 @@ - + org.aspectj @@ -137,7 +137,7 @@ org.springframework spring-webmvc - + opensymphony sitemesh @@ -158,7 +158,7 @@ provided - + org.apache.shiro @@ -171,14 +171,14 @@ ${shiro.version} - - + + org.hibernate hibernate-validator ${hibernate-validator.version} - + com.fasterxml.jackson.core @@ -191,7 +191,7 @@ ${jackson.version} - + org.slf4j @@ -205,7 +205,7 @@ ${logback.version} runtime - + org.slf4j @@ -223,13 +223,13 @@ org.slf4j - jul-to-slf4j - ${slf4j.version} - runtime - - + jul-to-slf4j + ${slf4j.version} + runtime + + - com.googlecode.log4jdbc + com.googlecode.log4jdbc log4jdbc 1.2 runtime @@ -354,7 +354,7 @@ - + @@ -373,7 +373,7 @@ commons-codec commons-codec 1.9 - + @@ -454,10 +454,10 @@ **/*Controller.class - + - - + + org.apache.maven.plugins maven-enforcer-plugin @@ -493,7 +493,7 @@ - + org.mortbay.jetty @@ -507,7 +507,7 @@ true - + /${project.artifactId} @@ -520,14 +520,14 @@ maven-resources-plugin 2.6 - + org.apache.maven.plugins maven-install-plugin 2.5.1 - + org.apache.maven.plugins @@ -562,7 +562,7 @@ - + run-smoke @@ -574,11 +574,11 @@ org.springside.modules.test.category.Smoke - + - + refresh-db @@ -591,10 +591,11 @@ - + - - + + diff --git a/modules/core/pom.xml b/modules/core/pom.xml index 3df132027..11585b884 100644 --- a/modules/core/pom.xml +++ b/modules/core/pom.xml @@ -135,7 +135,7 @@ junit junit - + org.assertj assertj-core @@ -184,7 +184,7 @@ - + @@ -193,7 +193,7 @@ ${spring.version} pom import - + diff --git a/modules/extension/pom.xml b/modules/extension/pom.xml index a726c20cf..f5da44624 100644 --- a/modules/extension/pom.xml +++ b/modules/extension/pom.xml @@ -82,7 +82,7 @@ org.assertj assertj-core - + org.springside springside-core diff --git a/modules/metrics/pom.xml b/modules/metrics/pom.xml index 352ed6dce..42ebcecec 100644 --- a/modules/metrics/pom.xml +++ b/modules/metrics/pom.xml @@ -23,17 +23,17 @@ junit junit - + org.assertj assertj-core - - + + org.mockito mockito-core - + ch.qos.logback logback-classic @@ -56,12 +56,12 @@ - + org.apache.maven.plugins maven-enforcer-plugin - + \ No newline at end of file From a08417717f32d6e96154cb6e729fbfe058f2e265 Mon Sep 17 00:00:00 2001 From: Calvin Date: Wed, 22 Jan 2014 01:09:31 +0800 Subject: [PATCH 044/356] =?UTF-8?q?Issue=20#285=20httpclient=204.3=20?= =?UTF-8?q?=E5=8F=98=E5=8A=A8=EF=BC=8C=E5=A2=9E=E5=BC=BAFluentAPI=E7=9A=84?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86=E4=B8=8E=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demos/web/RemoteContentServlet.java | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/RemoteContentServlet.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/RemoteContentServlet.java index c0cda83af..5e8ba7db6 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/RemoteContentServlet.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/RemoteContentServlet.java @@ -21,7 +21,7 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpEntity; -import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.HttpResponseException; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.fluent.Executor; import org.apache.http.client.fluent.Request; @@ -35,7 +35,7 @@ /** * 演示使用多线程安全且带连接池的Apache HttpClient和 JDK两种方案获取远程静态内容并进行展示的Servlet. * - * 另外简单演示了轻量级更易用的Apache Fluent API。 + * 另外简单演示了轻量级更易用的Apache HttpClient Fluent API。 * * 演示访问地址如下(contentUrl已经过URL编码): * remote-content?contentUrl=http%3A%2F%2Flocalhost%3A8080%2Fshowcase%2Fimages%2Flogo.jpg @@ -168,19 +168,23 @@ private void destroyApacheHttpClient() { /** * 演示FluentAPI。 - * 使用默认连接池(200 total/100 per route), entity会自动获取全部并关闭。 + * */ @SuppressWarnings("unused") - private void fluentAPIDemo(String contentUrl) throws ClientProtocolException, IOException { - // 获取文字 - Request.Get(contentUrl).execute().returnContent().asString(); - - // 设置timeout, 获取图片 - Request.Get(contentUrl).connectTimeout(TIMEOUT_SECONDS * 1000).socketTimeout(TIMEOUT_SECONDS * 1000).execute() - .returnContent().asBytes(); - - // 使用之前设置好了连接池与超时的httpClient - Executor executor = Executor.newInstance(httpClient); - executor.execute(Request.Get(contentUrl)).returnContent().asString(); + private void fluentAPIDemo(String contentUrl) throws IOException { + try { + // 获取文字 , 使用默认连接池(200 total/100 per route), returnContent()会自动获取全部内容后关闭inputstream。 + String resultString = Request.Get(contentUrl).execute().returnContent().asString(); + + // 获取图片, 增加超时设定。 + byte[] resultBytes = Request.Get(contentUrl).connectTimeout(TIMEOUT_SECONDS * 1000) + .socketTimeout(TIMEOUT_SECONDS * 1000).execute().returnContent().asBytes(); + + // 使用之前设置好了自定义连接池与超时的httpClient, 获取图片 + Executor executor = Executor.newInstance(httpClient); + resultString = executor.execute(Request.Get(contentUrl)).returnContent().asString(); + } catch (HttpResponseException e) { + logger.error("Status code:" + e.getStatusCode(), e); + } } } From 39c4e5ff95bd99a0c87f80cb9f638607eab35789 Mon Sep 17 00:00:00 2001 From: Calvin Date: Wed, 22 Jan 2014 01:12:57 +0800 Subject: [PATCH 045/356] =?UTF-8?q?Issue=20#285=20httpclient=204.3=20?= =?UTF-8?q?=E5=8F=98=E5=8A=A8=EF=BC=8Cpolish?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../showcase/demos/web/RemoteContentServlet.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/RemoteContentServlet.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/RemoteContentServlet.java index 5e8ba7db6..0fafdf716 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/RemoteContentServlet.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/web/RemoteContentServlet.java @@ -168,21 +168,20 @@ private void destroyApacheHttpClient() { /** * 演示FluentAPI。 - * */ @SuppressWarnings("unused") - private void fluentAPIDemo(String contentUrl) throws IOException { + public void fluentAPIDemo(String contentUrl) throws IOException { try { - // 获取文字 , 使用默认连接池(200 total/100 per route), returnContent()会自动获取全部内容后关闭inputstream。 + // demo1: 获取文字 , 使用默认连接池(200 total/100 per route), returnContent()会自动获取全部内容后关闭inputstream。 String resultString = Request.Get(contentUrl).execute().returnContent().asString(); - // 获取图片, 增加超时设定。 + // demo2: 获取图片, 增加超时设定。 byte[] resultBytes = Request.Get(contentUrl).connectTimeout(TIMEOUT_SECONDS * 1000) .socketTimeout(TIMEOUT_SECONDS * 1000).execute().returnContent().asBytes(); - // 使用之前设置好了自定义连接池与超时的httpClient, 获取图片 + // demo3: 获取图片,使用之前设置好了的自定义连接池与超时的httpClient Executor executor = Executor.newInstance(httpClient); - resultString = executor.execute(Request.Get(contentUrl)).returnContent().asString(); + String resultString2 = executor.execute(Request.Get(contentUrl)).returnContent().asString(); } catch (HttpResponseException e) { logger.error("Status code:" + e.getStatusCode(), e); } From 8688041f171283362349ac871a40f578597fff24 Mon Sep 17 00:00:00 2001 From: Calvin Date: Thu, 23 Jan 2014 16:42:17 +0800 Subject: [PATCH 046/356] =?UTF-8?q?rollback=20Spring=20data=20jpa=20from?= =?UTF-8?q?=201.4.3->1.4.2,=20=E5=9B=A0=E4=B8=BA=E5=9C=A8jetty=E6=8C=89?= =?UTF-8?q?=E5=9B=9E=E8=BD=A6=E9=87=8D=E5=90=AF=E6=9C=8D=E5=8A=A1=E5=99=A8?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E4=BC=9A=E6=8A=A5not=20a=20managed=20type?= =?UTF-8?q?=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/quickstart/pom.xml | 4 ++-- modules/parent/pom.xml | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/examples/quickstart/pom.xml b/examples/quickstart/pom.xml index 4a840adc5..4549de10c 100644 --- a/examples/quickstart/pom.xml +++ b/examples/quickstart/pom.xml @@ -13,7 +13,7 @@ 4.3.0-SNAPSHOT 4.0.0.RELEASE 4.3.0.Final - 1.4.3.RELEASE + 1.4.2.RELEASE 7.0.50 2.4.2 1.2.2 @@ -28,7 +28,7 @@ 1.9.5 2.39.0 7.6.14.v20131031 - 1.3.174 + 1.3.175 UTF-8 diff --git a/modules/parent/pom.xml b/modules/parent/pom.xml index c69624294..f9fe00837 100644 --- a/modules/parent/pom.xml +++ b/modules/parent/pom.xml @@ -14,7 +14,7 @@ 4.0.0.RELEASE 4.3.0.Final 3.2.4 - 1.4.3.RELEASE + 1.4.2.RELEASE 7.0.50 2.4.2 1.2.2 @@ -46,7 +46,7 @@ 2.39.0 0.7.9 7.6.14.v20131031 - 1.3.174 + 1.3.175 UTF-8 @@ -739,14 +739,6 @@ - - - com.lordofthejars - nosqlunit-redis - ${nosqlunit.version} - test - - org.eclipse.jetty.aggregate @@ -769,6 +761,14 @@ test + + + com.lordofthejars + nosqlunit-redis + ${nosqlunit.version} + test + + com.thimbleware.jmemcached @@ -785,7 +785,7 @@ test - + org.hamcrest hamcrest-core @@ -795,7 +795,7 @@ org.objenesis objenesis - 1.2 + 2.1 test From 7dd1244ec8b825a09497da0f566461766782c75f Mon Sep 17 00:00:00 2001 From: Calvin Date: Thu, 23 Jan 2014 17:44:25 +0800 Subject: [PATCH 047/356] #242 update jedisTemplate to support setNxEx --- .../modules/nosql/redis/JedisTemplate.java | 14 ++++++++++++++ .../modules/nosql/redis/JedisTemplateTest.java | 3 +++ 2 files changed, 17 insertions(+) diff --git a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java index 9adba0c36..9d45cc18e 100644 --- a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java +++ b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java @@ -191,6 +191,20 @@ public Boolean action(Jedis jedis) { }); } + /** + * 综合setNX与setEx的效果。 + */ + public Boolean setnxex(final String key, final String value, final int seconds) { + return execute(new JedisAction() { + + @Override + public Boolean action(Jedis jedis) { + String result = jedis.set(key, value, "NX", "EX", seconds); + return JedisUtils.isStatusOk(result); + } + }); + } + public Long incr(final String key) { return execute(new JedisAction() { @Override diff --git a/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java b/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java index ea4354a9a..417727596 100644 --- a/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java +++ b/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java @@ -55,6 +55,9 @@ public void stringActions() { jedisTemplate.set(key, value); assertThat(jedisTemplate.getAsLong(key)).isEqualTo(123L); assertThat(jedisTemplate.getAsLong(notExistKey)).isNull(); + + assertThat(jedisTemplate.setnx(key, value)).isFalse(); + assertThat(jedisTemplate.setnx(key + "nx", value)).isTrue(); } @Test From c32be7a32a743ae7ba7e5f8f322757eced5f6d8e Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 24 Jan 2014 12:05:57 +0800 Subject: [PATCH 048/356] =?UTF-8?q?#327=20try=20scalatest=20for=20BDD=20te?= =?UTF-8?q?sting,=20=20=E5=86=99=E5=AE=8C=E7=AC=AC=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E7=94=A8=E4=BE=8B=EF=BC=8C=E4=BD=BF=E7=94=A8=E4=BA=86selenium?= =?UTF-8?q?=20DSL,=20scalatest=E5=88=9D=E4=BD=93=E9=AA=8C=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/scala/account/UserManagerSpec.scala | 71 ++++++++++++++++--- 1 file changed, 60 insertions(+), 11 deletions(-) diff --git a/examples/showcase/src/test/scala/account/UserManagerSpec.scala b/examples/showcase/src/test/scala/account/UserManagerSpec.scala index 455b15299..5fba9109d 100644 --- a/examples/showcase/src/test/scala/account/UserManagerSpec.scala +++ b/examples/showcase/src/test/scala/account/UserManagerSpec.scala @@ -3,34 +3,83 @@ package account import org.scalatest.GivenWhenThen import org.scalatest.FeatureSpec import org.scalatest.Matchers +import org.openqa.selenium.WebDriver +import org.scalatest.selenium.WebBrowser +import org.openqa.selenium.firefox.FirefoxDriver +import org.scalatest.BeforeAndAfter +import org.scalatest.time.Span +import org.scalatest.time.Seconds +import org.scalatest.BeforeAndAfterAll -class userManagerSpec extends FeatureSpec with GivenWhenThen with Matchers { +class UserManagerSpec extends FeatureSpec with GivenWhenThen with Matchers with WebBrowser with BeforeAndAfterAll { + + implicit val webDriver: WebDriver = new FirefoxDriver + val host = "http://localhost:8080/showcase" feature("Manage users") { info("As a administrator") info("i want to list and edit the current users, but i don't want to add new user") scenario("List users") { - Given("login as administrator") - When("login success and redirect to default page") - val a = 1 - Then("admin user is displayed in page") - a should be > 0 + Given("Go to Account Management page") + goToAccountManagementPage() + Given("Login as admin if necessary") + loginAsAdminIfNecessary() + pageTitle should be("Showcase示例:综合示例") + + When("All accounts are list in the page") + + Then("admin user is displayed in the page") + val ele: Option[Element] = find(xpath("//tr[1]/td[2]")) + ele.get.text should be("管理员 ") } scenario("Edit user1") { - Given("login as administrator") + Given("Go to Account Management page") + goToAccountManagementPage() + Given("Login as admin if necessary") + loginAsAdminIfNecessary() + pageTitle should be("Showcase示例:综合示例") + When("edit user1 with new name") - val a = 1 + click on id("editLink-user"); + textField("name").value = "user_foo"; + click on "submit_btn" + Then("user1 with new name display in page") - a should be > 2 + click on id("editLink-user") + textField("name").value should be("user_foo") } scenario("Edit admin") { - Given("login as administrator") - When("edit admin and update his name") + Given("Go to Account Management page") + Given("Login as admin if necessary") + When("edit admin with new name") Then("admin had update the name") pending } } + + override def beforeAll() { + implicitlyWait(Span(10, Seconds)) + } + + override def afterAll() { + webDriver.close() + } + + def goToAccountManagementPage() { + go to (host) + pageTitle should be("Showcase示例:Home") + click on linkText("帐号管理") + } + + def loginAsAdminIfNecessary() { + if (pageTitle == "Showcase示例:登录页") { + textField("username").value = "admin" + pwdField("password").value = "admin" + checkbox("rememberMe").select() + click on "submit_btn" + } + } } \ No newline at end of file From a0efcfbb0dd365ed620b44b33f75f9b56414adfa Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 24 Jan 2014 14:09:08 +0800 Subject: [PATCH 049/356] #327 try scalatest for BDD testing, polish --- .../src/test/scala/account/UserManagerSpec.scala | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/examples/showcase/src/test/scala/account/UserManagerSpec.scala b/examples/showcase/src/test/scala/account/UserManagerSpec.scala index 5fba9109d..0a3082569 100644 --- a/examples/showcase/src/test/scala/account/UserManagerSpec.scala +++ b/examples/showcase/src/test/scala/account/UserManagerSpec.scala @@ -11,7 +11,7 @@ import org.scalatest.time.Span import org.scalatest.time.Seconds import org.scalatest.BeforeAndAfterAll -class UserManagerSpec extends FeatureSpec with GivenWhenThen with Matchers with WebBrowser with BeforeAndAfterAll { +class UserManagerSpec extends FeatureSpec with GivenWhenThen with Matchers with BeforeAndAfterAll with WebBrowser { implicit val webDriver: WebDriver = new FirefoxDriver val host = "http://localhost:8080/showcase" @@ -25,9 +25,8 @@ class UserManagerSpec extends FeatureSpec with GivenWhenThen with Matchers with goToAccountManagementPage() Given("Login as admin if necessary") loginAsAdminIfNecessary() - pageTitle should be("Showcase示例:综合示例") - When("All accounts are list in the page") + When("All users are listed in the page") Then("admin user is displayed in the page") val ele: Option[Element] = find(xpath("//tr[1]/td[2]")) @@ -39,7 +38,6 @@ class UserManagerSpec extends FeatureSpec with GivenWhenThen with Matchers with goToAccountManagementPage() Given("Login as admin if necessary") loginAsAdminIfNecessary() - pageTitle should be("Showcase示例:综合示例") When("edit user1 with new name") click on id("editLink-user"); @@ -70,16 +68,17 @@ class UserManagerSpec extends FeatureSpec with GivenWhenThen with Matchers with def goToAccountManagementPage() { go to (host) - pageTitle should be("Showcase示例:Home") + pageTitle should include("Home") click on linkText("帐号管理") } def loginAsAdminIfNecessary() { - if (pageTitle == "Showcase示例:登录页") { + if (pageTitle contains "登录页") { textField("username").value = "admin" pwdField("password").value = "admin" checkbox("rememberMe").select() click on "submit_btn" + pageTitle should include("综合演示用例") } } } \ No newline at end of file From d934fecbea445360252477b808c3110c7008faf4 Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 24 Jan 2014 14:16:40 +0800 Subject: [PATCH 050/356] #327 try scalatest for BDD testing, polish --- .../test/scala/account/UserManagerSpec.scala | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/examples/showcase/src/test/scala/account/UserManagerSpec.scala b/examples/showcase/src/test/scala/account/UserManagerSpec.scala index 0a3082569..9c8af88aa 100644 --- a/examples/showcase/src/test/scala/account/UserManagerSpec.scala +++ b/examples/showcase/src/test/scala/account/UserManagerSpec.scala @@ -21,8 +21,8 @@ class UserManagerSpec extends FeatureSpec with GivenWhenThen with Matchers with info("i want to list and edit the current users, but i don't want to add new user") scenario("List users") { - Given("Go to Account Management page") - goToAccountManagementPage() + Given("Go to user management page") + goToUserManagementPage() Given("Login as admin if necessary") loginAsAdminIfNecessary() @@ -34,26 +34,26 @@ class UserManagerSpec extends FeatureSpec with GivenWhenThen with Matchers with } scenario("Edit user1") { - Given("Go to Account Management page") - goToAccountManagementPage() + Given("Go to user management page") + goToUserManagementPage() Given("Login as admin if necessary") loginAsAdminIfNecessary() - When("edit user1 with new name") + When("Edit user1 with new name") click on id("editLink-user"); textField("name").value = "user_foo"; click on "submit_btn" - Then("user1 with new name display in page") + Then("user1 with new name display in user edit page") click on id("editLink-user") textField("name").value should be("user_foo") } scenario("Edit admin") { - Given("Go to Account Management page") + Given("Go to user management page") Given("Login as admin if necessary") - When("edit admin with new name") - Then("admin had update the name") + When("Edit admin with new name") + Then("admin with new name display in user edit page") pending } } @@ -66,10 +66,12 @@ class UserManagerSpec extends FeatureSpec with GivenWhenThen with Matchers with webDriver.close() } - def goToAccountManagementPage() { + def goToUserManagementPage() { go to (host) pageTitle should include("Home") click on linkText("帐号管理") + + pageTitle should include("综合演示用例") } def loginAsAdminIfNecessary() { @@ -78,6 +80,7 @@ class UserManagerSpec extends FeatureSpec with GivenWhenThen with Matchers with pwdField("password").value = "admin" checkbox("rememberMe").select() click on "submit_btn" + pageTitle should include("综合演示用例") } } From 4358cece4e0fd205931184e057ce14f9bd8b2d76 Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 24 Jan 2014 14:21:32 +0800 Subject: [PATCH 051/356] #327 try scalatest for BDD testing, polish --- examples/showcase/src/test/scala/account/UserManagerSpec.scala | 2 -- 1 file changed, 2 deletions(-) diff --git a/examples/showcase/src/test/scala/account/UserManagerSpec.scala b/examples/showcase/src/test/scala/account/UserManagerSpec.scala index 9c8af88aa..fcb033fff 100644 --- a/examples/showcase/src/test/scala/account/UserManagerSpec.scala +++ b/examples/showcase/src/test/scala/account/UserManagerSpec.scala @@ -70,8 +70,6 @@ class UserManagerSpec extends FeatureSpec with GivenWhenThen with Matchers with go to (host) pageTitle should include("Home") click on linkText("帐号管理") - - pageTitle should include("综合演示用例") } def loginAsAdminIfNecessary() { From b6ac4c7c6558f2c7735330c6a02ade7a36f68c0e Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 24 Jan 2014 14:45:17 +0800 Subject: [PATCH 052/356] #243 metrics module, update showcase --- .../showcase/src/main/webapp/WEB-INF/views/index.jsp | 5 +++++ .../src/main/webapp/WEB-INF/views/story/monitor.jsp | 12 ++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/examples/showcase/src/main/webapp/WEB-INF/views/index.jsp b/examples/showcase/src/main/webapp/WEB-INF/views/index.jsp index 31dc38ee3..ba0f1a274 100644 --- a/examples/showcase/src/main/webapp/WEB-INF/views/index.jsp +++ b/examples/showcase/src/main/webapp/WEB-INF/views/index.jsp @@ -14,6 +14,11 @@

    各式主流的、实用的、好玩的开源项目大派对。

    What is new?

    +

    4.2版

    +
      +
    • 性能监控新增Metrics/Graphite演示。
    • +
    • 新增Hystrix演示。
    • +

    4.1版

    • 新增Redis演示。
    • diff --git a/examples/showcase/src/main/webapp/WEB-INF/views/story/monitor.jsp b/examples/showcase/src/main/webapp/WEB-INF/views/story/monitor.jsp index f23b08d38..5a755190c 100644 --- a/examples/showcase/src/main/webapp/WEB-INF/views/story/monitor.jsp +++ b/examples/showcase/src/main/webapp/WEB-INF/views/story/monitor.jsp @@ -13,9 +13,17 @@ -

      应用监控演示

      - +

      Metric

      用户故事

      +
        +
      • 监控UserRestController(/api/v1/user)
      • +
      • 可以运行JMeter压力测试脚本(support/jmeter/showcase-rest.jmx)
      • +
      • 默认只在Console打印结果,不发送数据到Graphite, 可修改applicationContext-metrics.xml打开
      • +
      + +

      JavaSimon

      + +

      用户故事n

      • 监控AccountService类及两个相关类
      • 点击综合演示页面,修改并保存用户,或者运行JMeter压力测试脚本(support/jmeter/showcase-gui.jmx)
      • From 59d56f1c8603a7da30adc1ce21e546af5c554113 Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 24 Jan 2014 15:38:49 +0800 Subject: [PATCH 053/356] update hibernate to 4.3.1 --- examples/quickstart/pom.xml | 2 +- modules/parent/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/quickstart/pom.xml b/examples/quickstart/pom.xml index 4549de10c..2acb8056b 100644 --- a/examples/quickstart/pom.xml +++ b/examples/quickstart/pom.xml @@ -12,7 +12,7 @@ 4.3.0-SNAPSHOT 4.0.0.RELEASE - 4.3.0.Final + 4.3.1.Final 1.4.2.RELEASE 7.0.50 2.4.2 diff --git a/modules/parent/pom.xml b/modules/parent/pom.xml index f9fe00837..4ebbf4a4f 100644 --- a/modules/parent/pom.xml +++ b/modules/parent/pom.xml @@ -12,7 +12,7 @@ 4.3.0-SNAPSHOT 4.0.0.RELEASE - 4.3.0.Final + 4.3.1.Final 3.2.4 1.4.2.RELEASE 7.0.50 From 36827d4ba5ed83b3c3b1aab006a5e826ea60ebe5 Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 24 Jan 2014 16:04:20 +0800 Subject: [PATCH 054/356] =?UTF-8?q?#272=20LogStash=E9=9B=86=E4=B8=AD?= =?UTF-8?q?=E5=BC=8F=E6=97=A5=E5=BF=97=E5=A4=84=E7=90=86=E6=BC=94=E7=A4=BA?= =?UTF-8?q?=20New=20Feature=20,=20polish?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demos/hystrix/web/HystrixExceptionHandler.java | 3 ++- support/logstash/.gitignore | 3 ++- support/logstash/README.txt | 10 +++++----- support/logstash/error_collector/collector.bat | 2 +- support/logstash/error_collector/shipper.bat | 2 +- support/logstash/error_collector/shipper.conf.example | 10 +++++----- support/logstash/safe_shipper/shipper.bat | 2 +- support/logstash/safe_shipper/shipper.conf.example | 2 +- 8 files changed, 18 insertions(+), 16 deletions(-) diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/web/HystrixExceptionHandler.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/web/HystrixExceptionHandler.java index 4d52d37df..70ce1f692 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/web/HystrixExceptionHandler.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/web/HystrixExceptionHandler.java @@ -29,7 +29,8 @@ public class HystrixExceptionHandler extends ResponseEntityExceptionHandler { /** - * 处理Hystrix Runtime异常, 异常分为两类,一类是Command内部抛出异常,一类是Hystrix自身的保护机制 + * 处理Hystrix Runtime异常, 异常分为两类,一类是Command内部抛出异常,一类是Hystrix自身的保护机制. + * Command内部抛出的异常返回500, 对Hystrix返回的异常返回503 */ @ExceptionHandler(value = { HystrixRuntimeException.class }) public final ResponseEntity handleException(HystrixRuntimeException e, WebRequest request) { diff --git a/support/logstash/.gitignore b/support/logstash/.gitignore index f0e5e5f68..2f577ad1e 100644 --- a/support/logstash/.gitignore +++ b/support/logstash/.gitignore @@ -1,2 +1,3 @@ logstash-*-flatjar.jar -shipper.conf \ No newline at end of file +shipper.conf +data \ No newline at end of file diff --git a/support/logstash/README.txt b/support/logstash/README.txt index 79375d957..675c624ab 100644 --- a/support/logstash/README.txt +++ b/support/logstash/README.txt @@ -1,10 +1,10 @@ -Logstash Usage Demo +Logstash Demo =================== * error_collector: 从不同机器上收集日志文件中的所有错误日志,输出到一个文件中。 -* safe_log_collector: logstash中file input的sincedb功能演示,如何保证所有的日志文件(包括rotate的文件)都能被logstash收集到(包括logstash收集节点中途停掉又恢复的情况)。 +* safe_log_collector: logstash中file input的sincedb功能演示,如何保证所有的日志文件(包括rotate的文件)都能被logstash收集到, 包括logstash收集节点中途停掉又恢复的情况。 -错误日志收集的演示流程: -1. 下载 logstash-1.3.2-flatjar.jar 放到本目录,将子目录中的shipper.conf.example 复制成 shipper.conf, 修改log日志路径。 -2. 运行 shipper 与 collector, 同时在showcase中产生错误日志 +error_collector的演示流程: +1. 下载 最新版的logstash-*.jar 放到本目录,将子目录中的shipper.conf.example 复制成 shipper.conf, 修改log日志路径。 +2. 运行 shipper 与 collector, 同时在showcase中产生错误日志(建议使用Hystrix演示来产生) 3. 访问 http://localhost:9292/ 访问GUI \ No newline at end of file diff --git a/support/logstash/error_collector/collector.bat b/support/logstash/error_collector/collector.bat index 20a39e91d..13ede84dd 100644 --- a/support/logstash/error_collector/collector.bat +++ b/support/logstash/error_collector/collector.bat @@ -1,3 +1,3 @@ -java -jar ../logstash-1.3.2-flatjar.jar agent -f collector.conf -- web +java -jar ../logstash-*.jar agent -f collector.conf -- web pause; \ No newline at end of file diff --git a/support/logstash/error_collector/shipper.bat b/support/logstash/error_collector/shipper.bat index 4d8c32cf3..29360b4c6 100644 --- a/support/logstash/error_collector/shipper.bat +++ b/support/logstash/error_collector/shipper.bat @@ -1,3 +1,3 @@ -java -jar ../logstash-1.3.2-flatjar.jar agent -f shipper.conf +java -jar ../logstash-*.jar agent -f shipper.conf pause; \ No newline at end of file diff --git a/support/logstash/error_collector/shipper.conf.example b/support/logstash/error_collector/shipper.conf.example index cdb468812..cc756dc31 100644 --- a/support/logstash/error_collector/shipper.conf.example +++ b/support/logstash/error_collector/shipper.conf.example @@ -3,16 +3,16 @@ input { path => "[SpringSide Dir]\examples\showcase\logs\showcase.log" # logstash要求必须是绝对路径 type => "showcase" codec => multiline { # 将Exception Stacktrace拼接成一条日志记录 - pattern => "(^.+Exception: .+)|(^\s+at .+)|(^\s*Caused by:.+)"|(^\s+... \d+ common frames omitted) + pattern => "(^.+Exception: .+)|(^\s+at .+)|(^\s*Caused by:.+)|(^\s+... \d+ common frames omitted)" what => "previous" } - start_position => "beginning" + start_position => "beginning" } } filter { - if [type] != "showcase" or [message] !~ /(ERROR)|(^.+Exception: .+)/{ - drop {} # 将非错误日志过滤掉 + if [message] !~ /(ERROR)|(^.+Exception: .+)/{ # 将非错误日志过滤掉 + drop {} } } @@ -21,7 +21,7 @@ output { host => "127.0.0.1" port => 6868 codec => plain { - format => "[%{host}]-%{message}" # 设置output的格式,输出HostName + Message内容本身 + format => "[%{host}]-%{message}" # 设置output的格式,仅输出HostName + 日志内容本身,不附加Timestamp } } } diff --git a/support/logstash/safe_shipper/shipper.bat b/support/logstash/safe_shipper/shipper.bat index 4d8c32cf3..29360b4c6 100644 --- a/support/logstash/safe_shipper/shipper.bat +++ b/support/logstash/safe_shipper/shipper.bat @@ -1,3 +1,3 @@ -java -jar ../logstash-1.3.2-flatjar.jar agent -f shipper.conf +java -jar ../logstash-*.jar agent -f shipper.conf pause; \ No newline at end of file diff --git a/support/logstash/safe_shipper/shipper.conf.example b/support/logstash/safe_shipper/shipper.conf.example index f2f596aa3..1d0ce8ad0 100644 --- a/support/logstash/safe_shipper/shipper.conf.example +++ b/support/logstash/safe_shipper/shipper.conf.example @@ -11,7 +11,7 @@ input { output { file { message_format => "%{message}" - path => "showcase_full.log" + path => "showcase_safe.log" type => "showcase" } } From 0ec03d93bb2ab3042a676321062e9a64125f79d3 Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 24 Jan 2014 17:52:39 +0800 Subject: [PATCH 055/356] =?UTF-8?q?#272=20LogStash=E9=9B=86=E4=B8=AD?= =?UTF-8?q?=E5=BC=8F=E6=97=A5=E5=BF=97=E5=A4=84=E7=90=86=E6=BC=94=E7=A4=BA?= =?UTF-8?q?=20=E8=AE=BE=E7=BD=AE=E9=94=99=E8=AF=AF=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=8C=89=E6=97=A5=E6=9C=9F=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demos/hystrix/web/HystrixExceptionHandler.java | 8 +++++--- support/logstash/README.txt | 5 +++-- support/logstash/error_collector/collector.conf | 3 ++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/web/HystrixExceptionHandler.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/web/HystrixExceptionHandler.java index 70ce1f692..bfa49112f 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/web/HystrixExceptionHandler.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/hystrix/web/HystrixExceptionHandler.java @@ -29,8 +29,9 @@ public class HystrixExceptionHandler extends ResponseEntityExceptionHandler { /** - * 处理Hystrix Runtime异常, 异常分为两类,一类是Command内部抛出异常,一类是Hystrix自身的保护机制. - * Command内部抛出的异常返回500, 对Hystrix返回的异常返回503 + * 处理Hystrix Runtime异常, 分为两类: + * 一类是Command内部抛出异常(返回500). + * 一类是Hystrix已进入保护状态(返回503). */ @ExceptionHandler(value = { HystrixRuntimeException.class }) public final ResponseEntity handleException(HystrixRuntimeException e, WebRequest request) { @@ -53,7 +54,8 @@ public final ResponseEntity handleException(HystrixRuntimeException e, WebReq } /** - * 处理Hystrix ClientException异常. + * 处理Hystrix ClientException异常(返回404). + * ClientException表明是客户端请求参数本身的问题, 不计入异常次数统计。 */ @ExceptionHandler(value = { HystrixBadRequestException.class }) public final ResponseEntity handleException(HystrixBadRequestException e, WebRequest request) { diff --git a/support/logstash/README.txt b/support/logstash/README.txt index 675c624ab..3b86b6967 100644 --- a/support/logstash/README.txt +++ b/support/logstash/README.txt @@ -6,5 +6,6 @@ Logstash Demo error_collector的演示流程: 1. 下载 最新版的logstash-*.jar 放到本目录,将子目录中的shipper.conf.example 复制成 shipper.conf, 修改log日志路径。 -2. 运行 shipper 与 collector, 同时在showcase中产生错误日志(建议使用Hystrix演示来产生) -3. 访问 http://localhost:9292/ 访问GUI \ No newline at end of file +2. 运行 子目录中的shipper.bat 与 collector.bat, 同时在showcase中产生错误日志(建议使用Hystrix演示来产生) +3. 访问 http://localhost:9292/ 访问GUI +4. 查看 子目录中的showcase_error_2014-xx-xx.log \ No newline at end of file diff --git a/support/logstash/error_collector/collector.conf b/support/logstash/error_collector/collector.conf index 94c690c21..fdd3ecab9 100644 --- a/support/logstash/error_collector/collector.conf +++ b/support/logstash/error_collector/collector.conf @@ -10,8 +10,9 @@ input { # 在TCP端口上侦听 output { file { # 输出到统一错误日志,仅包含message内容本身。 - path => "showcase_error.log" + path => "showcase_error_%{+YYYY-MM-dd}.log" message_format => "%{message}" } + elasticsearch { embedded => true } # 同时输出到嵌入式的ElasticSearch } \ No newline at end of file From 74948145b99edcf7a2ec7c5ea8772ed110620eb5 Mon Sep 17 00:00:00 2001 From: Calvin Date: Sun, 26 Jan 2014 11:33:02 +0800 Subject: [PATCH 056/356] #327 try scalatest for BDD testing, fix the review comments --- .../src/test/scala/account/UserManagerSpec.scala | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/showcase/src/test/scala/account/UserManagerSpec.scala b/examples/showcase/src/test/scala/account/UserManagerSpec.scala index fcb033fff..0c1a1b4d7 100644 --- a/examples/showcase/src/test/scala/account/UserManagerSpec.scala +++ b/examples/showcase/src/test/scala/account/UserManagerSpec.scala @@ -16,7 +16,7 @@ class UserManagerSpec extends FeatureSpec with GivenWhenThen with Matchers with implicit val webDriver: WebDriver = new FirefoxDriver val host = "http://localhost:8080/showcase" - feature("Manage users") { + feature("User Managament") { info("As a administrator") info("i want to list and edit the current users, but i don't want to add new user") @@ -29,7 +29,7 @@ class UserManagerSpec extends FeatureSpec with GivenWhenThen with Matchers with When("All users are listed in the page") Then("admin user is displayed in the page") - val ele: Option[Element] = find(xpath("//tr[1]/td[2]")) + val ele = find(xpath("//tr[1]/td[2]")) ele.get.text should be("管理员 ") } @@ -41,8 +41,8 @@ class UserManagerSpec extends FeatureSpec with GivenWhenThen with Matchers with When("Edit user1 with new name") click on id("editLink-user"); - textField("name").value = "user_foo"; - click on "submit_btn" + textField("name").value = "user_foo" + click on id("submit_btn") Then("user1 with new name display in user edit page") click on id("editLink-user") @@ -77,7 +77,7 @@ class UserManagerSpec extends FeatureSpec with GivenWhenThen with Matchers with textField("username").value = "admin" pwdField("password").value = "admin" checkbox("rememberMe").select() - click on "submit_btn" + click on id("submit_btn") pageTitle should include("综合演示用例") } From 362d83fe3ff30c2805c42d4c012ce174978d8614 Mon Sep 17 00:00:00 2001 From: Calvin Date: Sun, 26 Jan 2014 11:33:25 +0800 Subject: [PATCH 057/356] code format --- .../redis/job/producer/JobProducerDemo.java | 4 +-- .../functional/BaseSeleniumTestCase.java | 4 +-- .../springside/modules/metrics/Counter.java | 28 +++++++++---------- .../modules/metrics/report/Slf4jReporter.java | 5 ++-- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/producer/JobProducerDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/producer/JobProducerDemo.java index 4dda22321..8ee0480ed 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/producer/JobProducerDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/producer/JobProducerDemo.java @@ -68,8 +68,8 @@ public class JobProducerTask extends BenchmarkTask { @Override public void execute(final int requestSequence) { long jobId = idGenerator.getAndIncrement(); - jobProducer.schedule("job:" + jobId, expiredMills.get() - System.currentTimeMillis(), - TimeUnit.MILLISECONDS); + jobProducer + .schedule("job:" + jobId, expiredMills.get() - System.currentTimeMillis(), TimeUnit.MILLISECONDS); // 达到期望的每秒的TPS后,expireTime往后滚动一秒 if ((jobId % (expectTps)) == 0) { diff --git a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/BaseSeleniumTestCase.java b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/BaseSeleniumTestCase.java index bab76a30c..3bf99d39a 100644 --- a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/BaseSeleniumTestCase.java +++ b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/BaseSeleniumTestCase.java @@ -24,14 +24,14 @@ public class BaseSeleniumTestCase extends BaseFunctionalTestCase { protected static Selenium2 s; - //出错时截屏的规则 + // 出错时截屏的规则 @Rule public TestRule snapshotRule = new SeleniumSnapshotRule(s); @BeforeClass public static void createSeleniumOnce() throws Exception { if (s == null) { - //根据配置创建Selenium driver. + // 根据配置创建Selenium driver. String driverName = propertiesLoader.getProperty("selenium.driver"); WebDriver driver = WebDriverFactory.createDriver(driverName); diff --git a/modules/metrics/src/main/java/org/springside/modules/metrics/Counter.java b/modules/metrics/src/main/java/org/springside/modules/metrics/Counter.java index aa0d9f9dc..f84046aec 100644 --- a/modules/metrics/src/main/java/org/springside/modules/metrics/Counter.java +++ b/modules/metrics/src/main/java/org/springside/modules/metrics/Counter.java @@ -37,22 +37,22 @@ public void dec(long n) { counter.addAndGet(-n); } - public CounterMetric calculateMetric() { - long lastCount = counter.getAndSet(0); - long currentTime = clock.getCurrentTime(); + public CounterMetric calculateMetric() { + long lastCount = counter.getAndSet(0); + long currentTime = clock.getCurrentTime(); - CounterMetric metric = new CounterMetric(); + CounterMetric metric = new CounterMetric(); - totalCount += lastCount; - metric.lastCount = lastCount; - metric.totalCount = totalCount; + totalCount += lastCount; + metric.lastCount = lastCount; + metric.totalCount = totalCount; - long elapsed = currentTime - lastReportTime; - if (elapsed > 0) { - metric.lastRate = (lastCount * 1000) / elapsed; - } + long elapsed = currentTime - lastReportTime; + if (elapsed > 0) { + metric.lastRate = (lastCount * 1000) / elapsed; + } - lastReportTime = currentTime; - return metric; - } + lastReportTime = currentTime; + return metric; + } } diff --git a/modules/metrics/src/main/java/org/springside/modules/metrics/report/Slf4jReporter.java b/modules/metrics/src/main/java/org/springside/modules/metrics/report/Slf4jReporter.java index da7e1430b..5fefe4c75 100644 --- a/modules/metrics/src/main/java/org/springside/modules/metrics/report/Slf4jReporter.java +++ b/modules/metrics/src/main/java/org/springside/modules/metrics/report/Slf4jReporter.java @@ -53,8 +53,9 @@ private void logHistogram(String name, HistogramMetric histogram) { private void logExecution(String name, ExecutionMetric execution) { reportLogger.info("type=EXECUTION, name={}, count={}, lastRate={}, min={}ms, max={}ms, mean={}ms", name, - execution.counterMetric.totalCount, execution.counterMetric.lastRate, execution.histogramMetric.min, execution.histogramMetric.max, - execution.histogramMetric.mean, buildPcts(execution.histogramMetric.pcts)); + execution.counterMetric.totalCount, execution.counterMetric.lastRate, execution.histogramMetric.min, + execution.histogramMetric.max, execution.histogramMetric.mean, + buildPcts(execution.histogramMetric.pcts)); } private String buildPcts(Map pcts) { From 5fa0624a95be83ab4a00d4bbb8c51c22968c6451 Mon Sep 17 00:00:00 2001 From: Calvin Date: Sun, 26 Jan 2014 15:54:48 +0800 Subject: [PATCH 058/356] polish Utils --- .../utilities/collection/AdvancedMapDemo.java | 26 ++-- .../utilities/collection/CollectionsDemo.java | 5 +- .../string/ApacheStringUtilsDemo.java | 87 ++++++++++++ .../string/GuavaStringUtilsDemo.java | 92 ++++++++++++ .../demos/utilities/string/StringDemo.java | 131 ------------------ .../test/scala/account/UserManagerSpec.scala | 2 +- .../springside/modules/utils/Exceptions.java | 31 +++-- .../springside/modules/utils/StopWatch.java | 27 ---- 8 files changed, 221 insertions(+), 180 deletions(-) create mode 100644 examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/ApacheStringUtilsDemo.java create mode 100644 examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/GuavaStringUtilsDemo.java delete mode 100644 examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/StringDemo.java delete mode 100644 modules/core/src/main/java/org/springside/modules/utils/StopWatch.java diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/AdvancedMapDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/AdvancedMapDemo.java index d3bd56891..af56e860b 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/AdvancedMapDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/AdvancedMapDemo.java @@ -21,7 +21,7 @@ public class AdvancedMapDemo { /** - * Guava的同一个key可以有多个value的Map. + * Guava Multimap, 同一个key可以有多个value的Map. */ @Test public void multiMap() { @@ -45,23 +45,29 @@ public void multiMap() { } /** - * Guava的BiMap,可随时调转Key与Value. + * Guava BiMap,可随时调转Key与Value. */ @Test public void biMap() { - BiMap bimap = HashBiMap.create(); - BiMap inverseMap = bimap.inverse(); + BiMap biMap = HashBiMap.create(); + BiMap inverseMap = biMap.inverse(); - bimap.put(1, "a"); - bimap.put(2, "b"); + // 在biMap这边插入,在inserserMap可以用value取到key。 + biMap.put(1, "a"); + biMap.put(2, "b"); assertThat(inverseMap.get("b")).isEqualTo(2); + // 在inverseMap这边插入,在bimap这边也能用value取到key。 inverseMap.put("c", 3); - assertThat(bimap.get(3)).isEqualTo("c"); + assertThat(biMap.get(3)).isEqualTo("c"); + + // value也必须唯一,如果将key 4的value强行设为"a", 原来的key 1消失 + biMap.forcePut(4, "a"); + assertThat(biMap.containsKey(1)).isFalse(); } /* - * Guava的Table等于有兩个key的Map,可用来替代Map + * Guava Table, 等于有兩个key的Map,可用来替代Map */ @Test public void table() { @@ -70,8 +76,10 @@ public void table() { table.put(1, "b", "1b"); table.put(2, "a", "2a"); table.put(2, "b", "2b"); - + // 取单元格 assertThat(table.get(2, "a")).isEqualTo("2a"); + // 取row + assertThat(table.row(1)).contains(entry("a", "1a"), entry("b", "1b")); } } diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/CollectionsDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/CollectionsDemo.java index acd751007..61d74f08d 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/CollectionsDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/collection/CollectionsDemo.java @@ -19,14 +19,14 @@ import com.google.common.collect.Maps; /** - * 演示各种Collections如何简化Collection操作. + * 演示SpringSide Collections3(替代Apache Collections)和Guava 的Collection 如何简化Collection操作. * * @author calvin */ public class CollectionsDemo { @Test - public void init() { + public void initCollection() { // 无需在等号右边重新定义泛型的创建ArrayList List list = Lists.newArrayList(); // 创建的同时初始化数据 @@ -60,6 +60,5 @@ public void operation() { // list与list2的交集的新List result = Collections3.intersection(list, list2); assertThat(result).containsOnly("a", "b"); - } } diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/ApacheStringUtilsDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/ApacheStringUtilsDemo.java new file mode 100644 index 000000000..12af49d46 --- /dev/null +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/ApacheStringUtilsDemo.java @@ -0,0 +1,87 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package org.springside.examples.showcase.demos.utilities.string; + +import static org.assertj.core.api.Assertions.*; + +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.junit.Test; + +import com.google.common.collect.Lists; + +/** + * 演示Apache Commons Lang3的StringUtils。 + * + * Apache的StringUtils已提供绝大多数String函数的Null Safe版本, 没有一一演示. + * + * @author calvin + */ +public class ApacheStringUtilsDemo { + + @Test + public void nullSafe() { + // 判断非空,最常用函数 + assertThat(StringUtils.isNotBlank(null)).isFalse(); + assertThat(StringUtils.isNotBlank("")).isFalse(); + assertThat(StringUtils.isNotBlank(" ")).isFalse(); + + assertThat(StringUtils.isNotEmpty(" ")).isTrue(); + + // 对null或blank字符串的default值 + assertThat(StringUtils.defaultString(null)).isEqualTo(""); + assertThat(StringUtils.defaultString(null, "defaultStr")).isEqualTo("defaultStr"); + + assertThat(StringUtils.defaultIfBlank(null, "defaultStr")).isEqualTo("defaultStr"); + assertThat(StringUtils.defaultIfBlank(" ", "defaultStr")).isEqualTo("defaultStr"); + } + + @Test + public void substring() { + String input = "hahakaka"; + String result = StringUtils.substringAfter(input, "ha"); + assertThat(result).isEqualTo("hakaka"); + + result = StringUtils.substringAfterLast(input, "ha"); + assertThat(result).isEqualTo("kaka"); + + assertThat(StringUtils.substringBetween("'haha'", "'")).isEqualTo("haha"); + assertThat(StringUtils.substringBetween("{haha}", "{", "}")).isEqualTo("haha"); + } + + @Test + public void joinSplit() { + // join + List inputList = Lists.newArrayList("a", "b", "c"); + String result = StringUtils.join(inputList, ","); + assertThat(result).isEqualTo("a,b,c"); + + // split + String input = "a,b,c"; + String[] resultArray = StringUtils.split(input, ","); + assertThat(resultArray).containsSequence("a", "b", "c"); + } + + @Test + public void otherUtils() { + // ignoreCase的比较函数:contains/startWith/EndWith/indexOf/lastIndexOf + assertThat(StringUtils.containsIgnoreCase("Aaabbb", "aaa")).isTrue(); + assertThat(StringUtils.indexOfIgnoreCase("Aaabbb", "aaa")).isEqualTo(0); + + // 左边补0 + assertThat(StringUtils.leftPad("1", 3, '0')).isEqualTo("001"); + assertThat(StringUtils.leftPad("12", 3, '0')).isEqualTo("012"); + + // 超长部分变省略号 + assertThat(StringUtils.abbreviate("abcdefg", 7)).isEqualTo("abcdefg"); + assertThat(StringUtils.abbreviate("abcdefg", 6)).isEqualTo("abc..."); + + // 首字母大写/小写 + assertThat(StringUtils.capitalize("abc")).isEqualTo("Abc"); + assertThat(StringUtils.uncapitalize("Abc")).isEqualTo("abc"); + } +} diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/GuavaStringUtilsDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/GuavaStringUtilsDemo.java new file mode 100644 index 000000000..2fbb40b3b --- /dev/null +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/GuavaStringUtilsDemo.java @@ -0,0 +1,92 @@ +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package org.springside.examples.showcase.demos.utilities.string; + +import static org.assertj.core.api.Assertions.*; + +import java.util.List; +import java.util.Map; + +import org.junit.Test; + +import com.google.common.base.CaseFormat; +import com.google.common.base.Charsets; +import com.google.common.base.Joiner; +import com.google.common.base.Splitter; +import com.google.common.collect.Maps; + +/** + * 演示 Guava的比Apache StringUtils更高级的Joiner和Spliter,Case Format转换 + * + * @author calvin + */ +public class GuavaStringUtilsDemo { + + /** + * Guava的高级版Joiner, + */ + @Test + public void joiner() { + + // 忽略Null值。 + String[] fantasyGenres = { "Space Opera", null, "Horror", "Magic realism", null, "Religion" }; + String joined = Joiner.on(", ").skipNulls().join(fantasyGenres); + assertThat(joined).isEqualTo("Space Opera, Horror, Magic realism, Religion"); + + // 将Null值转换为特定字符串. + String[] fantasyGenres2 = { "Space Opera", null, "Horror", "Magic realism", null, "Religion" }; + joined = Joiner.on(", ").useForNull("NULL!!!").join(fantasyGenres2); + assertThat(joined).isEqualTo("Space Opera, NULL!!!, Horror, Magic realism, NULL!!!, Religion"); + + // join Map类型 + Map map = Maps.newHashMap(); + map.put(1, "Space Opera"); + map.put(2, "Horror"); + map.put(3, "Magic realism"); + joined = Joiner.on(",").withKeyValueSeparator(":").join(map); + assertThat(joined).isEqualTo("1:Space Opera,2:Horror,3:Magic realism"); + + // append一个已存在的字符串 + StringBuilder sb = new StringBuilder("Append StringBulder demo: "); + joined = Joiner.on(", ").skipNulls().appendTo(sb, fantasyGenres).toString(); + assertThat(joined).isEqualTo("Append StringBulder demo: Space Opera, Horror, Magic realism, Religion"); + + // reuse joiner + Joiner joiner = Joiner.on(", "); + joiner.join(fantasyGenres); + joiner.join(fantasyGenres2); + + } + + /** + * Splitter有很多函数与Joiner一样,不一一演示 + */ + @Test + public void splitter() { + // 去除逗号前后的空格 + String input = "Space Opera,Horror, Magic realism,Religion"; + List result = Splitter.on(",").trimResults().splitToList(input); + assertThat(result).containsSequence("Space Opera", "Horror", "Magic realism", "Religion"); + } + + /** + * 好玩的CaseFormat转换,在spaceSize->space_size之间转换,比如数据库表名与Java类名,变量名之间的转换。 + */ + @Test + public void caseFormatByGuava() { + String name = "SPACE_SIZE"; + assertThat(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, name)).isEqualTo("SpaceSize"); + assertThat(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, name)).isEqualTo("spaceSize"); + assertThat(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_UNDERSCORE, name)).isEqualTo("space_size"); + assertThat(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_HYPHEN, name)).isEqualTo("space-size"); + } + + @Test + public void otherUtils() { + // 直接getBytes, 无需catch UnsupportedEncodingException, JDK7 有相应的StandardCharsets + byte[] bytes = "foobarbaz".getBytes(Charsets.UTF_8); + } +} diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/StringDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/StringDemo.java deleted file mode 100644 index 2fa53c3e8..000000000 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/utilities/string/StringDemo.java +++ /dev/null @@ -1,131 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2014 springside.github.io - * - * Licensed under the Apache License, Version 2.0 (the "License"); - *******************************************************************************/ -package org.springside.examples.showcase.demos.utilities.string; - -import static org.assertj.core.api.Assertions.*; - -import java.util.List; -import java.util.Map; - -import org.apache.commons.lang3.StringUtils; -import org.junit.Test; - -import com.google.common.base.CaseFormat; -import com.google.common.base.Joiner; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; - -/** - * 演示Apache Commons Lang3的StringUtils 和 Guava的Joiner和Spliter。 - * - * Apache的StringUtils已提供绝大多数常用的Null Safe的函数, - * Guava提供的是高级版的Joiner和Spliter,Case Format转换等高级函数. - * - * @author calvin - */ -public class StringDemo { - - /** - * Apache提供的最常用的Null Safe的函数。 - * - * 另有一些与String一样,但Null Safe的函数,没有一一演示。 - * - */ - @Test - public void utilsByApache() { - // 判断非空,最常用函数 - assertThat(StringUtils.isNotBlank(null)).isFalse(); - assertThat(StringUtils.isNotBlank("")).isFalse(); - assertThat(StringUtils.isNotBlank(" ")).isFalse(); - - // null的default值 - assertThat(StringUtils.defaultString(null)).isEqualTo(""); - assertThat(StringUtils.defaultString(null, "defaultStr")).isEqualTo("defaultStr"); - assertThat(StringUtils.defaultIfBlank(null, "defaultStr")).isEqualTo("defaultStr"); - assertThat(StringUtils.defaultIfBlank(" ", "defaultStr")).isEqualTo("defaultStr"); - - // 截取字符串 - String input = "hahakaka"; - String result = StringUtils.substringAfter(input, "ha"); - assertThat(result).isEqualTo("hakaka"); - - result = StringUtils.substringAfterLast(input, "ha"); - assertThat(result).isEqualTo("kaka"); - - assertThat(StringUtils.substringBetween("'haha'", "'")).isEqualTo("haha"); - assertThat(StringUtils.substringBetween("{haha}", "{", "}")).isEqualTo("haha"); - - // join - List inputList = Lists.newArrayList("a", "b", "c"); - result = StringUtils.join(inputList, ","); - assertThat(result).isEqualTo("a,b,c"); - - // ignoreCase的比较函数:contains/startWith/EndWith/indexOf/lastIndexOf - assertThat(StringUtils.containsIgnoreCase("Aaabbb", "aaa")).isTrue(); - assertThat(StringUtils.indexOfIgnoreCase("Aaabbb", "aaa")).isEqualTo(0); - - // /split - input = "a,b,c"; - String[] resultArray = StringUtils.split(input, ","); - assertThat(resultArray[1]).isEqualTo("b"); - - // 左边补0 - result = StringUtils.leftPad("1", 3, '0'); - assertThat(result).isEqualTo("001"); - - // 超长部分变省略号 - assertThat(StringUtils.abbreviate("abcdefg", 7)).isEqualTo("abcdefg"); - assertThat(StringUtils.abbreviate("abcdefg", 6)).isEqualTo("abc..."); - - // 首字母大写 - assertThat(StringUtils.capitalize("abc")).isEqualTo("Abc"); - assertThat(StringUtils.uncapitalize("Abc")).isEqualTo("abc"); - } - - /** - * Guava的高级版Joiner, - * - * Splitter的函数与Joiner功能类似,不再演示。 - */ - @Test - public void joinerByGuava() { - - // 忽略Null值。 - String[] fantasyGenres = { "Space Opera", null, "Horror", "Magic realism", null, "Religion" }; - String joined = Joiner.on(", ").skipNulls().join(fantasyGenres); - assertThat(joined).isEqualTo("Space Opera, Horror, Magic realism, Religion"); - - // 将Null值转换为特定字符串. - String[] fantasyGenres2 = { "Space Opera", null, "Horror", "Magic realism", null, "Religion" }; - joined = Joiner.on(", ").useForNull("NULL!!!").join(fantasyGenres2); - assertThat(joined).isEqualTo("Space Opera, NULL!!!, Horror, Magic realism, NULL!!!, Religion"); - - // join Map类型 - Map map = Maps.newHashMap(); - map.put(1, "Space Opera"); - map.put(2, "Horror"); - map.put(3, "Magic realism"); - joined = Joiner.on(",").withKeyValueSeparator(":").join(map); - assertThat(joined).isEqualTo("1:Space Opera,2:Horror,3:Magic realism"); - - // append一个已存在的字符串 - StringBuilder sb = new StringBuilder("Append StringBulder demo: "); - joined = Joiner.on(", ").skipNulls().appendTo(sb, fantasyGenres).toString(); - assertThat(joined).isEqualTo("Append StringBulder demo: Space Opera, Horror, Magic realism, Religion"); - } - - /** - * 好玩的CaseFormat转换,在spaceSize->space_size之间转换,比如数据库表名与Java类名,变量名之间的转换。 - */ - @Test - public void caseFormatByGuava() { - String name = "SPACE_SIZE"; - assertThat(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, name)).isEqualTo("SpaceSize"); - assertThat(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, name)).isEqualTo("spaceSize"); - assertThat(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_UNDERSCORE, name)).isEqualTo("space_size"); - assertThat(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_HYPHEN, name)).isEqualTo("space-size"); - } -} diff --git a/examples/showcase/src/test/scala/account/UserManagerSpec.scala b/examples/showcase/src/test/scala/account/UserManagerSpec.scala index 0c1a1b4d7..f75d1b892 100644 --- a/examples/showcase/src/test/scala/account/UserManagerSpec.scala +++ b/examples/showcase/src/test/scala/account/UserManagerSpec.scala @@ -40,7 +40,7 @@ class UserManagerSpec extends FeatureSpec with GivenWhenThen with Matchers with loginAsAdminIfNecessary() When("Edit user1 with new name") - click on id("editLink-user"); + click on id("editLink-user") textField("name").value = "user_foo" click on id("submit_btn") diff --git a/modules/core/src/main/java/org/springside/modules/utils/Exceptions.java b/modules/core/src/main/java/org/springside/modules/utils/Exceptions.java index e1ee0b352..17497e028 100644 --- a/modules/core/src/main/java/org/springside/modules/utils/Exceptions.java +++ b/modules/core/src/main/java/org/springside/modules/utils/Exceptions.java @@ -11,6 +11,8 @@ /** * 关于异常的工具类. * + * 参考了guava的Throwables。 + * * @author calvin */ public class Exceptions { @@ -18,33 +20,44 @@ public class Exceptions { /** * 将CheckedException转换为UncheckedException. */ - public static RuntimeException unchecked(Exception e) { - if (e instanceof RuntimeException) { - return (RuntimeException) e; + public static RuntimeException unchecked(Throwable ex) { + if (ex instanceof RuntimeException) { + return (RuntimeException) ex; } else { - return new RuntimeException(e); + return new RuntimeException(ex); } } /** * 将ErrorStack转化为String. */ - public static String getStackTraceAsString(Exception e) { + public static String getStackTraceAsString(Throwable ex) { StringWriter stringWriter = new StringWriter(); - e.printStackTrace(new PrintWriter(stringWriter)); + ex.printStackTrace(new PrintWriter(stringWriter)); return stringWriter.toString(); } /** * 获取组合本异常信息与底层异常信息的异常描述, 适用于本异常为统一包装异常类,底层异常才是根本原因的情况。 */ - public static String getErrorMessageWithNestedException(Exception e) { - Throwable nestedException = e.getCause(); - return new StringBuilder().append(e.getMessage()).append(" nested exception is ") + public static String getErrorMessageWithNestedException(Throwable ex) { + Throwable nestedException = ex.getCause(); + return new StringBuilder().append(ex.getMessage()).append(" nested exception is ") .append(nestedException.getClass().getName()).append(":").append(nestedException.getMessage()) .toString(); } + /** + * 获取异常的Root Cause. + */ + public static Throwable getRootCause(Throwable ex) { + Throwable cause; + while ((cause = ex.getCause()) != null) { + ex = cause; + } + return ex; + } + /** * 判断异常是否由某些底层的异常引起. */ diff --git a/modules/core/src/main/java/org/springside/modules/utils/StopWatch.java b/modules/core/src/main/java/org/springside/modules/utils/StopWatch.java deleted file mode 100644 index b9cd0bf21..000000000 --- a/modules/core/src/main/java/org/springside/modules/utils/StopWatch.java +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2014 springside.github.io - * - * Licensed under the Apache License, Version 2.0 (the "License"); - *******************************************************************************/ -package org.springside.modules.utils; - -/** - * 重做一个毫秒级的简单StopWatch轮子。 - * - * @author calvin - */ -public class StopWatch { - private long startTime; - - public StopWatch() { - startTime = System.currentTimeMillis(); - } - - public long getMillis() { - return System.currentTimeMillis() - startTime; - } - - public void reset() { - startTime = System.currentTimeMillis(); - } -} From 428ed55311d63ead8acb5ba4556661150235b544 Mon Sep 17 00:00:00 2001 From: Calvin Date: Sun, 26 Jan 2014 17:20:19 +0800 Subject: [PATCH 059/356] polish by Sonar --- .../AdvancedJobConsumerBatchPopDemo.java | 4 +-- .../job/consumer/SimpleJobConsumerDemo.java | 8 +++--- .../dispatcher/ReliableJobDispatcherDemo.java | 2 +- .../dispatcher/SimpleJobDispatcherDemo.java | 2 +- .../showcase/service/ShiroDbRealm.java | 2 +- .../persistence/DynamicSpecifications.java | 2 +- .../org/springside/modules/utils/Clock.java | 4 +-- .../modules/utils/Collections3.java | 11 ++++++-- .../org/springside/modules/utils/Encodes.java | 2 +- .../springside/modules/web/MediaTypes.java | 28 +++++++++---------- .../org/springside/modules/web/Servlets.java | 15 +++++----- .../modules/nosql/redis/JedisUtils.java | 1 - .../modules/test/benchmark/BenchmarkTask.java | 4 +-- .../test/benchmark/ConcurrentBenchmark.java | 4 +-- .../springside/modules/metrics/Histogram.java | 4 +-- .../modules/metrics/MetricRegistry.java | 2 +- .../modules/metrics/utils/Clock.java | 4 +-- 17 files changed, 52 insertions(+), 47 deletions(-) diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/AdvancedJobConsumerBatchPopDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/AdvancedJobConsumerBatchPopDemo.java index a3f596af7..74e95aae8 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/AdvancedJobConsumerBatchPopDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/AdvancedJobConsumerBatchPopDemo.java @@ -26,11 +26,11 @@ */ public class AdvancedJobConsumerBatchPopDemo extends SimpleJobConsumerDemo { - private AdvancedConsumer consumer; - private static boolean reliable; private static int batchSize; + private AdvancedConsumer consumer; + public static void main(String[] args) throws Exception { threadCount = Integer.parseInt(System.getProperty(ConcurrentBenchmark.THREAD_COUNT_NAME, diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/SimpleJobConsumerDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/SimpleJobConsumerDemo.java index 3daec4a81..e40bbbb85 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/SimpleJobConsumerDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/consumer/SimpleJobConsumerDemo.java @@ -38,12 +38,12 @@ public class SimpleJobConsumerDemo implements Runnable { protected static AtomicLong golbalPreviousCount = new AtomicLong(0); protected static RateLimiter golbalPrintRate = RateLimiter.create(1d / PRINT_BETWEEN_SECONDS); - private SimpleJobConsumer consumer; - protected long localCounter = 0L; protected long localPreviousCount = 0L; protected RateLimiter localPrintRate = RateLimiter.create(1d / PRINT_BETWEEN_SECONDS); + private SimpleJobConsumer consumer; + public static void main(String[] args) throws Exception { threadCount = Integer.parseInt(System.getProperty(ConcurrentBenchmark.THREAD_COUNT_NAME, @@ -109,14 +109,14 @@ public void handleJob(String job) { // print global progress, 所有線程裡只有一個会在10秒內打印一次。 if (golbalPrintRate.tryAcquire()) { - System.out.printf("Total pop %,d jobs, tps is %,d\n", globalCount, + System.out.printf("Total pop %,d jobs, tps is %,d%n", globalCount, (globalCount - golbalPreviousCount.get()) / PRINT_BETWEEN_SECONDS); golbalPreviousCount.set(globalCount); } // print current thread progress,10秒內打印一次。 if (localPrintRate.tryAcquire()) { - System.out.printf("Local thread pop %,d jobs, tps is %,d\n", localCounter, + System.out.printf("Local thread pop %,d jobs, tps is %,d%n", localCounter, (localCounter - localPreviousCount) / PRINT_BETWEEN_SECONDS); localPreviousCount = localCounter; } diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/dispatcher/ReliableJobDispatcherDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/dispatcher/ReliableJobDispatcherDemo.java index e9e2d12d3..ac05e8b9c 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/dispatcher/ReliableJobDispatcherDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/dispatcher/ReliableJobDispatcherDemo.java @@ -65,7 +65,7 @@ public static void startPrintStatistics(final JobStatistics statistics) { @Override public void run() { System.out.printf( - "Scheduled job %d, Ready Job %d, Lock Job %d, Dispatch Counter %d, Retry Counter %d \n", + "Scheduled job %d, Ready Job %d, Lock Job %d, Dispatch Counter %d, Retry Counter %d %n", statistics.getScheduledJobNumber(), statistics.getReadyJobNumber(), statistics.getLockJobNumber(), statistics.getDispatchCounter(), statistics.getRetryCounter()); } diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/dispatcher/SimpleJobDispatcherDemo.java b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/dispatcher/SimpleJobDispatcherDemo.java index 820315dfa..1c85d43ca 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/dispatcher/SimpleJobDispatcherDemo.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/demos/redis/job/dispatcher/SimpleJobDispatcherDemo.java @@ -62,7 +62,7 @@ private static void startPrintStatistics(final JobStatistics statistics) { statisticsTask = scheduler.scheduleAtFixedRate(new Runnable() { @Override public void run() { - System.out.printf("Scheduled job %d, Ready Job %d, Dispatch Counter %d \n", + System.out.printf("Scheduled job %d, Ready Job %d, Dispatch Counter %d%n", statistics.getScheduledJobNumber(), statistics.getReadyJobNumber(), statistics.getDispatchCounter()); } diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/service/ShiroDbRealm.java b/examples/showcase/src/main/java/org/springside/examples/showcase/service/ShiroDbRealm.java index ebc2edc0f..4645d03a5 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/service/ShiroDbRealm.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/service/ShiroDbRealm.java @@ -39,7 +39,7 @@ protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcTo UsernamePasswordToken token = (UsernamePasswordToken) authcToken; User user = accountService.findUserByLoginName(token.getUsername()); if (user != null) { - if (user.getStatus().equals("disabled")) { + if ("disabled".equals(user.getStatus())) { throw new DisabledAccountException(); } diff --git a/modules/core/src/main/java/org/springside/modules/persistence/DynamicSpecifications.java b/modules/core/src/main/java/org/springside/modules/persistence/DynamicSpecifications.java index 63f0df5e2..63421d953 100644 --- a/modules/core/src/main/java/org/springside/modules/persistence/DynamicSpecifications.java +++ b/modules/core/src/main/java/org/springside/modules/persistence/DynamicSpecifications.java @@ -61,7 +61,7 @@ public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuild } // 将所有条件用 and 联合起来 - if (predicates.size() > 0) { + if (!predicates.isEmpty()) { return builder.and(predicates.toArray(new Predicate[predicates.size()])); } } diff --git a/modules/core/src/main/java/org/springside/modules/utils/Clock.java b/modules/core/src/main/java/org/springside/modules/utils/Clock.java index c72bbbca0..f9dd8ce71 100644 --- a/modules/core/src/main/java/org/springside/modules/utils/Clock.java +++ b/modules/core/src/main/java/org/springside/modules/utils/Clock.java @@ -14,12 +14,12 @@ */ public interface Clock { + static final Clock DEFAULT = new DefaultClock(); + Date getCurrentDate(); long getCurrentTimeInMillis(); - static final Clock DEFAULT = new DefaultClock(); - /** * 默认时间提供者,返回当前的时间,线程安全。 */ diff --git a/modules/core/src/main/java/org/springside/modules/utils/Collections3.java b/modules/core/src/main/java/org/springside/modules/utils/Collections3.java index 0e3e8b30b..0f0e5a489 100644 --- a/modules/core/src/main/java/org/springside/modules/utils/Collections3.java +++ b/modules/core/src/main/java/org/springside/modules/utils/Collections3.java @@ -103,14 +103,21 @@ public static String convertToString(final Collection collection, final String p * 判断是否为空. */ public static boolean isEmpty(Collection collection) { - return ((collection == null) || collection.isEmpty()); + return (collection == null) || collection.isEmpty(); + } + + /** + * 判断是否为空. + */ + public static boolean isEmpty(Map map) { + return (map == null) || map.isEmpty(); } /** * 判断是否为空. */ public static boolean isNotEmpty(Collection collection) { - return ((collection != null) && !(collection.isEmpty())); + return (collection != null) && !(collection.isEmpty()); } /** diff --git a/modules/core/src/main/java/org/springside/modules/utils/Encodes.java b/modules/core/src/main/java/org/springside/modules/utils/Encodes.java index 4d7ae560d..6b07ebaba 100644 --- a/modules/core/src/main/java/org/springside/modules/utils/Encodes.java +++ b/modules/core/src/main/java/org/springside/modules/utils/Encodes.java @@ -74,7 +74,7 @@ public static byte[] decodeBase64(String input) { public static String encodeBase62(byte[] input) { char[] chars = new char[input.length]; for (int i = 0; i < input.length; i++) { - chars[i] = BASE62[((input[i] & 0xFF) % BASE62.length)]; + chars[i] = BASE62[(input[i] & 0xFF) % BASE62.length]; } return new String(chars); } diff --git a/modules/core/src/main/java/org/springside/modules/web/MediaTypes.java b/modules/core/src/main/java/org/springside/modules/web/MediaTypes.java index c12704e3d..58f17e2d5 100644 --- a/modules/core/src/main/java/org/springside/modules/web/MediaTypes.java +++ b/modules/core/src/main/java/org/springside/modules/web/MediaTypes.java @@ -15,24 +15,24 @@ */ public class MediaTypes { - public final static String APPLICATION_XML = "application/xml"; - public final static String APPLICATION_XML_UTF_8 = "application/xml; charset=UTF-8"; + public static final String APPLICATION_XML = "application/xml"; + public static final String APPLICATION_XML_UTF_8 = "application/xml; charset=UTF-8"; - public final static String JSON = "application/json"; - public final static String JSON_UTF_8 = "application/json; charset=UTF-8"; + public static final String JSON = "application/json"; + public static final String JSON_UTF_8 = "application/json; charset=UTF-8"; - public final static String JAVASCRIPT = "application/javascript"; - public final static String JAVASCRIPT_UTF_8 = "application/javascript; charset=UTF-8"; + public static final String JAVASCRIPT = "application/javascript"; + public static final String JAVASCRIPT_UTF_8 = "application/javascript; charset=UTF-8"; - public final static String APPLICATION_XHTML_XML = "application/xhtml+xml"; - public final static String APPLICATION_XHTML_XML_UTF_8 = "application/xhtml+xml; charset=UTF-8"; + public static final String APPLICATION_XHTML_XML = "application/xhtml+xml"; + public static final String APPLICATION_XHTML_XML_UTF_8 = "application/xhtml+xml; charset=UTF-8"; - public final static String TEXT_PLAIN = "text/plain"; - public final static String TEXT_PLAIN_UTF_8 = "text/plain; charset=UTF-8"; + public static final String TEXT_PLAIN = "text/plain"; + public static final String TEXT_PLAIN_UTF_8 = "text/plain; charset=UTF-8"; - public final static String TEXT_XML = "text/xml"; - public final static String TEXT_XML_UTF_8 = "text/xml; charset=UTF-8"; + public static final String TEXT_XML = "text/xml"; + public static final String TEXT_XML_UTF_8 = "text/xml; charset=UTF-8"; - public final static String TEXT_HTML = "text/html"; - public final static String TEXT_HTML_UTF_8 = "text/html; charset=UTF-8"; + public static final String TEXT_HTML = "text/html"; + public static final String TEXT_HTML_UTF_8 = "text/html; charset=UTF-8"; } diff --git a/modules/core/src/main/java/org/springside/modules/web/Servlets.java b/modules/core/src/main/java/org/springside/modules/web/Servlets.java index 84bbc39cd..a755ed783 100644 --- a/modules/core/src/main/java/org/springside/modules/web/Servlets.java +++ b/modules/core/src/main/java/org/springside/modules/web/Servlets.java @@ -5,7 +5,6 @@ *******************************************************************************/ package org.springside.modules.web; -import java.io.UnsupportedEncodingException; import java.util.Enumeration; import java.util.Iterator; import java.util.Map; @@ -18,8 +17,10 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.Validate; +import org.springside.modules.utils.Collections3; import org.springside.modules.utils.Encodes; +import com.google.common.base.Charsets; import com.google.common.net.HttpHeaders; /** @@ -123,12 +124,10 @@ public static boolean checkIfNoneMatchEtag(HttpServletRequest request, HttpServl * @param fileName 下载后的文件名. */ public static void setFileDownloadHeader(HttpServletResponse response, String fileName) { - try { - // 中文文件名支持 - String encodedfileName = new String(fileName.getBytes(), "ISO8859-1"); - response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + encodedfileName + "\""); - } catch (UnsupportedEncodingException e) { - } + // 中文文件名支持 + String encodedfileName = new String(fileName.getBytes(), Charsets.ISO_8859_1); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + encodedfileName + "\""); + } /** @@ -166,7 +165,7 @@ public static Map getParametersStartingWith(ServletRequest reque * @see #getParametersStartingWith */ public static String encodeParameterStringWithPrefix(Map params, String prefix) { - if ((params == null) || (params.size() == 0)) { + if (Collections3.isEmpty(params)) { return ""; } diff --git a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisUtils.java b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisUtils.java index eab16d905..2aa901739 100644 --- a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisUtils.java +++ b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisUtils.java @@ -58,7 +58,6 @@ public static void closeJedis(Jedis jedis) { } jedis.disconnect(); } catch (Exception e) { - } } } diff --git a/modules/extension/src/test/java/org/springside/modules/test/benchmark/BenchmarkTask.java b/modules/extension/src/test/java/org/springside/modules/test/benchmark/BenchmarkTask.java index 61b48effd..37ef9f1f0 100644 --- a/modules/extension/src/test/java/org/springside/modules/test/benchmark/BenchmarkTask.java +++ b/modules/extension/src/test/java/org/springside/modules/test/benchmark/BenchmarkTask.java @@ -88,7 +88,7 @@ protected void printProgressMessage(final int currentRequests) { BigDecimal.ROUND_HALF_UP); System.out - .printf("Thread %02d process %,d requests after %s seconds. Last tps/latency is %,d/%sms. Total tps/latency is %,d/%sms.\n", + .printf("Thread %02d process %,d requests after %s seconds. Last tps/latency is %,d/%sms. Total tps/latency is %,d/%sms.%n", taskSequence, currentRequests, totalTimeSeconds, lastTps, lastLatency.toString(), totalTps, totalLatency.toString()); @@ -106,7 +106,7 @@ protected void printThreadFinishMessage() { BigDecimal totalLatency = new BigDecimal(totalTimeMillis).divide(new BigDecimal(totalRequest), 2, BigDecimal.ROUND_HALF_UP); - System.out.printf("Thread %02d finish.Total tps/latency is %,d/%sms\n", taskSequence, totalTps, + System.out.printf("Thread %02d finish.Total tps/latency is %,d/%sms", taskSequence, totalTps, totalLatency.toString()); } diff --git a/modules/extension/src/test/java/org/springside/modules/test/benchmark/ConcurrentBenchmark.java b/modules/extension/src/test/java/org/springside/modules/test/benchmark/ConcurrentBenchmark.java index 295badb0c..d710ea9dc 100644 --- a/modules/extension/src/test/java/org/springside/modules/test/benchmark/ConcurrentBenchmark.java +++ b/modules/extension/src/test/java/org/springside/modules/test/benchmark/ConcurrentBenchmark.java @@ -77,7 +77,7 @@ protected void printStartMessage() { String className = this.getClass().getSimpleName(); long invokeTimes = threadCount * loopCount; - System.out.printf("%s started at %s.\n%d threads with %,d loops, totally %,d requests will be invoked.\n", + System.out.printf("%s started at %s.%n%d threads with %,d loops, totally %,d requests will be invoked.%n", className, startTime.toString(), threadCount, loopCount, invokeTimes); } @@ -88,7 +88,7 @@ protected void printFinishMessage() { long totalTimeMillis = endTime.getTime() - startTime.getTime(); long tps = (invokeTimes * 1000) / totalTimeMillis; - System.out.printf("%s finished at %s.\n%d threads processed %,d requests after %,d ms, tps is %,d.\n", + System.out.printf("%s finished at %s.%n%d threads processed %,d requests after %,d ms, tps is %,d.%n", className, endTime.toString(), threadCount, invokeTimes, totalTimeMillis, tps); } diff --git a/modules/metrics/src/main/java/org/springside/modules/metrics/Histogram.java b/modules/metrics/src/main/java/org/springside/modules/metrics/Histogram.java index 8dedc2339..d28fc6874 100644 --- a/modules/metrics/src/main/java/org/springside/modules/metrics/Histogram.java +++ b/modules/metrics/src/main/java/org/springside/modules/metrics/Histogram.java @@ -12,7 +12,7 @@ public class Histogram { - private LinkedList measurements = new LinkedList(); + private List measurements = new LinkedList(); private Double[] pcts; private Object lock = new Object(); @@ -27,7 +27,7 @@ public void update(long value) { } public HistogramMetric calculateMetric() { - LinkedList snapshotList = null; + List snapshotList = null; synchronized (lock) { snapshotList = measurements; diff --git a/modules/metrics/src/main/java/org/springside/modules/metrics/MetricRegistry.java b/modules/metrics/src/main/java/org/springside/modules/metrics/MetricRegistry.java index 8ed3a0f8a..39313fda2 100644 --- a/modules/metrics/src/main/java/org/springside/modules/metrics/MetricRegistry.java +++ b/modules/metrics/src/main/java/org/springside/modules/metrics/MetricRegistry.java @@ -89,7 +89,7 @@ public SortedMap getExecutions() { } private SortedMap getMetrics(Class klass) { - final TreeMap result = new TreeMap(); + final SortedMap result = new TreeMap(); for (Map.Entry entry : metrics.entrySet()) { if (klass.isInstance(entry.getValue())) { result.put(entry.getKey(), (T) entry.getValue()); diff --git a/modules/metrics/src/main/java/org/springside/modules/metrics/utils/Clock.java b/modules/metrics/src/main/java/org/springside/modules/metrics/utils/Clock.java index eb660bc65..1ce98a010 100644 --- a/modules/metrics/src/main/java/org/springside/modules/metrics/utils/Clock.java +++ b/modules/metrics/src/main/java/org/springside/modules/metrics/utils/Clock.java @@ -12,10 +12,10 @@ */ public interface Clock { - long getCurrentTime(); - static final Clock DEFAULT = new DefaultClock(); + long getCurrentTime(); + /** * 默认时间提供者,返回当前的时间,线程安全。 */ From ecc8c2ae3e938dad26931377b6960e5d54985159 Mon Sep 17 00:00:00 2001 From: Calvin Date: Sun, 26 Jan 2014 20:38:44 +0800 Subject: [PATCH 060/356] polish --- .../examples/quickstart/functional/BaseSeleniumTestCase.java | 2 +- .../examples/showcase/functional/account/UserManagerFT.java | 2 +- .../showcase/src/test/scala/account/UserManagerSpec.scala | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/BaseSeleniumTestCase.java b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/BaseSeleniumTestCase.java index d4b331d56..c53229143 100644 --- a/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/BaseSeleniumTestCase.java +++ b/examples/quickstart/src/test/functional/org/springside/examples/quickstart/functional/BaseSeleniumTestCase.java @@ -56,7 +56,7 @@ protected static void createSeleniumOnce() throws Exception { protected static void loginAsUserIfNecessary() { s.open("/task"); - if ("QuickStart示例:登录页".equals(s.getTitle())) { + if (s.getTitle().contains("登录页")) { s.type(By.name("username"), "user"); s.type(By.name("password"), "user"); s.check(By.name("rememberMe")); diff --git a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/account/UserManagerFT.java b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/account/UserManagerFT.java index 4a1ac8ede..58fb99995 100644 --- a/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/account/UserManagerFT.java +++ b/examples/showcase/src/test/functional/org/springside/examples/showcase/functional/account/UserManagerFT.java @@ -59,7 +59,7 @@ public void editUser() { private void loginAsAdminIfNecessary() { // 修改用户需要登录管理员权限 - if ("Showcase示例:登录页".equals(s.getTitle())) { + if (s.getTitle().contains("登录页")) { s.type(By.name("username"), "admin"); s.type(By.name("password"), "admin"); s.click(By.id("submit_btn")); diff --git a/examples/showcase/src/test/scala/account/UserManagerSpec.scala b/examples/showcase/src/test/scala/account/UserManagerSpec.scala index f75d1b892..fb7748467 100644 --- a/examples/showcase/src/test/scala/account/UserManagerSpec.scala +++ b/examples/showcase/src/test/scala/account/UserManagerSpec.scala @@ -29,8 +29,8 @@ class UserManagerSpec extends FeatureSpec with GivenWhenThen with Matchers with When("All users are listed in the page") Then("admin user is displayed in the page") - val ele = find(xpath("//tr[1]/td[2]")) - ele.get.text should be("管理员 ") + val adminTd = find(xpath("//tr[1]/td[2]")) + adminTd.get.text should be("管理员 ") } scenario("Edit user1") { From 4342c2132127eb17f048cead0307ce5c8ee07fc5 Mon Sep 17 00:00:00 2001 From: Calvin Date: Sun, 26 Jan 2014 20:52:27 +0800 Subject: [PATCH 061/356] update archetype --- .../archetype-resources/bin/jetty.bat | 20 +- .../archetype-resources/bin/package.bat | 14 +- .../archetype-resources/bin/refresh-db.bat | 18 +- .../archetype-resources/bin/smoke-test.bat | 20 +- .../resources/archetype-resources/pom.xml | 1180 ++++++++--------- .../src/main/java/entity/IdEntity.java | 67 +- .../src/main/java/entity/Task.java | 111 +- .../src/main/java/entity/User.java | 223 ++-- .../src/main/java/repository/TaskDao.java | 41 +- .../src/main/java/repository/UserDao.java | 21 +- .../src/main/java/rest/RestException.java | 63 +- .../main/java/rest/RestExceptionHandler.java | 105 +- .../main/java/rest/TaskRestController.java | 193 +-- .../main/java/service/ServiceException.java | 63 +- .../java/service/account/AccountService.java | 239 ++-- .../java/service/account/ShiroDbRealm.java | 283 ++-- .../main/java/service/task/TaskService.java | 165 +-- .../java/web/account/LoginController.java | 69 +- .../java/web/account/ProfileController.java | 143 +- .../java/web/account/RegisterController.java | 107 +- .../java/web/account/UserAdminController.java | 145 +- .../main/java/web/api/ApiListController.java | 33 +- .../main/java/web/task/TaskController.java | 263 ++-- .../src/main/resources/application.properties | 50 +- .../resources/applicationContext-shiro.xml | 86 +- .../src/main/resources/applicationContext.xml | 282 ++-- .../main/resources/ehcache/ehcache-shiro.xml | 22 +- .../src/main/resources/log4jdbc.properties | 12 +- .../src/main/resources/logback.xml | 56 +- .../resources/sql/h2/schema-with-oracle.sql | 48 +- .../src/main/resources/sql/h2/schema.sql | 40 +- .../src/main/resources/sql/mysql/schema.sql | 40 +- .../src/main/resources/sql/oracle/schema.sql | 50 +- .../src/main/webapp/WEB-INF/decorators.xml | 22 +- .../main/webapp/WEB-INF/layouts/default.jsp | 74 +- .../main/webapp/WEB-INF/layouts/footer.jsp | 10 +- .../main/webapp/WEB-INF/layouts/header.jsp | 54 +- .../src/main/webapp/WEB-INF/spring-mvc.xml | 100 +- .../main/webapp/WEB-INF/tags/pagination.tag | 96 +- .../src/main/webapp/WEB-INF/tags/sort.tag | 24 +- .../WEB-INF/views/account/adminUserForm.jsp | 124 +- .../WEB-INF/views/account/adminUserList.jsp | 64 +- .../webapp/WEB-INF/views/account/login.jsp | 106 +- .../webapp/WEB-INF/views/account/profile.jsp | 98 +- .../webapp/WEB-INF/views/account/register.jsp | 130 +- .../main/webapp/WEB-INF/views/api/list.jsp | 50 +- .../main/webapp/WEB-INF/views/error/404.jsp | 30 +- .../main/webapp/WEB-INF/views/error/500.jsp | 42 +- .../webapp/WEB-INF/views/task/taskForm.jsp | 82 +- .../webapp/WEB-INF/views/task/taskList.jsp | 82 +- .../src/main/webapp/WEB-INF/web.xml | 200 +-- .../2.3.2/css/bootstrap-responsive.min.css | 18 +- .../bootstrap/2.3.2/css/bootstrap.min.css | 18 +- .../bootstrap/2.3.2/js/bootstrap.min.js | 10 +- .../1.11.1/jquery.validate.min.js | 2 +- .../1.11.1/messages_bs_zh.js | 52 +- .../jquery-validation/1.11.1/validate.css | 14 +- .../webapp/static/jquery/jquery-1.9.1.min.js | 8 +- .../src/main/webapp/static/styles/default.css | 38 +- .../functional/BaseFunctionalTestCase.java | 189 +-- .../functional/BaseSeleniumTestCase.java | 129 +- .../functional/functional/gui/ProfileFT.java | 48 +- .../functional/functional/gui/RegisterFT.java | 97 +- .../functional/functional/gui/SecurityFT.java | 113 +- .../functional/functional/gui/TaskGuiFT.java | 157 +-- .../functional/gui/UserAdminFT.java | 123 +- .../functional/rest/TaskRestFT.java | 259 ++-- .../src/test/java/QuickStartServer.java | 95 +- .../src/test/java/data/TaskData.java | 55 +- .../src/test/java/data/UserData.java | 37 +- .../test/java/repository/JpaMappingTest.java | 77 +- .../src/test/java/repository/TaskDaoTest.java | 64 +- .../service/account/AccountServiceTest.java | 183 +-- .../application.development.properties | 8 +- .../application.functional.properties | 30 +- .../resources/application.test.properties | 14 +- .../test/resources/data/h2/cleanup-data.sql | 2 +- .../test/resources/data/h2/import-data.sql | 14 +- 78 files changed, 3810 insertions(+), 3704 deletions(-) diff --git a/support/maven-archetype/src/main/resources/archetype-resources/bin/jetty.bat b/support/maven-archetype/src/main/resources/archetype-resources/bin/jetty.bat index 306038fec..3a5ad698c 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/bin/jetty.bat +++ b/support/maven-archetype/src/main/resources/archetype-resources/bin/jetty.bat @@ -1,11 +1,11 @@ -@echo off -echo [INFO] Use maven jetty-plugin run the project. - -cd %~dp0 -cd .. - -set MAVEN_OPTS=%MAVEN_OPTS% -XX:MaxPermSize=128m -call mvn jetty:run -Djetty.port=8080 - -cd bin +@echo off +echo [INFO] Use maven jetty-plugin run the project. + +cd %~dp0 +cd .. + +set MAVEN_OPTS=%MAVEN_OPTS% -XX:MaxPermSize=128m +call mvn jetty:run -Djetty.port=8080 + +cd bin pause \ No newline at end of file diff --git a/support/maven-archetype/src/main/resources/archetype-resources/bin/package.bat b/support/maven-archetype/src/main/resources/archetype-resources/bin/package.bat index a9b5ddbae..6640661ab 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/bin/package.bat +++ b/support/maven-archetype/src/main/resources/archetype-resources/bin/package.bat @@ -1,8 +1,8 @@ -@echo off -echo [INFO] Package the war in target dir. - -cd %~dp0 -cd .. -call mvn clean package -Dmaven.test.skip=true -cd bin +@echo off +echo [INFO] Package the war in target dir. + +cd %~dp0 +cd .. +call mvn clean package -Dmaven.test.skip=true +cd bin pause \ No newline at end of file diff --git a/support/maven-archetype/src/main/resources/archetype-resources/bin/refresh-db.bat b/support/maven-archetype/src/main/resources/archetype-resources/bin/refresh-db.bat index 6a63ae5de..1cc6db507 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/bin/refresh-db.bat +++ b/support/maven-archetype/src/main/resources/archetype-resources/bin/refresh-db.bat @@ -1,10 +1,10 @@ -@echo off -echo [INFO] Re-create the schema and provision the sample data. - -cd %~dp0 -cd .. - -call mvn antrun:run -Prefresh-db - -cd bin +@echo off +echo [INFO] Re-create the schema and provision the sample data. + +cd %~dp0 +cd .. + +call mvn antrun:run -Prefresh-db + +cd bin pause \ No newline at end of file diff --git a/support/maven-archetype/src/main/resources/archetype-resources/bin/smoke-test.bat b/support/maven-archetype/src/main/resources/archetype-resources/bin/smoke-test.bat index 6b3ea76b8..72ad12347 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/bin/smoke-test.bat +++ b/support/maven-archetype/src/main/resources/archetype-resources/bin/smoke-test.bat @@ -1,11 +1,11 @@ -@echo off -echo [INFO] run smoking functional test. - -cd %~dp0 -cd .. - -set MAVEN_OPTS=%MAVEN_OPTS% -XX:MaxPermSize=128m -call mvn clean test -Pfunctional-test,run-smoke - -cd bin +@echo off +echo [INFO] run smoking functional test. + +cd %~dp0 +cd .. + +set MAVEN_OPTS=%MAVEN_OPTS% -XX:MaxPermSize=128m +call mvn clean test -Pfunctional-test,run-smoke + +cd bin pause \ No newline at end of file diff --git a/support/maven-archetype/src/main/resources/archetype-resources/pom.xml b/support/maven-archetype/src/main/resources/archetype-resources/pom.xml index 94b1e6d20..1ec2ebdc6 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/pom.xml +++ b/support/maven-archetype/src/main/resources/archetype-resources/pom.xml @@ -1,53 +1,54 @@ - - - 4.0.0 - ${groupId} - ${artifactId} - ${version} - war - Springside :: Example :: QuickStart - - - - 4.3.0-SNAPSHOT - 3.2.6.RELEASE - 4.2.8.Final - 1.4.3.RELEASE - 7.0.47 - 2.4.2 - 1.2.2 - 4.3.1.Final - 2.3.0 - 1.7.5 - 1.0.13 - 3.1 - 15.0 - 4.11 - 1.9.5 - 2.39.0 - 7.6.14.v20131031 - 1.3.174 - - - UTF-8 - 1.6 - - - com.h2database - h2 - ${h2.version} + + + 4.0.0 + ${groupId} + ${artifactId} + ${version} + war + Springside :: Example :: QuickStart + + + + 4.3.0-SNAPSHOT + 4.0.0.RELEASE + 4.3.1.Final + 1.4.2.RELEASE + 7.0.50 + 2.4.2 + 1.2.2 + 5.0.2.Final + 2.3.1 + 1.7.5 + 1.0.13 + 3.2.1 + 16.0 + 4.11 + 1.5.0 + 1.9.5 + 2.39.0 + 7.6.14.v20131031 + 1.3.175 + + + UTF-8 + 1.6 + + + com.h2database + h2 + ${h2.version} - - - - 3.0.0 - - - + + + + 3.0.0 + + + - - - - - - org.springside - springside-core - ${springside.version} - - - - - org.aspectj - aspectjrt - 1.7.3 - - - org.aspectj - aspectjweaver - 1.7.3 - runtime - - - - - - - org.hibernate - hibernate-entitymanager - ${hibernate.version} - - - - - org.springframework.data - spring-data-jpa - ${spring-data-jpa.version} - - - junit - junit-dep - - - - - org.springframework - spring-orm - ${spring.version} - - - org.springframework - spring-tx - ${spring.version} - - - - - org.apache.tomcat - tomcat-jdbc - ${tomcat-jdbc.version} - runtime - - - - - ${jdbc.driver.groupId} - ${jdbc.driver.artifactId} - ${jdbc.driver.version} - runtime - - - - - - org.springframework - spring-webmvc - ${spring.version} - - - - opensymphony - sitemesh - ${sitemesh.version} - runtime - - - - javax.servlet - jstl - 1.2 - - - - javax.servlet - servlet-api - 2.5 - provided - - - - - - org.apache.shiro - shiro-spring - ${shiro.version} - - - org.apache.shiro - shiro-ehcache - ${shiro.version} - - - net.sf.ehcache - ehcache-core - 2.6.6 - - - commons-codec - commons-codec - 1.8 - - - - - - org.hibernate - hibernate-validator - ${hibernate-validator.version} - - - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - - - com.fasterxml.jackson.module - jackson-module-jaxb-annotations - ${jackson.version} - - - - - - org.slf4j - slf4j-api - ${slf4j.version} - - - - ch.qos.logback - logback-classic - ${logback.version} - runtime - - - - - org.slf4j - log4j-over-slf4j - ${slf4j.version} - runtime - - - - org.slf4j - jcl-over-slf4j - ${slf4j.version} - runtime - - - - org.slf4j - jul-to-slf4j - ${slf4j.version} - runtime - - - - com.googlecode.log4jdbc - log4jdbc - 1.2 - runtime - - - - - - org.apache.commons - commons-lang3 - ${commons-lang3.version} - - - com.google.guava - guava - ${guava.version} - - - - - - org.springside - springside-core - ${springside.version} - tests - test - - - - junit - junit - ${junit.version} - test - - - - org.mockito - mockito-core - ${mockito.version} - test - - - - org.springframework - spring-test - ${spring.version} - test - - - - - org.seleniumhq.selenium - selenium-java - ${selenium.version} - test - - - org.seleniumhq.selenium - selenium-htmlunit-driver - - - org.seleniumhq.selenium - selenium-android-driver - - - org.seleniumhq.selenium - selenium-iphone-driver - - - org.seleniumhq.selenium - selenium-safari-driver - - - commons-logging - commons-logging - - - - - org.seleniumhq.selenium - selenium-remote-driver - ${selenium.version} - test - - - cglib - cglib-nodep - - - commons-logging - commons-logging - - - - + --> + + + + + + org.springside + springside-core + ${springside.version} + + + + + + org.hibernate + hibernate-entitymanager + ${hibernate.version} + + + + + org.springframework.data + spring-data-jpa + ${spring-data-jpa.version} + + + junit + junit-dep + + + + + + + org.aspectj + aspectjrt + 1.7.3 + + + org.aspectj + aspectjweaver + 1.7.3 + runtime + + + + + org.apache.tomcat + tomcat-jdbc + ${tomcat-jdbc.version} + runtime + + + + + ${jdbc.driver.groupId} + ${jdbc.driver.artifactId} + ${jdbc.driver.version} + runtime + + + + + + org.springframework + spring-webmvc + + + + opensymphony + sitemesh + ${sitemesh.version} + runtime + + + + javax.servlet + jstl + 1.2 + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + + + org.apache.shiro + shiro-spring + ${shiro.version} + + + org.apache.shiro + shiro-ehcache + ${shiro.version} + + + + + + org.hibernate + hibernate-validator + ${hibernate-validator.version} + + + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + com.fasterxml.jackson.module + jackson-module-jaxb-annotations + ${jackson.version} + + + + + + org.slf4j + slf4j-api + ${slf4j.version} + + + + ch.qos.logback + logback-classic + ${logback.version} + runtime + + + + + org.slf4j + log4j-over-slf4j + ${slf4j.version} + runtime + + + + org.slf4j + jcl-over-slf4j + ${slf4j.version} + runtime + + + + org.slf4j + jul-to-slf4j + ${slf4j.version} + runtime + + + + com.googlecode.log4jdbc + log4jdbc + 1.2 + runtime + + + + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + com.google.guava + guava + ${guava.version} + + + + + + org.springside + springside-core + ${springside.version} + tests + test + + + + junit + junit + ${junit.version} + test + + + + org.assertj + assertj-core + ${assertj.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + org.springframework + spring-test + test + + + + + org.seleniumhq.selenium + selenium-java + ${selenium.version} + test + + + org.seleniumhq.selenium + selenium-htmlunit-driver + + + org.seleniumhq.selenium + selenium-android-driver + + + org.seleniumhq.selenium + selenium-iphone-driver + + + org.seleniumhq.selenium + selenium-safari-driver + + + commons-logging + commons-logging + + + + + org.seleniumhq.selenium + selenium-remote-driver + ${selenium.version} + test + + + cglib + cglib-nodep + + + commons-logging + commons-logging + + + + - - - - org.eclipse.jetty.aggregate - jetty-webapp - ${jetty.version} - test - - - org.eclipse.jetty - jetty-jsp - ${jetty.version} - test - - - - - - - - org.springframework - spring-core - ${spring.version} - - - commons-logging - commons-logging - - - - - org.springframework - spring-beans - ${spring.version} - - - org.springframework - spring-context - ${spring.version} - - - org.springframework - spring-aop - ${spring.version} - - - commons-logging - commons-logging - - - - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.1 - - ${java.version} - ${java.version} - true - - - - - - org.apache.maven.plugins - maven-war-plugin - 2.4 - - ${project.artifactId} - - - - - - org.apache.maven.plugins - maven-surefire-plugin - 2.16 - - - **/*Test.java - - -Xmx256M - - - - org.apache.maven.surefire - surefire-junit47 - 2.16 - - - - - - - org.codehaus.mojo - build-helper-maven-plugin - 1.8 - - - add-functional-source - generate-sources - - add-test-source - - - - src/test/functional - - - - - - - - - org.codehaus.mojo - cobertura-maven-plugin - 2.6 - - - - **/entity/**/*.class - **/*Controller.class - - - - - - - - org.apache.maven.plugins - maven-enforcer-plugin - 1.3.1 - - - enforce-banned-dependencies - - enforce - - - - - 3.0.3 - - - 1.6 - - - true - - commons-logging - aspectj:aspectj* - org.springframework - - - org.springframework:*:3.2.* - - - - true - - - - - - - - org.mortbay.jetty - jetty-maven-plugin - ${jetty.version} - - - - spring.profiles.active - development - - - true - - - /${project.artifactId} - - - - - - - org.apache.maven.plugins - maven-resources-plugin - 2.6 - - - - - org.apache.maven.plugins - maven-install-plugin - 2.5.1 - - - - - org.apache.maven.plugins - maven-antrun-plugin - 1.7 - - - - - - - - functional-test - - - - org.apache.maven.plugins - maven-surefire-plugin - - -Xmx256M -XX:MaxPermSize=128m - - **/*FT.java - - - false - - - ${selenium.driver} - - - - - - - - - - run-smoke - - - - org.apache.maven.plugins - maven-surefire-plugin - - org.springside.modules.test.category.Smoke - - - - - - - - - refresh-db - - - - org.apache.maven.plugins - maven-antrun-plugin - - - - - - - - - - - - - - - - - + --> + + + + org.eclipse.jetty.aggregate + jetty-webapp + ${jetty.version} + test + + + org.eclipse.jetty + jetty-jsp + ${jetty.version} + test + + + + + + + + org.springframework + spring-framework-bom + ${spring.version} + pom + import + + + net.sf.ehcache + ehcache-core + 2.6.6 + + + commons-codec + commons-codec + 1.9 + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.1 + + ${java.version} + ${java.version} + true + + + + + + org.apache.maven.plugins + maven-war-plugin + 2.4 + + ${project.artifactId} + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.16 + + + **/*Test.java + + -Xmx256M + + + + org.apache.maven.surefire + surefire-junit47 + 2.16 + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 1.8 + + + add-functional-source + generate-sources + + add-test-source + + + + src/test/functional + + + + + + + + + org.codehaus.mojo + cobertura-maven-plugin + 2.6 + + + + **/entity/**/*.class + **/*Controller.class + + + + + + + + org.apache.maven.plugins + maven-enforcer-plugin + 1.3.1 + + + enforce-banned-dependencies + + enforce + + + + + 3.0.3 + + + 1.6 + + + true + + commons-logging + aspectj:aspectj* + org.springframework + + + org.springframework:*:4.0.* + + + + true + + + + + + + + org.mortbay.jetty + jetty-maven-plugin + ${jetty.version} + + + + spring.profiles.active + development + + + true + + + /${project.artifactId} + + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + + + + org.apache.maven.plugins + maven-install-plugin + 2.5.1 + + + + + org.apache.maven.plugins + maven-antrun-plugin + 1.7 + + + + + + + + functional-test + + + + org.apache.maven.plugins + maven-surefire-plugin + + -Xmx256M -XX:MaxPermSize=128m + + **/*FT.java + + + false + + + ${selenium.driver} + + + + + + + + + + run-smoke + + + + org.apache.maven.plugins + maven-surefire-plugin + + org.springside.modules.test.category.Smoke + + + + + + + + + refresh-db + + + + org.apache.maven.plugins + maven-antrun-plugin + + + + + + + + + + + + + + + + + diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/entity/IdEntity.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/entity/IdEntity.java index 95921cade..4212d283d 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/entity/IdEntity.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/entity/IdEntity.java @@ -1,34 +1,39 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -package ${package}.entity; - -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.MappedSuperclass; - -/** - * 统一定义id的entity基类. - * - * 基类统一定义id的属性名称、数据类型、列名映射及生成策略. - * Oracle需要每个Entity独立定义id的SEQUCENCE时,不继承于本类而改为实现一个Idable的接口。 - * - * @author calvin - */ -// JPA 基类的标识 -@MappedSuperclass -public abstract class IdEntity { - - protected Long id; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } -} +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package ${package}.entity; + +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; + +/** + * 统一定义id的entity基类. + * + * 基类统一定义id的属性名称、数据类型、列名映射及生成策略. + * Oracle需要每个Entity独立定义id的SEQUCENCE时,不继承于本类而改为实现一个Idable的接口。 + * + * @author calvin + */ +// JPA 基类的标识 +@MappedSuperclass +public abstract class IdEntity { + + protected Long id; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } +} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/entity/Task.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/entity/Task.java index 5348921b0..ee8caf765 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/entity/Task.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/entity/Task.java @@ -1,56 +1,61 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -package ${package}.entity; - -import javax.persistence.Entity; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.hibernate.validator.constraints.NotBlank; - -//JPA标识 -@Entity -@Table(name = "${tablePrefix}task") -public class Task extends IdEntity { - - private String title; - private String description; - private User user; - - // JSR303 BeanValidator的校验规则 - @NotBlank - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - // JPA 基于USER_ID列的多对一关系定义 - @ManyToOne - @JoinColumn(name = "user_id") - public User getUser() { - return user; - } - - public void setUser(User user) { - this.user = user; - } - - @Override - public String toString() { - return ToStringBuilder.reflectionToString(this); - } -} +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package ${package}.entity; + +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.hibernate.validator.constraints.NotBlank; + +//JPA标识 +@Entity +@Table(name = "${tablePrefix}task") +public class Task extends IdEntity { + + private String title; + private String description; + private User user; + + // JSR303 BeanValidator的校验规则 + @NotBlank + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + // JPA 基于USER_ID列的多对一关系定义 + @ManyToOne + @JoinColumn(name = "user_id") + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } +} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/entity/User.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/entity/User.java index 3556e2d97..3139710e9 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/entity/User.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/entity/User.java @@ -1,113 +1,118 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -package ${package}.entity; - -import java.util.Date; -import java.util.List; - -import javax.persistence.Entity; -import javax.persistence.Table; -import javax.persistence.Transient; - -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.hibernate.validator.constraints.NotBlank; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.google.common.collect.ImmutableList; - -@Entity -@Table(name = "${tablePrefix}user") -public class User extends IdEntity { - private String loginName; - private String name; - private String plainPassword; - private String password; - private String salt; - private String roles; - private Date registerDate; - - public User() { - } - - public User(Long id) { - this.id = id; - } - - @NotBlank - public String getLoginName() { - return loginName; - } - - public void setLoginName(String loginName) { - this.loginName = loginName; - } - - @NotBlank - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - // 不持久化到数据库,也不显示在Restful接口的属性. - @Transient - @JsonIgnore - public String getPlainPassword() { - return plainPassword; - } - - public void setPlainPassword(String plainPassword) { - this.plainPassword = plainPassword; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getSalt() { - return salt; - } - - public void setSalt(String salt) { - this.salt = salt; - } - - public String getRoles() { - return roles; - } - - public void setRoles(String roles) { - this.roles = roles; - } - - @Transient - @JsonIgnore - public List getRoleList() { - // 角色列表在数据库中实际以逗号分隔字符串存储,因此返回不能修改的List. - return ImmutableList.copyOf(StringUtils.split(roles, ",")); - } - - // 设定JSON序列化时的日期格式 - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00") - public Date getRegisterDate() { - return registerDate; - } - - public void setRegisterDate(Date registerDate) { - this.registerDate = registerDate; - } - - @Override - public String toString() { - return ToStringBuilder.reflectionToString(this); - } +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package ${package}.entity; + +import java.util.Date; +import java.util.List; + +import javax.persistence.Entity; +import javax.persistence.Table; +import javax.persistence.Transient; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.hibernate.validator.constraints.NotBlank; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.google.common.collect.ImmutableList; + +@Entity +@Table(name = "${tablePrefix}user") +public class User extends IdEntity { + private String loginName; + private String name; + private String plainPassword; + private String password; + private String salt; + private String roles; + private Date registerDate; + + public User() { + } + + public User(Long id) { + this.id = id; + } + + @NotBlank + public String getLoginName() { + return loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName; + } + + @NotBlank + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + // 不持久化到数据库,也不显示在Restful接口的属性. + @Transient + @JsonIgnore + public String getPlainPassword() { + return plainPassword; + } + + public void setPlainPassword(String plainPassword) { + this.plainPassword = plainPassword; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getRoles() { + return roles; + } + + public void setRoles(String roles) { + this.roles = roles; + } + + @Transient + @JsonIgnore + public List getRoleList() { + // 角色列表在数据库中实际以逗号分隔字符串存储,因此返回不能修改的List. + return ImmutableList.copyOf(StringUtils.split(roles, ",")); + } + + // 设定JSON序列化时的日期格式 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00") + public Date getRegisterDate() { + return registerDate; + } + + public void setRegisterDate(Date registerDate) { + this.registerDate = registerDate; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } } \ No newline at end of file diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/repository/TaskDao.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/repository/TaskDao.java index ff0527c4d..1db90a5db 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/repository/TaskDao.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/repository/TaskDao.java @@ -1,21 +1,26 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -package ${package}.repository; - -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.PagingAndSortingRepository; -import ${package}.entity.Task; - -public interface TaskDao extends PagingAndSortingRepository, JpaSpecificationExecutor { - - Page findByUserId(Long id, Pageable pageRequest); - - @Modifying - @Query("delete from Task task where task.user.id=?1") - void deleteByUserId(Long id); -} +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package ${package}.repository; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.PagingAndSortingRepository; +import ${package}.entity.Task; + +public interface TaskDao extends PagingAndSortingRepository, JpaSpecificationExecutor { + + Page findByUserId(Long id, Pageable pageRequest); + + @Modifying + @Query("delete from Task task where task.user.id=?1") + void deleteByUserId(Long id); +} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/repository/UserDao.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/repository/UserDao.java index 784233eb8..4c0391f30 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/repository/UserDao.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/repository/UserDao.java @@ -1,11 +1,16 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -package ${package}.repository; - -import org.springframework.data.repository.PagingAndSortingRepository; -import ${package}.entity.User; - -public interface UserDao extends PagingAndSortingRepository { - User findByLoginName(String loginName); -} +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package ${package}.repository; + +import org.springframework.data.repository.PagingAndSortingRepository; +import ${package}.entity.User; + +public interface UserDao extends PagingAndSortingRepository { + User findByLoginName(String loginName); +} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/rest/RestException.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/rest/RestException.java index b30c33e6b..0157072ac 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/rest/RestException.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/rest/RestException.java @@ -1,32 +1,37 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -package ${package}.rest; - -import org.springframework.http.HttpStatus; - -/** - * 专用于Restful Service的异常. - * - * @author calvin - */ -public class RestException extends RuntimeException { - - public HttpStatus status = HttpStatus.INTERNAL_SERVER_ERROR; - - public RestException() { - } - - public RestException(HttpStatus status) { - this.status = status; - } - - public RestException(String message) { - super(message); - } - - public RestException(HttpStatus status, String message) { - super(message); - this.status = status; - } -} +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package ${package}.rest; + +import org.springframework.http.HttpStatus; + +/** + * 专用于Restful Service的异常. + * + * @author calvin + */ +public class RestException extends RuntimeException { + + public HttpStatus status = HttpStatus.INTERNAL_SERVER_ERROR; + + public RestException() { + } + + public RestException(HttpStatus status) { + this.status = status; + } + + public RestException(String message) { + super(message); + } + + public RestException(HttpStatus status, String message) { + super(message); + this.status = status; + } +} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/rest/RestExceptionHandler.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/rest/RestExceptionHandler.java index b95e63f00..a4dbc9603 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/rest/RestExceptionHandler.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/rest/RestExceptionHandler.java @@ -1,53 +1,58 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -package ${package}.rest; - -import java.util.Map; - -import javax.validation.ConstraintViolationException; - -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.ControllerAdvice; -import org.springframework.web.bind.annotation.ExceptionHandler; -import org.springframework.web.context.request.WebRequest; -import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; -import org.springside.modules.beanvalidator.BeanValidators; -import org.springside.modules.mapper.JsonMapper; -import org.springside.modules.web.MediaTypes; - -/** - * 自定义ExceptionHandler,专门处理Restful异常. - * - * @author calvin - */ -// 会被Spring-MVC自动扫描,但又不属于Controller的annotation。 -@ControllerAdvice -public class RestExceptionHandler extends ResponseEntityExceptionHandler { - private JsonMapper jsonMapper = new JsonMapper(); - - /** - * 处理RestException. - */ - @ExceptionHandler(value = { RestException.class }) - public final ResponseEntity handleException(RestException ex, WebRequest request) { - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.parseMediaType(MediaTypes.TEXT_PLAIN_UTF_8)); - return handleExceptionInternal(ex, ex.getMessage(), headers, ex.status, request); - } - - /** - * 处理JSR311 Validation异常. - */ - @ExceptionHandler(value = { ConstraintViolationException.class }) - public final ResponseEntity handleException(ConstraintViolationException ex, WebRequest request) { - Map errors = BeanValidators.extractPropertyAndMessage(ex.getConstraintViolations()); - String body = jsonMapper.toJson(errors); - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.parseMediaType(MediaTypes.TEXT_PLAIN_UTF_8)); - return handleExceptionInternal(ex, body, headers, HttpStatus.BAD_REQUEST, request); - } -} +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package ${package}.rest; + +import java.util.Map; + +import javax.validation.ConstraintViolationException; + +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.context.request.WebRequest; +import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; +import org.springside.modules.beanvalidator.BeanValidators; +import org.springside.modules.mapper.JsonMapper; +import org.springside.modules.web.MediaTypes; + +/** + * 自定义ExceptionHandler,专门处理Restful异常. + * + * @author calvin + */ +// 会被Spring-MVC自动扫描,但又不属于Controller的annotation。 +@ControllerAdvice +public class RestExceptionHandler extends ResponseEntityExceptionHandler { + private JsonMapper jsonMapper = new JsonMapper(); + + /** + * 处理RestException. + */ + @ExceptionHandler(value = { RestException.class }) + public final ResponseEntity handleException(RestException ex, WebRequest request) { + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.parseMediaType(MediaTypes.TEXT_PLAIN_UTF_8)); + return handleExceptionInternal(ex, ex.getMessage(), headers, ex.status, request); + } + + /** + * 处理JSR311 Validation异常. + */ + @ExceptionHandler(value = { ConstraintViolationException.class }) + public final ResponseEntity handleException(ConstraintViolationException ex, WebRequest request) { + Map errors = BeanValidators.extractPropertyAndMessage(ex.getConstraintViolations()); + String body = jsonMapper.toJson(errors); + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.parseMediaType(MediaTypes.TEXT_PLAIN_UTF_8)); + return handleExceptionInternal(ex, body, headers, HttpStatus.BAD_REQUEST, request); + } +} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/rest/TaskRestController.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/rest/TaskRestController.java index 3af23d4e2..cabf208c3 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/rest/TaskRestController.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/rest/TaskRestController.java @@ -1,99 +1,100 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -package ${package}.rest; - -import java.net.URI; -import java.util.List; - -import javax.validation.Validator; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.ResponseStatus; -import org.springframework.web.util.UriComponentsBuilder; -import ${package}.entity.Task; -import ${package}.service.task.TaskService; -import org.springside.modules.beanvalidator.BeanValidators; -import org.springside.modules.web.MediaTypes; - -/** - * Task的Restful API的Controller. - * - * @author calvin - */ -@Controller -@RequestMapping(value = "/api/v1/task") -public class TaskRestController { - - private static Logger logger = LoggerFactory.getLogger(TaskRestController.class); - - @Autowired - private TaskService taskService; - - @Autowired - private Validator validator; - - @RequestMapping(method = RequestMethod.GET, produces = MediaTypes.JSON_UTF_8) - @ResponseBody - public List list() { - return taskService.getAllTask(); - } - - @RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = MediaTypes.JSON_UTF_8) - @ResponseBody - public Task get(@PathVariable("id") Long id) { - Task task = taskService.getTask(id); - if (task == null) { - String message = "任务不存在(id:" + id + ")"; - logger.warn(message); - throw new RestException(HttpStatus.NOT_FOUND, message); - } - return task; - } - - @RequestMapping(method = RequestMethod.POST, consumes = MediaTypes.JSON) - @ResponseBody - public ResponseEntity create(@RequestBody Task task, UriComponentsBuilder uriBuilder) { - // 调用JSR303 Bean Validator进行校验, 异常将由RestExceptionHandler统一处理. - BeanValidators.validateWithException(validator, task); - - // 保存任务 - taskService.saveTask(task); - - // 按照Restful风格约定,创建指向新任务的url, 也可以直接返回id或对象. - Long id = task.getId(); - URI uri = uriBuilder.path("/api/v1/task/" + id).build().toUri(); - HttpHeaders headers = new HttpHeaders(); - headers.setLocation(uri); - - return new ResponseEntity(headers, HttpStatus.CREATED); - } - - @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaTypes.JSON) - public ResponseEntity update(@RequestBody Task task) { - // 调用JSR303 Bean Validator进行校验, 异常将由RestExceptionHandler统一处理. - BeanValidators.validateWithException(validator, task); - // 保存 - taskService.saveTask(task); - - // 按Restful约定,返回204状态码, 无内容. 也可以返回200状态码. - return new ResponseEntity(HttpStatus.NO_CONTENT); - } - - @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) - @ResponseStatus(HttpStatus.NO_CONTENT) - public void delete(@PathVariable("id") Long id) { - taskService.deleteTask(id); - } -} +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package ${package}.rest; + +import java.net.URI; +import java.util.List; + +import javax.validation.Validator; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.util.UriComponentsBuilder; +import ${package}.entity.Task; +import ${package}.service.task.TaskService; +import org.springside.modules.beanvalidator.BeanValidators; +import org.springside.modules.web.MediaTypes; + +/** + * Task的Restful API的Controller. + * + * @author calvin + */ +@RestController +@RequestMapping(value = "/api/v1/task") +public class TaskRestController { + + private static Logger logger = LoggerFactory.getLogger(TaskRestController.class); + + @Autowired + private TaskService taskService; + + @Autowired + private Validator validator; + + @RequestMapping(method = RequestMethod.GET, produces = MediaTypes.JSON_UTF_8) + public List list() { + return taskService.getAllTask(); + } + + @RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = MediaTypes.JSON_UTF_8) + public Task get(@PathVariable("id") Long id) { + Task task = taskService.getTask(id); + if (task == null) { + String message = "任务不存在(id:" + id + ")"; + logger.warn(message); + throw new RestException(HttpStatus.NOT_FOUND, message); + } + return task; + } + + @RequestMapping(method = RequestMethod.POST, consumes = MediaTypes.JSON) + public ResponseEntity create(@RequestBody Task task, UriComponentsBuilder uriBuilder) { + // 调用JSR303 Bean Validator进行校验, 异常将由RestExceptionHandler统一处理. + BeanValidators.validateWithException(validator, task); + + // 保存任务 + taskService.saveTask(task); + + // 按照Restful风格约定,创建指向新任务的url, 也可以直接返回id或对象. + Long id = task.getId(); + URI uri = uriBuilder.path("/api/v1/task/" + id).build().toUri(); + HttpHeaders headers = new HttpHeaders(); + headers.setLocation(uri); + + return new ResponseEntity(headers, HttpStatus.CREATED); + } + + @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaTypes.JSON) + public ResponseEntity update(@RequestBody Task task) { + // 调用JSR303 Bean Validator进行校验, 异常将由RestExceptionHandler统一处理. + BeanValidators.validateWithException(validator, task); + // 保存 + taskService.saveTask(task); + + // 按Restful约定,返回204状态码, 无内容. 也可以返回200状态码. + return new ResponseEntity(HttpStatus.NO_CONTENT); + } + + @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) + @ResponseStatus(HttpStatus.NO_CONTENT) + public void delete(@PathVariable("id") Long id) { + taskService.deleteTask(id); + } +} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/ServiceException.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/ServiceException.java index 32cbd1342..24389311c 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/ServiceException.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/ServiceException.java @@ -1,32 +1,37 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -package ${package}.service; - -/** - * Service层公用的Exception. - * - * 继承自RuntimeException, 从由Spring管理事务的函数中抛出时会触发事务回滚. - * - * @author calvin - */ -public class ServiceException extends RuntimeException { - - private static final long serialVersionUID = 3583566093089790852L; - - public ServiceException() { - super(); - } - - public ServiceException(String message) { - super(message); - } - - public ServiceException(Throwable cause) { - super(cause); - } - - public ServiceException(String message, Throwable cause) { - super(message, cause); - } -} +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package ${package}.service; + +/** + * Service层公用的Exception. + * + * 继承自RuntimeException, 从由Spring管理事务的函数中抛出时会触发事务回滚. + * + * @author calvin + */ +public class ServiceException extends RuntimeException { + + private static final long serialVersionUID = 3583566093089790852L; + + public ServiceException() { + super(); + } + + public ServiceException(String message) { + super(message); + } + + public ServiceException(Throwable cause) { + super(cause); + } + + public ServiceException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/account/AccountService.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/account/AccountService.java index 62330d63d..b17c5c556 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/account/AccountService.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/account/AccountService.java @@ -1,120 +1,125 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -package ${package}.service.account; - -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.shiro.SecurityUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; -import ${package}.entity.User; -import ${package}.repository.TaskDao; -import ${package}.repository.UserDao; -import ${package}.service.ServiceException; -import ${package}.service.account.ShiroDbRealm.ShiroUser; -import org.springside.modules.security.utils.Digests; -import org.springside.modules.utils.Clock; -import org.springside.modules.utils.Encodes; - -/** - * 用户管理类. - * - * @author calvin - */ -// Spring Service Bean的标识. -@Component -@Transactional -public class AccountService { - - public static final String HASH_ALGORITHM = "SHA-1"; - public static final int HASH_INTERATIONS = 1024; - private static final int SALT_SIZE = 8; - - private static Logger logger = LoggerFactory.getLogger(AccountService.class); - - private UserDao userDao; - private TaskDao taskDao; - private Clock clock = Clock.DEFAULT; - - public List getAllUser() { - return (List) userDao.findAll(); - } - - public User getUser(Long id) { - return userDao.findOne(id); - } - - public User findUserByLoginName(String loginName) { - return userDao.findByLoginName(loginName); - } - - public void registerUser(User user) { - entryptPassword(user); - user.setRoles("user"); - user.setRegisterDate(clock.getCurrentDate()); - - userDao.save(user); - } - - public void updateUser(User user) { - if (StringUtils.isNotBlank(user.getPlainPassword())) { - entryptPassword(user); - } - userDao.save(user); - } - - public void deleteUser(Long id) { - if (isSupervisor(id)) { - logger.warn("操作员{}尝试删除超级管理员用户", getCurrentUserName()); - throw new ServiceException("不能删除超级管理员用户"); - } - userDao.delete(id); - taskDao.deleteByUserId(id); - - } - - /** - * 判断是否超级管理员. - */ - private boolean isSupervisor(Long id) { - return id == 1; - } - - /** - * 取出Shiro中的当前用户LoginName. - */ - private String getCurrentUserName() { - ShiroUser user = (ShiroUser) SecurityUtils.getSubject().getPrincipal(); - return user.loginName; - } - - /** - * 设定安全的密码,生成随机的salt并经过1024次 sha-1 hash - */ - private void entryptPassword(User user) { - byte[] salt = Digests.generateSalt(SALT_SIZE); - user.setSalt(Encodes.encodeHex(salt)); - - byte[] hashPassword = Digests.sha1(user.getPlainPassword().getBytes(), salt, HASH_INTERATIONS); - user.setPassword(Encodes.encodeHex(hashPassword)); - } - - @Autowired - public void setUserDao(UserDao userDao) { - this.userDao = userDao; - } - - @Autowired - public void setTaskDao(TaskDao taskDao) { - this.taskDao = taskDao; - } - - public void setClock(Clock clock) { - this.clock = clock; - } -} +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package ${package}.service.account; + +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import ${package}.entity.User; +import ${package}.repository.TaskDao; +import ${package}.repository.UserDao; +import ${package}.service.ServiceException; +import ${package}.service.account.ShiroDbRealm.ShiroUser; +import org.springside.modules.security.utils.Digests; +import org.springside.modules.utils.Clock; +import org.springside.modules.utils.Encodes; + +/** + * 用户管理类. + * + * @author calvin + */ +// Spring Service Bean的标识. +@Component +@Transactional +public class AccountService { + + public static final String HASH_ALGORITHM = "SHA-1"; + public static final int HASH_INTERATIONS = 1024; + private static final int SALT_SIZE = 8; + + private static Logger logger = LoggerFactory.getLogger(AccountService.class); + + private UserDao userDao; + private TaskDao taskDao; + private Clock clock = Clock.DEFAULT; + + public List getAllUser() { + return (List) userDao.findAll(); + } + + public User getUser(Long id) { + return userDao.findOne(id); + } + + public User findUserByLoginName(String loginName) { + return userDao.findByLoginName(loginName); + } + + public void registerUser(User user) { + entryptPassword(user); + user.setRoles("user"); + user.setRegisterDate(clock.getCurrentDate()); + + userDao.save(user); + } + + public void updateUser(User user) { + if (StringUtils.isNotBlank(user.getPlainPassword())) { + entryptPassword(user); + } + userDao.save(user); + } + + public void deleteUser(Long id) { + if (isSupervisor(id)) { + logger.warn("操作员{}尝试删除超级管理员用户", getCurrentUserName()); + throw new ServiceException("不能删除超级管理员用户"); + } + userDao.delete(id); + taskDao.deleteByUserId(id); + + } + + /** + * 判断是否超级管理员. + */ + private boolean isSupervisor(Long id) { + return id == 1; + } + + /** + * 取出Shiro中的当前用户LoginName. + */ + private String getCurrentUserName() { + ShiroUser user = (ShiroUser) SecurityUtils.getSubject().getPrincipal(); + return user.loginName; + } + + /** + * 设定安全的密码,生成随机的salt并经过1024次 sha-1 hash + */ + private void entryptPassword(User user) { + byte[] salt = Digests.generateSalt(SALT_SIZE); + user.setSalt(Encodes.encodeHex(salt)); + + byte[] hashPassword = Digests.sha1(user.getPlainPassword().getBytes(), salt, HASH_INTERATIONS); + user.setPassword(Encodes.encodeHex(hashPassword)); + } + + @Autowired + public void setUserDao(UserDao userDao) { + this.userDao = userDao; + } + + @Autowired + public void setTaskDao(TaskDao taskDao) { + this.taskDao = taskDao; + } + + public void setClock(Clock clock) { + this.clock = clock; + } +} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/account/ShiroDbRealm.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/account/ShiroDbRealm.java index ce4b15027..e78100282 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/account/ShiroDbRealm.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/account/ShiroDbRealm.java @@ -1,151 +1,138 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package ${package}.service.account; - -import java.io.Serializable; - -import javax.annotation.PostConstruct; - -import org.apache.shiro.authc.AuthenticationException; -import org.apache.shiro.authc.AuthenticationInfo; -import org.apache.shiro.authc.AuthenticationToken; -import org.apache.shiro.authc.SimpleAuthenticationInfo; -import org.apache.shiro.authc.UsernamePasswordToken; -import org.apache.shiro.authc.credential.HashedCredentialsMatcher; -import org.apache.shiro.authz.AuthorizationInfo; -import org.apache.shiro.authz.SimpleAuthorizationInfo; -import org.apache.shiro.realm.AuthorizingRealm; -import org.apache.shiro.subject.PrincipalCollection; -import org.apache.shiro.util.ByteSource; -import ${package}.entity.User; -import org.springside.modules.utils.Encodes; - -import com.google.common.base.Objects; - -public class ShiroDbRealm extends AuthorizingRealm { - - protected AccountService accountService; - - /** - * 认证回调函数,登录时调用. - */ - @Override - protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken) throws AuthenticationException { - UsernamePasswordToken token = (UsernamePasswordToken) authcToken; - User user = accountService.findUserByLoginName(token.getUsername()); - if (user != null) { - byte[] salt = Encodes.decodeHex(user.getSalt()); - return new SimpleAuthenticationInfo(new ShiroUser(user.getId(), user.getLoginName(), user.getName()), - user.getPassword(), ByteSource.Util.bytes(salt), getName()); - } else { - return null; - } - } - - /** - * 授权查询回调函数, 进行鉴权但缓存中无用户的授权信息时调用. - */ - @Override - protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { - ShiroUser shiroUser = (ShiroUser) principals.getPrimaryPrincipal(); - User user = accountService.findUserByLoginName(shiroUser.loginName); - SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); - info.addRoles(user.getRoleList()); - return info; - } - - /** - * 设定Password校验的Hash算法与迭代次数. - */ - @PostConstruct - public void initCredentialsMatcher() { - HashedCredentialsMatcher matcher = new HashedCredentialsMatcher(AccountService.HASH_ALGORITHM); - matcher.setHashIterations(AccountService.HASH_INTERATIONS); - - setCredentialsMatcher(matcher); - } - - public void setAccountService(AccountService accountService) { - this.accountService = accountService; - } - - /** - * 自定义Authentication对象,使得Subject除了携带用户的登录名外还可以携带更多信息. - */ - public static class ShiroUser implements Serializable { - private static final long serialVersionUID = -1373760761780840081L; - public Long id; - public String loginName; - public String name; - - public ShiroUser(Long id, String loginName, String name) { - this.id = id; - this.loginName = loginName; - this.name = name; - } - - public String getName() { - return name; - } - - /** - * 本函数输出将作为默认的输出. - */ - @Override - public String toString() { - return loginName; - } - - /** - * 重载hashCode,只计算loginName; - */ - @Override - public int hashCode() { - return Objects.hashCode(loginName); - } - - /** - * 重载equals,只计算loginName; - */ - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - ShiroUser other = (ShiroUser) obj; - if (loginName == null) { - if (other.loginName != null) { - return false; - } - } else if (!loginName.equals(other.loginName)) { - return false; - } - return true; - } - } -} +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package ${package}.service.account; + +import java.io.Serializable; + +import javax.annotation.PostConstruct; + +import org.apache.shiro.authc.AuthenticationException; +import org.apache.shiro.authc.AuthenticationInfo; +import org.apache.shiro.authc.AuthenticationToken; +import org.apache.shiro.authc.SimpleAuthenticationInfo; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.authc.credential.HashedCredentialsMatcher; +import org.apache.shiro.authz.AuthorizationInfo; +import org.apache.shiro.authz.SimpleAuthorizationInfo; +import org.apache.shiro.realm.AuthorizingRealm; +import org.apache.shiro.subject.PrincipalCollection; +import org.apache.shiro.util.ByteSource; +import ${package}.entity.User; +import org.springside.modules.utils.Encodes; + +import com.google.common.base.Objects; + +public class ShiroDbRealm extends AuthorizingRealm { + + protected AccountService accountService; + + /** + * 认证回调函数,登录时调用. + */ + @Override + protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken) throws AuthenticationException { + UsernamePasswordToken token = (UsernamePasswordToken) authcToken; + User user = accountService.findUserByLoginName(token.getUsername()); + if (user != null) { + byte[] salt = Encodes.decodeHex(user.getSalt()); + return new SimpleAuthenticationInfo(new ShiroUser(user.getId(), user.getLoginName(), user.getName()), + user.getPassword(), ByteSource.Util.bytes(salt), getName()); + } else { + return null; + } + } + + /** + * 授权查询回调函数, 进行鉴权但缓存中无用户的授权信息时调用. + */ + @Override + protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { + ShiroUser shiroUser = (ShiroUser) principals.getPrimaryPrincipal(); + User user = accountService.findUserByLoginName(shiroUser.loginName); + SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); + info.addRoles(user.getRoleList()); + return info; + } + + /** + * 设定Password校验的Hash算法与迭代次数. + */ + @PostConstruct + public void initCredentialsMatcher() { + HashedCredentialsMatcher matcher = new HashedCredentialsMatcher(AccountService.HASH_ALGORITHM); + matcher.setHashIterations(AccountService.HASH_INTERATIONS); + + setCredentialsMatcher(matcher); + } + + public void setAccountService(AccountService accountService) { + this.accountService = accountService; + } + + /** + * 自定义Authentication对象,使得Subject除了携带用户的登录名外还可以携带更多信息. + */ + public static class ShiroUser implements Serializable { + private static final long serialVersionUID = -1373760761780840081L; + public Long id; + public String loginName; + public String name; + + public ShiroUser(Long id, String loginName, String name) { + this.id = id; + this.loginName = loginName; + this.name = name; + } + + public String getName() { + return name; + } + + /** + * 本函数输出将作为默认的输出. + */ + @Override + public String toString() { + return loginName; + } + + /** + * 重载hashCode,只计算loginName; + */ + @Override + public int hashCode() { + return Objects.hashCode(loginName); + } + + /** + * 重载equals,只计算loginName; + */ + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + ShiroUser other = (ShiroUser) obj; + if (loginName == null) { + if (other.loginName != null) { + return false; + } + } else if (!loginName.equals(other.loginName)) { + return false; + } + return true; + } + } +} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/task/TaskService.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/task/TaskService.java index 02f4d6a34..dc2cfe4ec 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/task/TaskService.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/service/task/TaskService.java @@ -1,83 +1,88 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -package ${package}.service.task; - -import java.util.List; -import java.util.Map; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Sort; -import org.springframework.data.domain.Sort.Direction; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; -import ${package}.entity.Task; -import ${package}.repository.TaskDao; -import org.springside.modules.persistence.DynamicSpecifications; -import org.springside.modules.persistence.SearchFilter; -import org.springside.modules.persistence.SearchFilter.Operator; - -//Spring Bean的标识. -@Component -// 默认将类中的所有public函数纳入事务管理. -@Transactional -public class TaskService { - - private TaskDao taskDao; - - public Task getTask(Long id) { - return taskDao.findOne(id); - } - - public void saveTask(Task entity) { - taskDao.save(entity); - } - - public void deleteTask(Long id) { - taskDao.delete(id); - } - - public List getAllTask() { - return (List) taskDao.findAll(); - } - - public Page getUserTask(Long userId, Map searchParams, int pageNumber, int pageSize, - String sortType) { - PageRequest pageRequest = buildPageRequest(pageNumber, pageSize, sortType); - Specification spec = buildSpecification(userId, searchParams); - - return taskDao.findAll(spec, pageRequest); - } - - /** - * 创建分页请求. - */ - private PageRequest buildPageRequest(int pageNumber, int pagzSize, String sortType) { - Sort sort = null; - if ("auto".equals(sortType)) { - sort = new Sort(Direction.DESC, "id"); - } else if ("title".equals(sortType)) { - sort = new Sort(Direction.ASC, "title"); - } - - return new PageRequest(pageNumber - 1, pagzSize, sort); - } - - /** - * 创建动态查询条件组合. - */ - private Specification buildSpecification(Long userId, Map searchParams) { - Map filters = SearchFilter.parse(searchParams); - filters.put("user.id", new SearchFilter("user.id", Operator.EQ, userId)); - Specification spec = DynamicSpecifications.bySearchFilter(filters.values(), Task.class); - return spec; - } - - @Autowired - public void setTaskDao(TaskDao taskDao) { - this.taskDao = taskDao; - } -} +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package ${package}.service.task; + +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; +import org.springframework.data.domain.Sort.Direction; +import org.springframework.data.jpa.domain.Specification; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import ${package}.entity.Task; +import ${package}.repository.TaskDao; +import org.springside.modules.persistence.DynamicSpecifications; +import org.springside.modules.persistence.SearchFilter; +import org.springside.modules.persistence.SearchFilter.Operator; + +//Spring Bean的标识. +@Component +// 默认将类中的所有public函数纳入事务管理. +@Transactional +public class TaskService { + + private TaskDao taskDao; + + public Task getTask(Long id) { + return taskDao.findOne(id); + } + + public void saveTask(Task entity) { + taskDao.save(entity); + } + + public void deleteTask(Long id) { + taskDao.delete(id); + } + + public List getAllTask() { + return (List) taskDao.findAll(); + } + + public Page getUserTask(Long userId, Map searchParams, int pageNumber, int pageSize, + String sortType) { + PageRequest pageRequest = buildPageRequest(pageNumber, pageSize, sortType); + Specification spec = buildSpecification(userId, searchParams); + + return taskDao.findAll(spec, pageRequest); + } + + /** + * 创建分页请求. + */ + private PageRequest buildPageRequest(int pageNumber, int pagzSize, String sortType) { + Sort sort = null; + if ("auto".equals(sortType)) { + sort = new Sort(Direction.DESC, "id"); + } else if ("title".equals(sortType)) { + sort = new Sort(Direction.ASC, "title"); + } + + return new PageRequest(pageNumber - 1, pagzSize, sort); + } + + /** + * 创建动态查询条件组合. + */ + private Specification buildSpecification(Long userId, Map searchParams) { + Map filters = SearchFilter.parse(searchParams); + filters.put("user.id", new SearchFilter("user.id", Operator.EQ, userId)); + Specification spec = DynamicSpecifications.bySearchFilter(filters.values(), Task.class); + return spec; + } + + @Autowired + public void setTaskDao(TaskDao taskDao) { + this.taskDao = taskDao; + } +} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/account/LoginController.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/account/LoginController.java index 93437bd01..690b77762 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/account/LoginController.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/account/LoginController.java @@ -1,35 +1,40 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -package ${package}.web.account; - -import org.apache.shiro.web.filter.authc.FormAuthenticationFilter; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; - -/** - * LoginController负责打开登录页面(GET请求)和登录出错页面(POST请求), - * - * 真正登录的POST请求由Filter完成, - * - * @author calvin - */ -@Controller -@RequestMapping(value = "/login") -public class LoginController { - - @RequestMapping(method = RequestMethod.GET) - public String login() { - return "account/login"; - } - - @RequestMapping(method = RequestMethod.POST) - public String fail(@RequestParam(FormAuthenticationFilter.DEFAULT_USERNAME_PARAM) String userName, Model model) { - model.addAttribute(FormAuthenticationFilter.DEFAULT_USERNAME_PARAM, userName); - return "account/login"; - } - -} +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package ${package}.web.account; + +import org.apache.shiro.web.filter.authc.FormAuthenticationFilter; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * LoginController负责打开登录页面(GET请求)和登录出错页面(POST请求), + * + * 真正登录的POST请求由Filter完成, + * + * @author calvin + */ +@Controller +@RequestMapping(value = "/login") +public class LoginController { + + @RequestMapping(method = RequestMethod.GET) + public String login() { + return "account/login"; + } + + @RequestMapping(method = RequestMethod.POST) + public String fail(@RequestParam(FormAuthenticationFilter.DEFAULT_USERNAME_PARAM) String userName, Model model) { + model.addAttribute(FormAuthenticationFilter.DEFAULT_USERNAME_PARAM, userName); + return "account/login"; + } + +} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/account/ProfileController.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/account/ProfileController.java index 019d15470..1e332fbc9 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/account/ProfileController.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/account/ProfileController.java @@ -1,72 +1,77 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -package ${package}.web.account; - -import javax.validation.Valid; - -import org.apache.shiro.SecurityUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import ${package}.entity.User; -import ${package}.service.account.AccountService; -import ${package}.service.account.ShiroDbRealm.ShiroUser; - -/** - * 用户修改自己资料的Controller. - * - * @author calvin - */ -@Controller -@RequestMapping(value = "/profile") -public class ProfileController { - - @Autowired - private AccountService accountService; - - @RequestMapping(method = RequestMethod.GET) - public String updateForm(Model model) { - Long id = getCurrentUserId(); - model.addAttribute("user", accountService.getUser(id)); - return "account/profile"; - } - - @RequestMapping(method = RequestMethod.POST) - public String update(@Valid @ModelAttribute("user") User user) { - accountService.updateUser(user); - updateCurrentUserName(user.getName()); - return "redirect:/"; - } - - /** - * 所有RequestMapping方法调用前的Model准备方法, 实现Struts2 Preparable二次部分绑定的效果,先根据form的id从数据库查出User对象,再把Form提交的内容绑定到该对象上。 - * 因为仅update()方法的form中有id属性,因此仅在update时实际执行. - */ - @ModelAttribute - public void getUser(@RequestParam(value = "id", defaultValue = "-1") Long id, Model model) { - if (id != -1) { - model.addAttribute("user", accountService.getUser(id)); - } - } - - /** - * 取出Shiro中的当前用户Id. - */ - private Long getCurrentUserId() { - ShiroUser user = (ShiroUser) SecurityUtils.getSubject().getPrincipal(); - return user.id; - } - - /** - * 更新Shiro中当前用户的用户名. - */ - private void updateCurrentUserName(String userName) { - ShiroUser user = (ShiroUser) SecurityUtils.getSubject().getPrincipal(); - user.name = userName; - } -} +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package ${package}.web.account; + +import javax.validation.Valid; + +import org.apache.shiro.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import ${package}.entity.User; +import ${package}.service.account.AccountService; +import ${package}.service.account.ShiroDbRealm.ShiroUser; + +/** + * 用户修改自己资料的Controller. + * + * @author calvin + */ +@Controller +@RequestMapping(value = "/profile") +public class ProfileController { + + @Autowired + private AccountService accountService; + + @RequestMapping(method = RequestMethod.GET) + public String updateForm(Model model) { + Long id = getCurrentUserId(); + model.addAttribute("user", accountService.getUser(id)); + return "account/profile"; + } + + @RequestMapping(method = RequestMethod.POST) + public String update(@Valid @ModelAttribute("user") User user) { + accountService.updateUser(user); + updateCurrentUserName(user.getName()); + return "redirect:/"; + } + + /** + * 所有RequestMapping方法调用前的Model准备方法, 实现Struts2 Preparable二次部分绑定的效果,先根据form的id从数据库查出User对象,再把Form提交的内容绑定到该对象上。 + * 因为仅update()方法的form中有id属性,因此仅在update时实际执行. + */ + @ModelAttribute + public void getUser(@RequestParam(value = "id", defaultValue = "-1") Long id, Model model) { + if (id != -1) { + model.addAttribute("user", accountService.getUser(id)); + } + } + + /** + * 取出Shiro中的当前用户Id. + */ + private Long getCurrentUserId() { + ShiroUser user = (ShiroUser) SecurityUtils.getSubject().getPrincipal(); + return user.id; + } + + /** + * 更新Shiro中当前用户的用户名. + */ + private void updateCurrentUserName(String userName) { + ShiroUser user = (ShiroUser) SecurityUtils.getSubject().getPrincipal(); + user.name = userName; + } +} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/account/RegisterController.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/account/RegisterController.java index 21a39a695..cb02cf38d 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/account/RegisterController.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/account/RegisterController.java @@ -1,54 +1,59 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -package ${package}.web.account; - -import javax.validation.Valid; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.servlet.mvc.support.RedirectAttributes; -import ${package}.entity.User; -import ${package}.service.account.AccountService; - -/** - * 用户注册的Controller. - * - * @author calvin - */ -@Controller -@RequestMapping(value = "/register") -public class RegisterController { - - @Autowired - private AccountService accountService; - - @RequestMapping(method = RequestMethod.GET) - public String registerForm() { - return "account/register"; - } - - @RequestMapping(method = RequestMethod.POST) - public String register(@Valid User user, RedirectAttributes redirectAttributes) { - accountService.registerUser(user); - redirectAttributes.addFlashAttribute("username", user.getLoginName()); - return "redirect:/login"; - } - - /** - * Ajax请求校验loginName是否唯一。 - */ - @RequestMapping(value = "checkLoginName") - @ResponseBody - public String checkLoginName(@RequestParam("loginName") String loginName) { - if (accountService.findUserByLoginName(loginName) == null) { - return "true"; - } else { - return "false"; - } - } -} +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package ${package}.web.account; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; +import ${package}.entity.User; +import ${package}.service.account.AccountService; + +/** + * 用户注册的Controller. + * + * @author calvin + */ +@Controller +@RequestMapping(value = "/register") +public class RegisterController { + + @Autowired + private AccountService accountService; + + @RequestMapping(method = RequestMethod.GET) + public String registerForm() { + return "account/register"; + } + + @RequestMapping(method = RequestMethod.POST) + public String register(@Valid User user, RedirectAttributes redirectAttributes) { + accountService.registerUser(user); + redirectAttributes.addFlashAttribute("username", user.getLoginName()); + return "redirect:/login"; + } + + /** + * Ajax请求校验loginName是否唯一。 + */ + @RequestMapping(value = "checkLoginName") + @ResponseBody + public String checkLoginName(@RequestParam("loginName") String loginName) { + if (accountService.findUserByLoginName(loginName) == null) { + return "true"; + } else { + return "false"; + } + } +} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/account/UserAdminController.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/account/UserAdminController.java index 67f517fdc..6c68c5bb9 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/account/UserAdminController.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/account/UserAdminController.java @@ -1,73 +1,78 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -package ${package}.web.account; - -import java.util.List; - -import javax.validation.Valid; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.servlet.mvc.support.RedirectAttributes; -import ${package}.entity.User; -import ${package}.service.account.AccountService; - -/** - * 管理员管理用户的Controller. - * - * @author calvin - */ -@Controller -@RequestMapping(value = "/admin/user") -public class UserAdminController { - - @Autowired - private AccountService accountService; - - @RequestMapping(method = RequestMethod.GET) - public String list(Model model) { - List users = accountService.getAllUser(); - model.addAttribute("users", users); - - return "account/adminUserList"; - } - - @RequestMapping(value = "update/{id}", method = RequestMethod.GET) - public String updateForm(@PathVariable("id") Long id, Model model) { - model.addAttribute("user", accountService.getUser(id)); - return "account/adminUserForm"; - } - - @RequestMapping(value = "update", method = RequestMethod.POST) - public String update(@Valid @ModelAttribute("user") User user, RedirectAttributes redirectAttributes) { - accountService.updateUser(user); - redirectAttributes.addFlashAttribute("message", "更新用户" + user.getLoginName() + "成功"); - return "redirect:/admin/user"; - } - - @RequestMapping(value = "delete/{id}") - public String delete(@PathVariable("id") Long id, RedirectAttributes redirectAttributes) { - User user = accountService.getUser(id); - accountService.deleteUser(id); - redirectAttributes.addFlashAttribute("message", "删除用户" + user.getLoginName() + "成功"); - return "redirect:/admin/user"; - } - - /** - * 所有RequestMapping方法调用前的Model准备方法, 实现Struts2 Preparable二次部分绑定的效果,先根据form的id从数据库查出User对象,再把Form提交的内容绑定到该对象上。 - * 因为仅update()方法的form中有id属性,因此仅在update时实际执行. - */ - @ModelAttribute - public void getUser(@RequestParam(value = "id", defaultValue = "-1") Long id, Model model) { - if (id != -1) { - model.addAttribute("user", accountService.getUser(id)); - } - } -} +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package ${package}.web.account; + +import java.util.List; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; +import ${package}.entity.User; +import ${package}.service.account.AccountService; + +/** + * 管理员管理用户的Controller. + * + * @author calvin + */ +@Controller +@RequestMapping(value = "/admin/user") +public class UserAdminController { + + @Autowired + private AccountService accountService; + + @RequestMapping(method = RequestMethod.GET) + public String list(Model model) { + List users = accountService.getAllUser(); + model.addAttribute("users", users); + + return "account/adminUserList"; + } + + @RequestMapping(value = "update/{id}", method = RequestMethod.GET) + public String updateForm(@PathVariable("id") Long id, Model model) { + model.addAttribute("user", accountService.getUser(id)); + return "account/adminUserForm"; + } + + @RequestMapping(value = "update", method = RequestMethod.POST) + public String update(@Valid @ModelAttribute("user") User user, RedirectAttributes redirectAttributes) { + accountService.updateUser(user); + redirectAttributes.addFlashAttribute("message", "更新用户" + user.getLoginName() + "成功"); + return "redirect:/admin/user"; + } + + @RequestMapping(value = "delete/{id}") + public String delete(@PathVariable("id") Long id, RedirectAttributes redirectAttributes) { + User user = accountService.getUser(id); + accountService.deleteUser(id); + redirectAttributes.addFlashAttribute("message", "删除用户" + user.getLoginName() + "成功"); + return "redirect:/admin/user"; + } + + /** + * 所有RequestMapping方法调用前的Model准备方法, 实现Struts2 Preparable二次部分绑定的效果,先根据form的id从数据库查出User对象,再把Form提交的内容绑定到该对象上。 + * 因为仅update()方法的form中有id属性,因此仅在update时实际执行. + */ + @ModelAttribute + public void getUser(@RequestParam(value = "id", defaultValue = "-1") Long id, Model model) { + if (id != -1) { + model.addAttribute("user", accountService.getUser(id)); + } + } +} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/api/ApiListController.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/api/ApiListController.java index 1f248224f..65e81baba 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/api/ApiListController.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/api/ApiListController.java @@ -1,17 +1,22 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -package ${package}.web.api; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; - -@Controller -@RequestMapping(value = "/api") -public class ApiListController { - @RequestMapping(method = RequestMethod.GET) - public String list() { - return "api/list"; - } -} +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package ${package}.web.api; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +@Controller +@RequestMapping(value = "/api") +public class ApiListController { + @RequestMapping(method = RequestMethod.GET) + public String list() { + return "api/list"; + } +} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/task/TaskController.java b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/task/TaskController.java index 399d85f30..53deedbc4 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/task/TaskController.java +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/java/web/task/TaskController.java @@ -1,132 +1,137 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -package ${package}.web.task; - -import java.util.Map; - -import javax.servlet.ServletRequest; -import javax.validation.Valid; - -import org.apache.shiro.SecurityUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.servlet.mvc.support.RedirectAttributes; -import ${package}.entity.Task; -import ${package}.entity.User; -import ${package}.service.account.ShiroDbRealm.ShiroUser; -import ${package}.service.task.TaskService; -import org.springside.modules.web.Servlets; - -import com.google.common.collect.Maps; - -/** - * Task管理的Controller, 使用Restful风格的Urls: - * - * List page : GET /task/ - * Create page : GET /task/create - * Create action : POST /task/create - * Update page : GET /task/update/{id} - * Update action : POST /task/update - * Delete action : GET /task/delete/{id} - * - * @author calvin - */ -@Controller -@RequestMapping(value = "/task") -public class TaskController { - - private static final String PAGE_SIZE = "3"; - - private static Map sortTypes = Maps.newLinkedHashMap(); - static { - sortTypes.put("auto", "自动"); - sortTypes.put("title", "标题"); - } - - @Autowired - private TaskService taskService; - - @RequestMapping(method = RequestMethod.GET) - public String list(@RequestParam(value = "page", defaultValue = "1") int pageNumber, - @RequestParam(value = "page.size", defaultValue = PAGE_SIZE) int pageSize, - @RequestParam(value = "sortType", defaultValue = "auto") String sortType, Model model, - ServletRequest request) { - Map searchParams = Servlets.getParametersStartingWith(request, "search_"); - Long userId = getCurrentUserId(); - - Page tasks = taskService.getUserTask(userId, searchParams, pageNumber, pageSize, sortType); - - model.addAttribute("tasks", tasks); - model.addAttribute("sortType", sortType); - model.addAttribute("sortTypes", sortTypes); - // 将搜索条件编码成字符串,用于排序,分页的URL - model.addAttribute("searchParams", Servlets.encodeParameterStringWithPrefix(searchParams, "search_")); - - return "task/taskList"; - } - - @RequestMapping(value = "create", method = RequestMethod.GET) - public String createForm(Model model) { - model.addAttribute("task", new Task()); - model.addAttribute("action", "create"); - return "task/taskForm"; - } - - @RequestMapping(value = "create", method = RequestMethod.POST) - public String create(@Valid Task newTask, RedirectAttributes redirectAttributes) { - User user = new User(getCurrentUserId()); - newTask.setUser(user); - - taskService.saveTask(newTask); - redirectAttributes.addFlashAttribute("message", "创建任务成功"); - return "redirect:/task/"; - } - - @RequestMapping(value = "update/{id}", method = RequestMethod.GET) - public String updateForm(@PathVariable("id") Long id, Model model) { - model.addAttribute("task", taskService.getTask(id)); - model.addAttribute("action", "update"); - return "task/taskForm"; - } - - @RequestMapping(value = "update", method = RequestMethod.POST) - public String update(@Valid @ModelAttribute("task") Task task, RedirectAttributes redirectAttributes) { - taskService.saveTask(task); - redirectAttributes.addFlashAttribute("message", "更新任务成功"); - return "redirect:/task/"; - } - - @RequestMapping(value = "delete/{id}") - public String delete(@PathVariable("id") Long id, RedirectAttributes redirectAttributes) { - taskService.deleteTask(id); - redirectAttributes.addFlashAttribute("message", "删除任务成功"); - return "redirect:/task/"; - } - - /** - * 所有RequestMapping方法调用前的Model准备方法, 实现Struts2 Preparable二次部分绑定的效果,先根据form的id从数据库查出Task对象,再把Form提交的内容绑定到该对象上。 - * 因为仅update()方法的form中有id属性,因此仅在update时实际执行. - */ - @ModelAttribute - public void getTask(@RequestParam(value = "id", defaultValue = "-1") Long id, Model model) { - if (id != -1) { - model.addAttribute("task", taskService.getTask(id)); - } - } - - /** - * 取出Shiro中的当前用户Id. - */ - private Long getCurrentUserId() { - ShiroUser user = (ShiroUser) SecurityUtils.getSubject().getPrincipal(); - return user.id; - } -} +/******************************************************************************* + * Copyright (c) 2005, 2014 springside.github.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + *******************************************************************************/ +package ${package}.web.task; + +import java.util.Map; + +import javax.servlet.ServletRequest; +import javax.validation.Valid; + +import org.apache.shiro.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; +import ${package}.entity.Task; +import ${package}.entity.User; +import ${package}.service.account.ShiroDbRealm.ShiroUser; +import ${package}.service.task.TaskService; +import org.springside.modules.web.Servlets; + +import com.google.common.collect.Maps; + +/** + * Task管理的Controller, 使用Restful风格的Urls: + * + * List page : GET /task/ + * Create page : GET /task/create + * Create action : POST /task/create + * Update page : GET /task/update/{id} + * Update action : POST /task/update + * Delete action : GET /task/delete/{id} + * + * @author calvin + */ +@Controller +@RequestMapping(value = "/task") +public class TaskController { + + private static final String PAGE_SIZE = "3"; + + private static Map sortTypes = Maps.newLinkedHashMap(); + static { + sortTypes.put("auto", "自动"); + sortTypes.put("title", "标题"); + } + + @Autowired + private TaskService taskService; + + @RequestMapping(method = RequestMethod.GET) + public String list(@RequestParam(value = "page", defaultValue = "1") int pageNumber, + @RequestParam(value = "page.size", defaultValue = PAGE_SIZE) int pageSize, + @RequestParam(value = "sortType", defaultValue = "auto") String sortType, Model model, + ServletRequest request) { + Map searchParams = Servlets.getParametersStartingWith(request, "search_"); + Long userId = getCurrentUserId(); + + Page tasks = taskService.getUserTask(userId, searchParams, pageNumber, pageSize, sortType); + + model.addAttribute("tasks", tasks); + model.addAttribute("sortType", sortType); + model.addAttribute("sortTypes", sortTypes); + // 将搜索条件编码成字符串,用于排序,分页的URL + model.addAttribute("searchParams", Servlets.encodeParameterStringWithPrefix(searchParams, "search_")); + + return "task/taskList"; + } + + @RequestMapping(value = "create", method = RequestMethod.GET) + public String createForm(Model model) { + model.addAttribute("task", new Task()); + model.addAttribute("action", "create"); + return "task/taskForm"; + } + + @RequestMapping(value = "create", method = RequestMethod.POST) + public String create(@Valid Task newTask, RedirectAttributes redirectAttributes) { + User user = new User(getCurrentUserId()); + newTask.setUser(user); + + taskService.saveTask(newTask); + redirectAttributes.addFlashAttribute("message", "创建任务成功"); + return "redirect:/task/"; + } + + @RequestMapping(value = "update/{id}", method = RequestMethod.GET) + public String updateForm(@PathVariable("id") Long id, Model model) { + model.addAttribute("task", taskService.getTask(id)); + model.addAttribute("action", "update"); + return "task/taskForm"; + } + + @RequestMapping(value = "update", method = RequestMethod.POST) + public String update(@Valid @ModelAttribute("task") Task task, RedirectAttributes redirectAttributes) { + taskService.saveTask(task); + redirectAttributes.addFlashAttribute("message", "更新任务成功"); + return "redirect:/task/"; + } + + @RequestMapping(value = "delete/{id}") + public String delete(@PathVariable("id") Long id, RedirectAttributes redirectAttributes) { + taskService.deleteTask(id); + redirectAttributes.addFlashAttribute("message", "删除任务成功"); + return "redirect:/task/"; + } + + /** + * 所有RequestMapping方法调用前的Model准备方法, 实现Struts2 Preparable二次部分绑定的效果,先根据form的id从数据库查出Task对象,再把Form提交的内容绑定到该对象上。 + * 因为仅update()方法的form中有id属性,因此仅在update时实际执行. + */ + @ModelAttribute + public void getTask(@RequestParam(value = "id", defaultValue = "-1") Long id, Model model) { + if (id != -1) { + model.addAttribute("task", taskService.getTask(id)); + } + } + + /** + * 取出Shiro中的当前用户Id. + */ + private Long getCurrentUserId() { + ShiroUser user = (ShiroUser) SecurityUtils.getSubject().getPrincipal(); + return user.id; + } +} diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties index 52693ae05..346bc27e7 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties @@ -1,28 +1,28 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -${symbol_pound}h2 database settings -jdbc.driver=org.h2.Driver -jdbc.url=jdbc:h2:file:~/.h2/${artifactId};AUTO_SERVER=TRUE;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE -jdbc.username=sa -jdbc.password= - -${symbol_pound}log4jdbc driver -${symbol_pound}jdbc.driver=net.sf.log4jdbc.DriverSpy -${symbol_pound}jdbc.url=jdbc:log4jdbc:h2:file:~/.h2/${artifactId};AUTO_SERVER=TRUE;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE - -${symbol_pound}oracle database settings -${symbol_pound}jdbc.driver=oracle.jdbc.driver.OracleDriver -${symbol_pound}jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:XE -${symbol_pound}jdbc.username=${artifactId} -${symbol_pound}jdbc.password=${artifactId} - -${symbol_pound}mysql database setting -${symbol_pound}jdbc.driver=com.mysql.jdbc.Driver -${symbol_pound}jdbc.url=jdbc:mysql://localhost/${artifactId}?useUnicode=true&characterEncoding=utf-8 -${symbol_pound}jdbc.username=root -${symbol_pound}jdbc.password= - -${symbol_pound}connection pool settings -jdbc.pool.maxIdle=10 -jdbc.pool.maxActive=50 +${symbol_pound}h2 database settings +jdbc.driver=org.h2.Driver +jdbc.url=jdbc:h2:file:~/.h2/${artifactId};AUTO_SERVER=TRUE;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE +jdbc.username=sa +jdbc.password= + +${symbol_pound}log4jdbc driver +${symbol_pound}jdbc.driver=net.sf.log4jdbc.DriverSpy +${symbol_pound}jdbc.url=jdbc:log4jdbc:h2:file:~/.h2/${artifactId};AUTO_SERVER=TRUE;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE + +${symbol_pound}oracle database settings +${symbol_pound}jdbc.driver=oracle.jdbc.driver.OracleDriver +${symbol_pound}jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:XE +${symbol_pound}jdbc.username=${artifactId} +${symbol_pound}jdbc.password=${artifactId} + +${symbol_pound}mysql database setting +${symbol_pound}jdbc.driver=com.mysql.jdbc.Driver +${symbol_pound}jdbc.url=jdbc:mysql://localhost/${artifactId}?useUnicode=true&characterEncoding=utf-8 +${symbol_pound}jdbc.username=root +${symbol_pound}jdbc.password= + +${symbol_pound}connection pool settings +jdbc.pool.maxIdle=10 +jdbc.pool.maxActive=50 diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/applicationContext-shiro.xml b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/applicationContext-shiro.xml index 806d8bd30..1d55433b6 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/applicationContext-shiro.xml +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/applicationContext-shiro.xml @@ -1,47 +1,47 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) - - - - Shiro安全配置 - - - - - - - - - - - - - - - - - - - - /login = authc - /logout = logout - /static/** = anon - /api/** = anon - /register/** = anon - /admin/** = roles[admin] - /** = user - - - - - - - - - - - + + + + Shiro安全配置 + + + + + + + + + + + + + + + + + + + + /login = authc + /logout = logout + /static/** = anon + /api/** = anon + /register/** = anon + /admin/** = roles[admin] + /** = user + + + + + + + + + + + \ No newline at end of file diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/applicationContext.xml b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/applicationContext.xml index 1a1bf5668..78d193125 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/applicationContext.xml +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/applicationContext.xml @@ -1,145 +1,145 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) - - - - Spring公共配置 - - - - - - - - - - - - - - - - org.hibernate.cfg.ImprovedNamingStrategy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + Spring公共配置 + + + + + + + + + + + + + + + + org.hibernate.cfg.ImprovedNamingStrategy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/ehcache/ehcache-shiro.xml b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/ehcache/ehcache-shiro.xml index 8748372f3..09fc764ca 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/ehcache/ehcache-shiro.xml +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/ehcache/ehcache-shiro.xml @@ -1,15 +1,15 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) - - - + + + \ No newline at end of file diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/log4jdbc.properties b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/log4jdbc.properties index 6969638c1..2df6139d1 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/log4jdbc.properties +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/log4jdbc.properties @@ -1,10 +1,10 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -${symbol_pound}Optional properties -${symbol_pound}log4jdbc.debug.stack.prefix= -${symbol_pound}log4jdbc.sqltiming.warn.threshold= -${symbol_pound}log4jdbc.dump.sql.select=false -${symbol_pound}log4jdbc.dump.sql.insert=false -${symbol_pound}log4jdbc.dump.sql.update=false +${symbol_pound}Optional properties +${symbol_pound}log4jdbc.debug.stack.prefix= +${symbol_pound}log4jdbc.sqltiming.warn.threshold= +${symbol_pound}log4jdbc.dump.sql.select=false +${symbol_pound}log4jdbc.dump.sql.insert=false +${symbol_pound}log4jdbc.dump.sql.update=false ${symbol_pound}log4jdbc.dump.sql.delete=false \ No newline at end of file diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/logback.xml b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/logback.xml index 48eeb75c9..f869b84a4 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/logback.xml +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/logback.xml @@ -1,32 +1,32 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) - - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - logs/${artifactId}.log - - logs/${artifactId}.%d{yyyy-MM-dd}.log - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - - - - - - - + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + logs/${artifactId}.log + + logs/${artifactId}.%d{yyyy-MM-dd}.log + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + + + + + + \ No newline at end of file diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/h2/schema-with-oracle.sql b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/h2/schema-with-oracle.sql index f7561568e..1eabdc107 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/h2/schema-with-oracle.sql +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/h2/schema-with-oracle.sql @@ -1,28 +1,28 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -drop table if exists ${tablePrefix}task; -drop table if exists ${tablePrefix}user; - -create table ${tablePrefix}task ( - id bigint, - title varchar(128) not null, - description varchar(255), - user_id bigint not null, - primary key (id) -); - -create table ${tablePrefix}user ( - id bigint, - login_name varchar(64) not null unique, - name varchar(64) not null, - password varchar(255) not null, - salt varchar(64) not null, - roles varchar(255) not null, - register_date timestamp not null, - primary key (id) -); - - -create sequence ${tablePrefix}seq_task start with 100 increment by 20; +drop table if exists ${tablePrefix}task; +drop table if exists ${tablePrefix}user; + +create table ${tablePrefix}task ( + id bigint, + title varchar(128) not null, + description varchar(255), + user_id bigint not null, + primary key (id) +); + +create table ${tablePrefix}user ( + id bigint, + login_name varchar(64) not null unique, + name varchar(64) not null, + password varchar(255) not null, + salt varchar(64) not null, + roles varchar(255) not null, + register_date timestamp not null, + primary key (id) +); + + +create sequence ${tablePrefix}seq_task start with 100 increment by 20; create sequence ${tablePrefix}seq_user start with 100 increment by 20; \ No newline at end of file diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/h2/schema.sql b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/h2/schema.sql index b00be8fdc..8709220b9 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/h2/schema.sql +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/h2/schema.sql @@ -1,24 +1,24 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -drop table if exists ${tablePrefix}task; -drop table if exists ${tablePrefix}user; - -create table ${tablePrefix}task ( - id bigint generated by default as identity, - title varchar(128) not null, - description varchar(255), - user_id bigint not null, - primary key (id) -); - -create table ${tablePrefix}user ( - id bigint generated by default as identity, - login_name varchar(64) not null unique, - name varchar(64) not null, - password varchar(255) not null, - salt varchar(64) not null, - roles varchar(255) not null, - register_date timestamp not null, - primary key (id) +drop table if exists ${tablePrefix}task; +drop table if exists ${tablePrefix}user; + +create table ${tablePrefix}task ( + id bigint generated by default as identity, + title varchar(128) not null, + description varchar(255), + user_id bigint not null, + primary key (id) +); + +create table ${tablePrefix}user ( + id bigint generated by default as identity, + login_name varchar(64) not null unique, + name varchar(64) not null, + password varchar(255) not null, + salt varchar(64) not null, + roles varchar(255) not null, + register_date timestamp not null, + primary key (id) ); \ No newline at end of file diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/mysql/schema.sql b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/mysql/schema.sql index a7e8faec9..393ae4955 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/mysql/schema.sql +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/mysql/schema.sql @@ -1,24 +1,24 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -drop table if exists ${tablePrefix}task; -drop table if exists ${tablePrefix}user; - -create table ${tablePrefix}task ( - id bigint auto_increment, - title varchar(128) not null, - description varchar(255), - user_id bigint not null, - primary key (id) -) engine=InnoDB; - -create table ${tablePrefix}user ( - id bigint auto_increment, - login_name varchar(64) not null unique, - name varchar(64) not null, - password varchar(255) not null, - salt varchar(64) not null, - roles varchar(255) not null, - register_date timestamp not null default 0, - primary key (id) +drop table if exists ${tablePrefix}task; +drop table if exists ${tablePrefix}user; + +create table ${tablePrefix}task ( + id bigint auto_increment, + title varchar(128) not null, + description varchar(255), + user_id bigint not null, + primary key (id) +) engine=InnoDB; + +create table ${tablePrefix}user ( + id bigint auto_increment, + login_name varchar(64) not null unique, + name varchar(64) not null, + password varchar(255) not null, + salt varchar(64) not null, + roles varchar(255) not null, + register_date timestamp not null default 0, + primary key (id) ) engine=InnoDB; \ No newline at end of file diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/oracle/schema.sql b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/oracle/schema.sql index 100821179..1a3862ce1 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/oracle/schema.sql +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/resources/sql/oracle/schema.sql @@ -1,28 +1,28 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -drop table ${tablePrefix}task; -drop table ${tablePrefix}user; - -create table ${tablePrefix}task ( - id number(19,0), - title varchar2(128) not null, - description varchar2(255), - user_id number(19,0) not null, - primary key (id) -); - -create table ${tablePrefix}user ( - id number(19,0), - login_name varchar2(64) not null unique, - name varchar2(64) not null, - password varchar2(255) not null, - salt varchar2(64) not null, - roles varchar2(255) not null, - register_date date not null, - primary key (id) -); - - -create sequence ${tablePrefix}seq_task start with 100 increment by 20; -create sequence ${tablePrefix}seq_user start with 100 increment by 20; +drop table ${tablePrefix}task; +drop table ${tablePrefix}user; + +create table ${tablePrefix}task ( + id number(19,0), + title varchar2(128) not null, + description varchar2(255), + user_id number(19,0) not null, + primary key (id) +); + +create table ${tablePrefix}user ( + id number(19,0), + login_name varchar2(64) not null unique, + name varchar2(64) not null, + password varchar2(255) not null, + salt varchar2(64) not null, + roles varchar2(255) not null, + register_date date not null, + primary key (id) +); + + +create sequence ${tablePrefix}seq_task start with 100 increment by 20; +create sequence ${tablePrefix}seq_user start with 100 increment by 20; diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/decorators.xml b/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/decorators.xml index a53efd082..670cfc86b 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/decorators.xml +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/decorators.xml @@ -1,14 +1,14 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) - - - - /static/* - /api/* - - - - /* - - + + + + /static/* + /api/* + + + + /* + + diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/layouts/default.jsp b/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/layouts/default.jsp index d18121d35..485fc9140 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/layouts/default.jsp +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/layouts/default.jsp @@ -1,41 +1,41 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -<%@ page contentType="text/html;charset=UTF-8"%> -<%@ taglib prefix="sitemesh" uri="http://www.opensymphony.com/sitemesh/decorator" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> - - - - - - -QuickStart示例:<sitemesh:title/> - - - - - - - - - - - - - - - - - - -
        - <%@ include file="/WEB-INF/layouts/header.jsp"%> -
        - -
        - <%@ include file="/WEB-INF/layouts/footer.jsp"%> -
        - - +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ taglib prefix="sitemesh" uri="http://www.opensymphony.com/sitemesh/decorator" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> + + + + + + +QuickStart示例:<sitemesh:title/> + + + + + + + + + + + + + + + + + + +
        + <%@ include file="/WEB-INF/layouts/header.jsp"%> +
        + +
        + <%@ include file="/WEB-INF/layouts/footer.jsp"%> +
        + + \ No newline at end of file diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/layouts/footer.jsp b/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/layouts/footer.jsp index 9d29fa989..6ceee6388 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/layouts/footer.jsp +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/layouts/footer.jsp @@ -1,8 +1,8 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -<%@ page language="java" pageEncoding="UTF-8" %> - - +<%@ page language="java" pageEncoding="UTF-8" %> + + diff --git a/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/layouts/header.jsp b/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/layouts/header.jsp index 15abc1bb4..761abb599 100644 --- a/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/layouts/header.jsp +++ b/support/maven-archetype/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/layouts/header.jsp @@ -1,31 +1,31 @@ #set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) -<%@ page language="java" pageEncoding="UTF-8" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %> - -