Creating Manageable Systems With JMX, Spring, AOP, and Groovy

Similar documents
GlassFish Monitoring with JMX, Jconsole, Glassbox and AMX

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics

Migrating traditional Java EE applications to mobile

Enterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009

Java Management Extensions (JMX ) Technology: Who s Doing What

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

CONFIGURING A SPRING DEVELOPMENT ENVIRONMENT

Oracle Corporation

COURSE DETAILS: CORE AND ADVANCE JAVA Core Java

1 Markus Eisele, Insurance - Strategic IT-Architecture

Specialized - Mastering Spring 4.2

Enterprise AOP With the Spring Framework

Developing Applications with Java EE 6 on WebLogic Server 12c

Spring Interview Questions

Improve and Expand JavaServer Faces Technology with JBoss Seam

2005, Cornell University

Java Platform, Enterprise Edition 6 with Extensible GlassFish Application Server v3

Spring Framework 2.0 New Persistence Features. Thomas Risberg

Spring Dynamic Modules

Fast Track to Spring 3 and Spring MVC / Web Flow

Grails Seminar 11/12/09. Groovy And Grails. An Overview

SPRING MOCK TEST SPRING MOCK TEST I

Spring Soup with OC4J and MBeans

<Insert Picture Here> Productive JavaEE 5.0 Development

IBM WebSphere Application Server 8. Java EE 6 Feature Packs

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module

Java EE 6: Develop Business Components with JMS & EJBs

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format.

CORE JAVA. Saying Hello to Java: A primer on Java Programming language

Grid Infrastructure Monitoring Service Framework Jiro/JMX Based Implementation

Architecting Java solutions for CICS

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline

Oracle Fusion Middleware 11g: Build Applications with ADF I

J2EE Interview Questions

Data Access on Tourism Resources Management System Based on Spring JDBC Jifu Tong

Architect Exam Guide. OCM EE 6 Enterprise. (Exams IZO-807,1ZO-865 & IZO-866) Oracle Press ORACLG. Paul R* Allen and Joseph J.

What can JMX do for you? Simon Brown

Lightweight J2EE Framework

Spring Framework 2.5: New and Notable. Ben Alex, Principal Software Engineer, SpringSource

Oracle WebLogic Diagnostics and Troubleshooting

Spring framework was initially written by Rod Johnson and was first released under the Apache 2.0 license in June 2003.

<Insert Picture Here> Java Virtual Developer Day

com Spring + Spring-MVC + Spring-Boot + Design Pattern + XML + JMS Hibernate + Struts + Web Services = 8000/-

Spring, a J2EE extension framework. JUGS presentation by Philipp H. Oser

Java J Course Outline

Apache Geronimo: A Peek Under the Hood

Expeditor Client for Desktop. Web Container and Web Applications

Java EE 7: Back-End Server Application Development

Contents at a Glance. vii

Never Write A main() Again!

CMP 436/774. Introduction to Java Enterprise Edition. Java Enterprise Edition

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1

Designing a Distributed System

Artix ESB. Management Guide, Java Runtime. Version 5.5, December 2008

New Features in EJB 3.1

Java EE 6 - Update Harpreet Singh GlassFish Portfolio Product Manager

JAVA. Java Management Extensions JMX

Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand)

Application Servers in E-Commerce Applications

Spring 2.0 and Beyond

Adding Telephony to Java Technology-Based Enterprise Applications

Oracle Fusion Middleware 11g: Build Applications with ADF I

7. Component Models. Distributed Systems Prof. Dr. Alexander Schill

Oracle WebLogic Server

The Next Generation. Prabhat Jha Principal Engineer

Top Ten Enterprise Java performance problems. Vincent Partington Xebia

Oracle WebLogic Devcast Series: JMX for DevOps. Dr. Frank Munz ORACLE PRODUCT LOGO

POJOs to the rescue. Easier and faster development with POJOs and lightweight frameworks

JVA-163. Enterprise JavaBeans

Not just an App. Server

Introduction to Spring Framework: Hibernate, Web MVC & REST

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

Spring Persistence. with Hibernate PAUL TEPPER FISHER BRIAN D. MURPHY

BEAWebLogic Server. Introduction to BEA WebLogic Server and BEA WebLogic Express

Deploying Java Platform, Standard Edition (Java SE Platform) in Today s Embedded Devices

Java Management Extensions (JMX ) Technology Update TS-5199

GlassFish v2.1 & Enterprise Manager. Alexis Moussine-Pouchkine Sun Microsystems

Oracle Fusion Middleware 11g: Build Applications with ADF Accel

Java AOP in Spring 2.0 Rob Harrop, Interface21 Ltd.

J2EE - Version: 25. Developing Enterprise Applications with J2EE Enterprise Technologies

Software Components and Distributed Systems

Oracle ADF: The technology behind project fusion. Lynn Munsinger Principal Product Manager Application Development Tools Oracle Corporation

WebSphere Application Server, Version 5. What s New?

Sun Java Studio Creator. Ken Paulsen Staff Engineer Sun Microsystems, Incorporated (Slides by: Craig R. McClanahan)

PSD1B Advance Java Programming Unit : I-V. PSD1B- Advance Java Programming

Advanced Enterprise Debugging

Deccansoft Software Services. J2EE Syllabus

~ Ian Hunneybell: CBSD Revision Notes (07/06/2006) ~

Developing Manageable Applications Using JMX for Oracle WebLogic Server c (12.1.3)

Java EE 6: Develop Web Applications with JSF

An Application for Monitoring Solr

WebSphere Application Server What s new in WAS V7.0 for Developers

Groovy = Java Technology + Ruby + Python for the JVM

Comparative Analysis of EJB3 and Spring Framework

PaaS Cloud mit Java. Eberhard Wolff, Principal Technologist, SpringSource A division of VMware VMware Inc. All rights reserved

IMS Client Platform and IMS End-to-End

Sitesbay.com. A Perfect Place for All Tutorials Resources. Java Projects C C++ DS Interview Questions JavaScript

Bytecode Manipulation Techniques for Dynamic Applications for the Java Virtual Machine

Roadmap to Cloud with Cloud Application Foundation


Transcription:

Creating Manageable Systems With JMX, Spring, AOP, and Groovy Vladimir Vivien Sr. Software Engineer Simplius, LLC http://simpli.us/ TS-1106 2007 JavaOne SM Conference Session TS-1106

Goal Build runtime manageable systems Explore how to build manageable systems using Java Management Extensions (JMX ), AOP, and Groovy within the context of a Spring container. 2007 JavaOne SM Conference Session TS-1106 2

Agenda Motivation Introduction to JMX Technology JMX Technology and the Spring Framework (v.2) JMX Technology With Spring AOP JMX Technology Notification and Spring Agile JMX Technology Notification Handling Put It All Together: Food Planet Demo Summary Q&A 2007 JavaOne SM Conference Session TS-1106 3

Agenda Motivation Introduction to JMX Technology JMX Technology and the Spring Framework (v.2) JMX Technology With Spring AOP JMX Technology Notification and Spring Agile JMX Technology Notification Handling Put It All Together: Food Planet Demo Summary Q&A 2007 JavaOne SM Conference Session TS-1106 4

Perilous Driving Would you drive this car? No speedometer No gas gauge No engine temp gauge No instrument panel No signal flashers Most deployed apps have similar shortcomings System is a black box No runtime visibility No way to see app's states 2007 JavaOne SM Conference Session TS-1106 5

Motivation What do we want to achieve Better visibility of system at runtime Go beyond simple event log files Ability to monitor Expose states/health of application in real time Take preventive measures where possible React intuitively and quickly to changes and requirements Greater management Interactively control application in user-friendly way Ability to change operational parameters on the fly Avoid down time for critical applications 2007 JavaOne SM Conference Session TS-1106 6

Agenda Motivation Introduction to JMX Technology JMX Technology and the Spring Framework (v.2) JMX Technology With Spring AOP JMX Technology Notification and Spring Agile JMX Technology Notification Handling Put It All Together: Food Planet Demo Summary Q&A 2007 JavaOne SM Conference Session TS-1106 7

JMX Technology What is JMX Technology? Java Management extension Mature API [originally Java Specification Request (JSR)-3] Standard Java API for exposing management Includes a server and wire protocols for connection Provides several monitoring and a timer components Main usage is management and monitoring Part of core Java platform starting with version 5 VM information exposed through JMX technology Instrument and expose your own application Management standard for Java Platform, Enterprise Edition (Java EE platform) artifacts (JSR 77) 2007 JavaOne SM Conference Session TS-1106 8

JMX Management Architecture JVM = Java Virtual Machine The terms Java Virtual Machine and JVM mean a Virtual Machine for the Java platform. 2007 JavaOneSM Conference Session TS-1106 9

The MBean Server The management context Container for management components Allows registry, discovery, and query of components Handles interaction with components from client Exposes component operations and properties Provides event bus Register to receive event notification Broadcast events to registered components Server is exposed as management component 2007 JavaOne SM Conference Session TS-1106 10

The Management Bean (MBean) How management information is exposed Exposes managed resources in standard way MBean API: Standard MBean interface The simplest way to implement management Requires naming pattern (i.e. xxxmbean) Others include Dynamic, Model, and Open MBean Registered in the MBean Server Makes it visible to management client Exposes attributes (JavaBeans architecture-style getters/setters) Expose operations (interface methods) Event Notifications 2007 JavaOne SM Conference Session TS-1106 11

The Object Name javax.management.objectname Uniquely identifies registered MBeans Supports flexible naming strategy Format [domain]:key=value[,key=value]* Example demo.service:type=greeting,description=greets the world Use by management tool extensively 2007 JavaOne SM Conference Session TS-1106 12

1 2 3 Exposing an MBean Code public interface GreetServiceMBean { public void setlanguage(string lang); public void start(); public void stop(int val); } public class GreetService implements GreetServiceMBean { public void setlanguage(string lang){...} public boolean start() {...} public void stop(int val) {...} } public void RegisterMBean () throws Exception { MbeanServer svr = ManagementFactory.getPlatformServer(); ObjectName objname = new ObjectName("demo.service:type=Greet..."); svr.registermbean(new GreetService(), objname); } 2007 JavaOne SM Conference Session TS-1106 13

Exposing an MBean Console View 2007 JavaOne SM Conference Session TS-1106 14

Managing the VM Starting with Java platform v.5, VM includes instrumentation VM exposes numerous information as MBeans Class loading information Memory consumption Garbage collection Threads Etc. JConsole makes a formidable profiling tool Ability to look into VM's activities with no code 2007 JavaOne SM Conference Session TS-1106 15

Management Console JConsole Interactive desktop management tool Introduced in Java Development Kit (JDK ) 5 release Profiles memory, threads, GC Supports for remote connection Attaches to running VM Java platform v.5 requires switch -Dcom.sun.management.jmxremote 2007 JavaOne SM Conference Session TS-1106 16

DEMO Exposing MBeans/JConsole 2007 JavaOne SM Conference Session TS-1106 17

Agenda Motivation Introduction to JMX Technology JMX Technology and the Spring Framework (v.2) JMX Technology with Spring AOP JMX Technology Notification and Spring Agile JMX Technology Notification Handling Put It All Together: Food Planet Demo Summary Q&A 2007 JavaOne SM Conference Session TS-1106 18

Why Spring? Extensive support for JMX technology Lightweight and portable Simplified development model using POJO's Platform for modular development Consistent Infrastructure API's Enterprise Java technology Enterprise JavaBeans (EJB ) architecture, Java Message Service (JMS) API, J2EE Connector Architecture (JCA), Web Service, JMX technology Data Access Java DataBase Connectivity (JDBC ) software, Hibernate, TopLink, Java Data Objects (JDO), Java Persistence API (JPA) Web Spring MVC, Tapestry, JavaServer Faces, Struts, etc. Others AOP, scripting, scheduling, concurrency http://springframework.org/ 2007 JavaOne SM Conference Session TS-1106 19

JMX Technology and Spring Declaratively registers any POJO as MBeans No special interface or naming patterns required Spring provides the MBean Exporter component Full control and flexibility: Support several strategies for ObjectName MBeanInfoAssembler API Supports different strategies for exporting MBeans Use list of interfaces for management Use Method names to export for management Use code-level annotation to customize export Specify MBean registration behavior 2007 JavaOne SM Conference Session TS-1106 20

JMX Technology and Spring (Cont.) Wire POJO's as JMX technology notification listeners Use Spring's supplied MBean server or provide your own (defaults to VM's) Auto detects classes with JMX technology naming pattern MBeans can take advantage of DI container Declarative injection of MBean dependencies Easily establish relationship between MBeans 2007 JavaOne SM Conference Session TS-1106 21

Simple Spring JMX Technology Exporter public class GreetService { public void setlanguage(string lang){...} 1 public boolean start() {...} public void stop(int val) {...} } <bean id="greetsvc" class="demo.greetservice"/> spring-context.xml <bean id="exporter" class="org.springframework.jmx.export.mbeanexporter"> 2 <property name="beans"> <map> <entry key="demo.service:type=greet..." value-ref="greetsvc"/> </map> </property> </bean> ObjectName Spring Exporter 2007 JavaOne SM Conference Session TS-1106 22

Metadata Info Assembler Using annotation to create management interfaces MetaDataMBeanInfoAssembler class Builds MBeans using code-level annotations Supports Java platform annotations Supports Commons Attributes annotations Automatically registers beans as MBeans that have the @ManagedResource annotation Granular control of MBean attributes/operations Use @ManagedAttribute annotation for bean methods However, introduces dependency on Spring 2007 JavaOne SM Conference Session TS-1106 23

Java Platform v.5 Annotation Example @ManagedResource(objectName="demo.service:type=Greet...") public class GreetService { 1 @ManagedAttribute public void setlanguage(string lang){...}... } <bean id="greetsvc" class="demo.greetservice"/> <bean id="attribsrc" class="...export.annotation.annotationjmxattributesource"/> 2 <bean id="exporter" class="...export.mbeanexporter"> <property name="autodetect" value="true"/> <property name= assembler > <bean class="...export.assembler.metadatambeaninfoassembler"> <property name="attributesource" ref="attribsrc"/> </bean> </property> </bean> 2007 JavaOne SM Conference Session TS-1106 24

DEMO JMX Technology and Spring 2007 JavaOne SM Conference Session TS-1106 25

Agenda Motivation Introduction to JMX Technology JMX Technology and the Spring Framework (v.2) JMX Technology With Spring AOP JMX Technology Notification and Spring Agile JMX Technology Notification Handling Put It All Together: Food Planet Demo Summary Q&A 2007 JavaOne SM Conference Session TS-1106 26

JMX Technology and AOP Leveraging AOP for management Aspects can provide clean separation of concerns Aspects make infrastructural concerns, such as management, transparent to other concerns Business logic is cleaner Remove dependency on management code Reduce/eliminate code entanglement AOP suited for JMX technology monitoring Aspects collects system states as application executes Aspects channel instrumented data to MBeans 2007 JavaOne SM Conference Session TS-1106 27

Spring AOP The easier way to aspects A proxy-based implementation Only supports method invocation interception Intercept methods calls on Spring beans Spring uses the popular AspectJ language Spring aspects are applied at runtime Spring makes it easy to create aspects Declaratively any Spring bean may be an aspect Annotation supports @AspectJ code-level annotation Annotated class can be used with AspectJ http://springframework.org/documentation/ Chapter 6 2007 JavaOne SM Conference Session TS-1106 28

JMX Technology and Spring AOP Leveraging Spring AOP for management Augment management infrastructure Transparently aggregate data for instrumentation Push instrumented data to management beans 2007 JavaOne SM Conference Session TS-1106 29

Using Spring AOP 1 2 public class GreetingAspect { private GreetingMbean mbean; public void beforegreeting() {...} public void aftergreeting() {...} } <bean id="aspectbean" class="demo.greetaspect"/> <aop:config> <aop:pointcut id="mypointcut" Aspect bean Management Bean spring-context.xml Intercepts expression="execution(* demo.greetserver.greet(..)) "/> <aop:aspect id="aspect" ref="aspectbean"> <aop:before pointcut-ref="mypointcut" method="beforegreeting"/> <aop:after pointcut-ref="mypointcut" method="aftergreeting"/> </aop:aspect> </aop:config> 2007 JavaOne SM Conference Session TS-1106 30

Agenda Motivation Introduction to JMX Technology JMX Technology and the Spring Framework (v.2) JMX Technology With Spring AOP JMX Technology Notification and Spring Agile JMX Technology Notification Handling Put It All Together: Food Planet Demo Summary Q&A 2007 JavaOne SM Conference Session TS-1106 31

JMX Technology Notification Model JMX technology has a rich notification model Integral part of JMX technology Interfaces included in JMX technology notification model Notificationcontent of notification NotificationBroadcaster source of event notification NotificationListener recipient of notification NotificationFilter allows filtering of notifications The MBean server broadcasts numerous events Your Mbeans can broadcast/listen for events Management tools can subscribe to notifications 2007 JavaOne SM Conference Session TS-1106 32

Notification Object Looking inside the notification Object Interface used for event notification Event broadcasters pass an instance of this class to event listeners Contains String representing notification type A JMX technology ObjectName reference to broadcaster Sequence number for the event Time stamp when notification was created A string message about the event A broadcaster supplied data object 2007 JavaOne SM Conference Session TS-1106 33

JMX Technology Listener Registration 1public class MyTimer extends javax.management.timer.timer{} public class TimerLstnr implements NotificationListener{ 2 public handlenotification(notification n, Object obj){...} } 3 public class RegisterListener throws Exception{ demo.mytimer timer = new demo.mytimer(); Notification n = new Notification( timer.heartbeat, null, new Date(System.currentMillis())); timer.setnotification(n); timer.setperiod(3000); } NotifycationFilterSupport f = new NotificationFilterS... f.enabletype( timer.heartbeat ); TimerLstnr lstnr = new TimerLstnr(); timer.addlistener(lstnr,f,null); 2007 JavaOne SM Conference Session TS-1106 34

Listener Registration With Spring <bean id="mytimer" class="demo.mytimer"> <property name period value= 3000 /> </bean> <bean id="exporter" class="...export.mbeanexporter"> <property name="beans"> <map><entry key="jmx.timer:type=timer" value-ref="mytimer"/></map> </property> <property name="notificationlistenermappings"> <map> <entry key="jmx.timer:type=timer"> <bean class="demo.timerlstnr"/> </entry> </map> </property> </bean> 2007 JavaOne SM Conference Session TS-1106 35

Agenda Motivation Introduction to JMX Technology JMX Technology and the Spring Framework (v.2) JMX Technology With Spring AOP JMX Technology Notification and Spring Agile JMX Technology Notification Handling Put It All Together: Food Planet Demo Summary Q&A 2007 JavaOne SM Conference Session TS-1106 36

Agile Notification Handling Motivation for using dynamic language for management Mechanism to react to JMX technology notifications Agile adaptation to changes in business conditions and requirements Autonomous reactions Capture business rules and work flows Apply rules automatically with no intervention Extends system functionalities while core infrastructure remains intact Ability to react preventively to adverse conditions 2007 JavaOne SM Conference Session TS-1106 37

Why Groovy? Using Groovy as glue code for monitored events Integrates well with the Spring Framework Popular language and described as Agile dynamic language for the Java platform inspired by Python, Ruby, and Smalltalk... Compiles directly into Java bytecode Groovy scripts import Java objects (vice versa) Some interesting language features include: Closures Duck typing optional line terminator and method parentheses Extended syntactical support for collections 2007 JavaOne SM Conference Session TS-1106 38

Groovy and Spring Integrating Groovy and Spring Spring 2.0 introduces support for Groovy Also supports JRuby and BeanShell Declaratively wire Groovy bean into Spring Groovy bean can use getter/setter injection Groovy bean must implement Java platform interface Spring requires an interface for proper typing Refreshable flag updates Groovy bean http://springframework.org/documentation Chapter 24 http://groovy.codehaus.org/ 2007 JavaOne SM Conference Session TS-1106 39

Groovy Bean With Spring 1 public interface Action { public void act(); public setvalue(string v); } <beans> Java Interface class GAction extends Action { public act() {... } String value } Groovy Script spring-context.xml 2 <lang:groovy id="action" refresh-check-delay="5000" script-source="/meta-inf/script/gaction.groovy"> <lang:property name="value" value="run"/> </lang:groovy> Groovy Bean <bean id= listener class= demo.greetinglistener > <property name= action ><ref bean= action /></property> </bean> </beans> 2007 JavaOne SM Conference Session TS-1106 40

Agenda Motivation Introduction to JMX Technology JMX Technology and the Spring Framework (v.2) JMX Technology With Spring AOP JMX Technology Notification and Spring Agile JMX Technology Notification Handling Put It All Together: Food Planet Demo Summary Q&A 2007 JavaOne SM Conference Session TS-1106 41

Food Planet Components 2007 JavaOneSM Conference Session TS-1106 42

Food Planet Application Using JMX technology, Spring AOP, and Groovy together Application runs within a Spring context JdbcTemplates provides database access Uses Spring MVC Controllers for web access Http Access Management Aspect intercepts requests to MVC Controllers Aspect aggregates data for instrumentation Http MBean provides monitoring/control of Http access Inventory Database Management Aspect intercepts database during purchase Aspect aggregates inventory data for instrumentation Inventory MBean monitors inventory level When item less then threshold sends notification Groovy bean is used to manage inventory level events 2007 JavaOne SM Conference Session TS-1106 43

DEMO Food Planet Online Store 2007 JavaOne SM Conference Session TS-1106 44

JMX Technology Design Issues Designing for management Management beans should be lightweight Develop meaningful MBean naming strategy Management consoles use bean name extensively Use JMX technology domain to group similar beans Use name's key/value attribute to categorize beans Usability issues Expose editable values (numbers, string, etc.) Avoid null attributes Avoid MBean methods with large parameter count 2007 JavaOne SM Conference Session TS-1106 45

JMX Technology Design Issues (Cont.) Create consistent management model Monitoring Use AOP to collect instrumented values Use JMX technology event bus to handle monitored events Application Control Provide life cycle and functional controls Use action verbs to describe push-button functions Configuration Update application parameters at runtime Provide feedback attributes to reflect changes 2007 JavaOne SM Conference Session TS-1106 46

Agenda Motivation Introduction to JMX Technology JMX Technology and the Spring Framework (v.2) JMX Technology With Spring AOP JMX Technology Notification and Spring Agile JMX Technology Notification Handling Put It All Together: Food Planet Demo Summary Q&A 2007 JavaOne SM Conference Session TS-1106 47

Summary Log files are no longer enough for the critical applications Ability to monitor system states and health in real time React preventively to adverse conditions JMX technology provides a robust management API to meet stringent management needs JMX technology includes a management server, event notification mechanism, monitoring service, and connectors for management clients It is available in JDK software starting with Java platform v.5 JMX technology and JConsole management console provide a full-featured diagnostic, monitoring, and VM profiling tool 2007 JavaOne SM Conference Session TS-1106 48

Summary (Cont.) JMX technology integrates well with the Spring Framework Any Spring POJO can be exposed for management Spring AOP can augment management infrastructure of system by transparently aggregate instrumented data The JMX technology Notification offers an impressive set of features use to broadcasts events to the JMX technology runtime Combined with a dynamic language such as Groovy, JMX technology can create agile mechanism to react to monitored event notifications in more expressive and rich manner 2007 JavaOne SM Conference Session TS-1106 49

For More Information JMX Technology http://java.sun.com/products/javamanagement/ Spring http://www.springframework.org/documentation Groovy http://groovy.codehaus.org/ AOP http://eclipse.org/aspectj 2007 JavaOne SM Conference Session TS-1106 50

For More Information Tools Jconsole http://java.sun.com/javase/6/docs/technotes/tools/share/jconsole.html MC4J http://mc4j.org/ Glassbox http://glassbox.com/ Broadway Project https://broadway.dev.java.net/ 2007 JavaOne SM Conference Session TS-1106 51

Q&A 2007 JavaOne SM Conference Session TS-1106 52

Creating Manageable Systems With JMX, Spring, AOP, and Groovy Vladimir Vivien Sr. Software Engineer Simplius, LLC http://simpli.us/ TS-1106 2007 JavaOne SM Conference Session TS-1106