Return-Path: Delivered-To: apmail-incubator-geronimo-cvs-archive@www.apache.org Received: (qmail 48988 invoked from network); 13 Nov 2003 02:49:28 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 13 Nov 2003 02:49:28 -0000 Received: (qmail 46015 invoked by uid 500); 13 Nov 2003 02:49:10 -0000 Delivered-To: apmail-incubator-geronimo-cvs-archive@incubator.apache.org Received: (qmail 45983 invoked by uid 500); 13 Nov 2003 02:49:09 -0000 Mailing-List: contact geronimo-cvs-help@incubator.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: geronimo-dev@incubator.apache.org Delivered-To: mailing list geronimo-cvs@incubator.apache.org Received: (qmail 45970 invoked from network); 13 Nov 2003 02:49:09 -0000 Received: from unknown (HELO minotaur.apache.org) (209.237.227.194) by daedalus.apache.org with SMTP; 13 Nov 2003 02:49:09 -0000 Received: (qmail 48968 invoked by uid 1711); 13 Nov 2003 02:49:26 -0000 Date: 13 Nov 2003 02:49:26 -0000 Message-ID: <20031113024926.48967.qmail@minotaur.apache.org> From: dain@apache.org To: incubator-geronimo-cvs@apache.org Subject: cvs commit: incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/service GeronimoMBeanInfo.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N dain 2003/11/12 18:49:26 Modified: modules/kernel/src/java/org/apache/geronimo/kernel/service GeronimoMBeanInfo.java Log: Added the ability to precreate the targets Revision Changes Path 1.6 +24 -14 incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/service/GeronimoMBeanInfo.java Index: GeronimoMBeanInfo.java =================================================================== RCS file: /home/cvs/incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/service/GeronimoMBeanInfo.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- GeronimoMBeanInfo.java 11 Nov 2003 16:00:59 -0000 1.5 +++ GeronimoMBeanInfo.java 13 Nov 2003 02:49:26 -0000 1.6 @@ -139,23 +139,26 @@ // // Derived // + targets.putAll(source.targets); String className = null; try { for (Iterator i = targetClasses.entrySet().iterator(); i.hasNext();) { Map.Entry entry = (Map.Entry) i.next(); - className = (String) entry.getValue(); - Class clazz = ParserUtil.loadClass(className); - - if(Modifier.isFinal(clazz.getModifiers())) { - throw new IllegalArgumentException("Target class cannot be final: " + className); + Object key = entry.getKey(); + if (!targets.containsKey(key)) { + className = (String) entry.getValue(); + Class clazz = ParserUtil.loadClass(className); + + if (Modifier.isFinal(clazz.getModifiers())) { + throw new IllegalArgumentException("Target class cannot be final: " + className); + } + + // Insert Magic Here + GeronimoMBeanTarget target = createTarget(clazz); + targets.put(key, target); + FastClass fastClass = FastClass.create(clazz); + targetFastClasses.put(key, fastClass); } - - // Insert Magic Here - GeronimoMBeanTarget target = createTarget(clazz); - //Object target = clazz.newInstance(); - targets.put(entry.getKey(), target); - FastClass fastClass = FastClass.create(clazz); - targetFastClasses.put(entry.getKey(), fastClass); } } catch (ClassNotFoundException e) { throw new IllegalArgumentException("Target class could not be loaded: className=" + className); @@ -224,6 +227,13 @@ return targets.get(name); } + public void setTarget(String name, Object target) { + if (immutable) { + throw new IllegalStateException("Data is no longer mutable"); + } + targets.put(name, target); + } + FastClass getTargetFastClass() { return (FastClass) targetFastClasses.get(DEFAULT_TARGET_NAME); } @@ -387,7 +397,7 @@ private static final MethodInterceptor NO_OP_METHOD_INTERCEPTOR = new MethodInterceptor() { public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { if (Modifier.isAbstract(method.getModifiers())) { - if(method.getReturnType() == Boolean.TYPE) { + if (method.getReturnType() == Boolean.TYPE) { return Boolean.TRUE; } else { return null;