Produk've	
  Entwicklung	
  
mit	
  Spring	
  Roo	
  
Eberhard Wolff
SpringSource – A division of VMware
About	
  Eberhard	
  Wolff	
  
•  Principal	
  Technologist	
  
•  Consultant	
  &	
  Trainer	
  
•  Author	
  (e.g.	
  firs...
Spring's	
  Mission	
  
#1	
  :	
  J2EE	
  should	
  be	
  easier	
  to	
  use	
  
Mission	
  Accomplished!	
  
How	
  can	
  we	
  make	
  live	
  even	
  
easier?	
  
We	
  need	
  to	
  improve	
  in	
  other	
  
areas.	
  
Build	
  
Raise	
  the	
  level	
  of	
  abstrac'on	
  
We	
  mostly	
  create	
  domain	
  
models	
  +	
  logic	
  working	
  on	
  it	
  
Development	
  tool	
  
Roo	
  
"Roo's mission is to
fundamentally and sustainably
improve Java developer
productivity without
compromising engineering
in...
"Roo is a little genie who sits in
the background and handles the
things I don't want to worry
about"	

End	
  User	
  
"Roo is a like a text adventures
of the 80ies – it even gives you
hints!"
Demo	
  Time!	
  
	
  
Not	
  shown	
  
•  Database	
  reverse	
  engineering	
  
•  JSON	
  
•  GWT	
  support	
  
•  SOLR	
  support	
  (search...
Roo	
  Benefits	
  
•  Proven	
  language,	
  tooling,	
  libraries	
  …	
  
•  No	
  run'me	
  overhead	
  
•  Can	
  be	
...
Roo Infrastructure
Implementa'on	
  Overview	
  
User's Project
.aj .xml .jsp .properties
Roo
Add-Ons
Roo
Add-Ons
Roo
Add-...
AspectJ ITDs
Ac've	
  Genera'on	
  
Person_Roo_
ToString.aj
toString():String
Person.java
name:String
write
Person_Roo_
Ja...
Add	
  ons	
  
•  May	
  add	
  commands	
  
•  May	
  add	
  ITDs	
  or	
  other	
  files	
  
•  Can	
  be	
  ac'vated	
  ...
Removing	
  Roo	
  in	
  Three	
  Steps	
  
1  Use	
  AJDT's	
  “push-­‐in	
  refactoring”	
  feature	
  
– This	
  moves	...
springsource.org/roo	
  
Full	
  visibility	
  in	
  the	
  performance	
  
for	
  each	
  Request	
  
Spring	
  Beans,	
  
Transac'ons,	
  
SQL,	
  
HTTP	
  …	
  
2	
  Steps	
  
#1	
  Deploy	
  applica'on	
  on	
  tc	
  
Server	
  developer	
  edi'on	
  
#2	
  Go	
  to	
  
localhost:8080/insight	
  
Demo	
  Time!	
  
hGp://www.youtube.com/	
  
	
  watch?v=P_EskssNDU8	
  
How	
  it	
  fits	
  in	
  our	
  strategy	
  
A	
  division	
  of	
  VMware	
  
Lightweight	
  
App	
  Run'me	
  
Virtual	
  App	
  
Environment	
  
Hybrid	
  
Cloud	
 ...
The	
  Approach	
  Revisited	
  
•  You	
  do	
  the	
  domain	
  model	
  –	
  Roo	
  does	
  the	
  rest	
  	
  
•  Opin...
More Productivitiy with Spring Roo
More Productivitiy with Spring Roo
More Productivitiy with Spring Roo
Upcoming SlideShare
Loading in...5
×

More Productivitiy with Spring Roo

1,891

Published on

Talk from WJAX 2010 about Roo. Includes videos about Roo and Spring Insight (German).

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,891
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
34
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "More Productivitiy with Spring Roo"

  1. 1. Produk've  Entwicklung   mit  Spring  Roo   Eberhard Wolff SpringSource – A division of VMware
  2. 2. About  Eberhard  Wolff   •  Principal  Technologist   •  Consultant  &  Trainer   •  Author  (e.g.  first  German  Spring  book)   •  ewolff@vmware.com   •  TwiGer:  @ewolff   •  Blog:  hGp://ewolff.com   •  hGp://slideshare.net/ewolff  
  3. 3. Spring's  Mission  
  4. 4. #1  :  J2EE  should  be  easier  to  use  
  5. 5. Mission  Accomplished!  
  6. 6. How  can  we  make  live  even   easier?  
  7. 7. We  need  to  improve  in  other   areas.  
  8. 8. Build  
  9. 9. Raise  the  level  of  abstrac'on  
  10. 10. We  mostly  create  domain   models  +  logic  working  on  it  
  11. 11. Development  tool  
  12. 12. Roo  
  13. 13. "Roo's mission is to fundamentally and sustainably improve Java developer productivity without compromising engineering integrity or flexibility" Roo's  Mission  Statement  
  14. 14. "Roo is a little genie who sits in the background and handles the things I don't want to worry about" End  User  
  15. 15. "Roo is a like a text adventures of the 80ies – it even gives you hints!"
  16. 16. Demo  Time!    
  17. 17. You  saw…   •  Domain  objects   •  Finder   •  MVC  support   •  Web  applica'on  customiza'on   •  Embedding  TwiGer/Google  Docs  etc.   •  I18n   •  Security   •  You  can  add  your  own  code  
  18. 18. Not  shown   •  Database  reverse  engineering   •  JSON   •  GWT  support   •  SOLR  support  (search)   •  Spring  Web  Flow  support   •  SELENIUM  web  tests   •  Google  App  Engine  Support  
  19. 19. Roo  Benefits   •  Proven  language,  tooling,  libraries  …   •  No  run'me  overhead   •  Can  be  removed  from  project  (Inter  type   declara'on  push  in)   •  Can  also  be  used  from  the  shell  (with  vi  or  Emacs)   •  Extensions  possible  
  20. 20. Roo Infrastructure Implementa'on  Overview   User's Project .aj .xml .jsp .properties Roo Add-Ons Roo Add-Ons Roo Add-Ons @Roo Annotations provide source only retention .java monitor and change Roo Add-Ons STS Shell
  21. 21. AspectJ ITDs Ac've  Genera'on   Person_Roo_ ToString.aj toString():String Person.java name:String write Person_Roo_ JavaBean.aj getName():String setName(String):void readRoo Add-Ons Roo Add-Ons Roo Add-Ons Roo Add-Ons Person.class name:String toString():String getName():String setName(String):void AspectJ Compiler read read writeCompilation unit separation with automated round-trips
  22. 22. Add  ons   •  May  add  commands   •  May  add  ITDs  or  other  files   •  Can  be  ac'vated  if  changes  occur   •  Metadata  events  send  out  
  23. 23. Removing  Roo  in  Three  Steps   1  Use  AJDT's  “push-­‐in  refactoring”  feature   – This  moves  the  Roo  .aj  content  into  normal  .java  files   2  Remove  Roo's  annota'on  JAR  from  your  POM   – You  can  use  Roo's  “dependency  remove”  command   3  Remove  @Roo*  annota'ons  from  .java  files   – Use  a  regular  exp  find/replace  in  Eclipse  for  speed   •  You  can  s'll  use  Roo  on  the  project  again   – Its  “hands  off  by  default”  will  ensure  it's  problem-­‐free  
  24. 24. springsource.org/roo  
  25. 25. Full  visibility  in  the  performance   for  each  Request  
  26. 26. Spring  Beans,   Transac'ons,   SQL,   HTTP  …  
  27. 27. 2  Steps  
  28. 28. #1  Deploy  applica'on  on  tc   Server  developer  edi'on  
  29. 29. #2  Go  to   localhost:8080/insight  
  30. 30. Demo  Time!   hGp://www.youtube.com/    watch?v=P_EskssNDU8  
  31. 31. How  it  fits  in  our  strategy  
  32. 32. A  division  of  VMware   Lightweight   App  Run'me   Virtual  App   Environment   Hybrid   Cloud   Spring   tc  Server   VM   Spring   tc  Server   Lightweight   App  Framework  
  33. 33. Conclusion   •  Roo  is  based  on  established  technologies   •  Spring,  AspectJ,  JPA…   •  ITDs  separate  clearly  generated  from  non-­‐ generated  code   •  Tackles  build,  development  tool  etc   •  Flexible  architecture:  You  can  add  your  own  add   ons   •  And:  Spring  Insight  can  be  used  for  performance   op'miza'on  of  Spring  Apps  
  34. 34. The  Approach  Revisited   •  You  do  the  domain  model  –  Roo  does  the  rest     •  Opinionated:  Sensible  defaults   •  No  lock  in   – Source  level  annota'ons   – Push  In  refactoring  can  be  used  to  eliminate  Roo   •  You  have  nothing  to  loose  –  much  to  gain!  

×