SlideShare a Scribd company logo
Rapid with Roo
Brownbag 9/13/2013
@MortenLileng
Me
• A rusty Java programmer, but … really like to get
my hands dirty
• Really like good code built on standards
• Limited time and desire to build infrastructure
code
Needed
• To build a RESTFul service in hours (off-hours)
• A tool that can help me with all infrastructure
code, without engineering trade-offs
What is Roo?
• Productivity tool
• Allows for easy creation of Enterprise Java
applications
• Runs alongside existing projects
• Detects changes made to files, adjusts itself as
necessary
What Roo is not
• Roo is not a runtime
• Roo is not an IDE plugin
• Roo is not an annotation processing library
• Java EE 6 annotations are not used
• Compatible with Java EE 5
Demo
roo from scratch
$ hint
$ persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY
$ entity jpa --class ~.domain.Contact --testAutomatically
$ field string --fieldName firstName --notNull
$ field string --fieldName lastName --notNull
$ enum type --class ~.domain.Gender
$ enum constant --name FEMALE
$ enum constant --name MALE
$ field enum --fieldName gender --type ~.domain.Gender --class ~.domain.Contact
$ perform eclipse
$ controller all --package ~.merkle.roo.web
$ perform eclipse
$ perform clean package
Roo shell commands
Core Technology
• Spring Framework
• AspectJ
Roo and Spring
• Spring Framework is required by Roo
• Spring Aspects - using AspectJ definition language
• Configurable dependency injection
• Other Spring projects may be included
– Spring Security
– Spring Web Flow
– Maven
– Java Server Pages
• User decides which Spring components to
integrate
Roo and Aspects
• Aspect Oriented Programming (AOP)
framework
• Inter-Type Declaration (ITD)
• Automatic Code Generation
– Interfaces
– Methods
– Fields
Why use Roo?
• Higher Productivity
• Compatibility with existing projects
• Auto-configuration available:
– Java Persistence API (JPA)
– Database backend
– Dependency injection
• Integration with existing technologies
– Spring MVC layer
– Google Web Toolkit
– HTML 5 standard
• Easy to pull out – no dependency at a later point
Productivity
• Code generated in separate files
• Independent from project
• ITDs are referenced automatically
• Incremental approach to application-building
• Technologies and frameworks automatically
added on-demand
Compatibility
• Compatible with Java EE 5
• SpringSource certified architecture
• Automatic maintenance and updates of
XML, JSP files
Convenience
• Runs in background
• Simple command-line interface
• Easy to add or remove
• Fail-safe, keeps track of changes made to
filesystem
References
• FX Service checked into SVN
• http://www.springsource.org/spring-
roo#documentation
• http://www.eclipse.org/aspectj/
• http://www.springsource.org/documentation
• Slide content: Aleksey Bukin

More Related Content

PDF
RoboCon 2018: How did we get here? Where do we go next?
PPTX
Build software like a bag of marbles, not a castle of LEGO®
PDF
SGCE 2015 REST APIs
PPT
Selenium for everyone
PDF
Facilitating Idiomatic Swift with Objective-C
PPTX
How to Supercharge your PHP Web API
PPTX
Effective .NET Core Unit Testing with SQLite and Dapper
ODP
ActiveRecord is good enough
RoboCon 2018: How did we get here? Where do we go next?
Build software like a bag of marbles, not a castle of LEGO®
SGCE 2015 REST APIs
Selenium for everyone
Facilitating Idiomatic Swift with Objective-C
How to Supercharge your PHP Web API
Effective .NET Core Unit Testing with SQLite and Dapper
ActiveRecord is good enough

What's hot (20)

PDF
Testing Alfresco extensions
PPTX
Automating functional testing of Flex applications.
PPTX
Developing a mobile cross-platform library
PPTX
State of angular ecosystem
PPTX
Ios driver presentation copy
PPTX
DotNext 2017 in Moscow - Challenges of Managing CoreFX repo -- Karel Zikmund
PDF
Overview of Java EE
PDF
Why you should use Django in your next project.
PPTX
How to setup a development environment for ONAP
PDF
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
PDF
NA Developer Day - Taking your COBOL apps to Net & JVM
PPTX
Not your fathers language c++
PPTX
How to contribute to an open source project and don’t die during the Code Rev...
PDF
Javantura v4 - FreeMarker in Spring web - Marin Kalapać
PPTX
Validating latest changes with XCI
PPTX
Code Refactoring
PDF
Revamping Mailjet API documentation @ ParisAPI meetup
PPTX
Testing Without a GUI Using TestComplete
PDF
Android clean architecture workshop 3h edition
PDF
GitHub as a Landing Page
Testing Alfresco extensions
Automating functional testing of Flex applications.
Developing a mobile cross-platform library
State of angular ecosystem
Ios driver presentation copy
DotNext 2017 in Moscow - Challenges of Managing CoreFX repo -- Karel Zikmund
Overview of Java EE
Why you should use Django in your next project.
How to setup a development environment for ONAP
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
NA Developer Day - Taking your COBOL apps to Net & JVM
Not your fathers language c++
How to contribute to an open source project and don’t die during the Code Rev...
Javantura v4 - FreeMarker in Spring web - Marin Kalapać
Validating latest changes with XCI
Code Refactoring
Revamping Mailjet API documentation @ ParisAPI meetup
Testing Without a GUI Using TestComplete
Android clean architecture workshop 3h edition
GitHub as a Landing Page
Ad

Similar to Rapid With Spring Roo (20)

PDF
Rapid application development with spring roo j-fall 2010 - baris dere
ODP
Spring roo for entrepreneurs
PPT
Spring Roo and the Cloud (Tutorial) [5th IndicThreads.com Conference On Java,...
PDF
More Productivitiy with Spring Roo
PDF
Spring roo for entrepreneurs
PPT
Indic threads java10-spring-roo-and-the-cloud
PDF
New Persistence Features in Spring Roo 1.1
PDF
Philly Spring UG Roo Overview
PDF
WaveMaker - Spring Roo - SpringSource Tool Suite - Choosing the right tool fo...
PDF
Spring Day | WaveMaker - Spring Roo - SpringSource Tool Suite: Choosing the R...
PDF
Spring Roo Add-On Development & Distribution
PDF
Spring Roo Flex Add-on
PDF
Spring roo-docs
PDF
Development without Constraint
PPTX
Be faster then rabbits
PDF
Introduction To Spring Roo 1.0.0
PPTX
Introduction to j2 ee frameworks
ODT
Spring framework
DOCX
Month 3 report
PDF
Sping roo intro_2013
Rapid application development with spring roo j-fall 2010 - baris dere
Spring roo for entrepreneurs
Spring Roo and the Cloud (Tutorial) [5th IndicThreads.com Conference On Java,...
More Productivitiy with Spring Roo
Spring roo for entrepreneurs
Indic threads java10-spring-roo-and-the-cloud
New Persistence Features in Spring Roo 1.1
Philly Spring UG Roo Overview
WaveMaker - Spring Roo - SpringSource Tool Suite - Choosing the right tool fo...
Spring Day | WaveMaker - Spring Roo - SpringSource Tool Suite: Choosing the R...
Spring Roo Add-On Development & Distribution
Spring Roo Flex Add-on
Spring roo-docs
Development without Constraint
Be faster then rabbits
Introduction To Spring Roo 1.0.0
Introduction to j2 ee frameworks
Spring framework
Month 3 report
Sping roo intro_2013
Ad

Recently uploaded (20)

PPTX
Virtual and Augmented Reality in Current Scenario
PDF
1.3 FINAL REVISED K-10 PE and Health CG 2023 Grades 4-10 (1).pdf
PDF
Hazard Identification & Risk Assessment .pdf
PDF
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
PDF
HVAC Specification 2024 according to central public works department
PPTX
202450812 BayCHI UCSC-SV 20250812 v17.pptx
PDF
IGGE1 Understanding the Self1234567891011
PDF
My India Quiz Book_20210205121199924.pdf
PDF
1_English_Language_Set_2.pdf probationary
PPTX
History, Philosophy and sociology of education (1).pptx
PDF
David L Page_DCI Research Study Journey_how Methodology can inform one's prac...
PDF
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
PDF
Practical Manual AGRO-233 Principles and Practices of Natural Farming
PDF
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
PDF
What if we spent less time fighting change, and more time building what’s rig...
PPTX
Unit 4 Computer Architecture Multicore Processor.pptx
PDF
Weekly quiz Compilation Jan -July 25.pdf
PPTX
ELIAS-SEZIURE AND EPilepsy semmioan session.pptx
PDF
Indian roads congress 037 - 2012 Flexible pavement
PPTX
Introduction to pro and eukaryotes and differences.pptx
Virtual and Augmented Reality in Current Scenario
1.3 FINAL REVISED K-10 PE and Health CG 2023 Grades 4-10 (1).pdf
Hazard Identification & Risk Assessment .pdf
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
HVAC Specification 2024 according to central public works department
202450812 BayCHI UCSC-SV 20250812 v17.pptx
IGGE1 Understanding the Self1234567891011
My India Quiz Book_20210205121199924.pdf
1_English_Language_Set_2.pdf probationary
History, Philosophy and sociology of education (1).pptx
David L Page_DCI Research Study Journey_how Methodology can inform one's prac...
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
Practical Manual AGRO-233 Principles and Practices of Natural Farming
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
What if we spent less time fighting change, and more time building what’s rig...
Unit 4 Computer Architecture Multicore Processor.pptx
Weekly quiz Compilation Jan -July 25.pdf
ELIAS-SEZIURE AND EPilepsy semmioan session.pptx
Indian roads congress 037 - 2012 Flexible pavement
Introduction to pro and eukaryotes and differences.pptx

Rapid With Spring Roo

  • 1. Rapid with Roo Brownbag 9/13/2013 @MortenLileng
  • 2. Me • A rusty Java programmer, but … really like to get my hands dirty • Really like good code built on standards • Limited time and desire to build infrastructure code Needed • To build a RESTFul service in hours (off-hours) • A tool that can help me with all infrastructure code, without engineering trade-offs
  • 3. What is Roo? • Productivity tool • Allows for easy creation of Enterprise Java applications • Runs alongside existing projects • Detects changes made to files, adjusts itself as necessary
  • 4. What Roo is not • Roo is not a runtime • Roo is not an IDE plugin • Roo is not an annotation processing library • Java EE 6 annotations are not used • Compatible with Java EE 5
  • 5. Demo roo from scratch $ hint $ persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY $ entity jpa --class ~.domain.Contact --testAutomatically $ field string --fieldName firstName --notNull $ field string --fieldName lastName --notNull $ enum type --class ~.domain.Gender $ enum constant --name FEMALE $ enum constant --name MALE $ field enum --fieldName gender --type ~.domain.Gender --class ~.domain.Contact $ perform eclipse $ controller all --package ~.merkle.roo.web $ perform eclipse $ perform clean package Roo shell commands
  • 6. Core Technology • Spring Framework • AspectJ
  • 7. Roo and Spring • Spring Framework is required by Roo • Spring Aspects - using AspectJ definition language • Configurable dependency injection • Other Spring projects may be included – Spring Security – Spring Web Flow – Maven – Java Server Pages • User decides which Spring components to integrate
  • 8. Roo and Aspects • Aspect Oriented Programming (AOP) framework • Inter-Type Declaration (ITD) • Automatic Code Generation – Interfaces – Methods – Fields
  • 9. Why use Roo? • Higher Productivity • Compatibility with existing projects • Auto-configuration available: – Java Persistence API (JPA) – Database backend – Dependency injection • Integration with existing technologies – Spring MVC layer – Google Web Toolkit – HTML 5 standard • Easy to pull out – no dependency at a later point
  • 10. Productivity • Code generated in separate files • Independent from project • ITDs are referenced automatically • Incremental approach to application-building • Technologies and frameworks automatically added on-demand
  • 11. Compatibility • Compatible with Java EE 5 • SpringSource certified architecture • Automatic maintenance and updates of XML, JSP files
  • 12. Convenience • Runs in background • Simple command-line interface • Easy to add or remove • Fail-safe, keeps track of changes made to filesystem
  • 13. References • FX Service checked into SVN • http://www.springsource.org/spring- roo#documentation • http://www.eclipse.org/aspectj/ • http://www.springsource.org/documentation • Slide content: Aleksey Bukin