costin      2002/11/05 11:15:52

  Modified:    modeler/src/java/org/apache/commons/modeler Registry.java
  Log:
  Few changes in the new code ( old code is not affected - I hope )
  
  Revision  Changes    Path
  1.7       +35 -18    
jakarta-commons/modeler/src/java/org/apache/commons/modeler/Registry.java
  
  Index: Registry.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/modeler/src/java/org/apache/commons/modeler/Registry.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Registry.java     2 Nov 2002 06:52:12 -0000       1.6
  +++ Registry.java     5 Nov 2002 19:15:52 -0000       1.7
  @@ -111,7 +111,7 @@
        * The set of ManagedBean instances for the beans this registry
        * knows about, keyed by name.
        */
  -    private HashMap beans = new HashMap();
  +    private HashMap descriptors = new HashMap();
   
   
       /**
  @@ -129,9 +129,9 @@
        * @param bean The managed bean to be added
        */
       public void addManagedBean(ManagedBean bean) {
  -
  -        beans.put(bean.getName(), bean);
  -
  +        // called from digester
  +        descriptors.put(bean.getName(), bean);
  +        
       }
   
   
  @@ -143,7 +143,7 @@
        */
       public ManagedBean findManagedBean(String name) {
   
  -        return ((ManagedBean) beans.get(name));
  +        return ((ManagedBean) descriptors.get(name));
   
       }
   
  @@ -154,7 +154,7 @@
        */
       public String[] findManagedBeans() {
   
  -        return ((String[]) beans.keySet().toArray(new String[0]));
  +        return ((String[]) descriptors.keySet().toArray(new String[0]));
   
       }
   
  @@ -169,7 +169,7 @@
       public String[] findManagedBeans(String group) {
   
           ArrayList results = new ArrayList();
  -        Iterator items = beans.values().iterator();
  +        Iterator items = descriptors.values().iterator();
           while (items.hasNext()) {
               ManagedBean item = (ManagedBean) items.next();
               if ((group == null) && (item.getGroup() == null)) {
  @@ -191,7 +191,7 @@
        */
       public void removeManagedBean(ManagedBean bean) {
   
  -        beans.remove(bean.getName());
  +        descriptors.remove(bean.getName());
   
       }
   
  @@ -401,32 +401,50 @@
       }
   
   
  +    /** Main registration method
  +     *
  +     */
       public void registerComponent(Object bean, String domain, String type,
                                     String name)
              throws Exception
       {
  +        if( type==null ) {
  +            // XXX find type from bean name.
  +        }
           ManagedBean managed = registry.findManagedBean(type);
  +        if( managed==null ) {
  +            // XXX use introspection ( or check super classes ?? )
  +            // I think introspection + super classes ( i.e. use descriptions, etc)
  +        }
   
  +        // XXX The real mbean is created and registered
           ModelMBean mbean = managed.createMBean(bean);
   
  +        if( name==null ) {
  +            // XXX generate a seq or hash ?
  +            // should we genereate the seq automatically ?
  +        }
           getServer().registerMBean( mbean, new ObjectName( domain + ": type="
                   + type + " ; " + name ));
       }
   
  -    public void registerClass(Class beanClass, String domain, String className,
  -                                  String type, Object source)
  -    {
  -    }
  -
  -    public void unregisterMBean( String name ) {
  +    public void unregisterComponent( String name ) {
           try {
               ObjectName oname=new ObjectName( name );
   
  +            // XXX remove from our tables.
               getServer().unregisterMBean( oname );
           } catch( Throwable t ) {
               log.error( "Error unregistering mbean ", t );
           }
  -      }
  +    }
  +
  +
  +    public void registerClass(Class beanClass, String domain, String className,
  +                                  String type, Object source)
  +    {
  +        ManagedBean managed=createManagedBean(domain, beanClass, type);
  +    }
   
   
       public String registerMBean( String domain, String name ) {
  @@ -550,7 +568,7 @@
        * @todo Deal with constructors
        *       
        */
  -    private ManagedBean createManagedBean(String domain, Object real, String type) {
  +    private ManagedBean createManagedBean(String domain, Class realClass, String 
type) {
           ManagedBean mbean= new ManagedBean();
           
           Method methods[]=null;
  @@ -563,7 +581,6 @@
           // key: operation val: invoke method
           Hashtable invokeAttMap=new Hashtable();        
           
  -        Class realClass=real.getClass();
           methods = realClass.getMethods();
   
           initMethods(realClass, methods, attMap, getAttMap, setAttMap, invokeAttMap 
);
  
  
  

--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@;jakarta.apache.org>

Reply via email to