> 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;
> }
> }
>
>