• Like
  • Save
IzPack at LyonJUG'11
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

IzPack at LyonJUG'11

  • 1,791 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,791
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. IzPack: because you and your end users have installation issues Julien Ponge
  • 2. +
  • 3. From a hack made in a student dorm room... ... not mine!
  • 4. ...to an industry-backed project.
  • 5. Unique installer Multiple systems
  • 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. Demo One download Works everywhere Straightforward
  • 8. IzPack?
  • 9. 25.000 downloads per month?
  • 10. (...)
  • 11. Files to package Installer resources XML descriptor Compiler, Ant or Maven Installer Jar
  • 12. Custom panelsCustom actions Installer Jar 3rd-party libs
  • 13. variables Config files, scripts, ...Content-aware replacement
  • 14. raw pack200deflate (gzip) bzip2
  • 15. Uti lity s cripts
  • 16. GlassFish Installer — making-of —
  • 17. CompilerInstaller JAR
  • 18. CompilerInstaller JAR
  • 19. CompilerInstaller JAR
  • 20. CompilerInstaller JAR
  • 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. (...)<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. <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. <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. <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. <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. <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. <conditions> <condition type="variable" id="start.glassfish"> <name>gf_start_domain</name> <value>true</value> </condition></conditions>
  • 29. Demo
  • 30. How about packaging systems?
  • 31. (...)Packages vs Installers
  • 32. On Windows ?
  • 33. On Mac OS X ?
  • 34. On *nix ?
  • 35. Initial installationBootstrap IPS + updates Uninstallation Updates + Add-ons
  • 36. The next IzPack
  • 37. The hype effect Patterns TDD, JSR xyz BDD...your application code will eventually look bad! Best Scripting IoC & DI practices
  • 38. Kudos to: Anthonin Bonnefoy 0-b eta David Duponchel 5. Rene Krell PicoContainer+ hamcrest+ fest-swing JUnit
  • 39. Developers SCM CVS then Subversion
  • 40. Developers SCM
  • 41. Try it today! 4.3.3 4.3.4-RC1 5.0.0-beta
  • 42. Opensource Projet Aftermath
  • 43. F/OSS... why? nothing’s free!Fun Skills AdvertiseStrategic market sharesDirect revenue streams
  • 44. Project type “Main” models ConsultingFramework Trainingand libraries Support Dual licensing Support plansMission-critical Consultinginfrastructure Management toolsservers Extensions Open CoreProducts Extensions Customizations
  • 45. Start Easy Solo work Users! Patches!Community support Hard to reach Mature project Manager work
  • 46. add this! support that! it is not ready for theenterprise unless you... I expected it to do this but it doesn’t!
  • 47. <Words Code
  • 48. UpstreamMonster patch (or raw files!)
  • 49. “Given enough eyeballs, all bugs are shallow.” — Linus’s Law
  • 50. Julien Ponge Q&A @jponge @izpack julien.ponge@gmail.com http://izpack.org/http://julien.ponge.info/