This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/master by this push:
     new a0ea9a78d refactor away ancient ResourceUtil from tests
a0ea9a78d is described below

commit a0ea9a78d637cf8fc5548f14843a151385cfb1ad
Author: Andrus Adamchik <[email protected]>
AuthorDate: Sun May 10 20:24:30 2026 -0400

    refactor away ancient ResourceUtil from tests
---
 .../apache/cayenne/test/resource/ResourceUtil.java | 112 ---------------------
 ...enneGeneratorTaskCrossMapRelationshipsTest.java |   6 +-
 .../cayenne/tools/CayenneGeneratorTaskTest.java    |  10 +-
 .../apache/cayenne/tools/CgenWithConfigTest.java   |   6 +-
 .../apache/cayenne/tools/DbImporterTaskTest.java   |  11 +-
 .../apache/cayenne/tools/DbImporterMojoTest.java   |   3 +-
 6 files changed, 17 insertions(+), 131 deletions(-)

diff --git 
a/build-tools/cayenne-test-utilities/src/main/java/org/apache/cayenne/test/resource/ResourceUtil.java
 
b/build-tools/cayenne-test-utilities/src/main/java/org/apache/cayenne/test/resource/ResourceUtil.java
deleted file mode 100644
index e724416b5..000000000
--- 
a/build-tools/cayenne-test-utilities/src/main/java/org/apache/cayenne/test/resource/ResourceUtil.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*****************************************************************
- *   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
- *
- *    https://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.
- ****************************************************************/
-package org.apache.cayenne.test.resource;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-public class ResourceUtil {
-
-       /**
-        * Copies resources to a file, thus making it available to the caller as
-        * File.
-        */
-       public static void copyResourceToFile(String resourceName, File file) {
-               URL in = getResource(resourceName);
-
-               if (!copyResourceToFile(in, file)) {
-                       throw new RuntimeException("Error copying resource to 
file : " + file);
-               }
-       }
-
-       /**
-        * Returns a guaranteed non-null resource for a given name.
-        */
-       public static URL getResource(Class<?> relativeTo, String name) {
-               URL in = relativeTo.getResource(name);
-               if (in == null) { throw new RuntimeException("Resource not 
found: " + name); }
-               return getResource(in);
-       }
-
-       /**
-        * Returns a guaranteed non-null resource for a given name.
-        */
-       public static URL getResource(String name) {
-               URL in = 
Thread.currentThread().getContextClassLoader().getResource(name);
-               if (in == null) { throw new RuntimeException("Resource not 
found: " + name); }
-               return getResource(in);
-       }
-
-       /**
-        * Returns a guaranteed non-null resource for a given name.
-        */
-       private static URL getResource(URL classloaderUrl) {
-
-               if (classloaderUrl == null) {
-                       throw new NullPointerException("null URL");
-               }
-
-               // Fix for the issue described at
-               // https://issues.apache.org/struts/browse/SB-35
-               // Basically, spaces in filenames make maven cry.
-               try {
-                       return new 
URL(classloaderUrl.toExternalForm().replaceAll(" ", "%20"));
-               } catch (MalformedURLException e) {
-                       throw new RuntimeException("Error constructing URL.", 
e);
-               }
-       }
-
-       public static boolean copyResourceToFile(URL from, File to) {
-
-               File dir = to.getParentFile();
-               if(dir != null) {
-                       dir.mkdirs();
-               }
-
-               int bufSize = 8 * 1024;
-               try (BufferedInputStream urlin = new 
BufferedInputStream(from.openConnection().getInputStream(), bufSize);) {
-
-                       try (BufferedOutputStream fout = new 
BufferedOutputStream(new FileOutputStream(to), bufSize);) {
-                               copyPipe(urlin, fout, bufSize);
-                       }
-               } catch (IOException ioex) {
-                       return false;
-               } catch (SecurityException sx) {
-                       return false;
-               }
-               return true;
-       }
-
-       private static void copyPipe(InputStream in, OutputStream out, int 
bufSizeHint) throws IOException {
-               int read = -1;
-               byte[] buf = new byte[bufSizeHint];
-               while ((read = in.read(buf, 0, bufSizeHint)) >= 0) {
-                       out.write(buf, 0, read);
-               }
-               out.flush();
-       }
-
-}
diff --git 
a/cayenne-ant/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskCrossMapRelationshipsTest.java
 
b/cayenne-ant/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskCrossMapRelationshipsTest.java
index 2102e9fa8..fa0291f95 100644
--- 
a/cayenne-ant/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskCrossMapRelationshipsTest.java
+++ 
b/cayenne-ant/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskCrossMapRelationshipsTest.java
@@ -19,7 +19,6 @@
 
 package org.apache.cayenne.tools;
 
-import org.apache.cayenne.test.resource.ResourceUtil;
 import org.apache.tools.ant.Location;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.types.FileList;
@@ -31,6 +30,7 @@ import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStreamReader;
+import java.nio.file.Files;
 import java.util.regex.Pattern;
 
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -61,11 +61,11 @@ public class CayenneGeneratorTaskCrossMapRelationshipsTest {
                }
 
                File map = new File(destDir, "cgen-dependent.map.xml");
-               
ResourceUtil.copyResourceToFile("org/apache/cayenne/tools/cgen-dependent.map.xml",
 map);
+               
Files.copy(getClass().getResourceAsStream("/org/apache/cayenne/tools/cgen-dependent.map.xml"),
 map.toPath());
 
                File additionalMaps[] = new File[1];
                additionalMaps[0] = new File(destDir, "cgen.map.xml");
-               
ResourceUtil.copyResourceToFile("org/apache/cayenne/tools/cgen.map.xml", 
additionalMaps[0]);
+               
Files.copy(getClass().getResourceAsStream("/org/apache/cayenne/tools/cgen.map.xml"),
 additionalMaps[0].toPath());
 
                FileList additionalMapsFilelist = new FileList();
                
additionalMapsFilelist.setDir(additionalMaps[0].getParentFile());
diff --git 
a/cayenne-ant/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java
 
b/cayenne-ant/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java
index fb1149234..eb93a4a3f 100644
--- 
a/cayenne-ant/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java
+++ 
b/cayenne-ant/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java
@@ -22,7 +22,6 @@ package org.apache.cayenne.tools;
 import org.apache.cayenne.gen.CgenConfiguration;
 import org.apache.cayenne.gen.TemplateType;
 import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.test.resource.ResourceUtil;
 import org.apache.tools.ant.Location;
 import org.apache.tools.ant.Project;
 import org.junit.jupiter.api.BeforeAll;
@@ -34,6 +33,7 @@ import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStreamReader;
+import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.List;
 import java.util.regex.Pattern;
@@ -54,15 +54,15 @@ public class CayenneGeneratorTaskTest {
        private static File template;
 
        @BeforeAll
-       static void setUpClass() {
+       static void setUpClass() throws Exception {
                baseDir = tempDir.toFile();
                map = new File(baseDir, "antmap.xml");
                mapEmbeddables = new File(baseDir, "antmap-embeddables.xml");
                template = new File(baseDir, "velotemplate.vm");
 
-               ResourceUtil.copyResourceToFile("testmap.map.xml", map);
-               ResourceUtil.copyResourceToFile("embeddable.map.xml", 
mapEmbeddables);
-               
ResourceUtil.copyResourceToFile("org/apache/cayenne/tools/velotemplate.vm", 
template);
+               
Files.copy(CayenneGeneratorTaskTest.class.getResourceAsStream("/testmap.map.xml"),
 map.toPath());
+               
Files.copy(CayenneGeneratorTaskTest.class.getResourceAsStream("/embeddable.map.xml"),
 mapEmbeddables.toPath());
+               
Files.copy(CayenneGeneratorTaskTest.class.getResourceAsStream("/org/apache/cayenne/tools/velotemplate.vm"),
 template.toPath());
        }
 
        protected CayenneGeneratorTask task;
diff --git 
a/cayenne-ant/src/test/java/org/apache/cayenne/tools/CgenWithConfigTest.java 
b/cayenne-ant/src/test/java/org/apache/cayenne/tools/CgenWithConfigTest.java
index f365f61e0..72e441bb6 100644
--- a/cayenne-ant/src/test/java/org/apache/cayenne/tools/CgenWithConfigTest.java
+++ b/cayenne-ant/src/test/java/org/apache/cayenne/tools/CgenWithConfigTest.java
@@ -18,7 +18,6 @@
  ****************************************************************/
 package org.apache.cayenne.tools;
 
-import org.apache.cayenne.test.resource.ResourceUtil;
 import org.apache.tools.ant.Location;
 import org.apache.tools.ant.Project;
 import org.junit.jupiter.api.BeforeAll;
@@ -27,6 +26,7 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.io.TempDir;
 
 import java.io.File;
+import java.nio.file.Files;
 import java.nio.file.Path;
 
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -44,11 +44,11 @@ public class CgenWithConfigTest {
     private static File map;
 
     @BeforeAll
-    static void setUpClass() {
+    static void setUpClass() throws Exception {
         baseDir = tempDir.toFile();
         map = new File(baseDir, "antmap-cgen.xml");
 
-        ResourceUtil.copyResourceToFile("cgenTest.map.xml", map);
+        
Files.copy(CgenWithConfigTest.class.getResourceAsStream("/cgenTest.map.xml"), 
map.toPath());
     }
 
     protected CayenneGeneratorTask task;
diff --git 
a/cayenne-ant/src/test/java/org/apache/cayenne/tools/DbImporterTaskTest.java 
b/cayenne-ant/src/test/java/org/apache/cayenne/tools/DbImporterTaskTest.java
index 2cb2cb633..8c59d5bc0 100644
--- a/cayenne-ant/src/test/java/org/apache/cayenne/tools/DbImporterTaskTest.java
+++ b/cayenne-ant/src/test/java/org/apache/cayenne/tools/DbImporterTaskTest.java
@@ -20,7 +20,6 @@ package org.apache.cayenne.tools;
 
 import org.apache.cayenne.dbsync.reverse.dbimport.DbImportConfiguration;
 import org.apache.cayenne.test.jdbc.SQLReader;
-import org.apache.cayenne.test.resource.ResourceUtil;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.ProjectHelper;
 import org.apache.tools.ant.UnknownElement;
@@ -33,6 +32,7 @@ import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
 import java.net.URL;
+import java.nio.file.Files;
 import java.nio.file.Path;
 import java.sql.Connection;
 import java.sql.DriverManager;
@@ -108,11 +108,11 @@ public class DbImporterTaskTest {
         test("build-include-table.xml");
     }
 
-    private DbImporterTask getCdbImport(String buildFile) {
+    private DbImporterTask getCdbImport(String buildFile) throws IOException {
         Project project = new Project();
 
         File map = distDir(buildFile);
-        ResourceUtil.copyResourceToFile(getPackagePath() + "/" + buildFile, 
map);
+        Files.copy(getClass().getResourceAsStream("/" + getPackagePath() + "/" 
+ buildFile), map.toPath());
         ProjectHelper.configureProject(project, map);
 
         UnknownElement task = (UnknownElement) 
project.getTargets().get("dist").getTasks()[0];
@@ -131,8 +131,7 @@ public class DbImporterTaskTest {
 
         URL mapUrlRes = this.getClass().getResource(mapFile.getName() + 
"-result");
         assertTrue(mapUrlRes != null && new File(mapUrlRes.toURI()).exists());
-        assertTrue(ResourceUtil
-                .copyResourceToFile(mapUrlRes, new 
File(mapFile.getParentFile(), mapFile.getName() + "-result")));
+        Files.copy(mapUrlRes.openStream(), new File(mapFile.getParentFile(), 
mapFile.getName() + "-result").toPath());
 
 
         File mapFileCopy = distDir("copy-" + mapFile.getName());
@@ -183,7 +182,7 @@ public class DbImporterTaskTest {
 
     private void prepareDatabase(String sqlFile, DbImportConfiguration 
dbImportConfiguration) throws Exception {
 
-        URL sqlUrl = ResourceUtil.getResource(getClass(), sqlFile + ".sql");
+        URL sqlUrl = getClass().getResource(sqlFile + ".sql");
         assertNotNull(sqlUrl);
 
         
Class.forName(dbImportConfiguration.getDriver()).getDeclaredConstructor().newInstance();
diff --git 
a/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
 
b/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
index ce798de98..8431ffd9f 100644
--- 
a/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
+++ 
b/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
@@ -23,7 +23,6 @@ import 
org.apache.cayenne.dbsync.reverse.dbimport.DbImportConfiguration;
 import org.apache.cayenne.dbsync.reverse.dbimport.IncludeTable;
 import org.apache.cayenne.dbsync.reverse.dbimport.Schema;
 import org.apache.cayenne.test.jdbc.SQLReader;
-import org.apache.cayenne.test.resource.ResourceUtil;
 import org.apache.maven.api.plugin.testing.InjectMojo;
 import org.apache.maven.api.plugin.testing.MojoTest;
 import org.apache.maven.plugin.MojoExecutionException;
@@ -530,7 +529,7 @@ public class DbImporterMojoTest {
 
     private void prepareDatabase(String sqlFile, DbImportDataSourceConfig 
dataSource) throws Exception {
 
-        URL sqlUrl = 
Objects.requireNonNull(ResourceUtil.getResource(DbImporterMojoTest.class, 
"dbimport/" + sqlFile + ".sql"));
+        URL sqlUrl = 
Objects.requireNonNull(DbImporterMojoTest.class.getResource("dbimport/" + 
sqlFile + ".sql"));
 
         // TODO: refactor to common DB management code... E.g. 
bootique-jdbc-test?
 

Reply via email to