Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
IzPack - LyonJUG 2011
Search
Julien Ponge
March 26, 2012
Programming
80
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
IzPack - LyonJUG 2011
Julien Ponge
March 26, 2012
More Decks by Julien Ponge
See All by Julien Ponge
Quarkus Insights 2023-03-06
jponge
0
130
Reactive Streams. 4 Interfaces. Et après ?
jponge
0
71
Scalability and resilience in practice: current trends and opportunities
jponge
0
310
Eclipse Vert.x at BruJUG 2019
jponge
0
220
Du réactif au service du pneu connecté
jponge
0
400
Bringing Reactive to Enterprise Java Developers
jponge
0
360
Golo LyonJUG 2019
jponge
0
310
Vert.x Montreal JUG 2018
jponge
0
550
Bringing Reactive to Enterprise Application Developer // Reactive Summit 2018
jponge
0
300
Other Decks in Programming
See All in Programming
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
610
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
180
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
150
選挙速報を多くのユーザーへ 届ける Live Activities 設計
hamayokokuririn
0
150
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
290
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
4.8k
Heart of Swift Concurrency
koher
0
900
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
150
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.8k
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
550
Java 27新機能 / Java 27 new features
kishida
2
150
Featured
See All Featured
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
280
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
700
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
240
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
460
4 Signs Your Business is Dying
shpigford
187
23k
Mind Mapping
helmedeiros
1
360
Site-Speed That Sticks
csswizardry
13
1.5k
My Coaching Mixtape
mlcsv
0
320
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
830
Documentation Writing (for coders)
carmenintech
77
5.5k
Transcript
IzPack: because you and your end users have installation issues
Julien Ponge
+
From a hack made in a student dorm room... ...
not mine!
...to an industry-backed project.
None
Unique installer Multiple systems
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 v2
Demo One download Works everywhere Straightforward
IzPack?
25.000 downloads per month?
(...)
None
None
None
None
None
None
XML descriptor Files to package Installer resources Installer Jar Compiler,
Ant or Maven
Custom actions Installer Jar Custom panels 3rd-party libs
variables Content-aware replacement Config files, scripts, ...
None
None
None
deflate (gzip) bzip2 raw pack200
Utility scripts
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> <executable targetfile="$INSTALL_PATH/lib/ant/bin/ant" stage="never" os="unix" /> <parsable targetfile="$INSTALL_PATH/bin/launch-browser.sh" os="unix" /> </pack> Ant-style: **/* dir/*.class **/*.jar lib/**/*.jar
<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 ?
None
Initial installation Bootstrap IPS + updates Updates + Add-ons Uninstallation
None
The next IzPack
The hype effect Patterns TDD, BDD Best practices IoC &
DI JSR xyz Scripting ...your application code will eventually look bad!
5.0-beta Kudos to: Anthonin Bonnefoy David Duponchel Rene Krell PicoContainer
JUnit + hamcrest + fest-swing
SCM Developers CVS then Subversion
SCM Developers
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 Framework and libraries Consulting Training Support
Dual licensing Mission-critical infrastructure servers Support plans Consulting Management tools Extensions Products Open Core Extensions Customizations
None
None
Start Users! Patches! Mature project Community support Easy Solo work
Hard to reach 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!
None
< Words Code
Monster patch (or raw files!) Upstream
None
“Given enough eyeballs, all bugs are shallow.” — Linus’s Law
Julien Ponge @jponge
[email protected]
http://julien.ponge.info/ Q&A @izpack http://izpack.org/