You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2021/08/13 04:57:28 UTC
[james-project] branch master updated: [REFACTORING] Remove more
REGEX usages (#587)
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
The following commit(s) were added to refs/heads/master by this push:
new e92fe78 [REFACTORING] Remove more REGEX usages (#587)
e92fe78 is described below
commit e92fe7807ec94942ea690deaa77ef8e21eaf4955
Author: Tellier Benoit <bt...@linagora.com>
AuthorDate: Fri Aug 13 11:57:23 2021 +0700
[REFACTORING] Remove more REGEX usages (#587)
---
.../james/protocols/pop3/core/AbstractApopCmdHandler.java | 3 ++-
.../java/org/apache/james/protocols/smtp/SMTPResponse.java | 5 +++--
.../apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java | 2 --
.../apache/james/utils/DelegatedPropertiesConfiguration.java | 6 +++---
.../main/java/org/apache/james/utils/PropertiesProvider.java | 3 +--
.../apache/james/mock/smtp/server/ExtendedMailFromCommand.java | 7 ++++++-
.../org/apache/james/jmap/draft/model/CreationMessage.java | 10 ++++++++--
.../scala/org/apache/james/jmap/routes/DownloadRoutes.scala | 2 +-
.../scala/org/apache/james/jmap/routes/EventSourceRoutes.scala | 2 +-
.../protocols/lib/netty/AbstractConfigurableAsyncServer.java | 5 +++--
10 files changed, 28 insertions(+), 17 deletions(-)
diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractApopCmdHandler.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractApopCmdHandler.java
index 06af37e..60d0cff 100644
--- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractApopCmdHandler.java
+++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractApopCmdHandler.java
@@ -23,6 +23,7 @@ import java.util.Collection;
import javax.inject.Inject;
+import org.apache.commons.lang3.StringUtils;
import org.apache.james.core.Username;
import org.apache.james.metrics.api.MetricFactory;
import org.apache.james.protocols.api.ProtocolSession.State;
@@ -58,7 +59,7 @@ public abstract class AbstractApopCmdHandler extends AbstractPassCmdHandler {
String[] parts = null;
boolean syntaxError = false;
if (parameters != null) {
- parts = parameters.split(" ");
+ parts = StringUtils.split(parameters, " ");
if (parts.length != 2) {
syntaxError = true;
}
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java
index 8c5f2b2..9c8eeec 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java
@@ -22,6 +22,7 @@ package org.apache.james.protocols.smtp;
import java.util.ArrayList;
import java.util.List;
+import org.apache.commons.lang3.StringUtils;
import org.apache.james.protocols.api.AbstractResponse;
/**
@@ -56,7 +57,7 @@ public class SMTPResponse extends AbstractResponse {
private static String extractCode(String raw) {
- String[] args = raw.split(" ");
+ String[] args = StringUtils.split(raw, " ");
if (args != null && args.length > 1) {
return args[0];
@@ -66,7 +67,7 @@ public class SMTPResponse extends AbstractResponse {
}
private static String extractResponse(String raw) {
- String[] args = raw.split(" ");
+ String[] args = StringUtils.split(raw, " ");
if (args != null && args.length > 1) {
return args[2];
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
index 110c361..a56f3e1 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
@@ -32,7 +32,6 @@ import java.util.List;
import java.util.Locale;
import java.util.Optional;
import java.util.StringTokenizer;
-import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
import org.apache.james.core.Username;
@@ -82,7 +81,6 @@ public class AuthCmdHandler
private static final Response AUTH_READY_PASSWORD_LOGIN = new SMTPResponse(SMTPRetCode.AUTH_READY, "UGFzc3dvcmQ6").immutable(); // base64 encoded "Password:
private static final Response AUTH_FAILED = new SMTPResponse(SMTPRetCode.AUTH_FAILED, "Authentication Failed").immutable();
private static final Response UNKNOWN_AUTH_TYPE = new SMTPResponse(SMTPRetCode.PARAMETER_NOT_IMPLEMENTED, "Unrecognized Authentication Type").immutable();
- public static final Pattern LINE_BREAK_PATTERN = Pattern.compile("\r\n");
private abstract static class AbstractSMTPLineHandler implements LineHandler<SMTPSession> {
diff --git a/server/container/guice/configuration/src/main/java/org/apache/james/utils/DelegatedPropertiesConfiguration.java b/server/container/guice/configuration/src/main/java/org/apache/james/utils/DelegatedPropertiesConfiguration.java
index d188cf1..c9a7f4d 100644
--- a/server/container/guice/configuration/src/main/java/org/apache/james/utils/DelegatedPropertiesConfiguration.java
+++ b/server/container/guice/configuration/src/main/java/org/apache/james/utils/DelegatedPropertiesConfiguration.java
@@ -44,10 +44,10 @@ import com.google.common.collect.ImmutableList;
public class DelegatedPropertiesConfiguration implements Configuration {
- private final String delimiter;
+ private final char delimiter;
private final Configuration configuration;
- DelegatedPropertiesConfiguration(String delimiter, Configuration configuration) {
+ DelegatedPropertiesConfiguration(char delimiter, Configuration configuration) {
this.delimiter = delimiter;
this.configuration = configuration;
}
@@ -378,7 +378,7 @@ public class DelegatedPropertiesConfiguration implements Configuration {
return Optional.ofNullable(value)
.filter(s -> !StringUtils.isAllBlank(s))
.map(notNullValue -> Stream
- .of(StringUtils.strip(notNullValue, "\"").split(delimiter))
+ .of(StringUtils.split(StringUtils.strip(notNullValue, "\""), delimiter))
.map(String::trim)
.filter(s -> !StringUtils.isAllBlank(s)))
.orElseGet(Stream::empty);
diff --git a/server/container/guice/configuration/src/main/java/org/apache/james/utils/PropertiesProvider.java b/server/container/guice/configuration/src/main/java/org/apache/james/utils/PropertiesProvider.java
index e9fb392..d07476f 100644
--- a/server/container/guice/configuration/src/main/java/org/apache/james/utils/PropertiesProvider.java
+++ b/server/container/guice/configuration/src/main/java/org/apache/james/utils/PropertiesProvider.java
@@ -48,7 +48,6 @@ public class PropertiesProvider {
private static final Logger LOGGER = LoggerFactory.getLogger("org.apache.james.CONFIGURATION");
private static final char COMMA = ',';
- private static final String COMMA_STRING = ",";
@VisibleForTesting
public static PropertiesProvider forTesting() {
@@ -96,7 +95,7 @@ public class PropertiesProvider {
.setListDelimiterHandler(new DefaultListDelimiterHandler(COMMA))
.setFile(propertiesFile));
- return new DelegatedPropertiesConfiguration(COMMA_STRING, builder.getConfiguration());
+ return new DelegatedPropertiesConfiguration(COMMA, builder.getConfiguration());
}
private Optional<File> getConfigurationFile(String fileName) {
diff --git a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/ExtendedMailFromCommand.java b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/ExtendedMailFromCommand.java
index d4a95ae..6d9cff7 100644
--- a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/ExtendedMailFromCommand.java
+++ b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/ExtendedMailFromCommand.java
@@ -29,7 +29,12 @@ import org.subethamail.smtp.server.BaseCommand;
import org.subethamail.smtp.server.Session;
import org.subethamail.smtp.util.EmailUtils;
+import com.google.common.base.CharMatcher;
+
public class ExtendedMailFromCommand extends BaseCommand {
+
+ public static final CharMatcher NUMBER_MATCHER = CharMatcher.inRange('0', '9');
+
public ExtendedMailFromCommand() {
super("MAIL", "Specifies the sender.", "FROM: <sender> [ <parameters> ]");
}
@@ -56,7 +61,7 @@ public class ExtendedMailFromCommand extends BaseCommand {
int sizec = largs.indexOf(" size=");
if (sizec > -1) {
String ssize = largs.substring(sizec + 6).trim();
- if (ssize.length() > 0 && ssize.matches("[0-9]+")) {
+ if (ssize.length() > 0 && NUMBER_MATCHER.matchesAllOf(ssize)) {
size = Integer.parseInt(ssize);
}
}
diff --git a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/CreationMessage.java b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/CreationMessage.java
index 7103cb8..7e3b403 100644
--- a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/CreationMessage.java
+++ b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/CreationMessage.java
@@ -433,8 +433,14 @@ public class CreationMessage {
}
public EmailUserAndDomain getEmailUserAndDomain() {
- String[] splitAddress = email.get().split("@", 2);
- return new EmailUserAndDomain(Optional.ofNullable(splitAddress[0]), Optional.ofNullable(splitAddress[1]));
+ int atIndex = email.get().indexOf('@');
+ if (atIndex < 0 || atIndex == email.get().length() - 1) {
+ return new EmailUserAndDomain(Optional.of(email.get()), Optional.empty());
+ }
+ String user = email.get().substring(0, atIndex);
+ String domain = email.get().substring(atIndex + 1);
+
+ return new EmailUserAndDomain(Optional.of(user), Optional.of(domain));
}
@Override
diff --git a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/routes/DownloadRoutes.scala b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/routes/DownloadRoutes.scala
index f66be65..70aab64 100644
--- a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/routes/DownloadRoutes.scala
+++ b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/routes/DownloadRoutes.scala
@@ -183,7 +183,7 @@ class AttachmentBlobResolver @Inject()(val attachmentManager: AttachmentManager)
class MessagePartBlobResolver @Inject()(val messageIdFactory: MessageId.Factory,
val messageIdManager: MessageIdManager) extends BlobResolver {
private def asMessageAndPartId(blobId: BlobId): Try[(MessageId, PartId)] = {
- blobId.value.value.split("_").toList match {
+ blobId.value.value.split('_').toList match {
case List(messageIdString, partIdString) => for {
messageId <- Try(messageIdFactory.fromString(messageIdString))
partId <- PartId.parse(partIdString)
diff --git a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/routes/EventSourceRoutes.scala b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/routes/EventSourceRoutes.scala
index 3889c65..3bfc965 100644
--- a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/routes/EventSourceRoutes.scala
+++ b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/routes/EventSourceRoutes.scala
@@ -70,7 +70,7 @@ case class EventSourceOptionsFactory @Inject() (typeStateFactory: TypeStateFacto
queryParam(request, "types") match {
case None => Left(new IllegalArgumentException("types parameter is compulsory"))
case Some(List("*")) => Right(typeStateFactory.all.toSet)
- case Some(list) => list.flatMap(_.split(","))
+ case Some(list) => list.flatMap(_.split(','))
.map(string => typeStateFactory.parse(string))
.sequence.map(_.toSet)
}
diff --git a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
index f171a70..ab5749a 100644
--- a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
+++ b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
@@ -40,6 +40,7 @@ import org.apache.commons.configuration2.Configuration;
import org.apache.commons.configuration2.HierarchicalConfiguration;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.commons.configuration2.tree.ImmutableNode;
+import org.apache.commons.lang3.StringUtils;
import org.apache.james.filesystem.api.FileSystem;
import org.apache.james.lifecycle.api.Configurable;
import org.apache.james.protocols.api.Encryption;
@@ -165,10 +166,10 @@ public abstract class AbstractConfigurableAsyncServer extends AbstractAsyncServe
return;
}
- String[] listen = config.getString("bind", "0.0.0.0:" + getDefaultPort()).split(",");
+ String[] listen = StringUtils.split(config.getString("bind", "0.0.0.0:" + getDefaultPort()), ',');
List<InetSocketAddress> bindAddresses = new ArrayList<>();
for (String aListen : listen) {
- String[] bind = aListen.split(":");
+ String[] bind = StringUtils.split(aListen, ':');
InetSocketAddress address;
String ip = bind[0].trim();
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org