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)

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

Recently uploaded (20)

PPTX
What’s under the hood: Parsing standardized learning content for AI
PPTX
BSCE 2 NIGHT (CHAPTER 2) just cases.pptx
PDF
0520_Scheme_of_Work_(for_examination_from_2021).pdf
PDF
PUBH1000 - Module 6: Global Health Tute Slides
PDF
fundamentals-of-heat-and-mass-transfer-6th-edition_incropera.pdf
PDF
semiconductor packaging in vlsi design fab
PDF
Journal of Dental Science - UDMY (2020).pdf
PDF
Hospital Case Study .architecture design
PPTX
UNIT_2-__LIPIDS[1].pptx.................
PDF
M.Tech in Aerospace Engineering | BIT Mesra
PDF
Myanmar Dental Journal, The Journal of the Myanmar Dental Association (2015).pdf
PDF
1.Salivary gland disease.pdf 3.Bleeding and Clotting Disorders.pdf important
PDF
Everyday Spelling and Grammar by Kathi Wyldeck
PDF
Literature_Review_methods_ BRACU_MKT426 course material
PPTX
Thinking Routines and Learning Engagements.pptx
PDF
Controlled Drug Delivery System-NDDS UNIT-1 B.Pharm 7th sem
PDF
LIFE & LIVING TRILOGY- PART (1) WHO ARE WE.pdf
PDF
THE CHILD AND ADOLESCENT LEARNERS & LEARNING PRINCIPLES
PPTX
ACFE CERTIFICATION TRAINING ON LAW.pptx
PPTX
CAPACITY BUILDING PROGRAMME IN ADOLESCENT EDUCATION
What’s under the hood: Parsing standardized learning content for AI
BSCE 2 NIGHT (CHAPTER 2) just cases.pptx
0520_Scheme_of_Work_(for_examination_from_2021).pdf
PUBH1000 - Module 6: Global Health Tute Slides
fundamentals-of-heat-and-mass-transfer-6th-edition_incropera.pdf
semiconductor packaging in vlsi design fab
Journal of Dental Science - UDMY (2020).pdf
Hospital Case Study .architecture design
UNIT_2-__LIPIDS[1].pptx.................
M.Tech in Aerospace Engineering | BIT Mesra
Myanmar Dental Journal, The Journal of the Myanmar Dental Association (2015).pdf
1.Salivary gland disease.pdf 3.Bleeding and Clotting Disorders.pdf important
Everyday Spelling and Grammar by Kathi Wyldeck
Literature_Review_methods_ BRACU_MKT426 course material
Thinking Routines and Learning Engagements.pptx
Controlled Drug Delivery System-NDDS UNIT-1 B.Pharm 7th sem
LIFE & LIVING TRILOGY- PART (1) WHO ARE WE.pdf
THE CHILD AND ADOLESCENT LEARNERS & LEARNING PRINCIPLES
ACFE CERTIFICATION TRAINING ON LAW.pptx
CAPACITY BUILDING PROGRAMME IN ADOLESCENT EDUCATION

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