diff --git a/drools/Gitlab安装.md b/drools/Gitlab安装.md deleted file mode 100644 index aafa181..0000000 --- a/drools/Gitlab安装.md +++ /dev/null @@ -1,256 +0,0 @@ -# Gitlab安装 - -完全笔记《安装GitLabel》 :https://www.yuque.com/bunny-6ixda/bgxtva/wtw4x4r8kbvxwgac?singleDoc# - -## Docker安装 - -- docker镜像: - -- https://hub.docker.com/r/gitlab/gitlab-ee/tags?name=17.9.6 -- https://hub.docker.com/r/gitlab/gitlab-runner/tags?name=17.11.0 - -```bash -sudo apt-get remove docker docker-engine docker.io containerd runc -sudo apt update -sudo apt upgrade -sudo apt-get install ca-certificates curl gnupg lsb-release -# 添加Docker官方GPG密钥 -sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - -sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" -# 安装docker -sudo apt-get install docker-ce docker-ce-cli containerd.io -# 默认情况下,只有root用户和docker组的用户才能运行Docker命令。我们可以将当前用户添加到docker组,以避免每次使用Docker时都需要使用sudo,设置完成后退出当前用户之后再进入既可 -sudo usermod -aG docker $USER -# 运行docker -sudo systemctl start docker -# 安装工具 -sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common -# 重启docker -sudo service docker restart -# 重启终端生效 -exit -``` - -配置镜像源 - -```bash -# 创建目录 -sudo mkdir -p /etc/docker -# 写入配置文件 -sudo tee /etc/docker/daemon.json <<-'EOF' -{ - "registry-mirrors": [ - "https://docker-0.unsee.tech", - "https://docker-cf.registry.cyou", - "https://docker.1panel.live" - ] -} -EOF - -# 重启docker服务 -sudo systemctl daemon-reload && sudo systemctl restart docker -``` - -## 环境搭建 - -### 安装JDK21 - -```bash -# 安装JDK21 -wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.deb -sudo dpkg -i jdk-21_linux-x64_bin.deb -java --version -``` - -### Maven 3.8.8安装 - -#### 安装 - -```bash -# 安装maven -wget https://archive.apache.org/dist/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz -sudo mkdir -p /opt/maven -sudo tar -xzf apache-maven-3.8.8-bin.tar.gz -C /opt/maven -sudo mv /opt/maven/apache-maven-3.8.8 /opt/maven/maven-3.8.8 - -# 修改镜像配置 -cd /opt/maven/maven-3.8.8/conf -# 赋予权限修改 -sudo chmod 666 settings.xml - -# 编写配置 -sudo vim /etc/profile - -# 添加以下内容 -# export PATH=$PATH:/opt/maven/maven-3.8.8/bin - -# 刷新配置 -source /etc/profile -mvn -V -``` - -#### maven的镜像 - -```xml - - aliyun - Aliyun Maven Mirror - https://maven.aliyun.com/repository/public - central - -``` - -## 安装Gitlab - -```bash -# Ubuntu -wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/focal/main/g/gitlab-ce/gitlab-ce_18.0.0-ce.0_amd64.deb - -# dpkg -sudo dpkg -i gitlab-ce_18.0.0-ce.0_amd64.deb -``` - -### 编辑配置 - -```bash -# 编辑站点 -sudo vim /etc/gitlab/gitlab.rb -``` - -修改下面内容 - -```bash -external_url 'http://192.168.95.134:3001' -``` - -应用配置 - -```bash -# 应用配置 -sudo gitlab-ctl reconfigure -``` - -### 常用命令 - -```bash -# 服务控制 -sudo gitlab-ctl start -sudo gitlab-ctl status -sudo gitlab-ctl stop - -# 应用配置 -sudo gitlab-ctl reconfigure - -# 重启 -sudo gitlab-ctl restart -``` - -### 查看密码 - -```bash -# 24 小时后自动删除 -sudo cat /etc/gitlab/initial_root_password -``` - -## 安装Gitlab-Runner - -```bash -# 需要 gitlab-runner-helper-images -wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/ubuntu/pool/focal/main/g/gitlab-runner-helper-images/gitlab-runner-helper-images_18.0.1-1_all.deb -sudo dpkg -i gitlab-runner-helper-images_18.0.1-1_all.deb - -# 之后安装 gitlab-runner -wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/ubuntu/pool/focal/main/g/gitlab-runner/gitlab-runner_18.0.1-1_amd64.deb -sudo dpkg -i gitlab-runner_18.0.1-1_amd64.deb -``` - -### 先下载后安装 - -```bash -# Ubuntu -wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/ubuntu/pool/focal/main/g/gitlab-runner-helper-images/gitlab-runner-helper-images_18.0.1-1_all.deb -wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/ubuntu/pool/focal/main/g/gitlab-runner/gitlab-runner_18.0.1-1_amd64.deb - -# dpkg -sudo dpkg -i gitlab-runner-helper-images_18.0.1-1_all.deb -sudo dpkg -i gitlab-runner_18.0.1-1_amd64.deb -``` - -### 配置Gitlab-Runner用户 - -> [!NOTE] -> -> 如果有需要清理缓存:`sudo rm -rf /opt/maven/maven-3.8.8/conf/builds/**`** -> -> gitlab-ce:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/focal/main/g/gitlab-ce/ -> -> gitlab-runner-helper-images:https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/ubuntu/pool/focal/main/g/gitlab-runner-helper-images/ -> -> gitlab-runner:https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/ubuntu/pool/focal/main/g/gitlab-runner/ - -```bash -sudo gitlab-runner uninstall -sudo gitlab-runner install --working-directory /home/gitlab-runner --user root -sudo systemctl restart gitlab-runner -``` - -### 检查 GitLab Runner 配置 - -```bash -sudo vim /etc/gitlab-runner/config.toml -``` - -修改文件 - -```bash -[[runners]] - name = "my-runner" - executor = "shell" - shell = "bash" - user = "gitlab-runner" # 确保用户有权限 - working_directory = "/home/gitlab-runner" -``` - -### 检查 Maven 安装目录权限 - -```bash -sudo chmod 777 -R /opt/maven/maven-3.8.8 -sudo chmod 777 -R /opt/maven/maven-3.8.8/ -sudo chown -R gitlab-runner:gitlab-runner /opt/maven/maven-3.8.8/ -``` - -## CI/CD脚本示例 - -如果构建出现`pending`情况大部分情况下,是文件写错了,要么是`Gitlab-Runner`标签没写对 - -```yml -stages: - - build - - build-docker - - deploy - -variables: - CONTAINER_NAME: "bunny-auth-server" - DOCKER_TAG: "4.0.0" - -build-job: - stage: build - script: - - echo "Compiling the code..." - - mvn clean package -DskipTests - - echo "Compile complete." - - docker pull openjdk:24-ea-17-jdk-oraclelinux9 - - echo "docker pull complete." - - docker build -f Dockerfile -t $CONTAINER_NAME:$DOCKER_TAG . - - echo "Application successfully deployed." - -deploy-job: - stage: deploy - environment: production - script: - - echo "Deploying application..." - - docker stop $CONTAINER_NAME || true - - docker rm $CONTAINER_NAME || true - - docker run -d -p 7070:7070 -p 8000:8000 --name $CONTAINER_NAME --restart always $CONTAINER_NAME:$DOCKER_TAG - - echo "Application successfully deployed." -``` \ No newline at end of file diff --git a/drools/pom.xml b/drools/pom.xml index c06524a..d229838 100644 --- a/drools/pom.xml +++ b/drools/pom.xml @@ -24,6 +24,7 @@ 17 10.0.0 + 4.5.0 @@ -51,6 +52,14 @@ spring-boot-starter-test test + + + com.github.xiaoymin + knife4j-openapi3-jakarta-spring-boot-starter + ${knife4j.version} + + + org.drools drools-ruleunits-engine diff --git a/drools/src/main/java/cn/bunny/drools/DroolsApplication.java b/drools/src/main/java/cn/bunny/drools/DroolsApplication.java index 3813e16..4f0feee 100644 --- a/drools/src/main/java/cn/bunny/drools/DroolsApplication.java +++ b/drools/src/main/java/cn/bunny/drools/DroolsApplication.java @@ -5,9 +5,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DroolsApplication { - public static void main(String[] args) { SpringApplication.run(DroolsApplication.class, args); } - } diff --git a/drools/src/main/java/cn/bunny/drools/bean/exercise/CalculateTax.java b/drools/src/main/java/cn/bunny/drools/bean/exercise/CalculateTax.java new file mode 100644 index 0000000..a321bc4 --- /dev/null +++ b/drools/src/main/java/cn/bunny/drools/bean/exercise/CalculateTax.java @@ -0,0 +1,32 @@ +package cn.bunny.drools.bean.exercise; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class CalculateTax { + + /* 税前工资 */ + private double wage; + + /* 应纳税所得额 */ + private double wagemore; + + /* 税率 */ + private double cess; + + /* 速算扣除数 */ + private double preminus; + + /* 扣税额 */ + private double wageminus; + + /* 税后工资 */ + private double actualwage; + +} diff --git a/drools/src/main/java/cn/bunny/drools/config/DroolsConfiguration.java b/drools/src/main/java/cn/bunny/drools/config/DroolsConfiguration.java index 211159f..03b7d31 100644 --- a/drools/src/main/java/cn/bunny/drools/config/DroolsConfiguration.java +++ b/drools/src/main/java/cn/bunny/drools/config/DroolsConfiguration.java @@ -1,14 +1,28 @@ package cn.bunny.drools.config; +import org.kie.api.KieBase; import org.kie.api.KieServices; import org.kie.api.builder.KieBuilder; import org.kie.api.builder.KieFileSystem; import org.kie.api.builder.KieModule; +import org.kie.api.builder.KieRepository; import org.kie.api.runtime.KieContainer; import org.kie.api.runtime.KieSession; import org.kie.internal.io.ResourceFactory; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.io.Resource; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.core.io.support.ResourcePatternResolver; +import java.io.IOException; + +@Configuration public class DroolsConfiguration { + // 指定规则文件存放的目录 + private static final String RULES_PATH = "rules/exercise/"; + private final KieServices kieServices = KieServices.Factory.get(); /** * 读取单个文件内容 @@ -27,4 +41,36 @@ public class DroolsConfiguration { return container.newKieSession(); } + + @Bean + @ConditionalOnMissingBean + public KieFileSystem kieFileSystem() throws IOException { + System.setProperty("drools.dateformat", "yyyy-MM-dd"); + KieFileSystem kieFileSystem = kieServices.newKieFileSystem(); + ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver(); + Resource[] files = resourcePatternResolver.getResources("classpath*:" + RULES_PATH + "*.*"); + + String path; + for (Resource file : files) { + path = RULES_PATH + file.getFilename(); + kieFileSystem.write(ResourceFactory.newClassPathResource(path, "UTF-8")); + } + return kieFileSystem; + } + + @Bean + @ConditionalOnMissingBean + public KieContainer kieContainer() throws IOException { + KieRepository kieRepository = kieServices.getRepository(); + kieRepository.addKieModule(kieRepository::getDefaultReleaseId); + KieBuilder kieBuilder = kieServices.newKieBuilder(kieFileSystem()); + kieBuilder.buildAll(); + return kieServices.newKieContainer(kieRepository.getDefaultReleaseId()); + } + + @Bean + @ConditionalOnMissingBean + public KieBase kieBase() throws IOException { + return kieContainer().getKieBase(); + } } diff --git a/drools/src/main/java/cn/bunny/drools/controller/CalculateTaxController.java b/drools/src/main/java/cn/bunny/drools/controller/CalculateTaxController.java new file mode 100644 index 0000000..8929ecb --- /dev/null +++ b/drools/src/main/java/cn/bunny/drools/controller/CalculateTaxController.java @@ -0,0 +1,40 @@ +package cn.bunny.drools.controller; + +import cn.bunny.drools.bean.exercise.CalculateTax; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.SneakyThrows; +import org.kie.api.KieBase; +import org.kie.api.KieServices; +import org.kie.api.runtime.KieContainer; +import org.kie.api.runtime.KieSession; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@Tag(name = "计算税额") +@RequestMapping("/api/calculate-tax") +public class CalculateTaxController { + + // @Autowired + // private DroolsConfiguration droolsConfiguration; + + @SneakyThrows + @GetMapping("") + @Operation(summary = "计算税后工资") + public CalculateTax getCalculateTax(double amount) { + // KieBase kieBase = droolsConfiguration.kieBase(); + KieServices kieServices = KieServices.Factory.get(); + KieContainer container = kieServices.getKieClasspathContainer(); + KieBase kieBase = container.getKieBase("ExerciseTax"); + KieSession session = kieBase.newKieSession(); + + CalculateTax calculateTax = CalculateTax.builder().wage(amount).build(); + session.insert(calculateTax); + session.fireAllRules(); + session.dispose(); + session.close(); + return calculateTax; + } +} diff --git a/drools/src/main/java/cn/bunny/drools/controller/IndexController.java b/drools/src/main/java/cn/bunny/drools/controller/IndexController.java new file mode 100644 index 0000000..7cd1255 --- /dev/null +++ b/drools/src/main/java/cn/bunny/drools/controller/IndexController.java @@ -0,0 +1,15 @@ +package cn.bunny.drools.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("") +public class IndexController { + + @GetMapping("") + public String index() { + return "index"; + } +} diff --git a/drools/src/main/resources/META-INF/kmodule.xml b/drools/src/main/resources/META-INF/kmodule.xml index 9d46383..cbe5001 100644 --- a/drools/src/main/resources/META-INF/kmodule.xml +++ b/drools/src/main/resources/META-INF/kmodule.xml @@ -1,13 +1,15 @@ - + + + + - \ No newline at end of file diff --git a/drools/src/main/resources/rules/demo/age-verify.drl b/drools/src/main/resources/rules/demo/age-verify.drl index 4e6a960..fa7fe22 100644 --- a/drools/src/main/resources/rules/demo/age-verify.drl +++ b/drools/src/main/resources/rules/demo/age-verify.drl @@ -1,9 +1,9 @@ -package rules; +package rules.demo; -import cn.bunny.drools.bean.demo2.User; -import cn.bunny.drools.bean.demo2.AccessRequest; -import cn.bunny.drools.bean.demo2.Content; -import cn.bunny.drools.bean.demo2.ContentType; +import cn.bunny.drools.bean.demo.demo2.User; +import cn.bunny.drools.bean.demo.demo2.AccessRequest; +import cn.bunny.drools.bean.demo.demo2.Content; +import cn.bunny.drools.bean.demo.demo2.ContentType; /** 场景:年龄限制内容访问控制 diff --git a/drools/src/main/resources/rules/demo/book-discount.drl b/drools/src/main/resources/rules/demo/book-discount.drl index d345b90..71faed9 100644 --- a/drools/src/main/resources/rules/demo/book-discount.drl +++ b/drools/src/main/resources/rules/demo/book-discount.drl @@ -1,4 +1,4 @@ -package rules; +package rules.demo; import cn.bunny.drools.bean.demo.BookDisCount /* diff --git a/drools/src/main/resources/rules/demo/credit-card-approval.drl b/drools/src/main/resources/rules/demo/credit-card-approval.drl index b7a28a6..38eaa65 100644 --- a/drools/src/main/resources/rules/demo/credit-card-approval.drl +++ b/drools/src/main/resources/rules/demo/credit-card-approval.drl @@ -1,7 +1,7 @@ -package rules; +package rules.demo; -import cn.bunny.drools.bean.demo3.ApprovalDecision -import cn.bunny.drools.bean.demo3.CreditCardApplication +import cn.bunny.drools.bean.demo.demo3.ApprovalDecision +import cn.bunny.drools.bean.demo.demo3.CreditCardApplication import cn.bunny.drools.bean.demo.demo3.ApprovalDecision; /** diff --git a/drools/src/main/resources/rules/demo/order.drl b/drools/src/main/resources/rules/demo/order.drl index 2f95f95..dd83c27 100644 --- a/drools/src/main/resources/rules/demo/order.drl +++ b/drools/src/main/resources/rules/demo/order.drl @@ -1,6 +1,6 @@ -package rules; +package rules.demo; -import cn.bunny.drools.bean.demo1.Order; +import cn.bunny.drools.bean.demo.demo1.Order; /** * 当订单金额超过100元时,给予5%折扣 diff --git a/drools/src/main/resources/rules/exercise/tax/exercise-calculate-tax.drl b/drools/src/main/resources/rules/exercise/tax/exercise-calculate-tax.drl new file mode 100644 index 0000000..3472a59 --- /dev/null +++ b/drools/src/main/resources/rules/exercise/tax/exercise-calculate-tax.drl @@ -0,0 +1,133 @@ +package rules.exercise.tax; +import cn.bunny.drools.bean.exercise.CalculateTax + +rule "个人所得税:计算应纳税所得额 应纳税所得额为税前工资减去3500" + // 需要优先执行 + salience 100 + // 设置生效日期 + date-effective "2011-09-01" + // 防止循环 + no-loop true + activation-group "exercise-calculate-tax" + + when + $cal:CalculateTax(wage > 0) + then + // 计算应纳税所得额 + double wageMore = $cal.getWage() - 3500; + $cal.setWagemore(wageMore); + // 更新规则,之后重新计算 + update($cal); +end + +rule "个人所得税:设置税率-->>应纳税所得额 <= 1500 税率为0.03,速算扣除数为0" + salience 90 + no-loop true + activation-group "exercise-calculate-tax" + + when + $cal:CalculateTax(wagemore <= 1500) + then + $cal.setCess(0.03); + $cal.setPreminus(0); + update($cal); +end + +rule "设置税率,应纳税所得额在 1500 ~ 4500 之间 税率为0.1,速算扣除数为105" + salience 90 + no-loop true + activation-group "exercise-calculate-tax" + + when + $cal:CalculateTax(wagemore > 1500 && wagemore <= 4000) + then + $cal.setCess(0.1); + $cal.setPreminus(105); + update($cal); +end + +rule "设置税率,应纳税所得额在 4500 ~ 9000 之间 税率为0.2,速算扣除数为555" + salience 90 + no-loop true + activation-group "exercise-calculate-tax" + + when + $cal:CalculateTax(wagemore > 4500 && wagemore <= 9000) + then + $cal.setCess(0.2); + $cal.setPreminus(555); + update($cal); +end + +rule "设置税率,应纳税所得额在 9000 ~ 35000 之间 税率为0.25,速算扣除数为1005" + salience 90 + no-loop true + activation-group "exercise-calculate-tax" + + when + $cal:CalculateTax(wagemore > 9000 && wagemore <= 35000) + then + $cal.setCess(0.25); + $cal.setPreminus(1005); + update($cal); +end + +rule "设置税率,应纳税所得额在 35000 ~ 55000 之间 税率为0.3,速算扣除数为2755" + salience 90 + no-loop true + activation-group "exercise-calculate-tax" + + when + $cal:CalculateTax(wagemore > 35000 && wagemore <= 55000) + then + $cal.setCess(0.3); + $cal.setPreminus(2755); + update($cal); +end + +rule "设置税率,应纳税所得额在 55000 ~ 80000 之间 税率为0.35,速算扣除数为5505" + salience 90 + no-loop true + activation-group "exercise-calculate-tax" + + when + $cal:CalculateTax(wagemore > 55000 && wagemore < 80000) + then + $cal.setCess(0.35); + $cal.setPreminus(5505); + update($cal); +end + +rule "设置税率,应纳税所得额在80000以上 税率为0.45,速算扣除数为13505" + salience 90 + no-loop true + activation-group "exercise-calculate-tax" + + when + $cal:CalculateTax(wagemore > 80000) + then + $cal.setCess(0.45); + $cal.setPreminus(13505); + update($cal); +end + +rule "计算税后工资" + salience 1 + when + $cal:CalculateTax(wage > 0 && wagemore > 0 && cess > 0) + then + // 扣税额=应纳税所得额*税率-速算扣除数 + double wageMore = ($cal.getWagemore() * $cal.getCess()) - $cal.getPreminus(); + $cal.setWagemore(wageMore); + + // 税后工资=税前工资-扣税额 + double actualWage = $cal.getWage() - wageMore; + $cal.setActualwage(actualWage); + + System.out.println("-----税前工资:"+$cal.getWage()); + System.out.println("-----应纳税所得额:"+$cal.getWagemore()); + System.out.println("-----税率:" + $cal.getCess()); + System.out.println("-----速算扣除数:" + $cal.getPreminus()); + System.out.println("-----扣税额:" + $cal.getWageminus()); + System.out.println("-----税后工资:" + $cal.getActualwage()); +end diff --git a/drools/src/main/resources/templates/index.html b/drools/src/main/resources/templates/index.html new file mode 100644 index 0000000..987fb5a --- /dev/null +++ b/drools/src/main/resources/templates/index.html @@ -0,0 +1,10 @@ + + + + + Drools学习教程 + + +

Drools学习教程

+ + \ No newline at end of file diff --git a/drools/src/test/java/cn/bunny/drools/demo/_01OrderTest.java b/drools/src/test/java/cn/bunny/drools/demo/_01OrderTest.java index 6d8e198..dc13229 100644 --- a/drools/src/test/java/cn/bunny/drools/demo/_01OrderTest.java +++ b/drools/src/test/java/cn/bunny/drools/demo/_01OrderTest.java @@ -8,7 +8,7 @@ import java.math.BigDecimal; class _01OrderTest { public static void main(String[] args) { - try (KieSession kieSession = DroolsConfiguration.createKieSession("order.drl")) { + try (KieSession kieSession = DroolsConfiguration.createKieSession("demo/order.drl")) { Order order = new Order(); order.setAmount(new BigDecimal(99)); diff --git a/drools/src/test/java/cn/bunny/drools/demo/_02AgeVerifyTest.java b/drools/src/test/java/cn/bunny/drools/demo/_02AgeVerifyTest.java index 4a7244c..34ce810 100644 --- a/drools/src/test/java/cn/bunny/drools/demo/_02AgeVerifyTest.java +++ b/drools/src/test/java/cn/bunny/drools/demo/_02AgeVerifyTest.java @@ -14,7 +14,7 @@ public class _02AgeVerifyTest { // 默认允许 request.setGranted(true); - try (KieSession kieSession = DroolsConfiguration.createKieSession("age-verify.drl")) { + try (KieSession kieSession = DroolsConfiguration.createKieSession("demo/age-verify.drl")) { kieSession.insert(request); kieSession.insert(adult); diff --git a/drools/src/test/java/cn/bunny/drools/demo/_03CreditCardApplicationTest.java b/drools/src/test/java/cn/bunny/drools/demo/_03CreditCardApplicationTest.java index 0d8711e..4fb8f78 100644 --- a/drools/src/test/java/cn/bunny/drools/demo/_03CreditCardApplicationTest.java +++ b/drools/src/test/java/cn/bunny/drools/demo/_03CreditCardApplicationTest.java @@ -63,7 +63,7 @@ public class _03CreditCardApplicationTest { } public static CreditCardApplication processApplication(CreditCardApplication application) { - try (KieSession kieSession = DroolsConfiguration.createKieSession("credit-card-approval.drl")) { + try (KieSession kieSession = DroolsConfiguration.createKieSession("demo/credit-card-approval.drl")) { kieSession.insert(application); kieSession.fireAllRules(); return application; diff --git a/drools/src/test/java/cn/bunny/drools/exercise/Exercise01ComparisonOperationTest.java b/drools/src/test/java/cn/bunny/drools/exercise/Exercise01ComparisonOperationTest.java index dbee2de..3819258 100644 --- a/drools/src/test/java/cn/bunny/drools/exercise/Exercise01ComparisonOperationTest.java +++ b/drools/src/test/java/cn/bunny/drools/exercise/Exercise01ComparisonOperationTest.java @@ -17,6 +17,7 @@ public class Exercise01ComparisonOperationTest { /* contains */ @Test void test1() { + System.setProperty("drools.dateformat", "yyyy-MM-dd"); KieServices kieServices = KieServices.Factory.get(); KieContainer container = kieServices.getKieClasspathContainer(); KieBase kieBase = container.getKieBase("Exercise"); @@ -36,6 +37,7 @@ public class Exercise01ComparisonOperationTest { /* not contains */ @Test void test2() { + System.setProperty("drools.dateformat", "yyyy-MM-dd"); KieServices kieServices = KieServices.Factory.get(); KieContainer container = kieServices.getKieClasspathContainer(); KieBase kieBase = container.getKieBase("Exercise"); @@ -55,6 +57,8 @@ public class Exercise01ComparisonOperationTest { /* memberOf */ @Test void test3() { + System.setProperty("drools.dateformat", "yyyy-MM-dd"); + KieServices kieServices = KieServices.Factory.get(); KieContainer container = kieServices.getKieClasspathContainer(); KieBase kieBase = container.getKieBase("Exercise"); @@ -74,6 +78,7 @@ public class Exercise01ComparisonOperationTest { /* matches & not matches */ @Test void test4() { + System.setProperty("drools.dateformat", "yyyy-MM-dd"); KieServices kieServices = KieServices.Factory.get(); KieContainer container = kieServices.getKieClasspathContainer(); KieBase kieBase = container.getKieBase("Exercise"); @@ -93,6 +98,7 @@ public class Exercise01ComparisonOperationTest { /* 指定规则后缀进行匹配 */ @Test void test5() { + System.setProperty("drools.dateformat", "yyyy-MM-dd"); KieServices kieServices = KieServices.Factory.get(); KieContainer container = kieServices.getKieClasspathContainer(); KieBase kieBase = container.getKieBase("Exercise"); @@ -112,6 +118,7 @@ public class Exercise01ComparisonOperationTest { /* 以什么前缀匹配 */ @Test void test6() { + System.setProperty("drools.dateformat", "yyyy-MM-dd"); KieServices kieServices = KieServices.Factory.get(); KieContainer container = kieServices.getKieClasspathContainer(); KieBase kieBase = container.getKieBase("Exercise"); @@ -130,6 +137,7 @@ public class Exercise01ComparisonOperationTest { /* 以正则匹配regexp */ @Test void test7() { + System.setProperty("drools.dateformat", "yyyy-MM-dd"); KieServices kieServices = KieServices.Factory.get(); KieContainer container = kieServices.getKieClasspathContainer(); KieBase kieBase = container.getKieBase("Exercise"); diff --git a/drools/push.sh b/push.sh similarity index 100% rename from drools/push.sh rename to push.sh