You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/06/14 18:43:54 UTC
[camel] 03/03: (chores) camel-core-languages: cleanup duplicated code for capturing offsets from a command
This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit c8beee1673454fd82cd3da33372ef58724a5b5b8
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Wed Jun 14 16:31:24 2023 +0200
(chores) camel-core-languages: cleanup duplicated code for capturing offsets from a command
---
.../org/apache/camel/language/csimple/CSimpleHelper.java | 10 +---------
.../camel/language/simple/SimpleExpressionBuilder.java | 11 +++--------
.../java/org/apache/camel/support/LanguageHelper.java | 16 ++++++++++++++++
3 files changed, 20 insertions(+), 17 deletions(-)
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java
index 53bbe807ca0..580fc44bbc1 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java
@@ -284,21 +284,13 @@ public final class CSimpleHelper {
private static Object doDate(Exchange exchange, String commandWithOffsets, String timezone, String pattern) {
final String command = commandWithOffsets.split("[+-]", 2)[0].trim();
- // Capture optional time offsets
- final List<Long> offsets = new ArrayList<>();
- Matcher offsetMatcher = OFFSET_PATTERN.matcher(commandWithOffsets);
- while (offsetMatcher.find()) {
- String time = offsetMatcher.group(2).trim();
- long value = TimeUtils.toMilliSeconds(time);
- offsets.add(offsetMatcher.group(1).equals("+") ? value : -value);
- }
+ final List<Long> offsets = LanguageHelper.captureOffsets(commandWithOffsets, OFFSET_PATTERN);
Date date = evalDate(exchange, command);
return LanguageHelper.applyDateOffsets(date, offsets, pattern, timezone);
}
-
private static Date evalDate(Exchange exchange, String command) {
Date date;
if ("now".equals(command)) {
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java
index c70490b4dfb..9256d35e167 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java
@@ -534,14 +534,7 @@ public final class SimpleExpressionBuilder {
public static Expression dateExpression(final String commandWithOffsets, final String timezone, final String pattern) {
final String command = commandWithOffsets.split("[+-]", 2)[0].trim();
- // Capture optional time offsets
- final List<Long> offsets = new ArrayList<>();
- Matcher offsetMatcher = OFFSET_PATTERN.matcher(commandWithOffsets);
- while (offsetMatcher.find()) {
- String time = offsetMatcher.group(2).trim();
- long value = TimeUtils.toMilliSeconds(time);
- offsets.add(offsetMatcher.group(1).equals("+") ? value : -value);
- }
+ final List<Long> offsets = LanguageHelper.captureOffsets(commandWithOffsets, OFFSET_PATTERN);
return new ExpressionAdapter() {
@Override
@@ -564,6 +557,8 @@ public final class SimpleExpressionBuilder {
};
}
+
+
private static Date evalDate(Exchange exchange, String command) {
Date date;
if ("now".equals(command)) {
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/LanguageHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/LanguageHelper.java
index e36dae30502..bee47158431 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/LanguageHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/LanguageHelper.java
@@ -21,10 +21,13 @@ import java.io.PrintWriter;
import java.io.Serializable;
import java.io.StringWriter;
import java.text.SimpleDateFormat;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
import java.util.function.BiFunction;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
@@ -33,6 +36,7 @@ import org.apache.camel.RuntimeCamelException;
import org.apache.camel.spi.ExchangeFormatter;
import org.apache.camel.support.processor.DefaultExchangeFormatter;
import org.apache.camel.util.IOHelper;
+import org.apache.camel.util.TimeUtils;
public final class LanguageHelper {
private LanguageHelper() {
@@ -289,4 +293,16 @@ public final class LanguageHelper {
return new Date(dateAsLong);
}
}
+
+ public static List<Long> captureOffsets(String commandWithOffsets, Pattern offsetPattern) {
+ // Capture optional time offsets
+ final List<Long> offsets = new ArrayList<>();
+ Matcher offsetMatcher = offsetPattern.matcher(commandWithOffsets);
+ while (offsetMatcher.find()) {
+ String time = offsetMatcher.group(2).trim();
+ long value = TimeUtils.toMilliSeconds(time);
+ offsets.add(offsetMatcher.group(1).equals("+") ? value : -value);
+ }
+ return offsets;
+ }
}