May the forge be with you
Sandro Sonntag - adorsys GmbH
05/16/12
Über mich
Sandro Sonntag

Principal Architekt bei adorsys GmbH
https://www.xing.com/profile/Sandro_Sonntag
Wir schreiben das
Jahr 2013

Das Raumschiff
Java Enterprise
fliegt in neuE Galaxien
KIRK:
WIE Lang BrauchT
DER BAU eines
NEUEN RESTSEVICES?
Scotty: CA 12
Stunden
KIRK: Ich geb Dir
4
Scotty: ich
machs in 1er !
Wozu Forge? Wir haben
doch Maven-Archetypes...
SLF4J

Arquillian
JPA

Bean V
alidatio
n
JSF

EJB
JAX-R

S

CDI
Was wir wirklich brauchen
ist ein RAD Baukasten...
SLF4J

JSF

EJB
CDI

JPA

Arquillian

JAX-RS
dation
an Vali
Be
Forge, das DRY Tool für
Softwareentwicklung

Heutzutage
Forge, das DRY Tool für
Softwareentwicklung
Forge, das DRY Tool für
Softwareentwicklung
Forge, das DRY Tool für
Softwareentwicklung
Was steckt drin ?
Was steckt drin ?
•

Scaffolding /
Generierungstool
Was steckt drin ?
•

Scaffolding /
Generierungstool

•

Generierung von
Javacode und
Konfigurationen
Was steckt drin ?
•

Scaffolding /
Generierungstool

•

Generierung von
Javacode und
Konfigurationen

•

Unterstützt die gängigen
JEE APIs
Was steckt drin ?
•

Scaffolding /
Generierungstool

•

Generierung von
Javacode und
Konfigurationen

•

Unterstützt die gängigen
JEE APIs

•

Maven
Was steckt drin ?
•

Scaffolding /
Generierungstool

•

Generierung von
Javacode und
Konfigurationen

•

Unterstützt die gängigen
JEE APIs

•

Maven

•

GIT
Was steckt drin ?
•

Scaffolding /
Generierungstool

•

Generierung von
Javacode und
Konfigurationen

•

Unterstützt die gängigen
JEE APIs

•

Maven

•
•

GIT
Unterstützung für die
gängigen OSS
Applicationserver
Was steckt drin ?
•
•

Scaffolding /
Generierungstool
Generierung von
Javacode und
Konfigurationen

•

Unterstützt die gängigen
JEE APIs

•

Maven

•
•

GIT

•

Pluginsystem (CDI, baut
auf JBoss Modules)

Unterstützung für die
gängigen OSS
Applicationserver
Was steckt drin ?
•
•
•
•

Scaffolding /
Generierungstool
Generierung von
Javacode und
Konfigurationen
Unterstützt die gängigen
JEE APIs
Maven

•
•

GIT

•

Pluginsystem (CDI, baut
auf JBoss Modules)

•

Ökosystem - zentrales
Pluginrepository

Unterstützung für die
gängigen OSS
Applicationserver
Cooking a new Plugin
Cooking a new Plugin

Java
Cooking a new Plugin

Java

CDI
Cooking a new Plugin

Java
Forge
CDI
Cooking a new Plugin
aven
Java
Forge
CDI
Cooking a new Plugin
aven

Arquillian
Java

Forge
CDI
Cooking a new Plugin
JBoss
Modules
aven

Arquillian
Java

Forge
CDI
What is a
What is a
 Plugin
 Plugin
 JBoss Module

 Plugin
 JBoss Module

 Plugin
 Commands
 JBoss Module

 Plugin
 Commands

 Setup Command
 JBoss Module

 Plugin
 Commands

ENV

 Setup Command
 JBoss Module

 Plugin
 Commands

 Setup Command
ENV

 Project
 JBoss Module

 Plugin
 Commands

 Setup Command
ENV

 Project

 Shell
 JBoss Module

 Plugin
 Commands

 Setup Command
ENV

 Project

 Shell
 Current Resource
 JBoss Module

 Plugin
 Commands

 Setup Command
ENV

 Project

 Shell
 Current Resource

 Facets
 Facets
 Facets

 REST Plugin
 Facets

 REST Plugin

 JSF Plugin
 Facets
 Project

 REST Plugin

 JSF Plugin
 Facets
 Project

 Java Facet

 REST Plugin

 WebResourceFacet FacesFacet

 JSF Plugin
 Forge Core Facets
• DependencyFacet
• JavaExecutionFacet
• JavaSourceFacet
• MavenCoreFacet
• MavenPluginFacet
• MetadataFacet

• PackagingFacet
• ResourceFacet
• WebResourceFacet
 Forge Resource System
 Forge Resource System
 Forge Resource System
Forge Java Type System
JavaSource<?> classUnderTest =
JavaParser.parse(
"package test; public class ForgeIt { public void doit(){} }");
Advanced Usecases
• Project Wizard
• Release Setup
• Clean Maven POMs
• DLL-Generierung
• Forge Server Build Integration - Continous
Delivery

• https://github.com/adorsys
Forge 2.0 steht vor der
Tür
• schneller!
• Designed for Modularity
• Neues Addon System - aus Plugins werden
Addons

• Transaction Support
Forge 2 Architecture
Referenzen
•

JBoss Forge: http://
forge.jboss.org/

•

Arquillian Tutorial: http://
arquillian.org/guides/
get_started_faster_with_
forge/

•

Beantest Forge Plugin:
https://github.com/
ersatzcapo/forgebeanstest

•

SLF4J Plugin: https://
github.com/xandrox/
forge-slf4jplugin

•

Forge GWT Plugin: http://
forge-gwtplugin.github.io/

•

Forge Artikel: http://
jaxenter.de/artikel/
MaytheForgebewithyou
Noch Fragen?

May the forge be with you