SlideShare una empresa de Scribd logo
1 de 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/

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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...
 

Destacado

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
 

Destacado (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 a 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 a 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
 

Último

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 

Último (20)

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 

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/