This is an automated email from the ASF dual-hosted git repository. coheigea pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cxf.git
commit 33c46b89a4f6832af102ed66b57623b392ce0007 Author: Colm O hEigeartaigh <[email protected]> AuthorDate: Thu Jan 10 16:39:53 2019 +0000 Refactor FileUtils to use a suffix instead of a reg ex --- .../java/org/apache/cxf/helpers/FileUtils.java | 47 +++++++++++--------- .../java/org/apache/cxf/helpers/FileUtilsTest.java | 17 ++++++++ .../cxf/endpoint/dynamic/DynamicClientFactory.java | 2 +- .../org/apache/cxf/tools/common/ClassUtils.java | 6 +-- .../cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java | 50 +++++++++++----------- .../cxf/tools/wadlto/jaxrs/WADLToJavaTest.java | 2 +- 6 files changed, 72 insertions(+), 52 deletions(-) diff --git a/core/src/main/java/org/apache/cxf/helpers/FileUtils.java b/core/src/main/java/org/apache/cxf/helpers/FileUtils.java index f8dfd9a..42b59c2 100644 --- a/core/src/main/java/org/apache/cxf/helpers/FileUtils.java +++ b/core/src/main/java/org/apache/cxf/helpers/FileUtils.java @@ -363,34 +363,24 @@ public final class FileUtils { return rtn; } - public static List<File> getFiles(File dir, final String pattern) { - return getFiles(dir, pattern, null); - } - public static List<File> getFilesRecurse(File dir, final String pattern) { - return getFilesRecurse(dir, pattern, null); + public static List<File> getFilesUsingSuffix(File dir, final String suffix) { + return getFilesRecurseUsingSuffix(dir, suffix, false, new ArrayList<>()); } - public static List<File> getFiles(File dir, final String pattern, File exclude) { - return getFilesRecurse(dir, Pattern.compile(pattern), exclude, false, new ArrayList<>()); + public static List<File> getFilesRecurseUsingSuffix(File dir, final String suffix) { + return getFilesRecurseUsingSuffix(dir, suffix, true, new ArrayList<>()); } - public static List<File> getFilesRecurse(File dir, final String pattern, File exclude) { - return getFilesRecurse(dir, Pattern.compile(pattern), exclude, true, new ArrayList<>()); - } - private static List<File> getFilesRecurse(File dir, - Pattern pattern, - File exclude, boolean rec, - List<File> fileList) { + + private static List<File> getFilesRecurseUsingSuffix(File dir, final String suffix, + boolean rec, List<File> fileList) { File[] files = dir.listFiles(); if (files != null) { - for (File file : dir.listFiles()) { - if (file.equals(exclude)) { - continue; - } + int suffixLength = suffix.length(); + for (File file : files) { if (file.isDirectory() && rec) { - getFilesRecurse(file, pattern, exclude, rec, fileList); + getFilesRecurseUsingSuffix(file, suffix, rec, fileList); } else { - Matcher m = pattern.matcher(file.getName()); - if (m.matches()) { + if (file.getName().endsWith(suffix) && file.getName().length() > suffixLength) { fileList.add(file); } } @@ -399,6 +389,21 @@ public final class FileUtils { return fileList; } + public static List<File> getFiles(File dir, final String pattern) { + List<File> fileList = new ArrayList<>(); + File[] files = dir.listFiles(); + if (files != null) { + Pattern p = Pattern.compile(pattern); + for (File file : files) { + Matcher m = p.matcher(file.getName()); + if (m.matches()) { + fileList.add(file); + } + } + } + return fileList; + } + public static List<String> readLines(File file) throws Exception { if (!file.exists()) { return Collections.emptyList(); diff --git a/core/src/test/java/org/apache/cxf/helpers/FileUtilsTest.java b/core/src/test/java/org/apache/cxf/helpers/FileUtilsTest.java index a4a1751..db6bfd6 100644 --- a/core/src/test/java/org/apache/cxf/helpers/FileUtilsTest.java +++ b/core/src/test/java/org/apache/cxf/helpers/FileUtilsTest.java @@ -19,6 +19,8 @@ package org.apache.cxf.helpers; import java.io.File; +import java.net.URISyntaxException; +import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -27,6 +29,7 @@ import java.util.Optional; import org.junit.Test; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class FileUtilsTest { @@ -61,4 +64,18 @@ public class FileUtilsTest { List<String> lines = FileUtils.readLines(p.get().toFile()); assertTrue(!lines.isEmpty()); } + + @Test + public void testGetFiles() throws URISyntaxException { + URL resource = FileUtilsTest.class.getResource("FileUtilsTest.class"); + File directory = Paths.get(resource.toURI()).getParent().toFile(); + assertTrue(directory.exists()); + + List<File> foundFiles = FileUtils.getFilesUsingSuffix(directory, ".class"); + assertTrue(foundFiles.size() > 0); + + List<File> foundFiles2 = FileUtils.getFiles(directory, ".*\\.class$"); + + assertEquals(foundFiles, foundFiles2); + } } \ No newline at end of file diff --git a/rt/frontend/simple/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java b/rt/frontend/simple/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java index 8648c32..ba5356c 100644 --- a/rt/frontend/simple/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java +++ b/rt/frontend/simple/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java @@ -385,7 +385,7 @@ public class DynamicClientFactory { throw new RuntimeException(ex); } - List<File> srcFiles = FileUtils.getFilesRecurse(src, ".+\\.java$"); + List<File> srcFiles = FileUtils.getFilesRecurseUsingSuffix(src, ".java"); if (!srcFiles.isEmpty() && !compileJavaSrc(classPath.toString(), srcFiles, classes.toString())) { LOG.log(Level.SEVERE, new Message("COULD_NOT_COMPILE_SRC", LOG, wsdlUrl).toString()); } diff --git a/tools/common/src/main/java/org/apache/cxf/tools/common/ClassUtils.java b/tools/common/src/main/java/org/apache/cxf/tools/common/ClassUtils.java index 4ea2c6f..4810615 100644 --- a/tools/common/src/main/java/org/apache/cxf/tools/common/ClassUtils.java +++ b/tools/common/src/main/java/org/apache/cxf/tools/common/ClassUtils.java @@ -110,10 +110,8 @@ public class ClassUtils { // Those files can not be allocated into the ClassCollector File jaxbRuntime = new File(path, "runtime"); if (jaxbRuntime.isDirectory() && jaxbRuntime.exists()) { - List<File> files = FileUtils.getFiles(jaxbRuntime, ".+\\.java$"); - for (File f : files) { - fileList.add(f.toString()); - } + List<File> files = FileUtils.getFilesUsingSuffix(jaxbRuntime, ".java"); + files.forEach(f -> fileList.add(f.toString())); } } } diff --git a/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java b/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java index 592b856..f948a48 100644 --- a/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java +++ b/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java @@ -71,7 +71,7 @@ public class JAXRSContainerTest extends ProcessorTestBase { container.execute(); assertNotNull(output.list()); - List<File> files = FileUtils.getFilesRecurse(output, ".+\\.class" + "$"); + List<File> files = FileUtils.getFilesRecurseUsingSuffix(output, ".class"); assertEquals(3, files.size()); assertTrue(checkContains(files, "application" + ".Resource.class")); assertTrue(checkContains(files, "custom" + ".TestCompositeObject.class")); @@ -121,7 +121,7 @@ public class JAXRSContainerTest extends ProcessorTestBase { assertNotNull(output.list()); - List<File> files = FileUtils.getFilesRecurse(output, ".+\\." + "class" + "$"); + List<File> files = FileUtils.getFilesRecurseUsingSuffix(output, ".class"); assertEquals(1, files.size()); } @@ -165,7 +165,7 @@ public class JAXRSContainerTest extends ProcessorTestBase { assertNotNull(output.list()); - List<File> javaFiles = FileUtils.getFilesRecurse(output, ".+\\." + "java" + "$"); + List<File> javaFiles = FileUtils.getFilesRecurseUsingSuffix(output, ".java"); assertEquals(2, javaFiles.size()); for (File f : javaFiles) { if (!f.getName().endsWith("Impl.java")) { @@ -187,7 +187,7 @@ public class JAXRSContainerTest extends ProcessorTestBase { for (String className : cc.getServiceClassNames().values()) { final Class<?> generatedClass = loader.loadClass(className); for (Map.Entry<String, Class<?>[]> entry : methods.entrySet()) { - Method m; + Method m; try { m = generatedClass.getMethod(entry.getKey(), String.class); } catch (NoSuchMethodException e) { @@ -252,11 +252,11 @@ public class JAXRSContainerTest extends ProcessorTestBase { container.execute(); assertNotNull(output.list()); - List<File> schemafiles = FileUtils.getFilesRecurse(output, ".+\\." + "java" + "$"); + List<File> schemafiles = FileUtils.getFilesRecurseUsingSuffix(output, ".java"); assertEquals(10, schemafiles.size()); doVerifyTypesWithSuffix(schemafiles, "superbooks", "java"); - - List<File> classfiles = FileUtils.getFilesRecurse(output, ".+\\." + "class" + "$"); + + List<File> classfiles = FileUtils.getFilesRecurseUsingSuffix(output, ".class"); assertEquals(10, classfiles.size()); doVerifyTypesWithSuffix(classfiles, "superbooks", "class"); } @@ -320,7 +320,7 @@ public class JAXRSContainerTest extends ProcessorTestBase { assertNotNull(output.list()); - List<File> files = FileUtils.getFilesRecurse(output, ".+\\." + "class" + "$"); + List<File> files = FileUtils.getFilesRecurseUsingSuffix(output, ".class"); assertEquals(8, files.size()); assertTrue(checkContains(files, "org.apache.cxf.jaxrs.model.wadl" + ".BookStore.class")); assertTrue(checkContains(files, "org.apache.cxf.jaxrs.model.wadl" + ".PATCH.class")); @@ -348,7 +348,7 @@ public class JAXRSContainerTest extends ProcessorTestBase { assertNotNull(output.list()); - List<File> files = FileUtils.getFilesRecurse(output, ".+\\." + "class" + "$"); + List<File> files = FileUtils.getFilesRecurseUsingSuffix(output, ".class"); assertEquals(4, files.size()); assertTrue(checkContains(files, "application" + ".BookstoreResource.class")); assertTrue(checkContains(files, "superbooks" + ".Book.class")); @@ -376,7 +376,7 @@ public class JAXRSContainerTest extends ProcessorTestBase { assertNotNull(output.list()); - List<File> files = FileUtils.getFilesRecurse(output, ".+\\." + "class" + "$"); + List<File> files = FileUtils.getFilesRecurseUsingSuffix(output, ".class"); assertEquals(1, files.size()); assertTrue(checkContains(files, "application" + ".BookstoreResource.class")); } @@ -395,7 +395,7 @@ public class JAXRSContainerTest extends ProcessorTestBase { assertNotNull(output.list()); - List<File> files = FileUtils.getFilesRecurse(output, ".+\\." + "class" + "$"); + List<File> files = FileUtils.getFilesRecurseUsingSuffix(output, ".class"); assertEquals(2, files.size()); assertTrue(checkContains(files, "application.Test1.class")); assertTrue(checkContains(files, "application.Test2.class")); @@ -470,7 +470,7 @@ public class JAXRSContainerTest extends ProcessorTestBase { assertNotNull(output.list()); - List<File> files = FileUtils.getFilesRecurse(output, ".+\\." + "class" + "$"); + List<File> files = FileUtils.getFilesRecurseUsingSuffix(output, ".class"); assertEquals(1, files.size()); assertTrue(checkContains(files, "application.Resource.class")); @SuppressWarnings("resource") @@ -519,7 +519,7 @@ public class JAXRSContainerTest extends ProcessorTestBase { assertNotNull(output.list()); - List<File> files = FileUtils.getFilesRecurse(output, ".+\\." + "class" + "$"); + List<File> files = FileUtils.getFilesRecurseUsingSuffix(output, ".class"); assertEquals(4, files.size()); assertTrue(checkContains(files, "application.Resource.class")); @SuppressWarnings("resource") @@ -620,12 +620,12 @@ public class JAXRSContainerTest extends ProcessorTestBase { assertNotNull(output.list()); - List<File> javaFiles = FileUtils.getFilesRecurse(output, ".+\\." + "java" + "$"); + List<File> javaFiles = FileUtils.getFilesRecurseUsingSuffix(output, ".java"); assertEquals(2, javaFiles.size()); assertTrue(checkContains(javaFiles, "application.CustomResource.java")); assertTrue(checkContains(javaFiles, "application.Theid.java")); - List<File> classFiles = FileUtils.getFilesRecurse(output, ".+\\." + "class" + "$"); + List<File> classFiles = FileUtils.getFilesRecurseUsingSuffix(output, ".class"); assertEquals(2, classFiles.size()); assertTrue(checkContains(classFiles, "application.CustomResource.class")); assertTrue(checkContains(classFiles, "application.Theid.class")); @@ -645,11 +645,11 @@ public class JAXRSContainerTest extends ProcessorTestBase { assertNotNull(output.list()); - List<File> javaFiles = FileUtils.getFilesRecurse(output, ".+\\." + "java" + "$"); + List<File> javaFiles = FileUtils.getFilesRecurseUsingSuffix(output, ".java"); assertEquals(2, javaFiles.size()); assertTrue(checkContains(javaFiles, "application.BookstoreResource.java")); assertTrue(checkContains(javaFiles, "application.BooksResource.java")); - List<File> classFiles = FileUtils.getFilesRecurse(output, ".+\\." + "class" + "$"); + List<File> classFiles = FileUtils.getFilesRecurseUsingSuffix(output, ".class"); assertEquals(2, classFiles.size()); assertTrue(checkContains(classFiles, "application.BookstoreResource.class")); assertTrue(checkContains(classFiles, "application.BooksResource.class")); @@ -670,10 +670,10 @@ public class JAXRSContainerTest extends ProcessorTestBase { assertNotNull(output.list()); - List<File> javaFiles = FileUtils.getFilesRecurse(output, ".+\\." + "java" + "$"); + List<File> javaFiles = FileUtils.getFilesRecurseUsingSuffix(output, ".java"); assertEquals(1, javaFiles.size()); assertTrue(checkContains(javaFiles, "application.TestRsResource.java")); - List<File> classFiles = FileUtils.getFilesRecurse(output, ".+\\." + "class" + "$"); + List<File> classFiles = FileUtils.getFilesRecurseUsingSuffix(output, ".class"); assertEquals(1, classFiles.size()); assertTrue(checkContains(classFiles, "application.TestRsResource.class")); } @@ -690,13 +690,13 @@ public class JAXRSContainerTest extends ProcessorTestBase { container.setContext(context); container.execute(); - List<File> javaFiles = FileUtils.getFilesRecurse(output, ".+\\." + "java" + "$"); + List<File> javaFiles = FileUtils.getFilesRecurseUsingSuffix(output, ".java"); assertEquals(4, javaFiles.size()); assertTrue(checkContains(javaFiles, "application.Resource.java")); assertTrue(checkContains(javaFiles, "com.example.test.ObjectFactory.java")); assertTrue(checkContains(javaFiles, "com.example.test.package-info.java")); assertTrue(checkContains(javaFiles, "com.example.test.TestCompositeObject.java")); - List<File> classFiles = FileUtils.getFilesRecurse(output, ".+\\." + "class" + "$"); + List<File> classFiles = FileUtils.getFilesRecurseUsingSuffix(output, ".class"); assertEquals(4, classFiles.size()); assertTrue(checkContains(classFiles, "application.Resource.class")); assertTrue(checkContains(classFiles, "com.example.test.ObjectFactory.class")); @@ -722,11 +722,11 @@ public class JAXRSContainerTest extends ProcessorTestBase { assertNotNull(output.list()); - List<File> javaFiles = FileUtils.getFilesRecurse(output, ".+\\." + "java" + "$"); + List<File> javaFiles = FileUtils.getFilesRecurseUsingSuffix(output, ".java"); assertEquals(1, javaFiles.size()); assertTrue(checkContains(javaFiles, "application.CustomResource.java")); - List<File> classFiles = FileUtils.getFilesRecurse(output, ".+\\." + "class" + "$"); + List<File> classFiles = FileUtils.getFilesRecurseUsingSuffix(output, ".class"); assertEquals(1, classFiles.size()); assertTrue(checkContains(classFiles, "application.CustomResource.class")); } @@ -835,7 +835,7 @@ public class JAXRSContainerTest extends ProcessorTestBase { private void verifyFiles(String ext, boolean subresourceExpected, boolean interfacesAndImpl, String schemaPackage, String resourcePackage, int expectedCount, boolean enumTypeExpected) { - List<File> files = FileUtils.getFilesRecurse(output, ".+\\." + ext + "$"); + List<File> files = FileUtils.getFilesRecurseUsingSuffix(output, "." + ext); int offset = enumTypeExpected ? 1 : 2; int size = interfacesAndImpl ? expectedCount : expectedCount - offset; if (!subresourceExpected) { @@ -858,7 +858,7 @@ public class JAXRSContainerTest extends ProcessorTestBase { } private void verifyTypes(String schemaPackage, String ext, boolean enumTypeExpected) { - List<File> files = FileUtils.getFilesRecurse(output, ".+\\." + ext + "$"); + List<File> files = FileUtils.getFilesRecurseUsingSuffix(output, "." + ext); assertEquals(enumTypeExpected ? 6 : 5, files.size()); doVerifyTypes(files, schemaPackage, ext); } diff --git a/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/WADLToJavaTest.java b/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/WADLToJavaTest.java index 25ab820..566ff01 100644 --- a/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/WADLToJavaTest.java +++ b/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/WADLToJavaTest.java @@ -135,7 +135,7 @@ public class WADLToJavaTest extends ProcessorTestBase { private void verifyFiles(String ext, boolean subresourceExpected, boolean interfacesAndImpl, String schemaPackage, String resourcePackage) { - List<File> files = FileUtils.getFilesRecurse(output, ".+\\." + ext + "$"); + List<File> files = FileUtils.getFilesRecurseUsingSuffix(output, "." + ext); int size = interfacesAndImpl ? 11 : 10; if (!subresourceExpected) { size--;
