[izpack-devel] Coding custom components against an IzPack API
Klaus Bartz
bartzkau at gmx.net
Tue May 22 20:35:03 CEST 2007
Hi Raz,
sorry, but related to Validator's I cannot say something because
I do not use it. I write custom panels which contains the validation
stuff in it.
Cheers
Klaus
Am 22.05.2007, 17:38 Uhr, schrieb Raz Yalov <RYalov at the41.com>:
> Thanks Klaus,
>
> This is helpful. So maybe my problem was that the first custom element
> I've tried to create was a Validator's implementation which could be
> left out of the installation.jar file. Should it be part of it?
>
>
> Thanks again,
>
>
> Raz
>
> ________________________________
>
> From: Bartz, Klaus [mailto:Klaus.Bartz at coi.de]
> Sent: Tuesday, May 22, 2007 12:11 AM
> To: izpack-devel at lists.berlios.de
> Subject: Re: [izpack-devel] Coding custom components against an IzPack
> API
>
>
> Hi Raz,
>
> you need installer.jar of IzPack in your classpath to compile a custom
> panel or a custom action.
>
> All needed class files have to be stored in jar file which name is that
>> from the panel class (custom actions class).
>
> You have to store (or copy) the created jar file to %IZ_HOME%\bin\panels
> (%IZ_HOME%\bin\customActions).
>
>
> You can use a package path you like for panels or custom actions.
>
> You can store the sources for them else where.
>
>
> I use an ant script for this. Following some parts of it which handels
> panels and custom actions:
>
>
> ...
>
> <!-- Compile a custom panel -->
> <target name="compile.custompanel">
> <echo message="Compiles custom panel ${panel}" level="info"/>
> <mkdir dir="${bin.dir}/panels/${panel-dir}"/>
> <javac srcdir="${src.dir}" destdir="${bin.dir}/panels/${panel-dir}"
> classpath="${installer.jar}"
> optimize="on" deprecation="on" debug="${debug}"
> source="${source}" debuglevel="${debuglevel}">
> <include name="${panel}*.java"/>
> </javac>
> </target>
> <!-- Make JAR for a custom panel -->
> <target name="compile.custompanel.finish">
> <jar jarfile="${bin.dir}/panels/${panel}.jar">
> <fileset dir="${bin.dir}/panels/${panel}">
> <include name="**/*.class"/>
> </fileset>
> </jar>
> </target>
> <!-- convenience: compile simple custom panel and finish it -->
> <target name="compile.custompanel.simple">
> <antcall target="compile.custompanel">
> <param name="panel" value="${panel}"/>
> <param name="panel-dir" value="${panel-dir}"/>
> </antcall>
> <antcall target="compile.custompanel.finish">
> <param name="panel" value="${panel-dir}"/>
> </antcall>
> </target>
> <!-- Compile all custom panels and put them at the right location -->
> <target name="build.customPanels" >
> <antcall target="compile.custompanel.simple">
> <param name="panel"
> value="com/coi/tools/install/panels/AccountMonoSelectPanel"/>
> <param name="panel-dir" value="AccountMonoSelectPanel"/>
> </antcall>
> ...
>
> </target>
> <!-- Listener stuff targets
> **************************************************** START -->
> <!-- "Normal" listener targets are also now defined here because common
> IzPack
> build script was changed to macro usage -->
> <!-- Compile a listener -->
> <target name="compile.listener" >
> <echo message="Compiles listener ${listener}"/>
> <mkdir dir="${bin.dir}/customActions/${listener-dir}"/>
> <javac srcdir="${src.dir}"
> destdir="${bin.dir}/customActions/${listener-dir}"
> classpath="${installer.jar};${compiler.jar};${izevent.jar}"
> optimize="on"
> deprecation="on"
> debug="${debug}"
> source="${source}"
> debuglevel="${debuglevel}">
> <include name="${listener-include}/${listener}*.java"/>
> </javac>
> </target>
>
>
> <!-- Make JAR for a listener -->
> <target name="compile.listener.finish">
> <unzip src="${izevent.jar}"
> dest="${bin.dir}/customActions/${listener}" />
> <jar jarfile="${bin.dir}/customActions/${listener}.jar">
> <fileset dir="${bin.dir}/customActions/${listener}">
> <include name="**/*.class"/>
> <exclude name="**/*${listener-exclude1}*.class"/>
> <exclude name="**/*${listener-exclude2}*.class"/>
> </fileset>
> </jar>
> </target>
> <!-- convenience: compile simple listener and finish it -->
> <target name="compile.listener.simple">
> <antcall target="compile.listener">
> <param name="listener" value="${listener}"/>
> <param name="listener-dir" value="${listener-dir}"/>
> <param name="listener-include" value="${listener-include}"/>
> </antcall>
> <antcall target="compile.listener.finish">
> <param name="listener" value="${listener}"/>
> <param name="listener-exclude1"
> value="${listener-exclude1}"/>
> <param name="listener-exclude2"
> value="${listener-exclude2}"/>
> </antcall>
> </target>
>
>
> <!-- simple installer listener -->
> <target name="compile.installer-listener.simple">
> <antcall target="compile.listener.simple">
> <param name="listener" value="${listener}"/>
> <param name="listener-dir" value="${listener-dir}"/>
> <param name="listener-include" value="${listener-include}"/>
> <param name="listener-exclude1" value="Uninstaller"/>
> <param name="listener-exclude2" value="_NO_MORE_EXCLUDES_"/>
> </antcall>
> </target>
> <!-- simple uninstaller listener -->
> <target name="compile.uninstaller-listener.simple">
> <antcall target="compile.listener.simple">
> <param name="listener" value="${listener}"/>
> <param name="listener-dir" value="${listener-dir}"/>
> <param name="listener-include" value="${listener-include}"/>
> <param name="listener-exclude1" value="Installer"/>
> <param name="listener-exclude2" value="_NO_MORE_EXCLUDES_"/>
> </antcall>
> </target>
> <!-- simple compiler listener -->
> <target name="compile.compiler-listener.simple">
> <antcall target="compile.listener.simple">
> <param name="listener" value="${listener}"/>
> <param name="listener-dir" value="${listener-dir}"/>
> <param name="listener-include" value="${listener-include}"/>
> <param name="listener-exclude1" value="Installer"/>
> <param name="listener-exclude2" value="Uninstaller"/>
> </antcall>
> </target>
> <!-- Listener stuff targets
> **************************************************** END -->
> <!-- Compile all custom actions (listener) and put them at the right
> location -->
> <target name="build.listener" >
> <antcall target="compile.compiler-listener.simple">
> <param name="listener" value="PermissionCompilerListener"/>
> <param name="listener-dir" value="PermissionCompilerListener"/>
> <param name="listener-include"
> value="com/coi/tools/install/listener"/>
> </antcall>
> <antcall target="compile.installer-listener.simple">
> <param name="listener" value="InitDBInstallerListener"/>
> <param name="listener-dir" value="InitDBInstallerListener"/>
> <param name="listener-include"
> value="com/coi/tools/install/listener"/>
> </antcall>
> ...
>
>
> Cheers
>
>
> Klaus
>
> -----Ori ginal Message-----
> From: izpack-devel-bounces at lists.berlios.de
> [mailto:izpack-devel-bounces at lists.berlios.de] On Behalf Of Raz Yalov
> Sent: Monday, May 21, 2007 9:01 PM
> To: izpack-devel at lists.berlios.de
> Subject: [izpack-devel] Coding custom components against an
> IzPack API
>
> First, sorry if this is the wrong list for this question.
>
>
>
> In short: is there an official "izpack-api.jar" exposed to
> enabled development of custom elements (panels, validators etc.) outside
> the IzPack project context?
>
>
>
> Details: I would like to create as part of my product's project
> an izPack-ext.jar that will hold customized code I've written to enhance
> my IzPack setup but I want to maintain and build this in the context of
> my product's baseline and not within IzPack project.
>
>
>
> I couldn't find any kind of "izpack-api.jar" type of file that
> holds all the interfaces that are needed in order to compile your own
> extensions.
>
>
>
> Is the only expected way to add custom elements is by adding
> them to a local copy of the entire IzPack project?
>
>
>
>
>
> Any ideas/direction would be appreciated.
>
>
>
>
>
> Raz
>
>
>
>
>
> __________ NOD32 1.1392 (20060202) Information __________
>
> Diese E-Mail wurde vom NOD32 Antivirus System geprüft
> http://www.nod32.com
>
--
Erstellt mit Operas revolutionärem E-Mail-Modul: http://www.opera.com/mail/
More information about the izpack-devel
mailing list