-1 for this change. Reasons: * If you generate the Javadoc from this code, there is ZERO documentation for it. * As discussed previously, it is ugly and not generic enough. * There are at least two better solutions: add a specific method to AxisObserver or add a completely new type of event listener. Personally, I favor the second solution.
Andreas On Thu, May 28, 2009 at 11:31, <ami...@apache.org> wrote: > Author: amilas > Date: Thu May 28 09:31:54 2009 > New Revision: 779507 > > URL: http://svn.apache.org/viewvc?rev=779507&view=rev > Log: > applied the patch for AXIS2-4347 > > Modified: > > webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.java > > webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisServiceGroup.java > > webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java > > webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisEvent.java > > Modified: > webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.java > URL: > http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.java?rev=779507&r1=779506&r2=779507&view=diff > ============================================================================== > --- > webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.java > (original) > +++ > webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.java > Thu May 28 09:31:54 2009 > @@ -27,6 +27,7 @@ > import org.apache.axis2.AxisFault; > import org.apache.axis2.Constants; > import org.apache.axis2.engine.AxisConfiguration; > +import org.apache.axis2.engine.AxisEvent; > import org.apache.axis2.i18n.Messages; > import org.apache.axis2.modules.Module; > import org.apache.axis2.util.JavaUtils; > @@ -436,6 +437,8 @@ > */ > public void engageModule(AxisModule axisModule) throws AxisFault { > engageModule(axisModule, this); > + AxisConfiguration config = getAxisConfiguration(); > + config.notifyObservers(new AxisEvent(AxisEvent.MODULE_ENGAGED , > this) , axisModule); > } > > /** > @@ -513,6 +516,11 @@ > if (isEngaged(module)) { > onDisengage(module); > engagedModules.remove(module.getArchiveName()); > + /** > + * if a Disengaged module belogs to an AxisService or an > Operation > + * notify with a serviceUpdate > + */ > + getAxisConfiguration().notifyObservers(new > AxisEvent(AxisEvent.MODULE_DISENGAGED, this), module); > } > } > > > Modified: > webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisServiceGroup.java > URL: > http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisServiceGroup.java?rev=779507&r1=779506&r2=779507&view=diff > ============================================================================== > --- > webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisServiceGroup.java > (original) > +++ > webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisServiceGroup.java > Thu May 28 09:31:54 2009 > @@ -146,7 +146,8 @@ > AxisService service = getService(name); > > if (service != null) { > - getAxisConfiguration().notifyObservers(AxisEvent.SERVICE_REMOVE, > service); > + getAxisConfiguration().notifyObservers(new > AxisEvent(AxisEvent.SERVICE_REMOVE,service), > + service); > } > > removeChild(name); > > Modified: > webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java > URL: > http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java?rev=779507&r1=779506&r2=779507&view=diff > ============================================================================== > --- > webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java > (original) > +++ > webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java > Thu May 28 09:31:54 2009 > @@ -247,7 +247,7 @@ > } > > allModules.put(module.getArchiveName(), module); > - notifyObservers(AxisEvent.MODULE_DEPLOY, module); > + notifyObservers(new AxisEvent(AxisEvent.MODULE_DEPLOY,null), module); > > // Registering the policy namespaces that the module understand > registerModulePolicySupport(module); > @@ -332,7 +332,7 @@ > public synchronized void addServiceGroup(AxisServiceGroup > axisServiceGroup) > throws AxisFault { > axisServiceGroup.setParent(this); > - notifyObservers(AxisEvent.SERVICE_DEPLOY, axisServiceGroup); > + notifyObservers(new AxisEvent(AxisEvent.SERVICE_DEPLOY, > axisServiceGroup), axisServiceGroup); > AxisService axisService; > > Iterator<AxisService> services = axisServiceGroup.getServices(); > @@ -395,7 +395,7 @@ > } > > if (!axisService.isClientSide()) { > - notifyObservers(AxisEvent.SERVICE_DEPLOY, axisService); > + notifyObservers(new AxisEvent(AxisEvent.SERVICE_DEPLOY > ,axisService ), axisService); > } > } > // serviceGroups.put(axisServiceGroup.getServiceGroupName(), > @@ -440,7 +440,7 @@ > AxisService axisService = services.next(); > allServices.remove(axisService.getName()); > if (!axisService.isClientSide()) { > - notifyObservers(AxisEvent.SERVICE_REMOVE, axisService); > + notifyObservers(new AxisEvent(AxisEvent.SERVICE_REMOVE , > axisService), axisService); > } else { > isClientSide = true; > } > @@ -457,7 +457,7 @@ > } > removeChild(serviceGroupName); > if (!isClientSide) { > - notifyObservers(AxisEvent.SERVICE_REMOVE, axisServiceGroup); > + notifyObservers(new AxisEvent(AxisEvent.SERVICE_REMOVE, > axisServiceGroup), axisServiceGroup); > } > > return axisServiceGroup; > @@ -570,12 +570,10 @@ > } > } > > - public void notifyObservers(int event_type, AxisService service) { > + public void notifyObservers(AxisEvent event, AxisService service) { > if (service.isClientSide()) > return; > > - AxisEvent event = new AxisEvent(event_type); > - > for (AxisObserver observer : observersList) { > try { > observer.serviceUpdate(event, service); > @@ -586,8 +584,7 @@ > } > } > > - public void notifyObservers(int event_type, AxisModule moule) { > - AxisEvent event = new AxisEvent(event_type); > + public void notifyObservers(AxisEvent event, AxisModule moule) { > > for (AxisObserver anObserversList : observersList) { > > @@ -600,8 +597,7 @@ > } > } > > - public void notifyObservers(int event_type, AxisServiceGroup > serviceGroup) { > - AxisEvent event = new AxisEvent(event_type); > + public void notifyObservers(AxisEvent event, AxisServiceGroup > serviceGroup) { > > for (AxisObserver anObserversList : observersList) { > > @@ -1143,7 +1139,7 @@ > serviceName)); > } > service.setActive(false); > - notifyObservers(AxisEvent.SERVICE_STOP, service); > + notifyObservers(new AxisEvent(AxisEvent.SERVICE_STOP , service), > service); > } > > public void startService(String serviceName) throws AxisFault { > @@ -1153,7 +1149,7 @@ > serviceName)); > } > service.setActive(true); > - notifyObservers(AxisEvent.SERVICE_START, service); > + notifyObservers(new AxisEvent(AxisEvent.SERVICE_START , service), > service); > } > > public List<AxisModule> getModulesForPolicyNamesapce(String namesapce) { > > Modified: > webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisEvent.java > URL: > http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisEvent.java?rev=779507&r1=779506&r2=779507&view=diff > ============================================================================== > --- > webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisEvent.java > (original) > +++ > webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisEvent.java > Thu May 28 09:31:54 2009 > @@ -20,6 +20,8 @@ > > package org.apache.axis2.engine; > > +import org.apache.axis2.description.AxisDescription; > + > public class AxisEvent { > > /** > @@ -32,14 +34,30 @@ > public static final int SERVICE_START = 3; > public static final int MODULE_DEPLOY = 4; > public static final int MODULE_REMOVE = 5; > + public static final int MODULE_ENGAGED = 6; > + public static final int MODULE_DISENGAGED = 7; > + > + /** > + * hold a reference to the AxisDiscription > + * that the AxisEvent must carry ot the Observer > + * this referrece can be null of not needed > + */ > + private AxisDescription axisDiscription; > + > private int EVENT_TYPE; > > - public AxisEvent(int EVENT_TYPE) { > + public AxisEvent(int EVENT_TYPE , AxisDescription axisDescription) { > this.EVENT_TYPE = EVENT_TYPE; > + this.axisDiscription = axisDiscription; > + > } > > public int getEventType() { > return EVENT_TYPE; > } > + > + public AxisDescription getAxisDiscription() { > + return axisDiscription; > + } > > } > > >