SlideShare a Scribd company logo
Let's think to the application  domain , then  model  it in simple Java Classes, write the  business logic  and Roma  will make all the rest “ ” <Meta> Framework www.RomaFramework.org Luca Garulli CTO AssetData [email_address]
What should I use? J2EE Microsoft .NET 2.0 Ruby On Rails Struts WebWorks Spring MVC Apache Cocoon Apache Velocity Apache Tapestry RIFE Trails JSF NextApp Echo2 Swing Yet another… SWT JDO JDBC Hibernate iBatis Castor OS Workflow Enhydra Shark BPEL engine Apache OJB EJB3
Architecture atom I: behaviour aspects Domain, Model  and Business Logic Persistence (repository) Session Monitoring Workflow Authentication I18N (Internationalization) View Reporting Aspects  describe a  behaviour  and they are implemented as  Java interfaces Scheduler Scheduler
Architecture atom II: modules Domain, Model  and Business Logic Persistence (repository) Session Monitoring Workflow Authentication I18N View ??? Others Java Resource Bundle Echo2 JMX Tevere JSP JDO 2.0 JPOX 1.2 Roma architecture is totally modular  Modules  can implement  Behavior  Aspects Users Module, Custom Mock Echo2 Scheduler Open Symphony Quartz Reporting Jasper Reports
Roma: main concepts demo/ roma-project.xml build.xml src/ it/javaday/roma/demo test/ WebContent/ WEB-INF/ classes/ lib/ ... Write the  model behavior  +  business logic Start to write domain classes under package it.javaday.roma.demo.domain Generate empty project scaffolding Run!
View: automatic rendering main:COLUMN default:GRID(4) notes:COLUMN actions:ROW Ok Cancel Print default  area uses a GRID to place the POJO fields. You can choice how much columns to use. Order is given by Annotation or XML Annotation actions  is the default area for actions. It's defined as a ROW You can specify  custom areas  where to place fields and actions. There is no limit to the number of areas you can create Name City Notes Web Surname
@ViewClass(orderFields=&quot;name surname city web&quot;, orderActions=&quot;ok cancel print&quot;) public class Customer{ private String name; private String surname; private String city; private String web; private String notes; public void ok(){} public void cancel(){} public void print(){} } View: POJO mapping Roma controller binds the POJO directly to the form generated. The  relationship is 1-1 : if you change the content of a field in the browser, it will be updated in you Java object and viceversa. When you push any button, the action associated will be executed. Fast to write, easy to debug, simple to handle!
Behavior aspect orchestration login() display Start user session display Persistence (repository) I18N (Internationalization) View DB Authentication Session Flow
MVC Controller: 100% POJO based Invoking “ OK ” Action Bind changed form fields to the POJO Call  ok () method against the POJO Validate POJO's rules +  validate () method if any Follow the flow declared using Java5 Annotation
Summary 16 available modules 9 committers, join us! 8.600+ downloads www.romaframework.org

More Related Content

PPTX
SLF4J Explained........
Sunitha Satyadas
 
ODP
Monorail Introduction
Andrea Magnorsky
 
PPTX
Services Factory Provider Value Constant - AngularJS
Sumanth krishna
 
PPT
Linq
tnkreddy
 
PPT
SynapseIndia dotnet development ajax client library
Synapseindiappsdevelopment
 
ODP
Spray - Build RESTfull services in scala
Sandeep Purohit
 
PPT
RomaFramework Tutorial Basics
Luca Garulli
 
PPT
No sql matters_2012_keynote
Luca Garulli
 
SLF4J Explained........
Sunitha Satyadas
 
Monorail Introduction
Andrea Magnorsky
 
Services Factory Provider Value Constant - AngularJS
Sumanth krishna
 
Linq
tnkreddy
 
SynapseIndia dotnet development ajax client library
Synapseindiappsdevelopment
 
Spray - Build RESTfull services in scala
Sandeep Purohit
 
RomaFramework Tutorial Basics
Luca Garulli
 
No sql matters_2012_keynote
Luca Garulli
 

Viewers also liked (9)

PPT
Why relationships are cool but join sucks - Big Data & Graphs in Rome
Luca Garulli
 
PDF
OrientDB the database for the web 1.1
Luca Garulli
 
PPT
Internet Apps powered by NoSQL and JavaScript
Luca Garulli
 
PPT
Why relationships are cool but "join" sucks
Luca Garulli
 
PDF
OrientDB distributed architecture 1.1
Luca Garulli
 
PPT
Design your application using Persistent Graphs and OrientDB
Luca Garulli
 
PDF
Polyglot Persistence vs Multi-Model Databases
Luca Garulli
 
PDF
OrientDB introduction - NoSQL
Luca Garulli
 
ODP
OrientDB for real & Web App development
Luca Garulli
 
Why relationships are cool but join sucks - Big Data & Graphs in Rome
Luca Garulli
 
OrientDB the database for the web 1.1
Luca Garulli
 
Internet Apps powered by NoSQL and JavaScript
Luca Garulli
 
Why relationships are cool but "join" sucks
Luca Garulli
 
OrientDB distributed architecture 1.1
Luca Garulli
 
Design your application using Persistent Graphs and OrientDB
Luca Garulli
 
Polyglot Persistence vs Multi-Model Databases
Luca Garulli
 
OrientDB introduction - NoSQL
Luca Garulli
 
OrientDB for real & Web App development
Luca Garulli
 
Ad

Similar to Roma Meta Framework Concepts @JavaDay Rome 2007 (20)

PPTX
Ria Mvc
JIE GAO
 
PDF
Roma introduction and concepts
Luca Garulli
 
PDF
Domain Driven Design Javaday Roma2007
Antonio Terreno
 
PDF
Java Framework comparison
SIB Visions GmbH
 
PDF
Java__J2EE_Gaurav_Singh
Gaurav Singh
 
PPT
The spring framework
Manav Prasad
 
PPTX
Modern Java Web Development
zenyk
 
PPT
Groovy And Grails
William Grosso
 
PPT
GROOVY ON GRAILS
ziyaaskerov
 
PDF
How To Maintain Million Lines Of Open Source Code And Remain Sane or The Stor...
Radovan Semancik
 
PPTX
JEE session 1
Smita B Kumar
 
DOCX
Ayan Chakraborty_J2EE_MidLevel_7
Ayan Chakraborty
 
PDF
Design & Deploy a data-driven Web API in 2 hours
Restlet
 
PPT
Ruby On Rails
iradarji
 
PPT
SUE AGILE Framework (English)
Sabino Labarile
 
PPTX
Resthub lyonjug
Sébastien Deleuze
 
DOCX
Shyam Patil - Resume
Shyam Patil
 
PPTX
Grails
ziyaaskerov
 
PPTX
Grails
ziyaaskerov
 
PPTX
Groovy on Grails by Ziya Askerov
Vuqar Suleymanov
 
Ria Mvc
JIE GAO
 
Roma introduction and concepts
Luca Garulli
 
Domain Driven Design Javaday Roma2007
Antonio Terreno
 
Java Framework comparison
SIB Visions GmbH
 
Java__J2EE_Gaurav_Singh
Gaurav Singh
 
The spring framework
Manav Prasad
 
Modern Java Web Development
zenyk
 
Groovy And Grails
William Grosso
 
GROOVY ON GRAILS
ziyaaskerov
 
How To Maintain Million Lines Of Open Source Code And Remain Sane or The Stor...
Radovan Semancik
 
JEE session 1
Smita B Kumar
 
Ayan Chakraborty_J2EE_MidLevel_7
Ayan Chakraborty
 
Design & Deploy a data-driven Web API in 2 hours
Restlet
 
Ruby On Rails
iradarji
 
SUE AGILE Framework (English)
Sabino Labarile
 
Resthub lyonjug
Sébastien Deleuze
 
Shyam Patil - Resume
Shyam Patil
 
Grails
ziyaaskerov
 
Grails
ziyaaskerov
 
Groovy on Grails by Ziya Askerov
Vuqar Suleymanov
 
Ad

More from Luca Garulli (9)

PDF
Scale Out Your Graph Across Servers and Clouds with OrientDB
Luca Garulli
 
PDF
How Graph Databases started the Multi Model revolution
Luca Garulli
 
PDF
OrientDB and Hazelcast
Luca Garulli
 
PPT
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...
Luca Garulli
 
PPT
Switching from Relational 2 Graph - CloudConf.it
Luca Garulli
 
PPT
Switching from Relational to the Graph model v1.3
Luca Garulli
 
PPT
Switching from relational to the graph model
Luca Garulli
 
PPT
Switching from the Relational to the Graph model
Luca Garulli
 
PDF
OrientDB document or graph? Select the right model (old presentation)
Luca Garulli
 
Scale Out Your Graph Across Servers and Clouds with OrientDB
Luca Garulli
 
How Graph Databases started the Multi Model revolution
Luca Garulli
 
OrientDB and Hazelcast
Luca Garulli
 
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...
Luca Garulli
 
Switching from Relational 2 Graph - CloudConf.it
Luca Garulli
 
Switching from Relational to the Graph model v1.3
Luca Garulli
 
Switching from relational to the graph model
Luca Garulli
 
Switching from the Relational to the Graph model
Luca Garulli
 
OrientDB document or graph? Select the right model (old presentation)
Luca Garulli
 

Recently uploaded (20)

PDF
bain-temasek-sea-green-economy-2022-report-investing-behind-the-new-realities...
YudiSaputra43
 
PPTX
Integrative Negotiation: Expanding the Pie
badranomar1990
 
PDF
NewBase 24 July 2025 Energy News issue - 1805 by Khaled Al Awadi._compressed...
Khaled Al Awadi
 
PPTX
Struggling to Land a Social Media Marketing Job Here’s How to Navigate the In...
RahulSharma280537
 
PPTX
Certificate of Incorporation, Prospectus, Certificate of Commencement of Busi...
Keerthana Chinnathambi
 
PDF
Alan Stalcup - Principal Of GVA Real Estate Investments
Alan Stalcup
 
PDF
MBA-I-Year-Session-2024-20hzuxutiytidydy
cminati49
 
PPTX
Chapter 3 Distributive Negotiation: Claiming Value
badranomar1990
 
PDF
Top 10 Corporates in India Investing in Sustainable Energy.pdf
Essar Group
 
DOCX
unit 1 BC.docx - INTRODUCTION TO BUSINESS COMMUICATION
MANJU N
 
PDF
Followers to Fees - Social media for Speakers
Corey Perlman, Social Media Speaker and Consultant
 
PDF
A Complete Guide to Data Migration Services for Modern Businesses
Aurnex
 
PPTX
lesson 06 Mang- Ruklani Wickramasinghe.pptx
dinalisanjala002
 
PPTX
Brain Based Enterprises - Harmonising Man, Woman and Machine
Peter Cook
 
PPTX
The Ultimate Guide to Customer Journey Mapping
RUPAL AGARWAL
 
PDF
Retinal Disorder Treatment Market 2030: The Impact of Advanced Diagnostics an...
Kumar Satyam
 
PDF
Using Innovative Solar Manufacturing to Drive India's Renewable Energy Revolu...
Insolation Energy
 
PPTX
Memorandum and articles of association explained.pptx
Keerthana Chinnathambi
 
PDF
2025 07 29 The Future, Backwards Agile 2025.pdf
Daniel Walsh
 
PPTX
Appreciations - July 25.pptxdddddddddddss
anushavnayak
 
bain-temasek-sea-green-economy-2022-report-investing-behind-the-new-realities...
YudiSaputra43
 
Integrative Negotiation: Expanding the Pie
badranomar1990
 
NewBase 24 July 2025 Energy News issue - 1805 by Khaled Al Awadi._compressed...
Khaled Al Awadi
 
Struggling to Land a Social Media Marketing Job Here’s How to Navigate the In...
RahulSharma280537
 
Certificate of Incorporation, Prospectus, Certificate of Commencement of Busi...
Keerthana Chinnathambi
 
Alan Stalcup - Principal Of GVA Real Estate Investments
Alan Stalcup
 
MBA-I-Year-Session-2024-20hzuxutiytidydy
cminati49
 
Chapter 3 Distributive Negotiation: Claiming Value
badranomar1990
 
Top 10 Corporates in India Investing in Sustainable Energy.pdf
Essar Group
 
unit 1 BC.docx - INTRODUCTION TO BUSINESS COMMUICATION
MANJU N
 
Followers to Fees - Social media for Speakers
Corey Perlman, Social Media Speaker and Consultant
 
A Complete Guide to Data Migration Services for Modern Businesses
Aurnex
 
lesson 06 Mang- Ruklani Wickramasinghe.pptx
dinalisanjala002
 
Brain Based Enterprises - Harmonising Man, Woman and Machine
Peter Cook
 
The Ultimate Guide to Customer Journey Mapping
RUPAL AGARWAL
 
Retinal Disorder Treatment Market 2030: The Impact of Advanced Diagnostics an...
Kumar Satyam
 
Using Innovative Solar Manufacturing to Drive India's Renewable Energy Revolu...
Insolation Energy
 
Memorandum and articles of association explained.pptx
Keerthana Chinnathambi
 
2025 07 29 The Future, Backwards Agile 2025.pdf
Daniel Walsh
 
Appreciations - July 25.pptxdddddddddddss
anushavnayak
 

Roma Meta Framework Concepts @JavaDay Rome 2007

  • 1. Let's think to the application domain , then model it in simple Java Classes, write the business logic and Roma will make all the rest “ ” <Meta> Framework www.RomaFramework.org Luca Garulli CTO AssetData [email_address]
  • 2. What should I use? J2EE Microsoft .NET 2.0 Ruby On Rails Struts WebWorks Spring MVC Apache Cocoon Apache Velocity Apache Tapestry RIFE Trails JSF NextApp Echo2 Swing Yet another… SWT JDO JDBC Hibernate iBatis Castor OS Workflow Enhydra Shark BPEL engine Apache OJB EJB3
  • 3. Architecture atom I: behaviour aspects Domain, Model and Business Logic Persistence (repository) Session Monitoring Workflow Authentication I18N (Internationalization) View Reporting Aspects describe a behaviour and they are implemented as Java interfaces Scheduler Scheduler
  • 4. Architecture atom II: modules Domain, Model and Business Logic Persistence (repository) Session Monitoring Workflow Authentication I18N View ??? Others Java Resource Bundle Echo2 JMX Tevere JSP JDO 2.0 JPOX 1.2 Roma architecture is totally modular Modules can implement Behavior Aspects Users Module, Custom Mock Echo2 Scheduler Open Symphony Quartz Reporting Jasper Reports
  • 5. Roma: main concepts demo/ roma-project.xml build.xml src/ it/javaday/roma/demo test/ WebContent/ WEB-INF/ classes/ lib/ ... Write the model behavior + business logic Start to write domain classes under package it.javaday.roma.demo.domain Generate empty project scaffolding Run!
  • 6. View: automatic rendering main:COLUMN default:GRID(4) notes:COLUMN actions:ROW Ok Cancel Print default area uses a GRID to place the POJO fields. You can choice how much columns to use. Order is given by Annotation or XML Annotation actions is the default area for actions. It's defined as a ROW You can specify custom areas where to place fields and actions. There is no limit to the number of areas you can create Name City Notes Web Surname
  • 7. @ViewClass(orderFields=&quot;name surname city web&quot;, orderActions=&quot;ok cancel print&quot;) public class Customer{ private String name; private String surname; private String city; private String web; private String notes; public void ok(){} public void cancel(){} public void print(){} } View: POJO mapping Roma controller binds the POJO directly to the form generated. The relationship is 1-1 : if you change the content of a field in the browser, it will be updated in you Java object and viceversa. When you push any button, the action associated will be executed. Fast to write, easy to debug, simple to handle!
  • 8. Behavior aspect orchestration login() display Start user session display Persistence (repository) I18N (Internationalization) View DB Authentication Session Flow
  • 9. MVC Controller: 100% POJO based Invoking “ OK ” Action Bind changed form fields to the POJO Call ok () method against the POJO Validate POJO's rules + validate () method if any Follow the flow declared using Java5 Annotation
  • 10. Summary 16 available modules 9 committers, join us! 8.600+ downloads www.romaframework.org