This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit 92e65a220f0fe1a5faaf0bdc649b9fbcf6d2f88c Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Mon Mar 16 07:05:53 2020 +0100 CAMEL-14575: camel-core - TypeConverter from String to Long - drop time pattern --- .../org/apache/camel/component/mail/MailComponent.java | 4 ++-- .../org/apache/camel/component/mail/MailConverters.java | 15 ++++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java index 3a72a9a..7494529 100644 --- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java +++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java @@ -76,7 +76,7 @@ public class MailComponent extends HeaderFilterStrategyComponent implements SSLC SearchTerm st; if (searchTerm instanceof SimpleSearchTerm) { // okay its a SimpleSearchTerm then lets convert that to SearchTerm - st = MailConverters.toSearchTerm((SimpleSearchTerm) searchTerm, getCamelContext().getTypeConverter()); + st = MailConverters.toSearchTerm((SimpleSearchTerm) searchTerm); } else { st = getCamelContext().getTypeConverter().mandatoryConvertTo(SearchTerm.class, searchTerm); } @@ -104,7 +104,7 @@ public class MailComponent extends HeaderFilterStrategyComponent implements SSLC // use SimpleSearchTerm as POJO to store the configuration and then convert that to the actual SearchTerm SimpleSearchTerm sst = new SimpleSearchTerm(); setProperties(sst, sstParams); - SearchTerm st = MailConverters.toSearchTerm(sst, getCamelContext().getTypeConverter()); + SearchTerm st = MailConverters.toSearchTerm(sst); endpoint.setSearchTerm(st); } diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConverters.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConverters.java index cab140e..ad17f51 100644 --- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConverters.java +++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConverters.java @@ -40,6 +40,7 @@ import org.apache.camel.NoTypeConversionAvailableException; import org.apache.camel.TypeConverter; import org.apache.camel.spi.TypeConverterRegistry; import org.apache.camel.support.ExchangeHelper; +import org.apache.camel.util.TimeUtils; /** * JavaMail specific converters. @@ -143,7 +144,7 @@ public final class MailConverters { * * This should not be a @Converter method */ - public static SearchTerm toSearchTerm(SimpleSearchTerm simple, TypeConverter typeConverter) throws ParseException, NoTypeConversionAvailableException { + public static SearchTerm toSearchTerm(SimpleSearchTerm simple) throws ParseException { SearchTermBuilder builder = new SearchTermBuilder(); if (simple.isUnseen()) { builder = builder.unseen(); @@ -170,7 +171,7 @@ public final class MailConverters { if (simple.getFromSentDate() != null) { String s = simple.getFromSentDate(); if (s.startsWith("now")) { - long offset = extractOffset(s, typeConverter); + long offset = extractOffset(s); builder = builder.and(new NowSearchTerm(SearchTermBuilder.Comparison.GE.asNum(), true, offset)); } else { SimpleDateFormat sdf = new SimpleDateFormat(NOW_DATE_FORMAT); @@ -181,7 +182,7 @@ public final class MailConverters { if (simple.getToSentDate() != null) { String s = simple.getToSentDate(); if (s.startsWith("now")) { - long offset = extractOffset(s, typeConverter); + long offset = extractOffset(s); builder = builder.and(new NowSearchTerm(SearchTermBuilder.Comparison.LE.asNum(), true, offset)); } else { SimpleDateFormat sdf = new SimpleDateFormat(NOW_DATE_FORMAT); @@ -192,7 +193,7 @@ public final class MailConverters { if (simple.getFromReceivedDate() != null) { String s = simple.getFromReceivedDate(); if (s.startsWith("now")) { - long offset = extractOffset(s, typeConverter); + long offset = extractOffset(s); builder = builder.and(new NowSearchTerm(SearchTermBuilder.Comparison.GE.asNum(), false, offset)); } else { SimpleDateFormat sdf = new SimpleDateFormat(NOW_DATE_FORMAT); @@ -203,7 +204,7 @@ public final class MailConverters { if (simple.getToReceivedDate() != null) { String s = simple.getToReceivedDate(); if (s.startsWith("now")) { - long offset = extractOffset(s, typeConverter); + long offset = extractOffset(s); builder = builder.and(new NowSearchTerm(SearchTermBuilder.Comparison.LE.asNum(), false, offset)); } else { SimpleDateFormat sdf = new SimpleDateFormat(NOW_DATE_FORMAT); @@ -253,7 +254,7 @@ public final class MailConverters { } } - private static long extractOffset(String now, TypeConverter typeConverter) throws NoTypeConversionAvailableException { + private static long extractOffset(String now) { Matcher matcher = NOW_PATTERN.matcher(now); if (matcher.matches()) { String op = matcher.group(1); @@ -261,7 +262,7 @@ public final class MailConverters { // convert remainder to a time millis (eg we have a String -> long converter that supports // syntax with hours, days, minutes: eg 5h30m for 5 hours and 30 minutes). - long offset = typeConverter.mandatoryConvertTo(long.class, remainder); + long offset = TimeUtils.toMilliSeconds(remainder); if ("+".equals(op)) { return offset;