You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ti...@apache.org on 2019/07/27 13:46:28 UTC
[maven-archetype] branch buildfix created (now 9aafaa0)
This is an automated email from the ASF dual-hosted git repository.
tibordigana pushed a change to branch buildfix
in repository https://gitbox.apache.org/repos/asf/maven-archetype.git.
at 9aafaa0 missing try-with-resources and createNewFile() before new FileOutputStream(f)
This branch includes the following new commits:
new 9aafaa0 missing try-with-resources and createNewFile() before new FileOutputStream(f)
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[maven-archetype] 01/01: missing try-with-resources and
createNewFile() before new FileOutputStream(f)
Posted by ti...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
tibordigana pushed a commit to branch buildfix
in repository https://gitbox.apache.org/repos/asf/maven-archetype.git
commit 9aafaa049968e0c4f8bbcd28163c31caa86e4e51
Author: tibordigana <ti...@apache.org>
AuthorDate: Sat Jul 27 15:46:14 2019 +0200
missing try-with-resources and createNewFile() before new FileOutputStream(f)
---
.../maven/archetype/DefaultArchetypeManager.java | 6 ++++
.../maven/archetype/common/DefaultPomManager.java | 6 ++++
.../archetype/creator/FilesetArchetypeCreator.java | 33 ++++++++++++++++++----
.../DefaultFilesetArchetypeGenerator.java | 15 ++++++++--
.../maven/archetype/old/DefaultOldArchetype.java | 25 ++++++++++------
.../apache/maven/archetype/old/ArchetypeTest.java | 4 +--
.../DefaultArchetypeCreationConfigurator.java | 7 +++++
7 files changed, 76 insertions(+), 20 deletions(-)
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/DefaultArchetypeManager.java b/archetype-common/src/main/java/org/apache/maven/archetype/DefaultArchetypeManager.java
index f58c233..e6dbbd5 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/DefaultArchetypeManager.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/DefaultArchetypeManager.java
@@ -96,6 +96,12 @@ public class DefaultArchetypeManager
archive.getParentFile().mkdirs();
}
+
+ if ( !archive.exists() && !archive.createNewFile() )
+ {
+ getLogger().error( "Could not create file " + archive.getPath() );
+ }
+
try ( ZipOutputStream zos = new ZipOutputStream( new FileOutputStream( archive ) ) )
{
zos.setLevel( 9 );
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultPomManager.java b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultPomManager.java
index ca30cd7..5ae345f 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultPomManager.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultPomManager.java
@@ -234,6 +234,12 @@ public class DefaultPomManager
ioe.initCause( exc );
throw ioe;
}
+
+
+ if ( !pomFile.exists() && !pomFile.createNewFile() )
+ {
+ getLogger().error( "Could not create file " + pomFile.getPath() );
+ }
try ( Writer outputStreamWriter = new OutputStreamWriter( new FileOutputStream( pomFile ), fileEncoding ) )
{
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java b/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java
index f499d03..cd36d27 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java
@@ -80,6 +80,8 @@ import org.codehaus.plexus.util.WriterFactory;
import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+import static org.apache.commons.io.IOUtils.write;
+
/**
* Create a 2.x Archetype project from a project. Since 2.0-alpha-5, an integration-test named "basic" is created along
* the archetype itself to provide immediate test when building the archetype.
@@ -327,8 +329,14 @@ public class FilesetArchetypeCreator
File basicItDirectory = new File( generatedSourcesDirectory, basic );
basicItDirectory.mkdirs();
+ File archetypePropertiesFile = new File( basicItDirectory, "archetype.properties" );
+ if ( !archetypePropertiesFile.exists() && !archetypePropertiesFile.createNewFile() )
+ {
+ getLogger().error( "Could not create file " + archetypePropertiesFile.getPath() );
+ }
+
try ( InputStream in = FilesetArchetypeCreator.class.getResourceAsStream( "archetype.properties" );
- OutputStream out = new FileOutputStream( new File( basicItDirectory, "archetype.properties" ) ) )
+ OutputStream out = new FileOutputStream( archetypePropertiesFile ) )
{
Properties archetypeProperties = new Properties();
archetypeProperties.load( in );
@@ -461,6 +469,11 @@ public class FilesetArchetypeCreator
private void copyResource( String name, File destination )
throws IOException
{
+ if ( !destination.exists() && !destination.createNewFile() )
+ {
+ getLogger().error( "Could not create file " + destination.getPath() );
+ }
+
try ( InputStream in = FilesetArchetypeCreator.class.getResourceAsStream( name );
OutputStream out = new FileOutputStream( destination ) )
{
@@ -850,6 +863,8 @@ public class FilesetArchetypeCreator
FileUtils.copyFile( initialPomFile, inputFile );
+ outputFile.getParentFile().mkdirs();
+
try ( Reader in = ReaderFactory.newXmlReader( inputFile );
Writer out = WriterFactory.newXmlWriter( outputFile ) )
{
@@ -857,8 +872,6 @@ public class FilesetArchetypeCreator
String content = getReversedContent( initialcontent, pomReversedProperties );
- outputFile.getParentFile().mkdirs();
-
IOUtil.copy( content, out );
}
@@ -1063,6 +1076,8 @@ public class FilesetArchetypeCreator
FileUtils.copyFile( initialPomFile, inputFile );
+ outputFile.getParentFile().mkdirs();
+
try ( Reader in = ReaderFactory.newXmlReader( inputFile );
Writer out = WriterFactory.newXmlWriter( outputFile ) )
{
@@ -1070,8 +1085,6 @@ public class FilesetArchetypeCreator
String content = getReversedContent( initialcontent, pomReversedProperties );
- outputFile.getParentFile().mkdirs();
-
IOUtil.copy( content, out );
}
@@ -1288,7 +1301,15 @@ public class FilesetArchetypeCreator
File outputFile = new File( archetypeFilesDirectory, outputFilename );
outputFile.getParentFile().mkdirs();
- org.apache.commons.io.IOUtils.write( content, new FileOutputStream( outputFile ), fileEncoding );
+ if ( !outputFile.exists() && !outputFile.createNewFile() )
+ {
+ getLogger().error( "Could not create file " + outputFile.getPath() );
+ }
+
+ try ( OutputStream os = new FileOutputStream( outputFile ) )
+ {
+ write( content, os, fileEncoding );
+ }
}
}
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java b/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java
index b4d22c0..790a982 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java
@@ -284,6 +284,10 @@ public class DefaultFilesetArchetypeGenerator
else
{
outFile.getParentFile().mkdirs();
+ if ( !outFile.exists() && !outFile.createNewFile() )
+ {
+ getLogger().error( "Could not create file " + outFile.getPath() );
+ }
try ( InputStream inputStream = archetypeZipFile.getInputStream( input );
OutputStream out = new FileOutputStream( outFile ) )
@@ -496,7 +500,7 @@ public class DefaultFilesetArchetypeGenerator
private int processFileSet( String directory, List<String> fileSetResources, boolean packaged, String packageName,
Context context, File outputDirectoryFile, String moduleOffset,
String archetypeEncoding, boolean failIfExists )
- throws OutputFileExists, ArchetypeGenerationFailure
+ throws IOException, OutputFileExists, ArchetypeGenerationFailure
{
int count = 0;
@@ -602,7 +606,7 @@ public class DefaultFilesetArchetypeGenerator
}
private void processPom( Context context, File pom, String moduleOffset )
- throws OutputFileExists, ArchetypeGenerationFailure
+ throws IOException, OutputFileExists, ArchetypeGenerationFailure
{
getLogger().debug( "Processing pom " + pom );
@@ -657,7 +661,7 @@ public class DefaultFilesetArchetypeGenerator
@SuppressWarnings( "deprecation" )
private boolean processTemplate( File outFile, Context context, String templateFileName, String encoding,
boolean failIfExists )
- throws OutputFileExists, ArchetypeGenerationFailure
+ throws IOException, OutputFileExists, ArchetypeGenerationFailure
{
templateFileName = templateFileName.replace( File.separatorChar, '/' );
@@ -696,6 +700,11 @@ public class DefaultFilesetArchetypeGenerator
outFile.getParentFile().mkdirs();
}
+ if ( !outFile.exists() && !outFile.createNewFile() )
+ {
+ getLogger().error( "Could not create file " + outFile.getPath() );
+ }
+
getLogger().debug( "Merging into " + outFile );
try ( Writer writer = new OutputStreamWriter( new FileOutputStream( outFile ), encoding ) )
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java b/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java
index 07f75b8..5e90fc5 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java
@@ -305,6 +305,10 @@ public class DefaultOldArchetype
{
processTemplates( pomFile, outputDirectory, context, descriptor, packageName, parentModel );
}
+ catch ( IOException e )
+ {
+ throw new ArchetypeTemplateProcessingException( "Unable to process template", e );
+ }
finally
{
Thread.currentThread().setContextClassLoader( old );
@@ -395,7 +399,7 @@ public class DefaultOldArchetype
private void processTemplates( File pomFile, String outputDirectory, Context context,
ArchetypeDescriptor descriptor, String packageName, Model parentModel )
- throws ArchetypeTemplateProcessingException
+ throws ArchetypeTemplateProcessingException, IOException
{
if ( !pomFile.exists() )
{
@@ -616,7 +620,7 @@ public class DefaultOldArchetype
private void processTemplate( String outputDirectory, Context context, String template,
TemplateDescriptor descriptor, boolean packageInFileName, String packageName )
- throws ArchetypeTemplateProcessingException
+ throws ArchetypeTemplateProcessingException, IOException
{
processTemplate( outputDirectory, context, template, descriptor, packageInFileName, packageName, null );
}
@@ -633,7 +637,7 @@ public class DefaultOldArchetype
protected void processSources( String outputDirectory, Context context, ArchetypeDescriptor descriptor,
String packageName, String sourceDirectory )
- throws ArchetypeTemplateProcessingException
+ throws ArchetypeTemplateProcessingException, IOException
{
for ( String template : descriptor.getSources() )
{
@@ -644,7 +648,7 @@ public class DefaultOldArchetype
protected void processTestSources( String outputDirectory, Context context, ArchetypeDescriptor descriptor,
String packageName, String testSourceDirectory )
- throws ArchetypeTemplateProcessingException
+ throws ArchetypeTemplateProcessingException, IOException
{
for ( String template : descriptor.getTestSources() )
{
@@ -655,7 +659,7 @@ public class DefaultOldArchetype
protected void processResources( String outputDirectory, Context context, ArchetypeDescriptor descriptor,
String packageName )
- throws ArchetypeTemplateProcessingException
+ throws IOException, ArchetypeTemplateProcessingException
{
for ( String template : descriptor.getResources() )
{
@@ -666,7 +670,7 @@ public class DefaultOldArchetype
protected void processTestResources( String outputDirectory, Context context, ArchetypeDescriptor descriptor,
String packageName )
- throws ArchetypeTemplateProcessingException
+ throws IOException, ArchetypeTemplateProcessingException
{
for ( String template : descriptor.getTestResources() )
{
@@ -677,7 +681,7 @@ public class DefaultOldArchetype
protected void processSiteResources( String outputDirectory, Context context, ArchetypeDescriptor descriptor,
String packageName )
- throws ArchetypeTemplateProcessingException
+ throws IOException, ArchetypeTemplateProcessingException
{
for ( String template : descriptor.getSiteResources() )
{
@@ -689,7 +693,7 @@ public class DefaultOldArchetype
protected void processTemplate( String outputDirectory, Context context, String template,
TemplateDescriptor descriptor, boolean packageInFileName, String packageName,
String sourceDirectory )
- throws ArchetypeTemplateProcessingException
+ throws IOException, ArchetypeTemplateProcessingException
{
File f;
@@ -739,6 +743,11 @@ public class DefaultOldArchetype
f.getParentFile().mkdirs();
}
+ if ( !f.exists() && !f.createNewFile() )
+ {
+ getLogger().error( "Could not create file " + f.getPath() );
+ }
+
if ( descriptor.isFiltered() )
{
try ( Writer writer = new OutputStreamWriter( new FileOutputStream( f ), descriptor.getEncoding() ) )
diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java b/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
index 92f2fd5..5897695 100644
--- a/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
+++ b/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
@@ -172,10 +172,8 @@ public class ArchetypeTest
File artifactDir = getTestFile( "target", (String) parameters.get( "artifactId" ) );
File pomFile = getTestFile( artifactDir.getAbsolutePath(), OldArchetype.ARCHETYPE_POM );
- try
+ try ( FileReader pomReader = new FileReader( pomFile ) )
{
- FileReader pomReader = new FileReader( pomFile );
-
MavenXpp3Reader reader = new MavenXpp3Reader();
generatedModel = reader.read( pomReader );
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationConfigurator.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationConfigurator.java
index 3c5f9e9..2a8a4fb 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationConfigurator.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationConfigurator.java
@@ -309,6 +309,13 @@ public class DefaultArchetypeCreationConfigurator
storedProperties.setProperty( propertyKey, properties.getProperty( propertyKey ) );
}
+ propertyFile.getParentFile().mkdirs();
+
+ if ( !propertyFile.exists() && !propertyFile.createNewFile() )
+ {
+ getLogger().error( "Could not create file " + propertyFile.getPath() );
+ }
+
try ( OutputStream os = new FileOutputStream( propertyFile ) )
{
storedProperties.store( os, "" );