SlideShare a Scribd company logo
1 of 13
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

What's hot

Automating functional testing of Flex applications.
Automating functional testing of Flex applications.Automating functional testing of Flex applications.
Automating functional testing of Flex applications.
Gokuldas Pillai
 
Ios driver presentation copy
Ios driver presentation copyIos driver presentation copy
Ios driver presentation copy
David O'Dowd
 
NA Developer Day - Taking your COBOL apps to Net & JVM
NA Developer Day - Taking your COBOL apps to Net & JVM NA Developer Day - Taking your COBOL apps to Net & JVM
NA Developer Day - Taking your COBOL apps to Net & JVM
Micro Focus
 

What's hot (20)

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

Similar to Rapid With Spring Roo

Сергей Моренец: "Gradle. Write once, build everywhere"
Сергей Моренец: "Gradle. Write once, build everywhere"Сергей Моренец: "Gradle. Write once, build everywhere"
Сергей Моренец: "Gradle. Write once, build everywhere"
Provectus
 
Rapid application development with spring roo j-fall 2010 - baris dere
Rapid application development with spring roo   j-fall 2010 - baris dereRapid application development with spring roo   j-fall 2010 - baris dere
Rapid application development with spring roo j-fall 2010 - baris dere
Baris Dere
 

Similar to Rapid With Spring Roo (20)

The Java Story
The Java StoryThe Java Story
The Java Story
 
AngularJS - Architecture decisions in a large project 
AngularJS - Architecture decisionsin a large project AngularJS - Architecture decisionsin a large project 
AngularJS - Architecture decisions in a large project 
 
Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development Pipeline
 
01 java intro
01 java intro01 java intro
01 java intro
 
Introduction to Spring & Spring BootFramework
Introduction to Spring  & Spring BootFrameworkIntroduction to Spring  & Spring BootFramework
Introduction to Spring & Spring BootFramework
 
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
 
APIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidadAPIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidad
 
Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016
 
Swagger - Making REST APIs friendlier
Swagger - Making REST APIs friendlierSwagger - Making REST APIs friendlier
Swagger - Making REST APIs friendlier
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014
 
Require js training
Require js trainingRequire js training
Require js training
 
What is an Automation Framework ?
What is an Automation Framework ?�What is an Automation Framework ?�
What is an Automation Framework ?
 
Introduction to Aspect Oriented Programming by Donald Belcham
Introduction to Aspect Oriented Programming by Donald BelchamIntroduction to Aspect Oriented Programming by Donald Belcham
Introduction to Aspect Oriented Programming by Donald Belcham
 
Introduction To AOP
Introduction To AOPIntroduction To AOP
Introduction To AOP
 
Сергей Моренец: "Gradle. Write once, build everywhere"
Сергей Моренец: "Gradle. Write once, build everywhere"Сергей Моренец: "Gradle. Write once, build everywhere"
Сергей Моренец: "Gradle. Write once, build everywhere"
 
Rapid application development with spring roo j-fall 2010 - baris dere
Rapid application development with spring roo   j-fall 2010 - baris dereRapid application development with spring roo   j-fall 2010 - baris dere
Rapid application development with spring roo j-fall 2010 - baris dere
 
Asp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech SoftwareAsp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech Software
 
Modern web application development with java ee 7
Modern web application development with java ee 7Modern web application development with java ee 7
Modern web application development with java ee 7
 
10 Useful Testing Tools for Open Source Projects @ TuxCon 2015
10 Useful Testing Tools for Open Source Projects @ TuxCon 201510 Useful Testing Tools for Open Source Projects @ TuxCon 2015
10 Useful Testing Tools for Open Source Projects @ TuxCon 2015
 
Microsoft power point automation-opensourcetestingtools_matrix-1
Microsoft power point   automation-opensourcetestingtools_matrix-1Microsoft power point   automation-opensourcetestingtools_matrix-1
Microsoft power point automation-opensourcetestingtools_matrix-1
 

Recently uploaded

Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
KarakKing
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 

Recently uploaded (20)

Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Philosophy of china and it's charactistics
Philosophy of china and it's charactisticsPhilosophy of china and it's charactistics
Philosophy of china and it's charactistics
 
Tatlong Kwento ni Lola basyang-1.pdf arts
Tatlong Kwento ni Lola basyang-1.pdf artsTatlong Kwento ni Lola basyang-1.pdf arts
Tatlong Kwento ni Lola basyang-1.pdf arts
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
OSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & SystemsOSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & Systems
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
Basic Intentional Injuries Health Education
Basic Intentional Injuries Health EducationBasic Intentional Injuries Health Education
Basic Intentional Injuries Health Education
 
How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.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