Fixed FindBugs warnings
diff --git a/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/classpath/FileSystemClassPathEntry.java b/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/classpath/FileSystemClassPathEntry.java
index 1429387..5166193 100644
--- a/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/classpath/FileSystemClassPathEntry.java
+++ b/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/classpath/FileSystemClassPathEntry.java
@@ -14,14 +14,17 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
-import java.io.FileReader;
 import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.io.Reader;
+import java.nio.charset.Charset;
 
 import org.eclipse.virgo.bundlor.ClassPathEntry;
 
 final class FileSystemClassPathEntry implements ClassPathEntry {
 
+    private static final String UTF_8 = "UTF-8";
+
     private final File root;
 
     private final File file;
@@ -40,11 +43,7 @@
     }
 
     public Reader getReader() {
-        try {
-            return new FileReader(this.file);
-        } catch (FileNotFoundException e) {
-            throw new RuntimeException(e);
-        }
+        return new InputStreamReader(getInputStream(), Charset.forName(UTF_8));
     }
 
     public String getName() {
diff --git a/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/classpath/JarFileClassPathEntry.java b/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/classpath/JarFileClassPathEntry.java
index 4a6ba79..7bab14d 100644
--- a/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/classpath/JarFileClassPathEntry.java
+++ b/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/classpath/JarFileClassPathEntry.java
@@ -15,6 +15,7 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
+import java.nio.charset.Charset;
 import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
 
@@ -22,6 +23,8 @@
 
 final class JarFileClassPathEntry implements ClassPathEntry {
 
+    private static final String UTF_8 = "UTF-8";
+
     private final JarFile jarFile;
 
     private final JarEntry entry;
@@ -40,7 +43,7 @@
     }
 
     public Reader getReader() {
-        return new InputStreamReader(getInputStream());
+        return new InputStreamReader(getInputStream(), Charset.forName(UTF_8));
     }
 
     public boolean isDirectory() {
diff --git a/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/contributors/BundleClassPathArtifactAnalyzer.java b/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/contributors/BundleClassPathArtifactAnalyzer.java
index f84dbc5..4ac0a05 100644
--- a/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/contributors/BundleClassPathArtifactAnalyzer.java
+++ b/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/contributors/BundleClassPathArtifactAnalyzer.java
@@ -17,6 +17,7 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
+import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -173,6 +174,8 @@
 
     private static class JarInputStreamClassPathEntry implements ClassPathEntry {
 
+        private static final String UTF_8 = "UTF-8";
+
         private final byte[] contents;
 
         private final JarEntry entry;
@@ -191,7 +194,7 @@
         }
 
         public Reader getReader() {
-            return new InputStreamReader(getInputStream());
+            return new InputStreamReader(getInputStream(), Charset.forName(UTF_8));
         }
 
         public boolean isDirectory() {
diff --git a/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/contributors/JspArtifactAnalyzer.java b/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/contributors/JspArtifactAnalyzer.java
index 0473121..451b7e3 100644
--- a/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/contributors/JspArtifactAnalyzer.java
+++ b/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/contributors/JspArtifactAnalyzer.java
@@ -14,6 +14,7 @@
 import java.io.BufferedReader;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.nio.charset.Charset;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -22,6 +23,8 @@
 
 public class JspArtifactAnalyzer implements ArtifactAnalyzer {
 
+    private static final String UTF_8 = "UTF-8";
+
     private static final String PACKAGE_SUFFIX = ".*";
 
     private static final String TYPE_SUFFIX = ".class";
@@ -29,7 +32,7 @@
     private final Pattern pattern = Pattern.compile("<%@ page.*import=\"(.*?)\".*%>");
 
     public void analyse(InputStream artifact, String artifactName, PartialManifest partialManifest) throws Exception {
-        BufferedReader in = new BufferedReader(new InputStreamReader(artifact));
+        BufferedReader in = new BufferedReader(new InputStreamReader(artifact, Charset.forName(UTF_8)));
         for (String line = in.readLine(); line != null; line = in.readLine()) {
             for (Matcher matcher = pattern.matcher(line); matcher.find();) {
                 processImports(matcher.group(1), partialManifest);
diff --git a/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/manifestwriter/FileSystemManifestWriter.java b/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/manifestwriter/FileSystemManifestWriter.java
index 01c0c20..f26eed7 100644
--- a/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/manifestwriter/FileSystemManifestWriter.java
+++ b/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/manifestwriter/FileSystemManifestWriter.java
@@ -12,9 +12,11 @@
 package org.eclipse.virgo.bundlor.support.manifestwriter;
 
 import java.io.File;
-import java.io.FileWriter;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.OutputStreamWriter;
 import java.io.Writer;
+import java.nio.charset.Charset;
 
 import org.eclipse.virgo.bundlor.ManifestWriter;
 import org.eclipse.virgo.bundlor.util.BundleManifestUtils;
@@ -37,8 +39,7 @@
             if (!manifestFile.getParentFile().exists() && !manifestFile.getParentFile().mkdirs()) {
                 throw new RuntimeException(String.format("Could not create parent directories of '%s'", manifestFile.getAbsolutePath()));
             }
-
-            out = new FileWriter(manifestFile);
+            out = new OutputStreamWriter(new FileOutputStream(manifestFile), Charset.forName("UTF-8"));
             BundleManifestUtils.createBundleManifest(manifest).write(out);
             System.out.printf("Manifest written to '%s'%n", manifestFile.getAbsolutePath());
         } catch (IOException e) {
diff --git a/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/properties/StringPropertiesSource.java b/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/properties/StringPropertiesSource.java
index 1009abf..c466c3d 100644
--- a/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/properties/StringPropertiesSource.java
+++ b/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/support/properties/StringPropertiesSource.java
@@ -13,16 +13,19 @@
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
+import java.nio.charset.Charset;
 import java.util.Properties;
 
 public class StringPropertiesSource implements PropertiesSource {
 
+    private static final String UTF_8 = "UTF-8";
+
     private final Properties properties;
 
     public StringPropertiesSource(String propertiesString) {
         Properties p = new Properties();
         try {
-            p.load(new ByteArrayInputStream(propertiesString.getBytes()));
+            p.load(new ByteArrayInputStream(propertiesString.getBytes(Charset.forName(UTF_8))));
         } catch (IOException e) {
             throw new RuntimeException(e);
         }
diff --git a/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/util/BundleManifestUtils.java b/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/util/BundleManifestUtils.java
index 069b892..e1b3edb 100644
--- a/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/util/BundleManifestUtils.java
+++ b/org.eclipse.virgo.bundlor/src/main/java/org/eclipse/virgo/bundlor/util/BundleManifestUtils.java
@@ -12,10 +12,12 @@
 package org.eclipse.virgo.bundlor.util;
 
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.FileNotFoundException;
-import java.io.FileReader;
 import java.io.IOException;
+import java.io.InputStreamReader;
 import java.io.Reader;
+import java.nio.charset.Charset;
 
 import org.eclipse.virgo.util.osgi.manifest.BundleManifest;
 import org.eclipse.virgo.util.osgi.manifest.BundleManifestFactory;
@@ -36,6 +38,8 @@
  */
 public final class BundleManifestUtils {
 
+    private static final String UTF_8 = "UTF-8";
+
     /**
      * Creates a {@link BundleManifest} from the supplied {@link ManifestContents}.
      * 
@@ -52,7 +56,7 @@
         }
 
         try {
-            return getManifest(new FileReader(manifestFile));
+            return getManifest(new InputStreamReader(new FileInputStream(manifestFile), Charset.forName(UTF_8)));
         } catch (FileNotFoundException e) {
             throw new RuntimeException(e);
         }