Seam. Pete Muir JBoss, a Division of Red Hat.

Similar documents
Seam. Pete Muir JBoss, a Division of Red Hat.

Introduction to Seam. Pete Muir. JBoss, a division of Red Hat

Seam 3. Pete Muir JBoss, a Division of Red Hat

Improve and Expand JavaServer Faces Technology with JBoss Seam

Seam & Web Beans. Pete Muir JBoss, a division of Red Hat.

JBoss Seam Integration with intent to use. Dan Allen Software Consultant Author, Seam in Action

JBoss Seam. Israel JBoss User Group Session 05 / By : Yanai Franchi, Chief Architect Tikal

Maturing your application s security with Seam Security. Dan Allen Senior Software Engineer JBoss, by Red Hat

What s new in Spring Web Flow 2.0

Maturing your security with Seam. Dan Allen Senior Software Engineer JBoss, a division of Red Hat

Refactoring to Seam. NetBeans. Brian Leonard Sun Microsystems, Inc. 14o

Java EE 6: Develop Web Applications with JSF

Migrating traditional Java EE applications to mobile

JVA-563. Developing RESTful Services in Java

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics

object/relational persistence What is persistence? 5

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes

JSF. What is JSF (Java Server Faces)?

JVA-163. Enterprise JavaBeans

foreword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration

E Eclipse debugging a JSF application, 25 downloading, 2 installing, 2 launching JBoss in, 3

Metawidget UI Generation done right

JSR-299 (CDI), Weld and the Future of Seam. Dan Allen Principal Software Engineer JBoss by Red Hat

Java EE 6 - Update Harpreet Singh GlassFish Portfolio Product Manager

INTRODUCTION TO COMPONENT DESIGN IN JAVA EE COMPONENT VS. OBJECT, JAVA EE JAVA EE DEMO. Tomas Cerny, Software Engineering, FEE, CTU in Prague,

Shale and the Java Persistence Architecture. Craig McClanahan Gary Van Matre. ApacheCon US 2006 Austin, TX

Seam Tools Tutorial. Version: Final-SNAPSHOT

Hands-on Development of Web Applications with Java EE 6

The Next Generation. Prabhat Jha Principal Engineer

Session 24. Introduction to Java Server Faces (JSF) Robert Kelly, Reading.

JBoss Seam and beyond

Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand)

CMP 436/774. Introduction to Java Enterprise Edition. Java Enterprise Edition

@jbossdeveloper. explained

Web Application Development Using Spring, Hibernate and JPA

Introduction to JBoss Seam

Architectural patterns

}w!"#$%&'()+,-./012345<ya

Struts: Struts 1.x. Introduction. Enterprise Application

A Red Hat Perspective

"Web Age Speaks!" Webinar Series

Leverage Rational Application Developer v8 to develop Java EE6 application and test with WebSphere Application Server v8

MetaMatrix Enterprise Data Services Platform

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline

Contents at a Glance

Developing Applications with Java EE 6 on WebLogic Server 12c

What is it? What does it do?

Java- EE Web Application Development with Enterprise JavaBeans and Web Services

Web Application Development Using Spring, Hibernate and JPA

Mastering JavaServer Faces

Red Hat Developer Studio 12.0

Contents. 1. JSF overview. 2. JSF example

JAVA SYLLABUS FOR 6 MONTHS

com Spring + Spring-MVC + Spring-Boot + Design Pattern + XML + JMS Hibernate + Struts + Web Services = 8000/-

Portlet Application Development Webinar exercise using JSF and JPA with Rational Application Developer

<Insert Picture Here> Accelerated Java EE Development: The Oracle Way

Java J Course Outline

More reading: A series about real world projects that use JavaServer Faces:

Java SE7 Fundamentals

/ / JAVA TRAINING

GAVIN KING RED HAT CEYLON SWARM

Red Hat JBoss Enterprise Application Platform 7.2

Web Application Development Using Spring, Hibernate and JPA

Seam Remoting. An AJAX framework for JBoss Seam. Shane Bryzak

Enterprise JavaBeans, Version 3 (EJB3) Programming

JBoss Seam. Michael Yuan, PhD Ezee Inc.

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

JBoss DNA. Randall Hauch Principal Software Engineer JBoss Data Services

Eclipse Java Ejb 3.0 Tutorial For Beginners With Examples Pdf

Soap Based Web Services In Java Tutorial Eclipse Jboss

Java Training Center, Noida - Java Expert Program

Spring-beans-2.5.xsd' Must Have Even Number Of Uri's

Oracle Fusion Middleware 11g: Build Applications with ADF I

Red Hat JBoss Developer Studio 11.1

--Microsoft-- --Windows Phone--

Best Practices for JSF Portlet Migration and Development

Very short introduction to JavaServer Faces

Red Hat Developer Studio 12.0

Java EE 6 New features in practice Part 2

open source community experience distilled

New Release for Rapid Application Development

CO Java EE 7: Back-End Server Application Development

Oracle Developer Day

Oracle Developer Day

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

Spring Web Flow: Enabling High Level, Low Effort Web Conversations

8 Workspaces and Concurrent Conversations

JSF Navigation.!! DevelopIntelligence

<Insert Picture Here> The Oracle Fusion Development Platform: Oracle JDeveloper and Oracle ADF Overview

Oracle Application Development Framework Overview

Oracle Fusion Middleware 11g: Build Applications with ADF Accel

1 Software Architecture

Peter Norrhall. Callista Enterprise AB.

JBoss World 2009 Aaron Darcy

At present we use several collaboration (web) tools, like SuperB website Wiki SVN Document management system etc.

<Insert Picture Here> Click to edit Master title style

Mischa Kölliker. JavaLounge Zürich, 23. Juni 2009

SOFTWARE DEVELOPMENT SERVICES WEB APPLICATION PORTAL (WAP) TRAINING. Intuit 2007

icp Overview icp V3.5 November, 2009

Ajax and JSF: Natural Synergy

Transcription:

Seam Pete Muir JBoss, a Division of Red Hat http://in.relation.to/bloggers/pete pete.muir@jboss.org

Road Map What is Seam? The future Why should I care about atomic conversations? How do I quickly build an application with Seam? What tools are available?

Application Stack :.&8!0&/1%"*"23 &"%'($%% )*+,$%%!"#$% 4&5!6,7#&8",9!"#!$%&'"()%*!"#$"%&%'!(")&*!"#$ -.,/$ 0,/$1"#$ 0$,"*'23 +&,-.-'&%/&!0&/1%"*"23 4+,"5$(2 62,777

Where can I run my app? WebSphere Web Logic Tomcat Glassfish JBoss Application Server JBoss Enterprise Application Platform JBoss SOA Platform

Seam is contextual Stateful store objects for as long as you need them Seam manages all interactions with the context dependencies are injected and updated every time a component is accessed!"#"$%$&& '($)" *#+$,-)($.&#"/-)!$&&/-) 01&/)$&&!*.-2$&& 344%/2#"/-)

The unified component model @Name("discEditor") @Scope(CONVERSATION) public class DiscEditor { @In EntityManager entitymanager; Inject the EntityManager Seam will store the component in the conversation context @In Session mailsession; } @In @Out Item disc; @In(scope=SESSION) User user; // Use the components in some way ;-) Specify the context to inject from Alias the item from the context, and update the context if the object changes 8 Inject a JavaMail session

Road Map What is Seam? The future Why should I care about atomic conversations? How do I quickly build an application with Seam? What tools are available?

Why do I want an atomic conversation? Hereʼs a common scenario: spans multiple pages A user has a task to complete which: should be able to click cancel or back at any time, no changes made until the user is finished should be able to do the same task in multiple windows View a hotel Enter your booking Review and confirm booking

What does Seam provide? A conversation scope shorter than the session, longer than a request demarcated by the application developer a conversation per window/tab Conversation Session Application Conversation Session Request Request

What does Seam provide? A conversation scoped persistence context keeps entities attached for the entirety of the userʼs task guarantees object equality allows lazy loading An atomic conversation needs to only flush changes at particular points Only flush the persistence context when explicitly instructed to

What does Seam provide? An atomic conversation needs to only flush changes at particular points Need to use a manual flush mode from Hibernate @Begin(flushMode=MANUAL) public void editdisc() { // Load the item to edit } @End public void savedisc() { entitymanager.flush(); }

How do I manage the system transaction then? Seam manages the system transaction for you A read-write transaction A read only transaction for rendering the page (slightly better than Open Session in View) CONVERSATION EVENT EVENT RESTORE VIEW APPLY REQUEST VALUES PROCESS VALIDATIONS UPDATE MODEL INVOKE APPLICATION RENDER RESPONSE PERSISTENCE CONTEXT FLUSH SYSTEM TRANSACTION

Road Map What is Seam? The future Why should I care about atomic conversations? How do I quickly build an application with Seam? What tools are available?

Application Framework UI orientated controller components EntityHome for CRUD Can define in XML or Java for custom behaviour <fwk:entity-home entity-class="com.acme.disc" name="dischome"/> <s:decorate template="/edit.xhtml"> <h:inputtext value="#{disc.name}" required="true" /> </s:decorate> <h:commandbutton action="#{dischome.update}" value="save" /> <h:commandbutton action="#{dischome.remove}" value="delete" /> Seam provides JSF controls for easy decoration of fields Bind directly to the entities, no need for DTOs

Application Framework EntityQuery for search <fwk:entity-query name="discs" ejbql="select d from Disc d" order="d.name" max-results="5"> <fwk:restrictions> <value>lower(d.name) like concat(#{exampledisc.name}, '%'))</value> </fwk:restrictions> </fwk:entity-query> Basic queries can be specified in XML <component name="exampledisc" class="com.acme.artist" scope="session" /> A prototype, used to bind query parameters between UI and query

Application Framework EntityQuery for search Search criteria <h:form> Filter by name: <h:inputtext value="#{exampledisc.name}"> <a:support rerender="artists" event="onkeyup" /> </h:inputtext> </h:form> Output the results <h:table value="#{discs.datamodel}" var="d" id="discs"> <h:column> <s:link action="disc" value="#{disc.name}"> <f:param name="discid" value="#{disc.id}" /> </s:link> </h:column> </h:table>

<h:inputtext value="#{disc.name}" required="true"> <s:validate /> </h:inputtext> Validation Need to report validation errors back to the user on the correct field BUT normally need to enforce same constraints at the persistence layer and the database @Entity public class Item { @Id @GeneratedValue Long id; } @Length(min=3, max=1000, message="must be between 3 & 1000 chars") String description;

Road Map What is Seam? The future Why should I care about atomic conversations? How do I quickly build an application with Seam? What tools are available?

Tooling seam-gen - command line tool for generating skeleton project and reverse engineering a database schema using Seam Application Framework JBoss Developer Studio - Eclipse based IDE For $99 you get a full installer + JBoss EAP Based on the freely available JBoss Tools Eclipse plugins

Demo

Road Map What is Seam? The future Why should I care about atomic conversations? How do I quickly build an application with Seam? What tools are available?

Flex as a view layer A community effort Uses Granite Data Services or Blaze Data Services Check out a couple of demos at http://www.rationaldeveloper.com

JSF 2 Easy Component Creation & Templating Standardizes Facelets No XML needed to create a component Built in Ajax support Many improvements to JSF lifecycle (performance!) error handling navigation

What else? Seam 2.1 release candidate in the next week or two Friendly URLs Identity Management ACL style permissions Wicket support Excel reporting module Support for JAX-RS (REST)

Q&A http://in.relation.to/bloggers/pete http://www.seamframework.org