< prev index next >
modules/fxpackager/src/main/java/com/oracle/tools/packager/AbstractBundler.java
Print this page
rev 9619 : imported patch 9-jake-fxpackager.patch
@@ -27,13 +27,14 @@
import com.oracle.tools.packager.windows.WindowsBundlerParam;
import java.io.ByteArrayOutputStream;
import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.net.URL;
+import java.nio.file.Files;
import java.text.MessageFormat;
import java.util.*;
public abstract class AbstractBundler implements Bundler {
@@ -56,13 +57,13 @@
protected void fetchResource(
String publicName, String category,
String defaultName, File result, boolean verbose, File publicRoot)
throws IOException {
- URL u = locateResource(publicName, category, defaultName, verbose, publicRoot);
- if (u != null) {
- IOUtils.copyFromURL(u, result);
+ InputStream is = streamResource(publicName, category, defaultName, verbose, publicRoot);
+ if (is != null) {
+ Files.copy(is, result.toPath());
} else {
if (verbose) {
Log.info(MessageFormat.format(I18N.getString("message.using-default-resource"), category == null ? "" : "[" + category + "] ", publicName));
}
}
@@ -70,56 +71,55 @@
protected void fetchResource(
String publicName, String category,
File defaultFile, File result, boolean verbose, File publicRoot)
throws IOException {
- URL u = locateResource(publicName, category, null, verbose, publicRoot);
- if (u != null) {
- IOUtils.copyFromURL(u, result);
+ InputStream is = streamResource(publicName, category, null, verbose, publicRoot);
+ if (is != null) {
+ Files.copy(is, result.toPath());
} else {
IOUtils.copyFile(defaultFile, result);
if (verbose) {
Log.info(MessageFormat.format(I18N.getString("message.using-custom-resource-from-file"), category == null ? "" : "[" + category + "] ", defaultFile.getAbsoluteFile()));
}
}
}
- private URL locateResource(String publicName, String category,
+ private InputStream streamResource(String publicName, String category,
String defaultName, boolean verbose, File publicRoot) throws IOException {
- URL u = null;
boolean custom = false;
+ InputStream is = null;
if (publicName != null) {
if (publicRoot != null) {
File publicResource = new File(publicRoot, publicName);
if (publicResource.exists() && publicResource.isFile()) {
- u = publicResource.toURI().toURL();
+ is = new FileInputStream(publicResource);
}
} else {
- u = baseResourceLoader.getClassLoader().getResource(publicName);
+ is = baseResourceLoader.getClassLoader().getResourceAsStream(publicName);
}
- custom = (u != null);
+ custom = (is != null);
}
- if (u == null && defaultName != null) {
- u = baseResourceLoader.getResource(defaultName);
+ if (is == null && defaultName != null) {
+ is = baseResourceLoader.getResourceAsStream(defaultName);
}
String msg = null;
if (custom) {
msg = MessageFormat.format(I18N.getString("message.using-custom-resource-from-classpath"), category == null ? "" : "[" + category + "] ", publicName);
- } else if (u != null) {
+ } else if (is != null) {
msg = MessageFormat.format(I18N.getString("message.using-default-resource-from-classpath"), category == null ? "" : "[" + category + "] ", publicName);
}
- if (verbose && u != null) {
+ if (verbose && is != null) {
Log.info(msg);
}
- return u;
+ return is;
}
protected String preprocessTextResource(String publicName, String category,
String defaultName, Map<String, String> pairs,
boolean verbose, File publicRoot) throws IOException {
- URL u = locateResource(publicName, category, defaultName, verbose, publicRoot);
- InputStream inp = u.openStream();
+ InputStream inp = streamResource(publicName, category, defaultName, verbose, publicRoot);
if (inp == null) {
throw new RuntimeException("Jar corrupt? No "+defaultName+" resource!");
}
//read fully into memory
< prev index next >