Skip to content

Commit

Permalink
refine fluent builtin and add some test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
qdriven committed Aug 20, 2024
1 parent d8bdf0a commit a863cbc
Show file tree
Hide file tree
Showing 54 changed files with 529 additions and 277 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

import java.lang.annotation.*;

/***
* Not Thread Safe Notification
*/
@Documented
@Inherited
@Target({ElementType.TYPE, ElementType.METHOD})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
* Bug Notification
*/
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface WithBug {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,56 +4,61 @@
import cn.hutool.setting.Setting;
import io.fluent.builtin.StringUtils;
import io.fluent.builtin.meta.ReflectionUtils;

import java.util.HashMap;

/**
* Application Configuration
*/
public class AppConfig {
Setting setting;

private AppConfig() {}

private static final String DEFAULT_SETTING_PATH = "config/app.setting";

public static AppConfig create() {
return create(DEFAULT_SETTING_PATH);
}

/**
* Create Setting by setting Paths
*
* @param settingPath
* @return
*/
public static AppConfig create(String settingPath) {
AppConfig config = new AppConfig();
config.setting = new Setting(settingPath);
config.setting.autoLoad(true);
return config;
}

public void addSystemProperties() {
setting.putAll(PropUtils.getSystemProps().toBean(HashMap.class));
}

public Setting getSetting() {
return setting;
}

public Setting getConfigSetByGroupName(String groupName) {
return this.setting.getSetting(groupName);
}

public <T> T getConfigSetBean(String groupName, Class<T> beanType) {
var groupSetting = getConfigSetByGroupName(groupName);
return BeanUtil.toBean(groupSetting, beanType);
}

public <T> T getConfigSetBean(Class<T> beanType) {
ConfigGroupName groupName =
ReflectionUtils.getClassLevelAnnotation(beanType, ConfigGroupName.class);
if (groupName != null && StringUtils.isBlank(groupName.name())) {
throw new AppConfigException(beanType.getName() + "is not annotated by ConfigGroupName");
}
var groupSetting = getConfigSetByGroupName(groupName.name());
return BeanUtil.toBean(groupSetting, beanType);
}
Setting setting;

private AppConfig() {
}

private static final String DEFAULT_SETTING_PATH = "config/app.setting";

public static AppConfig create() {
return create(DEFAULT_SETTING_PATH);
}

/**
* Create Setting by setting Paths
*
* @param settingPath
* @return
*/
public static AppConfig create(String settingPath) {
AppConfig config = new AppConfig();
config.setting = new Setting(settingPath);
config.setting.autoLoad(true);
return config;
}

public void addSystemProperties() {
setting.putAll(PropUtils.getSystemProps().toBean(HashMap.class));
}

public Setting getSetting() {
return setting;
}

public Setting getConfigSetByGroupName(String groupName) {
return this.setting.getSetting(groupName);
}

public <T> T getConfigSetBean(String groupName, Class<T> beanType) {
var groupSetting = getConfigSetByGroupName(groupName);
return BeanUtil.toBean(groupSetting, beanType);
}

public <T> T getConfigSetBean(Class<T> beanType) {
ConfigGroupName groupName =
ReflectionUtils.getClassLevelAnnotation(beanType, ConfigGroupName.class);
if (groupName != null && StringUtils.isBlank(groupName.name())) {
throw new AppConfigException(beanType.getName() + "is not annotated by ConfigGroupName");
}
var groupSetting = getConfigSetByGroupName(groupName.name());
return BeanUtil.toBean(groupSetting, beanType);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

import java.lang.annotation.*;

/**
* configuration group tag
*/
@Documented
@Inherited
@Target({ElementType.TYPE, ElementType.METHOD})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

import io.github.cdimascio.dotenv.Dotenv;

/**
* For .env configuration
*/
public class DotEnvConfig {

static Dotenv dotenv = Dotenv.load();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.fluent.builtin.constant;
package io.fluent.builtin.constants;

/** 编码常量 */
public final class CharsetConst {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.fluent.builtin.constant;
package io.fluent.builtin.constants;

/** 标点符号常量 */
public final class PunctuationConst {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.fluent.builtin.constant;
package io.fluent.builtin.constants;

public interface RegexpConstant {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.fluent.builtin.constant;
package io.fluent.builtin.constants;

/**
* 系统常量
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* gen-comment-plugin All rights reserved.
*/

package io.fluent.builtin.constant.enums;
package io.fluent.builtin.constants.enums;

/** 翻译语言枚举 */
public enum LangEnum {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.fluent.builtin.constant.enums;
package io.fluent.builtin.constants.enums;

/** 代理类型枚举 */
public enum ProxyTypeEnum {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.fluent.builtin.constant.file;
package io.fluent.builtin.constants.file;

/** 文件操作常量 可以结合 {@link java.io.RandomAccessFile} 随机访问文件使用 */
public final class FileOptionConst {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.fluent.builtin.constant.file;
package io.fluent.builtin.constants.file;

/** 文件协议常量 */
public final class FileProtocolConst {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.fluent.builtin.constant.file;
package io.fluent.builtin.constants.file;
/** 文件类型常量 */
public final class FileTypeConst {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.fluent.builtin.constant.file;
package io.fluent.builtin.constants.file;

public interface ImageTypeConstant {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

/**
* 只包装了 错误信息 的 {@link RuntimeException}.
* 用于 {@link com.sprainkle.spring.cloud.advance.common.core.exception.assertion.Assert} 中用于包装自定义异常信息
*
*/
Expand Down
Loading

0 comments on commit a863cbc

Please sign in to comment.