spring roo jaxitalia09

Post on 05-Dec-2014

4.013 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Spring ROO JaxItalia 2009 slides

TRANSCRIPT

Massimiliano Dessì, Pronetics S.p.A. 1

Spring Roo

Massimiliano Dessì, Pronetics S.p.a 2

Speaker Software Engineer and Architect ProNetics

Founder Spring Italian User Group

Presidente JugSardegna Onlus

Committer/Contributor OpenNMS – MongoDB

Autore Spring 2.5 Aspect Oriented programming

Massimiliano Dessì, Pronetics S.p.a 3

Agenda

Kanga Roo In Action

30 minutes

(10 to build 20 to describe)

less than one SBK manche

in Phillip Island Circuit.

Troy Bayliss

Massimiliano Dessì, Pronetics S.p.a 4

Mission

ROO migliora la produttività dello Sviluppo Java senza nessun compromesso

sulla qualità e flessibilità. Per l’utente finale è un piccolo genio

che lavora in silenzio sulle cose di cui non vorremmo preoccuparci

Massimiliano Dessì, Pronetics S.p.a 5

Demo

10 minuti con Roo valgono più di alcuni giorni di lavoro

Massimiliano Dessì, Pronetics S.p.a 6

Roo Roo is an extensible, text-based RAD tool for Java

Roo is development-time only (no Roo runtime) ____ ____ ____ / __ \/ __ \/ __ \ / /_/ / / / / / / / / _, _/ /_/ / /_/ / /_/ |_|\____/\____/ 1.0.0.RC3 [rev 401] Welcome to Spring Roo. For assistance press TAB or type "hint" then hit ENTER. roo>

Massimiliano Dessì, Pronetics S.p.a 7

Comandi Roo semplifica la creazione di un progetto

assistendo l’utente – hint e help aiutano nei vari passi richiesti

– TAB completamento ovunque

– Comandi contestuali

– In caso di errore ROO permette il rollback.

– Comandi “scriptabili” per poterli riprodurre

– Funzionamento conservativo e predittivo

Massimiliano Dessì, Pronetics S.p.a 8

Stack Roo è costruito su:

Java Spring Framework

Java Persistence API (Hibernate) Java Server Pages

Spring Security Spring Web Flow

Log4J, Maven, AspectJ, Eclipse/STS

Massimiliano Dessì, Pronetics S.p.a 9

Code generation Roo è un generatore di codice ibrido

– utilizza in meglio del modello di generazione passivo e attivo

Generazione passiva – Utilizzo della Roo shell per generare qualcosa

(solitamente files .xml e .java)

Generazione attiva – Costruzione di metadati con le annotazioni @Roo*

– Aggiornamento incrementale di file .aj, .jsp

Massimiliano Dessì, Pronetics S.p.a 10

Out of the Box •  Gestione progetto •  Oggetti generici •  Entity •  Gestione campi •  Persistenza •  JUnit test •  Finder dinamici •  Spring MVC, Spring Web Flow, Selenium •  JMS, SMTP •  Build system integration (Maven) •  Spring Security, Bundlor, Logging

Massimiliano Dessì, Pronetics S.p.a 11

Project management

project

dependency add

dependency remove

backup

Tutte le dipendenze usano Enterprise Bundle Repo

Versionati, OSGi-compatible

Massimiliano Dessì, Pronetics S.p.a 12

Oggetti generici

– @RooJavaBean – getters e setters

– @RooConfigurable – aggiunge @Configurable

– @RooToString

Massimiliano Dessì, Pronetics S.p.a 13

Entity

entity

- @RooEntity

- JPA entity feature-rich

–JPA @Entity con id, version, EntityManager

– Automaticamente aggiunge count, findAll, findById, findEntries, persiste, rimuove

-Comando con molte direttive opzionali

Massimiliano Dessì, Pronetics S.p.a 14

Gestione campi field

Scelta tra i tipi “comuni”

La shell ricorda l’ultima entity su cui si è lavorato

Opzioni per:

– JPA annotations

– JavaBean validation annotations

– Java modifiers

Massimiliano Dessì, Pronetics S.p.a 15

Persistenza

Hibernate, OpenJPA, EclipseLink

database più comuni

persistence exception translation

database properties list

database properties set

database properties remove

Massimiliano Dessì, Pronetics S.p.a 16

JUnit test

test integration

test mock

Massimiliano Dessì, Pronetics S.p.a 17

Finder dinamici

Roo evita la scrittura di JPA Query language findersAggiunti come metodi statici alle entity

finder list

finder add

Massimiliano Dessì, Pronetics S.p.a 18

MVC controller scaffold

– Automatic REST controller per una entity – Automatic JSP creazione e manutenzione

–modifica dei metodi permessi (CRUD subset)

controller all

Scaffold di tutte le entity

controller class Solo il Controller nudo e crudo

Massimiliano Dessì, Pronetics S.p.a 19

MVC

Spring JS, Tiles e URL Rewrite

selenium test

webflow

Massimiliano Dessì, Pronetics S.p.a 20

Smtp e JMS

email sender setup

field email

jms setup

field jms setup

jms listener class

Massimiliano Dessì, Pronetics S.p.a 21

Build System Integration

perform clean -> mvn clean eclipse:clean”

perform eclipse -> mvn eclipse:eclipse

perform tests -> mvn test

perform package -> mvn package

perform command -> custom mvn command

Massimiliano Dessì, Pronetics S.p.a 22

Varie

security setup imposta spring security

bundlor setup imposta Bundlor per OSGi

logging setup imposta log4j

script esegue uno script

perform command -> custom mvn command

Massimiliano Dessì, Pronetics S.p.a 23

Add-On

Si possono creare degli addon, i comandi

predefiniti sono:

addon list

addon install

addon uninstall

addon cleanup

Massimiliano Dessì, Pronetics S.p.a 24

Upgrade

Quando si aggiorna roo, possono cambiare i file .aj, che sono gli unici che l’utente non deve toccare

perchè sono i responsabili della generazione attiva del codice

Massimiliano Dessì, Pronetics S.p.a 25

Remove

1) Nell’ STS utilizzare push-in refactoring, questa trasferisce il contenuto dei file .aj nei file .java

2) Rimuovere I jar di ROO Annotation dal pom.xml

3) Rimuovere le annotazioni @Roo dai file .java

Massimiliano Dessì, Pronetics S.p.a 26

Database embedded

Q & A ?

Massimiliano Dessì, Pronetics S.p.a 27

Grazie per l’attenzione ! Massimiliano Dessì

desmax74 at yahoo.it massimiliano.dessi at pronetics.it

http://twitter.com/desmax74 http://jroller.com/desmax

http://www.linkedin.com/in/desmax74 http://wiki.java.net/bin/view/People/MassimilianoDessi

http://www.jugsardegna.org/vqwiki/jsp/Wiki?MassimilianoDessi

Spring Framework Italian User Group http://it.groups.yahoo.com/group/SpringFramework-it

top related