SlideShare uma empresa 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/

Mais conteúdo relacionado

Mais procurados

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
 
Androidの本当にあった怖い話
Androidの本当にあった怖い話Androidの本当にあった怖い話
Androidの本当にあった怖い話
Yusuke Yamamoto
 

Mais procurados (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...
 

Destaque (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...
 

Semelhante a Slides Aquarium Paris 2008

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
elliando dias
 
Jordan Hubbard Talk @ LISA
Jordan Hubbard Talk @ LISAJordan Hubbard Talk @ LISA
Jordan Hubbard Talk @ LISA
guest4c923d
 
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
Fred Sauer
 
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
 

Semelhante a Slides Aquarium Paris 2008 (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

Último (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

Slides Aquarium Paris 2008

  • 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/