You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2020/03/08 13:15:56 UTC
[maven] 01/01: WIP - [MNG-6829] - First step. - Using
maven-shared-utils as replacement. - Added maven-utils which contains some
needed implementation which could be moved later to maven-shared-utils.
This is an automated email from the ASF dual-hosted git repository.
khmarbaise pushed a commit to branch MNG-6829
in repository https://gitbox.apache.org/repos/asf/maven.git
commit a6a6ef94310d90668cdfebff792dd84a99aaa0bb
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Sat Dec 21 16:00:28 2019 +0100
WIP - [MNG-6829] - First step.
- Using maven-shared-utils as replacement.
- Added maven-utils which contains some needed implementation
which could be moved later to maven-shared-utils.
---
maven-artifact/pom.xml | 8 +-
.../org/apache/maven/artifact/ArtifactUtils.java | 4 +-
.../versioning/DefaultArtifactVersion.java | 6 +-
maven-core/pom.xml | 8 +-
.../DefaultBeanConfigurationRequest.java | 6 +-
.../rtinfo/internal/DefaultRuntimeInformation.java | 16 ++--
maven-embedder/pom.xml | 8 +-
.../org/apache/maven/cli/CLIReportingUtils.java | 6 +-
.../transfer/AbstractMavenTransferListener.java | 13 +--
.../cli/transfer/ConsoleMavenTransferListener.java | 2 +-
maven-model-builder/pom.xml | 4 +
.../maven/model/building/FileModelSourceTest.java | 9 +-
{maven-artifact => maven-utils}/pom.xml | 46 +++-------
.../java/org/apache/maven/utils/Precondition.java | 100 +++++++++++++++++++++
.../java/org/apache/maven/utils/StringUtils.java | 61 +++++++++++++
.../org/apache/maven/utils/PreconditionTest.java | 34 +++++++
pom.xml | 24 +++--
17 files changed, 273 insertions(+), 82 deletions(-)
diff --git a/maven-artifact/pom.xml b/maven-artifact/pom.xml
index 336505b..5bc1059 100644
--- a/maven-artifact/pom.xml
+++ b/maven-artifact/pom.xml
@@ -34,12 +34,12 @@ under the License.
<dependencies>
<dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-utils</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
</dependency>
</dependencies>
diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java b/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
index bd76edd..01c1601 100644
--- a/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
+++ b/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
@@ -26,8 +26,8 @@ import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
-import org.apache.commons.lang3.Validate;
import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.utils.Precondition;
/**
* ArtifactUtils
@@ -104,7 +104,7 @@ public final class ArtifactUtils
int c = str != null && str.length() > 0 ? str.charAt( 0 ) : 0;
if ( ( c < '0' || c > '9' ) && ( c < 'a' || c > 'z' ) )
{
- Validate.notBlank( str, message );
+ Precondition.notBlank( str, message );
}
}
diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java b/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
index 75b19fa..d2a185d 100644
--- a/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
+++ b/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
@@ -21,7 +21,7 @@ package org.apache.maven.artifact.versioning;
import java.util.StringTokenizer;
-import static org.apache.commons.lang3.math.NumberUtils.isDigits;
+import org.apache.maven.utils.Precondition;
/**
* Default implementation of artifact versioning.
@@ -188,7 +188,7 @@ public class DefaultArtifactVersion
if ( tok.hasMoreTokens() )
{
qualifier = tok.nextToken();
- fallback = isDigits( qualifier );
+ fallback = Precondition.isDigits( qualifier );
}
// string tokenizer won't detect these and ignores them
@@ -222,7 +222,7 @@ public class DefaultArtifactVersion
private static Integer tryParseInt( String s )
{
// for performance, check digits instead of relying later on catching NumberFormatException
- if ( !isDigits( s ) )
+ if ( !Precondition.isDigits( s ) )
{
return null;
}
diff --git a/maven-core/pom.xml b/maven-core/pom.xml
index 7a723a2..1a07a1a 100644
--- a/maven-core/pom.xml
+++ b/maven-core/pom.xml
@@ -89,6 +89,10 @@ under the License.
<artifactId>maven-resolver-util</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-utils</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-shared-utils</artifactId>
</dependency>
@@ -123,10 +127,6 @@ under the License.
<artifactId>plexus-component-annotations</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- </dependency>
- <dependency>
<groupId>commons-jxpath</groupId>
<artifactId>commons-jxpath</artifactId>
<scope>test</scope>
diff --git a/maven-core/src/main/java/org/apache/maven/configuration/DefaultBeanConfigurationRequest.java b/maven-core/src/main/java/org/apache/maven/configuration/DefaultBeanConfigurationRequest.java
index 5ec69f5..1730aaa 100644
--- a/maven-core/src/main/java/org/apache/maven/configuration/DefaultBeanConfigurationRequest.java
+++ b/maven-core/src/main/java/org/apache/maven/configuration/DefaultBeanConfigurationRequest.java
@@ -19,12 +19,12 @@ package org.apache.maven.configuration;
* under the License.
*/
-import org.apache.commons.lang3.Validate;
import org.apache.maven.model.Build;
import org.apache.maven.model.Model;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.PluginExecution;
import org.apache.maven.model.PluginManagement;
+import org.apache.maven.utils.Precondition;
import org.codehaus.plexus.util.StringUtils;
/**
@@ -121,8 +121,8 @@ public class DefaultBeanConfigurationRequest
private Plugin findPlugin( Model model, String groupId, String artifactId )
{
- Validate.notBlank( groupId, "groupId can neither be null, empty nor blank" );
- Validate.notBlank( artifactId, "artifactId can neither be null, empty nor blank" );
+ Precondition.notBlank( groupId, "groupId can neither be null, empty nor blank" );
+ Precondition.notBlank( artifactId, "artifactId can neither be null, empty nor blank" );
if ( model != null )
{
diff --git a/maven-core/src/main/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformation.java b/maven-core/src/main/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformation.java
index 12a6b6f..cda5ca1 100644
--- a/maven-core/src/main/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformation.java
+++ b/maven-core/src/main/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformation.java
@@ -19,9 +19,13 @@ package org.apache.maven.rtinfo.internal;
* under the License.
*/
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.Validate;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
import org.apache.maven.rtinfo.RuntimeInformation;
+import org.apache.maven.shared.utils.StringUtils;
+import org.apache.maven.utils.Precondition;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.logging.Logger;
@@ -31,10 +35,6 @@ import org.eclipse.aether.version.Version;
import org.eclipse.aether.version.VersionConstraint;
import org.eclipse.aether.version.VersionScheme;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-
/**
* Provides information about the current Maven runtime.
*/
@@ -100,7 +100,7 @@ public class DefaultRuntimeInformation
{
VersionScheme versionScheme = new GenericVersionScheme();
- Validate.notBlank( versionRange, "versionRange can neither be null, empty nor blank" );
+ Precondition.notBlank( versionRange, "versionRange can neither be null, empty nor blank" );
VersionConstraint constraint;
try
@@ -116,7 +116,7 @@ public class DefaultRuntimeInformation
try
{
String mavenVersion = getMavenVersion();
- Validate.validState( StringUtils.isNotEmpty( mavenVersion ), "Could not determine current Maven version" );
+ Precondition.isTrue( StringUtils.isNotEmpty( mavenVersion ), "Could not determine current Maven version" );
current = versionScheme.parseVersion( mavenVersion );
}
diff --git a/maven-embedder/pom.xml b/maven-embedder/pom.xml
index f4982da..62dfca5 100644
--- a/maven-embedder/pom.xml
+++ b/maven-embedder/pom.xml
@@ -63,6 +63,10 @@ under the License.
<artifactId>maven-builder-support</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-utils</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.apache.maven.resolver</groupId>
<artifactId>maven-resolver-api</artifactId>
</dependency>
@@ -158,10 +162,6 @@ under the License.
<artifactId>commons-cli</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- </dependency>
- <dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java b/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java
index 97a2db6..272d185 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java
@@ -19,8 +19,6 @@ package org.apache.maven.cli;
* under the License.
*/
-import static org.apache.maven.shared.utils.logging.MessageUtils.buffer;
-
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
@@ -28,10 +26,12 @@ import java.util.Date;
import java.util.Locale;
import java.util.Properties;
-import org.apache.commons.lang3.StringUtils;
+import org.apache.maven.shared.utils.StringUtils;
import org.codehaus.plexus.util.Os;
import org.slf4j.Logger;
+import static org.apache.maven.shared.utils.logging.MessageUtils.buffer;
+
/**
* Utility class used to report errors, statistics, application version info, etc.
*
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java
index 72bffc3..820b2e8 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java
@@ -24,7 +24,7 @@ import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Locale;
-import org.apache.commons.lang3.Validate;
+import org.apache.maven.utils.Precondition;
import org.eclipse.aether.transfer.AbstractTransferListener;
import org.eclipse.aether.transfer.TransferCancelledException;
import org.eclipse.aether.transfer.TransferEvent;
@@ -116,7 +116,7 @@ public abstract class AbstractMavenTransferListener
public static ScaleUnit getScaleUnit( long size )
{
- Validate.isTrue( size >= 0L, "file size cannot be negative: %s", size );
+ Precondition.greaterOrEqualToZero( size, "file size cannot be negative: %s", size );
if ( size >= GIGABYTE.bytes() )
{
@@ -159,7 +159,7 @@ public abstract class AbstractMavenTransferListener
@SuppressWarnings( "checkstyle:magicnumber" )
public String format( long size, ScaleUnit unit, boolean omitSymbol )
{
- Validate.isTrue( size >= 0L, "file size cannot be negative: %s", size );
+ Precondition.greaterOrEqualToZero( size, "file size cannot be negative: %s", size );
if ( unit == null )
{
@@ -191,9 +191,10 @@ public abstract class AbstractMavenTransferListener
public String formatProgress( long progressedSize, long size )
{
- Validate.isTrue( progressedSize >= 0L, "progressed file size cannot be negative: %s", progressedSize );
- Validate.isTrue( size < 0L || progressedSize <= size,
- "progressed file size cannot be greater than size: %s > %s", progressedSize, size );
+ Precondition.greaterOrEqualToZero( progressedSize, "progressed file size cannot be negative: %s",
+ progressedSize );
+ Precondition.isTrue( size >= 0L && progressedSize <= size || size < 0L,
+ "progressed file size cannot be greater than size: %s > %s", progressedSize, size );
if ( size >= 0L && progressedSize != size )
{
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/ConsoleMavenTransferListener.java b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/ConsoleMavenTransferListener.java
index 950b5d0..d80daa2 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/ConsoleMavenTransferListener.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/ConsoleMavenTransferListener.java
@@ -26,7 +26,7 @@ import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Map;
-import org.apache.commons.lang3.StringUtils;
+import org.apache.maven.utils.StringUtils;
import org.eclipse.aether.transfer.TransferCancelledException;
import org.eclipse.aether.transfer.TransferEvent;
import org.eclipse.aether.transfer.TransferResource;
diff --git a/maven-model-builder/pom.xml b/maven-model-builder/pom.xml
index a2145d2..ceec5dd 100644
--- a/maven-model-builder/pom.xml
+++ b/maven-model-builder/pom.xml
@@ -39,6 +39,10 @@ under the License.
<artifactId>plexus-utils</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-shared-utils</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-interpolation</artifactId>
</dependency>
diff --git a/maven-model-builder/src/test/java/org/apache/maven/model/building/FileModelSourceTest.java b/maven-model-builder/src/test/java/org/apache/maven/model/building/FileModelSourceTest.java
index 9b0ecd9..dc5bb68 100644
--- a/maven-model-builder/src/test/java/org/apache/maven/model/building/FileModelSourceTest.java
+++ b/maven-model-builder/src/test/java/org/apache/maven/model/building/FileModelSourceTest.java
@@ -18,13 +18,16 @@ package org.apache.maven.model.building;
* specific language governing permissions and limitations
* under the License.
*/
+
import java.io.File;
import java.io.IOException;
+
+import org.apache.maven.shared.utils.Os;
+import org.junit.Test;
+
import static junit.framework.TestCase.assertFalse;
import static junit.framework.TestCase.assertTrue;
-import org.apache.commons.lang3.SystemUtils;
import static org.junit.Assume.assumeTrue;
-import org.junit.Test;
/**
* Test that validate the solution of MNG-6261 issue
@@ -53,7 +56,7 @@ public class FileModelSourceTest
public void testWindowsPaths()
throws Exception
{
- assumeTrue( SystemUtils.IS_OS_WINDOWS );
+ assumeTrue( Os.isFamily( Os.FAMILY_WINDOWS ) );
File upperCaseFile = createTempFile( "TESTE" );
String absolutePath = upperCaseFile.getAbsolutePath();
diff --git a/maven-artifact/pom.xml b/maven-utils/pom.xml
similarity index 50%
copy from maven-artifact/pom.xml
copy to maven-utils/pom.xml
index 336505b..ec67f14 100644
--- a/maven-artifact/pom.xml
+++ b/maven-utils/pom.xml
@@ -19,7 +19,8 @@ specific language governing permissions and limitations
under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
@@ -28,46 +29,21 @@ under the License.
<version>3.7.0-SNAPSHOT</version>
</parent>
- <artifactId>maven-artifact</artifactId>
+ <artifactId>maven-utils</artifactId>
- <name>Maven Artifact</name>
+ <name>Maven Utils</name>
<dependencies>
<dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-engine</artifactId>
+ <scope>test</scope>
</dependency>
<dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <scope>test</scope>
</dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <configuration>
- <archive>
- <manifestEntries>
- <Main-Class>org.apache.maven.artifact.versioning.ComparableVersion</Main-Class>
- </manifestEntries>
- </archive>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-failsafe-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>integration-test</goal>
- <goal>verify</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
+ </dependencies>
</project>
diff --git a/maven-utils/src/main/java/org/apache/maven/utils/Precondition.java b/maven-utils/src/main/java/org/apache/maven/utils/Precondition.java
new file mode 100644
index 0000000..af71c2d
--- /dev/null
+++ b/maven-utils/src/main/java/org/apache/maven/utils/Precondition.java
@@ -0,0 +1,100 @@
+package org.apache.maven.utils;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * Convenient utility methods for assertion of different conditions.
+ *
+ * @author Karl Heinz Marbaise
+ */
+public final class Precondition
+{
+ private Precondition()
+ {
+ // no-op
+ }
+
+
+ public static void isTrue( boolean expression, String message, final Object... values )
+ {
+ if ( !expression )
+ {
+ throw new IllegalArgumentException( String.format( message, values ) );
+ }
+ }
+
+ public static Long greaterOrEqualToZero( Long currentValue, String message, final long value )
+ {
+ if ( currentValue == null )
+ {
+ throw new IllegalArgumentException( String.format( message, value ) );
+ }
+
+ if ( currentValue < 0 )
+ {
+ throw new IllegalArgumentException( String.format( message, value ) );
+ }
+ return currentValue;
+ }
+
+
+ public static boolean notBlank( String str, String message )
+ {
+ for ( int i = 0; i < str.length(); i++ )
+ {
+ if ( !Character.isWhitespace( str.charAt( i ) ) )
+ {
+ return false;
+ }
+ }
+ throw new IllegalArgumentException( message );
+ }
+
+
+ public static boolean isEmpty( final CharSequence cs )
+ {
+ return cs == null || cs.length() == 0;
+ }
+
+ public static boolean isDigits( final String str )
+ {
+ return isNumeric( str );
+ }
+
+ public static boolean isNumeric( final CharSequence cs )
+ {
+ if ( isEmpty( cs ) )
+ {
+ return false;
+ }
+ final int sz = cs.length();
+ for ( int i = 0; i < sz; i++ )
+ {
+ if ( !Character.isDigit( cs.charAt( i ) ) )
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+
+}
+
diff --git a/maven-utils/src/main/java/org/apache/maven/utils/StringUtils.java b/maven-utils/src/main/java/org/apache/maven/utils/StringUtils.java
new file mode 100644
index 0000000..9f29aaf
--- /dev/null
+++ b/maven-utils/src/main/java/org/apache/maven/utils/StringUtils.java
@@ -0,0 +1,61 @@
+package org.apache.maven.utils;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import static org.apache.maven.utils.Precondition.isEmpty;
+
+/**
+ * @author Karl Heinz Marbaise
+ */
+public final class StringUtils
+{
+ public static final String EMPTY = "";
+ public static final int INDEX_NOT_FOUND = -1;
+ private StringUtils()
+ {
+ // intentionally empty.
+ }
+
+ /**
+ * @param str The string.
+ * @param separator The separator.
+ * @return The substring.
+ * TODO: Should be moved to maven-shared-utils.
+ */
+ public static String substringAfterLast( final String str, final String separator )
+ {
+ if ( isEmpty( str ) )
+ {
+ return str;
+ }
+ if ( isEmpty( separator ) )
+ {
+ return EMPTY;
+ }
+ final int pos = str.lastIndexOf( separator );
+ if ( pos == INDEX_NOT_FOUND || pos == str.length() - separator.length() )
+ {
+ return EMPTY;
+ }
+ return str.substring( pos + separator.length() );
+ }
+
+
+}
diff --git a/maven-utils/src/test/java/org/apache/maven/utils/PreconditionTest.java b/maven-utils/src/test/java/org/apache/maven/utils/PreconditionTest.java
new file mode 100644
index 0000000..18811c5
--- /dev/null
+++ b/maven-utils/src/test/java/org/apache/maven/utils/PreconditionTest.java
@@ -0,0 +1,34 @@
+package org.apache.maven.utils;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.junit.jupiter.api.Test;
+
+import static org.apache.maven.utils.Precondition.notBlank;
+import static org.assertj.core.api.Assertions.assertThatCode;
+
+class PreconditionTest
+{
+ @Test
+ void first()
+ {
+ assertThatCode( () -> notBlank( "x", "Message" ) ).doesNotThrowAnyException();
+ }
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 3148a97..11ed978 100644
--- a/pom.xml
+++ b/pom.xml
@@ -51,7 +51,6 @@ under the License.
<maven.compiler.target>1.8</maven.compiler.target>
<classWorldsVersion>2.6.0</classWorldsVersion>
<commonsCliVersion>1.4</commonsCliVersion>
- <commonsLangVersion>3.8.1</commonsLangVersion>
<junitVersion>4.13</junitVersion>
<mockitoVersion>3.2.0</mockitoVersion>
<plexusVersion>2.1.0</plexusVersion>
@@ -96,6 +95,7 @@ under the License.
<module>maven-embedder</module>
<module>maven-compat</module>
<module>apache-maven</module>
+ <module>maven-utils</module>
</modules>
<scm>
@@ -244,6 +244,11 @@ under the License.
<artifactId>maven-slf4j-wrapper</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-utils</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<!--bootstrap-end-comment-->
<!-- Plexus -->
<dependency>
@@ -387,11 +392,6 @@ under the License.
<version>${jxpathVersion}</version>
</dependency>
<dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- <version>${commonsLangVersion}</version>
- </dependency>
- <dependency>
<groupId>org.sonatype.plexus</groupId>
<artifactId>plexus-sec-dispatcher</artifactId>
<version>${securityDispatcherVersion}</version>
@@ -436,6 +436,18 @@ under the License.
<version>2.2</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <version>3.14.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.junit</groupId>
+ <artifactId>junit-bom</artifactId>
+ <version>5.6.0-M1</version>
+ <scope>import</scope>
+ <type>pom</type>
+ </dependency>
</dependencies>
<!--bootstrap-start-comment-->
</dependencyManagement>