SlideShare a Scribd company logo
1 of 65
Julien Ponge

L’Aquarium Paris, Sun Microsystems

       Paris - 2008/12/12
Outline
Introduction + demo


  IzPack features


 Demo making-of


   Beyond IzPack
Outline
Introduction + demo


  IzPack features


 Demo making-of


   Beyond IzPack
PhD
                       Opensource
Computer Science and    developer
    Engineering
Unique installer
Unique installer   Multiple systems
v2
Download for your operating system



java -Xmx256m -jar filename.jar
chmod -R +x lib/ant/bin
lib/ant/bin/ant -f setup.xml
bin/asadmin start-domain domain1
Demo

 One download
 Works everywhere
 Straightforward
Outline
Introduction + demo


  IzPack features


 Demo making-of


   Beyond IzPack
Outline
Introduction + demo


  IzPack features


 Demo making-of


   Beyond IzPack
~25.000 downloads / month
(...)
Choose your panels
#1



      Choose your panels



#2




     ...use them!
variables
                Config files,
                 scripts, ...




Content-aware
 replacement
raw         pack200




deflate (gzip)    bzip2
Custom actions




Custom panels     Installer JAR




 3rd-party libs
Custom actions




Custom panels     Installer JAR




 3rd-party libs
Our very own native launcher, or...
2001
v3.0.0
     v2.0 Win32 shortcuts
  (rewrite) UserInputPanel



2001
03 08 11          08
                2002

v1.0    v2.10.0
   CVS @TuxFamily
   Fast development
                        Steady growth, people keep on joining
X11
                v3.0.0           shortcuts
     v2.0 Win32 shortcuts                        CommunityOne
  (rewrite) UserInputPanel             GPL         JavaOne



2001                    2004                    2008
03 08 11          08     02         01 05         04 05 10
                2002              2005

v1.0    v2.10.0        Move to                Move to v4.1.0
   CVS @TuxFamily      BerliOS                Codehaus
   Fast development
                        Steady growth, people keep on joining
You decide
                                                            to use it for
                                   X11                   your next projects
                v3.0.0           shortcuts
     v2.0 Win32 shortcuts                        CommunityOne
  (rewrite) UserInputPanel             GPL         JavaOne



2001                    2004                    2008
03 08 11          08     02         01 05         04 05 10
                2002              2005

v1.0    v2.10.0        Move to                Move to v4.1.0
   CVS @TuxFamily      BerliOS                Codehaus
   Fast development
                        Steady growth, people keep on joining
Outline
Introduction + demo


  IzPack features


 Demo making-of


   Beyond IzPack
Outline
Introduction + demo


  IzPack features


 Demo making-of


   Beyond IzPack
Packs, conditions, langpacks,
        libraries, GUI, metadata, ...

Files          Descriptor               Resources




                Compiler




              Installer JAR
Compiler




Installer JAR
Compiler




Installer JAR
Compiler




Installer JAR
Compiler




Installer JAR
<installation version=quot;1.0quot;>

  <info>
    <appname>Glassfish</appname>
    <appversion>v2 ur2 b04</appversion>
    <authors>
      <author email=quot;quot;
               name=quot;Julien Ponge (packager)quot;/>
      <author email=quot;quot;
              name=quot;Sun Microsystems and the GlassFish communityquot;/>
    </authors>
    <url>http://glassfish.org/</url>
    <javaversion>1.5</javaversion>
    <requiresjdk>yes</requiresjdk>
  </info>

                                (...)
(...)
<panels>
    <panel   classname=quot;HTMLInfoPanelquot; />
    <panel   classname=quot;HTMLLicencePanelquot; />
    <panel   classname=quot;TargetPanelquot; />
    <panel   classname=quot;UserInputPanelquot; />
    <panel   classname=quot;InstallPanelquot; />
    <panel   classname=quot;ProcessPanelquot; />
    <panel   classname=quot;ShortcutPanelquot; />
    <panel   classname=quot;SimpleFinishPanelquot; />
</panels>

                      (...)
<pack name=quot;GlassFishquot; required=quot;yesquot;>
  <description>GlassFish</description>

  <file src=quot;launch-browser.shquot; targetdir=quot;$INSTALL_PATH/binquot;
        condition=quot;izpack.macinstallquot; />

  <fileset dir=quot;linuxquot; targetdir=quot;$INSTALL_PATHquot;
           condition=quot;izpack.linuxinstallquot;>
    <% linux_specific.each do |file| %>
        <include name=quot;<%= file %>quot;/>
    <% end %>
  </fileset>

  <executable targetfile=quot;$INSTALL_PATH/lib/ant/bin/antquot;
              stage=quot;neverquot; os=quot;unixquot; />
  <parsable targetfile=quot;$INSTALL_PATH/bin/launch-browser.shquot;
            os=quot;unixquot; />
</pack>
<pack name=quot;GlassFishquot; required=quot;yesquot;>
  <description>GlassFish</description>

  <file src=quot;launch-browser.shquot; targetdir=quot;$INSTALL_PATH/binquot;
        condition=quot;izpack.macinstallquot; />

  <fileset dir=quot;linuxquot; targetdir=quot;$INSTALL_PATHquot;
           condition=quot;izpack.linuxinstallquot;>
    <% linux_specific.each do |file| %>
        <include name=quot;<%= file %>quot;/>
    <% end %>
  </fileset>

  <executable targetfile=quot;$INSTALL_PATH/lib/ant/bin/antquot;
              stage=quot;neverquot; os=quot;unixquot; />
  <parsable targetfile=quot;$INSTALL_PATH/bin/launch-browser.shquot;
            os=quot;unixquot; />
</pack>
<pack name=quot;GlassFishquot; required=quot;yesquot;>
  <description>GlassFish</description>

  <file src=quot;launch-browser.shquot; targetdir=quot;$INSTALL_PATH/binquot;
        condition=quot;izpack.macinstallquot; />

  <fileset dir=quot;linuxquot; targetdir=quot;$INSTALL_PATHquot;
           condition=quot;izpack.linuxinstallquot;>
    <% linux_specific.each do |file| %>
        <include name=quot;<%= file %>quot;/>
    <% end %>
  </fileset>                             Ant-style:
                                            **/*
  <executable targetfile=quot;$INSTALL_PATH/lib/ant/bin/antquot;
                                            dir/*.class
              stage=quot;neverquot; os=quot;unixquot; />    **/*.jar
  <parsable targetfile=quot;$INSTALL_PATH/bin/launch-browser.shquot;
                                            lib/**/*.jar
            os=quot;unixquot; />
</pack>
<pack name=quot;GlassFishquot; required=quot;yesquot;>
  <description>GlassFish</description>

  <file src=quot;launch-browser.shquot; targetdir=quot;$INSTALL_PATH/binquot;
        condition=quot;izpack.macinstallquot; />

  <fileset dir=quot;linuxquot; targetdir=quot;$INSTALL_PATHquot;
           condition=quot;izpack.linuxinstallquot;>
    <% linux_specific.each do |file| %>
        <include name=quot;<%= file %>quot;/>
    <% end %>
  </fileset>

  <executable targetfile=quot;$INSTALL_PATH/lib/ant/bin/antquot;
              stage=quot;neverquot; os=quot;unixquot; />
  <parsable targetfile=quot;$INSTALL_PATH/bin/launch-browser.shquot;
            os=quot;unixquot; />
</pack>
<conditions>
  <condition type=quot;variablequot;
   id=quot;start.glassfishquot;>
    <name>gf_start_domain</name>
      <value>true</value>
  </condition>
</conditions>
<guiprefs height=quot;600quot; resizable=quot;yesquot; width=quot;800quot;>
  <modifier key=quot;allXGapquot; value=quot;5quot;/>
  <modifier key=quot;allYGapquot; value=quot;5quot;/>
  <modifier key=quot;paragraphYGapquot; value=quot;15quot;/>
  <modifier key=quot;useHeadingPanelquot; value=quot;yesquot;/>
  <modifier key=quot;headingLineCountquot; value=quot;1quot;/>
  <modifier key=quot;headingFontSizequot; value=quot;2quot;/>
  <modifier key=quot;headingBackgroundColorquot; value=quot;0x00ffffffquot;/>
  <modifier key=quot;headingPanelCounterquot; value=quot;textquot;/>
  <modifier key=quot;headingPanelCounterPosquot; value=quot;inHeadingquot;/>
</guiprefs>
Outline
Introduction + demo


  IzPack features


 Demo making-of


   Beyond IzPack
Outline
Introduction + demo


  IzPack features


 Demo making-of


   Beyond IzPack
MacOSX packages   BitRock InstallBuilder
IzPack is the only
true cross-platform
  installer to date
(...)
(...)
         IzPack is a
        complement
Disclaimer: you should never remove GF!
http://izpack.org/
http://xircles.codehaus.org/projects/izpack/




http://feeds.feedburner.com/IzPack




http://svn.codehaus.org/izpack/
http://github.com/jponge/izpack/tree/master
Q&A

   Julien Ponge


julien@ponge.info

http://izpack.org/
http://julien.ponge.info/

More Related Content

What's hot

Puppet Camp LA 2/19/2015
Puppet Camp LA 2/19/2015Puppet Camp LA 2/19/2015
Puppet Camp LA 2/19/2015ice799
 
Chef Conf 2015: Package Management & Chef
Chef Conf 2015: Package Management & ChefChef Conf 2015: Package Management & Chef
Chef Conf 2015: Package Management & Chefice799
 
Hadoop: Code Injection, Distributed Fault Injection
Hadoop: Code Injection, Distributed Fault InjectionHadoop: Code Injection, Distributed Fault Injection
Hadoop: Code Injection, Distributed Fault InjectionCloudera, Inc.
 
Codetainer: a Docker-based browser code 'sandbox'
Codetainer: a Docker-based browser code 'sandbox'Codetainer: a Docker-based browser code 'sandbox'
Codetainer: a Docker-based browser code 'sandbox'Jen Andre
 
exploit-writing-tutorial-part-5-how-debugger-modules-plugins-can-speed-up-bas...
exploit-writing-tutorial-part-5-how-debugger-modules-plugins-can-speed-up-bas...exploit-writing-tutorial-part-5-how-debugger-modules-plugins-can-speed-up-bas...
exploit-writing-tutorial-part-5-how-debugger-modules-plugins-can-speed-up-bas...tutorialsruby
 
Writing malware while the blue team is staring at you
Writing malware while the blue team is staring at youWriting malware while the blue team is staring at you
Writing malware while the blue team is staring at youRob Fuller
 
O porque das minhas aplicações funcionarem... E o que acontece com os recurso...
O porque das minhas aplicações funcionarem... E o que acontece com os recurso...O porque das minhas aplicações funcionarem... E o que acontece com os recurso...
O porque das minhas aplicações funcionarem... E o que acontece com os recurso...Comunidade NetPonto
 
How to reverse engineer Android applications
How to reverse engineer Android applicationsHow to reverse engineer Android applications
How to reverse engineer Android applicationshubx
 
Zend Framework 1.8 workshop
Zend Framework 1.8 workshopZend Framework 1.8 workshop
Zend Framework 1.8 workshopNick Belhomme
 
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010Heiko Behrens
 
Androidの本当にあった怖い話
Androidの本当にあった怖い話Androidの本当にあった怖い話
Androidの本当にあった怖い話Yusuke Yamamoto
 
Debugging PHP with xDebug inside of Eclipse PDT 2.1
Debugging PHP with xDebug inside of Eclipse PDT 2.1Debugging PHP with xDebug inside of Eclipse PDT 2.1
Debugging PHP with xDebug inside of Eclipse PDT 2.1Bastian Feder
 
digitalSTROM Developer Day 2011: Wie Heimelektronik und digitalSTROM zusammen...
digitalSTROM Developer Day 2011: Wie Heimelektronik und digitalSTROM zusammen...digitalSTROM Developer Day 2011: Wie Heimelektronik und digitalSTROM zusammen...
digitalSTROM Developer Day 2011: Wie Heimelektronik und digitalSTROM zusammen...digitalSTROM.org
 
Using the Android Native Development Kit (NDK)
Using the Android Native Development Kit (NDK)Using the Android Native Development Kit (NDK)
Using the Android Native Development Kit (NDK)Xavier Hallade
 
[UniteKorea2013] Protecting your Android content
[UniteKorea2013] Protecting your Android content[UniteKorea2013] Protecting your Android content
[UniteKorea2013] Protecting your Android contentWilliam Hugo Yang
 
Inter-process communication of Android
Inter-process communication of AndroidInter-process communication of Android
Inter-process communication of AndroidTetsuyuki Kobayashi
 
You can now use PVS-Studio with Visual Studio absent; just give it the prepro...
You can now use PVS-Studio with Visual Studio absent; just give it the prepro...You can now use PVS-Studio with Visual Studio absent; just give it the prepro...
You can now use PVS-Studio with Visual Studio absent; just give it the prepro...Andrey Karpov
 

What's hot (19)

Puppet Camp LA 2/19/2015
Puppet Camp LA 2/19/2015Puppet Camp LA 2/19/2015
Puppet Camp LA 2/19/2015
 
PyCon 2011: IronPython Command Line
PyCon 2011:  IronPython Command LinePyCon 2011:  IronPython Command Line
PyCon 2011: IronPython Command Line
 
Chef Conf 2015: Package Management & Chef
Chef Conf 2015: Package Management & ChefChef Conf 2015: Package Management & Chef
Chef Conf 2015: Package Management & Chef
 
Hadoop: Code Injection, Distributed Fault Injection
Hadoop: Code Injection, Distributed Fault InjectionHadoop: Code Injection, Distributed Fault Injection
Hadoop: Code Injection, Distributed Fault Injection
 
Codetainer: a Docker-based browser code 'sandbox'
Codetainer: a Docker-based browser code 'sandbox'Codetainer: a Docker-based browser code 'sandbox'
Codetainer: a Docker-based browser code 'sandbox'
 
exploit-writing-tutorial-part-5-how-debugger-modules-plugins-can-speed-up-bas...
exploit-writing-tutorial-part-5-how-debugger-modules-plugins-can-speed-up-bas...exploit-writing-tutorial-part-5-how-debugger-modules-plugins-can-speed-up-bas...
exploit-writing-tutorial-part-5-how-debugger-modules-plugins-can-speed-up-bas...
 
Writing malware while the blue team is staring at you
Writing malware while the blue team is staring at youWriting malware while the blue team is staring at you
Writing malware while the blue team is staring at you
 
O porque das minhas aplicações funcionarem... E o que acontece com os recurso...
O porque das minhas aplicações funcionarem... E o que acontece com os recurso...O porque das minhas aplicações funcionarem... E o que acontece com os recurso...
O porque das minhas aplicações funcionarem... E o que acontece com os recurso...
 
How to reverse engineer Android applications
How to reverse engineer Android applicationsHow to reverse engineer Android applications
How to reverse engineer Android applications
 
Zend Framework 1.8 workshop
Zend Framework 1.8 workshopZend Framework 1.8 workshop
Zend Framework 1.8 workshop
 
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
 
Logging system of Android
Logging system of AndroidLogging system of Android
Logging system of Android
 
Androidの本当にあった怖い話
Androidの本当にあった怖い話Androidの本当にあった怖い話
Androidの本当にあった怖い話
 
Debugging PHP with xDebug inside of Eclipse PDT 2.1
Debugging PHP with xDebug inside of Eclipse PDT 2.1Debugging PHP with xDebug inside of Eclipse PDT 2.1
Debugging PHP with xDebug inside of Eclipse PDT 2.1
 
digitalSTROM Developer Day 2011: Wie Heimelektronik und digitalSTROM zusammen...
digitalSTROM Developer Day 2011: Wie Heimelektronik und digitalSTROM zusammen...digitalSTROM Developer Day 2011: Wie Heimelektronik und digitalSTROM zusammen...
digitalSTROM Developer Day 2011: Wie Heimelektronik und digitalSTROM zusammen...
 
Using the Android Native Development Kit (NDK)
Using the Android Native Development Kit (NDK)Using the Android Native Development Kit (NDK)
Using the Android Native Development Kit (NDK)
 
[UniteKorea2013] Protecting your Android content
[UniteKorea2013] Protecting your Android content[UniteKorea2013] Protecting your Android content
[UniteKorea2013] Protecting your Android content
 
Inter-process communication of Android
Inter-process communication of AndroidInter-process communication of Android
Inter-process communication of Android
 
You can now use PVS-Studio with Visual Studio absent; just give it the prepro...
You can now use PVS-Studio with Visual Studio absent; just give it the prepro...You can now use PVS-Studio with Visual Studio absent; just give it the prepro...
You can now use PVS-Studio with Visual Studio absent; just give it the prepro...
 

Viewers also liked

IzPack Glassfish Lightning Talks 2008
IzPack Glassfish Lightning Talks 2008IzPack Glassfish Lightning Talks 2008
IzPack Glassfish Lightning Talks 2008julien.ponge
 
IzPack - fOSSa 2009
IzPack - fOSSa 2009IzPack - fOSSa 2009
IzPack - fOSSa 2009julien.ponge
 
IzPack - PoitouJUG
IzPack - PoitouJUGIzPack - PoitouJUG
IzPack - PoitouJUGjulien.ponge
 
Software Testing - Invited Lecture at UNSW Sydney
Software Testing - Invited Lecture at UNSW SydneySoftware Testing - Invited Lecture at UNSW Sydney
Software Testing - Invited Lecture at UNSW Sydneyjulien.ponge
 
IzPack at LyonJUG'11
IzPack at LyonJUG'11IzPack at LyonJUG'11
IzPack at LyonJUG'11julien.ponge
 
Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...
Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...
Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...julien.ponge
 

Viewers also liked (8)

IzPack Glassfish Lightning Talks 2008
IzPack Glassfish Lightning Talks 2008IzPack Glassfish Lightning Talks 2008
IzPack Glassfish Lightning Talks 2008
 
IzPack - fOSSa 2009
IzPack - fOSSa 2009IzPack - fOSSa 2009
IzPack - fOSSa 2009
 
IzPack - PoitouJUG
IzPack - PoitouJUGIzPack - PoitouJUG
IzPack - PoitouJUG
 
Java 7 LavaJUG
Java 7 LavaJUGJava 7 LavaJUG
Java 7 LavaJUG
 
Software Testing - Invited Lecture at UNSW Sydney
Software Testing - Invited Lecture at UNSW SydneySoftware Testing - Invited Lecture at UNSW Sydney
Software Testing - Invited Lecture at UNSW Sydney
 
FOSS - PoitouJUG
FOSS - PoitouJUGFOSS - PoitouJUG
FOSS - PoitouJUG
 
IzPack at LyonJUG'11
IzPack at LyonJUG'11IzPack at LyonJUG'11
IzPack at LyonJUG'11
 
Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...
Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...
Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...
 

Similar to IzPack unique cross-platform installer

Iz Pack
Iz PackIz Pack
Iz PackInria
 
Maven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patternsMaven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patternselliando dias
 
Jordan Hubbard Talk @ LISA
Jordan Hubbard Talk @ LISAJordan Hubbard Talk @ LISA
Jordan Hubbard Talk @ LISAguest4c923d
 
Adventures in infrastructure as code
Adventures in infrastructure as codeAdventures in infrastructure as code
Adventures in infrastructure as codeJulian Simpson
 
Teflon - Anti Stick for the browser attack surface
Teflon - Anti Stick for the browser attack surfaceTeflon - Anti Stick for the browser attack surface
Teflon - Anti Stick for the browser attack surfaceSaumil Shah
 
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCache
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCacheClustering Made Easier: Using Terracotta with Hibernate and/or EHCache
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCacheCris Holdorph
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13Fred Sauer
 
Ideal Deployment In .NET World
Ideal Deployment In .NET WorldIdeal Deployment In .NET World
Ideal Deployment In .NET WorldDima Pasko
 
Sbt, idea and eclipse
Sbt, idea and eclipseSbt, idea and eclipse
Sbt, idea and eclipseMike Slinn
 
Improve your Java Environment with Docker
Improve your Java Environment with DockerImprove your Java Environment with Docker
Improve your Java Environment with DockerHanoiJUG
 
IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009Christopher Judd
 
Joxean Koret - Database Security Paradise [Rooted CON 2011]
Joxean Koret - Database Security Paradise [Rooted CON 2011]Joxean Koret - Database Security Paradise [Rooted CON 2011]
Joxean Koret - Database Security Paradise [Rooted CON 2011]RootedCON
 
Apache Maven - eXo VN office presentation
Apache Maven - eXo VN office presentationApache Maven - eXo VN office presentation
Apache Maven - eXo VN office presentationArnaud Héritier
 
The Modern Developer Toolbox
The Modern Developer ToolboxThe Modern Developer Toolbox
The Modern Developer ToolboxPablo Godel
 
Word press, the automated way
Word press, the automated wayWord press, the automated way
Word press, the automated wayMichaël Perrin
 
Django dev-env-my-way
Django dev-env-my-wayDjango dev-env-my-way
Django dev-env-my-wayRobert Lujo
 

Similar to IzPack unique cross-platform installer (20)

Iz Pack
Iz PackIz Pack
Iz Pack
 
Maven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patternsMaven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patterns
 
Jordan Hubbard Talk @ LISA
Jordan Hubbard Talk @ LISAJordan Hubbard Talk @ LISA
Jordan Hubbard Talk @ LISA
 
Demystifying Maven
Demystifying MavenDemystifying Maven
Demystifying Maven
 
Ext 0523
Ext 0523Ext 0523
Ext 0523
 
Universal Userland
Universal UserlandUniversal Userland
Universal Userland
 
Adventures in infrastructure as code
Adventures in infrastructure as codeAdventures in infrastructure as code
Adventures in infrastructure as code
 
Teflon - Anti Stick for the browser attack surface
Teflon - Anti Stick for the browser attack surfaceTeflon - Anti Stick for the browser attack surface
Teflon - Anti Stick for the browser attack surface
 
Extjs Howto
Extjs HowtoExtjs Howto
Extjs Howto
 
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCache
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCacheClustering Made Easier: Using Terracotta with Hibernate and/or EHCache
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCache
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
 
Ideal Deployment In .NET World
Ideal Deployment In .NET WorldIdeal Deployment In .NET World
Ideal Deployment In .NET World
 
Sbt, idea and eclipse
Sbt, idea and eclipseSbt, idea and eclipse
Sbt, idea and eclipse
 
Improve your Java Environment with Docker
Improve your Java Environment with DockerImprove your Java Environment with Docker
Improve your Java Environment with Docker
 
IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009
 
Joxean Koret - Database Security Paradise [Rooted CON 2011]
Joxean Koret - Database Security Paradise [Rooted CON 2011]Joxean Koret - Database Security Paradise [Rooted CON 2011]
Joxean Koret - Database Security Paradise [Rooted CON 2011]
 
Apache Maven - eXo VN office presentation
Apache Maven - eXo VN office presentationApache Maven - eXo VN office presentation
Apache Maven - eXo VN office presentation
 
The Modern Developer Toolbox
The Modern Developer ToolboxThe Modern Developer Toolbox
The Modern Developer Toolbox
 
Word press, the automated way
Word press, the automated wayWord press, the automated way
Word press, the automated way
 
Django dev-env-my-way
Django dev-env-my-wayDjango dev-env-my-way
Django dev-env-my-way
 

Recently uploaded

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Recently uploaded (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

IzPack unique cross-platform installer

  • 1. Julien Ponge L’Aquarium Paris, Sun Microsystems Paris - 2008/12/12
  • 2. Outline Introduction + demo IzPack features Demo making-of Beyond IzPack
  • 3. Outline Introduction + demo IzPack features Demo making-of Beyond IzPack
  • 4. PhD Opensource Computer Science and developer Engineering
  • 5.
  • 7. Unique installer Multiple systems
  • 8. v2 Download for your operating system java -Xmx256m -jar filename.jar chmod -R +x lib/ant/bin lib/ant/bin/ant -f setup.xml bin/asadmin start-domain domain1
  • 9. Demo One download Works everywhere Straightforward
  • 10. Outline Introduction + demo IzPack features Demo making-of Beyond IzPack
  • 11. Outline Introduction + demo IzPack features Demo making-of Beyond IzPack
  • 12.
  • 14.
  • 15. (...)
  • 16.
  • 18. #1 Choose your panels #2 ...use them!
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27. variables Config files, scripts, ... Content-aware replacement
  • 28.
  • 29. raw pack200 deflate (gzip) bzip2
  • 30. Custom actions Custom panels Installer JAR 3rd-party libs
  • 31. Custom actions Custom panels Installer JAR 3rd-party libs
  • 32.
  • 33. Our very own native launcher, or...
  • 34. 2001
  • 35. v3.0.0 v2.0 Win32 shortcuts (rewrite) UserInputPanel 2001 03 08 11 08 2002 v1.0 v2.10.0 CVS @TuxFamily Fast development Steady growth, people keep on joining
  • 36. X11 v3.0.0 shortcuts v2.0 Win32 shortcuts CommunityOne (rewrite) UserInputPanel GPL JavaOne 2001 2004 2008 03 08 11 08 02 01 05 04 05 10 2002 2005 v1.0 v2.10.0 Move to Move to v4.1.0 CVS @TuxFamily BerliOS Codehaus Fast development Steady growth, people keep on joining
  • 37. You decide to use it for X11 your next projects v3.0.0 shortcuts v2.0 Win32 shortcuts CommunityOne (rewrite) UserInputPanel GPL JavaOne 2001 2004 2008 03 08 11 08 02 01 05 04 05 10 2002 2005 v1.0 v2.10.0 Move to Move to v4.1.0 CVS @TuxFamily BerliOS Codehaus Fast development Steady growth, people keep on joining
  • 38. Outline Introduction + demo IzPack features Demo making-of Beyond IzPack
  • 39. Outline Introduction + demo IzPack features Demo making-of Beyond IzPack
  • 40. Packs, conditions, langpacks, libraries, GUI, metadata, ... Files Descriptor Resources Compiler Installer JAR
  • 45. <installation version=quot;1.0quot;> <info> <appname>Glassfish</appname> <appversion>v2 ur2 b04</appversion> <authors> <author email=quot;quot; name=quot;Julien Ponge (packager)quot;/> <author email=quot;quot; name=quot;Sun Microsystems and the GlassFish communityquot;/> </authors> <url>http://glassfish.org/</url> <javaversion>1.5</javaversion> <requiresjdk>yes</requiresjdk> </info> (...)
  • 46. (...) <panels> <panel classname=quot;HTMLInfoPanelquot; /> <panel classname=quot;HTMLLicencePanelquot; /> <panel classname=quot;TargetPanelquot; /> <panel classname=quot;UserInputPanelquot; /> <panel classname=quot;InstallPanelquot; /> <panel classname=quot;ProcessPanelquot; /> <panel classname=quot;ShortcutPanelquot; /> <panel classname=quot;SimpleFinishPanelquot; /> </panels> (...)
  • 47. <pack name=quot;GlassFishquot; required=quot;yesquot;> <description>GlassFish</description> <file src=quot;launch-browser.shquot; targetdir=quot;$INSTALL_PATH/binquot; condition=quot;izpack.macinstallquot; /> <fileset dir=quot;linuxquot; targetdir=quot;$INSTALL_PATHquot; condition=quot;izpack.linuxinstallquot;> <% linux_specific.each do |file| %> <include name=quot;<%= file %>quot;/> <% end %> </fileset> <executable targetfile=quot;$INSTALL_PATH/lib/ant/bin/antquot; stage=quot;neverquot; os=quot;unixquot; /> <parsable targetfile=quot;$INSTALL_PATH/bin/launch-browser.shquot; os=quot;unixquot; /> </pack>
  • 48. <pack name=quot;GlassFishquot; required=quot;yesquot;> <description>GlassFish</description> <file src=quot;launch-browser.shquot; targetdir=quot;$INSTALL_PATH/binquot; condition=quot;izpack.macinstallquot; /> <fileset dir=quot;linuxquot; targetdir=quot;$INSTALL_PATHquot; condition=quot;izpack.linuxinstallquot;> <% linux_specific.each do |file| %> <include name=quot;<%= file %>quot;/> <% end %> </fileset> <executable targetfile=quot;$INSTALL_PATH/lib/ant/bin/antquot; stage=quot;neverquot; os=quot;unixquot; /> <parsable targetfile=quot;$INSTALL_PATH/bin/launch-browser.shquot; os=quot;unixquot; /> </pack>
  • 49. <pack name=quot;GlassFishquot; required=quot;yesquot;> <description>GlassFish</description> <file src=quot;launch-browser.shquot; targetdir=quot;$INSTALL_PATH/binquot; condition=quot;izpack.macinstallquot; /> <fileset dir=quot;linuxquot; targetdir=quot;$INSTALL_PATHquot; condition=quot;izpack.linuxinstallquot;> <% linux_specific.each do |file| %> <include name=quot;<%= file %>quot;/> <% end %> </fileset> Ant-style: **/* <executable targetfile=quot;$INSTALL_PATH/lib/ant/bin/antquot; dir/*.class stage=quot;neverquot; os=quot;unixquot; /> **/*.jar <parsable targetfile=quot;$INSTALL_PATH/bin/launch-browser.shquot; lib/**/*.jar os=quot;unixquot; /> </pack>
  • 50. <pack name=quot;GlassFishquot; required=quot;yesquot;> <description>GlassFish</description> <file src=quot;launch-browser.shquot; targetdir=quot;$INSTALL_PATH/binquot; condition=quot;izpack.macinstallquot; /> <fileset dir=quot;linuxquot; targetdir=quot;$INSTALL_PATHquot; condition=quot;izpack.linuxinstallquot;> <% linux_specific.each do |file| %> <include name=quot;<%= file %>quot;/> <% end %> </fileset> <executable targetfile=quot;$INSTALL_PATH/lib/ant/bin/antquot; stage=quot;neverquot; os=quot;unixquot; /> <parsable targetfile=quot;$INSTALL_PATH/bin/launch-browser.shquot; os=quot;unixquot; /> </pack>
  • 51. <conditions> <condition type=quot;variablequot; id=quot;start.glassfishquot;> <name>gf_start_domain</name> <value>true</value> </condition> </conditions>
  • 52. <guiprefs height=quot;600quot; resizable=quot;yesquot; width=quot;800quot;> <modifier key=quot;allXGapquot; value=quot;5quot;/> <modifier key=quot;allYGapquot; value=quot;5quot;/> <modifier key=quot;paragraphYGapquot; value=quot;15quot;/> <modifier key=quot;useHeadingPanelquot; value=quot;yesquot;/> <modifier key=quot;headingLineCountquot; value=quot;1quot;/> <modifier key=quot;headingFontSizequot; value=quot;2quot;/> <modifier key=quot;headingBackgroundColorquot; value=quot;0x00ffffffquot;/> <modifier key=quot;headingPanelCounterquot; value=quot;textquot;/> <modifier key=quot;headingPanelCounterPosquot; value=quot;inHeadingquot;/> </guiprefs>
  • 53. Outline Introduction + demo IzPack features Demo making-of Beyond IzPack
  • 54. Outline Introduction + demo IzPack features Demo making-of Beyond IzPack
  • 55. MacOSX packages BitRock InstallBuilder
  • 56. IzPack is the only true cross-platform installer to date
  • 57. (...)
  • 58. (...) IzPack is a complement
  • 59.
  • 60.
  • 61.
  • 62.
  • 63. Disclaimer: you should never remove GF!
  • 65. Q&A Julien Ponge julien@ponge.info http://izpack.org/ http://julien.ponge.info/