You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by ah...@apache.org on 2023/02/25 10:11:47 UTC
[causeway] branch master updated: CAUSEWAY-3304: promote _Files -> FileUtils to GA
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/causeway.git
The following commit(s) were added to refs/heads/master by this push:
new 9f718780b6 CAUSEWAY-3304: promote _Files -> FileUtils to GA
9f718780b6 is described below
commit 9f718780b6ba93bc5be74389fe7252665a4d755b
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat Feb 25 11:11:42 2023 +0100
CAUSEWAY-3304: promote _Files -> FileUtils to GA
---
.../base/_Files.java => io/FileUtils.java} | 101 ++++++++++++++++++---
.../tooling/cli/projdoc/ProjectDocModel.java | 8 +-
.../tooling/cli/projdoc/ProjectDocWriter.java | 6 +-
.../tooling/cli/test/adocfix/ProjectSampler.java | 16 ++--
.../tooling/j2adoc/test/ProjectSampler.java | 16 ++--
.../tooling/javamodel/AnalyzerConfigFactory.java | 20 ++--
.../tooling/javamodel/test/AnalyzerTest.java | 4 +-
.../compiler/JavaSourceCompilingClassLoader.java | 6 +-
.../demoshowcases/value/ValueTypeGenTemplate.java | 8 +-
.../value/ValueTypeGenTemplateTest.java | 24 ++---
.../projectmodel/gradle/GradleSettingsFactory.java | 8 +-
.../projectmodel/maven/SimpleModelResolver.java | 4 +-
.../services/TranslationsResolverWicketTest.java | 4 +-
13 files changed, 151 insertions(+), 74 deletions(-)
diff --git a/commons/src/main/java/org/apache/causeway/commons/internal/base/_Files.java b/commons/src/main/java/org/apache/causeway/commons/io/FileUtils.java
similarity index 65%
rename from commons/src/main/java/org/apache/causeway/commons/internal/base/_Files.java
rename to commons/src/main/java/org/apache/causeway/commons/io/FileUtils.java
index a67522ee81..77675e0823 100644
--- a/commons/src/main/java/org/apache/causeway/commons/internal/base/_Files.java
+++ b/commons/src/main/java/org/apache/causeway/commons/io/FileUtils.java
@@ -16,12 +16,16 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.causeway.commons.internal.base;
+package org.apache.causeway.commons.io;
import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
+import java.nio.file.NoSuchFileException;
+import java.nio.file.NotDirectoryException;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
import java.util.LinkedHashSet;
@@ -33,13 +37,52 @@ import java.util.function.Predicate;
import org.springframework.lang.Nullable;
+import org.apache.causeway.commons.functional.Try;
import org.apache.causeway.commons.internal.exceptions._Exceptions;
import lombok.NonNull;
import lombok.SneakyThrows;
import lombok.val;
+import lombok.experimental.UtilityClass;
-public class _Files {
+/**
+ * Utilities related to the <i>Java</i> {@link File} type.
+ *
+ * @since 2.0 {@index}
+ */
+@UtilityClass
+public class FileUtils {
+
+ /**
+ * Opens an {@link InputStream} for give {@link File}
+ * and passes it to given {@link Consumer} for consumption,
+ * then finally closes it.
+ * @return either a successful or failed {@link Try} (non-null);
+ * if the file is null or not readable, the failure may hold a {@link NoSuchFileException} or other i/o related exceptions
+ */
+ public Try<Void> tryRead(final @Nullable File file, final @NonNull Consumer<InputStream> inputStreamConsumer) {
+ return Try.run(()->{
+ try(val inputStream = new FileInputStream(existingFileElseFail(file))){
+ inputStreamConsumer.accept(inputStream);
+ }
+ });
+ }
+
+ /**
+ * Opens an {@link InputStream} for give {@link File}
+ * and passes it to given {@link Function} for applying (mapping),
+ * then finally closes it.
+ * @return either a successful or failed {@link Try} (non-null),
+ * where in the success case, the Try is holding the returned value from the given {@link Function inputStreamMapper};
+ * if the file is null or not readable, the failure may hold a {@link NoSuchFileException} or other i/o related exceptions
+ */
+ public <T> Try<T> tryMap(final @Nullable File file, final @NonNull Function<InputStream, T> inputStreamMapper) {
+ return Try.call(()->{
+ try(val inputStream = new FileInputStream(existingFileElseFail(file))){
+ return inputStreamMapper.apply(inputStream);
+ }
+ });
+ }
/**
* Recursive file search, starting at {@code dir}, going deeper based on predicate
@@ -51,7 +94,7 @@ public class _Files {
* @return set of matching files
* @throws IOException
*/
- public static Set<File> searchFiles(
+ public Set<File> searchFiles(
final File dir,
final Predicate<File> dirFilter,
final Predicate<File> fileFilter) throws IOException {
@@ -70,7 +113,7 @@ public class _Files {
* @param onFileFound
* @throws IOException
*/
- public static void searchFiles(
+ public void searchFiles(
final File dir,
final Predicate<File> dirFilter,
final Predicate<File> fileFilter,
@@ -102,7 +145,7 @@ public class _Files {
* is not {@code null} and the 'file I/O system' can handle this call without
* throwing an exception.
*/
- public static Optional<String> canonicalPath(@Nullable final File file) {
+ public Optional<String> canonicalPath(@Nullable final File file) {
if(file==null) {
return Optional.empty();
}
@@ -120,7 +163,7 @@ public class _Files {
* @return prefix removed from {@code absolutePath}, if {@code commonPath} appears to be a prefix
* of {@code absolutePath}, otherwise returns the {@code absolutePath} unmodified.
*/
- public static String toRelativePath(@NonNull final String commonPath, @NonNull final String absolutePath) {
+ public String toRelativePath(@NonNull final String commonPath, @NonNull final String absolutePath) {
if(absolutePath.startsWith(commonPath)) {
return absolutePath.substring(commonPath.length());
}
@@ -132,7 +175,7 @@ public class _Files {
* @param file - the file to be deleted (null-able)
*/
@SneakyThrows
- public static void deleteFile(@Nullable final File file) {
+ public void deleteFile(@Nullable final File file) {
if(file==null
|| !file.exists()
|| file.isDirectory()) {
@@ -155,7 +198,7 @@ public class _Files {
* Returns a temp directory with delete-on-exit policy.
*/
@SneakyThrows
- public static File tempDir(final String name) {
+ public File tempDir(final String name) {
val tempDir = Files.createTempDirectory(name).toFile();
tempDir.deleteOnExit();
return tempDir;
@@ -174,7 +217,7 @@ public class _Files {
* If directory is null acts as a no-op.
* @throws IllegalArgumentException if any pre-existing file is in conflict
*/
- public static File makeDir(final @Nullable File directory) {
+ public File makeDir(final @Nullable File directory) {
if(directory==null) {
return directory; // no-op
}
@@ -197,30 +240,64 @@ public class _Files {
/**
* Optionally given file, based on whether non-null and exists and is a file (not a directory).
*/
- public static Optional<File> existingFile(final @Nullable File file) {
+ public Optional<File> existingFile(final @Nullable File file) {
return file!=null
&& file.isFile()
? Optional.of(file)
: Optional.empty();
}
+ /**
+ * Guard given file against null, non-existence and not representing a file.
+ */
+ @SneakyThrows
+ public File existingFileElseFail(final @Nullable File file) {
+ if(file==null) {
+ throw new NoSuchFileException("<null>");
+ }
+ if(!file.exists()) {
+ throw new NoSuchFileException(file.getAbsolutePath());
+ }
+ if(!file.isFile()) {
+ throw new NoSuchFileException(file.getAbsolutePath());
+ }
+ return file;
+ }
+
/**
* Optionally given file, based on whether non-null and exists and is a directory (not a file).
*/
- public static Optional<File> existingDirectory(final @Nullable File file) {
+ public Optional<File> existingDirectory(final @Nullable File file) {
return file!=null
&& file.isDirectory()
? Optional.of(file)
: Optional.empty();
}
+ /**
+ * Guard given file against null, non-existence and not representing a directory (not a file).
+ */
+ @SneakyThrows
+ public File existingDirectoryElseFail(final @Nullable File file) {
+ if(file==null) {
+ throw new NoSuchFileException("<null>");
+ }
+ if(!file.exists()) {
+ throw new NoSuchFileException(file.getAbsolutePath());
+ }
+ if(!file.isDirectory()) {
+ throw new NotDirectoryException(file.getAbsolutePath());
+ }
+ return file;
+ }
+
/**
* Copy {@code from} file {@code to} file, replacing existing.
* @param from
* @param to
*/
@SneakyThrows
- public static void copy(final @NonNull File from, final @NonNull File to) {
+ public void copy(final @NonNull File from, final @NonNull File to) {
Files.copy(from.toPath(), to.toPath(), StandardCopyOption.REPLACE_EXISTING);
}
diff --git a/tooling/cli/src/main/java/org/apache/causeway/tooling/cli/projdoc/ProjectDocModel.java b/tooling/cli/src/main/java/org/apache/causeway/tooling/cli/projdoc/ProjectDocModel.java
index 13895eb709..4aacc010ba 100644
--- a/tooling/cli/src/main/java/org/apache/causeway/tooling/cli/projdoc/ProjectDocModel.java
+++ b/tooling/cli/src/main/java/org/apache/causeway/tooling/cli/projdoc/ProjectDocModel.java
@@ -43,10 +43,10 @@ import org.asciidoctor.ast.Document;
import org.springframework.lang.Nullable;
import org.apache.causeway.commons.collections.Can;
-import org.apache.causeway.commons.internal.base._Files;
import org.apache.causeway.commons.internal.base._Strings;
import org.apache.causeway.commons.internal.exceptions._Exceptions;
import org.apache.causeway.commons.internal.graph._Graph;
+import org.apache.causeway.commons.io.FileUtils;
import org.apache.causeway.tooling.c4.C4;
import org.apache.causeway.tooling.cli.CliConfig;
import org.apache.causeway.tooling.cli.adocfix.OrphanedIncludeStatementFixer;
@@ -337,7 +337,7 @@ public class ProjectDocModel {
cell(table, headRow, "Coordinates");
cell(table, headRow, "Description");
- val projRoot = _Files.canonicalPath(projTree.getProjectDirectory())
+ val projRoot = FileUtils.canonicalPath(projTree.getProjectDirectory())
.orElseThrow(()->_Exceptions.unrecoverable("cannot resolve project root"));
sectionModules
@@ -346,11 +346,11 @@ public class ProjectDocModel {
gatherAdocFiles(module.getProjectDirectory(), onAdocFile);
}
- val projPath = _Files.canonicalPath(module.getProjectDirectory()).get();
+ val projPath = FileUtils.canonicalPath(module.getProjectDirectory()).get();
val projRelativePath =
Optional.ofNullable(
_Strings.emptyToNull(
- _Files.toRelativePath(projRoot, projPath)))
+ FileUtils.toRelativePath(projRoot, projPath)))
.orElse("/");
groupDiagram.collect(module);
diff --git a/tooling/cli/src/main/java/org/apache/causeway/tooling/cli/projdoc/ProjectDocWriter.java b/tooling/cli/src/main/java/org/apache/causeway/tooling/cli/projdoc/ProjectDocWriter.java
index 398ff9aec4..de29427046 100644
--- a/tooling/cli/src/main/java/org/apache/causeway/tooling/cli/projdoc/ProjectDocWriter.java
+++ b/tooling/cli/src/main/java/org/apache/causeway/tooling/cli/projdoc/ProjectDocWriter.java
@@ -23,8 +23,8 @@ import java.util.function.BiConsumer;
import org.asciidoctor.ast.Document;
-import org.apache.causeway.commons.internal.base._Files;
import org.apache.causeway.commons.internal.base._Refs;
+import org.apache.causeway.commons.io.FileUtils;
import org.apache.causeway.tooling.cli.CliConfig;
import org.apache.causeway.tooling.j2adoc.J2AdocContext;
import org.apache.causeway.tooling.j2adoc.J2AdocUnit;
@@ -79,7 +79,7 @@ final class ProjectDocWriter {
if(mode.includeIndex()) {
// delete all generated documents in the index
- _Files.searchFiles(indexRootFolder, dir->true, file-> {
+ FileUtils.searchFiles(indexRootFolder, dir->true, file-> {
val fileName = file.getName();
val fileAbsolutePath = file.getAbsolutePath();
return fileName.endsWith(".adoc") &&
@@ -89,7 +89,7 @@ final class ProjectDocWriter {
.stream()
.peek(adocFile->log.debug("deleting file: {}", adocFile.getAbsolutePath()))
.peek(__->deleteCount.incAndGet())
- .forEach(_Files::deleteFile);
+ .forEach(FileUtils::deleteFile);
// write document index
for(val unit : j2aContext.getUnitIndex().values()) {
diff --git a/tooling/cli/src/test/java/org/apache/causeway/tooling/cli/test/adocfix/ProjectSampler.java b/tooling/cli/src/test/java/org/apache/causeway/tooling/cli/test/adocfix/ProjectSampler.java
index 0b7cf98be8..00bb43e910 100644
--- a/tooling/cli/src/test/java/org/apache/causeway/tooling/cli/test/adocfix/ProjectSampler.java
+++ b/tooling/cli/src/test/java/org/apache/causeway/tooling/cli/test/adocfix/ProjectSampler.java
@@ -21,8 +21,8 @@ package org.apache.causeway.tooling.cli.test.adocfix;
import java.io.File;
import java.util.Set;
-import org.apache.causeway.commons.internal.base._Files;
import org.apache.causeway.commons.internal.functions._Predicates;
+import org.apache.causeway.commons.io.FileUtils;
import lombok.SneakyThrows;
@@ -31,21 +31,21 @@ final class ProjectSampler {
static File local() {
return new File("./").getAbsoluteFile();
}
-
+
static File apacheCausewayRoot() {
return new File("./").getAbsoluteFile().getParentFile().getParentFile().getParentFile();
}
-
+
static File apacheCausewayApplib() {
return new File(apacheCausewayRoot(), "api/applib");
}
@SneakyThrows
- public static Set<File> adocFiles(File folder) {
- return _Files.searchFiles(
- folder,
- _Predicates.alwaysTrue(),
+ public static Set<File> adocFiles(final File folder) {
+ return FileUtils.searchFiles(
+ folder,
+ _Predicates.alwaysTrue(),
file->file.getName().endsWith(".adoc"));
}
-
+
}
diff --git a/tooling/java2adoc/src/test/java/org/apache/causeway/tooling/j2adoc/test/ProjectSampler.java b/tooling/java2adoc/src/test/java/org/apache/causeway/tooling/j2adoc/test/ProjectSampler.java
index c6744f13ff..35e15c30eb 100644
--- a/tooling/java2adoc/src/test/java/org/apache/causeway/tooling/j2adoc/test/ProjectSampler.java
+++ b/tooling/java2adoc/src/test/java/org/apache/causeway/tooling/j2adoc/test/ProjectSampler.java
@@ -21,8 +21,8 @@ package org.apache.causeway.tooling.j2adoc.test;
import java.io.File;
import java.util.Set;
-import org.apache.causeway.commons.internal.base._Files;
import org.apache.causeway.commons.internal.functions._Predicates;
+import org.apache.causeway.commons.io.FileUtils;
import lombok.SneakyThrows;
@@ -31,21 +31,21 @@ final class ProjectSampler {
static File local() {
return new File("./").getAbsoluteFile();
}
-
+
static File apacheCausewayRoot() {
return new File("./").getAbsoluteFile().getParentFile().getParentFile().getParentFile();
}
-
+
static File apacheCausewayApplib() {
return new File(apacheCausewayRoot(), "api/applib");
}
@SneakyThrows
- public static Set<File> adocFiles(File folder) {
- return _Files.searchFiles(
- folder,
- _Predicates.alwaysTrue(),
+ public static Set<File> adocFiles(final File folder) {
+ return FileUtils.searchFiles(
+ folder,
+ _Predicates.alwaysTrue(),
file->file.getName().endsWith(".adoc"));
}
-
+
}
diff --git a/tooling/javamodel/src/main/java/org/apache/causeway/tooling/javamodel/AnalyzerConfigFactory.java b/tooling/javamodel/src/main/java/org/apache/causeway/tooling/javamodel/AnalyzerConfigFactory.java
index 556e11580d..fdf2946113 100644
--- a/tooling/javamodel/src/main/java/org/apache/causeway/tooling/javamodel/AnalyzerConfigFactory.java
+++ b/tooling/javamodel/src/main/java/org/apache/causeway/tooling/javamodel/AnalyzerConfigFactory.java
@@ -22,7 +22,7 @@ import java.io.File;
import java.util.EnumSet;
import java.util.List;
-import org.apache.causeway.commons.internal.base._Files;
+import org.apache.causeway.commons.io.FileUtils;
import guru.nidi.codeassert.config.AnalyzerConfig;
import guru.nidi.codeassert.config.Language;
@@ -32,18 +32,18 @@ import lombok.experimental.UtilityClass;
@UtilityClass
public class AnalyzerConfigFactory {
- public static Maven maven(File projDir, Language ... languages) {
+ public static Maven maven(final File projDir, final Language ... languages) {
return new MavenExt(projDir, languages);
}
- public static Maven mavenTest(File projDir, Language ... languages) {
+ public static Maven mavenTest(final File projDir, final Language ... languages) {
return new MavenExtTest(projDir, languages);
}
// -- HELPER
private static class AnalyzerConfigExt extends AnalyzerConfig {
- public AnalyzerConfigExt(EnumSet<Language> languages, List<Path> sources, List<Path> classes) {
+ public AnalyzerConfigExt(final EnumSet<Language> languages, final List<Path> sources, final List<Path> classes) {
super(languages, sources, classes);
}
}
@@ -52,20 +52,20 @@ public class AnalyzerConfigFactory {
private final File projDir;
- public MavenExt(File projDir, Language ... languages) {
+ public MavenExt(final File projDir, final Language ... languages) {
super(null, languages);
this.projDir = projDir;
}
@Override
- public AnalyzerConfig main(String... packages) {
+ public AnalyzerConfig main(final String... packages) {
return new AnalyzerConfigExt(getLanguages(),
path(packages, canonicalPath("src/main/$language/")),
path(packages, canonicalPath("target/classes/")));
}
- protected String canonicalPath(String relPath) {
- return _Files.canonicalPath(new File(projDir, relPath))
+ protected String canonicalPath(final String relPath) {
+ return FileUtils.canonicalPath(new File(projDir, relPath))
.orElse(relPath);
}
@@ -73,12 +73,12 @@ public class AnalyzerConfigFactory {
private static class MavenExtTest extends MavenExt {
- public MavenExtTest(File projDir, Language[] languages) {
+ public MavenExtTest(final File projDir, final Language[] languages) {
super(projDir, languages);
}
@Override
- public AnalyzerConfig main(String... packages) {
+ public AnalyzerConfig main(final String... packages) {
return new AnalyzerConfigExt(getLanguages(),
path(packages, canonicalPath("src/test/$language/")),
path(packages, canonicalPath("target/test-classes/")));
diff --git a/tooling/javamodel/src/test/java/org/apache/causeway/tooling/javamodel/test/AnalyzerTest.java b/tooling/javamodel/src/test/java/org/apache/causeway/tooling/javamodel/test/AnalyzerTest.java
index f42ae6a38c..95e38c0352 100644
--- a/tooling/javamodel/src/test/java/org/apache/causeway/tooling/javamodel/test/AnalyzerTest.java
+++ b/tooling/javamodel/src/test/java/org/apache/causeway/tooling/javamodel/test/AnalyzerTest.java
@@ -27,7 +27,7 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
import org.apache.causeway.commons.collections.Can;
-import org.apache.causeway.commons.internal.base._Files;
+import org.apache.causeway.commons.io.FileUtils;
import org.apache.causeway.tooling.javamodel.AnalyzerConfigFactory;
import org.apache.causeway.tooling.javamodel.ast.AnyTypeDeclaration;
import org.apache.causeway.tooling.javamodel.ast.CompilationUnits;
@@ -49,7 +49,7 @@ class AnalyzerTest {
final Stream<String> sources = analyzerConfig.getSources(JAVA)
.stream()
.map(File::getAbsolutePath)
- .map(sourceFile->_Files.toRelativePath(commonPath, sourceFile));
+ .map(sourceFile->FileUtils.toRelativePath(commonPath, sourceFile));
ProjectSamples.assertHasApacheCausewayRuntimeSourceFiles(sources);
}
diff --git a/tooling/metaprog/src/main/java/org/apache/causeway/tooling/metaprog/compiler/JavaSourceCompilingClassLoader.java b/tooling/metaprog/src/main/java/org/apache/causeway/tooling/metaprog/compiler/JavaSourceCompilingClassLoader.java
index c10a46efdf..13750b46ff 100644
--- a/tooling/metaprog/src/main/java/org/apache/causeway/tooling/metaprog/compiler/JavaSourceCompilingClassLoader.java
+++ b/tooling/metaprog/src/main/java/org/apache/causeway/tooling/metaprog/compiler/JavaSourceCompilingClassLoader.java
@@ -31,7 +31,7 @@ import javax.tools.ToolProvider;
import org.apache.causeway.commons.collections.Can;
import org.apache.causeway.commons.internal.base._Bytes;
-import org.apache.causeway.commons.internal.base._Files;
+import org.apache.causeway.commons.io.FileUtils;
import org.apache.causeway.commons.internal.collections._Maps;
import org.apache.causeway.commons.internal.functions._Functions;
@@ -52,12 +52,12 @@ public class JavaSourceCompilingClassLoader extends ClassLoader {
@SneakyThrows
private JavaSourceCompilingClassLoader() {
// purely for the purpose of communicating with the compiler
- this.root = _Files.tempDir("causeway-tooling-cl").toPath();
+ this.root = FileUtils.tempDir("causeway-tooling-cl").toPath();
log.info("tmp dir created in {}", root);
Thread printingHook = new Thread(() -> {
try {
- _Files.deleteDirectory(root.toFile());
+ FileUtils.deleteDirectory(root.toFile());
log.info("Done, cleaning up temp files.");
} catch (Exception e) {
System.err.printf("%s: Cleaning up temp files FAILED.%n", getClass().getSimpleName());
diff --git a/tooling/metaprog/src/main/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplate.java b/tooling/metaprog/src/main/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplate.java
index 7ba50d9e99..4534c24250 100644
--- a/tooling/metaprog/src/main/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplate.java
+++ b/tooling/metaprog/src/main/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplate.java
@@ -29,7 +29,7 @@ import java.util.stream.Stream;
import org.springframework.util.ClassUtils;
import org.apache.causeway.commons.collections.Can;
-import org.apache.causeway.commons.internal.base._Files;
+import org.apache.causeway.commons.io.FileUtils;
import org.apache.causeway.commons.internal.base._Refs;
import org.apache.causeway.commons.internal.base._Strings;
import org.apache.causeway.commons.internal.base._Text;
@@ -165,11 +165,11 @@ public class ValueTypeGenTemplate {
.getAbsoluteFile();
}
private final File templateFile(final Config config) {
- return _Files.existingFile(templateFile(config, config.templateVariant)) // existence is optional
+ return FileUtils.existingFile(templateFile(config, config.templateVariant)) // existence is optional
.orElseGet(()->{
// existence is mandatory
val defaultTemplateFile = templateFile(config, TemplateVariant.DEFAULT);
- return _Files.existingFile(defaultTemplateFile)
+ return FileUtils.existingFile(defaultTemplateFile)
.orElseThrow(()->_Exceptions.noSuchElement("template %s not found", defaultTemplateFile));
});
}
@@ -262,7 +262,7 @@ public class ValueTypeGenTemplate {
final Map<String, String> templateVars, final File template, final File genTarget) {
val templateLines = _Text.readLinesFromFile(template, StandardCharsets.UTF_8);
- _Files.makeDir(genTarget.getParentFile());
+ FileUtils.makeDir(genTarget.getParentFile());
_Text.writeLinesToFile(templateLines
.map(line->templateProcessor(templateVars, line)),
diff --git a/tooling/metaprog/src/test/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplateTest.java b/tooling/metaprog/src/test/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplateTest.java
index f5b2f322f8..8753c6c832 100644
--- a/tooling/metaprog/src/test/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplateTest.java
+++ b/tooling/metaprog/src/test/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplateTest.java
@@ -35,7 +35,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail;
import org.apache.causeway.commons.collections.Can;
-import org.apache.causeway.commons.internal.base._Files;
+import org.apache.causeway.commons.io.FileUtils;
import org.apache.causeway.commons.internal.base._Text;
import org.apache.causeway.commons.internal.collections._Sets;
import org.apache.causeway.commons.internal.functions._Predicates;
@@ -65,7 +65,7 @@ class ValueTypeGenTemplateTest {
val demoDomainShowCase = new File(demoDomainRoot, config.getJavaPackage().replace('.', '/'));
// list reference source files
- val refShowcaseFiles = _Files.searchFiles(demoDomainShowCase, _Predicates.alwaysTrue(), file->
+ val refShowcaseFiles = FileUtils.searchFiles(demoDomainShowCase, _Predicates.alwaysTrue(), file->
file.getName().endsWith(".java")
|| file.getName().endsWith(".xml")
|| file.getName().endsWith(".adoc")
@@ -91,8 +91,8 @@ class ValueTypeGenTemplateTest {
@BeforeAll
static void setup() {
outputRootDir = PERSIST
- ? _Files.makeDir(new File("D:/tmp/valueTypes"))
- : _Files.tempDir("casueway-tooling-showcases");
+ ? FileUtils.makeDir(new File("D:/tmp/valueTypes"))
+ : FileUtils.tempDir("casueway-tooling-showcases");
log.info("tmp dir created in {}", outputRootDir);
}
@@ -106,10 +106,10 @@ class ValueTypeGenTemplateTest {
final Set<File> setB, final File rootB) {
assertEquals(
Can.ofCollection(setA)
- .map(_Files.realtiveFileName(rootA))
+ .map(FileUtils.realtiveFileName(rootA))
.sorted(Comparator.naturalOrder()),
Can.ofCollection(setB)
- .map(_Files.realtiveFileName(rootB))
+ .map(FileUtils.realtiveFileName(rootB))
.sorted(Comparator.naturalOrder()));
}
@@ -117,19 +117,19 @@ class ValueTypeGenTemplateTest {
@SuppressWarnings("unused")
private void copyFiles(final Collection<File> generatedFiles, final File sourceRoot, final File destinationRoot) {
generatedFiles.forEach(src->{
- val dest = new File(destinationRoot, _Files.realtiveFileName(sourceRoot, src));
- _Files.makeDir(dest.getParentFile());
- _Files.copy(src, dest);
+ val dest = new File(destinationRoot, FileUtils.realtiveFileName(sourceRoot, src));
+ FileUtils.makeDir(dest.getParentFile());
+ FileUtils.copy(src, dest);
});
}
@SuppressWarnings("unused")
private void copyMissingFiles(final Collection<File> generatedFiles, final File sourceRoot, final File destinationRoot) {
generatedFiles.forEach(src->{
- val dest = new File(destinationRoot, _Files.realtiveFileName(sourceRoot, src));
+ val dest = new File(destinationRoot, FileUtils.realtiveFileName(sourceRoot, src));
if(!dest.exists()) {
- _Files.makeDir(dest.getParentFile());
- _Files.copy(src, dest);
+ FileUtils.makeDir(dest.getParentFile());
+ FileUtils.copy(src, dest);
}
});
}
diff --git a/tooling/projectmodel/src/main/java/org/apache/causeway/tooling/projectmodel/gradle/GradleSettingsFactory.java b/tooling/projectmodel/src/main/java/org/apache/causeway/tooling/projectmodel/gradle/GradleSettingsFactory.java
index c322739e1e..925a58f41a 100644
--- a/tooling/projectmodel/src/main/java/org/apache/causeway/tooling/projectmodel/gradle/GradleSettingsFactory.java
+++ b/tooling/projectmodel/src/main/java/org/apache/causeway/tooling/projectmodel/gradle/GradleSettingsFactory.java
@@ -20,7 +20,7 @@ package org.apache.causeway.tooling.projectmodel.gradle;
import java.io.File;
-import org.apache.causeway.commons.internal.base._Files;
+import org.apache.causeway.commons.io.FileUtils;
import org.apache.causeway.commons.internal.base._Strings;
import org.apache.causeway.commons.internal.exceptions._Exceptions;
import org.apache.causeway.tooling.projectmodel.ArtifactCoordinates;
@@ -39,7 +39,7 @@ public class GradleSettingsFactory {
public static GradleSettings generateFromMaven(ProjectNode projTree, String rootProjectName) {
- val rootPath = _Files.canonicalPath(projTree.getProjectDirectory())
+ val rootPath = FileUtils.canonicalPath(projTree.getProjectDirectory())
.orElseThrow(()->_Exceptions.unrecoverable("cannot resolve project root"));
val gradleSettings = new GradleSettings(rootProjectName);
@@ -65,10 +65,10 @@ public class GradleSettingsFactory {
}
private static String toCanonicalRelativePath(ProjectNode projModel, String rootPath) {
- val canonicalProjDir = _Files.canonicalPath(projModel.getProjectDirectory())
+ val canonicalProjDir = FileUtils.canonicalPath(projModel.getProjectDirectory())
.orElseThrow(()->_Exceptions.unrecoverable("cannot resolve relative path"));
- val relativePath = _Files.toRelativePath(rootPath, canonicalProjDir);
+ val relativePath = FileUtils.toRelativePath(rootPath, canonicalProjDir);
return _Strings.prefix(relativePath.replace('\\', '/'), "/");
}
diff --git a/tooling/projectmodel/src/main/java/org/apache/causeway/tooling/projectmodel/maven/SimpleModelResolver.java b/tooling/projectmodel/src/main/java/org/apache/causeway/tooling/projectmodel/maven/SimpleModelResolver.java
index 01ce60a877..ab0ab71987 100644
--- a/tooling/projectmodel/src/main/java/org/apache/causeway/tooling/projectmodel/maven/SimpleModelResolver.java
+++ b/tooling/projectmodel/src/main/java/org/apache/causeway/tooling/projectmodel/maven/SimpleModelResolver.java
@@ -37,7 +37,7 @@ import org.apache.maven.model.resolution.InvalidRepositoryException;
import org.apache.maven.model.resolution.ModelResolver;
import org.apache.maven.model.resolution.UnresolvableModelException;
-import org.apache.causeway.commons.internal.base._Files;
+import org.apache.causeway.commons.io.FileUtils;
import lombok.Getter;
import lombok.SneakyThrows;
@@ -170,7 +170,7 @@ public class SimpleModelResolver implements ModelResolver {
val localRootPath = projectRoot.getCanonicalPath();
- _Files.searchFiles(projectRoot,
+ FileUtils.searchFiles(projectRoot,
file->
!file.getName().startsWith(".")
&& !directoriesToIgnore.contains(file.getName()),
diff --git a/viewers/wicket/viewer/src/test/java/org/apache/causeway/viewer/wicket/viewer/services/TranslationsResolverWicketTest.java b/viewers/wicket/viewer/src/test/java/org/apache/causeway/viewer/wicket/viewer/services/TranslationsResolverWicketTest.java
index 2302d00c8d..5910d4a2a4 100644
--- a/viewers/wicket/viewer/src/test/java/org/apache/causeway/viewer/wicket/viewer/services/TranslationsResolverWicketTest.java
+++ b/viewers/wicket/viewer/src/test/java/org/apache/causeway/viewer/wicket/viewer/services/TranslationsResolverWicketTest.java
@@ -26,7 +26,7 @@ import org.junit.jupiter.api.Test;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import org.apache.causeway.commons.internal.base._Files;
+import org.apache.causeway.commons.io.FileUtils;
import lombok.val;
@@ -36,7 +36,7 @@ class TranslationsResolverWicketTest {
@BeforeEach
public void setUp() throws Exception {
- tempDir = _Files.tempDir("foo");
+ tempDir = FileUtils.tempDir("foo");
}
@Test