seam in the clouds - jboss in the clouds pete muir ... •eclipse tooling – jboss developer studio...
TRANSCRIPT
Pete Muir
Seam’s Mission
“To provide a fully integrated development platform for building rich Internet applications based upon standards and supporting cloud environments”
2
Pete Muir
Java EE 6
•The EE 6 web profile removes most of the “cruft” that has developed over the years•mainly totally useless stuff like web services, EJB 2 entity beans etc.•some useful stuff (e.g. JMS) is missing, but vendors can include it
3
Pete Muir
CDI
•CDI defines a unifying dependency injection and contextual lifecycle model for Java EE 6 •a completely new, richer dependency management model •designed for use with stateful objects •integrates the “web” and “transactional” tiers •makes it much easier to build applications using JSF and EJB together •includes a complete SPI allowing third-party frameworks to integrate cleanly in the EE 6 environment
4
Pete Muir
The Seam Stack
•A complete solution for developing applications based upon Java EE standards•Integrating technologies is a framework concern
•The stack consists of...•Java EE integration within the platform•Declarative security•Extension of CDI programming model to GWT•JavaScript remoting•Infinispan support•Drools support
5
Pete Muir
Getting started with Seam...is easy!
•Focus on delivering useful functionality to users early on, then repeat•Eclipse tooling – JBoss Developer Studio (JBDS)•Deploy apps to the cloud from JBDS
•Incremental hot deployment•To your local server or remote cloud server
6
Pete Muir
Evolution of Seam
•What does Seam 3 look like?•Core Services provided by CDI•A set of modules for addressing needs of developer•Development environment and tooling•Based around Java EE 6 APIs (JSF 2, JPA 2, EJB 3.1)•But runs on other platforms
7
Pete Muir
Runtime environments
•Any Java EE 6 container•JBoss AS 6•GlassFish V3
•Weld also supports•Tomcat•Jetty•Java SE support
8
Pete Muir
Deltacloud
•Abstraction over cloud providers
•REST based API•Query for instances, images, basic metadata
10
Pete Muir
Tools
•SteamCannon•Stand up PaaS based on Java EE / JBoss AS•Many cloud providers•Focus on developing apps, not infrastructure
•Web Interface or Remote API•Clustering•Easily add nodes to the cluster•Load balancing
•Monitoring•Integration with JON
11
Pete Muir
Tools
•JBoss Tools•Supports CDI (refactoring, quick links etc.)•Support for integrated frameworks•No special support needed normally for Seam integration modules•Visual editors for configuration files•Incremental deployment to any cloud provider via deltacloud
12
Pete Muir
Persistence
•Conversation Scoped Persistence Context (SMPC)
•Support for JPA and JTA in non EE 6 environments
•Integration with Hibernate Search
14
•AJAX via a component-centric approach
•Interact with the server-side object model, within a conversation/transaction
•Model can be dynamically expanded•Simple to use client-side JavaScript API
Pete Muir
JavaScript Remoting
15
Pete Muir
Cloud support
•Infinispan•Injection and configuration of Infinispan caches•Transaction integration
•JClouds support•Abstraction over compute (e.g. EC2) and storage (e.g. S3)
16
Pete Muir
Seam 3
Runtime
Weld
Java EE
6
JBoss AS 6
GlassFish V3
Servlet
Tomcat
Jetty
Java SE
Security
Wicket
Remoting
DroolsServlet
JPA/JTA
JMS
GWT
Faces
i8ln/l10nXML ConfigJBoss ESB
jBPM
17
Pete Muir
Modules
•Modules:•Contain standalone docs•Have examples•Use only the CDI API, no internal APIs•Are released on an independent cycle
•Sandbox:•Area for people to try out new ideas
18
Pete Muir
Independent Module Releases
Sea
m 3
.1
Sea
m 3
.2
Seam Security 3.0.7
Seam Mail3.0.0
Seam Security3.0.7
Seam GWT3.0.0
Seam Security3.0.8
Time boxed: 6 monthsSimultaneous Releases
19
Pete Muir
Simultaneous Releases
Seam Security
Documentation Examples API
Seam Framework
Seam Mail
Drools5 support
JBoss ESB
Wicketsupport
XML Config-uration
Documentation
Examples
Tooling
20
Pete Muir
Tools
•Seam Forge -- RAD command line tool•bash-style auto-complete•pluggable•allow any server to be supported•allow any view layer to be supported
•canonical source of new project definition•all tools use these (e.g. JBoss Tools)•Freemarker templates•POMs for dependency definition
21
Pete Muir
Testing
•Shrinkwrap•declarative definitions of deployment archives•uses a fluid API
•Arquillian•run the same test in any supported container•(Re) uses JUnit/TestNG - works with existing tools•injection into test cases
•Various testing strategies•Weld in SE mode (test your POJO based logic)•Using Embedded JBoss (test your persistence)•Inside a real container (test your views)
22
Pete Muir
Recap
•Programming model•Injection, Producers, Events, EJB Services
•Seam modules•Seam Persistence•Validation, Messages, Components, View Actions
•Seam Remoting•Infinispan
•Tools•JBoss Tools•Arquillian•SteamCannon
23
Pete Muir
Status
•Java EE 6 is final•JBoss AS 6 M5 available
•Seam Alphas available•Faces•Remoting•JMS•i8ln•XML
•http://seamframework.org/Seam3
•Aiming for release later this year
24