diff --git a/pom.xml b/pom.xml
index e9f00ca59d..949063d377 100644
--- a/pom.xml
+++ b/pom.xml
@@ -46,11 +46,6 @@
cglib
3.2.4
-
- commons-io
- commons-io
- 2.0
-
org.apache.commons
commons-lang3
diff --git a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubConfiguration.java b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubConfiguration.java
index 098ee6b49c..f20f244b9b 100644
--- a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubConfiguration.java
+++ b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubConfiguration.java
@@ -16,9 +16,6 @@
package org.springframework.cloud.contract.stubrunner;
-import java.util.Arrays;
-import java.util.List;
-
import org.springframework.util.StringUtils;
/**
diff --git a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/ribbon/StubRunnerRibbonBeanPostProcessor.java b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/ribbon/StubRunnerRibbonBeanPostProcessor.java
index 9ba1002603..147f23ccc4 100644
--- a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/ribbon/StubRunnerRibbonBeanPostProcessor.java
+++ b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/ribbon/StubRunnerRibbonBeanPostProcessor.java
@@ -67,7 +67,7 @@ class StubRunnerRibbonBeanPostProcessor implements BeanPostProcessor {
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
if (bean instanceof ServerList && !(bean instanceof StubRunnerRibbonServerList)) {
- return new StubRunnerRibbonServerList(stubFinder(), stubMapperProperties(), clientConfig(), (ServerList) bean);
+ return new StubRunnerRibbonServerList(stubFinder(), stubMapperProperties(), clientConfig(), (ServerList>) bean);
}
return bean;
}
diff --git a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleCustomPortJUnitTest.java b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleCustomPortJUnitTest.java
index 42843de0b9..2cbfa95bfe 100644
--- a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleCustomPortJUnitTest.java
+++ b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleCustomPortJUnitTest.java
@@ -16,17 +16,18 @@
package org.springframework.cloud.contract.stubrunner.junit;
+import static org.assertj.core.api.BDDAssertions.then;
+
import java.io.InputStream;
import java.net.URI;
+import java.nio.charset.Charset;
-import org.apache.commons.io.IOUtils;
import org.assertj.core.api.BDDAssertions;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
-
-import static org.assertj.core.api.BDDAssertions.then;
+import org.springframework.util.StreamUtils;
/**
* @author Marcin Grzejszczak
@@ -79,7 +80,7 @@ public class StubRunnerRuleCustomPortJUnitTest {
private String httpGet(String url) throws Exception {
try(InputStream stream = URI.create(url).toURL().openStream()) {
- return IOUtils.toString(stream);
+ return StreamUtils.copyToString(stream, Charset.forName("UTF-8"));
}
}
}
diff --git a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleJUnitTest.java b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleJUnitTest.java
index 41cd3e9c85..96f8153a18 100644
--- a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleJUnitTest.java
+++ b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleJUnitTest.java
@@ -16,17 +16,18 @@
package org.springframework.cloud.contract.stubrunner.junit;
+import static org.assertj.core.api.BDDAssertions.then;
+
import java.io.InputStream;
import java.net.URI;
+import java.nio.charset.Charset;
-import org.apache.commons.io.IOUtils;
import org.assertj.core.api.BDDAssertions;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
-
-import static org.assertj.core.api.BDDAssertions.then;
+import org.springframework.util.StreamUtils;
/**
* @author Marcin Grzejszczak
@@ -75,7 +76,7 @@ public class StubRunnerRuleJUnitTest {
private String httpGet(String url) throws Exception {
try(InputStream stream = URI.create(url).toURL().openStream()) {
- return IOUtils.toString(stream);
+ return StreamUtils.copyToString(stream, Charset.forName("UTF-8"));
}
}
}
diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/RecursiveFilesConverterSpec.groovy b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/RecursiveFilesConverterSpec.groovy
index 0e3de65413..1cbf02f327 100755
--- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/RecursiveFilesConverterSpec.groovy
+++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/RecursiveFilesConverterSpec.groovy
@@ -16,16 +16,19 @@
package org.springframework.cloud.contract.verifier.wiremock
-import org.apache.commons.io.FileUtils
-import org.apache.commons.io.filefilter.TrueFileFilter
+import groovy.io.FileType
+
+import java.nio.file.Files
+import java.nio.file.Path
+import java.nio.file.Paths
+
import org.junit.Rule
import org.junit.rules.TemporaryFolder
import org.springframework.cloud.contract.verifier.config.ContractVerifierConfigProperties
import org.springframework.cloud.contract.verifier.converter.SingleFileConverter
-import spock.lang.Specification
+import org.springframework.util.FileSystemUtils
-import java.nio.file.Path
-import java.nio.file.Paths
+import spock.lang.Specification
class RecursiveFilesConverterSpec extends Specification {
@@ -41,7 +44,7 @@ class RecursiveFilesConverterSpec extends Specification {
File originalSourceRootDirectory = new File(this.getClass().getResource("/converter/source").toURI())
properties.contractsDslDir = tmpFolder.newFolder("source")
properties.stubsOutputDir = tmpFolder.newFolder("target")
- FileUtils.copyDirectory(originalSourceRootDirectory, properties.contractsDslDir)
+ FileSystemUtils.copyRecursively(originalSourceRootDirectory, properties.contractsDslDir)
and:
def singleFileConverterStub = Stub(SingleFileConverter)
singleFileConverterStub.canHandleFileName(_) >> { String fileName -> fileName.endsWith(".groovy") }
@@ -52,7 +55,8 @@ class RecursiveFilesConverterSpec extends Specification {
when:
recursiveFilesConverter.processFiles()
then:
- Collection createdFiles = FileUtils.listFiles(properties.stubsOutputDir, TrueFileFilter.INSTANCE, TrueFileFilter.INSTANCE)
+ Collection createdFiles = [] as List
+ properties.stubsOutputDir.eachFileRecurse(FileType.FILES) {it -> createdFiles << it}
Set relativizedCreatedFiles = getRelativePathsForFilesInDirectory(createdFiles, properties.stubsOutputDir)
EXPECTED_TARGET_FILES == relativizedCreatedFiles
and:
@@ -66,7 +70,7 @@ class RecursiveFilesConverterSpec extends Specification {
properties.contractsDslDir = tmpFolder.newFolder("source")
properties.stubsOutputDir = tmpFolder.newFolder("target")
properties.excludedFiles = ["dir1/**"]
- FileUtils.copyDirectory(originalSourceRootDirectory, properties.contractsDslDir)
+ FileSystemUtils.copyRecursively(originalSourceRootDirectory, properties.contractsDslDir)
and:
def singleFileConverterStub = Stub(SingleFileConverter)
singleFileConverterStub.canHandleFileName(_) >> { String fileName -> fileName.endsWith(".groovy") }
@@ -77,7 +81,8 @@ class RecursiveFilesConverterSpec extends Specification {
when:
recursiveFilesConverter.processFiles()
then:
- Collection createdFiles = FileUtils.listFiles(properties.stubsOutputDir, TrueFileFilter.INSTANCE, TrueFileFilter.INSTANCE)
+ Collection createdFiles = [] as List
+ properties.stubsOutputDir.eachFileRecurse(FileType.FILES) {it -> createdFiles << it}
Set relativizedCreatedFiles = getRelativePathsForFilesInDirectory(createdFiles, properties.stubsOutputDir)
[Paths.get("dslRoot.json"), Paths.get("dir2/dsl2.json")] as Set == relativizedCreatedFiles as Set
and:
diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-core/pom.xml b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-core/pom.xml
index 7e682bd0e0..10414853ec 100644
--- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-core/pom.xml
+++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-core/pom.xml
@@ -21,10 +21,6 @@
org.springframework.cloud
spring-cloud-contract-verifier-testing-utils
-
- commons-io
- commons-io
-
org.apache.commons
commons-lang3
diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-core/src/main/groovy/org/springframework/cloud/contract/verifier/file/ContractFileScanner.groovy b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-core/src/main/groovy/org/springframework/cloud/contract/verifier/file/ContractFileScanner.groovy
index 7b7ad47618..e1af75de6a 100755
--- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-core/src/main/groovy/org/springframework/cloud/contract/verifier/file/ContractFileScanner.groovy
+++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-core/src/main/groovy/org/springframework/cloud/contract/verifier/file/ContractFileScanner.groovy
@@ -16,11 +16,7 @@
package org.springframework.cloud.contract.verifier.file
-import com.google.common.collect.ArrayListMultimap
-import com.google.common.collect.ListMultimap
import groovy.transform.CompileStatic
-import org.apache.commons.io.FilenameUtils
-import org.apache.commons.lang3.SystemUtils
import java.nio.file.FileSystem
import java.nio.file.FileSystems
@@ -28,6 +24,11 @@ import java.nio.file.Path
import java.nio.file.PathMatcher
import java.util.regex.Pattern
+import org.apache.commons.lang3.SystemUtils
+
+import com.google.common.collect.ArrayListMultimap
+import com.google.common.collect.ListMultimap
+
/**
* Scans the provided file path for the DSLs. There's a possibility to provide
* inclusion and exclusion filters.
@@ -107,6 +108,21 @@ class ContractFileScanner {
}
private boolean isContractFile(File file) {
- return file.isFile() && FilenameUtils.getExtension(file.toString()).equalsIgnoreCase("groovy")
+ return file.isFile() && getFilenameExtension(file.toString())?.equalsIgnoreCase("groovy")
+ }
+
+ private static String getFilenameExtension(String path) {
+ if (path == null) {
+ return null;
+ }
+ int extIndex = path.lastIndexOf('.');
+ if (extIndex == -1) {
+ return null;
+ }
+ int folderIndex = path.lastIndexOf('/');
+ if (folderIndex > extIndex) {
+ return null;
+ }
+ return path.substring(extIndex + 1);
}
}