-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;
> +    }
>
>  }
>
>
>

Reply via email to