Skip to content

Commit 0d04d59

Browse files
author
gkbrown
committed
Add preliminary support for localized error messages in AppBundler.
git-svn-id: https://svn.java.net/svn/appbundler~svn@27 07572b26-92e5-4d45-f66a-c18421440a21
1 parent eb9600f commit 0d04d59

File tree

3 files changed

+54
-1
lines changed

3 files changed

+54
-1
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
"JRENotFound" = "A Java runtime environment could not be located."

appbundler/src/com/oracle/appbundler/AppBundlerTask.java

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,23 @@
2626

2727
package com.oracle.appbundler;
2828

29+
import java.io.BufferedOutputStream;
2930
import java.io.BufferedWriter;
3031
import java.io.File;
32+
import java.io.FileOutputStream;
3133
import java.io.FileWriter;
3234
import java.io.IOException;
3335
import java.io.InputStream;
36+
import java.io.OutputStream;
3437
import java.io.Writer;
3538
import java.net.URL;
3639
import java.nio.file.Files;
3740
import java.nio.file.LinkOption;
3841
import java.nio.file.Path;
3942
import java.nio.file.StandardCopyOption;
4043
import java.util.ArrayList;
44+
import java.util.zip.ZipEntry;
45+
import java.util.zip.ZipInputStream;
4146

4247
import javax.xml.stream.XMLOutputFactory;
4348
import javax.xml.stream.XMLStreamException;
@@ -87,6 +92,8 @@ public class AppBundlerTask extends Task {
8792
private static final String ARRAY_TAG = "array";
8893
private static final String STRING_TAG = "string";
8994

95+
private static final int BUFFER_SIZE = 2048;
96+
9097
public void setOutputDirectory(File outputDirectory) {
9198
this.outputDirectory = outputDirectory;
9299
}
@@ -276,6 +283,9 @@ public void execute() throws BuildException {
276283

277284
executableFile.setExecutable(true, false);
278285

286+
// Copy localized resources to Resources folder
287+
copyResources(resourcesDirectory);
288+
279289
// Copy runtime to PlugIns folder
280290
copyRuntime(plugInsDirectory);
281291

@@ -292,6 +302,42 @@ public void execute() throws BuildException {
292302
}
293303
}
294304

305+
private void copyResources(File resourcesDirectory) throws IOException {
306+
// Unzip res.zip into resources directory
307+
InputStream inputStream = getClass().getResourceAsStream("res.zip");
308+
ZipInputStream zipInputStream = new ZipInputStream(inputStream);
309+
310+
try {
311+
ZipEntry zipEntry = zipInputStream.getNextEntry();
312+
while (zipEntry != null) {
313+
File file = new File(resourcesDirectory, zipEntry.getName());
314+
315+
if (zipEntry.isDirectory()) {
316+
file.mkdir();
317+
} else {
318+
OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(file), BUFFER_SIZE);
319+
320+
try {
321+
int b = zipInputStream.read();
322+
while (b != -1) {
323+
outputStream.write(b);
324+
b = zipInputStream.read();
325+
}
326+
327+
outputStream.flush();
328+
} finally {
329+
outputStream.close();
330+
}
331+
332+
}
333+
334+
zipEntry = zipInputStream.getNextEntry();
335+
}
336+
} finally {
337+
zipInputStream.close();
338+
}
339+
}
340+
295341
private void copyRuntime(File plugInsDirectory) throws IOException {
296342
if (runtime != null) {
297343
File runtimeHomeDirectory = runtime.getDir();

build.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ questions.
3131
<property name="folder.src" value="src"/>
3232
<property name="folder.bin" value="bin"/>
3333
<property name="folder.classes" value="${folder.bin}/classes"/>
34+
<property name="folder.res" value="res"/>
3435

3536
<!-- Compile target -->
3637
<target name="compile">
@@ -87,6 +88,10 @@ questions.
8788

8889
<!-- Package target -->
8990
<target name="package" depends="compile">
91+
<zip destfile="${ant.project.name}/${folder.classes}/com/oracle/appbundler/res.zip">
92+
<fileset dir="${ant.project.name}/${folder.res}"/>
93+
</zip>
94+
9095
<jar destfile="${ant.project.name}/${folder.bin}/${ant.project.name}-${version}.jar" index="true">
9196
<manifest>
9297
<attribute name="Implementation-Vendor-Id" value="com.oracle"/>
@@ -97,6 +102,7 @@ questions.
97102
<fileset dir="${ant.project.name}/${folder.classes}"/>
98103
<fileset dir="${ant.project.name}/${folder.bin}">
99104
<include name="JavaAppLauncher"/>
105+
<include name="*.zip"/>
100106
</fileset>
101107
</jar>
102108
</target>
@@ -144,7 +150,7 @@ questions.
144150
<include name="**/*.html"/>
145151
<include name="**/*.java"/>
146152
<include name="**/*.m"/>
147-
<include name="**/*.properties"/>
153+
<include name="**/*.strings"/>
148154
<include name="**/*.xml"/>
149155
</fileset>
150156
<replaceregexp match="[\t]" replace=" " flags="gm" byline="true">

0 commit comments

Comments
 (0)