Rapid Application Development withRapid Application Development with
SpringRoop g
Baris Dere
Agenda
• SpringRoo introduction
• Why use it?
• Beginning with SpringRooBeginning with SpringRoo
• SpringRoo architecture
...
About Me
• Senior Software Engineer / Technical Lead
• 11 years experience with Java
• SCJP SCJD SCWCD SCBCDSCJP, SCJD, SC...
SpringRoo introduction (1)
• Open source (Spring subproject)
• Released in December 2009 (version 1.0)
• Ben Alex – LeadBe...
SpringRoo introduction (2)
• Extensible, text based RAD tool
• Command-line shell or STS
• Active/Passive code generationA...
DEMODEMO
Why use it?
• Higher Java productivity
• Stock-Standard Java
• Usable and LearnableUsable and Learnable
• Easy to remove
N...
Why use it? (2)
• Higher Java productivity
– Takes days to start a new project
– Reuse their existing knowledge, skills an...
Why use it? (3)
• Stock-Standard Java
– Existing Java knowledge
– Commonly used technologies
– SpringSource-certified best...
Why use it? (4)
• Usable and Learnable
– Text-based interfaces are often more appropriate
than GUIs
– Tab-based completion...
Why use it? (5)
• Easy to remove
– Risks to use a tool
– SpringRoo does not exist at runtime
– Easy to remove SpringRoo
• ...
Why use it? (6)
• No Engineering Trade-Offs
– Incremental dependency addition approach
– AspectJ's excellent compile-time ...
Beginning with SpringRoo
• Installation
• Starting a typical project
– Persistent layer / Reverse Engineeringy g g
– Web l...
DEMODEMO
SpringRoo architecture
• Command-line shell
• Core components
• AspectJ ITD’s for “active” generationAspectJ ITD s for act...
SpringRoo architecture (2)
SpringRoo architecture (3)
• Command-line shell
– Perform a “startup” scan
– Monitor file system
– Handle explicit directi...
SpringRoo architecture (4)
• Core components
SpringRoo architecture (5)
AspectJ ITD’s for “active” generation
SpringRoo architecture (6)
• Optional Services Layer
– Most logic can be placed in the web controller
• Exceptions:p
– Nee...
SpringRoo architecture (7)
• No DAO Layer
– Not strictly essential to creating typical web
applications
– Request ROO-301 ...
Add-ons
• Adobe Flex
• Apache ActiveMQ
• Java Bean Validation
• Java Database Connectivity
• SpringSource Tool Suite
• Spr...
Add-ons (2)
addon create simple --topLevelPackage com.mycompany.myproject.roo.addon
• Create a CommandMarker implementatio...
Add-ons (3)
• Version 1.1.0 (27th of October 2010)
• Apache Felix – OSGi Framework
• Service Component Runtime for compone...
Add-ons
addon create simple --topLevelPackage com mycompany myproject roo addonaddon create simple topLevelPackage com.myc...
Usage and conventions
• File conventions
– Roo will never change a .java in your project unless
you explicitly ask it
– On...
Roadmap and resources
• More Add-ons
– Comet & Bayeux
– Ajax (partial page refresh)
– Ordering & sorting of entities
• Doc...
Project resources
• Project home:
– http://www.springsource.org/roo
• Forum:
– http://forum.springsource.org/roo
• Issues:...
QUESTIONS?QUESTIONS?
Upcoming SlideShare
Loading in …5
×

Rapid application development with spring roo j-fall 2010 - baris dere

2,585 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,585
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
34
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Rapid application development with spring roo j-fall 2010 - baris dere

  1. 1. Rapid Application Development withRapid Application Development with SpringRoop g Baris Dere
  2. 2. Agenda • SpringRoo introduction • Why use it? • Beginning with SpringRooBeginning with SpringRoo • SpringRoo architecture Add• Add-ons • Usage and conventions • Roadmap and resources
  3. 3. About Me • Senior Software Engineer / Technical Lead • 11 years experience with Java • SCJP SCJD SCWCD SCBCDSCJP, SCJD, SCWCD, SCBCD, SCEA(in progress) • MCP MCAD NET• MCP, MCAD.NET • RUP Certified • Author for Java Magazine in Turkey
  4. 4. SpringRoo introduction (1) • Open source (Spring subproject) • Released in December 2009 (version 1.0) • Ben Alex – LeadBen Alex Lead • Java 5 JDK or higher A h M 2 0 9 hi h• Apache Maven 2.0.9 or higher • Latest stable version 1.1.0 (October 2010)
  5. 5. SpringRoo introduction (2) • Extensible, text based RAD tool • Command-line shell or STS • Active/Passive code generationActive/Passive code generation • Maintaining files during project lifecycle N t ti (d l t ti l )• Not a runtime (development-time only) • Not an IDE plugin
  6. 6. DEMODEMO
  7. 7. Why use it? • Higher Java productivity • Stock-Standard Java • Usable and LearnableUsable and Learnable • Easy to remove N E i i T d Off• No Engineering Trade-Offs
  8. 8. Why use it? (2) • Higher Java productivity – Takes days to start a new project – Reuse their existing knowledge, skills and experience
  9. 9. Why use it? (3) • Stock-Standard Java – Existing Java knowledge – Commonly used technologies – SpringSource-certified best-practice application architecture
  10. 10. Why use it? (4) • Usable and Learnable – Text-based interfaces are often more appropriate than GUIs – Tab-based completion system – Contextual awareness – Command abbreviation – “hint” command
  11. 11. Why use it? (5) • Easy to remove – Risks to use a tool – SpringRoo does not exist at runtime – Easy to remove SpringRoo • Push in refactor • Regular expression based find and replace
  12. 12. Why use it? (6) • No Engineering Trade-Offs – Incremental dependency addition approach – AspectJ's excellent compile-time weaving approach • no dynamic proxy creation overhead
  13. 13. Beginning with SpringRoo • Installation • Starting a typical project – Persistent layer / Reverse Engineeringy g g – Web layer – Integration and Selenium testsIntegration and Selenium tests – Securing the application – IDE supportIDE support – Customizing – BackupBackup
  14. 14. DEMODEMO
  15. 15. SpringRoo architecture • Command-line shell • Core components • AspectJ ITD’s for “active” generationAspectJ ITD s for active generation • Optional Services Layer N DAO L• No DAO Layer • Add-ons
  16. 16. SpringRoo architecture (2)
  17. 17. SpringRoo architecture (3) • Command-line shell – Perform a “startup” scan – Monitor file system – Handle explicit directives from the user
  18. 18. SpringRoo architecture (4) • Core components
  19. 19. SpringRoo architecture (5) AspectJ ITD’s for “active” generation
  20. 20. SpringRoo architecture (6) • Optional Services Layer – Most logic can be placed in the web controller • Exceptions:p – Need multiple entities – Business logic callable from outside (remote, timer,Business logic callable from outside (remote, timer, etc) – Easier to test (mock http requests)( p q ) • Create Services Layer – Annotate your service class with @ServicesAnnotate your service class with @Services
  21. 21. SpringRoo architecture (7) • No DAO Layer – Not strictly essential to creating typical web applications – Request ROO-301 - Vote
  22. 22. Add-ons • Adobe Flex • Apache ActiveMQ • Java Bean Validation • Java Database Connectivity • SpringSource Tool Suite • Spring Integration • Apache Maven • Apache OpenJPA • Apache Tiles y • Java Message Service • Java Persistence API • Java Transaction API g g • Spring Framework • Spring Security • Spring Web Flow • Apache Tomcat • AspectJ • AspectJ Development Tools • Cloud computing • Java Server Pages • Jetty • JUnit • Log4J • URL Rewrite Filter • Web application resource (WAR) packaging • Cloud computing • Dojo Toolkit • Eclipse IDE • EclipseLink • Log4J • Representational State Transfer (REST) • Selenium • Google Web Toolkit • Google App Engine • Hibernate J 5 • OSGi add-ons • Solr search • SpringSource tc Server with Insight• Java 5+ Insight
  23. 23. Add-ons (2) addon create simple --topLevelPackage com.mycompany.myproject.roo.addon • Create a CommandMarker implementation Annotate with @ScopeDevelopmentShell p p g y p y yp j • Annotate with @ScopeDevelopmentShell • Create a command method • Annotate with @CliCommand(value=“”, title=“”) • Create a command available method • Annotate with @CliAvailabilityIndicator(“”)• Annotate with @CliAvailabilityIndicator( ) • Perform package
  24. 24. Add-ons (3) • Version 1.1.0 (27th of October 2010) • Apache Felix – OSGi Framework • Service Component Runtime for componentService Component Runtime for component management • OSGi Bundle Repository for bundle resolution• OSGi Bundle Repository for bundle resolution • Out-of-the-box hosting on Google Code • PGP based security infrastructure • Email OBR repository URL to s2-p y roobot@vmware.com
  25. 25. Add-ons addon create simple --topLevelPackage com mycompany myproject roo addonaddon create simple topLevelPackage com.mycompany.myproject.roo.addon
  26. 26. Usage and conventions • File conventions – Roo will never change a .java in your project unless you explicitly ask it – Only .jspx and *_Roo_*.aj updated – Never change the *_Roo_*.aj files • IDE Usage – Use AJDT pluginp g • Shell features – Save your Roo commandsSave your Roo commands – Hinting, tab completion
  27. 27. Roadmap and resources • More Add-ons – Comet & Bayeux – Ajax (partial page refresh) – Ordering & sorting of entities • Documentation • Project resources
  28. 28. Project resources • Project home: – http://www.springsource.org/roo • Forum: – http://forum.springsource.org/roo • Issues:Issues: – https://jira.springframework.org/browse/ROO • Twitter:• Twitter: – @SpringRoo
  29. 29. QUESTIONS?QUESTIONS?

×