You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by el...@apache.org on 2024/11/22 18:29:50 UTC

(maven-changes-plugin) branch versions created (now cc35950)

This is an automated email from the ASF dual-hosted git repository.

elharo pushed a change to branch versions
in repository https://gitbox.apache.org/repos/asf/maven-changes-plugin.git


      at cc35950  Use try with resources

This branch includes the following new commits:

     new cc35950  Use try with resources

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-changes-plugin) 01/01: Use try with resources

Posted by el...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

elharo pushed a commit to branch versions
in repository https://gitbox.apache.org/repos/asf/maven-changes-plugin.git

commit cc3595060782a750de2390b264c9299595ee02e6
Author: Elliotte Rusty Harold <el...@ibiblio.org>
AuthorDate: Fri Nov 22 13:29:40 2024 -0500

    Use try with resources
---
 .../plugins/announcement/AnnouncementMojo.java     | 54 +++++++++-------------
 .../maven/plugins/changes/ChangesReport.java       | 21 +++------
 2 files changed, 28 insertions(+), 47 deletions(-)

diff --git a/src/main/java/org/apache/maven/plugins/announcement/AnnouncementMojo.java b/src/main/java/org/apache/maven/plugins/announcement/AnnouncementMojo.java
index aa24b75..4772952 100644
--- a/src/main/java/org/apache/maven/plugins/announcement/AnnouncementMojo.java
+++ b/src/main/java/org/apache/maven/plugins/announcement/AnnouncementMojo.java
@@ -22,8 +22,10 @@ import javax.inject.Inject;
 
 import java.io.File;
 import java.io.FileOutputStream;
+import java.io.IOException;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
+import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -57,7 +59,6 @@ import org.apache.velocity.context.Context;
 import org.apache.velocity.exception.ResourceNotFoundException;
 import org.apache.velocity.exception.VelocityException;
 import org.apache.velocity.tools.ToolManager;
-import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.velocity.VelocityComponent;
 
 /**
@@ -637,61 +638,50 @@ public class AnnouncementMojo extends AbstractAnnouncementMojo {
     }
 
     /**
-     * Create the velocity template
+     * Create the velocity template.
      *
      * @param context velocity context that has the parameter values
      * @param outputDirectory directory where the file will be generated
      * @param template velocity template which will the context be merged
-     * @param announcementFile The file name of the generated announcement
-     * @throws VelocityException in case of errors.
-     * @throws MojoExecutionException in case of errors.
+     * @param announcementFile the file name of the generated announcement
+     * @throws VelocityException in case of error processing the Velocty template
+     * @throws MojoExecutionException in case of errors
      */
     public void processTemplate(Context context, File outputDirectory, String template, String announcementFile)
             throws VelocityException, MojoExecutionException {
-        File f;
 
         // Use the name of the template as a default value
         if (announcementFile == null || announcementFile.isEmpty()) {
             announcementFile = template;
         }
 
-        try {
-            f = new File(outputDirectory, announcementFile);
-
-            if (!f.getParentFile().exists()) {
-                f.getParentFile().mkdirs();
+        if (!outputDirectory.exists()) {
+            if (!outputDirectory.mkdirs()) {
+                throw new MojoExecutionException("Faield to create directory " + outputDirectory);
             }
+        }
 
-            VelocityEngine engine = velocity.getEngine();
-
-            engine.setApplicationAttribute("baseDirectory", basedir);
+        File f = new File(outputDirectory, announcementFile);
 
-            if (templateEncoding == null || templateEncoding.isEmpty()) {
-                templateEncoding = ReaderFactory.FILE_ENCODING;
-                getLog().warn("File encoding has not been set, using platform encoding " + templateEncoding
-                        + ", i.e. build is platform dependent!");
-            }
+        VelocityEngine engine = velocity.getEngine();
 
-            Writer writer = new OutputStreamWriter(new FileOutputStream(f), templateEncoding);
+        engine.setApplicationAttribute("baseDirectory", basedir);
 
+        if (templateEncoding == null || templateEncoding.isEmpty()) {
+            templateEncoding = Charset.defaultCharset().name();
+            getLog().warn("File encoding has not been set, using platform encoding " + templateEncoding
+                    + ", i.e. build is platform dependent!");
+        }
+        try (Writer writer = new OutputStreamWriter(new FileOutputStream(f), templateEncoding)) {
             Template velocityTemplate = engine.getTemplate(templateDirectory + "/" + template, templateEncoding);
-
             velocityTemplate.merge(context, writer);
-
-            writer.flush();
-
-            writer.close();
-
             getLog().info("Created template " + f);
         } catch (ResourceNotFoundException rnfe) {
             throw new ResourceNotFoundException("Template not found. ( " + templateDirectory + "/" + template + " )");
         } catch (VelocityException ve) {
-            throw new VelocityException(ve.toString());
-        } catch (Exception e) {
-            if (e.getCause() != null) {
-                getLog().warn(e.getCause());
-            }
-            throw new MojoExecutionException(e.toString(), e.getCause());
+            throw ve;
+        } catch (RuntimeException | IOException e) {
+            throw new MojoExecutionException(e.toString(), e);
         }
     }
 
diff --git a/src/main/java/org/apache/maven/plugins/changes/ChangesReport.java b/src/main/java/org/apache/maven/plugins/changes/ChangesReport.java
index 4398f22..af9c9d2 100644
--- a/src/main/java/org/apache/maven/plugins/changes/ChangesReport.java
+++ b/src/main/java/org/apache/maven/plugins/changes/ChangesReport.java
@@ -21,10 +21,12 @@ package org.apache.maven.plugins.changes;
 import javax.inject.Inject;
 
 import java.io.File;
-import java.io.FileWriter;
 import java.io.IOException;
 import java.io.Writer;
 import java.net.URL;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.text.SimpleDateFormat;
 import java.util.Collections;
 import java.util.Date;
@@ -439,24 +441,13 @@ public class ChangesReport extends AbstractChangesReport {
         feed.setAuthor(changesXml.getAuthor());
         feed.setDateFormat(new SimpleDateFormat(publishDateFormat, new Locale(publishDateLocale)));
 
-        Writer writer = null;
-
-        try {
-            writer = new FileWriter(new File(getReportOutputDirectory(), "changes.rss"));
+        Path changes = getReportOutputDirectory().toPath().resolve("changes.rss");
+        try (Writer writer = Files.newBufferedWriter(changes, StandardCharsets.UTF_8)) {
             feed.export(changesXml.getReleaseList(), feedType, writer);
         } catch (IOException ex) {
             success = false;
-            getLog().warn("Failed to create rss feed: " + ex.getMessage());
+            getLog().warn("Failed to create RSS feed: " + ex.getMessage());
             getLog().debug(ex);
-        } finally {
-            try {
-                if (writer != null) {
-                    writer.close();
-                }
-            } catch (IOException ex) {
-                getLog().warn("Failed to close writer: " + ex.getMessage());
-                getLog().debug(ex);
-            }
         }
 
         return success;