29
1 Spring Roo and the Cloud Shekhar Gulati Xebia

Indic threads java10-spring-roo-and-the-cloud

Embed Size (px)

Citation preview

Page 1: Indic threads java10-spring-roo-and-the-cloud

1

Spring Roo and the Cloud

Shekhar GulatiXebia

Page 2: Indic threads java10-spring-roo-and-the-cloud

2

Hi, my name is...Shekhar Gulati

• Work for Xebia India

• Spring enthusiast (these days )

• Blogger and Writer(JavaLobby and Developer.com)

[email protected]

• Twitter : shekhargulati

Page 3: Indic threads java10-spring-roo-and-the-cloud

3

Agenda

• Introducing Roo

• Demo for Unbelievers

• Under the Hood

• Capability areas (lots of demos)

• Cloud Portability

• Removing Roo

• Conclusion and Q&A

Page 4: Indic threads java10-spring-roo-and-the-cloud

4

Spring’s Mission

#J2EE or JavaEE should be easier to use

Page 5: Indic threads java10-spring-roo-and-the-cloud

5

Mission Accomplished !

Now What?

Page 6: Indic threads java10-spring-roo-and-the-cloud

6

Spring Roo

Development Tool

Page 7: Indic threads java10-spring-roo-and-the-cloud

7

Spring Roo Mission

Roo's mission is to

fundamentally and sustainably

improve Java developer

productivity without

compromising engineering

integrity or flexibility

Page 8: Indic threads java10-spring-roo-and-the-cloud

8

What is Roo?

• Rapid Development Tool for Spring

• Development time only• No Runtime

• No Negative Performance Impact

• No Memory Overhead

• No Roo Deployment

• Uses Best of Breed• Spring 3, Spring Security, Spring MVC / Web Flow

• Junit, Log4J, Maven, AspectJ, Eclipse

Page 9: Indic threads java10-spring-roo-and-the-cloud

9

Why should we use Roo?

• Easy Configuration

• Great Learning Tool

• Spring Best Practices

• Restful Web Services, JPA persistence, Security, Integration tests, Selenium test cases, JMS

• Standards

• Bean validation, Dependency Injection

• Powerful Features

• GWT, SOLR, DBRE, NoSQL, Spring Integration (coming soon)

Page 10: Indic threads java10-spring-roo-and-the-cloud

10

Demo for Unbelievers

Demo # 1 – A Simple Web Application

Page 11: Indic threads java10-spring-roo-and-the-cloud

11

Features Covered

• Project management

• Entity support

• Field Management

• Persistence

• JUnit testing

• Spring MVC Controllers, Selenium testing

• Logging

Page 12: Indic threads java10-spring-roo-and-the-cloud

12

Under the Hood

• Implementation Overview

• Code Generation

Page 13: Indic threads java10-spring-roo-and-the-cloud

13

Implementation Overview

Page 14: Indic threads java10-spring-roo-and-the-cloud

14

Code Generation Approach

• Passive Generation

• Active Generation

• Roo is a Hybrid code generation

Page 15: Indic threads java10-spring-roo-and-the-cloud

15

Active Generation

Page 16: Indic threads java10-spring-roo-and-the-cloud

16

Demo # 2 Let’s Secure the app

Page 17: Indic threads java10-spring-roo-and-the-cloud

17

Demo # 3 Speaker receive an Email

Page 18: Indic threads java10-spring-roo-and-the-cloud

18

Demo # 4 IllegalAccess Notification

Page 19: Indic threads java10-spring-roo-and-the-cloud

19

Demo # 5 Application speak Dutch

Page 20: Indic threads java10-spring-roo-and-the-cloud

20

Demo # 6 How social is your app?

Page 21: Indic threads java10-spring-roo-and-the-cloud

21

I have an existing Database schema

Page 22: Indic threads java10-spring-roo-and-the-cloud

22

Cloud Portability

Page 23: Indic threads java10-spring-roo-and-the-cloud

23

Changes to be made

• persistence setup

• gwt set up

• add aspects for key generation

• do mvn gwt:compile gae:deploy

Page 24: Indic threads java10-spring-roo-and-the-cloud

24

Issues on Google App Engine

• Spring MVC app does not work

• Relationships does not work

• Integration tests does not work (ROO-1711)

Page 25: Indic threads java10-spring-roo-and-the-cloud

25

Removing Roo from app

• Use AJDT's "push-in refactoring" feature

• This moves the Roo .aj content into normal .java files

• Remove Roo's annotation JAR from your POM

• dependency remove command

• Remove @Roo* annotations from .java files

• Regular expression (\n.*Roo.*\n) find/replace in eclipse

Page 26: Indic threads java10-spring-roo-and-the-cloud

26

Features Not shown

• JSON

• SOLR Support (Search)

• Spring Web Flow

• Add-on creation

• Internationalization addon

• Simple addon

• Advanced addon

Page 27: Indic threads java10-spring-roo-and-the-cloud

27

Future Sneak Peak

• Spring Integration support

• NoSQL support

• ne04j

• redis

Page 28: Indic threads java10-spring-roo-and-the-cloud

28

Resources & Links

• Home http://www.springsource.org/roo/

• Forum http://forum.springsource.org

• Issues http://jira.springframework.org/browse/ROO

• Twitter @SpringRoo

• Twitter #roo hash key

• https://github.com/shekhargulati/spring-roo-playground

Page 29: Indic threads java10-spring-roo-and-the-cloud

29

Q & A