[izpack-user] Maven + custom panels = bad installer

65 views
Skip to first unread message

Andrew Warinner

unread,
Feb 1, 2012, 11:04:29 AM2/1/12
to us...@izpack.codehaus.org
I've been porting my installer from an ant build environment to Maven
and encountered some strange errors when running the resulting
installer.

I'm using the v4.3.5 IzPack artifact to compile the jar files which
are copied to bin/panels when the installer is compiled like this:

<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-panel-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${izpack.staging}/bin/panels</outputDirectory>
<excludeTransitive>false</excludeTransitive>
<stripVersion>true</stripVersion>
<overWriteReleases>true</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<excludeScope>system</excludeScope>
<excludeGroupIds>org.codehaus.izpack,junit</excludeGroupIds>
<!--
IMPORTANT: we don't want to copy the izpack dependency where our
application jars live
-->
</configuration>
</execution>
</executions>
</plugin>

I compile my installer like this:

<plugin>
<groupId>org.codehaus.izpack</groupId>
<artifactId>izpack-maven-plugin</artifactId>
<version>${izpack.plugin.version}</version>
<configuration>
<izpackBasedir>${izpack.staging}</izpackBasedir>
<installFile>${izpack.staging}/install.xml</installFile>
<installerFile>${project.build.directory}/activisor-installer.jar</installerFile>
</configuration>
<executions>
<execution>
<id>standard-installer</id>
<phase>package</phase>
<goals>
<goal>izpack</goal>
</goals>
</execution>
</executions>
</plugin>

(NB: izpack.plugin.version = 1.0-alpha-5)

All goes well when executed,

[INFO] --- izpack-maven-plugin:1.0-alpha-5:izpack (standard-installer)
@ ActiVisorInstaller ---
[DEBUG] org.codehaus.izpack:izpack-maven-plugin:jar:1.0-alpha-5:
[DEBUG] org.apache.maven:maven-plugin-api:jar:2.0.6:compile
[DEBUG] org.apache.maven:maven-project:jar:2.0.6:compile
[DEBUG] org.apache.maven:maven-settings:jar:2.0.6:compile
[DEBUG] org.apache.maven:maven-profile:jar:2.0.6:compile
[DEBUG] org.apache.maven:maven-model:jar:2.0.6:compile
[DEBUG] org.apache.maven:maven-artifact-manager:jar:2.0.6:compile
[DEBUG] org.apache.maven:maven-repository-metadata:jar:2.0.6:compile
[DEBUG] org.apache.maven:maven-plugin-registry:jar:2.0.6:compile
[DEBUG] org.apache.maven:maven-artifact:jar:2.0.6:compile
[DEBUG] org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile
[DEBUG] junit:junit:jar:3.8.2:test (scope managed from
compile) (version managed from 3.8.1)
[DEBUG] classworlds:classworlds:jar:1.1-alpha-2:compile
[DEBUG] org.apache.maven.shared:maven-filtering:jar:1.0-beta-2:compile
[DEBUG] org.apache.maven:maven-core:jar:2.0.6:compile
[DEBUG]
org.apache.maven:maven-plugin-parameter-documenter:jar:2.0.6:compile
[DEBUG]
org.apache.maven.reporting:maven-reporting-api:jar:2.0.6:compile
[DEBUG]
org.apache.maven.doxia:doxia-sink-api:jar:1.0-alpha-7:compile
[DEBUG] org.apache.maven:maven-error-diagnostics:jar:2.0.6:compile
[DEBUG] commons-cli:commons-cli:jar:1.0:compile
[DEBUG] org.apache.maven:maven-plugin-descriptor:jar:2.0.6:compile
[DEBUG]
org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4:compile
[DEBUG] org.apache.maven:maven-monitor:jar:2.0.6:compile
[DEBUG] org.codehaus.plexus:plexus-interpolation:jar:1.6:compile
[DEBUG] org.codehaus.plexus:plexus-utils:jar:1.5.6:compile
[DEBUG] org.codehaus.izpack:izpack-standalone-compiler:jar:4.2.1:compile
[DEBUG] Created new class realm
plugin>org.codehaus.izpack:izpack-maven-plugin:1.0-alpha-5
[DEBUG] Importing foreign packages into class realm
plugin>org.codehaus.izpack:izpack-maven-plugin:1.0-alpha-5
[DEBUG] Imported: < maven.api
[DEBUG] Populating class realm
plugin>org.codehaus.izpack:izpack-maven-plugin:1.0-alpha-5
[DEBUG] Included: org.codehaus.izpack:izpack-maven-plugin:jar:1.0-alpha-5
[DEBUG] Included: org.apache.maven.shared:maven-filtering:jar:1.0-beta-2
[DEBUG] Included: org.apache.maven.reporting:maven-reporting-api:jar:2.0.6
[DEBUG] Included: org.apache.maven.doxia:doxia-sink-api:jar:1.0-alpha-7
[DEBUG] Included: commons-cli:commons-cli:jar:1.0
[DEBUG] Included: org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4
[DEBUG] Included: org.codehaus.plexus:plexus-interpolation:jar:1.6
[DEBUG] Included: org.codehaus.plexus:plexus-utils:jar:1.5.6
[DEBUG] Included: org.codehaus.izpack:izpack-standalone-compiler:jar:4.2.1
[DEBUG] Excluded: org.apache.maven:maven-plugin-api:jar:2.0.6
[DEBUG] Excluded: org.apache.maven:maven-project:jar:2.0.6
[DEBUG] Excluded: org.apache.maven:maven-settings:jar:2.0.6
[DEBUG] Excluded: org.apache.maven:maven-profile:jar:2.0.6
[DEBUG] Excluded: org.apache.maven:maven-model:jar:2.0.6
[DEBUG] Excluded: org.apache.maven:maven-artifact-manager:jar:2.0.6
[DEBUG] Excluded: org.apache.maven:maven-repository-metadata:jar:2.0.6
[DEBUG] Excluded: org.apache.maven:maven-plugin-registry:jar:2.0.6
[DEBUG] Excluded: org.apache.maven:maven-artifact:jar:2.0.6
[DEBUG] Excluded:
org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1
[DEBUG] Excluded: junit:junit:jar:3.8.2
[DEBUG] Excluded: classworlds:classworlds:jar:1.1-alpha-2
[DEBUG] Excluded: org.apache.maven:maven-core:jar:2.0.6
[DEBUG] Excluded: org.apache.maven:maven-plugin-parameter-documenter:jar:2.0.6
[DEBUG] Excluded: org.apache.maven:maven-error-diagnostics:jar:2.0.6
[DEBUG] Excluded: org.apache.maven:maven-plugin-descriptor:jar:2.0.6
[DEBUG] Excluded: org.apache.maven:maven-monitor:jar:2.0.6
[DEBUG] Configuring mojo
org.codehaus.izpack:izpack-maven-plugin:1.0-alpha-5:izpack from plugin
realm ClassRealm[plugin>org.codehaus.izpack:izpack-maven-plugin:1.0-alpha-5,
parent: sun.misc.Launcher$AppClassLoader@6d6f0472]
[DEBUG] Configuring mojo
'org.codehaus.izpack:izpack-maven-plugin:1.0-alpha-5:izpack' with
basic configurator -->
[DEBUG] (f) attach = true
[DEBUG] (f) classpathElements =
[/home/warinner/dev/ActiVisor/ActiVisorInstaller/target/classes,
/home/warinner/.m2/repository/commons-codec/commons-codec/1.6/commons-codec-1.6.jar,
/home/warinner/.m2/repository/com/rsd/fld/apifolder/5.1.1-43/apifolder-5.1.1-43.jar,
/home/warinner/.m2/repository/com/rsd/activisor/ActiVisorInstallerExtras/2.2.0/ActiVisorInstallerExtras-2.2.0.jar,
/home/warinner/.m2/repository/org/codehaus/izpack/izpack-standalone-compiler/4.3.5/izpack-standalone-compiler-4.3.5.jar,
/home/warinner/.m2/repository/com/rsd/activisor/ActiVisorCore/2.2.0/ActiVisorCore-2.2.0.jar,
/home/warinner/.m2/repository/org/springframework/spring/2.0.8/spring-2.0.8.jar,
/home/warinner/.m2/repository/commons-logging/commons-logging/1.1/commons-logging-1.1.jar,
/home/warinner/.m2/repository/logkit/logkit/1.0.1/logkit-1.0.1.jar,
/home/warinner/.m2/repository/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar,
/home/warinner/.m2/repository/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar,
/home/warinner/.m2/repository/org/opensymphony/quartz/quartz/1.6.1/quartz-1.6.1.jar,
/home/warinner/.m2/repository/com/rsd/activisor/SaveJDKPathPanel/2.2.0/SaveJDKPathPanel-2.2.0.jar,
/home/warinner/.m2/repository/com/rsd/RSDLicensing/2.1.1/RSDLicensing-2.1.1.jar,
/home/warinner/.m2/repository/log4j/log4j/1.2.14/log4j-1.2.14.jar]
[DEBUG] (f) customPanelDirectory =
/home/warinner/dev/ActiVisor/ActiVisorInstaller/target/izpack
[DEBUG] (f) descriptor =
/home/warinner/dev/ActiVisor/ActiVisorInstaller/src/izpack/install.xml
[DEBUG] (f) fileExtension = jar
[DEBUG] (f) installerFile =
/home/warinner/dev/ActiVisor/ActiVisorInstaller/target/activisor-installer.jar
[DEBUG] (f) izpackBasedir =
/home/warinner/dev/ActiVisor/ActiVisorInstaller/target/staging
[DEBUG] (f) kind = standard
[DEBUG] (f) project = MavenProject:
com.rsd.activisor:ActiVisorInstaller:2.2.0 @
/home/warinner/dev/ActiVisor/ActiVisorInstaller/pom.xml
[DEBUG] (f) session = org.apache.maven.execution.MavenSession@11afd9cc
[DEBUG] -- end configuration --
[DEBUG] Added to classpath
/home/warinner/dev/ActiVisor/ActiVisorInstaller/target/izpack
[DEBUG] Added to classpath
/home/warinner/dev/ActiVisor/ActiVisorInstaller/target/classes
[DEBUG] Added to classpath
/home/warinner/.m2/repository/commons-codec/commons-codec/1.6/commons-codec-1.6.jar
[DEBUG] Added to classpath
/home/warinner/.m2/repository/com/rsd/fld/apifolder/5.1.1-43/apifolder-5.1.1-43.jar
[DEBUG] Added to classpath
/home/warinner/.m2/repository/com/rsd/activisor/ActiVisorInstallerExtras/2.2.0/ActiVisorInstallerExtras-2.2.0.jar
[DEBUG] Added to classpath
/home/warinner/.m2/repository/org/codehaus/izpack/izpack-standalone-compiler/4.3.5/izpack-standalone-compiler-4.3.5.jar
[DEBUG] Added to classpath
/home/warinner/.m2/repository/com/rsd/activisor/ActiVisorCore/2.2.0/ActiVisorCore-2.2.0.jar
[DEBUG] Added to classpath
/home/warinner/.m2/repository/org/springframework/spring/2.0.8/spring-2.0.8.jar
[DEBUG] Added to classpath
/home/warinner/.m2/repository/commons-logging/commons-logging/1.1/commons-logging-1.1.jar
[DEBUG] Added to classpath
/home/warinner/.m2/repository/logkit/logkit/1.0.1/logkit-1.0.1.jar
[DEBUG] Added to classpath
/home/warinner/.m2/repository/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar
[DEBUG] Added to classpath
/home/warinner/.m2/repository/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar
[DEBUG] Added to classpath
/home/warinner/.m2/repository/org/opensymphony/quartz/quartz/1.6.1/quartz-1.6.1.jar
[DEBUG] Added to classpath
/home/warinner/.m2/repository/com/rsd/activisor/SaveJDKPathPanel/2.2.0/SaveJDKPathPanel-2.2.0.jar
[DEBUG] Added to classpath
/home/warinner/.m2/repository/com/rsd/RSDLicensing/2.1.1/RSDLicensing-2.1.1.jar
[DEBUG] Added to classpath
/home/warinner/.m2/repository/log4j/log4j/1.2.14/log4j-1.2.14.jar
...

Note: customPanelDirectory points to target/izpack while izpackBasedir
= target/staging, customPanelDirectory seems to be ignored or
overridden and izpackBasedir/bin/panels is used for the location of
the custom panels jar.

However, when executing the resulting installer, I get the following
runtime error immediately after the language selection dialog:

java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at com.izforge.izpack.installer.InstallerFrame.loadPanels(Unknown
Source)
at com.izforge.izpack.installer.InstallerFrame.<init>(Unknown Source)
at com.izforge.izpack.installer.GUIInstaller.loadGUI(Unknown Source)
at com.izforge.izpack.installer.GUIInstaller.access$100(Unknown Source)
at com.izforge.izpack.installer.GUIInstaller$2.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:647)
at java.awt.EventQueue.access$000(EventQueue.java:96)
at java.awt.EventQueue$1.run(EventQueue.java:608)
at java.awt.EventQueue$1.run(EventQueue.java:606)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:617)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
Caused by: java.lang.NoClassDefFoundError:
com/izforge/izpack/adaptator/IXMLElement
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2444)
at java.lang.Class.getDeclaredMethod(Class.java:1952)
at java.awt.Component.isCoalesceEventsOverriden(Component.java:5953)
at java.awt.Component.access$400(Component.java:175)
at java.awt.Component$3.run(Component.java:5907)
at java.awt.Component$3.run(Component.java:5905)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Component.checkCoalescing(Component.java:5904)
at java.awt.Component.<init>(Component.java:5873)
at java.awt.Container.<init>(Container.java:264)
at javax.swing.JComponent.<init>(JComponent.java:573)
at javax.swing.JPanel.<init>(JPanel.java:82)
at javax.swing.JPanel.<init>(JPanel.java:109)
at javax.swing.JPanel.<init>(JPanel.java:117)
at com.izforge.izpack.installer.IzPanel.<init>(Unknown Source)
at com.izforge.izpack.panels.SaveJDKPathPanel.<init>(SaveJDKPathPanel.java:21)
at com.izforge.izpack.panels.SaveJDKPathPanel.<init>(SaveJDKPathPanel.java:16)
... 23 more
Caused by: java.lang.ClassNotFoundException:
com.izforge.izpack.adaptator.IXMLElement
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
... 41 more

IXMLElement is not present in the installer jar (and not present in
the ant-built IzPack installer jar either) but the ant-built installer
jar runs fine.

Anybody have any clues about what is going wrong (presumably in the
maven build)?

Thanks in advance,

Andrew Warinner

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email


Reply all
Reply to author
Forward
0 new messages