200 likes | 218 Views
Unveil the architecture of Apache Geronimo, exploring kernel, GBeans, configurations, and customizations. Learn to deploy apps and compare web containers Tomcat vs. Jetty. Find tools and resources for more insights. Join this informative session for J2EE developers wanting to enhance their skills in managing J2EE services efficiently within Geronimo. Gain hands-on experience deploying web apps, EJBs, web services, and dive into database and messaging systems. Discover the power of Geronimo as a J2EE 1.4 application server through demos and examples, covering various aspects such as customizing, deployment, and managing tools. Explore the future features of Geronimo and its continuous development for better J2EE certification and enhanced management.
E N D
Getting up to speed with Apache Geronimo Tom McQueeney tom@mcqueeney.com O'Reilly Open Source Convention Aug. 4, 2005 45 minutes Audience: J2EE developers
Goals for this talk • Demystifying Geronimo • What's inside, terminology • Exploring the architecture • Kernel, GBeans, configurations • Demo and examples: Deploying apps • Web app • EJB • Web Service • Customizing Geronimo • Database and Messaging System • Tomcat vs. Jetty web containers • Review and Summary • Where to find more tools and resources
Mail Server CORBA Overview: Geronimo as a J2EE 1.4 Application Server Java Application EIS Message Queue Directory Service RDBMS Deployment and Management Tools JSPs Servlets EJBs J2EE 1.4 APIs J2SE 1.4 APIs J2EE 1.4 APIs J2SE 1.4 APIs Web Container Applet EJB Container Web Browser Application Client Kernel
Mail Server CORBA Logging Log4j Overview Geronimo and Open Source Projects ActiveMQ Derby Java Application EIS Message Queue Velocity Directory Service RDBMS Deploy and Mgmt Tools XML Beans TranQL CMP JSPs Servlets EJBs J2EE 1.4 APIs J2SE 1.4 APIs Tomcat Jetty J2EE 1.4 APIs J2SE 1.4 APIs Web Container Applet OpenEJB EJB Container Web Browser Application Client Kernel
Custom Code Overview Geronimo - Open Source Projects J2EE 1.4 APIs Axis Scout Xerces HOWL Web Services JAX-RPC JAXP JAXR JTA SAAJ JOTM MX4J Management JMX ActiveMQ JACC JCA JMS Velocity JavaMail JAF Monitoring J2SE 1.4 APIs Custom Code Custom Code TranQL Custom Code Custom Code JNDI JAAS Java IDL RMI-IIOP JDBC
Overview Core Geronimo Infrastructure Deployment and Management Tools Configuration Management MBeans GBeans Logging Geronimo Kernel
G-Lingo: Kernel • The “core” framework • Manages all J2EE services, lifecycles • Configurations, GBeans, dependencies • Based on Inversion of Control (IoC) • GBean tells kernel what it needs and kernel "injects" it • Lightweight footprint • J2EE services live outside the kernel Geronimo Kernel
G-Lingo: Configuration • A deployable component • Your J2EE modules are configurations • J2EE services like JMS are configurations • Managed as unit: Started, stopped, undeployed • Each configuration has a unique name • May depend on one other configuration (parent) • Saved in a configuration store: restored on restart • May define one or more GBeans Configuration Management Geronimo Kernel
G-Lingo: GBean (Geronimo bean) • Managed object that wraps a Geronimo service • Class or object with a kernel-managed lifecycle: start, stop, fail • Geronimo creates them to manage deployed components • You can configure existing GBeans to add services to an application (in deployment plan). E.g. • GBean wraps a Tomcat access log "Valve" for a web app • GBean wraps customized security realm • You must create GBean if you add new service GBeans Configuration Management Geronimo Kernel
G-Lingo: GBeans / MBeans (JMX managed bean) • Kernel exposes GBeans as MBeans for management • Kernel creates and uses JMX MBeanServer for object management • Kernel wraps all GBeans in an MBean • Exposes MBeans/GBeans for external management and monitoring MBeans GBeans Configuration Management Geronimo Kernel
Module Module Module Module Application Clients EJB Applications Resource Adapters Web Applications RAR JAR WAR JAR 22 22 22 22 G-Lingo: Module(not a Geronimo-specific term) • J2EE term for a deployable J2EE component • Every module requires J2EE deployment descriptor • Optional: Geronimo-specific deployment descriptor • It's called a Deployment Plan when used outside JAR file Enterprise Archive EAR
Geronimo Deployment Plan .xml J2EE Module J2EE Module No plan supplied: Container uses default values Geronimo Default Deployment Plan .xml J2EE Deployment Descriptor .xml J2EE Deployment Descriptor .xml G-Lingo: Deployment Plan, 3 Options • No plan: Use Geronimo’s module defaults (war, jar, ear) • Supply deployment plan within the jar (requires specific name) • 3. Supply plan to deploy tool as external file J2EE Module Geronimo Deployment Plan .xml J2EE Deployment Descriptor .xml
G-Lingo Deployment Plan - File Names • Required plan file name when included in module JAR
Deployment Facilities • Deploying to Geronimo • Deploy tool: Java CLI application packaged as executable JAR: deployer.jar • Connects to Geronimo locally (remotely?) over RMI • JSR-88 deployment tool • Maven deployer plug-in for Maven fans • Also maven plug-in to stop/start Geronimo Deployment and Management Tools
Deployment Examples • Demo of deploying three types of modules: • Web application • EJB • Web Service • Additional topics covered during the demo • Starting/Stopping Geronimo • Configurations • Derby database and database connectors • Customizing the message system
Geronimo Coming Features • J2EE 1.4 certification • Passed J2EE 1.4 TCK on June 29 at 9:17:07.002 pm PDT • Better management and monitoring tools • Clustering and failover support • wadi.codehaus.org • Spring integration • EJB 3.0 support
Geronimo Resources • Online information • geronimo.apache.org • Download the source to build • Documentation? • wiki.apache.org/geronimo • How to build/install from source • NB: Wiki has history of stale information • issues.apache.org/jira/secure/BrowseProject.jspa?id=10220 • Bugs and roadmap to future releases • geronimolive.com • Links to articles and supporting open source projects • jroller.com/page/GeronimoLive • Blog on Geronimo
Geronimo Community • Join the Apache Geronimo Community • Use Geronimo and provide feedback • Something broken or unclear? • Have a suggestion for new features? • Develop and donate code • Submit bug patches, improvements • Keep updated on news – Mailing Lists • Users: user-subscribe@geronimo.apache.org • Developers: dev-subscribe@geronimo.apache.org • Join the discussion - IRC • Used by development team for daily communication [irc.freenode.net channel: #geronimo]
Questions? Tom McQueeney tom@mcqueeney.com www.mcqueeney.com www.geronimolive.com