djencks     2004/06/25 00:24:21

  Modified:    modules/kernel/src/java/org/apache/geronimo/gbean/jmx
                        GBeanMBean.java GBeanMBeanOperation.java
  Log:
  fix for GERONIMO-255
  
  Revision  Changes    Path
  1.27      +24 -17    
incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/gbean/jmx/GBeanMBean.java
  
  Index: GBeanMBean.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/gbean/jmx/GBeanMBean.java,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- GBeanMBean.java   15 Jun 2004 03:00:37 -0000      1.26
  +++ GBeanMBean.java   25 Jun 2004 07:24:20 -0000      1.27
  @@ -218,17 +218,21 @@
           }
   
           // operations
  -        Set operationsSet = new HashSet();
  +        Map operationsMap = new HashMap();
           for (Iterator iterator = gbeanInfo.getOperations().iterator(); 
iterator.hasNext();) {
               GOperationInfo operationInfo = (GOperationInfo) iterator.next();
  -            operationsSet.add(new GBeanMBeanOperation(this, operationInfo));
  -        }
  -        addManagedObjectOperations(operationsSet);
  -        operations = (GBeanMBeanOperation[]) operationsSet.toArray(new 
GBeanMBeanOperation[gbeanInfo.getOperations().size()]);
  -        for (int i = 0; i < operations.length; i++) {
  -            GBeanMBeanOperation operation = operations[i];
  +            GBeanMBeanOperation operation = new GBeanMBeanOperation(this, 
operationInfo);
               GOperationSignature signature = new 
GOperationSignature(operation.getName(), operation.getParameterTypes());
  -            operationIndex.put(signature, new Integer(i));
  +            operationsMap.put(signature, operation);
  +        }
  +        addManagedObjectOperations(operationsMap);
  +        operations = new GBeanMBeanOperation[operationsMap.size()];
  +        int opCounter = 0;
  +        for (Iterator iterator = operationsMap.entrySet().iterator(); 
iterator.hasNext();) {
  +            Map.Entry entry = (Map.Entry)iterator.next();
  +            operations[opCounter] = (GBeanMBeanOperation) entry.getValue();
  +            operationIndex.put(entry.getKey(), new Integer(opCounter));
  +            opCounter++;
           }
   
           // add notification type from the ManagedObject interface
  @@ -619,7 +623,7 @@
        * @param index the index of the attribute
        * @return the attribute value
        * @throws ReflectionException if a problem occurs while getting the 
value
  -     * @thorws IndexOutOfBoundsException if the index is invalid
  +     * @throws IndexOutOfBoundsException if the index is invalid
        */
       public Object getAttribute(int index) throws ReflectionException {
           GBeanMBeanAttribute attribute = attributes[index];
  @@ -627,7 +631,7 @@
       }
   
       /**
  -     * Gets an attirubte's value by name.  This get style is less efficient 
becuse the attribute must
  +     * Gets an attribute's value by name.  This get style is less efficient 
becuse the attribute must
        * first be looked up in a HashMap.
        *
        * @param attributeName the name of the attribute to retrieve
  @@ -650,7 +654,7 @@
        * @param index the index of the attribute
        * @param value the new value of attribute value
        * @throws ReflectionException if a problem occurs while setting the 
value
  -     * @thorws IndexOutOfBoundsException if the index is invalid
  +     * @throws IndexOutOfBoundsException if the index is invalid
        */
       public void setAttribute(int index, Object value) throws 
ReflectionException, IndexOutOfBoundsException {
           GBeanMBeanAttribute attribute = attributes[index];
  @@ -658,7 +662,7 @@
       }
   
       /**
  -     * Sets an attirubte's value by name.  This set style is less efficient 
becuse the attribute must
  +     * Sets an attribute's value by name.  This set style is less efficient 
becuse the attribute must
        * first be looked up in a HashMap.
        *
        * @param attributeName the name of the attribute to retrieve
  @@ -911,8 +915,9 @@
                           null));
       }
   
  -    private void addManagedObjectOperations(Set operationsSet) {
  -        operationsSet.add(new GBeanMBeanOperation(this,
  +    private void addManagedObjectOperations(Map operationsMap) {
  +        operationsMap.put(new GOperationSignature("start", 
Collections.EMPTY_LIST),
  +                new GBeanMBeanOperation(this,
                   "start",
                   Collections.EMPTY_LIST,
                   Void.TYPE,
  @@ -923,7 +928,8 @@
                       }
                   }));
   
  -        operationsSet.add(new GBeanMBeanOperation(this,
  +        operationsMap.put(new GOperationSignature("startRecursive", 
Collections.EMPTY_LIST),
  +                new GBeanMBeanOperation(this,
                   "startRecursive",
                   Collections.EMPTY_LIST,
                   Void.TYPE,
  @@ -934,7 +940,8 @@
                       }
                   }));
   
  -        operationsSet.add(new GBeanMBeanOperation(this,
  +        operationsMap.put(new GOperationSignature("stop", 
Collections.EMPTY_LIST),
  +                new GBeanMBeanOperation(this,
                   "stop",
                   Collections.EMPTY_LIST,
                   Void.TYPE,
  
  
  
  1.13      +4 -2      
incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/gbean/jmx/GBeanMBeanOperation.java
  
  Index: GBeanMBeanOperation.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/gbean/jmx/GBeanMBeanOperation.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- GBeanMBeanOperation.java  3 Jun 2004 07:24:19 -0000       1.12
  +++ GBeanMBeanOperation.java  25 Jun 2004 07:24:20 -0000      1.13
  @@ -17,11 +17,12 @@
   
   package org.apache.geronimo.gbean.jmx;
   
  -import java.lang.reflect.Method;
   import java.lang.reflect.InvocationTargetException;
  +import java.lang.reflect.Method;
   import java.util.ArrayList;
   import java.util.Collections;
   import java.util.List;
  +
   import javax.management.MBeanOperationInfo;
   import javax.management.MBeanParameterInfo;
   import javax.management.ReflectionException;
  @@ -145,4 +146,5 @@
               throw new ReflectionException(new 
InvocationTargetException(throwable));
           }
       }
  +
   }
  
  
  

Reply via email to