Your SlideShare is downloading. ×
IzPack at LyonJUG'11
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

IzPack at LyonJUG'11

1,823

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,823
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
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/

×