[izpack-changes] r1834 - in izpack-src/trunk: . bin/langpacks/installer src src/dist-files src/doc-ng/XHTML src/lib/com/izforge/izpack/compiler src/lib/com/izforge/izpack/installer
noreply at berlios.de
noreply at berlios.de
Mon May 14 13:45:48 CEST 2007
Author: jponge
Date: 2007-05-14 13:45:44 +0200 (Mon, 14 May 2007)
New Revision: 1834
Modified:
izpack-src/trunk/Versions.txt
izpack-src/trunk/bin/langpacks/installer/fra.xml
izpack-src/trunk/src/build.xml
izpack-src/trunk/src/dist-files/IzPack-install.xml
izpack-src/trunk/src/doc-ng/XHTML/node9.html
izpack-src/trunk/src/lib/com/izforge/izpack/compiler/Compiler.java
izpack-src/trunk/src/lib/com/izforge/izpack/installer/AutomatedInstaller.java
Log:
Merged -r1817:1833 from branches/3.10
Modified: izpack-src/trunk/Versions.txt
===================================================================
--- izpack-src/trunk/Versions.txt 2007-05-12 21:42:52 UTC (rev 1833)
+++ izpack-src/trunk/Versions.txt 2007-05-14 11:45:44 UTC (rev 1834)
@@ -1,6 +1,10 @@
[ The list of the different public versions of IzPack ]
+<<<<<<< .courant
> Next major release
+=======
+ > 3.10.2 (build 2007.05.11)
+>>>>>>> .fusion-droit.r1833
- Added ignore as possible value for failure argument in executables (Dennis Reil)
- Added Conditional expressions (Dennis Reil)
@@ -18,7 +22,7 @@
- Locale support of Shortcut specification file (Klaus Bartz using a hint of Loic)
- Enabled distributed pack-definitions (Hans Aikema based on patch by Syed Khadeer)
- > 3.10.2
+ > 3.10.2 (build 2007.05.11)
- Vista/Java6 fixes (Stefan Wachter via Julien Ponge)
- Dutch Langpack fixes (Hans Aikema)
@@ -26,6 +30,8 @@
- Indonesian Langpack fixes (Thomas Santosa via Hans Aikema)
- UserInputPanel and InstallerFrame: enable the next button for search dialogs (Michael Hagedorn via Julien Ponge)
- VariableSubstitutor: new Java source files support (Max Fedorov via Julien Ponge)
+- French langpack updates (Loic, via Julien Ponge)
+- Documentation update (Scott Plante via Julien Ponge)
- AutomatedUninstaller.writeUninstallData() out of sync with InstallerFrame fixed (Marius Nicolae via Marc Eppelmann)
> 3.10.1 (build 2007.03.29)
Modified: izpack-src/trunk/bin/langpacks/installer/fra.xml
===================================================================
--- izpack-src/trunk/bin/langpacks/installer/fra.xml 2007-05-12 21:42:52 UTC (rev 1833)
+++ izpack-src/trunk/bin/langpacks/installer/fra.xml 2007-05-14 11:45:44 UTC (rev 1834)
@@ -86,6 +86,11 @@
<str id="InstallPanel.overwrite.title" txt="Le fichier existe déjà."/>
<str id="InstallPanel.overwrite.question" txt="Le fichier suivant existe déjà. Faut-il l'écraser ?"/>
+ <!-- InstallationGroupPanel strings -->
+ <str id="InstallationGroupPanel.colNameSelected" txt="Groupe à installer" />
+ <str id="InstallationGroupPanel.colNameInstallType" txt="Description" />
+ <str id="InstallationGroupPanel.colNameSize" txt="Taille" />
+
<!-- FinishPanel strings -->
<str id="FinishPanel.success" txt="L'installation est réussie !"/>
<str id="FinishPanel.done" txt="Terminer"/>
Modified: izpack-src/trunk/src/build.xml
===================================================================
--- izpack-src/trunk/src/build.xml 2007-05-12 21:42:52 UTC (rev 1833)
+++ izpack-src/trunk/src/build.xml 2007-05-14 11:45:44 UTC (rev 1834)
@@ -204,7 +204,7 @@
<property file="src/ant.properties" />
<property name="ver" value="3.10" />
- <property name="rel" value="1" />
+ <property name="rel" value="2" />
<property name="build.number" value="${ver}.${rel}" />
<property name="src.dir" value="${basedir}/src/lib" />
Modified: izpack-src/trunk/src/dist-files/IzPack-install.xml
===================================================================
--- izpack-src/trunk/src/dist-files/IzPack-install.xml 2007-05-12 21:42:52 UTC (rev 1833)
+++ izpack-src/trunk/src/dist-files/IzPack-install.xml 2007-05-14 11:45:44 UTC (rev 1834)
@@ -23,11 +23,13 @@
<!-- The info section -->
<info>
<appname>IzPack</appname>
- <appversion>3.10.1</appversion>
+ <appversion>3.10.2</appversion>
<authors>
<author email="" name="Julien Ponge (maintainer and original developer)"/>
<author email="" name="Klaus Bartz (developer)"/>
+ <author email="" name="Hans Aikema (developer)" />
+ <author email="" name="Marc Eppelmann (developer)" />
<author email="" name="Fabrice Mirabile (developer)"/>
<author email="" name="Dennis Reil (developer)" />
<author email="" name="JBoss/RedHat: Vladimir Ralev (developers)" />
@@ -40,6 +42,11 @@
<author email="" name="Stefan Wachter (contributor)" />
<author email="" name="Romain Guy (contributor)" />
<author email="" name="Melih Cetin (contributor)" />
+ <author email="" name="Thomas Santosa (contributor)" />
+ <author email="" name="Michael Hagedorn (contributor)" />
+ <author email="" name="Max Fedorov (contributor)" />
+ <author email="" name="Scott Plante (contributor)" />
+ <author email="" name="Marius Nicolae (contributor)" />
<author email=""
name="... the (many) other developers and contributors to the previous releases!"/>
Modified: izpack-src/trunk/src/doc-ng/XHTML/node9.html
===================================================================
--- izpack-src/trunk/src/doc-ng/XHTML/node9.html 2007-05-12 21:42:52 UTC (rev 1833)
+++ izpack-src/trunk/src/doc-ng/XHTML/node9.html 2007-05-14 11:45:44 UTC (rev 1834)
@@ -450,20 +450,26 @@
[IzPackRoot]/src/lib/[MyPackagePath]/MyCompilerListener.java</tt>.
</li>
<li>
- Add a "compile.simple" antcall in to <tt>[IzPackRoot]/src/build.xml</tt>.
+ Add a "<tt>build-compiler-listener</tt>" macro call in to the
+ <tt>build.listeners</tt> target in <tt>[IzPackRoot]/src/build.xml</tt>.
+ Note that the name attribute value in the build-instealler-listener
+ must match <tt>CompilerListener</tt> implementation class name (not
+ including the package). You should include the actual Listener
+ implementation, as well as any other classes required by the listener.
<pre>
-<antcall target="compile.listener.simple">
- <param name="listener" value="MyCompilerListener"/>
- <param name="listener-dir" value="MyCompilerListener"/>
- <param name="listener-include" value="[MyPackagePath]"/>
-</antcall>
+ <build-compiler-listener name="MyCompilerListener">
+ <include name="[MyPackagePath]/MyCompilerListener.java"/>
+ <include name="[MyPackagePath]/SomeOtherHelperClass.java"/>
+ </build-compiler-listener>
</pre>
</li>
<li>
Run <tt>[IzPackRoot]/src/build.xml</tt>.
+ An <tt>ant</tt> alone will execute the required targets.
</li>
<li>
- Add a "listeners" ELEMENT with a "listener" ELEMENT with a "compiler" attribute in to [MyProjectPath]/install.xml
+ Add a "listeners" ELEMENT with a "listener" ELEMENT with a "compiler"
+ attribute in to [MyProjectPath]/install.xml
<pre>
<listeners>
<listener compiler="MyCompilerListener" />
@@ -471,7 +477,7 @@
</pre>
</li>
<li>
- Compile with
+ Compile with the following command, or an ant task you have set up.
<pre>
java -jar [IzPackRoot]/lib/compiler.jar -HOME [IzPackRoot]
[MyProjectPath]/install.xml -b [MyProductPath] -o
Modified: izpack-src/trunk/src/lib/com/izforge/izpack/compiler/Compiler.java
===================================================================
--- izpack-src/trunk/src/lib/com/izforge/izpack/compiler/Compiler.java 2007-05-12 21:42:52 UTC (rev 1833)
+++ izpack-src/trunk/src/lib/com/izforge/izpack/compiler/Compiler.java 2007-05-14 11:45:44 UTC (rev 1834)
@@ -64,7 +64,7 @@
public class Compiler extends Thread
{
/** The IzPack version. */
- public final static String IZPACK_VERSION = "3.10.1";
+ public final static String IZPACK_VERSION = "3.10.2";
/** The IzPack home directory. */
public static String IZPACK_HOME = ".";
Modified: izpack-src/trunk/src/lib/com/izforge/izpack/installer/AutomatedInstaller.java
===================================================================
--- izpack-src/trunk/src/lib/com/izforge/izpack/installer/AutomatedInstaller.java 2007-05-12 21:42:52 UTC (rev 1833)
+++ izpack-src/trunk/src/lib/com/izforge/izpack/installer/AutomatedInstaller.java 2007-05-14 11:45:44 UTC (rev 1834)
@@ -28,15 +28,17 @@
import java.io.ObjectOutputStream;
import java.io.OutputStreamWriter;
import java.io.ByteArrayOutputStream;
+
import java.util.Iterator;
import java.util.Map;
import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.Vector;
import java.util.ArrayList;
import java.util.HashSet;
-import java.util.TreeMap;
-import java.util.Vector;
+import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
-import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import net.n3.nanoxml.NonValidator;
@@ -107,6 +109,7 @@
this.panelInstanceCount = new TreeMap();
}
+
/**
* Writes the uninstalldata.
*
@@ -164,130 +167,137 @@
}
execStream.flush();
outJar.closeEntry();
-
- Map additionalData = udata.getAdditionalData();
- if (additionalData != null && !additionalData.isEmpty())
- {
- Iterator keys = additionalData.keySet().iterator();
- HashSet exist = new HashSet();
- while (keys != null && keys.hasNext())
- {
- String key = (String) keys.next();
- Object contents = additionalData.get(key);
- if ("__uninstallLibs__".equals(key))
- {
- Iterator nativeLibIter = ((List) contents).iterator();
- while (nativeLibIter != null && nativeLibIter.hasNext())
- {
- String nativeLibName = (String) ((List) nativeLibIter.next()).get(0);
- byte[] buffer = new byte[5120];
- long bytesCopied = 0;
- int bytesInBuffer;
- outJar.putNextEntry(new ZipEntry("native/" + nativeLibName));
- InputStream in = getClass().getResourceAsStream(
- "/native/" + nativeLibName);
- while ((bytesInBuffer = in.read(buffer)) != -1)
- {
- outJar.write(buffer, 0, bytesInBuffer);
- bytesCopied += bytesInBuffer;
- }
- outJar.closeEntry();
- }
- }
- else if ("uninstallerListeners".equals(key) || "uninstallerJars".equals(key))
- { // It is a ArrayList of ArrayLists which contains the
- // full
- // package paths of all needed class files.
- // First we create a new ArrayList which contains only
- // the full paths for the uninstall listener self; thats
- // the first entry of each sub ArrayList.
- ArrayList subContents = new ArrayList();
-
- // Secound put the class into uninstaller.jar
- Iterator listenerIter = ((List) contents).iterator();
- while (listenerIter.hasNext())
- {
- byte[] buffer = new byte[5120];
- long bytesCopied = 0;
- int bytesInBuffer;
- CustomData customData = (CustomData) listenerIter.next();
- // First element of the list contains the listener
- // class path;
- // remind it for later.
- if (customData.listenerName != null)
- subContents.add(customData.listenerName);
- Iterator liClaIter = customData.contents.iterator();
- while (liClaIter.hasNext())
- {
- String contentPath = (String) liClaIter.next();
- if (exist.contains(contentPath)) continue;
- exist.add(contentPath);
- try
- {
- outJar.putNextEntry(new ZipEntry(contentPath));
- }
- catch (ZipException ze)
- { // Ignore, or ignore not ?? May be it is a
- // exception because
- // a doubled entry was tried, then we should
- // ignore ...
- Debug.trace("ZipException in writing custom data: "
- + ze.getMessage());
- continue;
- }
- InputStream in = getClass().getResourceAsStream("/" + contentPath);
- if (in != null)
- {
- while ((bytesInBuffer = in.read(buffer)) != -1)
- {
- outJar.write(buffer, 0, bytesInBuffer);
- bytesCopied += bytesInBuffer;
- }
- }
- else
- Debug.trace("custom data not found: " + contentPath);
- outJar.closeEntry();
-
- }
- }
- // Third we write the list into the
- // uninstaller.jar
- outJar.putNextEntry(new ZipEntry(key));
- ObjectOutputStream objOut = new ObjectOutputStream(outJar);
- objOut.writeObject(subContents);
- objOut.flush();
- outJar.closeEntry();
-
- }
- else
- {
- outJar.putNextEntry(new ZipEntry(key));
- if (contents instanceof ByteArrayOutputStream)
- {
- ((ByteArrayOutputStream) contents).writeTo(outJar);
- }
- else
- {
- ObjectOutputStream objOut = new ObjectOutputStream(outJar);
- objOut.writeObject(contents);
- objOut.flush();
- }
- outJar.closeEntry();
- }
- }
- }
- // write the files which should be deleted by root for another user
-
- outJar.putNextEntry(new ZipEntry(UninstallData.ROOTSCRIPT));
- ObjectOutputStream rootStream = new ObjectOutputStream(outJar);
-
- String rootScript = udata.getRootScript();
- rootStream.writeUTF(rootScript);
-
- rootStream.flush();
- outJar.closeEntry();
+ // *** ADDED code bellow
+ // Write out additional uninstall data
+ // Do not "kill" the installation if there is a problem
+ // with custom uninstall data. Therefore log it to Debug,
+ // but do not throw.
+ Map additionalData = udata.getAdditionalData();
+ if (additionalData != null && !additionalData.isEmpty())
+ {
+ Iterator keys = additionalData.keySet().iterator();
+ HashSet exist = new HashSet();
+ while (keys != null && keys.hasNext())
+ {
+ String key = (String) keys.next();
+ Object contents = additionalData.get(key);
+ if ("__uninstallLibs__".equals(key))
+ {
+ Iterator nativeLibIter = ((List) contents).iterator();
+ while (nativeLibIter != null && nativeLibIter.hasNext())
+ {
+ String nativeLibName = (String) ((List) nativeLibIter.next()).get(0);
+ byte[] buffer = new byte[5120];
+ long bytesCopied = 0;
+ int bytesInBuffer;
+ outJar.putNextEntry(new ZipEntry("native/" + nativeLibName));
+ InputStream in = getClass().getResourceAsStream(
+ "/native/" + nativeLibName);
+ while ((bytesInBuffer = in.read(buffer)) != -1)
+ {
+ outJar.write(buffer, 0, bytesInBuffer);
+ bytesCopied += bytesInBuffer;
+ }
+ outJar.closeEntry();
+ }
+ }
+ else if ("uninstallerListeners".equals(key) || "uninstallerJars".equals(key))
+ { // It is a ArrayList of ArrayLists which contains the
+ // full
+ // package paths of all needed class files.
+ // First we create a new ArrayList which contains only
+ // the full paths for the uninstall listener self; thats
+ // the first entry of each sub ArrayList.
+ ArrayList subContents = new ArrayList();
+ // Secound put the class into uninstaller.jar
+ Iterator listenerIter = ((List) contents).iterator();
+ while (listenerIter.hasNext())
+ {
+ byte[] buffer = new byte[5120];
+ long bytesCopied = 0;
+ int bytesInBuffer;
+ CustomData customData = (CustomData) listenerIter.next();
+ // First element of the list contains the listener
+ // class path;
+ // remind it for later.
+ if (customData.listenerName != null)
+ subContents.add(customData.listenerName);
+ Iterator liClaIter = customData.contents.iterator();
+ while (liClaIter.hasNext())
+ {
+ String contentPath = (String) liClaIter.next();
+ if (exist.contains(contentPath)) continue;
+ exist.add(contentPath);
+ try
+ {
+ outJar.putNextEntry(new ZipEntry(contentPath));
+ }
+ catch (ZipException ze)
+ { // Ignore, or ignore not ?? May be it is a
+ // exception because
+ // a doubled entry was tried, then we should
+ // ignore ...
+ Debug.trace("ZipException in writing custom data: "
+ + ze.getMessage());
+ continue;
+ }
+ InputStream in = getClass().getResourceAsStream("/" + contentPath);
+ if (in != null)
+ {
+ while ((bytesInBuffer = in.read(buffer)) != -1)
+ {
+ outJar.write(buffer, 0, bytesInBuffer);
+ bytesCopied += bytesInBuffer;
+ }
+ }
+ else
+ Debug.trace("custom data not found: " + contentPath);
+ outJar.closeEntry();
+
+ }
+ }
+ // Third we write the list into the
+ // uninstaller.jar
+ outJar.putNextEntry(new ZipEntry(key));
+ ObjectOutputStream objOut = new ObjectOutputStream(outJar);
+ objOut.writeObject(subContents);
+ objOut.flush();
+ outJar.closeEntry();
+
+ }
+ else
+ {
+ outJar.putNextEntry(new ZipEntry(key));
+ if (contents instanceof ByteArrayOutputStream)
+ {
+ ((ByteArrayOutputStream) contents).writeTo(outJar);
+ }
+ else
+ {
+ ObjectOutputStream objOut = new ObjectOutputStream(outJar);
+ objOut.writeObject(contents);
+ objOut.flush();
+ }
+ outJar.closeEntry();
+ }
+ }
+ }
+ // write the files which should be deleted by root for another user
+
+ outJar.putNextEntry(new ZipEntry(UninstallData.ROOTSCRIPT));
+ ObjectOutputStream rootStream = new ObjectOutputStream(outJar);
+
+ String rootScript = udata.getRootScript();
+
+ rootStream.writeUTF(rootScript);
+
+ rootStream.flush();
+ outJar.closeEntry();
+
+ // *** ADDED to this point
+
// Cleanup
outJar.flush();
outJar.close();
More information about the izpack-changes
mailing list