SlideShare une entreprise Scribd logo
1  sur  66
IzPack: because you and your end users
                have installation issues

                             Julien Ponge
+
From a hack made in a student dorm room...




                                    ... not mine!
...to an industry-backed project.
Unique installer   Multiple systems
v2




Download for your operating system



1:   java -Xmx256m -jar filename.jar
2:   chmod -R +x lib/ant/bin
3:   lib/ant/bin/ant -f setup.xml
4:   bin/asadmin start-domain domain
Demo

 One download
 Works everywhere
 Straightforward
IzPack?
25.000 downloads per month?
(...)
Files to package              Installer resources




               XML descriptor


                         Compiler, Ant or Maven


                   Installer Jar
Custom panels




Custom actions    Installer Jar



 3rd-party libs
variables
                Config files,
                 scripts, ...




Content-aware
 replacement
raw         pack200




deflate (gzip)    bzip2
Uti lity s cripts
GlassFish Installer
 — making-of —
Compiler




Installer JAR
Compiler




Installer JAR
Compiler




Installer JAR
Compiler




Installer JAR
<installation version="1.0">

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

                                (...)
(...)
<panels>
    <panel   classname="HTMLInfoPanel" />
    <panel   classname="HTMLLicencePanel" />
    <panel   classname="TargetPanel" />
    <panel   classname="UserInputPanel" />
    <panel   classname="InstallPanel" />
    <panel   classname="ProcessPanel" />
    <panel   classname="ShortcutPanel" />
    <panel   classname="SimpleFinishPanel" />
</panels>

                      (...)
<pack name="GlassFish" required="yes">
  <description>GlassFish</description>

  <file src="launch-browser.sh" targetdir="$INSTALL_PATH/bin"
        condition="izpack.macinstall" />

  <fileset dir="linux" targetdir="$INSTALL_PATH"
           condition="izpack.linuxinstall">
    <% linux_specific.each do |file| %>
        <include name="<%= file %>"/>
    <% end %>
  </fileset>

  <executable targetfile="$INSTALL_PATH/lib/ant/bin/ant"
              stage="never" os="unix" />
  <parsable targetfile="$INSTALL_PATH/bin/launch-browser.sh"
            os="unix" />
</pack>
<pack name="GlassFish" required="yes">
  <description>GlassFish</description>

  <file src="launch-browser.sh" targetdir="$INSTALL_PATH/bin"
        condition="izpack.macinstall" />

  <fileset dir="linux" targetdir="$INSTALL_PATH"
           condition="izpack.linuxinstall">
    <% linux_specific.each do |file| %>
        <include name="<%= file %>"/>
    <% end %>
  </fileset>

  <executable targetfile="$INSTALL_PATH/lib/ant/bin/ant"
              stage="never" os="unix" />
  <parsable targetfile="$INSTALL_PATH/bin/launch-browser.sh"
            os="unix" />
</pack>
<pack name="GlassFish" required="yes">
  <description>GlassFish</description>

  <file src="launch-browser.sh" targetdir="$INSTALL_PATH/bin"
        condition="izpack.macinstall" />

  <fileset dir="linux" targetdir="$INSTALL_PATH"
           condition="izpack.linuxinstall">
    <% linux_specific.each do |file| %>
        <include name="<%= file %>"/>
    <% end %>
  </fileset>                             Ant-style:
                                            **/*
  <executable targetfile="$INSTALL_PATH/lib/ant/bin/ant"
                                            dir/*.class
              stage="never" os="unix" />    **/*.jar
  <parsable targetfile="$INSTALL_PATH/bin/launch-browser.sh"
                                            lib/**/*.jar
            os="unix" />
</pack>
<pack name="GlassFish" required="yes">
  <description>GlassFish</description>

  <file src="launch-browser.sh" targetdir="$INSTALL_PATH/bin"
        condition="izpack.macinstall" />

  <fileset dir="linux" targetdir="$INSTALL_PATH"
           condition="izpack.linuxinstall">
    <% linux_specific.each do |file| %>
        <include name="<%= file %>"/>
    <% end %>
  </fileset>

  <executable targetfile="$INSTALL_PATH/lib/ant/bin/ant"
              stage="never" os="unix" />
  <parsable targetfile="$INSTALL_PATH/bin/launch-browser.sh"
            os="unix" />
</pack>
<guiprefs height="600" resizable="yes" width="800">
  <modifier key="allXGap" value="5"/>
  <modifier key="allYGap" value="5"/>
  <modifier key="paragraphYGap" value="15"/>
  <modifier key="useHeadingPanel" value="yes"/>
  <modifier key="headingLineCount" value="1"/>
  <modifier key="headingFontSize" value="2"/>
  <modifier key="headingBackgroundColor" value="0x00ffffff"/>
  <modifier key="headingPanelCounter" value="text"/>
  <modifier key="headingPanelCounterPos" value="inHeading"/>
</guiprefs>
<conditions>
  <condition
      type="variable"
      id="start.glassfish">
    <name>gf_start_domain</name>
      <value>true</value>
  </condition>
</conditions>
Demo
How about packaging
     systems?
(...)




Packages vs Installers
On Windows ?
On Mac OS X ?
On *nix ?
Initial installation

Bootstrap IPS + updates


    Uninstallation




  Updates + Add-ons
The next IzPack
The hype effect

     Patterns         TDD,            JSR xyz
                      BDD


...your application code will eventually look bad!

       Best                          Scripting
                    IoC & DI
     practices
Kudos to:
                  Anthonin Bonnefoy
      0-b eta     David Duponchel
 5.
                  Rene Krell



  PicoContainer

+ hamcrest
+ fest-swing                          JUnit
Developers

  SCM




             CVS then Subversion
Developers

  SCM
Try it today!
                4.3.3
                4.3.4-RC1
                5.0.0-beta
Opensource Projet
   Aftermath
F/OSS... why?
                    nothing’s free!


Fun   Skills   Advertise




Strategic market shares




Direct revenue streams
Project type       “Main” models

                   Consulting
Framework          Training
and libraries      Support
                   Dual licensing

                   Support plans
Mission-critical
                   Consulting
infrastructure
                   Management tools
servers
                   Extensions

                   Open Core
Products           Extensions
                   Customizations
Start         Easy
                    Solo work

     Users!


     Patches!


Community support

                    Hard to reach
  Mature project
                    Manager work
add this!



                           support that!



 it is not ready for the
enterprise unless you...



                           I expected it to do this
                                but it doesn’t!
<
Words       Code
Upstream




Monster patch (or raw files!)
“Given enough eyeballs,
 all bugs are shallow.”

         — Linus’s Law
Julien Ponge Q&A
                  @jponge   @izpack
   julien.ponge@gmail.com   http://izpack.org/
http://julien.ponge.info/

Contenu connexe

Similaire à IzPack at LyonJUG'11

Iz Pack
Iz PackIz Pack
Iz PackInria
 
Django dev-env-my-way
Django dev-env-my-wayDjango dev-env-my-way
Django dev-env-my-wayRobert Lujo
 
Tools and Process for Streamlining Mac Deployment
Tools and Process for Streamlining Mac DeploymentTools and Process for Streamlining Mac Deployment
Tools and Process for Streamlining Mac DeploymentTimothy Sutton
 
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...Sencha
 
"I have a framework idea" - Repeat less, share more.
"I have a framework idea" - Repeat less, share more."I have a framework idea" - Repeat less, share more.
"I have a framework idea" - Repeat less, share more.Fabio Milano
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014biicode
 
BP-6 Repository Customization Best Practices
BP-6 Repository Customization Best PracticesBP-6 Repository Customization Best Practices
BP-6 Repository Customization Best PracticesAlfresco Software
 
Riga Dev Day - Automated Android Continuous Integration
Riga Dev Day - Automated Android Continuous IntegrationRiga Dev Day - Automated Android Continuous Integration
Riga Dev Day - Automated Android Continuous IntegrationNicolas Fränkel
 
Dexterity in 15 minutes or less
Dexterity in 15 minutes or lessDexterity in 15 minutes or less
Dexterity in 15 minutes or lessrijk.stofberg
 
What makes me "Grunt"?
What makes me "Grunt"? What makes me "Grunt"?
What makes me "Grunt"? Fabien Doiron
 
Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013grim_radical
 
Introduction to Maven
Introduction to MavenIntroduction to Maven
Introduction to MavenSperasoft
 
From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012Carlos Sanchez
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesLindsay Holmwood
 

Similaire à IzPack at LyonJUG'11 (20)

Iz Pack
Iz PackIz Pack
Iz Pack
 
Phing
PhingPhing
Phing
 
Django dev-env-my-way
Django dev-env-my-wayDjango dev-env-my-way
Django dev-env-my-way
 
Tools and Process for Streamlining Mac Deployment
Tools and Process for Streamlining Mac DeploymentTools and Process for Streamlining Mac Deployment
Tools and Process for Streamlining Mac Deployment
 
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
 
"I have a framework idea" - Repeat less, share more.
"I have a framework idea" - Repeat less, share more."I have a framework idea" - Repeat less, share more.
"I have a framework idea" - Repeat less, share more.
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
 
Maven
MavenMaven
Maven
 
BP-6 Repository Customization Best Practices
BP-6 Repository Customization Best PracticesBP-6 Repository Customization Best Practices
BP-6 Repository Customization Best Practices
 
Riga Dev Day - Automated Android Continuous Integration
Riga Dev Day - Automated Android Continuous IntegrationRiga Dev Day - Automated Android Continuous Integration
Riga Dev Day - Automated Android Continuous Integration
 
Write php deploy everywhere tek11
Write php deploy everywhere   tek11Write php deploy everywhere   tek11
Write php deploy everywhere tek11
 
Dexterity in 15 minutes or less
Dexterity in 15 minutes or lessDexterity in 15 minutes or less
Dexterity in 15 minutes or less
 
Heroku pycon
Heroku pyconHeroku pycon
Heroku pycon
 
What makes me "Grunt"?
What makes me "Grunt"? What makes me "Grunt"?
What makes me "Grunt"?
 
Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013
 
Introduction to Maven
Introduction to MavenIntroduction to Maven
Introduction to Maven
 
From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012
 
Liferay maven sdk
Liferay maven sdkLiferay maven sdk
Liferay maven sdk
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
 
Universal Userland
Universal UserlandUniversal Userland
Universal Userland
 

Plus de julien.ponge

AlpesJUG - Communautés opensource, stratégies et écueils
AlpesJUG - Communautés opensource, stratégies et écueilsAlpesJUG - Communautés opensource, stratégies et écueils
AlpesJUG - Communautés opensource, stratégies et écueilsjulien.ponge
 
Java 7 at SoftShake 2011
Java 7 at SoftShake 2011Java 7 at SoftShake 2011
Java 7 at SoftShake 2011julien.ponge
 
Java 7 JUG Summer Camp
Java 7 JUG Summer CampJava 7 JUG Summer Camp
Java 7 JUG Summer Campjulien.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
 
IzPack at Devoxx 2010
IzPack at Devoxx 2010IzPack at Devoxx 2010
IzPack at Devoxx 2010julien.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 Glassfish Lightning Talks 2008
IzPack Glassfish Lightning Talks 2008IzPack Glassfish Lightning Talks 2008
IzPack Glassfish Lightning Talks 2008julien.ponge
 

Plus de julien.ponge (10)

AlpesJUG - Communautés opensource, stratégies et écueils
AlpesJUG - Communautés opensource, stratégies et écueilsAlpesJUG - Communautés opensource, stratégies et écueils
AlpesJUG - Communautés opensource, stratégies et écueils
 
Java 7 LavaJUG
Java 7 LavaJUGJava 7 LavaJUG
Java 7 LavaJUG
 
Java 7 at SoftShake 2011
Java 7 at SoftShake 2011Java 7 at SoftShake 2011
Java 7 at SoftShake 2011
 
Java 7 JUG Summer Camp
Java 7 JUG Summer CampJava 7 JUG Summer Camp
Java 7 JUG Summer Camp
 
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...
 
FOSS - PoitouJUG
FOSS - PoitouJUGFOSS - PoitouJUG
FOSS - PoitouJUG
 
IzPack at Devoxx 2010
IzPack at Devoxx 2010IzPack at Devoxx 2010
IzPack at Devoxx 2010
 
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
 
PhD Defense
PhD DefensePhD Defense
PhD Defense
 
IzPack Glassfish Lightning Talks 2008
IzPack Glassfish Lightning Talks 2008IzPack Glassfish Lightning Talks 2008
IzPack Glassfish Lightning Talks 2008
 

Dernier

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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 CVKhem
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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...Drew Madelung
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
[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
 
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
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Dernier (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
[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
 
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
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

IzPack at LyonJUG'11

  • 1. IzPack: because you and your end users have installation issues Julien Ponge
  • 2. +
  • 3. From a hack made in a student dorm room... ... not mine!
  • 5.
  • 6. Unique installer Multiple systems
  • 7. v2 Download for your operating system 1: java -Xmx256m -jar filename.jar 2: chmod -R +x lib/ant/bin 3: lib/ant/bin/ant -f setup.xml 4: bin/asadmin start-domain domain
  • 8. Demo One download Works everywhere Straightforward
  • 11. (...)
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. Files to package Installer resources XML descriptor Compiler, Ant or Maven Installer Jar
  • 19. Custom panels Custom actions Installer Jar 3rd-party libs
  • 20. variables Config files, scripts, ... Content-aware replacement
  • 21.
  • 22.
  • 23.
  • 24. raw pack200 deflate (gzip) bzip2
  • 25. Uti lity s cripts
  • 26. GlassFish Installer — making-of —
  • 31. <installation version="1.0"> <info> <appname>Glassfish</appname> <appversion>v2 ur2 b04</appversion> <authors> <author email="" name="Julien Ponge (packager)"/> <author email="" name="Sun Microsystems and the GlassFish community"/> </authors> <url>http://glassfish.org/</url> <javaversion>1.5</javaversion> <requiresjdk>yes</requiresjdk> </info> (...)
  • 32. (...) <panels> <panel classname="HTMLInfoPanel" /> <panel classname="HTMLLicencePanel" /> <panel classname="TargetPanel" /> <panel classname="UserInputPanel" /> <panel classname="InstallPanel" /> <panel classname="ProcessPanel" /> <panel classname="ShortcutPanel" /> <panel classname="SimpleFinishPanel" /> </panels> (...)
  • 33. <pack name="GlassFish" required="yes"> <description>GlassFish</description> <file src="launch-browser.sh" targetdir="$INSTALL_PATH/bin" condition="izpack.macinstall" /> <fileset dir="linux" targetdir="$INSTALL_PATH" condition="izpack.linuxinstall"> <% linux_specific.each do |file| %> <include name="<%= file %>"/> <% end %> </fileset> <executable targetfile="$INSTALL_PATH/lib/ant/bin/ant" stage="never" os="unix" /> <parsable targetfile="$INSTALL_PATH/bin/launch-browser.sh" os="unix" /> </pack>
  • 34. <pack name="GlassFish" required="yes"> <description>GlassFish</description> <file src="launch-browser.sh" targetdir="$INSTALL_PATH/bin" condition="izpack.macinstall" /> <fileset dir="linux" targetdir="$INSTALL_PATH" condition="izpack.linuxinstall"> <% linux_specific.each do |file| %> <include name="<%= file %>"/> <% end %> </fileset> <executable targetfile="$INSTALL_PATH/lib/ant/bin/ant" stage="never" os="unix" /> <parsable targetfile="$INSTALL_PATH/bin/launch-browser.sh" os="unix" /> </pack>
  • 35. <pack name="GlassFish" required="yes"> <description>GlassFish</description> <file src="launch-browser.sh" targetdir="$INSTALL_PATH/bin" condition="izpack.macinstall" /> <fileset dir="linux" targetdir="$INSTALL_PATH" condition="izpack.linuxinstall"> <% linux_specific.each do |file| %> <include name="<%= file %>"/> <% end %> </fileset> Ant-style: **/* <executable targetfile="$INSTALL_PATH/lib/ant/bin/ant" dir/*.class stage="never" os="unix" /> **/*.jar <parsable targetfile="$INSTALL_PATH/bin/launch-browser.sh" lib/**/*.jar os="unix" /> </pack>
  • 36. <pack name="GlassFish" required="yes"> <description>GlassFish</description> <file src="launch-browser.sh" targetdir="$INSTALL_PATH/bin" condition="izpack.macinstall" /> <fileset dir="linux" targetdir="$INSTALL_PATH" condition="izpack.linuxinstall"> <% linux_specific.each do |file| %> <include name="<%= file %>"/> <% end %> </fileset> <executable targetfile="$INSTALL_PATH/lib/ant/bin/ant" stage="never" os="unix" /> <parsable targetfile="$INSTALL_PATH/bin/launch-browser.sh" os="unix" /> </pack>
  • 37. <guiprefs height="600" resizable="yes" width="800"> <modifier key="allXGap" value="5"/> <modifier key="allYGap" value="5"/> <modifier key="paragraphYGap" value="15"/> <modifier key="useHeadingPanel" value="yes"/> <modifier key="headingLineCount" value="1"/> <modifier key="headingFontSize" value="2"/> <modifier key="headingBackgroundColor" value="0x00ffffff"/> <modifier key="headingPanelCounter" value="text"/> <modifier key="headingPanelCounterPos" value="inHeading"/> </guiprefs>
  • 38. <conditions> <condition type="variable" id="start.glassfish"> <name>gf_start_domain</name> <value>true</value> </condition> </conditions>
  • 39. Demo
  • 43. On Mac OS X ?
  • 45.
  • 46. Initial installation Bootstrap IPS + updates Uninstallation Updates + Add-ons
  • 47.
  • 49. The hype effect Patterns TDD, JSR xyz BDD ...your application code will eventually look bad! Best Scripting IoC & DI practices
  • 50. Kudos to: Anthonin Bonnefoy 0-b eta David Duponchel 5. Rene Krell PicoContainer + hamcrest + fest-swing JUnit
  • 51. Developers SCM CVS then Subversion
  • 53. Try it today! 4.3.3 4.3.4-RC1 5.0.0-beta
  • 54. Opensource Projet Aftermath
  • 55. F/OSS... why? nothing’s free! Fun Skills Advertise Strategic market shares Direct revenue streams
  • 56. Project type “Main” models Consulting Framework Training and libraries Support Dual licensing Support plans Mission-critical Consulting infrastructure Management tools servers Extensions Open Core Products Extensions Customizations
  • 57.
  • 58.
  • 59. Start Easy Solo work Users! Patches! Community support Hard to reach Mature project Manager work
  • 60. add this! support that! it is not ready for the enterprise unless you... I expected it to do this but it doesn’t!
  • 61.
  • 62. < Words Code
  • 64.
  • 65. “Given enough eyeballs, all bugs are shallow.” — Linus’s Law
  • 66. Julien Ponge Q&A @jponge @izpack julien.ponge@gmail.com http://izpack.org/ http://julien.ponge.info/