[izpack-users] Exception when adding an Uninstaller (was) Re:Re:Integrating Izpack with eclipse

Bartz, Klaus Klaus.Bartz at coi.de
Thu Aug 31 14:22:49 CEST 2006


Hi Jacobo,
I have tested it on my box and it runs if I remove the blank in standalone-compiler.jar.
With ant 1.6.2 and a little bit changed path. May be try a path without blanks.
Will be nice if you use a little bit bigger fond because then I must not copy it to an editor to
be able to read it right...
I do not know why it do not run as your side. May be you can make some System.out.println in the
involved code and see what happens. Debugging this will be a little bit hard...
If you will, there is a description in the docu. To invoke standalone-compiler.jar it have to be refered
as external jar and in opposide to "normal" debugging of IzPack infront of the project.
To debug it with ant I do not know.
 
Cheers
 
Klaus

-----Original Message-----
From: izpack-users-bounces at lists.berlios.de [mailto:izpack-users-bounces at lists.berlios.de]On Behalf Of Jacobo García
Sent: Wednesday, August 30, 2006 9:08 PM
To: izpack-users at lists.berlios.de
Subject: Re: [izpack-users] Exception when adding an Uninstaller (was) Re:Re:Integrating Izpack with eclipse


I'm not quite sure of this, but does findIzPackResource looks in system classpath for files?, standalone-compiler is not in system classpath, but in my plugin's one, so maybe something has to be changed in order to make this work. 

In other side It seems findIzPackResource is returning null. But reading findIzPackResource code I can't understand how is this possible, if path variable is not null (and it isn`t) the method should return an URL like this /lib/uninstaller.jar 

If path variable is null, and it isn't because addInfo call findIzPackResource directly with String lib/uninstaller.jar  a new resource is created, and then returned.

Any clues on this ideas?


On 8/30/06, Jacobo García < jacobo.garcia at gmail.com> wrote: 

The uninstal.jar file is inside standalone-compiler.jar , so this is not the problem.

My ant file is like this


<?xml version="1.0" encoding="UTF-8"?> 
<project name="Installer Generator" default="default" basedir=".">


    <taskdef name="izpack" classpath="/Users/jacobo/Documents/workspace/Eclipse Installer Generator/izpack/lib/standalone- compiler.jar" classname="com.izforge.izpack.ant.IzPackTask" />

    <target name="default" description="Main target"> 

        <izpack input="/Users/jacobo/Desktop/export/tmp/installer.xml" output="/Users/jacobo/Desktop/jacobo- installer.jar" basedir="/Users/jacobo/Desktop/export/tmp" izpackdir="/Users/jacobo/Documents/workspace/Eclipse Installer Generator/" />
    </target>
</project>
Here is the folder structure of the plugin, Eclipse Installer Generator is root plugin folder

Eclipse Installer Generator/izpack/lib/installer-generator.jar

I've been trying changing last part izpackdir attribute to every combination of (izpack, izpack/lib, izpack/lib/installer- generator.jar)

Nothing of this worked.

Thanks again for your time.



On 8/30/06, Bartz, Klaus <  <mailto:Klaus.Bartz at coi.de> Klaus.Bartz at coi.de> wrote:


Hi Jacobo,
normaly it compiles without this error.
Look into findIzPackResource.this method searches in your compiler jar file for the
needed resources.
Please look into standalone-compiler.jar; there should be stored uninstaller.jar in path lib\.
If not, it is missing at generating standalone-compiler.jar. Build stanalone-compiler.jar only
in a full IzPack project with installed sources.
I do not work with the standalone-compiler.jar. May be you have to set izpackdir also you should
not need it.
 
Cheers
 
Klaus



-----Original Message-----
From: izpack-users-bounces at lists.berlios.de [mailto: izpack-users-bounces at lists.berlios.de]On Behalf Of Jacobo García

Sent: Wednesday, August 30, 2006 4:22 PM
To: izpack-users at lists.berlios.de

Subject: [izpack-users] Exception when adding an Uninstaller (was) Re: Re:Integrating Izpack with eclipse



Thanks for your help Klaus, I've managed to run the compiler now. I'm using the standalone compiler at this moment, and it looks that my plugin works well with it.

By the way I'm Having another problem at this moment. 

This is a typical izpack xml file that my plugin generates:

<?xml version="1.0" encoding="UTF-8"?>
<installation version="1.0">
  <info>
    <appname>jaco</appname>
    <appversion>dsfa</appversion> 
    <authors>
      <author email="fdasadsf" name="asdfads"/>
    </authors>
    <url> http://www.com.com</url>
    <javaversion>1.5</javaversion>
  </info> 
  <guiprefs height="600" resizable="no" width="800"/>
  <resources>
    <res id="InfoPanel.info" src="/Users/jacobo/Desktop/export/tmp/readme.txt"/> 
  </resources>
  <panels>
    <panel classname="HelloPanel"/>
    <panel classname="InfoPanel"/>
    <panel classname="InstallPanel"/> 
  </panels>
  <packs>
    <pack name="Main" required="yes">
      <description>Main Pack that does all the installation</description>
      <file dir="/Users/jacobo/Desktop/export/linux.gtk.x86" os="unix" override="true" targetdir="/opt/jaco"/>
      <file dir="/Users/jacobo/Desktop/export/win32.win32.x86" os="windows" override="true" targetdir="c:\Program Files\jaco"/>
      <file dir="/Users/jacobo/Desktop/export/macosx.carbon.x86" os="mac" override="true" targetdir="/Applications/jaco"/> 
    </pack>
  </packs> 
</installation>


When running this file, I get a null pointer exception, this is the code: 

Caused by: java.lang.NullPointerException
    at org.apache.tools.ant.Task.log(Task.java:346)
    at com.izforge.izpack.ant.IzPackTask.packagerMsg(IzPackTask.java:142) 
    at com.izforge.izpack.compiler.Packager.sendMsg(Packager.java:242)
    at com.izforge.izpack.compiler.Packager.addResource(Packager.java:371)
    at com.izforge.izpack.compiler.Compiler.addResource(Compiler.java:408)
    at com.izforge.izpack.compiler.CompilerConfig.addInfo (CompilerConfig.java:1195)
    at com.izforge.izpack.compiler.CompilerConfig.executeCompiler(CompilerConfig.java:310) 
    at com.izforge.izpack.ant.IzPackTask.execute(IzPackTask.java:234)
    ... 67 more
--- Nested Exception ---

Looking at izpack source code, the exception comes in CompilerConfig.java, in this portion of code:

 XMLElement uninstallInfo = root.getFirstChildNamed("uninstaller");
        if (validateYesNoAttribute(uninstallInfo, "write", YES))
        {
        /* thisline gives the error*/  URL url = findIzPackResource("lib/uninstaller.jar", "Uninstaller", root); 
            compiler.addResource("IzPack.uninstaller", url);

            if (uninstallInfo != null)
            {
                String uninstallerName = uninstallInfo.getAttribute("name");
                if (uninstallerName != null && uninstallerName.endsWith(".jar")
                        && uninstallerName.length() > ".jar".length())
                    info.setUninstallerName (uninstallerName);
            }
        }

This happens if I include uninstall element on the xml or not. It looks like it does not find uninstaller.jar, So I tried to add it to the same folder where standalone-compiler.jar is. But did not worked. 

¿Is this a Bug?

On 8/30/06, Bartz, Klaus < Klaus.Bartz at coi.de> wrote:
>  
>  
> Hi Jacobo, 
> I think only izpackdir is missing in the task, but let us recapitulate: 
>   
> You need all contents of lib (except standalone-compiler.jar) and bin also
> including the sub dirs e.g. bin/panels. 
> Panels jars should be exist there, the subdirs created at building are not 
> needed. 
>   
> Alternate you can use the  standakine-compiler. Then you need nothing more
> because it should contain all. 
> If you have custom panels/actions a rebuild will be needed. 
>   
> IzPack needs to know where are the bin and the lib directory. therefore the
> ant call should contain 
> also izpackdir. My task (used since some years) seems like: 
> ... 
>   <taskdef name="izpack" classpath="${ izpack.home}/lib/compiler.jar" 
>     classname="com.izforge.izpack.ant.IzPackTask"/>
> ... 
>   <izpack
> input="${installersrc.root}/product/appl/install/IzPackProjects/${ installer.subproject}/install.xml"
>     output="${installerdest.root}/${installer.subproject}/install.jar" 
>     installertype="standard" 
>     basedir="${installersrc.root }" 
>     izpackdir="${izpack.home}/"/> 
>   
> Alternate: 
>  
>  
> ... 
>   <taskdef name="izpack"
> classpath="${izpack.home}/lib/standalone_compiler.jar" 
>     classname="com.izforge.izpack.ant.IzPackTask"/>
> ...  <izpack
> input="${installersrc.root}/product/appl/install/IzPackProjects/${installer.subproject}/install.xml"
>     output="${ installerdest.root}/${installer.subproject}/install.jar" 
>     installertype="standard" 
>     basedir="${installersrc.root}" /> 
>   
> Ant vars are defined at the beginning of the ant script... 
>   
> If this not work, test with a full IzPack installation. 
>   
> Hope it helpes
>  
>   
> Klaus
>  
> 
>  
>   
>  
> -----Original Message----- 
> From: izpack-users-bounces at lists.berlios.de  <mailto:izpack-users-bounces at lists.berlios.de> 
> [mailto: izpack-users-bounces at lists.berlios.de ]On Behalf Of
> Jacobo García
> Sent: Wednesday, August 30, 2006 1:41 AM
> To: izpack-users at lists.berlios.de
> Subject: [izpack-users] Integrating Izpack with eclipse 
> 
> Hello, 
> 
> I am developing an Eclipse plugin that creates an installer for Eclipse RCP
> applications.
> 
> I have copied both lib and bin folders from my OS X Izpack (3.9.0 . preview)
> installation into a folder called izpack that is in the root of my plugin
> folder.
> 
> The plugin works this way:
> 
> The user exports (to a folder, let's call it export folder) an Eclipse RCP 
> application with other Eclipse wizard (not my plugin), usually Windows, Mac,
> and Linux exports are performed with "Eclipse Delta Pack". 
> 
> Then user runs the plugin I am developing, in this process he chooses the 
> export folder, and other parameters like the authors or website.
> 
> Then the plugin generates an ant script file and an izpack xml installer
> (named installer.xml). This file is located in a tmp folder located inside 
> the export folder. The ant file contains izpack task, and the plugin
> launches the ant task inside the plugin with a specific Eclipse class called
> AntRunner. 
> 
> Here is an example of the ant file. 
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <project name="Installer Generator" default="default" basedir=".">
>     <target name="default" description="Main target"> 
>  
>         <izpack
> input="/Users/jacobo/Desktop/export/tmp/installer.xml"
> output="/Users/jacobo/Desktop/jj- installer.jar"
> installerType="standard"
> basedir="/Users/jacobo/Desktop/export/tmp"/>
>     </target>
> </project>
> 
> 
> In eclipse you can register ant tasks in a file called plugin.xml, so you
> don't have to use  taskdef in order to define tasks, that's what I've done 
> with the code shown above.
> 
> The problem is that I am getting the famous - You have misspelt 'izpack'. -
> ant exception. I am wondering if I do have to register more izpack tasks
> that IzPackTask depends on. I looked at izpack sources and IzPackTask only 
> depends on other classes that are inside compiler.jar. To be totally sure, I
> created a little test ant task jar file, and tried to add it to plugin.xml
> the same way I do with izpack ant tasks, and this worked fine. 
> 
> Here it comes my first question, am I missing something? some izpack folder?
> some .jar? 
> 
> 
> 
> Also I tried to add the taskdef code to my ant task, so right now ant task 
> looks this way.
> 
> <?xml version="1.0" encoding="UTF-8"?> 
> <project name="Installer Generator" default="default" basedir=".">
>  
>     <taskdef name="izpack"               
> classpath="/Users/jacobo/Documents/workspace/Eclipse
> Installer Generator/izpack/lib/compiler.jar" classname="
> com.izforge.izpack.ant.IzPackTask " />
>     <target name="default" description="Main target"> 
>  
>         <izpack
> input="/Users/jacobo/Desktop/export/tmp/installer.xml"
> output="/Users/jacobo/Desktop/jacobo- installer.jar"
> installerType="standard"
> basedir="/Users/jacobo/Desktop/export/tmp"/>
>     </target>
> </project>
> 
> This way I am getting this exception: A class needed by class 
> com.izforge.izpack.ant.IzPackTask cannot be found:
> 
> I am not sure what is wrong in this second file, something related to
> basedir?
> 
> That's all, I can show you all the code if you find it necessary. 
> 
> Thanks for your attention, and please accept my apologies about my bad
> english.
> 
> -- 
> Jacobo García López de Araujo 
> _______________________________________________ 
> izpack-users mailing list
> izpack-users at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/izpack-users  <https://lists.berlios.de/mailman/listinfo/izpack-users> 
> 
> 
> 


-- 
Jacobo García López de Araujo



_______________________________________________


izpack-users mailing list
izpack-users at lists.berlios.de  <mailto:izpack-users at lists.berlios.de> 
https://lists.berlios.de/mailman/listinfo/izpack-users






-- 
Jacobo García López de Araujo 




-- 
Jacobo García López de Araujo 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.berlios.de/pipermail/izpack-users/attachments/20060831/6220c627/attachment.html 


More information about the izpack-users mailing list