[izpack-users] Using ProcessPanel and Log4J

Marius Hugo marius.hugo at traderoot.com
Thu Apr 26 11:13:21 CEST 2007


Hi Mandeep, 

Im having some trouble with the attachment, not sure if you worked in an
editor or something, but the xml files look as follow:

{\rtf1\ansi\ansicpg1252\deff0\deflang2057{\fonttbl{\f0\fnil Courier
New;}{\f1\fnil\fcharset0 Courier New;}{\f2\fswiss\fcharset0 Arial;}}
{\colortbl
;\red0\green128\blue128;\red63\green127\blue127;\red127\green0\blue127;\
red0\green0\blue0;\red42\green0\blue255;\red232\green242\blue254;}
{\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\cf1\f0\fs20
<?\cf2 xml \cf3 version\cf4 =\cf5 "1.0" \cf3 encoding\cf4 =\cf5
"iso-8859-1" \cf3 standalone\cf4 =\cf5 "yes" \cf1 ?>\cf0\par
\cf1 <\cf2 installation \cf3 version\cf4 =\cf5 "1.0"\cf1 >\cf0\par
\cf4\tab\cf1 <\cf2 info\cf1 >\cf0\par
\cf4         \cf1 <\cf2 appname\cf1 >\cf4 TradeRoot\cf1 </\cf2
appname\cf1 >\cf0\par
\cf4         \cf1 <\cf2 appversion\cf1 >\cf4 4.5.1\cf1 </\cf2
appversion\cf1 >\cf0\par
\cf4         \cf1 <\cf2 authors\cf1 >\cf0\par
\cf4             \cf1 <\cf2 author \cf3 name\cf4 =\cf5 "Marius" \cf3
email\cf4 =\cf5 "marius.hugo at traderoot.com"\cf1 />\cf0\par
\cf4             \cf1 <\cf2 author \cf3 name\cf4 =\cf5 "TRADEROOT" \cf3
email\cf4 =\cf5 "traderoot at traderoot.com"\cf1 />\cf0\par
\cf4         \cf1 </\cf2 authors\cf1 >\cf0\par
\cf4         \cf1 <\cf2 url\cf1 >\cf4 http://www.traderoot.com/\cf1
</\cf2 url\cf1 >\cf0\par
\cf4         \cf1 <\cf2 javaversion\cf1 >\cf4 1.4\cf1 </\cf2
javaversion\cf1 >\cf0\par
\cf4     \f1\tab\cf1\f0 </\cf2 info\cf1 >\cf0\par

 this does not parse,
Unless I ma missing something dreadfully obvious

Thanks,
marius

-----Original Message-----
From: izpack-users-bounces at lists.berlios.de
[mailto:izpack-users-bounces at lists.berlios.de] On Behalf Of Mandeep
Saini
Sent: 24 April 2007 15:44
To: izpack-users at lists.berlios.de
Subject: Re: [izpack-users] Using ProcessPanel and Log4J

Hi Marius,

I am sending you a detailed example try to follow it:
for ProcessPanel.Spec.xml and install.xml find the attachments:

com.traderoot.tools.artifact.installer.LicenseInstall class:

public class LicenseInstall {
public void run( AbstractUIProcessHandler handler, String[] args) {
	String installPath = args[0];
	String trtLicense = args[1];
	String tradeRootInstallationPath = args[2];
	String tradeRootRepositoriesPath = args[3];
	String check = args[4];
	String output = null;
	
	if(check.equals("Selected"){
	output = "install path is: " + installPath + "\n";
	output = output + "trtLicense variable contains: " + trtLicense
+ "\n";
	output = output + "tradeRootInstallationPath is: " +
tradeRootInstallationPath + "\n";

	}	
	
	try {
	 FileWriter propWriter propWriter= new
FileWriter(tradeRootRepositoriesPath + "/MyProp.properties");
	 BufferedWriter outBuffer = new BufferedWriter(propWriter);
	 outBuffer.write(output);
	 outBuffer.close();
	}
	catch(java.io.IOException ioe){	 }	

}
}

Hope it will help.

Regards
Mandeep

Marius Hugo wrote:
> Thanks, I tried all of that now, but I still get an exception and I 
> cannot get the ProcessPanel logging to work...
> My code that im passing looks like this
> 
> public class LicenseInstall {
> 	public void run(AbstractUIProcessHandler handler, String[]
args){
> 		String install_path = args[0];
> 		Util.configureLogging();
> 		Util.setLogLevel(Util.VERBOSE);
> 		Util.log(Util.VERBOSE,"WORKING",classname,null);
> 		
> 		try{
> 			LicenseInstall l = new LicenseInstall(args);
> 		} catch (Exception x){
> 			Util.log(Util.ERROR,"Uh-oh! ", classname,x);
> 		}
> 	}
> 	 
> ...
> ..
> ..
> ..
> }
> 
> I expected to have a log file created containing the text "WORKING" on

> the C drive as is configured in my log4j, that didn't work inside the 
> ProcessPanel (if I just run it in my environment it works) I have 
> tried to just make a BufferedWriter and create a text file just to see

> if my class at least runs, but that also does nothing...so I don't 
> think the log4j is the problem.
> 
> I get the following window that pops up when I run the process panel:
> Title -> Post Processing Error
> -> Exception when running class:
> com.traderoot.tools.artifact.installer.LicenseInstall,
> com.traderoot.tools.artifact.installer.LicenseInstall.
> 
> Could anyone point out anything that I'm missing? I'm gonna attach my 
> install.xml file, etc...
> 
> Thanks,
> Marius
> 
> 
> -----Original Message-----
> From: izpack-users-bounces at lists.berlios.de
> [mailto:izpack-users-bounces at lists.berlios.de] On Behalf Of Mandeep 
> Saini
> Sent: 20 April 2007 11:20
> To: izpack-users at lists.berlios.de
> Subject: Re: [izpack-users] Using ProcessPanel and Log4J
> 
> Hi Marius,
> 
> see the related comments below:
> Marius Hugo wrote:
>> Hi, I'm new to IzPack and I'm having a bit of trouble with the
> following:
>>  
>> I have to merge files based on versioning and a license that I must 
>> parse.  I have written my own code to handle this and included it in 
>> a
> 
>> ProcessPanel.  I loaded the jars necessary using the <jar> tag (these

>> tags are in my install.xml).
> 
> Make sure you also include the jars on which your class has 
> dependency, unless its already in izpack. For example, if my classes 
> have dependency on 'commons-codec-1.3.jar' and my processing classes 
> are in another jar file (say processingClasses.jar) then in my
install.xml I will write:
> 
> <jar src="target/processPanelJar/processingClasses.jar" /> <jar 
> src="target/jars/commons-codec-1.3.jar" />
> 
> 
>> When I  get to running the panel, it simply tells me that there has 
>> been an exception using my class and there is no actual indication 
>> that the correct action was taken or that my class was even run (I 
>> also have no clue what the exception is, it doesn't specify)
>>  
>> My class uses log4j and that has to read a file for its config.  
>> Normally I would just say the following:
>> java  -Dlog4j.configuration=log4j.properties com.bla bla bla.MyClass
> 
> If your class file needs some config file like 'log4j.properties' then

> the jar file which contains your class should also contain the 
> properties file. make the code to find it from there.
>>  
>> How would I get this right in the process panel?  Cause I need to see

>> the logs so that I can know what's going on.
>>  
>> Also, I attempted to enable the ProcessPanel logging, but the file 
>> never gets created in $INSTALL_PATH.
> 
> I have also tried to enable ProcessPanel logging but I could not do
so. 
> As far as I remember this feature is not completely implemented yet 
> but I cant remember the actual cause.
>> My ProcessPanel config looks a little something like this:
>>  
>> <processing>
>>  <job name="InstallArtifacts">
>>  <logfiledir>$INSTALL_PATH</logfiledir>
>>  <executeclass
> name="com.traderoot.tools.artifact.installer.LicenseInstall">
>>   <args>
>>               <arg value="$trtLicense"/>
>>               <arg value="$INSTALL_PATH/TradeRoot/Installations/"/>
>>               <arg value="$INSTALL_PATH/TradeRoot/Repositories"/>
>>               <arg value="Stack"/>
>>              </args>
>>  </executeclass>
>>  </job>
>> </processing>
>>  
>> $trtLicense -> location of license that i captured in a UserInput
> panel....
>> I understand that all these values are passed in the specified order 
>> to the main method of the class that I specified.
> 
> When you write any class for process panel, you don't need to write 
> main method instead you write the run( AbstractUIProcessHandler 
> handler, String[] args) method. For example:
> 
> import com.izforge.izpack.util.AbstractUIProcessHandler;
> 
> public class MyClass {
> 	
> public void run( AbstractUIProcessHandler handler, String[] args){
> 	String install_path = args[0];
> 	myMethod(install_path);
> }
> 
> public void myMethod(){
> }
> }
> 
> Hope this works for you.
> 
> Regards
> Mandeep
> 
>>  
>> thanks guys
>>  
>>  
>>  
>> 	
>>
>> MARIUS HUGO
>>
>>
>> SOFTWARE ENGINEER
>>
>> 	
>> c
>> t
>> f
>> 	+27 72 237 4083
>> +27 21 551 5444
>> +27 21 551 5449
>>
>> 	*TRADEROOT **TECHNOLOGIES (Pty)Ltd. Reg. No. 2000/005984/07.
>> www.traderoot.com Directors* E von Engelhardt, J Ludik, B Dungan, W
> Reece.
>>  
>>
>>
>> ---------------------------------------------------------------------
>> -
>> --
>>
>> _______________________________________________
>> izpack-users mailing list
>> izpack-users at lists.berlios.de
>> https://lists.berlios.de/mailman/listinfo/izpack-users
> 
> _______________________________________________
> izpack-users mailing list
> izpack-users at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/izpack-users
> 
> 
> ----------------------------------------------------------------------
> --
> 
> <?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>
> 
> <!--
> 
> Some handy tips....
> 
> VARIABLES
> 
> <variables>
> 	<variable name="app-version" value="1.4"/>
> 	<variable name="released-on" value="08/03/2002"/> </variables>
> 
> use variable as follows -> $name
> 
> 
> 
> -->
> 
> 
> 
> <installation version="1.0">
> 
> 
>     
>     
>     <!-- gui preferences -->
>     
>     <guiprefs height="700" resizable="yes" width="900">
> 	<laf name="metouia">
> 		<os family="unix" />
> 		<param name="decorate.frames" value="yes" />
> 		<param name="decorate.dialogs" value="yes" />
> 	</laf>
> 	<laf name="metouia">
> 		<os family="windows" />		
> 		<param name="decorate.frames" value="yes" />
> 		<param name="decorate.dialogs" value="yes" />
> 	</laf>
>      </guiprefs>
>      
>      
>      
>     <!-- 
>  	Specify the supported languages
>     -->
>     <locale>
>         <langpack iso3="eng"/>        
>     </locale>
>     
>     
>     <!-- 
>  	Specify resources that can be loaded by the panels (defined and
used later in this file)
>  	I defined the logo, text containing info and the license
agreement
>     -->
>     
>     <resources>
>     	<res id="Installer.image" src="/Logo/logo.jpg"/>
<!-- left hand picture for all panes, trtLogo
>     	...can also specify for each panel...id=Installer.image.n, where

> n=0..lastpanel-1  -->
>     	
> 	<res id="InfoPanel.info" src="/Doc/ReadMe.txt"/>
> 	<res id="LicencePanel.licence" src="/Legal/License.txt"/>
> 	<res id="userInputSpec.xml" src="userInputSpec.xml"/>
> 	<res id="ProcessPanel.Spec.xml" src="ProcessPanel.Spec.xml"/>	
>     </resources>
>    
> 
>     <jar src="lib/artifact-SNAPSHOT.jar"/>
>     <jar src="lib/commons-io-1.1.jar"/>
>     <jar src="lib/commons-logging-1.0.4.jar"/>
>     <jar src="lib/log4j-1.2.8.jar"/>
>     <jar src="lib/truezip-6.jar"/>
>     
>     <!-- 
>         Indicate the panels we want to use, in order.
>     -->
>     <panels>
>         <panel classname="HelloPanel"/>
>         <panel classname="InfoPanel"/>
>         <panel classname="UserInputPanel"/>
>         <panel classname="LicencePanel"/>
>         <panel classname="TargetPanel"/> 
>         <panel classname="PacksPanel"/>
>         <panel classname="InstallPanel"/>
>         <panel classname="ProcessPanel"/>
>         <panel classname="FinishPanel"/>
>     </panels>
>     
>     
>     
>     <!-- InfoPanel -> info about this installer....for the info 
> panel... -->
> 
>     <info>
>         <appname>TradeRoot</appname>
>         <appversion>4.5.1</appversion>
>         <authors>
>             <author name="Marius" email="marius.hugo at traderoot.com"/>
>             <author name="TRADEROOT" email="traderoot at traderoot.com"/>
>         </authors>
>         <url>http://www.traderoot.com/</url>
>         <javaversion>1.4</javaversion>
>     </info>
>     
>     
>     
>     
>      <!-- 
>         The packs section.
>         We specify our packs here.
>     -->
>     
>     
>     
>     <packs>
>         <pack name="TradeRoot Core" required="yes">
>             <description>The core files required for a TradeRoot
Installation.  Please note that you are required to select at least one
Installation</description>
>             <required>yes</required>
>             <preselected>yes</preselected>                        
>             <file src="TradeRoot Skeleton/Export"
targetdir="$INSTALL_PATH">
>             	<exclude>**</exclude>
>             </file>
>             <file src="TradeRoot Skeleton/Import"
targetdir="$INSTALL_PATH">
>                 <exclude>**</exclude>
>             </file>
>             
>             <file src="TradeRoot Skeleton/Installations"
targetdir="$INSTALL_PATH">
>                 <exclude>**</exclude>
>             </file>            
>             <file src="TradeRoot Skeleton/Java"
targetdir="$INSTALL_PATH">
>                 <exclude>**</exclude>
>             </file>            
>             <file src="TradeRoot Skeleton/UserApplications"
targetdir="$INSTALL_PATH">
>                 <exclude>**</exclude>
>             </file>
>             
>             <file src="TradeRoot Skeleton/Repositories"
targetdir="$INSTALL_PATH"/>
>             <file src="TradeRoot Skeleton/Install" 
> targetdir="$INSTALL_PATH"/>
>                         
> 
>         </pack>
>      </packs>
>      
> </installation>
>     
>     
> 
> 
> 
> 
> 
> ----------------------------------------------------------------------
> --
> 
> <processing>
> 	<job name="InstallArtifacts">
> 	<logfiledir>$INSTALL_PATH</logfiledir>
> 	    <jar src="lib/artifact-SNAPSHOT.jar"/>
>     <jar src="lib/commons-io-1.1.jar"/>
>     <jar src="lib/commons-logging-1.0.4.jar"/>
>     <jar src="lib/log4j-1.2.8.jar"/>
>     <jar src="lib/truezip-6.jar"/>
> 	<executeclass
name="com.traderoot.tools.artifact.installer.LicenseInstall">
> 		<args>
>             		<arg value="$trtLicense"/>
>             		<arg
value="$INSTALL_PATH/TradeRoot/Installations/"/>
>             		<arg
value="$INSTALL_PATH/TradeRoot/Repositories"/>
>             		<arg value="Stack"/>
>             	</args>
> 	</executeclass>
> 	</job>
> </processing>
> 
> 
> ----------------------------------------------------------------------
> --
> 
> _______________________________________________
> izpack-users mailing list
> izpack-users at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/izpack-users




More information about the izpack-users mailing list