maven-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From denn...@apache.org
Subject svn commit: r743319 - /maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarProjectPackagingTask.java
Date Wed, 11 Feb 2009 13:07:00 GMT
Author: dennisl
Date: Wed Feb 11 13:06:59 2009
New Revision: 743319

URL: http://svn.apache.org/viewvc?rev=743319&view=rev
Log:
[MWAR-183] filteringDeploymentDescriptors should honor the encoding specified in web.xml

Modified:
    maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarProjectPackagingTask.java

Modified: maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarProjectPackagingTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarProjectPackagingTask.java?rev=743319&r1=743318&r2=743319&view=diff
==============================================================================
--- maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarProjectPackagingTask.java
(original)
+++ maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarProjectPackagingTask.java
Wed Feb 11 13:06:59 2009
@@ -31,6 +31,7 @@
 import org.apache.maven.shared.filtering.MavenFilteringException;
 import org.codehaus.plexus.util.DirectoryScanner;
 import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.xml.XmlStreamReader;
 
 /**
  * Handles the project own resources, that is:
@@ -220,9 +221,8 @@
                 }
                 if ( context.isFilteringDeploymentDescriptors() )
                 {
-                    // TODO: web.xml encoding can be different from UTF-8
                     context.getMavenFileFilter().copyFile( webXml, new File( webinfDir, "web.xml"
), true,
-                                                           context.getFilterWrappers(), "UTF-8"
);
+                                                           context.getFilterWrappers(), getEncoding(
webXml ) );
                 }
                 else
                 {
@@ -238,9 +238,8 @@
                 // if exists we can filter it
                 if ( defaultWebXml.exists() && context.isFilteringDeploymentDescriptors()
)
                 {
-                    // TODO: web.xml encoding can be different from UTF-8
                     context.getMavenFileFilter().copyFile( defaultWebXml, new File( webinfDir,
"web.xml" ), true,
-                                                           context.getFilterWrappers(), "UTF-8"
);
+                                                           context.getFilterWrappers(), getEncoding(
defaultWebXml ) );
                     context.getWebappStructure().getFullStructure().add( WEB_INF_PATH + "/web.xml"
);
                 }
             }
@@ -250,9 +249,9 @@
                 String xmlFileName = containerConfigXML.getName();
                 if ( context.isFilteringDeploymentDescriptors() )
                 {
-                    // TODO: XML config file encoding can be different from UTF-8
                     context.getMavenFileFilter().copyFile( containerConfigXML, new File(
metainfDir, xmlFileName ),
-                                                           true, context.getFilterWrappers(),
"UTF-8" );
+                                                           true, context.getFilterWrappers(),
+                                                           getEncoding( containerConfigXML
) );
                 }
                 else
                 {
@@ -272,6 +271,19 @@
         }
     }
 
+    /**
+     * Get the encoding from an XML-file.
+     *
+     * @param webXml the XML-file
+     * @return The encoding of the XML-file, or UTF-8 if it's not specified in the file
+     * @throws IOException if an error occurred while reading the file
+     */
+    private String getEncoding( File webXml )
+        throws IOException
+    {
+        XmlStreamReader xmlReader = new XmlStreamReader( webXml );
+        return xmlReader.getEncoding();
+    }
 
     /**
      * Copies webapp webResources from the specified directory.



Mime
View raw message