Enable code style check available (#590)

* Add check style plugin and remove halo code style

* Reformat codes for whole project

* Resolve conflicts due to provided checkstyle.xml
pull/593/head
John Niang 2020-02-25 00:24:51 +08:00 committed by GitHub
parent c224b68fbc
commit e8db12a93d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
113 changed files with 1066 additions and 1007 deletions

View File

@ -1,7 +1,7 @@
plugins { plugins {
id 'org.springframework.boot' version '2.2.2.RELEASE' id 'org.springframework.boot' version '2.2.2.RELEASE'
id "io.freefair.lombok" version "3.6.6" id "io.freefair.lombok" version "3.6.6"
// id 'war' id 'checkstyle'
id 'java' id 'java'
} }

View File

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"http://checkstyle.org/dtds/configuration_1_3.dtd">
<!--Refer http://checkstyle.sourceforge.net/reports/google-java-style.html#s2.2-file-encoding -->
<module name="Checker">
<property name="localeLanguage" value="en"/>
<!--To configure the check to report on the first instance in each file-->
<module name="FileTabCharacter"/>
<module name="RegexpSingleline">
<property name="format" value="System\.out"/>
<property name="message" value="Prohibit invoking System.out in source code !"/>
</module>
<module name="FileLength">
<property name="max" value="3000"/>
</module>
<module name="TreeWalker">
<module name="UnusedImports">
<property name="processJavadoc" value="true"/>
</module>
<module name="RedundantImport"/>
<!--Checks that classes that override equals() also override hashCode()-->
<module name="EqualsHashCode"/>
<!--Checks for over-complicated boolean expressions. Currently finds code like if (topic == true), topic || true, !false, etc.-->
<module name="SimplifyBooleanExpression"/>
<module name="OneStatementPerLine"/>
<module name="UnnecessaryParentheses"/>
<!--Checks for over-complicated boolean return statements. For example the following code-->
<module name="SimplifyBooleanReturn"/>
<!--Check that the default is after all the cases in producerGroup switch statement-->
<module name="DefaultComesLast"/>
<!--Detects empty statements (standalone ";" semicolon)-->
<module name="EmptyStatement"/>
<!--Checks that long constants are defined with an upper ell-->
<module name="UpperEll"/>
<module name="ConstantName">
<property name="format" value="(^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$)|(^logger)"/>
</module>
<!--Checks that local, non-final variable names conform to producerGroup format specified by the format property-->
<module name="LocalVariableName"/>
<!--Validates identifiers for local, final variables, including catch parameters-->
<module name="LocalFinalVariableName"/>
<!--Validates identifiers for non-static fields-->
<module name="MemberName"/>
<!--Validates identifiers for class type parameters-->
<module name="ClassTypeParameterName">
<property name="format" value="(^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$)"/>
</module>
<!--Validates identifiers for method type parameters-->
<module name="MethodTypeParameterName">
<property name="format" value="(^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$)"/>
</module>
<module name="PackageName">
<property name="format" value="^run\.halo(\.[a-zA-Z][a-zA-Z0-9]*)+$"/>
</module>
<module name="ParameterName"/>
<module name="StaticVariableName">
<property name="format" value="(^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$)"/>
</module>
<module name="TypeName">
<property name="format" value="(^[A-Z][a-zA-Z0-9]*$)|(^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$)"/>
</module>
<!--whitespace-->
<module name="GenericWhitespace"/>
<module name="NoWhitespaceBefore"/>
<module name="NoWhitespaceAfter"/>
<module name="WhitespaceAround">
<property name="allowEmptyConstructors" value="true"/>
<property name="allowEmptyMethods" value="true"/>
</module>
<module name="Indentation"/>
<module name="MethodParamPad"/>
<module name="ParenPad"/>
<module name="TypecastParenPad"/>
<module name="TypecastParenPad"/>
</module>
</module>

View File

@ -1,26 +0,0 @@
<code_scheme name="halo" version="173">
<DBN-PSQL>
<case-options enabled="true">
<option name="KEYWORD_CASE" value="lower" />
<option name="FUNCTION_CASE" value="lower" />
<option name="PARAMETER_CASE" value="lower" />
<option name="DATATYPE_CASE" value="lower" />
<option name="OBJECT_CASE" value="preserve" />
</case-options>
<formatting-settings enabled="false" />
</DBN-PSQL>
<DBN-SQL>
<case-options enabled="true">
<option name="KEYWORD_CASE" value="lower" />
<option name="FUNCTION_CASE" value="lower" />
<option name="PARAMETER_CASE" value="lower" />
<option name="DATATYPE_CASE" value="lower" />
<option name="OBJECT_CASE" value="preserve" />
</case-options>
<formatting-settings enabled="false">
<option name="STATEMENT_SPACING" value="one_line" />
<option name="CLAUSE_CHOP_DOWN" value="chop_down_if_statement_long" />
<option name="ITERATION_ELEMENTS_WRAPPING" value="chop_down_if_not_single" />
</formatting-settings>
</DBN-SQL>
</code_scheme>

View File

@ -25,14 +25,14 @@ import run.halo.app.repository.base.BaseRepositoryImpl;
@EnableJpaRepositories(basePackages = "run.halo.app.repository", repositoryBaseClass = BaseRepositoryImpl.class) @EnableJpaRepositories(basePackages = "run.halo.app.repository", repositoryBaseClass = BaseRepositoryImpl.class)
public class Application extends SpringBootServletInitializer { public class Application extends SpringBootServletInitializer {
private static ConfigurableApplicationContext context; private static ConfigurableApplicationContext CONTEXT;
public static void main(String[] args) { public static void main(String[] args) {
// Customize the spring config location // Customize the spring config location
System.setProperty("spring.config.additional-location", "file:${user.home}/.halo/,file:${user.home}/halo-dev/"); System.setProperty("spring.config.additional-location", "file:${user.home}/.halo/,file:${user.home}/halo-dev/");
// Run application // Run application
context = SpringApplication.run(Application.class, args); CONTEXT = SpringApplication.run(Application.class, args);
} }
@ -40,11 +40,11 @@ public class Application extends SpringBootServletInitializer {
* Restart Application. * Restart Application.
*/ */
public static void restart() { public static void restart() {
ApplicationArguments args = context.getBean(ApplicationArguments.class); ApplicationArguments args = CONTEXT.getBean(ApplicationArguments.class);
Thread thread = new Thread(() -> { Thread thread = new Thread(() -> {
context.close(); CONTEXT.close();
context = SpringApplication.run(Application.class, args.getSourceArgs()); CONTEXT = SpringApplication.run(Application.class, args.getSourceArgs());
}); });
thread.setDaemon(false); thread.setDaemon(false);

View File

@ -28,8 +28,7 @@ public class LevelCacheStore extends StringCacheStore {
*/ */
private final static long PERIOD = 60 * 1000; private final static long PERIOD = 60 * 1000;
private static DB leveldb; private static DB LEVEL_DB;
private Timer timer; private Timer timer;
@ -38,7 +37,7 @@ public class LevelCacheStore extends StringCacheStore {
@PostConstruct @PostConstruct
public void init() { public void init() {
if (leveldb != null) return; if (LEVEL_DB != null) return;
try { try {
//work path //work path
File folder = new File(haloProperties.getWorkDir() + ".leveldb"); File folder = new File(haloProperties.getWorkDir() + ".leveldb");
@ -46,7 +45,7 @@ public class LevelCacheStore extends StringCacheStore {
Options options = new Options(); Options options = new Options();
options.createIfMissing(true); options.createIfMissing(true);
//open leveldb store folder //open leveldb store folder
leveldb = factory.open(folder, options); LEVEL_DB = factory.open(folder, options);
timer = new Timer(); timer = new Timer();
timer.scheduleAtFixedRate(new CacheExpiryCleaner(), 0, PERIOD); timer.scheduleAtFixedRate(new CacheExpiryCleaner(), 0, PERIOD);
} catch (Exception ex) { } catch (Exception ex) {
@ -60,7 +59,7 @@ public class LevelCacheStore extends StringCacheStore {
@PreDestroy @PreDestroy
public void preDestroy() { public void preDestroy() {
try { try {
leveldb.close(); LEVEL_DB.close();
timer.cancel(); timer.cancel();
} catch (IOException e) { } catch (IOException e) {
log.error("close leveldb error ", e); log.error("close leveldb error ", e);
@ -70,7 +69,7 @@ public class LevelCacheStore extends StringCacheStore {
@Override @Override
Optional<CacheWrapper<String>> getInternal(String key) { Optional<CacheWrapper<String>> getInternal(String key) {
Assert.hasText(key, "Cache key must not be blank"); Assert.hasText(key, "Cache key must not be blank");
byte[] bytes = leveldb.get(stringToBytes(key)); byte[] bytes = LEVEL_DB.get(stringToBytes(key));
if (bytes != null) { if (bytes != null) {
String valueJson = bytesToString(bytes); String valueJson = bytesToString(bytes);
return StringUtils.isEmpty(valueJson) ? Optional.empty() : jsonToCacheWrapper(valueJson); return StringUtils.isEmpty(valueJson) ? Optional.empty() : jsonToCacheWrapper(valueJson);
@ -88,7 +87,7 @@ public class LevelCacheStore extends StringCacheStore {
Assert.hasText(key, "Cache key must not be blank"); Assert.hasText(key, "Cache key must not be blank");
Assert.notNull(cacheWrapper, "Cache wrapper must not be null"); Assert.notNull(cacheWrapper, "Cache wrapper must not be null");
try { try {
leveldb.put( LEVEL_DB.put(
stringToBytes(key), stringToBytes(key),
stringToBytes(JsonUtils.objectToJson(cacheWrapper)) stringToBytes(JsonUtils.objectToJson(cacheWrapper))
); );
@ -102,7 +101,7 @@ public class LevelCacheStore extends StringCacheStore {
@Override @Override
public void delete(String key) { public void delete(String key) {
leveldb.delete(stringToBytes(key)); LEVEL_DB.delete(stringToBytes(key));
log.debug("cache remove key: [{}]", key); log.debug("cache remove key: [{}]", key);
} }
@ -132,9 +131,9 @@ public class LevelCacheStore extends StringCacheStore {
@Override @Override
public void run() { public void run() {
//batch //batch
WriteBatch writeBatch = leveldb.createWriteBatch(); WriteBatch writeBatch = LEVEL_DB.createWriteBatch();
DBIterator iterator = leveldb.iterator(); DBIterator iterator = LEVEL_DB.iterator();
long currentTimeMillis = System.currentTimeMillis(); long currentTimeMillis = System.currentTimeMillis();
while (iterator.hasNext()) { while (iterator.hasNext()) {
Map.Entry<byte[], byte[]> next = iterator.next(); Map.Entry<byte[], byte[]> next = iterator.next();
@ -156,7 +155,7 @@ public class LevelCacheStore extends StringCacheStore {
} }
} }
} }
leveldb.write(writeBatch); LEVEL_DB.write(writeBatch);
} }
} }
} }

View File

@ -77,7 +77,8 @@ public class WebMvcAutoConfiguration extends WebMvcConfigurationSupport {
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) { public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.stream() converters.stream()
.filter(c -> c instanceof MappingJackson2HttpMessageConverter) .filter(c -> c instanceof MappingJackson2HttpMessageConverter)
.findFirst().ifPresent(converter -> { .findFirst()
.ifPresent(converter -> {
MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = (MappingJackson2HttpMessageConverter) converter; MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = (MappingJackson2HttpMessageConverter) converter;
Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.json(); Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.json();
JsonComponentModule module = new JsonComponentModule(); JsonComponentModule module = new JsonComponentModule();

View File

@ -72,7 +72,7 @@ public class LinkController {
} }
@GetMapping("teams") @GetMapping("teams")
@ApiOperation(("Lists all link teams")) @ApiOperation("Lists all link teams")
public List<String> teams() { public List<String> teams() {
return linkService.listAllTeams(); return linkService.listAllTeams();
} }

View File

@ -85,7 +85,7 @@ public class MenuController {
} }
@GetMapping("teams") @GetMapping("teams")
@ApiOperation(("Lists all menu teams")) @ApiOperation("Lists all menu teams")
public List<String> teams() { public List<String> teams() {
return menuService.listAllTeams(); return menuService.listAllTeams();
} }

View File

@ -43,7 +43,7 @@ public class CommonResultControllerAdvice implements ResponseBodyAdvice<Object>
* additional serialization instructions) or simply cast it if already wrapped. * additional serialization instructions) or simply cast it if already wrapped.
*/ */
private MappingJacksonValue getOrCreateContainer(Object body) { private MappingJacksonValue getOrCreateContainer(Object body) {
return (body instanceof MappingJacksonValue ? (MappingJacksonValue) body : new MappingJacksonValue(body)); return body instanceof MappingJacksonValue ? (MappingJacksonValue) body : new MappingJacksonValue(body);
} }
private void beforeBodyWriteInternal(MappingJacksonValue bodyContainer, private void beforeBodyWriteInternal(MappingJacksonValue bodyContainer,

View File

@ -27,7 +27,7 @@ import java.util.Map;
* *
* @author johnniang * @author johnniang
*/ */
@RestControllerAdvice({"run.halo.app.controller.admin.api", "run.halo.app.controller.content.api"}) @RestControllerAdvice(value = {"run.halo.app.controller.admin.api", "run.halo.app.controller.content.api"})
@Slf4j @Slf4j
public class ControllerExceptionHandler { public class ControllerExceptionHandler {

View File

@ -32,7 +32,7 @@ public class LogFilter extends OncePerRequestFilter {
// Do filter // Do filter
filterChain.doFilter(request, response); filterChain.doFilter(request, response);
log.debug("Ending url: [{}], method: [{}], ip: [{}], status: [{}], usage: [{}] ms", request.getRequestURL(), request.getMethod(), remoteAddr, response.getStatus(), (System.currentTimeMillis() - startTime)); log.debug("Ending url: [{}], method: [{}], ip: [{}], status: [{}], usage: [{}] ms", request.getRequestURL(), request.getMethod(), remoteAddr, response.getStatus(), System.currentTimeMillis() - startTime);
log.debug(""); log.debug("");
} }
} }

View File

@ -7,7 +7,6 @@ import org.springframework.lang.Nullable;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import run.halo.app.exception.FileOperationException; import run.halo.app.exception.FileOperationException;
import run.halo.app.model.enums.AttachmentType;
import run.halo.app.model.support.UploadResult; import run.halo.app.model.support.UploadResult;
import static run.halo.app.model.support.HaloConst.FILE_SEPARATOR; import static run.halo.app.model.support.HaloConst.FILE_SEPARATOR;

View File

@ -1,5 +1,6 @@
package run.halo.app.handler.file; package run.halo.app.handler.file;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -189,7 +190,8 @@ public class SmmsFileHandler implements FileHandler {
private SmmsResponseData data; private SmmsResponseData data;
private String RequestId; @JsonProperty("RequestId")
private String requestId;
} }
@Data @Data

View File

@ -8,7 +8,7 @@ import java.lang.annotation.*;
* @author guqing * @author guqing
* @date 2020-1-19 13:51 * @date 2020-1-19 13:51
*/ */
@Target({ElementType.FIELD, ElementType.TYPE}) @Target(value = {ElementType.FIELD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Documented @Documented
public @interface PropertyMappingTo { public @interface PropertyMappingTo {

View File

@ -50,7 +50,7 @@ public class YamlThemeConfigResolverImpl implements ThemeConfigResolver {
return; return;
} }
Map tabMap = ((Map) tabYaml); Map tabMap = (Map) tabYaml;
Group group = new Group(); Group group = new Group();

View File

@ -29,15 +29,10 @@ import java.util.concurrent.Executors;
public abstract class AbstractMailService implements MailService { public abstract class AbstractMailService implements MailService {
private static final int DEFAULT_POOL_SIZE = 5; private static final int DEFAULT_POOL_SIZE = 5;
private JavaMailSender cachedMailSender;
private MailProperties cachedMailProperties;
private String cachedFromName;
protected final OptionService optionService; protected final OptionService optionService;
private JavaMailSender cachedMailSender;
private MailProperties cachedMailProperties;
private String cachedFromName;
@Nullable @Nullable
private ExecutorService executorService; private ExecutorService executorService;
@ -45,10 +40,6 @@ public abstract class AbstractMailService implements MailService {
this.optionService = optionService; this.optionService = optionService;
} }
public void setExecutorService(ExecutorService executorService) {
this.executorService = executorService;
}
@NonNull @NonNull
public ExecutorService getExecutorService() { public ExecutorService getExecutorService() {
if (this.executorService == null) { if (this.executorService == null) {
@ -57,6 +48,10 @@ public abstract class AbstractMailService implements MailService {
return executorService; return executorService;
} }
public void setExecutorService(ExecutorService executorService) {
this.executorService = executorService;
}
/** /**
* Test connection with email server. * Test connection with email server.
*/ */

View File

@ -34,15 +34,15 @@ public class MailProperties extends org.springframework.boot.autoconfigure.mail.
properties.put(key, value); properties.put(key, value);
} }
public void setProperties(Map<String, String> properties) {
this.properties = properties;
}
@Override @Override
public Map<String, String> getProperties() { public Map<String, String> getProperties() {
return this.properties; return this.properties;
} }
public void setProperties(Map<String, String> properties) {
this.properties = properties;
}
@Override @Override
public String toString() { public String toString() {
final String lineSuffix = ",\n"; final String lineSuffix = ",\n";

View File

@ -56,7 +56,7 @@ public class MailServiceImpl extends AbstractMailService implements ApplicationL
@Override @Override
public void sendAttachMail(String to, String subject, Map<String, Object> content, String templateName, String attachFilePath) { public void sendAttachMail(String to, String subject, Map<String, Object> content, String templateName, String attachFilePath) {
sendMailTemplate(true, (messageHelper) -> { sendMailTemplate(true, messageHelper -> {
messageHelper.setSubject(subject); messageHelper.setSubject(subject);
messageHelper.setTo(to); messageHelper.setTo(to);
Path attachmentPath = Paths.get(attachFilePath); Path attachmentPath = Paths.get(attachFilePath);

View File

@ -13,8 +13,7 @@ public enum BanStatusEnum {
/** /**
* *
*/ */
NORMAL(0), NORMAL(0);
;
private int status; private int status;

View File

@ -17,8 +17,7 @@ public enum CommentViolationTypeEnum {
/** /**
* *
*/ */
FREQUENTLY(1), FREQUENTLY(1);
;
private int type; private int type;

View File

@ -20,40 +20,6 @@ import java.util.Map;
public interface PropertyEnum extends ValueEnum<String> { public interface PropertyEnum extends ValueEnum<String> {
/**
* Get property type.
*
* @return property type
*/
Class<?> getType();
/**
* Default value.
*
* @return default value
*/
@Nullable
String defaultValue();
/**
* Default value with given type.
*
* @param propertyType property type must not be null
* @param <T> property type
* @return default value with given type
*/
@Nullable
default <T> T defaultValue(Class<T> propertyType) {
// Get default value
String defaultValue = defaultValue();
if (defaultValue == null) {
return null;
}
// Convert to the given type
return PropertyEnum.convertTo(defaultValue, propertyType);
}
/** /**
* Converts to value with corresponding type * Converts to value with corresponding type
* *
@ -160,8 +126,10 @@ public interface PropertyEnum extends ValueEnum<String> {
* @return true if supports; false else * @return true if supports; false else
*/ */
static boolean isSupportedType(Class<?> type) { static boolean isSupportedType(Class<?> type) {
return type != null && ( if (type == null) {
type.isAssignableFrom(String.class) return false;
}
return type.isAssignableFrom(String.class)
|| type.isAssignableFrom(Number.class) || type.isAssignableFrom(Number.class)
|| type.isAssignableFrom(Integer.class) || type.isAssignableFrom(Integer.class)
|| type.isAssignableFrom(Long.class) || type.isAssignableFrom(Long.class)
@ -171,8 +139,7 @@ public interface PropertyEnum extends ValueEnum<String> {
|| type.isAssignableFrom(Double.class) || type.isAssignableFrom(Double.class)
|| type.isAssignableFrom(Float.class) || type.isAssignableFrom(Float.class)
|| type.isAssignableFrom(Enum.class) || type.isAssignableFrom(Enum.class)
|| type.isAssignableFrom(ValueEnum.class) || type.isAssignableFrom(ValueEnum.class);
);
} }
static Map<String, PropertyEnum> getValuePropertyEnumMap() { static Map<String, PropertyEnum> getValuePropertyEnumMap() {
@ -209,4 +176,38 @@ public interface PropertyEnum extends ValueEnum<String> {
return result; return result;
} }
/**
* Get property type.
*
* @return property type
*/
Class<?> getType();
/**
* Default value.
*
* @return default value
*/
@Nullable
String defaultValue();
/**
* Default value with given type.
*
* @param propertyType property type must not be null
* @param <T> property type
* @return default value with given type
*/
@Nullable
default <T> T defaultValue(Class<T> propertyType) {
// Get default value
String defaultValue = defaultValue();
if (defaultValue == null) {
return null;
}
// Convert to the given type
return PropertyEnum.convertTo(defaultValue, propertyType);
}
} }

View File

@ -1,13 +0,0 @@
package run.halo.app.model.support;
import javax.validation.GroupSequence;
/**
* All check for hibernate validation.
*
* @author johnniang
* @date 19-4-28
*/
@GroupSequence({CreateCheck.class, UpdateCheck.class})
public interface AllCheck {
}

View File

@ -31,9 +31,9 @@ public class AuthenticationArgumentResolver implements HandlerMethodArgumentReso
@Override @Override
public boolean supportsParameter(MethodParameter parameter) { public boolean supportsParameter(MethodParameter parameter) {
Class<?> parameterType = parameter.getParameterType(); Class<?> parameterType = parameter.getParameterType();
return (Authentication.class.isAssignableFrom(parameterType) || return Authentication.class.isAssignableFrom(parameterType)
UserDetail.class.isAssignableFrom(parameterType) || || UserDetail.class.isAssignableFrom(parameterType)
User.class.isAssignableFrom(parameterType)); || User.class.isAssignableFrom(parameterType);
} }
@Override @Override

View File

@ -89,7 +89,6 @@ public interface BaseCommentService<COMMENT extends BaseComment> extends CrudSer
* *
* @param postId post id must not be null * @param postId post id must not be null
* @param pageable page info must not be null * @param pageable page info must not be null
* @param status status must not be null
* @return a page of comment vo * @return a page of comment vo
*/ */
@NonNull @NonNull
@ -153,12 +152,12 @@ public interface BaseCommentService<COMMENT extends BaseComment> extends CrudSer
/** /**
* Creates a comment by comment. * Creates a comment by comment.
* *
* @param COMMENT comment must not be null * @param comment comment must not be null
* @return created comment * @return created comment
*/ */
@NonNull @NonNull
@Override @Override
COMMENT create(@NonNull COMMENT COMMENT); COMMENT create(@NonNull COMMENT comment);
/** /**
* Creates a comment by comment param. * Creates a comment by comment param.

View File

@ -51,7 +51,7 @@ public abstract class BasePostServiceImpl<POST extends BasePost> extends Abstrac
private final OptionService optionService; private final OptionService optionService;
private final Pattern SUMMARY_PATTERN = Pattern.compile("\\s*|\t|\r|\n"); private final Pattern summaryPattern = Pattern.compile("\\s*|\t|\r|\n");
public BasePostServiceImpl(BasePostRepository<POST> basePostRepository, public BasePostServiceImpl(BasePostRepository<POST> basePostRepository,
OptionService optionService) { OptionService optionService) {
@ -468,7 +468,7 @@ public abstract class BasePostServiceImpl<POST extends BasePost> extends Abstrac
String text = HaloUtils.cleanHtmlTag(htmlContent); String text = HaloUtils.cleanHtmlTag(htmlContent);
Matcher matcher = SUMMARY_PATTERN.matcher(text); Matcher matcher = summaryPattern.matcher(text);
text = matcher.replaceAll(""); text = matcher.replaceAll("");
// Get summary length // Get summary length

View File

@ -26,7 +26,7 @@ import java.util.Optional;
@Service @Service
@Slf4j @Slf4j
public class CommentBlackListServiceImpl extends AbstractCrudService<CommentBlackList, Long> implements CommentBlackListService { public class CommentBlackListServiceImpl extends AbstractCrudService<CommentBlackList, Long> implements CommentBlackListService {
private static ZoneId zoneId = ZoneId.of("Asia/Shanghai"); private static final ZoneId ZONE_ID = ZoneId.of("Asia/Shanghai");
private final CommentBlackListRepository commentBlackListRepository; private final CommentBlackListRepository commentBlackListRepository;
private final PostCommentRepository postCommentRepository; private final PostCommentRepository postCommentRepository;
private final OptionService optionService; private final OptionService optionService;
@ -50,10 +50,10 @@ public class CommentBlackListServiceImpl extends AbstractCrudService<CommentBlac
*/ */
Optional<CommentBlackList> blackList = commentBlackListRepository.findByIpAddress(ipAddress); Optional<CommentBlackList> blackList = commentBlackListRepository.findByIpAddress(ipAddress);
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
Date endTime = new Date(now.atZone(zoneId).toInstant().toEpochMilli()); Date endTime = new Date(now.atZone(ZONE_ID).toInstant().toEpochMilli());
Integer banTime = optionService.getByPropertyOrDefault(CommentProperties.COMMENT_BAN_TIME, Integer.class, 10); Integer banTime = optionService.getByPropertyOrDefault(CommentProperties.COMMENT_BAN_TIME, Integer.class, 10);
Date startTime = new Date(now.minusMinutes(banTime) Date startTime = new Date(now.minusMinutes(banTime)
.atZone(zoneId).toInstant().toEpochMilli()); .atZone(ZONE_ID).toInstant().toEpochMilli());
Integer range = optionService.getByPropertyOrDefault(CommentProperties.COMMENT_RANGE, Integer.class, 30); Integer range = optionService.getByPropertyOrDefault(CommentProperties.COMMENT_RANGE, Integer.class, 30);
boolean isPresent = postCommentRepository.countByIpAndTime(ipAddress, startTime, endTime) >= range; boolean isPresent = postCommentRepository.countByIpAndTime(ipAddress, startTime, endTime) >= range;
if (isPresent && blackList.isPresent()) { if (isPresent && blackList.isPresent()) {
@ -79,6 +79,6 @@ public class CommentBlackListServiceImpl extends AbstractCrudService<CommentBlac
} }
private Date getBanTime(LocalDateTime localDateTime, Integer banTime) { private Date getBanTime(LocalDateTime localDateTime, Integer banTime) {
return new Date(localDateTime.plusMinutes(banTime).atZone(zoneId).toInstant().toEpochMilli()); return new Date(localDateTime.plusMinutes(banTime).atZone(ZONE_ID).toInstant().toEpochMilli());
} }
} }

View File

@ -87,8 +87,7 @@ public class PostServiceImpl extends BasePostServiceImpl<Post> implements PostSe
PostCategoryService postCategoryService, PostCategoryService postCategoryService,
PostCommentService postCommentService, PostCommentService postCommentService,
ApplicationEventPublisher eventPublisher, ApplicationEventPublisher eventPublisher,
PostMetaService postMetaService, PostMetaService postMetaService) {
OptionService optionService1) {
super(basePostRepository, optionService); super(basePostRepository, optionService);
this.postRepository = postRepository; this.postRepository = postRepository;
this.tagService = tagService; this.tagService = tagService;
@ -98,7 +97,7 @@ public class PostServiceImpl extends BasePostServiceImpl<Post> implements PostSe
this.postCommentService = postCommentService; this.postCommentService = postCommentService;
this.eventPublisher = eventPublisher; this.eventPublisher = eventPublisher;
this.postMetaService = postMetaService; this.postMetaService = postMetaService;
this.optionService = optionService1; this.optionService = optionService;
} }
@Override @Override
@ -280,7 +279,7 @@ public class PostServiceImpl extends BasePostServiceImpl<Post> implements PostSe
Calendar calendar = DateUtils.convertTo(post.getCreateTime()); Calendar calendar = DateUtils.convertTo(post.getCreateTime());
yearMonthPostMap.computeIfAbsent(calendar.get(Calendar.YEAR), year -> new HashMap<>()) yearMonthPostMap.computeIfAbsent(calendar.get(Calendar.YEAR), year -> new HashMap<>())
.computeIfAbsent((calendar.get(Calendar.MONTH) + 1), .computeIfAbsent(calendar.get(Calendar.MONTH) + 1,
month -> new LinkedList<>()) month -> new LinkedList<>())
.add(post); .add(post);
}); });

View File

@ -1,6 +1,7 @@
package run.halo.app.service.impl; package run.halo.app.service.impl;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.lang.NonNull; import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable; import org.springframework.lang.Nullable;
@ -30,6 +31,7 @@ import java.util.stream.Stream;
* @date 2019-12-06 * @date 2019-12-06
*/ */
@Service @Service
@Slf4j
public class StaticStorageServiceImpl implements StaticStorageService { public class StaticStorageServiceImpl implements StaticStorageService {
private final Path staticDir; private final Path staticDir;
@ -90,7 +92,7 @@ public class StaticStorageServiceImpl implements StaticStorageService {
Assert.notNull(relativePath, "Relative path must not be null"); Assert.notNull(relativePath, "Relative path must not be null");
Path path = Paths.get(staticDir.toString(), relativePath); Path path = Paths.get(staticDir.toString(), relativePath);
System.out.println(path.toString()); log.debug(path.toString());
try { try {
if (path.toFile().isDirectory()) { if (path.toFile().isDirectory()) {

View File

@ -29,7 +29,7 @@ public class ServletUtils {
public static Optional<HttpServletRequest> getCurrentRequest() { public static Optional<HttpServletRequest> getCurrentRequest() {
return Optional.ofNullable(RequestContextHolder.getRequestAttributes()) return Optional.ofNullable(RequestContextHolder.getRequestAttributes())
.filter(requestAttributes -> requestAttributes instanceof ServletRequestAttributes) .filter(requestAttributes -> requestAttributes instanceof ServletRequestAttributes)
.map(requestAttributes -> ((ServletRequestAttributes) requestAttributes)) .map(requestAttributes -> (ServletRequestAttributes) requestAttributes)
.map(ServletRequestAttributes::getRequest); .map(ServletRequestAttributes::getRequest);
} }

View File

@ -30,14 +30,12 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
@AutoConfigureMockMvc @AutoConfigureMockMvc
class DisableOnConditionAspectTest { class DisableOnConditionAspectTest {
static final String REQUEST_URI = "/api/admin/test/disableOnCondition";
@Autowired @Autowired
MockMvc mvc; MockMvc mvc;
@Autowired @Autowired
OptionService optionService; OptionService optionService;
static final String REQUEST_URI = "/api/admin/test/disableOnCondition";
@BeforeEach @BeforeEach
void setUp() { void setUp() {
optionService.saveProperty(PrimaryProperties.IS_INSTALLED, "true"); optionService.saveProperty(PrimaryProperties.IS_INSTALLED, "true");

View File

@ -2,6 +2,7 @@ package run.halo.app.handler.theme;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test; import org.junit.Test;
import run.halo.app.handler.theme.config.support.ThemeProperty; import run.halo.app.handler.theme.config.support.ThemeProperty;
@ -11,6 +12,7 @@ import java.io.IOException;
* @author johnniang * @author johnniang
* @date 4/11/19 * @date 4/11/19
*/ */
@Slf4j
public class YamlThemePropertyResolverTest { public class YamlThemePropertyResolverTest {
private final ObjectMapper yamlMapper = new ObjectMapper(new YAMLFactory()); private final ObjectMapper yamlMapper = new ObjectMapper(new YAMLFactory());
@ -29,6 +31,6 @@ public class YamlThemePropertyResolverTest {
ThemeProperty themeProperty = yamlMapper.readValue(yaml, ThemeProperty.class); ThemeProperty themeProperty = yamlMapper.readValue(yaml, ThemeProperty.class);
System.out.println(themeProperty); log.debug("[{}]", themeProperty);
} }
} }

View File

@ -3,7 +3,6 @@ package run.halo.app.model;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.Test; import org.junit.Test;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import run.halo.app.service.support.HaloMediaType;
import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.*; import static org.junit.Assert.*;

View File

@ -1,9 +1,10 @@
package run.halo.app.model.enums; package run.halo.app.model.enums;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test; import org.junit.Test;
import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.*; import static org.junit.Assert.assertThat;
/** /**
* Data type test. * Data type test.
@ -11,12 +12,13 @@ import static org.junit.Assert.*;
* @author johnniang * @author johnniang
* @date 19-4-21 * @date 19-4-21
*/ */
@Slf4j
public class DataTypeTest { public class DataTypeTest {
@Test @Test
public void typeOf() { public void typeOf() {
DataType type = DataType.typeOf("bool"); DataType type = DataType.typeOf("bool");
System.out.println(type); log.debug("[{}]", type);
assertThat(type, equalTo(DataType.BOOL)); assertThat(type, equalTo(DataType.BOOL));
} }
} }

View File

@ -2,7 +2,6 @@ package run.halo.app.model.params;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.Test; import org.junit.Test;
import run.halo.app.model.support.AllCheck;
import run.halo.app.model.support.CreateCheck; import run.halo.app.model.support.CreateCheck;
import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolation;

View File

@ -1,12 +1,13 @@
package run.halo.app.repository; package run.halo.app.repository;
import run.halo.app.model.entity.Sheet; import lombok.extern.slf4j.Slf4j;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
import run.halo.app.model.entity.Sheet;
import java.util.List; import java.util.List;
@ -19,6 +20,7 @@ import java.util.List;
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@SpringBootTest @SpringBootTest
@ActiveProfiles("test") @ActiveProfiles("test")
@Slf4j
public class SheetRepositoryTest { public class SheetRepositoryTest {
@Autowired @Autowired
@ -27,6 +29,6 @@ public class SheetRepositoryTest {
@Test @Test
public void listAllTest() { public void listAllTest() {
List<Sheet> allSheets = sheetRepository.findAll(); List<Sheet> allSheets = sheetRepository.findAll();
System.out.println(allSheets); log.debug("{}", allSheets);
} }
} }

View File

@ -21,14 +21,12 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
@AutoConfigureMockMvc @AutoConfigureMockMvc
class OneTimeTokenTest { class OneTimeTokenTest {
static final String REQUEST_URI = "/api/admin/counts";
@Autowired @Autowired
MockMvc mvc; MockMvc mvc;
@Autowired @Autowired
OneTimeTokenService oneTimeTokenService; OneTimeTokenService oneTimeTokenService;
static final String REQUEST_URI = "/api/admin/counts";
@Test @Test
void provideNonExistOneTimeTokenTest() throws Exception { void provideNonExistOneTimeTokenTest() throws Exception {
mvc.perform(get(REQUEST_URI + "?ott={ott}", "one-time-token-value")) mvc.perform(get(REQUEST_URI + "?ott={ott}", "one-time-token-value"))

View File

@ -1,5 +1,6 @@
package run.halo.app.service.impl; package run.halo.app.service.impl;
import lombok.extern.slf4j.Slf4j;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@ -12,6 +13,7 @@ import org.springframework.transaction.annotation.Transactional;
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@SpringBootTest @SpringBootTest
@ActiveProfiles("test") @ActiveProfiles("test")
@Slf4j
public class PostServiceImplTest { public class PostServiceImplTest {
private String standardMdContent = "---\n" + private String standardMdContent = "---\n" +
@ -42,7 +44,7 @@ public class PostServiceImplTest {
@Ignore @Ignore
public void getContent() { public void getContent() {
String exportMarkdown = postService.exportMarkdown(18); String exportMarkdown = postService.exportMarkdown(18);
System.out.println(exportMarkdown); log.debug(exportMarkdown);
} }
@Test @Test

View File

@ -1,6 +1,7 @@
package run.halo.app.utils; package run.halo.app.utils;
import cn.hutool.crypto.digest.BCrypt; import cn.hutool.crypto.digest.BCrypt;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test; import org.junit.Test;
/** /**
@ -9,11 +10,12 @@ import org.junit.Test;
* @author johnniang * @author johnniang
* @date 3/28/19 * @date 3/28/19
*/ */
@Slf4j
public class BcryptTest { public class BcryptTest {
@Test @Test
public void cryptTest() { public void cryptTest() {
String cryptPassword = BCrypt.hashpw("opentest", BCrypt.gensalt()); String cryptPassword = BCrypt.hashpw("opentest", BCrypt.gensalt());
System.out.println("Crypt password: " + cryptPassword); log.debug("Crypt password: [{}]", cryptPassword);
} }
} }

View File

@ -3,13 +3,13 @@ package run.halo.app.utils;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import static org.junit.Assert.*; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
/** /**
* BeanUtils test. * BeanUtils test.

View File

@ -1,10 +1,10 @@
package run.halo.app.utils; package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import run.halo.app.exception.ForbiddenException; import run.halo.app.exception.ForbiddenException;
import java.io.IOException;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
@ -14,6 +14,7 @@ import java.nio.file.Paths;
* @author johnniang * @author johnniang
* @date 4/9/19 * @date 4/9/19
*/ */
@Slf4j
public class DirectoryAttackTest { public class DirectoryAttackTest {
private String userHome = System.getProperty("user.home"); private String userHome = System.getProperty("user.home");
@ -25,8 +26,8 @@ public class DirectoryAttackTest {
Path testPath = Paths.get(userHome + "/../../etc/passwd"); Path testPath = Paths.get(userHome + "/../../etc/passwd");
System.out.println("Work directory path: " + workDirPath); log.debug("Work directory path: [{}]", workDirPath);
System.out.println("Test path: " + testPath); log.debug("Test path: [{}]", testPath);
Assert.assertFalse(testPath.startsWith(workDirPath)); Assert.assertFalse(testPath.startsWith(workDirPath));
Assert.assertFalse(workDirPath.startsWith(testPath)); Assert.assertFalse(workDirPath.startsWith(testPath));
@ -38,8 +39,8 @@ public class DirectoryAttackTest {
Path testPath = Paths.get(userHome + "/halo-test/test.txt"); Path testPath = Paths.get(userHome + "/halo-test/test.txt");
System.out.println("Work directory path: " + workDirPath); log.debug("Work directory path: [{}]", workDirPath);
System.out.println("Test path: " + testPath); log.debug("Test path: [{}]", testPath);
Assert.assertTrue(testPath.startsWith(workDirPath)); Assert.assertTrue(testPath.startsWith(workDirPath));
Assert.assertFalse(workDirPath.startsWith(testPath)); Assert.assertFalse(workDirPath.startsWith(testPath));
@ -52,8 +53,8 @@ public class DirectoryAttackTest {
Path testPath = Paths.get("/etc/passwd"); Path testPath = Paths.get("/etc/passwd");
System.out.println("Work directory path: " + workDirPath); log.debug("Work directory path: [{}]", workDirPath);
System.out.println("Test path: " + testPath); log.debug("Test path: [{}]", testPath);
Assert.assertTrue(testPath.startsWith(workDirPath)); Assert.assertTrue(testPath.startsWith(workDirPath));
Assert.assertFalse(workDirPath.startsWith(testPath)); Assert.assertFalse(workDirPath.startsWith(testPath));
@ -64,10 +65,10 @@ public class DirectoryAttackTest {
String pathname = "/home/test/../../etc/"; String pathname = "/home/test/../../etc/";
Path path = Paths.get(pathname); Path path = Paths.get(pathname);
System.out.println("Path: " + path); log.debug("Path: [{}]", path);
System.out.println("Absolute path: " + path.toAbsolutePath()); log.debug("Absolute path: [{}]", path.toAbsolutePath());
System.out.println("Name count: " + path.getNameCount()); log.debug("Name count: [{}]", path.getNameCount());
System.out.println("Normalized path: " + path.normalize()); log.debug("Normalized path: [{}]", path.normalize());
} }
@Test @Test

View File

@ -37,25 +37,25 @@ public class FileUtilsTest {
try (Stream<Path> pathStream = Files.walk(tempDirectory)) { try (Stream<Path> pathStream = Files.walk(tempDirectory)) {
List<Path> walkList = pathStream.collect(Collectors.toList()); List<Path> walkList = pathStream.collect(Collectors.toList());
walkList.forEach(System.out::println); walkList.forEach(path -> log.debug(path.toString()));
Assert.assertThat(walkList.size(), equalTo(4)); Assert.assertThat(walkList.size(), equalTo(4));
} }
try (Stream<Path> pathStream = Files.walk(tempDirectory, 1)) { try (Stream<Path> pathStream = Files.walk(tempDirectory, 1)) {
List<Path> walkList = pathStream.collect(Collectors.toList()); List<Path> walkList = pathStream.collect(Collectors.toList());
walkList.forEach(System.out::println); walkList.forEach(path -> log.debug(path.toString()));
Assert.assertThat(walkList.size(), equalTo(2)); Assert.assertThat(walkList.size(), equalTo(2));
} }
try (Stream<Path> pathStream = Files.list(tempDirectory)) { try (Stream<Path> pathStream = Files.list(tempDirectory)) {
List<Path> walkList = pathStream.collect(Collectors.toList()); List<Path> walkList = pathStream.collect(Collectors.toList());
walkList.forEach(System.out::println); walkList.forEach(path -> log.debug(path.toString()));
Assert.assertThat(walkList.size(), equalTo(1)); Assert.assertThat(walkList.size(), equalTo(1));
} }
try (Stream<Path> pathStream = Files.list(testPath)) { try (Stream<Path> pathStream = Files.list(testPath)) {
List<Path> walkList = pathStream.collect(Collectors.toList()); List<Path> walkList = pathStream.collect(Collectors.toList());
walkList.forEach(System.out::println); walkList.forEach(path -> log.debug(path.toString()));
Assert.assertThat(walkList.size(), equalTo(0)); Assert.assertThat(walkList.size(), equalTo(0));
} }
@ -103,9 +103,9 @@ public class FileUtilsTest {
randomAccessFile.seek(2283640); randomAccessFile.seek(2283640);
byte[] buffer = new byte[1024]; byte[] buffer = new byte[1024];
int count = randomAccessFile.read(buffer, 0, buffer.length); int count = randomAccessFile.read(buffer, 0, buffer.length);
System.out.println("Count: " + count); log.debug("Count: [{}]", count);
String bufString = new String(buffer); String bufString = new String(buffer);
System.out.println("Buffer String: " + bufString); log.debug("Buffer String: [{}]", bufString);
} }
} }
} }

View File

@ -7,14 +7,16 @@ import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.errors.RepositoryNotFoundException; import org.eclipse.jgit.errors.RepositoryNotFoundException;
import org.eclipse.jgit.transport.RemoteConfig; import org.eclipse.jgit.transport.RemoteConfig;
import org.eclipse.jgit.transport.URIish; import org.eclipse.jgit.transport.URIish;
import org.junit.*; import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import java.io.IOException; import java.io.IOException;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* Git test. * Git test.

View File

@ -1,5 +1,6 @@
package run.halo.app.utils; package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
@ -11,7 +12,6 @@ import run.halo.app.exception.BadRequestException;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.Paths;
import java.security.KeyManagementException; import java.security.KeyManagementException;
import java.security.KeyStoreException; import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
@ -25,14 +25,12 @@ import java.util.Map;
* @date 19-5-21 * @date 19-5-21
*/ */
@Ignore @Ignore
@Slf4j
public class GithubTest { public class GithubTest {
private final Path tempPath;
private final static String API_URL = "https://api.github.com/repos/halo-dev/halo-admin/releases/latest"; private final static String API_URL = "https://api.github.com/repos/halo-dev/halo-admin/releases/latest";
private final static String HALO_ADMIN_REGEX = "halo-admin-\\d+\\.\\d+(\\.\\d+)?(-\\S*)?\\.zip"; private final static String HALO_ADMIN_REGEX = "halo-admin-\\d+\\.\\d+(\\.\\d+)?(-\\S*)?\\.zip";
private final Path tempPath;
private final RestTemplate restTemplate; private final RestTemplate restTemplate;
public GithubTest() throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException, IOException { public GithubTest() throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException, IOException {
@ -44,10 +42,10 @@ public class GithubTest {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public void getLatestReleaseTest() throws Throwable { public void getLatestReleaseTest() throws Throwable {
ResponseEntity<Map> responseEntity = restTemplate.getForEntity(API_URL, Map.class); ResponseEntity<Map> responseEntity = restTemplate.getForEntity(API_URL, Map.class);
System.out.println("Response: " + responseEntity); log.debug("Response: " + responseEntity);
Object assetsObject = responseEntity.getBody().get("assets"); Object assetsObject = responseEntity.getBody().get("assets");
System.out.println("Assets class: " + assetsObject.getClass()); log.debug("Assets class: " + assetsObject.getClass());
System.out.println("Assets: " + assetsObject); log.debug("Assets: " + assetsObject);
if (assetsObject instanceof List) { if (assetsObject instanceof List) {
List assets = (List) assetsObject; List assets = (List) assetsObject;
Map assetMap = (Map) assets.stream().filter(aAsset -> { Map assetMap = (Map) assets.stream().filter(aAsset -> {
@ -65,11 +63,11 @@ public class GithubTest {
Object browserDownloadUrl = assetMap.getOrDefault("browser_download_url", ""); Object browserDownloadUrl = assetMap.getOrDefault("browser_download_url", "");
// Download the assets // Download the assets
ResponseEntity<byte[]> downloadResponseEntity = restTemplate.getForEntity(browserDownloadUrl.toString(), byte[].class); ResponseEntity<byte[]> downloadResponseEntity = restTemplate.getForEntity(browserDownloadUrl.toString(), byte[].class);
System.out.println("Download response entity status: " + downloadResponseEntity.getStatusCode()); log.debug("Download response entity status: " + downloadResponseEntity.getStatusCode());
Path downloadedPath = Files.write(tempPath.resolve(name.toString()), downloadResponseEntity.getBody()); Path downloadedPath = Files.write(tempPath.resolve(name.toString()), downloadResponseEntity.getBody());
System.out.println("Downloaded path: " + downloadedPath.toString()); log.debug("Downloaded path: " + downloadedPath.toString());
} }
} }

View File

@ -1,5 +1,6 @@
package run.halo.app.utils; package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test; import org.junit.Test;
import java.net.InetAddress; import java.net.InetAddress;
@ -10,14 +11,15 @@ import java.net.UnknownHostException;
* *
* @author johnniang * @author johnniang
*/ */
@Slf4j
public class InetAddressTest { public class InetAddressTest {
@Test @Test
public void getMachaineAddressTest() throws UnknownHostException { public void getMachaineAddressTest() throws UnknownHostException {
InetAddress localHost = InetAddress.getLocalHost(); InetAddress localHost = InetAddress.getLocalHost();
System.out.println("Localhost: " + localHost.getHostAddress()); log.debug("Localhost: " + localHost.getHostAddress());
InetAddress loopbackAddress = InetAddress.getLoopbackAddress(); InetAddress loopbackAddress = InetAddress.getLoopbackAddress();
System.out.println("Loopback: " + loopbackAddress.getHostAddress()); log.debug("Loopback: " + loopbackAddress.getHostAddress());
} }
} }

View File

@ -19,8 +19,8 @@ public class LocalDateTimeTest {
LocalDateTime dateTime = LocalDateTime.now(); LocalDateTime dateTime = LocalDateTime.now();
log.debug(dateTime.toString()); log.debug(dateTime.toString());
log.debug(dateTime.toLocalDate().toString()); log.debug(dateTime.toLocalDate().toString());
String DATE_FORMATTER = "yyyy-MM-dd-HH-mm-ss-"; String dateFormatter = "yyyy-MM-dd-HH-mm-ss-";
log.debug(dateTime.format(DateTimeFormatter.ofPattern(DATE_FORMATTER))); log.debug(dateTime.format(DateTimeFormatter.ofPattern(dateFormatter)));
} }
} }

View File

@ -1,5 +1,6 @@
package run.halo.app.utils; package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test; import org.junit.Test;
import java.net.URI; import java.net.URI;
@ -14,6 +15,7 @@ import java.nio.file.Paths;
* @author johnniang * @author johnniang
* @date 19-5-20 * @date 19-5-20
*/ */
@Slf4j
public class PathTest { public class PathTest {
@Test(expected = FileSystemNotFoundException.class) @Test(expected = FileSystemNotFoundException.class)
@ -22,6 +24,6 @@ public class PathTest {
URI uri = new URI(file); URI uri = new URI(file);
Path path = Paths.get(uri); Path path = Paths.get(uri);
System.out.println("Path: " + path.toString()); log.debug("Path: " + path.toString());
} }
} }

View File

@ -2,7 +2,6 @@ package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.Test; import org.junit.Test;
import run.halo.app.model.dto.base.InputConverter;
import run.halo.app.model.params.BaseCommentParam; import run.halo.app.model.params.BaseCommentParam;
import run.halo.app.model.params.JournalCommentParam; import run.halo.app.model.params.JournalCommentParam;

View File

@ -1,5 +1,6 @@
package run.halo.app.utils; package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
@ -9,6 +10,7 @@ import static org.hamcrest.Matchers.equalTo;
* @author johnniang * @author johnniang
* @date 3/20/19 * @date 3/20/19
*/ */
@Slf4j
public class SlugUtilsTest { public class SlugUtilsTest {
@Test @Test
@ -29,6 +31,6 @@ public class SlugUtilsTest {
public void nullSlugTest() { public void nullSlugTest() {
String slug = SlugUtils.slug("+/~!@#$%^&*()_+"); String slug = SlugUtils.slug("+/~!@#$%^&*()_+");
System.out.println("slug" + slug); log.debug("slug" + slug);
} }
} }

View File

@ -1,5 +1,6 @@
package run.halo.app.utils; package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test; import org.junit.Test;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@ -10,13 +11,14 @@ import java.util.concurrent.TimeUnit;
* @author johnniang * @author johnniang
* @date 19-4-29 * @date 19-4-29
*/ */
@Slf4j
public class TimeUnitTest { public class TimeUnitTest {
@Test @Test
public void convertTest() { public void convertTest() {
Long millis = TimeUnit.DAYS.toMillis(30); Long millis = TimeUnit.DAYS.toMillis(30);
System.out.println(millis); log.debug("" + millis);
System.out.println(millis.intValue()); log.debug("" + millis.intValue());
} }
} }

View File

@ -1,5 +1,6 @@
package run.halo.app.utils; package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test; import org.junit.Test;
import java.net.URI; import java.net.URI;
@ -11,12 +12,13 @@ import java.net.URISyntaxException;
* @author johnniang * @author johnniang
* @date 3/26/19 * @date 3/26/19
*/ */
@Slf4j
public class URITest { public class URITest {
@Test @Test
public void createURITest() throws URISyntaxException { public void createURITest() throws URISyntaxException {
String homeDir = System.getProperty("user.home"); String homeDir = System.getProperty("user.home");
URI uri = new URI(homeDir); URI uri = new URI(homeDir);
System.out.println(uri); log.debug("[{}]", uri);
} }
} }

View File

@ -1,6 +1,7 @@
package run.halo.app.utils; package run.halo.app.utils;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.util.ResourceUtils; import org.springframework.util.ResourceUtils;
import run.halo.app.handler.migrate.converter.Converter; import run.halo.app.handler.migrate.converter.Converter;
@ -20,25 +21,24 @@ import java.util.List;
* @author guqing * @author guqing
* @date 2020-01-18 14:02 * @date 2020-01-18 14:02
*/ */
@Slf4j
public class XmlMigrateUtilsTest { public class XmlMigrateUtilsTest {
@Test @Test
void testXmlMigrateUtils() throws IOException, URISyntaxException { void testXmlMigrateUtils() throws IOException, URISyntaxException {
JSONObject json = readXml(); JSONObject json = readXml();
System.out.println("WordPress blog json data:" + json); log.debug("WordPress blog json data:" + json);
Rss rss = json.getObject("rss", Rss.class); Rss rss = json.getObject("rss", Rss.class);
// System.out.println(rss);
} }
@Test @Test
void testWordPressConvert() throws IOException, URISyntaxException { void testWordPressConvert() throws IOException, URISyntaxException {
JSONObject json = readXml(); JSONObject json = readXml();
Rss rss = json.getObject("rss", Rss.class); Rss rss = json.getObject("rss", Rss.class);
// System.out.println("WordPress blog rss data:" + rss);
Converter<Rss, List<PostVO>> converter = new WordPressConverter(); Converter<Rss, List<PostVO>> converter = new WordPressConverter();
List<PostVO> postVoList = converter.convertFrom(rss); List<PostVO> postVoList = converter.convertFrom(rss);
System.out.println(postVoList); log.debug("{}", postVoList);
} }
private JSONObject readXml() throws IOException, URISyntaxException { private JSONObject readXml() throws IOException, URISyntaxException {

View File

@ -1,8 +1,8 @@
package run.halo.app.utils; package run.halo.app.utils;
import org.junit.Test; import org.junit.Test;
import run.halo.app.handler.theme.config.support.Group;
import run.halo.app.handler.theme.config.impl.YamlThemeConfigResolverImpl; import run.halo.app.handler.theme.config.impl.YamlThemeConfigResolverImpl;
import run.halo.app.handler.theme.config.support.Group;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;

View File

@ -1,10 +1,9 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" <rss xmlns:excerpt="http://wordpress.org/export/1.2/excerpt/"
xmlns:excerpt="http://wordpress.org/export/1.2/excerpt/"
xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:wp="http://wordpress.org/export/1.2/" xmlns:wp="http://wordpress.org/export/1.2/"
version="2.0"
> >
<channel> <channel>
<title>WordPress Demo</title> <title>WordPress Demo</title>