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>