2. About
t edit
Master
Click
to
he
Speaker
/tle
style
• Java
developer
since
the
beginning
• True
believer
in
Open
Source
• Groovy
commi@er
since
2007
• Project
lead
of
the
Griffon
framework
• Currently
working
for
3. I
confess…
Click
to
edit
Master
/tle
style
<j:jelly
xmlns:j="jelly:core"
xmlns:define="jelly:define"
xmlns:my="myTagLib">
<define:taglib
uri="myTagLib">
<define:jellybean
name="foo"
className="MyTask"/>
</define:taglib>
Now
lets
use
the
new
tag
<my:foo
x="2"
y="cheese"/>
</j:jelly>
4. Relevant
Facts
Click
to
edit
Master
/tle
style
• h@p://griffon.codehaus.org
• Apache
License
2.0
• 1st
release
(0.0)
-‐
Sept
10
2008
– Based
in
Grails
1.1
• Latest
release
(0.9.2)
–
Mar
21
2011
• 140
plugins
in
the
central
plugins
repository
– More
are
added
every
week
5. Grails-‐like
Features
Click
to
edit
Master
/tle
style
• Common
applica/on
structure
• Command
line
tools
• Conven/on
over
Configura/on
• DRY
• Test
support
out-‐of-‐the
box
6. Exclusive
Features
(1)
Click
to
edit
Master
/tle
style
• MVC
pa@ern
is
found
at
several
levels
• Applica/on
life
cycle
• Simple
event
bus
• Clear
separa/on
between
build/me
and
run/me
• Mul/-‐threading
support
• AST
injec/on
7. Exclusive
Features
(2)
Click
to
edit
Master
/tle
style
• Ar/facts
can
be
wri@en
in
several
languages
– Groovy,
Java,
Scala
• Applica/on
archetypes
– Bootstrap
an
applica/on
with
predefined
templates
• Griffonw
– Allows
you
to
work
with
Griffon
without
installing
it
first
– Inspired
by
Gradle
8. Exclusive
Features
(3)
Click
to
edit
Master
/tle
style
• Mul/
language
support
– Groovy,
Java
– Clojure,
Scala,
Jython,
Erlang
(via
plugins)
• Mul/
UI
toolkit
support
– Swing
– SWT,
Pivot,
GTK,
JavaFX
(via
plugins)
9. Build/me
Click
to
edit
Master
/tle
style
• 3
development
modes
– Applet,
Webstart,
Standalone
• 4
deployment
modes
– applet,
webstart,
zip,
jar
– izpack,
dmg,
rpm,
deb
(via
plugins)
• Built-‐in
na/ve
library
support
• Plajorm
specific
tweaks
available
(OSX)
10. Binding
Click
to
edit
Master
/tle
style
• Extensive
use
of
JavaBeans
property
change
events
• 3
types
of
bindings
– Full,
Contextual,
Short
• 2
binding
flavors
– Single,
Bidirec/onal