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........
ODP
Monorail Introduction
PPTX
Services Factory Provider Value Constant - AngularJS
PPT
Linq
PPT
SynapseIndia dotnet development ajax client library
ODP
Spray - Build RESTfull services in scala
PPT
RomaFramework Tutorial Basics
PPT
No sql matters_2012_keynote
SLF4J Explained........
Monorail Introduction
Services Factory Provider Value Constant - AngularJS
Linq
SynapseIndia dotnet development ajax client library
Spray - Build RESTfull services in scala
RomaFramework Tutorial Basics
No sql matters_2012_keynote

Viewers also liked (9)

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

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

PPTX
Ria Mvc
PDF
Roma introduction and concepts
PDF
Domain Driven Design Javaday Roma2007
PDF
Java Framework comparison
PDF
Java__J2EE_Gaurav_Singh
PPT
The spring framework
PPTX
Modern Java Web Development
PPT
Groovy And Grails
PPT
GROOVY ON GRAILS
PDF
How To Maintain Million Lines Of Open Source Code And Remain Sane or The Stor...
PPTX
JEE session 1
DOCX
Ayan Chakraborty_J2EE_MidLevel_7
PDF
Design & Deploy a data-driven Web API in 2 hours
PPT
Ruby On Rails
PPT
SUE AGILE Framework (English)
PPTX
Resthub lyonjug
DOCX
Shyam Patil - Resume
PPTX
Grails
PPTX
Grails
PPTX
Groovy on Grails by Ziya Askerov
Ria Mvc
Roma introduction and concepts
Domain Driven Design Javaday Roma2007
Java Framework comparison
Java__J2EE_Gaurav_Singh
The spring framework
Modern Java Web Development
Groovy And Grails
GROOVY ON GRAILS
How To Maintain Million Lines Of Open Source Code And Remain Sane or The Stor...
JEE session 1
Ayan Chakraborty_J2EE_MidLevel_7
Design & Deploy a data-driven Web API in 2 hours
Ruby On Rails
SUE AGILE Framework (English)
Resthub lyonjug
Shyam Patil - Resume
Grails
Grails
Groovy on Grails by Ziya Askerov
Ad

More from Luca Garulli (9)

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

Recently uploaded (20)

DOCX
unit 1 COST ACCOUNTING AND COST SHEET
PPTX
ICG2025_ICG 6th steering committee 30-8-24.pptx
PPTX
New Microsoft PowerPoint Presentation - Copy.pptx
PPTX
Belch_12e_PPT_Ch18_Accessible_university.pptx
PDF
SIMNET Inc – 2023’s Most Trusted IT Services & Solution Provider
PDF
Solara Labs: Empowering Health through Innovative Nutraceutical Solutions
PDF
Chapter 5_Foreign Exchange Market in .pdf
PDF
Nidhal Samdaie CV - International Business Consultant
PDF
DOC-20250806-WA0002._20250806_112011_0000.pdf
PDF
pdfcoffee.com-opt-b1plus-sb-answers.pdfvi
PPTX
5 Stages of group development guide.pptx
PDF
Stem Cell Market Report | Trends, Growth & Forecast 2025-2034
PPTX
Lecture (1)-Introduction.pptx business communication
PDF
20250805_A. Stotz All Weather Strategy - Performance review July 2025.pdf
PPTX
Amazon (Business Studies) management studies
PDF
Ôn tập tiếng anh trong kinh doanh nâng cao
PDF
Roadmap Map-digital Banking feature MB,IB,AB
PDF
Katrina Stoneking: Shaking Up the Alcohol Beverage Industry
PPTX
The Marketing Journey - Tracey Phillips - Marketing Matters 7-2025.pptx
PDF
Outsourced Audit & Assurance in USA Why Globus Finanza is Your Trusted Choice
unit 1 COST ACCOUNTING AND COST SHEET
ICG2025_ICG 6th steering committee 30-8-24.pptx
New Microsoft PowerPoint Presentation - Copy.pptx
Belch_12e_PPT_Ch18_Accessible_university.pptx
SIMNET Inc – 2023’s Most Trusted IT Services & Solution Provider
Solara Labs: Empowering Health through Innovative Nutraceutical Solutions
Chapter 5_Foreign Exchange Market in .pdf
Nidhal Samdaie CV - International Business Consultant
DOC-20250806-WA0002._20250806_112011_0000.pdf
pdfcoffee.com-opt-b1plus-sb-answers.pdfvi
5 Stages of group development guide.pptx
Stem Cell Market Report | Trends, Growth & Forecast 2025-2034
Lecture (1)-Introduction.pptx business communication
20250805_A. Stotz All Weather Strategy - Performance review July 2025.pdf
Amazon (Business Studies) management studies
Ôn tập tiếng anh trong kinh doanh nâng cao
Roadmap Map-digital Banking feature MB,IB,AB
Katrina Stoneking: Shaking Up the Alcohol Beverage Industry
The Marketing Journey - Tracey Phillips - Marketing Matters 7-2025.pptx
Outsourced Audit & Assurance in USA Why Globus Finanza is Your Trusted Choice

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