IzPack: because you and your end users                have installation issues                             Julien Ponge
+
From a hack made in a student dorm room...                                    ... not mine!
...to an industry-backed project.
Unique installer   Multiple systems
v2Download for your operating system1:   java -Xmx256m -jar filename.jar2:   chmod -R +x lib/ant/bin3:   lib/ant/bin/ant -...
Demo One download Works everywhere Straightforward
IzPack?
25.000 downloads per month?
(...)
Files to package              Installer resources               XML descriptor                         Compiler, Ant or Ma...
Custom panelsCustom actions    Installer Jar 3rd-party libs
variables                Config files,                 scripts, ...Content-aware replacement
raw         pack200deflate (gzip)    bzip2
Uti lity s cripts
GlassFish Installer — making-of —
CompilerInstaller JAR
CompilerInstaller JAR
CompilerInstaller JAR
CompilerInstaller JAR
<installation version="1.0">  <info>    <appname>Glassfish</appname>    <appversion>v2 ur2 b04</appversion>    <authors>  ...
(...)<panels>    <panel   classname="HTMLInfoPanel" />    <panel   classname="HTMLLicencePanel" />    <panel   classname="...
<pack name="GlassFish" required="yes">  <description>GlassFish</description>  <file src="launch-browser.sh" targetdir="$IN...
<pack name="GlassFish" required="yes">  <description>GlassFish</description>  <file src="launch-browser.sh" targetdir="$IN...
<pack name="GlassFish" required="yes">  <description>GlassFish</description>  <file src="launch-browser.sh" targetdir="$IN...
<pack name="GlassFish" required="yes">  <description>GlassFish</description>  <file src="launch-browser.sh" targetdir="$IN...
<guiprefs height="600" resizable="yes" width="800">  <modifier key="allXGap" value="5"/>  <modifier key="allYGap" value="5...
<conditions>  <condition      type="variable"      id="start.glassfish">    <name>gf_start_domain</name>      <value>true<...
Demo
How about packaging     systems?
(...)Packages vs Installers
On Windows ?
On Mac OS X ?
On *nix ?
Initial installationBootstrap IPS + updates    Uninstallation  Updates + Add-ons
The next IzPack
The hype effect     Patterns         TDD,            JSR xyz                      BDD...your application code will eventua...
Kudos to:                  Anthonin Bonnefoy      0-b eta     David Duponchel 5.                  Rene Krell  PicoContaine...
Developers  SCM             CVS then Subversion
Developers  SCM
Try it today!                4.3.3                4.3.4-RC1                5.0.0-beta
Opensource Projet   Aftermath
F/OSS... why?                    nothing’s free!Fun   Skills   AdvertiseStrategic market sharesDirect revenue streams
Project type       “Main” models                   ConsultingFramework          Trainingand libraries      Support        ...
Start         Easy                    Solo work     Users!     Patches!Community support                    Hard to reach ...
add this!                           support that! it is not ready for theenterprise unless you...                         ...
<Words       Code
UpstreamMonster patch (or raw files!)
“Given enough eyeballs, all bugs are shallow.”         — Linus’s Law
Julien Ponge Q&A                  @jponge   @izpack   julien.ponge@gmail.com   http://izpack.org/http://julien.ponge.info/
IzPack at LyonJUG'11
IzPack at LyonJUG'11
IzPack at LyonJUG'11
IzPack at LyonJUG'11
IzPack at LyonJUG'11
IzPack at LyonJUG'11
IzPack at LyonJUG'11
IzPack at LyonJUG'11
IzPack at LyonJUG'11
IzPack at LyonJUG'11
IzPack at LyonJUG'11
IzPack at LyonJUG'11
IzPack at LyonJUG'11
IzPack at LyonJUG'11
IzPack at LyonJUG'11
IzPack at LyonJUG'11
Upcoming SlideShare
Loading in...5
×

IzPack at LyonJUG'11

1,865

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,865
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "IzPack at LyonJUG'11"

  1. 1. IzPack: because you and your end users have installation issues Julien Ponge
  2. 2. +
  3. 3. From a hack made in a student dorm room... ... not mine!
  4. 4. ...to an industry-backed project.
  5. 5. Unique installer Multiple systems
  6. 6. v2Download for your operating system1: java -Xmx256m -jar filename.jar2: chmod -R +x lib/ant/bin3: lib/ant/bin/ant -f setup.xml4: bin/asadmin start-domain domain
  7. 7. Demo One download Works everywhere Straightforward
  8. 8. IzPack?
  9. 9. 25.000 downloads per month?
  10. 10. (...)
  11. 11. Files to package Installer resources XML descriptor Compiler, Ant or Maven Installer Jar
  12. 12. Custom panelsCustom actions Installer Jar 3rd-party libs
  13. 13. variables Config files, scripts, ...Content-aware replacement
  14. 14. raw pack200deflate (gzip) bzip2
  15. 15. Uti lity s cripts
  16. 16. GlassFish Installer — making-of —
  17. 17. CompilerInstaller JAR
  18. 18. CompilerInstaller JAR
  19. 19. CompilerInstaller JAR
  20. 20. CompilerInstaller JAR
  21. 21. <installation version="1.0"> <info> <appname>Glassfish</appname> <appversion>v2 ur2 b04</appversion> <authors> <author email="" name="Julien Ponge (packager)"/> <author email="" name="Sun Microsystems and the GlassFish community"/> </authors> <url>http://glassfish.org/</url> <javaversion>1.5</javaversion> <requiresjdk>yes</requiresjdk> </info> (...)
  22. 22. (...)<panels> <panel classname="HTMLInfoPanel" /> <panel classname="HTMLLicencePanel" /> <panel classname="TargetPanel" /> <panel classname="UserInputPanel" /> <panel classname="InstallPanel" /> <panel classname="ProcessPanel" /> <panel classname="ShortcutPanel" /> <panel classname="SimpleFinishPanel" /></panels> (...)
  23. 23. <pack name="GlassFish" required="yes"> <description>GlassFish</description> <file src="launch-browser.sh" targetdir="$INSTALL_PATH/bin" condition="izpack.macinstall" /> <fileset dir="linux" targetdir="$INSTALL_PATH" condition="izpack.linuxinstall"> <% linux_specific.each do |file| %> <include name="<%= file %>"/> <% end %> </fileset> <executable targetfile="$INSTALL_PATH/lib/ant/bin/ant" stage="never" os="unix" /> <parsable targetfile="$INSTALL_PATH/bin/launch-browser.sh" os="unix" /></pack>
  24. 24. <pack name="GlassFish" required="yes"> <description>GlassFish</description> <file src="launch-browser.sh" targetdir="$INSTALL_PATH/bin" condition="izpack.macinstall" /> <fileset dir="linux" targetdir="$INSTALL_PATH" condition="izpack.linuxinstall"> <% linux_specific.each do |file| %> <include name="<%= file %>"/> <% end %> </fileset> <executable targetfile="$INSTALL_PATH/lib/ant/bin/ant" stage="never" os="unix" /> <parsable targetfile="$INSTALL_PATH/bin/launch-browser.sh" os="unix" /></pack>
  25. 25. <pack name="GlassFish" required="yes"> <description>GlassFish</description> <file src="launch-browser.sh" targetdir="$INSTALL_PATH/bin" condition="izpack.macinstall" /> <fileset dir="linux" targetdir="$INSTALL_PATH" condition="izpack.linuxinstall"> <% linux_specific.each do |file| %> <include name="<%= file %>"/> <% end %> </fileset> Ant-style: **/* <executable targetfile="$INSTALL_PATH/lib/ant/bin/ant" dir/*.class stage="never" os="unix" /> **/*.jar <parsable targetfile="$INSTALL_PATH/bin/launch-browser.sh" lib/**/*.jar os="unix" /></pack>
  26. 26. <pack name="GlassFish" required="yes"> <description>GlassFish</description> <file src="launch-browser.sh" targetdir="$INSTALL_PATH/bin" condition="izpack.macinstall" /> <fileset dir="linux" targetdir="$INSTALL_PATH" condition="izpack.linuxinstall"> <% linux_specific.each do |file| %> <include name="<%= file %>"/> <% end %> </fileset> <executable targetfile="$INSTALL_PATH/lib/ant/bin/ant" stage="never" os="unix" /> <parsable targetfile="$INSTALL_PATH/bin/launch-browser.sh" os="unix" /></pack>
  27. 27. <guiprefs height="600" resizable="yes" width="800"> <modifier key="allXGap" value="5"/> <modifier key="allYGap" value="5"/> <modifier key="paragraphYGap" value="15"/> <modifier key="useHeadingPanel" value="yes"/> <modifier key="headingLineCount" value="1"/> <modifier key="headingFontSize" value="2"/> <modifier key="headingBackgroundColor" value="0x00ffffff"/> <modifier key="headingPanelCounter" value="text"/> <modifier key="headingPanelCounterPos" value="inHeading"/></guiprefs>
  28. 28. <conditions> <condition type="variable" id="start.glassfish"> <name>gf_start_domain</name> <value>true</value> </condition></conditions>
  29. 29. Demo
  30. 30. How about packaging systems?
  31. 31. (...)Packages vs Installers
  32. 32. On Windows ?
  33. 33. On Mac OS X ?
  34. 34. On *nix ?
  35. 35. Initial installationBootstrap IPS + updates Uninstallation Updates + Add-ons
  36. 36. The next IzPack
  37. 37. The hype effect Patterns TDD, JSR xyz BDD...your application code will eventually look bad! Best Scripting IoC & DI practices
  38. 38. Kudos to: Anthonin Bonnefoy 0-b eta David Duponchel 5. Rene Krell PicoContainer+ hamcrest+ fest-swing JUnit
  39. 39. Developers SCM CVS then Subversion
  40. 40. Developers SCM
  41. 41. Try it today! 4.3.3 4.3.4-RC1 5.0.0-beta
  42. 42. Opensource Projet Aftermath
  43. 43. F/OSS... why? nothing’s free!Fun Skills AdvertiseStrategic market sharesDirect revenue streams
  44. 44. Project type “Main” models ConsultingFramework Trainingand libraries Support Dual licensing Support plansMission-critical Consultinginfrastructure Management toolsservers Extensions Open CoreProducts Extensions Customizations
  45. 45. Start Easy Solo work Users! Patches!Community support Hard to reach Mature project Manager work
  46. 46. add this! support that! it is not ready for theenterprise unless you... I expected it to do this but it doesn’t!
  47. 47. <Words Code
  48. 48. UpstreamMonster patch (or raw files!)
  49. 49. “Given enough eyeballs, all bugs are shallow.” — Linus’s Law
  50. 50. Julien Ponge Q&A @jponge @izpack julien.ponge@gmail.com http://izpack.org/http://julien.ponge.info/

×