52
Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore [email protected] [email protected]

Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore [email protected] [email protected]

Embed Size (px)

Citation preview

Page 1: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

Inside Apache Geronimo 1.1 - What makes it special?Rakesh MidhaIBM Software Labs, [email protected]@gmail.com

Page 2: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

2

Goal

• Show case Geronimo open source story

• Where it fits in Industry and Enterprise

• How it facilitates easy development and deployment

• Understand Geronimo 1.1 additions• Get you hooked with Geronimo

Page 3: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

3

Agenda• Geronimo - An Introduction• Why Geronimo?• What makes it Special?• Where does it fit well?• Geronimo Architecture and Components• Geronimo 1.1 – Whats New? • Getting Started• Administration and Configuration• Development Enviornment• Quick Application Development• Getting Involved• Summary, Q&A

Page 4: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

4

Geronimo - An Introduction

Page 5: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

5

What is Apache Geronimo?

Open source J2EE application server project developed by the Apache Software Foundation.

Benefits from the efforts of collaborative development by an

open community of Java developers worldwide.

Apache-licensed open source application server

Highly customizable

Small footprint

Community-driven

Brings together leading technologies from the broad open source community to support J2EE

Page 6: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

6

Geronimo

Apache Geronimo an Apache Software Foundation top level project that is aimed at creating a world class, free, application server.

It is made up of over 30 best of breed open source packages (some not under the Apache domain).

The Geronimo kernel provides the common security, deployment, administration, management, and life-cycle services for these components.

Geronimo reached official J2EE 1.4 certification in Milestone 5 in Oct 2005.

Apache Geronimo

Page 7: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

7

HowlJDBMJDomJettyJuddiJunitMx4jOpenEJBActiveIOActiveMQScoutAntlrASMAxisCastorConcurrentApache Directory

CommonsBeanutilsCollectionsDigesterElFileuploadI/OLangModelerPrimitives

TranQlWsdl4jXmlbeansXpp3XstreamXfireDerbyPlutoSlf4jOroServicemixSpringStaxTomcatRegexp

Geronimo Open Source Packages

Page 8: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

8

Geronimo History and Progress

August2003

August2004

August2005

Apa

che G

eron

imo P

rojec

t for

med

Mile

stone

3 re

lease

d

Ger

onim

o pas

ses J

2EE

Certifi

catio

n Tes

t Suit

e

Mile

stone

4 re

lease

d

Mile

stone

5 re

lease

d, ful

l J2E

E

certif

icatio

n

June2005

Oct2005

May2005

IBM ac

quire

s Glue

code

Soft

ware

Jan2006

V1.0

Rele

ased

June2006

V1.1

Rele

ased

In Plan

V1.2

Rele

ased

Page 9: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

9

Why Geronimo?

Page 10: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

10

Geronimo – Key Features• J2EE 1.4 Certified

• Certification from Sun Microsystems in October last year• Certified on the Sun JDK 1.4.2, works with JDK 1.5 without CORBA

• Option for Jetty or Tomcat as a Web Container• Geronimo supports both Jetty as well as Tomcat. Separate package for

download, available for Jetty and Tomcat.

• Database Support• Comes with Apache Derby database• Also supports JDBC enabled databases using a connector framework from

TranQL

• Eclipse Web Tools Project support• Integrated development environment for creating, deploying, and debugging

directly against Geronimo

• Runtime customization• Advanced micro-kernel architecture enables runtime customization to save

systems resources and improve performance

• Allows for greater flexibility in creating different server personalities in the future

Page 11: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

11

Geronimo – Key Features•Centralized configuration and control

• Easy to use Web Console

•Small Footprint ~60MB• Easy access - downloadable in minutes• Easily embeddable in customer or ISV stack

•Liberal product license• Apache open source (ASF) license

•Flexible and rapid deployment across multiple configurations• Directory-based hot deployment• Local and remote deployment through command line, console, and IDE

• Improved reliability for most commonly deployed applications• Web-tier clustering

Page 12: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

12

What makes it Special?

Page 13: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

13

Simple Easiest platform to development on, obtain, use, and service. Easy to understand, invisible to the customer. Application centric. Easy to configure and change. Embedded documentation, service functions, user interfaces, etc. Default setting will get you running.

Flexible Can plug-in function while that application server is running. J2EE function is just one of the personalities that can be plugged in. Geronimo becomes the platform that partners/customers think when

building apps. Need to be the Eclipse of the tooling world.

Reliable ‘Appliance like’ reliability. Never fails. Startup and recycle time should be minimal. Customer never sees or cares about the server… it is about the

application. It is the ‘intel chip’ for your applications. Administration is available and easy. ‘Tomcat like’ reputation in open source.

Geronimo – Key Design Principles

Page 14: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

14

Enchilada of best of breed open source products

GBean Architecture A pluggable framework Modular Architecture

Tomcat has web features but it lacks other J2EE features

Low memory and resource requirement

Better web performance as compared to other open source application servers

True open source community driven Strategic commitment from IBM,

Covalent, Chariot and other big players

Very Active community and dev/user list

Optional Support from IBM

Geronimo – Technical Advantage

Page 15: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

15

Geronimo – Still Why?•It’s all Free!!!•Free Application Server•Free Development, Debugging environment

•Free Management tools•Free resources like database, messaging•Free enterprise class documentation•Free Sample applications•Free educational material like articles, tutorials

Page 16: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

16

Where does it fit well?

Page 17: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

17

Where does this fit in the Enterprise?

• Apache Geronimo are excellent positioned as developer runtimes• Integration into Eclipse helps to reduce software

licenses• Small footprint• Single User Environments

• Low end SMB companies• Quick, frictionless access to application server

technology with no up-front costs• Departmental Applications in Enterprises

• SMBs and departmental applications are a good target for this technology

• Not quite ready to run your 4,000 AppServer farm• Advanced monitoring, integration with commercial /

open source monitors not quite there yet.

Page 18: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

18

Today – With Tomcat plus ‘other stuff’ you do yourself

1. Your developers have a job to do – write your killer app!2. They chose Apache Tomcat because it helps them build apps

quickly3. But Tomcat doesn’t have web services support, a security

framework, or messaging; so your developers added those components and integrated them into the stack

4. Then your rock star developer wrote some app-specific service and integrated that into the stack

5. Turns out your app needs clustering too, so they throw that into the stack

6. …but the web services component they got doesn’t do clustering; luckily there’s a newer version of that out now, so they get the new version and integrate THAT into the stack

7. Now your staff is maintaining your killer app, Apache Tomcat, the web services component, messaging, security, clustering, AND your custom components

Apache Tomcat

Your Killer AppSOAP/Web Services (Axis)

JMS Messaging

Security / Authentication

Web Tier Clustering

Other services you need/write

Custom Integration

Custom Integration

SOAP/Web Services (Axis)

Developers maintain all this!

build apps quickly…?

What happened to building apps

quickly??

Page 19: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

19

Now, just much easier (oh, and future-proof)!

• What if you could start with Tomcat• Extend Tomcat with pre-integrated features & services you need

most (read: someone other than you did the tedious work)• Welcome to a little secret we like to call Tomcat+, use Apache

Geronimo• It’s fully extensible, and it’s built on the innovative open-source

Apache Geronimo kernel• Plus all the same Apache Tomcat you’re already using• Plus the leading components you want to use pre-integrated and

tested (and the ability to turn off what you aren’t using)• Plus the support you need from IBM

Your Killer App

Ap

ac

he

Ge

ron

imo Apache Tomcat

SOAP/Web Services (Axis)

JMS Messaging

Security / Authentication

Web Tier Clustering

Other Optional Plug-ins for EJBs, Transactions, etc.

Geronimo Plug-In Kernel

Fully Integrated & ExtensibleKernel Services

Page 20: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

20

Geronimo Architecture and Components

Page 21: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

21

Geronimo Architecture - GBean• The Geronimo framework provides a set of cooperating classes,

called GBeans, for combining an arbitrary set of components into a system

• Everything in Geronimo framework is GBean • Lightweight kernel provides central integration based on

Inversion of control pattern.• Manageable at runtime using JMX, JSR-77• Example:

•An EJB container•Web Module

• A J2EE web module that contains servlets and uses EJB

• It depends on the web container and the EJB container

• When its GBean is started, the Geronimo kernel recognizes the dependency and starts the web container and the EJB container first

• It must be aware of every EJB in the system.• It registers a dependency on any EJB GBean• An EJBs are added to the system•The Geronimo kernel recognizes the relationship and injects information from the EJB GBean into the EJB container GBean where it updates its configuration state.•This action is called dependency injection.

Page 22: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

22

• Kernel • Core of the component model• Provides central integration point• Binds all the subsystems• Based on Inversion of Control /Injection Pattern

• Geronimo Beans• GBean is a manageable unit in the Geronimo framework• To add new component to the server, you deploy the collection of

GBeans• A deployment plan is an XML document that provides server specific

attribute values• GBeans can hold states and can define relationships amongst them• GBean life cycle is managed by the kernel.• A java class can be wrapped to become a GBean• GBeans are used to tie all the open source projects in Geronimo

( Derby, Tomcat, Axis, OPenEJB …. )• GBean can notify events.

Geronimo Kernel

Page 23: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

23

Geronimo componentsSpecification required for J2EE certification

Area of coverage Project or code used by Geronimo

Servlets 2.4JavaServer Pages (JSP) 2.0

Web tier container with support for JSPs and servlets

Jetty and Tomcat

Enterprise Java Beans (EJB) 2.1 EJB container OpenEJB

Java Message Service (JMS) 1.1 Messaging service ActiveMQ

Java Naming and Directory Interface (JNDI) 1.2.1

Directory service/naming API Custom code implementation

Java Transaction API (JTA) 1.0 Transactions Custom manager with High-speed ObjectWeb Logger (HOWL) for transaction logging, XA supported, evolving to Java Open Transaction Manager (JOTM)

JavaMail 1.3 Mail Custom coding

JavaBeans Activation Framework (JAF) 1.0

Activation -- handling html/text/gif/jpg MIME types, primarily for JavaMail attachments

Custom coding

JSR 77 -- J2EE Management 1.0 Manageability Custom coding with MX4J

JSR 88 -- J2EE Deployment 1.1 Deployment and configuration -- cross-vendor server deployability

Custom Code

JMX 1.2 Manageability MX4J

Page 24: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

24

Geronimo components - contJava Data Access API (JDBC) 3.0,

2.1Database Code from TranQL

Java API for XML Processing (JAXP) 1.2

SAX, DOM APIs; third-party SAX, DOM, XSLT engine pluggability

JDK support where applicable, and Apache Xerces

J2EE Connector Architecture (J2CA) 1.5

Connector Custom coding. Includes JMS resources and JDBC pools.

JSR 109 -- Implementing Enterprise Web Services 1.1

Web services Apache Axis

Java API for XML-based RPC (JAX-RPC)

Web services Apache Axis

SOAP with Attachments API for Java (SAAJ) 1.2

Web services Apache Axis

Java API for XML Registries (JAXR) 1.0

Web services Apache Scout

JSR 115: Java Authorization Contract for Containers (JACC)

Security -- authorization and authentication

Custom development using JDK's JAAS support

Internal database Database Derby

Persistence mechanism Database Unified substrate for CMP and Beans/POJO oriented schemes over TranQL

Interoperability TCP/IP, HTTP1.1, SSL3.0, TLS 1.0, SOAP 1.1, WS-I Basic Profile 1.0 CORBA - IIOP, RMI-IIOP, EJB Interop, CORBA Interop Naming Service, JRMP

JDK support (that is, ORB and JRMP), support from other packages, and custom code

Page 25: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

25

Deployment Framework• Each Component has a GBean and deployment plan.• Plan is an xml file containing properties of GBean• Server is built using j2ee-server-plan.xml

<gbean name="JettyWebConnector" class="org.apache.geronimo.jetty.connector.HTTPConnector"> <attribute name="host">localhost"</attribute> <attribute name="port">8080</attribute> <reference name="JettyContainer"><name>WebContainer</name></reference> <attribute name="maxThreads">50</attribute> <attribute name="minThreads">10</attribute> </gbean>

• Can also deploy plan to running server using deployer• For modules you need specific file as deployment plan

• Web Application (WAR) - WEB-INF/geronimo-web.xml • Enterprise Application (EAR) META-INF/geronimo-application.xml • Enterprise Java Beans (JAR) META-INF/openejb-jar.xml • J2EE Connectors (RA) META-INF/geronimo-ra.xml • Client Application META-INF/geronimo-application-client.xml

Page 26: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

26

Geronimo 1.1 – Whats New?

Page 27: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

27

Geronimo 1.1• Updated deployment plan• Running with JDK 1.5 without CORBA support• Improved scalability, portability and overall organization • Enhanced Web Console

• Memory utilization graphics, Live console graph• Thread Pools statistics• Remote HTTPd configuration wizard and plugins • JMS resource wizard• Keystore manger

• Improved Hot deployment• Application storage in repository• Enhanced SMTP support• Little-G• Plugin architecture• In-place deployment

Page 28: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

28

Geronimo 1.1-Little-G• Lightweight distribution of geronimo

available for both jetty and tomcat• Small space requirement ~20MB and

smaller memory footprint• It includes a WebContainer, Transaction

Manager and some other essential elements of Geronimo.

• Not J2EE compliant• Can be upgraged for specific requirement

like JMS, J2EE etc using plugins.

Page 29: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

29

Geronimo 1.1-Plugins• A Geronimo plugin is a new packaging mechnism for

geronimo modules• Geronimo applications, server features, and integrated

products can be distributed as Geronimo plugins. • Plugins are easy to install, automatically download any

dependencies, and do not require server restarts. • Using the plugin infrastructure, applications or modules can

be copied from one Geronimo installation to another • Developer to Developer• Development environment to production environment

• Plugin stays in Maven 2 repository and automatically downloads dependencies from other repositories

• Web console can be used to create plugins

Page 30: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

30

Plugin web console

Page 31: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

31

Getting Started

Page 32: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

32

Quick Start• Available for download from

http://geronimo.apache.org/downloads.html• Linux, windows and MacOS installation in tar/zip format with

jetty and tomcat available• System Requirements

• Redhat Enterprise Linux 3.0 or 4.0, Suse Linux Enterprise .9• Microsoft XP with SP2• 120MB Disk Space• 128MB RAM (256MB Preferred, depends upon deployed

Applications)• Installation

• Windows• Install JDK, set JAVA_HOME and simply unpack geronimo-*-

j2ee-1.1.zip• Linux

• Install JDK, export JAVA_HOME and simply unpack geronimo-*-j2ee-1.1.tar.gz

Page 33: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

33

Server Administration• Starting a Server

• From application launcher, execute startup.bat or startup.sh, or run java – jar bin\server.jar

• The server will display the TCP/IP ports where it is listening for requests • You can confirm readiness of server by navigating to welcome

page http://localhost:8080/console and https://localhost:8080/console in browser

• When Prompted enter System/Manager as userid/password• Startup options : -quite, -v, -vv

• Stopping a Server• From Application Launcher, Execute shutdown.bat or shutdown.sh,

or run java –jar shutdown.jar• Stop server using Web Console• Press Ctrl-C at the Server Started window

Page 34: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

34

Tools and Commands• Deploy command - deploy.bat and deploy.sh

• java -jar deployer.jar [general_options] <command> [command_options]

• deploy [general_options] <command> [command_options] • Commands available

• 1. Common Commands• deploy• redeploy• start• stop• undeploy• 2. Other Commands• distribute• list-modules• list-targets• 3. Configuration jar• install-plugin• search-plugin

• General options• --uri --host --port --driver --user• --password --syserr --verbose --offline

Page 35: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

35

Administration and Configuration

Page 36: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

36

Web Console• The administration console provides a convenient,

user friendly way to administer many aspects of the Geronimo Server.

• Can be viewed in a browser at http://localhost:8080/console

• Default password is system/manager• It can be used for server management, and

viewing/editing following information:• Server/JVM usage statistics• Server logs• Control server functionalities• Web Server configuration• Database, JMS Resource configurations• Thread pool, database pool, J2EE connectors management• Apache HTTP, Derby maintenance• Application/ Modules/ Plugin management• Security realms management

Page 37: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

37

Web Console view

Page 38: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

38

Deploying JDBC and JMS resources• Database Pool is deployed as a connector in Geronimo

• Database Connection pool can be configured at the server level, application level or part of single application module, as default

• Configuring Database pool• Create Database Pool deployment plan containing configId, parentId, dependency, uri,

connectionfactory-interface, name and configurable properties like Driver, user, passwd etc

• Deploy pool as connector• Server wide

java -jar bin/deployer.jar deploy database-pool.xml \ repository/tranql/rars/tranql-connector-1.0.rar • Application Scoped

Create application.xml withCreate geronimo-application.xmljar -tf my-app.ear my-web-app.war my-ejbs.jar tranql-connector-1.1.rar database-pool.xml META-INF/application.xml

META-INF/geronimo-application.xml • Client Module Scoped

A module scoped connection pool is declared in the geronimo deployment plan for the module

Pool Type Multiple Appl. Multiple Modules

Client Module

Server-wide Yes Yes No

Application-scoped No Yes No

Client Module-scoped

No No Yes

Page 39: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

39

Deploying JDBC and JMS resources - Cont• JDBC Resources

• In Modules Deployment descriptor ie web.xml Add resource ref<resource-ref><res-ref-name>jdbc/DataSource</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth><res-sharing-scope>Shareable</res-sharing-scope></resource-ref>

• For external references deployment plan is required with following info: <naming:resource-ref>

<naming:ref-name>jdbc/DataSource</naming:ref-name><naming:resource-link>SystemDatasource</naming:resource-link>

</naming:resource-ref>• In Application code lookup datasource and use it.

InitialContext ctx = new InitialContext();DataSource ds = ctx.lookup("java:comp/env/jdbc/DataSource");Connection con = ds.getConnection();

• JMS Resources• The default Geronimo server starts with ActiveMQ as messaging server• JMS Server must be running and its GBean is created and deployed• JMS application resources like connection factories, topics, and queues are

deployed using J2EE connector, which can be used like JDBC resource.

Page 40: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

40

Bootstrap, Extensions – JVM Classes

System – Geronimo System

Server – Critical classes and services for J2EE

EAR – EAR Classloader

Dependency loaded as part of EAR Classloader.

Geronimo Classloader

Page 41: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

41

TroubleshootingLogging

• Administration Console provide 4 portlets for configuration and viewing the server’s log• Log Manager to specify log

configuration file, Log Level, file size and Refresh Period

• Server Log Viewer to view server log and set filters for refining results displayed

• Derby Log Viewer to view Derby server logs

• Web Access Log Viewer to view web server logs for both tomcat and jetty

• Detailed log4j configuration settings can be done directly in server-log4j.properties, deployer-log4j.properties and client-log4j.properties file

Page 42: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

42

SecuritySecurity• In Geronimo you can define and

activate multiple security realms build around JAAS• Each realm can authenticate

user, provide set of principles to authorize user

• Each realm is a deployed as a component via GBean

• Default plan in doc/plan/j2ee-security-plan.xml

• In order to enable https access to web applications, Geronimo requires keystore.

Page 43: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

43

Development Enviornment

Page 44: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

44

Development Environment•Development Tools

• Eclipse plug-in for creating, deploying, and debugging Geronimo applications

• Plug-in provides integration between Eclipse Web Tools Platform and Geronimo

• Eclipse Web Tools Platform (WTP) project extends the Eclipse platform with tools for developing J2EE Web applications • http://www.eclipse.org/webtools/

• Plugin available for download from geronimo website

• Integrated test environment• Eclipse plug-in provides integrated test

environment for Geronimo

Page 45: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

45

Development Environment views

Page 46: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

46

Quick Application Development

Page 47: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

47

Quick first web application• Create HelloWorld.jsp

• Create a plain text file in the <app_home> directory named HelloWorld.jap and copy the content

• Create Standard J2EE complaint deployment descriptor web.xml in <app_home>/WEB-INF directory

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head>

<jsp:useBean id="datetime" class="java.util.Date" /> <title>Hello IBM Geronimo Version 1.1</title> </head>

<body> <h2>Welcome to Geronimo Version 1.1</h2> <p>Congratulations on running this simple application on ${datetime}.</p>

</body> </html>

<web-app version=“1.0" xmlns="http://java.sun.com/xml/ns/j2ee"> <welcome-file-list> <welcome-file>HelloWorld.jsp</welcome-file> </welcome-file-list>

</web-app>

Page 48: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

48

Quick first web application– cont.• Create Geronimo plan

• Although this sample application does not require it, you can still create Geronimo deployment plan to get first view.• Create geronimo-web.xml in WEB-INF directory

• Package the application• From command prompt, go to <app_home> directory and execute

jar –cvf HelloWorld.war *• Deploy the application

• You can use Geronimo web console to deploy and run application• From command line your can use the deployer.jar to deploy application using

java -jar bin\deployer. jar --user system --password manager deploy sample\HelloWorld.war

• Test the application• Test the application by pointing a Web browser to the following URL:

http://localhost:8080/hello

<?xml version="1.0"?> <web-app xmlns="http://geronimo.apache.org/xml/ns/web" xmlns:naming="http://geronimo.apache.org/xml/ns/naming" configId="HelloWorld"> <context-root>/hello</context-root>

</web-app>

Page 49: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

49

Getting Involved

Page 50: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

50

What more? Geronimo 1.2 • The next version of Geronimo is focused on

several areas, including:• Enhance the performance and usability of the server. • Improve cross-platform compatibility. • Improve integration with third-party development tools

and server products. • Enhance configuration, administration and management

tools. • Improve clustering support for web containers and EJBs. • J2EE 1.5 – EJB 3, Web 2.5• Portal Server plugin

Page 51: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

51

Getting Involved• Geronimo home page

• http://geronimo.apache.org/ • Future road map

• http://issues.apache.org/jira/browse/GERONIMO?report=com.atlassian.jira.plugin.system.project:roadmap-panel

• Jira Bug tracking• http://issues.apache.org/jira/browse/GERONIMO

• Subversion source code• http://geronimo.apache.org/svn.html

• Mailing lists• [email protected][email protected]

• IRC• Irc.freenode.net - #geronimo

• Wiki• http://cwiki.apache.org/geronimo

• Documentation• http://geronimo.apache.org/documentation.html

Page 52: Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh@in.ibm.com midha.rakesh@gmail.com

52

SummaryQ&A