SEAM 3
             a Web developer’s view

Matija Mazi, Parsek
What is Seam 3?


• Enterprise Internet application
  platform
• Based on Java EE 6
  – Especially CDI
Agenda


•   Java EE 6 Example App
•   Seam 3 Example App
•   Seam and Java Standards
•   Contributing to Seam
Java EE 6: Our example

• Web Application Technologies
  – JSF (JavaServer Faces) 2.0 with Facelets
  – EL (Expression Language) 2.2


• Enterprise Technologies
  –   CDI 1.0 (Contexts & Dependency Injection)
  –   EJB 3.1 (Enterprise JavaBeans)
  –   JPA (Persistence) 2.0
  –   Bean Validation 1.0
Java EE 6: Our example


• Let’s see the demo!
Java EE 6: What we used
• General (javax.annotation.*)   • JPA (javax.persistence)
    – @PostConstruct                 –   EntityManager
                                     –   CriteriaBuilder, CriteriaQuery
• EJB3 (javax.ejb)                   –   @Entity
    – @Stateful                      –   @Id
                                     –   @GeneratedValue
                                     –   @PersistenceContext
• CDI (javax.enterprise.*)
    –   @RequestScoped
    –   @Event                   • Validation (javax.validation.*)
    –   @Observes                    – @NotNull
    –   @Model                       – @Pattern
    –   @Produces                    – @Size

• CDI (javax.inject.*)
    – @Inject
    – @Named
Seam 3: Our example


• Let’s see the demo!
Seam 3: Features (1/2)
• Forge                             • Seam Configuration
   – Plugins
                                    • Seam Persistence
• Seam Solder                          – Transaction Management
   – @Veto, @Requires, @Exact,         – Seam-managed persistence
     @Client, @Named packages,           contexts
     @FullyQualified
   – Annotation Literals
   – Evaluating EL                  • Seam Servlet
   – Resource Loading                  – Servlet/Session events
   – Logging                           – Injectable Servlet objects and
                                         request state
   – Reference to the BeanManager
                                       – @RequestParam,
   – Properties                          @HeaderParam,
   – @Unwraps                            @ContextPath,
   – Default Beans                       @CookieParam, @ServerInfo,
   – Generic Beans                       @Principal
   – Service Handler
Seam 3: Features (2/2)
• Seam Security                 •   Seam Catch
                                •   Seam Remoting
• Seam International            •   Seam REST
   – Locales, Timezones         •   Seam Validation
   – Messages                   •   Seam Wicket
                                •   Seam Cron
• Seam Faces
                                •   Seam Drools
   – Faces Events Propagation
   – Faces Artifact Injection   •   Seam Errai CDI (GWT)
   – Messages                   •   Seam JCR (Content Repo)
   – @RenderScoped,             •   Seam JMS
     @ViewScoped, Flash         •   Seam Mail
   – <s:validateForm>,
     <s:viewAction>             •   Seam Reports
                                •   Seam Social
                                •   Seam Spring
Seam: a source of ideas
for JavaEE standards
Seam: a source of ideas
                        for JavaEE standards
                        (stuff in JEE6 that came from Seam)

• CDI (JSR 299)                   • JSF 2 (JSR 314)
  –   @Inject                        –   Navigation
  –   @*Scoped                       –   <f:viewParam>
  –   @Produces                      –   <f:selectItems>
  –   Events                         –   Get Requests
  –   Most of the stuff, really           • <h:link>, <h:button>
                                     – Scopes
• CDI 1.1 (JSR 346)                  – Annotations
                                          • Managed Beans
  – from Seam 3
                                          • Converters/Valitators
       • esp. Seam Solder
                                     – Resources
                                     – Validation integration
                                     – EL method parameters
Contributing to OS

•   github account
•   git installed
•   No need for commit permissions
•   https://github.com/seam/international/pull/11
Seam 3 and JavaEE 6



             • Thank you!




mazi@parsek.net
Seam 3: Our Example

• Seam International        • Seam Cron
  – Messages                  – Scheduled tasks


• Seam Faces                • Seam Mail
  – Messages                  – Mail templates
  – @Inject in Validators     – Mail sending


                            • Seam Solder
                              – Resource Loading

Seam 3 from a Web developer’s point of view, Matija Mazi (Parsek)

  • 1.
    SEAM 3 a Web developer’s view Matija Mazi, Parsek
  • 3.
    What is Seam3? • Enterprise Internet application platform • Based on Java EE 6 – Especially CDI
  • 4.
    Agenda • Java EE 6 Example App • Seam 3 Example App • Seam and Java Standards • Contributing to Seam
  • 5.
    Java EE 6:Our example • Web Application Technologies – JSF (JavaServer Faces) 2.0 with Facelets – EL (Expression Language) 2.2 • Enterprise Technologies – CDI 1.0 (Contexts & Dependency Injection) – EJB 3.1 (Enterprise JavaBeans) – JPA (Persistence) 2.0 – Bean Validation 1.0
  • 6.
    Java EE 6:Our example • Let’s see the demo!
  • 7.
    Java EE 6:What we used • General (javax.annotation.*) • JPA (javax.persistence) – @PostConstruct – EntityManager – CriteriaBuilder, CriteriaQuery • EJB3 (javax.ejb) – @Entity – @Stateful – @Id – @GeneratedValue – @PersistenceContext • CDI (javax.enterprise.*) – @RequestScoped – @Event • Validation (javax.validation.*) – @Observes – @NotNull – @Model – @Pattern – @Produces – @Size • CDI (javax.inject.*) – @Inject – @Named
  • 8.
    Seam 3: Ourexample • Let’s see the demo!
  • 9.
    Seam 3: Features(1/2) • Forge • Seam Configuration – Plugins • Seam Persistence • Seam Solder – Transaction Management – @Veto, @Requires, @Exact, – Seam-managed persistence @Client, @Named packages, contexts @FullyQualified – Annotation Literals – Evaluating EL • Seam Servlet – Resource Loading – Servlet/Session events – Logging – Injectable Servlet objects and request state – Reference to the BeanManager – @RequestParam, – Properties @HeaderParam, – @Unwraps @ContextPath, – Default Beans @CookieParam, @ServerInfo, – Generic Beans @Principal – Service Handler
  • 10.
    Seam 3: Features(2/2) • Seam Security • Seam Catch • Seam Remoting • Seam International • Seam REST – Locales, Timezones • Seam Validation – Messages • Seam Wicket • Seam Cron • Seam Faces • Seam Drools – Faces Events Propagation – Faces Artifact Injection • Seam Errai CDI (GWT) – Messages • Seam JCR (Content Repo) – @RenderScoped, • Seam JMS @ViewScoped, Flash • Seam Mail – <s:validateForm>, <s:viewAction> • Seam Reports • Seam Social • Seam Spring
  • 11.
    Seam: a sourceof ideas for JavaEE standards
  • 12.
    Seam: a sourceof ideas for JavaEE standards (stuff in JEE6 that came from Seam) • CDI (JSR 299) • JSF 2 (JSR 314) – @Inject – Navigation – @*Scoped – <f:viewParam> – @Produces – <f:selectItems> – Events – Get Requests – Most of the stuff, really • <h:link>, <h:button> – Scopes • CDI 1.1 (JSR 346) – Annotations • Managed Beans – from Seam 3 • Converters/Valitators • esp. Seam Solder – Resources – Validation integration – EL method parameters
  • 13.
    Contributing to OS • github account • git installed • No need for commit permissions • https://github.com/seam/international/pull/11
  • 14.
    Seam 3 andJavaEE 6 • Thank you! mazi@parsek.net
  • 15.
    Seam 3: OurExample • Seam International • Seam Cron – Messages – Scheduled tasks • Seam Faces • Seam Mail – Messages – Mail templates – @Inject in Validators – Mail sending • Seam Solder – Resource Loading