24
Apache Geronimo 3.0: Introduction Kevan Miller Apache Geronimo PMC Chair ASF Member [email protected] Thursday, November 4, 2010

Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Apache Geronimo 3.0:Introduction

Kevan MillerApache Geronimo PMC ChairASF [email protected]

Thursday, November 4, 2010

Page 2: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Agenda• Overview

• New Features

‣ Java EE 6

‣ OSGi EEG

‣ Kernel Restructure

• Administration

• Closing

Thursday, November 4, 2010

Page 3: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Overview• ASF project started in 2003

• Mission:

Create an Open Source application server from Best-of-Breed Open Source components

• Release history:

2006 2007

Geronimo 1.0 Geronimo 1.1

J2EE 1.4

2008

Geronimo 2.0 Geronimo 2.1

Java EE 5

2009 2010

Geronimo 2.2

Java EE 6

Geronimo 3.0-M1

Thursday, November 4, 2010

Page 4: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Apache Geronimo

Tomcat

Bean Validation

CXF Karaf

Thursday, November 4, 2010

Page 5: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Apache Geronimo

Tomcat

Bean ValidationCXF

Karaf

Thursday, November 4, 2010

Page 6: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

New in 3.0

• Java EE 6

• OSGi EEG

• Kernel Restructure

Thursday, November 4, 2010

Page 7: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Java EE 6

• Ease of development

• Profiles

• New features

Thursday, November 4, 2010

Page 8: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Ease of Development

• Context and Dependency Injection (aka Web Beans)

• Servlet Annotations (@WebServlet, @WebFilter, ...)

• EJBs in WAR files

• Portable JNDI lookups

• Portable DataSource definitions

Thursday, November 4, 2010

Page 9: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

EE 6 Profiles• Full EE 6 Profile

• Web Profile

‣ Subset of full profile:

- Servlet, JSP/JSTL, JSF/Managed Beans, EJB-lite, JPA, JTA, Bean Validation, CDI

• Geronimo will continue to provide custom assembly feature

Thursday, November 4, 2010

Page 10: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Custom Assemblies• Support for custom assemblies still

supported

• “Profile” is a pre-configured assembly

Framework Assembly

Java EEProfile

WebProfile

Thursday, November 4, 2010

Page 11: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Java EE 6 Features• Servlet 3.0

‣ Standardized async support

‣ Annotations (e.g. @WebServlet, @WebFilter, ...)

‣ web.xml fragments

‣ Pluggability

• JSF

‣ Facelets, AJAX, Skins, Annotations, Widget library, etc

• JAX-RS

‣ REST Annotations (@Path, @GET, @POST, etc...)

Thursday, November 4, 2010

Page 12: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Java EE 6 Features• EJB 3.1

‣ EJBs in WAR files

‣ Singleton Beans

‣ No interface local Session beans

‣ Async / Sync invocation

‣ Timers

‣ Standalone EJB containers

Thursday, November 4, 2010

Page 13: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Java EE 6 Features• Bean Validation

‣ Framework for validation of Bean data

‣ Applies to multiple technologies:

- JSF, JPA, JCA,

‣ Annotations: Pattern, Min/Max, NotNull...

• CDI

‣ Simplifies JSF and EJB programming models

‣ Enterprise beans managed by JSF

‣ Simplifies realization of transactional behavior in the web tier

Thursday, November 4, 2010

Page 14: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Java EE 6 Features• Bean Validation

‣ Framework for validation of Bean data

‣ Applies to multiple technologies:

- JSF, JPA, JCA,

‣ Annotations: Pattern, Min/Max, NotNull...

• JPA 2.0

‣ Enhanced Mapping

‣ Standardized query hints, locking, caching plugin

‣ Criteria-based query API for dynamic queries

Thursday, November 4, 2010

Page 15: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Java EE 6 Features

• JASPIC - Java Authentication SPI for Containers

‣ Pluggable authentication providers

‣ Simplifies implementation/integration of authentication technology into EE container environment

Thursday, November 4, 2010

Page 16: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

OSGi EEG• Geronimo includes support for an OSGi enterprise applications

• Multiple Java EE technologies exposed as OSGi Services

• Apache Aries programming model:

‣ Blueprint Container

- Dependency Injection framework for OSGi

‣ Applications: WAB and EBA

‣ JPA service

‣ JTA

‣ JNDI Services

‣ JMX

Thursday, November 4, 2010

Page 17: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Geronimo Plugins

• Plugins are bundles with additional meta-data

• Define dependencies on bundles and other plugins

• Plugin installation installs all dependencies

• Dependencies form a DAG, determining:

‣ startup order, service visibility

Thursday, November 4, 2010

Page 18: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Geronimo GBeans

• GBeans are a Geronimo-specific service model that support JSR-77 (J2EE Management)

• Attributes, single/multivalued service references

• References supported within and between Plugins

• OSGi bundles used for classloading, but GBeans are managed by Geronimo kernel

• Easy to expose GBeans as OSGi services and OSGi services can be exposed as GBeans

Thursday, November 4, 2010

Page 19: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Some pain points• Plugins

‣ DAG is useful for restricting service visibility, but otherwise difficult to manage

‣ Plugin lifecycle conflicts with bundle lifecycle

• GBeans

‣ Overlapping capabilities with blueprint

‣ Difficult to generate xml for dynamically generated GBeans

‣ JSR-77 support does not meld well as control points for framework component

‣ Requires that framework classes be exposed to applications

Thursday, November 4, 2010

Page 20: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Being considered...• Plugins

‣ Use karaf features as dependency mechanism

‣ Service visibility constraints replaced by OSGi subsystems

• GBeans

‣ Replace framework GBeans with OSGi declarative services

‣ MBean support with management specific support

Thursday, November 4, 2010

Page 21: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Using Geronimo• Full-featured administrative console

Thursday, November 4, 2010

Page 22: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Develop/Deploy• Geronimo Eclipse Plugin

‣ Java EE 6 development

‣ OSGi plugin available for development of Aries applications

• Deployment

‣ Eclipse

‣ deploy command

‣ hot-deploy directory

‣ Admin console

Thursday, November 4, 2010

Page 23: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Current status• Upcoming service releases:

‣ 2.1.7 and 2.2.1

• Geronimo 3.0-M2 nearing completion

‣ Pass Web Profile TCK

• Geronimo 3.0

‣ Expected early 2011

‣ Full EE6 Profile support

- JMS, JAX-RS, JAX-WS, ...

Thursday, November 4, 2010

Page 24: Apache Geronimo 3.0: Introductionarchive.apachecon.com/c/acna2010/sessions/materials... · • Multiple Java EE technologies exposed as OSGi Services • Apache Aries programming

Related Talks• Geronimo Track (later today):

‣ Apache Geronimo and OSGi Enterprise Specification

‣ Scala for Efficient Java EE Entities

• Enterprise Track (Friday):

‣ Getting Started with JCDI

‣ Apache OpenEJB in Depth

‣ Enterprise OSGi Applications with Apache Aries

Thursday, November 4, 2010