It's on my todo list. Andreas
On Thu, May 28, 2009 at 13:36, Amila Suriarachchi <amilasuriarach...@gmail.com> wrote: > > > On Thu, May 28, 2009 at 4:30 PM, Andreas Veithen <andreas.veit...@gmail.com> > wrote: >> >> -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. > > Could you please attach a patch for the better way you suggest? > > then we can compare the two and go the the best one. > > thanks, > Amila. >> >> * 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; >> > + } >> > >> > } >> > >> > >> > > > > > -- > Amila Suriarachchi > WSO2 Inc. > blog: http://amilachinthaka.blogspot.com/ >