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

IzPack at LyonJUG'11

on

  • 2,113 views

 

Statistics

Views

Total Views
2,113
Views on SlideShare
2,065
Embed Views
48

Actions

Likes
0
Downloads
0
Comments
0

2 Embeds 48

http://mj89sp3sau2k7lj1eg3k40hkeppguj6j-a-sites-opensocial.googleusercontent.com 47
http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

IzPack at LyonJUG'11 IzPack at LyonJUG'11 Presentation Transcript

  • 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 -f setup.xml4: bin/asadmin start-domain domain
  • Demo One download Works everywhere Straightforward
  • IzPack?
  • 25.000 downloads per month?
  • (...)
  • Files to package Installer resources XML descriptor Compiler, Ant or Maven Installer Jar
  • 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> <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> (...)
  • (...)<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> (...)
  • <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>
  • <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>
  • <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>
  • <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>
  • <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>
  • <conditions> <condition type="variable" id="start.glassfish"> <name>gf_start_domain</name> <value>true</value> </condition></conditions>
  • 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 eventually look bad! Best Scripting IoC & DI practices
  • Kudos to: Anthonin Bonnefoy 0-b eta David Duponchel 5. Rene Krell PicoContainer+ hamcrest+ fest-swing JUnit
  • 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 Dual licensing Support plansMission-critical Consultinginfrastructure Management toolsservers Extensions Open CoreProducts Extensions Customizations
  • Start Easy Solo work Users! Patches!Community support Hard to reach Mature project Manager work
  • add this! support that! it is not ready for theenterprise unless you... I expected it to do this but it doesn’t!
  • <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/