conor 2003/02/15 18:35:00
Modified: src/main/org/apache/tools/ant/taskdefs Tag: ANT_15_BRANCH
Jar.java
Log:
Merge
Revision Changes Path
No revision
No revision
1.51.2.15 +17 -11 ant/src/main/org/apache/tools/ant/taskdefs/Jar.java
Index: Jar.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Jar.java,v
retrieving revision 1.51.2.14
retrieving revision 1.51.2.15
diff -u -w -u -r1.51.2.14 -r1.51.2.15
--- Jar.java 10 Feb 2003 14:24:44 -0000 1.51.2.14
+++ Jar.java 16 Feb 2003 02:35:00 -0000 1.51.2.15
@@ -61,7 +61,6 @@
import org.apache.tools.ant.types.EnumeratedAttribute;
import org.apache.tools.zip.ZipOutputStream;
-import java.io.IOException;
import java.io.File;
import java.io.InputStream;
import java.io.Reader;
@@ -70,6 +69,9 @@
import java.io.PrintWriter;
import java.io.ByteArrayInputStream;
import java.io.OutputStreamWriter;
+import java.io.FileOutputStream;
+import java.io.FileInputStream;
+import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
@@ -227,7 +229,7 @@
* or the name of a jar added through a fileset. If its the name of an
added
* jar, the task expects the manifest to be in the jar at
META-INF/MANIFEST.MF.
*
- * @param manifestFile
+ * @param manifestFile the manifest file to use.
*/
public void setManifest(File manifestFile) {
if (!manifestFile.exists()) {
@@ -241,18 +243,20 @@
private Manifest getManifest(File manifestFile) {
Manifest newManifest = null;
- Reader r = null;
+ FileInputStream fis = null;
+ InputStreamReader isr = null;
try {
- r = new FileReader(manifestFile);
- newManifest = getManifest(r);
+ fis = new FileInputStream(manifestFile);
+ isr = new InputStreamReader(fis, "UTF-8");
+ newManifest = getManifest(isr);
} catch (IOException e) {
throw new BuildException("Unable to read manifest file: "
+ manifestFile
+ " (" + e.getMessage() + ")", e);
} finally {
- if (r != null) {
+ if (isr != null) {
try {
- r.close();
+ isr.close();
} catch (IOException e) {
// do nothing
}
@@ -367,7 +371,8 @@
zipDir(null, zOut, "META-INF/");
// time to write the manifest
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- PrintWriter writer = new PrintWriter(baos);
+ OutputStreamWriter osw = new OutputStreamWriter(baos, "UTF-8");
+ PrintWriter writer = new PrintWriter(osw);
manifest.write(writer);
writer.flush();
@@ -469,13 +474,13 @@
}
}
- private void filesetManifest(File file, InputStream is) {
+ private void filesetManifest(File file, InputStream is) throws
IOException {
if (manifestFile != null && manifestFile.equals(file)) {
// If this is the same name specified in 'manifest', this
// is the manifest to use
log("Found manifest " + file, Project.MSG_VERBOSE);
if (is != null) {
- manifest = getManifest(new InputStreamReader(is));
+ manifest = getManifest(new InputStreamReader(is, "UTF-8"));
} else {
manifest = getManifest(file);
}
@@ -488,7 +493,8 @@
try {
Manifest newManifest = null;
if (is != null) {
- newManifest = getManifest(new InputStreamReader(is));
+ newManifest
+ = getManifest(new InputStreamReader(is, "UTF-8"));
} else {
newManifest = getManifest(file);
}