Author: evenisse
Date: Fri May 29 05:02:22 2009
New Revision: 779841
URL: http://svn.apache.org/viewvc?rev=779841&view=rev
Log:
Close some open stream
Modified:
archiva/trunk/archiva-cli/src/main/java/org/apache/maven/archiva/
cli/ArchivaCli.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/
java/org/apache/maven/archiva/web/action/UploadAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/
java/org/apache/maven/archiva/web/startup/BannerTest.java
Modified: archiva/trunk/archiva-cli/src/main/java/org/apache/maven/
archiva/cli/ArchivaCli.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ArchivaCli.java?rev=779841&r1=779840&r2=779841&view=diff
=
=
=
=
=
=
=
=
======================================================================
--- archiva/trunk/archiva-cli/src/main/java/org/apache/maven/archiva/
cli/ArchivaCli.java (original)
+++ archiva/trunk/archiva-cli/src/main/java/org/apache/maven/archiva/
cli/ArchivaCli.java Fri May 29 05:02:22 2009
@@ -19,6 +19,9 @@
* under the License.
*/
+import com.sampullara.cli.Args;
+import com.sampullara.cli.Argument;
+
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -31,6 +34,7 @@
import java.util.Map;
import java.util.Properties;
+import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import
org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.consumers.ConsumerException;
@@ -46,14 +50,11 @@
import
org.codehaus.plexus.spring.PlexusClassPathXmlApplicationContext;
import org.codehaus.plexus.spring.PlexusToSpringUtils;
-import com.sampullara.cli.Args;
-import com.sampullara.cli.Argument;
-
/**
* ArchivaCli
- *
- * @todo add back reading of archiva.xml from a given location
+ *
* @version $Id$
+ * @todo add back reading of archiva.xml from a given location
*/
public class ArchivaCli
{
@@ -71,7 +72,8 @@
throws IOException
{
Properties properties = new Properties();
- properties.load( ArchivaCli.class.getResourceAsStream( "/
META-INF/maven/org.apache.archiva/archiva-cli/pom.properties" ) );
+ properties.load(
+ ArchivaCli.class.getResourceAsStream( "/META-INF/maven/
org.apache.archiva/archiva-cli/pom.properties" ) );
return properties.getProperty( "version" );
}
@@ -79,9 +81,8 @@
public ArchivaCli()
{
- applicationContext =
- new PlexusClassPathXmlApplicationContext( new String[]
{ "classpath*:/META-INF/spring-context.xml",
- "classpath*:/META-INF/plexus/components.xml" } );
+ applicationContext = new
PlexusClassPathXmlApplicationContext(
+ new String[]{"classpath*:/META-INF/spring-context.xml",
"classpath*:/META-INF/plexus/components.xml"} );
}
public static void main( String[] args )
@@ -144,8 +145,8 @@
{
// hack around poorly configurable project builder by
pointing all repositories back at this location to be self
// contained
- WagonManager wagonManager =
- (WagonManager)
applicationContext
.getBean
( PlexusToSpringUtils.buildSpringId( WagonManager.class.getName() ) );
+ WagonManager wagonManager = (WagonManager)
applicationContext.getBean(
+
PlexusToSpringUtils.buildSpringId( WagonManager.class.getName() ) );
wagonManager.addMirror( "internal", "*", new
File( path ).toURL().toExternalForm() );
ManagedRepositoryConfiguration repo = new
ManagedRepositoryConfiguration();
@@ -166,9 +167,8 @@
try
{
- RepositoryScanStatistics stats =
- scanner.scan( repo, knownConsumerList,
invalidConsumerList, ignoredContent,
- RepositoryScanner.FRESH_SCAN );
+ RepositoryScanStatistics stats = scanner.scan( repo,
knownConsumerList, invalidConsumerList, ignoredContent,
+
RepositoryScanner.FRESH_SCAN );
System.out.println( "\n" + stats.toDump( repo ) );
}
@@ -215,12 +215,12 @@
{
String consumerHint = (String) entry.getKey();
RepositoryContentConsumer consumer =
(RepositoryContentConsumer) entry.getValue();
- System.out.println( " " + consumerHint + ": " +
consumer.getDescription() + " ("
- + consumer.getClass().getName() + ")" );
+ System.out.println(
+ " " + consumerHint + ": " +
consumer.getDescription() + " (" + consumer.getClass().getName() +
")" );
}
}
- @SuppressWarnings( "unchecked" )
+ @SuppressWarnings("unchecked")
private Map<String, KnownRepositoryContentConsumer> getConsumers()
{
return
PlexusToSpringUtils.lookupMap( "knownRepositoryContentConsumer",
applicationContext );
@@ -234,7 +234,16 @@
Properties p = new Properties();
- p.load( new FileInputStream( properties ) );
+ FileInputStream fis = new FileInputStream( properties );
+
+ try
+ {
+ p.load( fis );
+ }
+ finally
+ {
+ IOUtils.closeQuietly( fis );
+ }
File oldRepositoryPath = new
File( p.getProperty( SOURCE_REPO_PATH ) );
@@ -251,33 +260,36 @@
fileExclusionPatterns =
Arrays.asList( StringUtils.split( s, "," ) );
}
-
legacyRepositoryConverter
.convertLegacyRepository( oldRepositoryPath, newRepositoryPath,
fileExclusionPatterns );
+
legacyRepositoryConverter
.convertLegacyRepository( oldRepositoryPath, newRepositoryPath,
+
fileExclusionPatterns );
}
private static class Commands
{
- @Argument( description = "Display help information", value
= "help", alias = "h" )
+ @Argument(description = "Display help information", value =
"help", alias = "h")
private boolean help;
- @Argument( description = "Display version information",
value = "version", alias = "v" )
+ @Argument(description = "Display version information",
value = "version", alias = "v")
private boolean version;
- @Argument( description = "List available consumers", value
= "listconsumers", alias = "l" )
+ @Argument(description = "List available consumers", value =
"listconsumers", alias = "l")
private boolean listConsumers;
- @Argument( description = "The consumers to use (comma
delimited)", value = "consumers", alias = "u" )
+ @Argument(description = "The consumers to use (comma
delimited)", value = "consumers", alias = "u")
private String consumers = "count-artifacts";
- @Argument( description = "Scan the specified repository",
value = "scan", alias = "s" )
+ @Argument(description = "Scan the specified repository",
value = "scan", alias = "s")
private boolean scan;
- @Argument( description = "Convert a legacy Maven 1.x
repository to a Maven 2.x repository using a properties file to
describe the conversion", value = "convert", alias = "c" )
+ @Argument(
+ description = "Convert a legacy Maven 1.x repository to
a Maven 2.x repository using a properties file to describe the
conversion",
+ value = "convert", alias = "c")
private boolean convert;
- @Argument( description = "The properties file for the
converstion", value = "properties" )
+ @Argument(description = "The properties file for the
converstion", value = "properties")
private String properties = "conversion.properties";
- @Argument( description = "The repository to scan", value =
"repository" )
+ @Argument(description = "The repository to scan", value =
"repository")
private String repository;
}
}
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/
src/main/java/org/apache/maven/archiva/web/action/UploadAction.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java?rev=779841&r1=779840&r2=779841&view=diff
=
=
=
=
=
=
=
=
======================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/
main/java/org/apache/maven/archiva/web/action/UploadAction.java
(original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/
main/java/org/apache/maven/archiva/web/action/UploadAction.java Fri
May 29 05:02:22 2009
@@ -19,6 +19,9 @@
* under the License.
*/
+import com.opensymphony.xwork2.Preparable;
+import com.opensymphony.xwork2.Validateable;
+
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
@@ -27,13 +30,15 @@
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
-import java.util.Date;
import java.util.Collections;
+import java.util.Date;
import java.util.List;
import java.util.TimeZone;
import org.apache.archiva.checksum.ChecksumAlgorithm;
import org.apache.archiva.checksum.ChecksummedFile;
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.lang.StringUtils;
import org.apache.maven.archiva.common.utils.VersionComparator;
import org.apache.maven.archiva.common.utils.VersionUtil;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
@@ -46,7 +51,6 @@
import org.apache.maven.archiva.repository.RepositoryContentFactory;
import org.apache.maven.archiva.repository.RepositoryException;
import
org.apache.maven.archiva.repository.RepositoryNotFoundException;
-import
org
.apache.maven.archiva.repository.scanner.RepositoryContentConsumers;
import org.apache.maven.archiva.repository.audit.AuditEvent;
import org.apache.maven.archiva.repository.audit.Auditable;
import org.apache.maven.archiva.repository.metadata.MetadataTools;
@@ -56,6 +60,7 @@
import
org.apache.maven.archiva.repository.project.ProjectModelException;
import org.apache.maven.archiva.repository.project.ProjectModelWriter;
import
org
.apache
.maven.archiva.repository.project.writers.ProjectModel400Writer;
+import
org
.apache.maven.archiva.repository.scanner.RepositoryContentConsumers;
import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;
import org.apache.maven.archiva.scheduled.tasks.RepositoryTask;
import org.apache.maven.archiva.scheduled.tasks.TaskCreator;
@@ -63,17 +68,12 @@
import org.apache.maven.archiva.security.ArchivaSecurityException;
import org.apache.maven.archiva.security.PrincipalNotFoundException;
import org.apache.maven.archiva.security.UserRepositories;
-
-import com.opensymphony.xwork2.Preparable;
-import com.opensymphony.xwork2.Validateable;
-import org.apache.commons.io.FilenameUtils;
-import org.apache.commons.lang.StringUtils;
import org.codehaus.plexus.taskqueue.TaskQueueException;
/**
* Upload an artifact using Jakarta file upload in webwork. If set
by the user a pom will also be generated. Metadata
* will also be updated if one exists, otherwise it would be created.
- *
+ *
* @plexus.component role="com.opensymphony.xwork2.Action" role-
hint="uploadAction" instantiation-strategy="per-lookup"
*/
public class UploadAction
@@ -81,11 +81,11 @@
implements Validateable, Preparable, Auditable
{
/**
- * @plexus.requirement
- */
- private RepositoryContentConsumers consumers;
-
- /**
+ * @plexus.requirement
+ */
+ private RepositoryContentConsumers consumers;
+
+ /**
* The groupId of the artifact to be deployed.
*/
private String groupId;
@@ -149,16 +149,16 @@
* @plexus.requirement
*/
private RepositoryContentFactory repositoryFactory;
-
+
/**
* @plexus.requirement
*/
private ArchivaTaskScheduler scheduler;
-
- private ChecksumAlgorithm[] algorithms = new
ChecksumAlgorithm[] { ChecksumAlgorithm.SHA1, ChecksumAlgorithm.MD5 };
+
+ private ChecksumAlgorithm[] algorithms = new ChecksumAlgorithm[]
{ChecksumAlgorithm.SHA1, ChecksumAlgorithm.MD5};
private ProjectModelWriter pomWriter = new
ProjectModel400Writer();
-
+
public void setArtifact( File file )
{
this.artifactFile = file;
@@ -293,7 +293,7 @@
repositoryId = "";
generatePom = false;
}
-
+
public String doUpload()
{
try
@@ -319,11 +319,11 @@
Date lastUpdatedTimestamp =
Calendar.getInstance().getTime();
int newBuildNumber = -1;
String timestamp = null;
-
+
File metadataFile =
getMetadata( targetPath.getAbsolutePath() );
ArchivaRepositoryMetadata metadata =
getMetadata( metadataFile );
- if (VersionUtil.isSnapshot(version))
+ if ( VersionUtil.isSnapshot( version ) )
{
TimeZone timezone = TimeZone.getTimeZone( "UTC" );
DateFormat fmt = new
SimpleDateFormat( "yyyyMMdd.HHmmss" );
@@ -335,8 +335,8 @@
}
else
{
- metadata.setSnapshotVersion( new
SnapshotVersion() );
- newBuildNumber = 1;
+ metadata.setSnapshotVersion( new
SnapshotVersion() );
+ newBuildNumber = 1;
}
}
@@ -364,12 +364,12 @@
}
String pomFilename = filename;
- if( classifier != null && !"".equals( classifier ) )
+ if ( classifier != null && !"".equals( classifier ) )
{
pomFilename = StringUtils.remove( pomFilename, "-" +
classifier );
}
pomFilename =
FilenameUtils.removeExtension( pomFilename ) + ".pom";
-
+
if ( generatePom )
{
try
@@ -389,11 +389,11 @@
return ERROR;
}
}
-
- if ( pomFile != null && pomFile.length() > 0 )
+
+ if ( pomFile != null && pomFile.length() > 0 )
{
try
- {
+ {
copyFile( pomFile, targetPath, pomFilename );
queueRepositoryTask( repoConfig.getId(), new
File( targetPath, pomFilename ) );
//consumers.executeConsumers( repoConfig, new
File( targetPath, pomFilename ) );
@@ -403,16 +403,16 @@
addActionError( "Error encountered while
uploading pom file: " + ie.getMessage() );
return ERROR;
}
-
+
}
updateMetadata( metadata, metadataFile,
lastUpdatedTimestamp, timestamp, newBuildNumber );
String msg = "Artifact \'" + groupId + ":" + artifactId
+ ":" + version +
"\' was successfully deployed to repository \'" +
repositoryId + "\'";
-
+
triggerAuditEvent( repositoryId, groupId + ":" +
artifactId + ":" + version, AuditEvent.UPLOAD_FILE );
-
+
addActionMessage( msg );
reset();
@@ -434,11 +434,11 @@
throws IOException
{
FileOutputStream out = new FileOutputStream( new
File( targetPath, targetFilename ) );
+ FileInputStream input = new FileInputStream( sourceFile );
try
{
- FileInputStream input = new
FileInputStream( sourceFile );
- int i = 0;
+ int i;
while ( ( i = input.read() ) != -1 )
{
out.write( i );
@@ -448,6 +448,7 @@
finally
{
out.close();
+ input.close();
}
}
@@ -459,8 +460,8 @@
projectModel.setArtifactId( artifactId );
projectModel.setVersion( version );
projectModel.setPackaging( packaging );
-
- File pomFile = new File( targetPath, filename);
+
+ File pomFile = new File( targetPath, filename );
pomWriter.write( projectModel, pomFile );
return pomFile;
@@ -486,7 +487,7 @@
/**
* Update artifact level metadata. If it does not exist, create
the metadata.
- *
+ *
* @param metadata
*/
private void updateMetadata( ArchivaRepositoryMetadata metadata,
File metadataFile, Date lastUpdatedTimestamp,
@@ -519,11 +520,11 @@
if ( metadata.getGroupId() == null )
{
- metadata.setGroupId( groupId );
+ metadata.setGroupId( groupId );
}
if ( metadata.getArtifactId() == null )
{
- metadata.setArtifactId( artifactId );
+ metadata.setArtifactId( artifactId );
}
metadata.setLatestVersion( latestVersion );
@@ -560,11 +561,11 @@
{
addActionError( "Please add a file to upload." );
}
-
+
if ( version == null || !
VersionUtil.isVersion( version ) )
{
addActionError( "Invalid version." );
- }
+ }
}
catch ( PrincipalNotFoundException pe )
{
@@ -575,7 +576,7 @@
addActionError( ae.getMessage() );
}
}
-
+
private List<String> getManagableRepos()
{
try
@@ -597,19 +598,20 @@
}
return Collections.emptyList();
}
-
+
private void queueRepositoryTask( String repositoryId, File
localFile )
{
RepositoryTask task =
TaskCreator.createRepositoryTask( repositoryId, localFile.getName(),
localFile );
-
+
try
{
scheduler.queueRepositoryTask( task );
}
catch ( TaskQueueException e )
{
- log.error( "Unable to queue repository task to execute
consumers on resource file ['" +
- localFile.getName() + "']." );
+ log.error(
+ "Unable to queue repository task to execute
consumers on resource file ['" + localFile.getName() +
+ "']." );
}
}
}
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/
src/test/java/org/apache/maven/archiva/web/startup/BannerTest.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/startup/BannerTest.java?rev=779841&r1=779840&r2=779841&view=diff
=
=
=
=
=
=
=
=
======================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/
test/java/org/apache/maven/archiva/web/startup/BannerTest.java
(original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/
test/java/org/apache/maven/archiva/web/startup/BannerTest.java Fri
May 29 05:02:22 2009
@@ -19,24 +19,24 @@
* under the License.
*/
-import org.apache.commons.io.IOUtils;
-
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
+import org.apache.commons.io.IOUtils;
+
import junit.framework.TestCase;
/**
- * BannerTest
+ * BannerTest
*
* @version $Id$
*/
public class BannerTest
extends TestCase
{
- private static final String eol =
System.getProperty("line.separator");
+ private static final String eol =
System.getProperty( "line.separator" );
private void assertEncodeDecode( String encoded, String decoded )
{
@@ -47,17 +47,17 @@
public void testEncodeDecode()
{
assertEncodeDecode( "[$10 ]", "[ ]" );
- assertEncodeDecode( "$$$5_$n$5_", "$_____"+eol+"_____" );
+ assertEncodeDecode( "$$$5_$n$5_", "$_____" + eol + "_____" );
assertEncodeDecode( "$${Refgjuvyr}", "${Erstwhile}" );
}
public void testInjectVersion()
{
assertEquals( "[ 1.0 ]", Banner.injectVersion( "[#####]",
"1.0" ) );
- assertEquals( ".\\ 1.0-SNAPSHOT \\._____",
Banner.injectVersion( ".\\################\\._____",
- "1.0
-SNAPSHOT" ) );
- assertEquals( "Archiva:\"+eol+\" ( 1.0-alpha-1 )", Banner
- .injectVersion( "Archiva:\"+eol+\" (##############)",
"1.0-alpha-1" ) );
+ assertEquals( ".\\ 1.0-SNAPSHOT \\._____",
+ Banner.injectVersion( ".\\################\
\._____", "1.0-SNAPSHOT" ) );
+ assertEquals( "Archiva:\"+eol+\" ( 1.0-alpha-1 )",
+ Banner.injectVersion( "Archiva:\"+eol+
\" (##############)", "1.0-alpha-1" ) );
}
public void testGetBanner()
@@ -67,16 +67,16 @@
String banner = Banner.getBanner( version );
assertNotNull( "Banner should not be null.", banner );
assertTrue( "Banner contains version.",
banner.indexOf( version ) > 0 );
-
+
/* Want to make a new banner?
- * Steps to do it.
- * 1) Edit the src/test/resources/banner.gz file.
- * 2) Save it compressed.
- * 3) Add (to this test method) ...
- * System.out.println( "\"" +
Banner.encode( getRawBanner() ) + "\"" );
- * 4) Run the test
- * 5) Copy / Paste the encoded form into the
Banner.getBanner() method.
- */
+ * Steps to do it.
+ * 1) Edit the src/test/resources/banner.gz file.
+ * 2) Save it compressed.
+ * 3) Add (to this test method) ...
+ * System.out.println( "\"" +
Banner.encode( getRawBanner() ) + "\"" );
+ * 4) Run the test
+ * 5) Copy / Paste the encoded form into the
Banner.getBanner() method.
+ */
}
public String getRawBanner()
@@ -86,6 +86,8 @@
assertTrue( "File [" + gzBanner.getPath() + "] not found.",
gzBanner.exists() );
FileInputStream fis = new FileInputStream( gzBanner );
GZIPInputStream gzis = new GZIPInputStream( fis );
- return IOUtils.toString( gzis );
+ String str = IOUtils.toString( gzis );
+ IOUtils.closeQuietly( gzis );
+ return str;
}
}