]> source.dussan.org Git - archiva.git/commitdiff
Migrating policies module to java.nio
authorMartin Stockhammer <martin_s@apache.org>
Tue, 5 Sep 2017 21:28:55 +0000 (23:28 +0200)
committerMartin Stockhammer <martin_s@apache.org>
Tue, 5 Sep 2017 21:28:55 +0000 (23:28 +0200)
27 files changed:
archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/archiva/indexer/search/AbstractMavenRepositorySearch.java
archiva-modules/archiva-base/archiva-maven2-metadata/src/main/java/org/apache/archiva/maven2/metadata/MavenMetadataReader.java
archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/AbstractUpdatePolicy.java
archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/CachedFailuresPolicy.java
archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ChecksumPolicy.java
archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadErrorPolicy.java
archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadPolicy.java
archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PropagateErrorsDownloadPolicy.java
archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PropagateErrorsOnUpdateDownloadPolicy.java
archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/CachedFailuresPolicyTest.java
archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/ChecksumPolicyTest.java
archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/ReleasePolicyTest.java
archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/SnapshotsPolicyTest.java
archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/archiva/proxy/DefaultRepositoryProxyConnectors.java
archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/MetadataTransferTest.java
archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/metadata/MetadataTools.java
archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java
archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/api/DefaultFileUploadService.java
archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java
archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletRepositoryGroupTest.java
archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/dependency/tree/maven2/Maven3DependencyTreeBuilder.java
archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryStorage.java
archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/RepositoryModelResolver.java
archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/MavenRepositoryMetadataReaderTest.java
archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/repository/metadata/RepositoryMetadataReaderTest.java
archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMerger.java

index 9874fc75df94795d59bec1e720a32ccb9c74d073..e2946ff0084f311a22b98f1637d810d17cbcce67 100644 (file)
@@ -47,7 +47,6 @@ import org.slf4j.LoggerFactory;
 import org.springframework.test.context.ContextConfiguration;
 
 import javax.inject.Inject;
-import java.io.File;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
index ade5a1fc0a6d86596b212f1fa45f061c2c77bdbc..22eb836e9f3b00c8e51031b136f214a732dbe7ba 100644 (file)
@@ -25,8 +25,12 @@ import org.apache.archiva.xml.XMLException;
 import org.apache.archiva.xml.XMLReader;
 import org.apache.commons.lang.math.NumberUtils;
 import org.dom4j.Element;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.util.Date;
 
 /**
@@ -58,6 +62,8 @@ public class MavenMetadataReader
     </metadata>
     */
 
+    private static final Logger log = LoggerFactory.getLogger( MavenMetadataReader.class );
+
     /**
      * Read and return the {@link org.apache.archiva.model.ArchivaRepositoryMetadata} object from the provided xml file.
      *
@@ -65,11 +71,11 @@ public class MavenMetadataReader
      * @return the archiva repository metadata object that represents the provided file contents.
      * @throws XMLException
      */
-    public static ArchivaRepositoryMetadata read( File metadataFile )
+    public static ArchivaRepositoryMetadata read( Path metadataFile )
         throws XMLException
     {
 
-        XMLReader xml = new XMLReader( "metadata", metadataFile );
+        XMLReader xml = new XMLReader( "metadata", metadataFile.toFile() );
         // invoke this to remove namespaces, see MRM-1136
         xml.removeNamespaces();
 
@@ -78,8 +84,26 @@ public class MavenMetadataReader
         metadata.setGroupId( xml.getElementText( "//metadata/groupId" ) );
         metadata.setArtifactId( xml.getElementText( "//metadata/artifactId" ) );
         metadata.setVersion( xml.getElementText( "//metadata/version" ) );
-        metadata.setFileLastModified( new Date( metadataFile.lastModified() ) );
-        metadata.setFileSize( metadataFile.length() );
+        Date modTime;
+        try
+        {
+            modTime = new Date(Files.getLastModifiedTime( metadataFile ).toMillis( ));
+        }
+        catch ( IOException e )
+        {
+            modTime = new Date();
+            log.error("Could not read modification time of {}", metadataFile);
+        }
+        metadata.setFileLastModified( modTime );
+        try
+        {
+            metadata.setFileSize( Files.size( metadataFile ) );
+        }
+        catch ( IOException e )
+        {
+            metadata.setFileSize( 0 );
+            log.error("Could not read file size of {}", metadataFile);
+        }
 
         metadata.setLastUpdated( xml.getElementText( "//metadata/versioning/lastUpdated" ) );
         metadata.setLatestVersion( xml.getElementText( "//metadata/versioning/latest" ) );
index 103c7a4586c0b58265c50eaee9f41bb3f4e80eb6..1fbbfece53c645590f694ddff97d0e8e8c66e39f 100644 (file)
@@ -24,9 +24,12 @@ import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.Date;
 import java.util.List;
 import java.util.Properties;
 
@@ -103,7 +106,7 @@ public abstract class AbstractUpdatePolicy
     }
 
     @Override
-    public void applyPolicy( String policySetting, Properties request, File localFile )
+    public void applyPolicy( String policySetting, Properties request, Path localFile )
         throws PolicyViolationException, PolicyConfigurationException
     {
         if ( !StringUtils.equals( request.getProperty( "filetype" ), "artifact" ) )
@@ -154,7 +157,7 @@ public abstract class AbstractUpdatePolicy
             throw new PolicyViolationException( "NO to update, " + getUpdateMode() + " policy set to NEVER." );
         }
 
-        if ( !localFile.exists() )
+        if ( !Files.exists(localFile) )
         {
             // No file means it's ok.
             log.debug( "OK to update {}, local file does not exist.", getUpdateMode() );
@@ -173,7 +176,15 @@ public abstract class AbstractUpdatePolicy
             Calendar cal = Calendar.getInstance();
             cal.add( Calendar.DAY_OF_MONTH, -1 );
             Calendar fileCal = Calendar.getInstance();
-            fileCal.setTimeInMillis( localFile.lastModified() );
+            try
+            {
+                fileCal.setTimeInMillis( Files.getLastModifiedTime(localFile).toMillis() );
+            }
+            catch ( IOException e )
+            {
+                fileCal.setTimeInMillis( new Date().getTime() );
+                log.error("Could not read modification time of {}", localFile);
+            }
 
             if ( cal.after( fileCal ) )
             {
@@ -192,7 +203,15 @@ public abstract class AbstractUpdatePolicy
             Calendar cal = Calendar.getInstance();
             cal.add( Calendar.HOUR, -1 );
             Calendar fileCal = Calendar.getInstance();
-            fileCal.setTimeInMillis( localFile.lastModified() );
+            try
+            {
+                fileCal.setTimeInMillis( Files.getLastModifiedTime(localFile).toMillis() );
+            }
+            catch ( IOException e )
+            {
+                fileCal.setTimeInMillis( new Date().getTime() );
+                log.error("Could not read modification time of {}", localFile);
+            }
 
             if ( cal.after( fileCal ) )
             {
index 62e76a4d6668c983fc46345b5e992a68a4165d2e..e92858fe8e39b432ade93a4fd46da115d1392b53 100644 (file)
@@ -26,7 +26,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
 import javax.inject.Inject;
-import java.io.File;
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
@@ -64,7 +64,7 @@ public class CachedFailuresPolicy
     }
 
     @Override
-    public void applyPolicy( String policySetting, Properties request, File localFile )
+    public void applyPolicy( String policySetting, Properties request, Path localFile )
         throws PolicyViolationException, PolicyConfigurationException
     {
         if ( !options.contains( policySetting ) )
index 7c219336151620ae132a659a10130f827e0693c4..975139c653e928873f4fed92591c33997ea0ca4e 100644 (file)
@@ -26,7 +26,9 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
@@ -76,7 +78,7 @@ public class ChecksumPolicy
     }
 
     @Override
-    public void applyPolicy( String policySetting, Properties request, File localFile )
+    public void applyPolicy( String policySetting, Properties request, Path localFile )
         throws PolicyViolationException, PolicyConfigurationException
     {
         if ( "resource".equals( request.getProperty( "filetype" ) ) )
@@ -99,16 +101,16 @@ public class ChecksumPolicy
             return;
         }
 
-        if ( !localFile.exists() )
+        if ( !Files.exists(localFile) )
         {
             // Local File does not exist.
             throw new PolicyViolationException(
-                "Checksum policy failure, local file " + localFile.getAbsolutePath() + " does not exist to check." );
+                "Checksum policy failure, local file " + localFile.toAbsolutePath() + " does not exist to check." );
         }
 
         if ( FAIL.equals( policySetting ) )
         {
-            ChecksummedFile checksum = new ChecksummedFile( localFile.toPath() );
+            ChecksummedFile checksum = new ChecksummedFile( localFile );
             if ( checksum.isValidChecksums( algorithms ) )
             {
                 return;
@@ -116,22 +118,33 @@ public class ChecksumPolicy
 
             for ( ChecksumAlgorithm algorithm : algorithms )
             {
-                File file = new File( localFile.getAbsolutePath() + "." + algorithm.getExt() );
-                if ( file.exists() )
+                Path file = localFile.toAbsolutePath().resolveSibling( localFile.getFileName() + "." + algorithm.getExt() );
+                try
                 {
-                    file.delete();
+                    Files.deleteIfExists( file );
+                }
+                catch ( IOException e )
+                {
+                    log.error("Could not delete file {}", file);
                 }
             }
 
-            localFile.delete();
+            try
+            {
+                Files.deleteIfExists( localFile );
+            }
+            catch ( IOException e )
+            {
+                log.error("Could not delete file {}", localFile);
+            }
             throw new PolicyViolationException(
                 "Checksums do not match, policy set to FAIL, " + "deleting checksum files and local file "
-                    + localFile.getAbsolutePath() + "." );
+                    + localFile.toAbsolutePath() + "." );
         }
 
         if ( FIX.equals( policySetting ) )
         {
-            ChecksummedFile checksum = new ChecksummedFile( localFile.toPath() );
+            ChecksummedFile checksum = new ChecksummedFile( localFile );
             if ( checksum.fixChecksums( algorithms ) )
             {
                 log.debug( "Checksum policy set to FIX, checksum files have been updated." );
@@ -141,7 +154,7 @@ public class ChecksumPolicy
             {
                 throw new PolicyViolationException(
                     "Checksum policy set to FIX, " + "yet unable to update checksums for local file "
-                        + localFile.getAbsolutePath() + "." );
+                        + localFile.toAbsolutePath() + "." );
             }
         }
 
index 971afc7631464c43fc1981af265788ce27674c8e..90261737e7c13a355fe1574ffa42103b3411e8e2 100644 (file)
@@ -19,7 +19,7 @@ package org.apache.archiva.policies;
  * under the License.
  */
 
-import java.io.File;
+import java.nio.file.Path;
 import java.util.Map;
 import java.util.Properties;
 
@@ -43,7 +43,7 @@ public interface DownloadErrorPolicy
      * @return whether to process the exception or not
      * @throws PolicyConfigurationException if the policy is improperly configured
      */
-    boolean applyPolicy( String policySetting, Properties request, File localFile, Exception exception,
-                                Map<String, Exception> previousExceptions )
+    boolean applyPolicy( String policySetting, Properties request, Path localFile, Exception exception,
+                         Map<String, Exception> previousExceptions )
         throws PolicyConfigurationException;
 }
index 1a25043d6a32ae15d80f464ba760239c11f34519..8d149e619544bac2001920fe241fa0e9053cb2e6 100644 (file)
@@ -19,7 +19,7 @@ package org.apache.archiva.policies;
  * under the License.
  */
 
-import java.io.File;
+import java.nio.file.Path;
 import java.util.Properties;
 
 /**
@@ -40,6 +40,6 @@ public interface DownloadPolicy
      * 
      * @throws PolicyViolationException if the policy has been violated.
      */
-    void applyPolicy( String policySetting, Properties request, File localFile )
+    void applyPolicy( String policySetting, Properties request, Path localFile )
         throws PolicyViolationException, PolicyConfigurationException;
 }
index 5813cd5ae75192f7bbced7f7c2116fa590dde084..1fab1209a0c1107dcea9ea59674fb5699d2228a8 100644 (file)
@@ -24,7 +24,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -64,7 +64,7 @@ public class PropagateErrorsDownloadPolicy
     }
 
     @Override
-    public boolean applyPolicy( String policySetting, Properties request, File localFile, Exception exception,
+    public boolean applyPolicy( String policySetting, Properties request, Path localFile, Exception exception,
                                 Map<String, Exception> previousExceptions )
         throws PolicyConfigurationException
     {
index 14732f1ec380acbaf9432a18f8a4a33fead7a485..ec32891056631ed6cbd070481cd646947ed98011 100644 (file)
@@ -22,7 +22,8 @@ package org.apache.archiva.policies;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -54,7 +55,7 @@ public class PropagateErrorsOnUpdateDownloadPolicy
     }
 
     @Override
-    public boolean applyPolicy( String policySetting, Properties request, File localFile, Exception exception,
+    public boolean applyPolicy( String policySetting, Properties request, Path localFile, Exception exception,
                                 Map<String, Exception> previousExceptions )
         throws PolicyConfigurationException
     {
@@ -75,7 +76,7 @@ public class PropagateErrorsOnUpdateDownloadPolicy
         if ( NOT_PRESENT.equals( policySetting ) )
         {
             // cancel the exception if the file exists
-            return !localFile.exists();
+            return !Files.exists(localFile);
         }
 
         throw new PolicyConfigurationException(
index 6f46b68451512ea4279bc0b3256295f7366d65c7..2c9995c0b9c1dba3117595d69893e90097ddcdf8 100644 (file)
@@ -21,15 +21,16 @@ package org.apache.archiva.policies;
 
 import junit.framework.TestCase;
 import org.apache.archiva.policies.urlcache.UrlFailureCache;
+import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.test.context.ContextConfiguration;
 
 import javax.inject.Inject;
 import javax.inject.Named;
-import java.io.File;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.Properties;
-import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
 
 /**
  * CachedFailuresPolicyTest
@@ -56,9 +57,9 @@ public class CachedFailuresPolicyTest
         return downloadPolicy;
     }
 
-    private File getFile()
+    private Path getFile()
     {
-        return new File( "target/cache-failures/" + getName() + ".txt" );
+        return Paths.get( "target/cache-failures/" + getName() + ".txt" );
     }
 
     private Properties createRequest()
@@ -73,7 +74,7 @@ public class CachedFailuresPolicyTest
         throws Exception
     {
         DownloadPolicy policy = lookupPolicy();
-        File localFile = getFile();
+        Path localFile = getFile();
         Properties request = createRequest();
 
         request.setProperty( "url", "http://a.bad.hostname.maven.org/path/to/resource.txt" );
@@ -87,7 +88,7 @@ public class CachedFailuresPolicyTest
     {
 
         DownloadPolicy policy = lookupPolicy();
-        File localFile = getFile();
+        Path localFile = getFile();
         Properties request = createRequest();
         // make unique name
         String url = "http://a.bad.hostname.maven.org/path/to/resource"+ System.currentTimeMillis() +".txt";
index ec1cd216504c5691a59bbe0d33d939265dd3aad9..8450744203552a9fd77dbad2c7e5a74f28b4175e 100644 (file)
@@ -27,8 +27,10 @@ import org.junit.runner.RunWith;
 import org.springframework.test.context.ContextConfiguration;
 
 import java.io.BufferedReader;
-import java.io.File;
 import java.io.FileReader;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.Properties;
 import javax.inject.Inject;
 import javax.inject.Named;
@@ -193,7 +195,7 @@ public class ChecksumPolicyTest
         throws Exception
     {
         PostDownloadPolicy policy = lookupPolicy();
-        File localFile = createTestableFiles( null, null );
+        Path localFile = createTestableFiles( null, null );
         Properties request = createRequest();
 
         policy.applyPolicy( ChecksumPolicy.IGNORE, request, localFile );
@@ -203,7 +205,7 @@ public class ChecksumPolicyTest
         throws Exception
     {
         PostDownloadPolicy policy = lookupPolicy();
-        File localFile = createTestableFiles( md5State, sha1State );
+        Path localFile = createTestableFiles( md5State, sha1State );
         Properties request = createRequest();
 
         boolean actualResult;
@@ -218,11 +220,11 @@ public class ChecksumPolicyTest
             actualResult = false;
             String msg = createMessage( ChecksumPolicy.FAIL, md5State, sha1State );
 
-            assertFalse( msg + " local file should not exist:", localFile.exists() );
-            File md5File = new File( localFile.getAbsolutePath() + ".sha1" );
-            File sha1File = new File( localFile.getAbsolutePath() + ".md5" );
-            assertFalse( msg + " local md5 file should not exist:", md5File.exists() );
-            assertFalse( msg + " local sha1 file should not exist:", sha1File.exists() );
+            assertFalse( msg + " local file should not exist:", Files.exists(localFile) );
+            Path md5File = localFile.toAbsolutePath().resolveSibling( localFile.getFileName() + ".sha1" );
+            Path sha1File = localFile.toAbsolutePath().resolveSibling( localFile.getFileName() + ".md5" );
+            assertFalse( msg + " local md5 file should not exist:", Files.exists(md5File) );
+            assertFalse( msg + " local sha1 file should not exist:", Files.exists(sha1File) );
         }
 
         assertEquals( createMessage( ChecksumPolicy.FAIL, md5State, sha1State ), expectedResult, actualResult );
@@ -232,7 +234,7 @@ public class ChecksumPolicyTest
         throws Exception
     {
         PostDownloadPolicy policy = lookupPolicy();
-        File localFile = createTestableFiles( md5State, sha1State );
+        Path localFile = createTestableFiles( md5State, sha1State );
         Properties request = createRequest();
 
         boolean actualResult;
@@ -250,11 +252,11 @@ public class ChecksumPolicyTest
         assertEquals( createMessage( ChecksumPolicy.FIX, md5State, sha1State ), expectedResult, actualResult );
 
         // End result should be legitimate SHA1 and MD5 files.
-        File md5File = new File( localFile.getAbsolutePath() + ".md5" );
-        File sha1File = new File( localFile.getAbsolutePath() + ".sha1" );
+        Path md5File = localFile.toAbsolutePath().resolveSibling( localFile.getFileName() + ".md5" );
+        Path sha1File = localFile.toAbsolutePath().resolveSibling( localFile.getFileName() + ".sha1" );
 
-        assertTrue( "ChecksumPolicy.apply(FIX) md5 should exist.", md5File.exists() && md5File.isFile() );
-        assertTrue( "ChecksumPolicy.apply(FIX) sha1 should exist.", sha1File.exists() && sha1File.isFile() );
+        assertTrue( "ChecksumPolicy.apply(FIX) md5 should exist.", Files.exists(md5File) && Files.isRegularFile(md5File) );
+        assertTrue( "ChecksumPolicy.apply(FIX) sha1 should exist.", Files.exists(sha1File) && Files.isRegularFile(sha1File) );
 
         String actualMd5Contents = readChecksumFile( md5File );
         String actualSha1Contents = readChecksumFile( sha1File );
@@ -269,7 +271,7 @@ public class ChecksumPolicyTest
     /**
      * Read the first line from the checksum file, and return it (trimmed).
      */
-    private String readChecksumFile( File checksumFile )
+    private String readChecksumFile( Path checksumFile )
         throws Exception
     {
         FileReader freader = null;
@@ -277,7 +279,7 @@ public class ChecksumPolicyTest
 
         try
         {
-            freader = new FileReader( checksumFile );
+            freader = new FileReader( checksumFile.toFile() );
             buf = new BufferedReader( freader );
             return buf.readLine();
         }
@@ -334,37 +336,37 @@ public class ChecksumPolicyTest
         return request;
     }
 
-    private File createTestableFiles( String md5State, String sha1State )
+    private Path createTestableFiles( String md5State, String sha1State )
         throws Exception
     {
-        File sourceDir = getTestFile( "src/test/resources/checksums/" );
-        File destDir = getTestFile( "target/checksum-tests/" + name.getMethodName() + "/" );
+        Path sourceDir = getTestFile( "src/test/resources/checksums/" );
+        Path destDir = getTestFile( "target/checksum-tests/" + name.getMethodName() + "/" );
 
-        FileUtils.copyFileToDirectory( new File( sourceDir, "artifact.jar" ), destDir );
+        FileUtils.copyFileToDirectory( sourceDir.resolve("artifact.jar" ).toFile(), destDir.toFile() );
 
         if ( md5State != null )
         {
-            File md5File = new File( sourceDir, "artifact.jar.md5-" + md5State );
-            assertTrue( "Testable file exists: " + md5File.getName() + ":", md5File.exists() && md5File.isFile() );
-            File destFile = new File( destDir, "artifact.jar.md5" );
-            FileUtils.copyFile( md5File, destFile );
+            Path md5File = sourceDir.resolve("artifact.jar.md5-" + md5State );
+            assertTrue( "Testable file exists: " + md5File.getFileName() + ":", Files.exists(md5File) && Files.isRegularFile(md5File) );
+            Path destFile = destDir.resolve("artifact.jar.md5" );
+            FileUtils.copyFile( md5File.toFile(), destFile.toFile() );
         }
 
         if ( sha1State != null )
         {
-            File sha1File = new File( sourceDir, "artifact.jar.sha1-" + sha1State );
-            assertTrue( "Testable file exists: " + sha1File.getName() + ":", sha1File.exists() && sha1File.isFile() );
-            File destFile = new File( destDir, "artifact.jar.sha1" );
-            FileUtils.copyFile( sha1File, destFile );
+            Path sha1File = sourceDir.resolve("artifact.jar.sha1-" + sha1State );
+            assertTrue( "Testable file exists: " + sha1File.getFileName() + ":", Files.exists(sha1File) && Files.isRegularFile(sha1File) );
+            Path destFile = destDir.resolve("artifact.jar.sha1" );
+            FileUtils.copyFile( sha1File.toFile(), destFile.toFile() );
         }
 
-        File localFile = new File( destDir, "artifact.jar" );
+        Path localFile = destDir.resolve("artifact.jar" );
         return localFile;
     }
 
-    public static File getTestFile( String path )
+    public static Path getTestFile( String path )
     {
-        return new File( org.apache.archiva.common.utils.FileUtils.getBasedir(), path );
+        return Paths.get( org.apache.archiva.common.utils.FileUtils.getBasedir(), path );
     }
 
 }
index 2a02605d0e2f7ae2c5824753d807c64059ad2a19..4d45646d587f3f74bdcb88ad729b1f24a2fff49e 100644 (file)
@@ -28,8 +28,13 @@ import org.springframework.test.context.ContextConfiguration;
 
 import javax.inject.Inject;
 import javax.inject.Named;
-import java.io.File;
+import java.nio.charset.Charset;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.attribute.FileTime;
 import java.util.Properties;
+import java.util.concurrent.TimeUnit;
+
 import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
 
 /**
@@ -42,6 +47,9 @@ import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
 public class ReleasePolicyTest
     extends TestCase
 {
+
+    private static final Charset FILE_ENCODING = Charset.forName( "UTF-8" );
+
     private static final String PATH_VERSION_METADATA = "org/apache/archiva/archiva-testable/1.0-SNAPSHOT/maven-metadata.xml";
 
     private static final String PATH_PROJECT_METADATA = "org/apache/archiva/archiva-testable/maven-metadata.xml";
@@ -333,19 +341,17 @@ public class ReleasePolicyTest
             request.setProperty( "version", "2.0" );
         }
 
-        File targetDir = ChecksumPolicyTest.getTestFile( "target/test-policy/" );
-        File localFile = new File( targetDir, path );
+        Path targetDir = ChecksumPolicyTest.getTestFile( "target/test-policy/" );
+        Path localFile = targetDir.resolve( path );
 
-        if ( localFile.exists() )
-        {
-            localFile.delete();
-        }
+        Files.deleteIfExists( localFile );
 
         if ( createLocalFile )
         {
-            localFile.getParentFile().mkdirs();
-            FileUtils.writeStringToFile( localFile, "random-junk" );
-            localFile.setLastModified( localFile.lastModified() - generatedLocalFileUpdateDelta );
+            Files.createDirectories(  localFile.getParent());
+            org.apache.archiva.common.utils.FileUtils.writeStringToFile( localFile, FILE_ENCODING, "random-junk" );
+            Files.setLastModifiedTime( localFile,
+                FileTime.fromMillis(Files.getLastModifiedTime(localFile).toMillis() - generatedLocalFileUpdateDelta));
         }
 
         policy.applyPolicy( setting, request, localFile );
index 50fec5799c4cab00ea76ef5bc8b4764d48f0cb8b..5272777fe9021fb6a7982f52e9d081f6ea7660ac 100644 (file)
@@ -20,7 +20,7 @@ package org.apache.archiva.policies;
  */
 
 import junit.framework.TestCase;
-import org.apache.commons.io.FileUtils;
+import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -28,9 +28,11 @@ import org.springframework.test.context.ContextConfiguration;
 
 import javax.inject.Inject;
 import javax.inject.Named;
-import java.io.File;
+import java.nio.charset.Charset;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.attribute.FileTime;
 import java.util.Properties;
-import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
 
 /**
  * SnapshotsPolicyTest 
@@ -42,6 +44,8 @@ import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
 public class SnapshotsPolicyTest
     extends TestCase
 {
+    private static final Charset FILE_ENCODING = Charset.forName( "UTF-8" );
+
     private static final String PATH_VERSION_METADATA = "org/apache/archiva/archiva-testable/1.0-SNAPSHOT/maven-metadata.xml";
 
     private static final String PATH_PROJECT_METADATA = "org/apache/archiva/archiva-testable/maven-metadata.xml";
@@ -333,19 +337,17 @@ public class SnapshotsPolicyTest
             request.setProperty( "version", "2.0" );
         }
 
-        File targetDir = ChecksumPolicyTest.getTestFile( "target/test-policy/" );
-        File localFile = new File( targetDir, path );
+        Path targetDir = ChecksumPolicyTest.getTestFile( "target/test-policy/" );
+        Path localFile = targetDir.resolve( path );
 
-        if ( localFile.exists() )
-        {
-            localFile.delete();
-        }
+        Files.deleteIfExists( localFile );
 
         if ( createLocalFile )
         {
-            localFile.getParentFile().mkdirs();
-            FileUtils.writeStringToFile( localFile, "random-junk" );
-            localFile.setLastModified( localFile.lastModified() - generatedLocalFileUpdateDelta );
+            Files.createDirectories( localFile.getParent());
+            org.apache.archiva.common.utils.FileUtils.writeStringToFile( localFile, FILE_ENCODING, "random-junk" );
+            Files.setLastModifiedTime( localFile,
+                FileTime.fromMillis( Files.getLastModifiedTime( localFile ).toMillis() - generatedLocalFileUpdateDelta ));
         }
 
         policy.applyPolicy( setting, request, localFile );
index 5043594df930f86d77daaed06f1c14be82481979..dc100f0ca48b70dc4cf2c1eb6c4aeb9bb8e9f380 100644 (file)
@@ -991,9 +991,9 @@ public class DefaultRepositoryProxyConnectors
      * @param policies  the map of policies to execute. (Map of String policy keys, to {@link DownloadPolicy} objects)
      * @param settings  the map of settings for the policies to execute. (Map of String policy keys, to String policy
      *                  setting)
-     * @param request   the request properties (utilized by the {@link DownloadPolicy#applyPolicy(String, Properties, File)}
+     * @param request   the request properties (utilized by the {@link DownloadPolicy#applyPolicy(String, Properties, Path)}
      *                  )
-     * @param localFile the local file (utilized by the {@link DownloadPolicy#applyPolicy(String, Properties, File)})
+     * @param localFile the local file (utilized by the {@link DownloadPolicy#applyPolicy(String, Properties, Path)})
      * @throws PolicyViolationException
      */
     private void validatePolicies( Map<String, ? extends DownloadPolicy> policies, Map<String, String> settings,
@@ -1013,7 +1013,7 @@ public class DefaultRepositoryProxyConnectors
             log.debug( "Applying [{}] policy with [{}]", key, setting );
             try
             {
-                policy.applyPolicy( setting, request, localFile.toFile() );
+                policy.applyPolicy( setting, request, localFile );
             }
             catch ( PolicyConfigurationException e )
             {
@@ -1042,7 +1042,7 @@ public class DefaultRepositoryProxyConnectors
             try
             {
                 // all policies must approve the exception, any can cancel
-                process = policy.applyPolicy( setting, request, localFile.toFile(), exception, previousExceptions );
+                process = policy.applyPolicy( setting, request, localFile, exception, previousExceptions );
                 if ( !process )
                 {
                     break;
index 47fd97ee404b11b4275b8f626e24869ff12b1fd0..7d453540dc0297b6946fbe686c0867ab44e36e81 100644 (file)
@@ -1092,7 +1092,7 @@ public class MetadataTransferTest
         assertTrue( "Actual file exists.", Files.exists(actualFile) );
 
         StringWriter actualContents = new StringWriter();
-        ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( actualFile.toFile() );
+        ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( actualFile );
         RepositoryMetadataWriter.write( metadata, actualContents );
 
         DetailedDiff detailedDiff = new DetailedDiff( new Diff( expectedMetadataXml, actualContents.toString() ) );
index 016f42a3d876192484d9c5ae7a00b7ff5821c772..7b6b95bd8897e43d138ecf3b7ff9e863743f9fd0 100644 (file)
@@ -376,7 +376,7 @@ public class MetadataTools
 
         try
         {
-            return MavenMetadataReader.read( metadataFile.toFile() );
+            return MavenMetadataReader.read( metadataFile );
         }
         catch ( XMLException e )
         {
@@ -401,7 +401,7 @@ public class MetadataTools
 
         try
         {
-            return MavenMetadataReader.read( metadataFile.toFile() );
+            return MavenMetadataReader.read( metadataFile );
         }
         catch ( XMLException e )
         {
@@ -426,7 +426,7 @@ public class MetadataTools
 
         try
         {
-            return MavenMetadataReader.read( metadataFile.toFile() );
+            return MavenMetadataReader.read( metadataFile );
         }
         catch ( XMLException e )
         {
@@ -524,7 +524,7 @@ public class MetadataTools
         {
             try
             {
-                ArchivaRepositoryMetadata existingMetadata = MavenMetadataReader.read( file.toFile() );
+                ArchivaRepositoryMetadata existingMetadata = MavenMetadataReader.read( file );
                 if ( existingMetadata != null )
                 {
                     metadatas.add( existingMetadata );
@@ -594,7 +594,7 @@ public class MetadataTools
         {
             try
             {
-                allPlugins = new LinkedHashSet<Plugin>( MavenMetadataReader.read( metadataFile.toFile() ).getPlugins() );
+                allPlugins = new LinkedHashSet<Plugin>( MavenMetadataReader.read( metadataFile ).getPlugins() );
             }
             catch ( XMLException e )
             {
@@ -755,7 +755,7 @@ public class MetadataTools
 
         try
         {
-            ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( metadataFile.toFile() );
+            ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( metadataFile );
 
             return getLastUpdated( metadata );
         }
index f652d7f19fe76c9fe5558201aaac245d24a48440..d497e2a978c70c924e584bf14cd9441ff73cdce7 100644 (file)
@@ -878,7 +878,7 @@ public class DefaultBrowseService
                         try
                         {
                             ArchivaRepositoryMetadata archivaRepositoryMetadata =
-                                MavenMetadataReader.read( metadataFile.toFile() );
+                                MavenMetadataReader.read( metadataFile );
                             int buildNumber = archivaRepositoryMetadata.getSnapshotVersion().getBuildNumber();
                             String timeStamp = archivaRepositoryMetadata.getSnapshotVersion().getTimestamp();
                             // rebuild file name with timestamped version and build number
index 1f0fd73cb00da28f7023fe043aee26c213538a39..0c57b3c5c39bb3f07229d8e15a929f9c61a49996 100644 (file)
@@ -526,7 +526,7 @@ public class DefaultRepositoriesService
         {
             try
             {
-                metadata = MavenMetadataReader.read( metadataFile );
+                metadata = MavenMetadataReader.read( metadataFile.toPath() );
             }
             catch ( XMLException e )
             {
index d3b67064e9f68eead91ca01af813d2b35bb5c5ed..5d27b97e06d2f2d73484a7b4e2ddbfef5df38867 100644 (file)
@@ -517,7 +517,7 @@ public class DefaultFileUploadService
         {
             try
             {
-                metadata = MavenMetadataReader.read( metadataFile );
+                metadata = MavenMetadataReader.read( metadataFile.toPath() );
             }
             catch ( XMLException e )
             {
index 4938561004d724aff096ea9ae7c530adba3fdc6c..0b2edef8864e48ee34706e77a34172307b2a258b 100644 (file)
@@ -383,7 +383,7 @@ public class ArchivaDavResourceFactory
                             try
                             {
                                 File metadataFile = new File( resourceAbsPath );
-                                ArchivaRepositoryMetadata repoMetadata = MavenMetadataReader.read( metadataFile );
+                                ArchivaRepositoryMetadata repoMetadata = MavenMetadataReader.read( metadataFile.toPath() );
                                 mergedMetadata = RepositoryMetadataMerge.merge( mergedMetadata, repoMetadata );
                             }
                             catch ( XMLException e )
index f237e656958ef7f761d1f4850190760e5731febc..cd7dce94b192c7b3c3d9a354d86f3dd05e822a4f 100644 (file)
@@ -264,7 +264,7 @@ public class RepositoryServletRepositoryGroupTest
 
         File returnedMetadata = new File( "target/test-classes/retrievedMetadataFile.xml" );
         FileUtils.writeStringToFile( returnedMetadata, response.getContentAsString() );
-        ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( returnedMetadata );
+        ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( returnedMetadata.toPath() );
 
         assertResponseOK( response );
 
index adb1a875e4ffd42c73c75a0c93ee2896bdbfaf76..24982f21dfbccca12d593bf244046b0a1ca56a36 100644 (file)
@@ -312,7 +312,7 @@ public class Maven3DependencyTreeBuilder
                 {
                     try
                     {
-                        ArchivaRepositoryMetadata archivaRepositoryMetadata = MavenMetadataReader.read( metadataFile );
+                        ArchivaRepositoryMetadata archivaRepositoryMetadata = MavenMetadataReader.read( metadataFile.toPath() );
                         int buildNumber = archivaRepositoryMetadata.getSnapshotVersion().getBuildNumber();
                         String timeStamp = archivaRepositoryMetadata.getSnapshotVersion().getTimestamp();
                         // rebuild file name with timestamped version and build number
index 44a77e037b3ee3616390711dcbf0a89a66a5eb21..e1f45ced3144e7c7a107f4156676ecd07059a8aa 100644 (file)
@@ -208,7 +208,7 @@ public class Maven2RepositoryStorage
                                                            METADATA_FILENAME );
                 try
                 {
-                    ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( metadataFile );
+                    ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( metadataFile.toPath() );
 
                     // re-adjust to timestamp if present, otherwise retain the original -SNAPSHOT filename
                     SnapshotVersion snapshotVersion = metadata.getSnapshotVersion();
@@ -820,7 +820,7 @@ public class Maven2RepositoryStorage
             {
                 return filePath;
             }
-            ArchivaRepositoryMetadata archivaRepositoryMetadata = MavenMetadataReader.read( metadataFile );
+            ArchivaRepositoryMetadata archivaRepositoryMetadata = MavenMetadataReader.read( metadataFile.toPath() );
             int buildNumber = archivaRepositoryMetadata.getSnapshotVersion().getBuildNumber();
             String timestamp = archivaRepositoryMetadata.getSnapshotVersion().getTimestamp();
 
@@ -967,7 +967,7 @@ public class Maven2RepositoryStorage
         {
             try
             {
-                metadata = MavenMetadataReader.read( metadataFile );
+                metadata = MavenMetadataReader.read( metadataFile.toPath() );
             }
             catch ( XMLException e )
             {
index b84a859b9967295ad6393a7574394746ffb88436..cd6cc5514ba777c06afc1974eb3a5ce2c69c0a31 100644 (file)
@@ -169,7 +169,7 @@ public class RepositoryModelResolver
         {
             try
             {
-                ArchivaRepositoryMetadata archivaRepositoryMetadata = MavenMetadataReader.read( mavenMetadata );
+                ArchivaRepositoryMetadata archivaRepositoryMetadata = MavenMetadataReader.read( mavenMetadata.toPath() );
                 SnapshotVersion snapshotVersion = archivaRepositoryMetadata.getSnapshotVersion();
                 if ( snapshotVersion != null )
                 {
@@ -266,7 +266,7 @@ public class RepositoryModelResolver
 
                         log.debug( "Successfully downloaded metadata." );
 
-                        ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( tmpMetadataResource );
+                        ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( tmpMetadataResource.toPath() );
 
                         // re-adjust to timestamp if present, otherwise retain the original -SNAPSHOT filename
                         SnapshotVersion snapshotVersion = metadata.getSnapshotVersion();
index ec2d7b00c2e09756946d65f60ea9a0ead46b2a89..4d09032a9db0187a09e59c291fd29542e0f7e74c 100644 (file)
@@ -49,7 +49,7 @@ public class MavenRepositoryMetadataReaderTest
     {
         File metadataFile = new File( defaultRepoDir, "org/apache/maven/plugins/maven-metadata.xml" );
 
-        ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( metadataFile );
+        ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( metadataFile.toPath() );
 
         assertNotNull( metadata );
         assertEquals( "org.apache.maven.plugins", metadata.getGroupId() );
@@ -84,7 +84,7 @@ public class MavenRepositoryMetadataReaderTest
     {
         File metadataFile = new File( defaultRepoDir, "org/apache/maven/shared/maven-downloader/maven-metadata.xml" );
 
-        ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( metadataFile );
+        ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( metadataFile.toPath() );
 
         assertNotNull( metadata );
         assertEquals( "org.apache.maven.shared", metadata.getGroupId() );
@@ -102,7 +102,7 @@ public class MavenRepositoryMetadataReaderTest
     {
         File metadataFile = new File( defaultRepoDir, "org/apache/apache/5-SNAPSHOT/maven-metadata.xml" );
 
-        ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( metadataFile );
+        ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( metadataFile.toPath() );
 
         assertNotNull( metadata );
         assertEquals( "org.apache", metadata.getGroupId() );
index bff47568097acbe2077c14d03b4c4e00b877aaf9..319443ae52fe41f5c91fcf35919e7529ed553911 100644 (file)
@@ -45,7 +45,7 @@ public class RepositoryMetadataReaderTest
         File defaultRepoDir = new File( "src/test/repositories/default-repository" );
         File metadataFile = new File( defaultRepoDir, "org/apache/maven/shared/maven-downloader/maven-metadata.xml" );
 
-        ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( metadataFile );
+        ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( metadataFile.toPath() );
 
         assertNotNull( metadata );
         assertEquals( "Group Id", "org.apache.maven.shared", metadata.getGroupId() );
@@ -63,7 +63,7 @@ public class RepositoryMetadataReaderTest
         File defaultRepoDir = new File( "src/test/repositories/default-repository" );
         File metadataFile = new File( defaultRepoDir, "org/apache/maven/samplejar/maven-metadata.xml" );
 
-        ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( metadataFile );
+        ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( metadataFile.toPath() );
 
         assertNotNull( metadata );
         assertEquals( "Group Id", "org.apache.maven", metadata.getGroupId() );
index d209098cfc838639cf41920dc5cee849f159d72c..5bea095ccc6d4ce71a849361a1daf0432fba4c47 100644 (file)
@@ -357,7 +357,7 @@ public class Maven2RepositoryMerger
         {
             try
             {
-                metadata = MavenMetadataReader.read( metadataFile );
+                metadata = MavenMetadataReader.read( metadataFile.toPath() );
             }
             catch ( XMLException e )
             {