dsmiley commented on code in PR #3263:
URL: https://github.com/apache/solr/pull/3263#discussion_r2001724020


##########
solr/core/src/test/org/apache/solr/cli/SolrCLIZkToolsTest.java:
##########
@@ -131,12 +134,11 @@ public void testDownconfig() throws Exception {
     ConfigSetDownloadTool downTool = new ConfigSetDownloadTool();
     int res = downTool.runTool(SolrCLI.processCommandLineArgs(downTool, args));
     assertEquals("Download should have succeeded.", 0, res);
-    verifyZkLocalPathsMatch(
-        Paths.get(tmp.toAbsolutePath().toString(), "conf"), 
"/configs/downconfig1");
+    verifyZkLocalPathsMatch(tmp.toAbsolutePath().resolve("conf"), 
"/configs/downconfig1");
 

Review Comment:
   temp directories are always absolute.  Boy developers *love* calling 
toAbsolutePath for no reason :laugh-cry:



##########
solr/core/src/test/org/apache/solr/cli/ZkSubcommandsTest.java:
##########
@@ -490,7 +523,7 @@ public void testGet() throws Exception {
 
     final String standardOutput2 = 
byteStream2.toString(StandardCharsets.UTF_8);
     assertTrue(standardOutput2.startsWith("Copying from 'zk:/getNode'"));
-    byte[] fileBytes = 
Files.readAllBytes(Paths.get(localFile.getAbsolutePath()));
+    byte[] fileBytes = Files.readAllBytes(localFile.toAbsolutePath());

Review Comment:
   why call toAbsolutePath?  there's no point; we're going to read it not show 
it or pass it off somewhere.  I observe many developers love calling 
getAbsolutePath but I don't get the point.



##########
solr/core/src/test/org/apache/solr/cli/ZkSubcommandsTest.java:
##########
@@ -398,66 +411,82 @@ public void testUpConfigLinkConfigClearZk() throws 
Exception {
     assertEquals(confsetname, collectionProps.getStr("configName"));
 
     // test down config
-    File configSetDir =
-        new File(
-            tmpDir, "solrtest-confdropspot-" + this.getClass().getName() + "-" 
+ System.nanoTime());
-    assertFalse(configSetDir.exists());
+    Path configSetDir =
+        tmpDir.resolve(
+            "solrtest-confdropspot-" + this.getClass().getName() + "-" + 
System.nanoTime());
+    assertFalse(Files.exists(configSetDir));
 
     args =
         new String[] {
           "downconfig",
           "--conf-name",
           confsetname,
           "--conf-dir",
-          configSetDir.getAbsolutePath(),
+          configSetDir.toAbsolutePath().toString(),
           "-z",
           zkServer.getZkAddress()
         };
 
     ConfigSetDownloadTool configSetDownloadTool = new ConfigSetDownloadTool();
     assertEquals(0, runTool(args, configSetDownloadTool));
 
-    confDir = new File(configSetDir, "conf");
-    files = confDir.listFiles();
-    zkFiles =
-        zkClient.getChildren(ZkConfigSetService.CONFIGS_ZKNODE + "/" + 
confsetname, null, true);
-    assertEquals(
-        "Comparing original conf files that were to be uploadedto what is in 
ZK",
-        files.length,
-        zkFiles.size());
-    assertEquals("Comparing downloaded files to what is in ZK", files.length, 
zkFiles.size());
+    Path confSetDir = configSetDir.resolve("conf");
+    try (Stream<Path> filesStream = Files.list(confSetDir)) {
+      List<Path> files = filesStream.toList();
+      zkFiles =
+          zkClient.getChildren(ZkConfigSetService.CONFIGS_ZKNODE + "/" + 
confsetname, null, true);
+      assertEquals(
+          "Comparing original conf files that were to be uploaded to what is 
in ZK",
+          files.size(),
+          zkFiles.size());
+      assertEquals("Comparing downloaded files to what is in ZK", 
files.size(), zkFiles.size());
+    }
 
-    File sourceConfDir = new File(ExternalPaths.TECHPRODUCTS_CONFIGSET);
+    Path sourceConfDir = ExternalPaths.TECHPRODUCTS_CONFIGSET;
     // filter out all directories starting with . (e.g. .svn)
-    Collection<File> sourceFiles =
-        FileUtils.listFiles(
-            sourceConfDir, TrueFileFilter.INSTANCE, new 
RegexFileFilter("[^\\.].*"));
-    for (File sourceFile : sourceFiles) {
-      int indexOfRelativePath =
-          sourceFile
-              .getAbsolutePath()
-              .lastIndexOf("sample_techproducts_configs" + File.separator + 
"conf");
-      String relativePathofFile =
-          sourceFile
-              .getAbsolutePath()
-              .substring(indexOfRelativePath + 33, 
sourceFile.getAbsolutePath().length());
-      File downloadedFile = new File(confDir, relativePathofFile);
-      if 
(ConfigSetService.UPLOAD_FILENAME_EXCLUDE_PATTERN.matcher(relativePathofFile).matches())
 {
-        assertFalse(
-            sourceFile.getAbsolutePath()
-                + " exists in ZK, downloaded:"
-                + downloadedFile.getAbsolutePath(),
-            downloadedFile.exists());
-      } else {
-        assertTrue(
-            downloadedFile.getAbsolutePath()
-                + " does not exist source:"
-                + sourceFile.getAbsolutePath(),
-            downloadedFile.exists());
-        assertTrue(
-            relativePathofFile + " content changed",
-            FileUtils.contentEquals(sourceFile, downloadedFile));
-      }
+    try (Stream<Path> stream = Files.walk(sourceConfDir)) {
+      List<Path> files =
+          stream
+              .filter(Files::isRegularFile)
+              .filter(path -> path.getFileName().startsWith("."))
+              .toList();
+      files.forEach(
+          (sourceFile) -> {
+            int indexOfRelativePath =
+                sourceFile
+                    .toAbsolutePath()
+                    .toString()
+                    .lastIndexOf(
+                        "sample_techproducts_configs"
+                            + FileSystems.getDefault().getSeparator()

Review Comment:
   Wherever we see `FileSystems.getDefault()` yet a Path var is in scope (here 
it's `sourceFile`), we should use `pathVar.getFileSystem()` instead.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to