Author: joakime
Date: Sun Feb 24 21:51:58 2008
New Revision: 630739
URL: http://svn.apache.org/viewvc?rev=630739&view=rev
Log:
MRM-709 - Use commons-io instead of Plexus Utils.
* Compensating for the behaviour difference of FileUtils.writeStringToFile()
Modified:
maven/archiva/trunk/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
Modified:
maven/archiva/trunk/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
URL:
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java?rev=630739&r1=630738&r2=630739&view=diff
==============================================================================
---
maven/archiva/trunk/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
(original)
+++
maven/archiva/trunk/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
Sun Feb 24 21:51:58 2008
@@ -19,6 +19,19 @@
* under the License.
*/
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Map.Entry;
+
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.io.FileUtils;
@@ -44,19 +57,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.Map.Entry;
-
/**
* <p>
* Implementation of configuration holder that retrieves it from the registry.
@@ -86,8 +86,8 @@
public class DefaultArchivaConfiguration
implements ArchivaConfiguration, RegistryListener, Initializable
{
- private Logger log =
LoggerFactory.getLogger(DefaultArchivaConfiguration.class);
-
+ private Logger log = LoggerFactory.getLogger(
DefaultArchivaConfiguration.class );
+
/**
* Plexus registry to read the configuration from.
*
@@ -109,7 +109,7 @@
* @plexus.requirement
role="org.apache.maven.archiva.policies.PostDownloadPolicy"
*/
private Map<String, PostDownloadPolicy> postPolicies;
-
+
/**
* @plexus.configuration default-value="${user.home}/.m2/archiva.xml"
*/
@@ -129,7 +129,7 @@
* Registry Listeners we've registered.
*/
private Set<RegistryListener> registryListeners = new
HashSet<RegistryListener>();
-
+
/**
* Boolean to help determine if the configuration exists as a result of
pulling in
* the default-archiva.xml
@@ -198,19 +198,19 @@
registry.removeSubset( KEY + ".repositories" );
}
-
+
if ( !CollectionUtils.isEmpty( config.getRemoteRepositories() ) )
{
List<RemoteRepositoryConfiguration> remoteRepos =
config.getRemoteRepositories();
for ( RemoteRepositoryConfiguration repo : remoteRepos )
{
// [MRM-582] Remote Repositories with empty <username> and
<password> fields shouldn't be created in configuration.
- if( StringUtils.isBlank( repo.getUsername() ) )
+ if ( StringUtils.isBlank( repo.getUsername() ) )
{
repo.setUsername( null );
}
-
- if( StringUtils.isBlank( repo.getPassword() ) )
+
+ if ( StringUtils.isBlank( repo.getPassword() ) )
{
repo.setPassword( null );
}
@@ -359,13 +359,13 @@
log.error( "No PreDownloadPolicies found!" );
return false;
}
-
+
if ( MapUtils.isEmpty( postPolicies ) )
{
log.error( "No PostDownloadPolicies found!" );
return false;
}
-
+
return ( prePolicies.containsKey( policyId ) ||
postPolicies.containsKey( policyId ) );
}
@@ -491,6 +491,8 @@
/**
* Attempts to write the contents to a file, if an IOException occurs,
return false.
*
+ * The file will be created if the directory to the file exists, otherwise
this will return false.
+ *
* @param filetype the filetype (freeform text) to use in logging messages
when failure to write.
* @param path the path to write to.
* @param contents the contents to write.
@@ -502,6 +504,17 @@
try
{
+ // Check parent directory (if it is declared)
+ if ( file.getParentFile() != null )
+ {
+ // Check that directory exists
+ if ( ( file.getParentFile().exists() == false ) || (
file.getParentFile().isDirectory() == false ) )
+ {
+ // Directory to file must exist for file to be created
+ return false;
+ }
+ }
+
FileUtils.writeStringToFile( file, contents, "UTF-8" );
return true;
}