From 9aa1898c74ef285b4184004052a3442095254b7c Mon Sep 17 00:00:00 2001 From: jaysunxiao Date: Sat, 11 Dec 2021 10:25:51 +0800 Subject: [PATCH] =?UTF-8?q?doc[zfoo]:=20=E6=9B=B4=E6=96=B0=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- boot/pom.xml | 12 +++++++ .../java/com/zfoo/protocol/util/DomUtils.java | 35 ++++++++++++++++--- .../com/zfoo/scheduler/util/TimeUtils.java | 6 ++++ 3 files changed, 49 insertions(+), 4 deletions(-) diff --git a/boot/pom.xml b/boot/pom.xml index 9e4a95d5..73164f31 100644 --- a/boot/pom.xml +++ b/boot/pom.xml @@ -142,6 +142,18 @@ ${zfoo.storage.version} + + com.zfoo + hotswap + ${zfoo.hotswap.version} + + + + com.zfoo + monitor + ${zfoo.monitor.version} + + org.slf4j diff --git a/protocol/src/main/java/com/zfoo/protocol/util/DomUtils.java b/protocol/src/main/java/com/zfoo/protocol/util/DomUtils.java index 2d58bdcc..ff04eac8 100644 --- a/protocol/src/main/java/com/zfoo/protocol/util/DomUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/util/DomUtils.java @@ -15,6 +15,7 @@ package com.zfoo.protocol.util; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.dataformat.xml.XmlMapper; +import com.zfoo.protocol.collection.CollectionUtils; import com.zfoo.protocol.exception.RunException; import org.w3c.dom.Element; import org.w3c.dom.Node; @@ -24,10 +25,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; +import java.util.*; /** * DOM(Document Object Model)文档对象模型 @@ -71,6 +69,35 @@ public abstract class DomUtils { } } + + /** + * 获取包含有指定属性的Element + */ + public static List getElementsByAttribute(Element element, String attribute, String attributeValue) { + var elements = new ArrayList(); + + var queue = new LinkedList(); + queue.add(element); + while (!queue.isEmpty()) { + var ele = queue.poll(); + + var eleClassName = ele.getAttribute(attribute); + if (StringUtils.isNotEmpty(eleClassName) && eleClassName.equalsIgnoreCase(attributeValue)) { + elements.add(ele); + continue; + } + + var eles = DomUtils.getChildElements(ele); + if (CollectionUtils.isNotEmpty(eles)) { + for (var e : eles) { + queue.offer(e); + } + } + } + + return elements; + } + /** * 只返回第一层的孩子节点,不返回第一层孩子节点的孩子节点 *

diff --git a/scheduler/src/main/java/com/zfoo/scheduler/util/TimeUtils.java b/scheduler/src/main/java/com/zfoo/scheduler/util/TimeUtils.java index 03254f21..76ca47b4 100644 --- a/scheduler/src/main/java/com/zfoo/scheduler/util/TimeUtils.java +++ b/scheduler/src/main/java/com/zfoo/scheduler/util/TimeUtils.java @@ -357,6 +357,12 @@ public abstract class TimeUtils { return LocalDateTime.ofInstant(instant, zone); } + // --------------------------------------时间大小判断-------------------------------------- + public static boolean timeBetween(long time, long from, long end) { + return from <= time && time <= end; + } + + // --------------------------------------cron表达式-------------------------------------- public static long nextTimestampByCronExpression(CronExpression expression, long currentTimestamp) { var zonedDateTime = ZonedDateTime.ofInstant(Instant.ofEpochMilli(currentTimestamp), DEFAULT_ZONE_ID);