axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sameera Jayasoma <sameera.madus...@gmail.com>
Subject Re: svn commit: r759032 - in /webservices/axis2/trunk/java/modules/kernel: src/org/apache/axis2/deployment/ src/org/apache/axis2/engine/ src/org/apache/axis2/util/ test-resources/deployment/faultyServiceshandling/ test-resources/deployment/faultyServ
Date Mon, 30 Mar 2009 06:34:18 GMT
Hi

On Mon, Mar 30, 2009 at 2:56 AM, Andreas Veithen
<andreas.veithen@gmail.com>wrote:

> Would it be possible to be a bit more careful (especially when adding
> new code to core classes such as AxisConfiguration) and to
> * avoid typos in public method names (see getFaultyServicsDuetoModules);
> * add a minimum of Javadoc (a method with a signature like
> HashMap<String, HashMap<String, FaultyServiceData>>
> getFaultyServicsDuetoModules() is probably not self-explaining for
> most people);
> * avoid using concrete collection classes and prefer interfaces when
> appropriate (Map instead of HashMap)?



Done [1].

Thanks for your comments.

Sameera

[1] https://issues.apache.org/jira/browse/AXIS2-4289



>
>
> Andreas
>
> On Fri, Mar 27, 2009 at 07:35,  <amilas@apache.org> wrote:
> > Author: amilas
> > Date: Fri Mar 27 06:34:58 2009
> > New Revision: 759032
> >
> > URL: http://svn.apache.org/viewvc?rev=759032&view=rev
> > Log:
> > commiting the patch for faulty service handling refer AXIS2-4286 and
> AXIS2-4281
> >
> > Added:
> >
>  webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/FaultyServiceData.java
> >
>  webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/
> >
>  webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/repo/
> >
>  webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/repo/axis2.xml
> >
>  webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/repo/services/
> >
>  webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/repo/services/echo2/
> >
>  webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/repo/services/echo2/META-INF/
> >
>  webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/repo/services/echo2/META-INF/services.xml
> >
>  webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/sample-logging/
> >
>  webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/sample-logging/META-INF/
> >
>  webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/sample-logging/META-INF/module.xml
> >
>  webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/deployment/FaultyServicesDueToModuleTest.java
> >
>  webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/sample/module/
> >
>  webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/sample/module/LogginModule.java
> > Modified:
> >
>  webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
> >
>  webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java
> >
>  webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java
> >
>  webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java
> >
>  webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceGroupBuilder.java
> >
>  webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java
> >
> > Modified:
> webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
> > URL:
> http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java?rev=759032&r1=759031&r2=759032&view=diff
> >
> ==============================================================================
> > ---
> webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
> (original)
> > +++
> webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
> Fri Mar 27 06:34:58 2009
> > @@ -47,6 +47,7 @@
> >  import org.apache.axis2.engine.MessageReceiver;
> >  import org.apache.axis2.i18n.Messages;
> >  import org.apache.axis2.util.JavaUtils;
> > +import org.apache.axis2.util.FaultyServiceData;
> >  import org.apache.commons.logging.Log;
> >  import org.apache.commons.logging.LogFactory;
> >
> > @@ -555,6 +556,30 @@
> >
> >         axisConfiguration.addModule(modulemetadata);
> >
> log.debug(Messages.getMessage(DeploymentErrorMsgs.ADDING_NEW_MODULE));
> > +
> > +        synchronized (axisConfiguration.getFaultyServicsDuetoModules())
> {
> > +
> > +            //Check whether there are faulty services due to this module
> > +            HashMap<String, FaultyServiceData> faultyServices =
> axisConfiguration.getFaultyServicesDuetoModule(
> > +                    modulemetadata.getName());
> > +            faultyServices = (HashMap<String,
> FaultyServiceData>)faultyServices.clone();
> > +
> > +            // Here iterating a cloned hashmap and modifying the
> original hashmap.
> > +            // To avoid the ConcurrentModificationException.
> > +            for (Iterator<FaultyServiceData> itr =
> faultyServices.values().iterator(); itr.hasNext();) {
> > +
> > +                FaultyServiceData faultyServiceData = itr.next();
> > +
>  axisConfiguration.removeFaultyServiceDuetoModule(modulemetadata.getName(),
> > +
>  faultyServiceData.getServiceGroup().getServiceGroupName());
> > +
> > +                //Recover the faulty serviceGroup.
> > +                addServiceGroup(faultyServiceData.getServiceGroup(),
> > +                        faultyServiceData.getServiceList(),
> > +                        faultyServiceData.getServiceLocation(),
> > +                        faultyServiceData.getCurrentDeploymentFile(),
> > +                        axisConfiguration);
> > +            }
> > +        }
> >     }
> >
> >     public static void addServiceGroup(AxisServiceGroup serviceGroup,
> > @@ -562,12 +587,104 @@
> >                                        URL serviceLocation,
> >                                        DeploymentFileData
> currentDeploymentFile,
> >                                        AxisConfiguration
> axisConfiguration) throws AxisFault {
> > -        fillServiceGroup(serviceGroup, serviceList, serviceLocation,
> axisConfiguration);
> > -        axisConfiguration.addServiceGroup(serviceGroup);
> > -        if (currentDeploymentFile != null) {
> > -            addAsWebResources(currentDeploymentFile.getFile(),
> > -                              serviceGroup.getServiceGroupName(),
> serviceGroup);
> > +
> > +        if (isServiceGroupReadyToDeploy(serviceGroup, serviceList,
> serviceLocation,
> > +                currentDeploymentFile, axisConfiguration)) {
> > +
> > +            fillServiceGroup(serviceGroup, serviceList, serviceLocation,
> axisConfiguration);
> > +            axisConfiguration.addServiceGroup(serviceGroup);
> > +
> > +            if (currentDeploymentFile != null) {
> > +                addAsWebResources(currentDeploymentFile.getFile(),
> > +                        serviceGroup.getServiceGroupName(),
> serviceGroup);
> > +                log.info
> (Messages.getMessage(DeploymentErrorMsgs.DEPLOYING_WS,
> > +
> currentDeploymentFile.getName(),
> > +                                         serviceLocation.toString()));
> > +            } else {
> > +                log.info
> (Messages.getMessage(DeploymentErrorMsgs.DEPLOYING_WS,
> > +
> serviceGroup.getServiceGroupName()));
> > +            }
> > +
> > +        }
> > +    }
> > +
> > +    /**
> > +     * Performs a check routine, in order to identify whether all the
> serviceGroup, service and operation level
> > +     * modules are available. If a referenced module is not deployed
> yet, the serviceGroup is added as a faulty service.
> > +     * @param serviceGroup
> > +     * @param serviceList
> > +     * @param serviceLocation
> > +     * @param currentDeploymentFile
> > +     * @param axisConfig
> > +     * @return boolean
> > +     * @throws AxisFault
> > +     */
> > +    protected static boolean
> isServiceGroupReadyToDeploy(AxisServiceGroup serviceGroup,
> > +                                                         ArrayList
> serviceList,
> > +                                                         URL
> serviceLocation,
> > +
> DeploymentFileData currentDeploymentFile,
> > +
> AxisConfiguration axisConfig) throws AxisFault {
> > +        synchronized (axisConfig.getFaultyServicsDuetoModules()) {
> > +            String moduleName;
> > +            ArrayList groupModules = serviceGroup.getModuleRefs();
> > +            for (int i = 0; i < groupModules.size(); i++) {
> > +                moduleName = (String) groupModules.get(i);
> > +                AxisModule module = axisConfig.getModule(moduleName);
> > +
> > +                if (module == null) {
> > +                    axisConfig.addFaultyServiceDuetoModule(moduleName,
> new FaultyServiceData(serviceGroup, serviceList,
> > +                            serviceLocation, currentDeploymentFile));
> > +                    if (log.isDebugEnabled()) {
> > +                                log.debug("Service: " +
> serviceGroup.getServiceGroupName() +
> > +                                        " becomes faulty due to Module:
> " + moduleName);
> > +                            }
> > +                    return false;
> > +                }
> > +            }
> > +
> > +            for (Object aServiceList : serviceList) {
> > +                AxisService axisService = (AxisService) aServiceList;
> > +
> > +                // modules from <service>
> > +                ArrayList list = axisService.getModules();
> > +
> > +                for (int i = 0; i < list.size(); i++) {
> > +                    moduleName = (String) list.get(i);
> > +                    AxisModule module =
> axisConfig.getModule(moduleName);
> > +
> > +                    if (module == null) {
> > +
>  axisConfig.addFaultyServiceDuetoModule(moduleName, new
> FaultyServiceData(serviceGroup, serviceList,
> > +                                serviceLocation,
> currentDeploymentFile));
> > +                        if (log.isDebugEnabled()) {
> > +                                log.debug("Service: " +
> serviceGroup.getServiceGroupName() +
> > +                                        " becomes faulty due to Module:
> " + moduleName);
> > +                            }
> > +                        return false;
> > +                    }
> > +                }
> > +
> > +                for (Iterator iterator = axisService.getOperations();
> iterator.hasNext();) {
> > +                    AxisOperation opDesc = (AxisOperation)
> iterator.next();
> > +                    ArrayList modules = opDesc.getModuleRefs();
> > +
> > +                    for (int i = 0; i < modules.size(); i++) {
> > +                        moduleName = (String) modules.get(i);
> > +                        AxisModule module =
> axisConfig.getModule(moduleName);
> > +
> > +                        if (module == null) {
> > +
>  axisConfig.addFaultyServiceDuetoModule(moduleName, new
> FaultyServiceData(serviceGroup,
> > +                                    serviceList, serviceLocation,
> currentDeploymentFile));
> > +                            if (log.isDebugEnabled()) {
> > +                                log.debug("Service: " +
> serviceGroup.getServiceGroupName() +
> > +                                        " becomes faulty due to Module:
> " + moduleName);
> > +                            }
> > +                            return false;
> > +                        }
> > +                    }
> > +                }
> > +            }
> >         }
> > +        return true;
> >     }
> >
> >     protected static void fillServiceGroup(AxisServiceGroup serviceGroup,
> >
> > Modified:
> webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java
> > URL:
> http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java?rev=759032&r1=759031&r2=759032&view=diff
> >
> ==============================================================================
> > ---
> webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java
> (original)
> > +++
> webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java
> Fri Mar 27 06:34:58 2009
> > @@ -476,7 +476,7 @@
> >
> >     protected void processOperationModuleRefs(Iterator moduleRefs,
> >                                               AxisOperation operation)
> throws DeploymentException {
> > -        try {
> > +//        try {
> >             while (moduleRefs.hasNext()) {
> >                 OMElement moduleref = (OMElement) moduleRefs.next();
> >                 OMAttribute moduleRefAttribute = moduleref
> > @@ -484,20 +484,21 @@
> >
> >                 if (moduleRefAttribute != null) {
> >                     String refName =
> moduleRefAttribute.getAttributeValue();
> > +                    operation.addModule(refName);
> >
> > -                    if (axisConfig.getModule(refName) == null) {
> > -                        throw new
> DeploymentException(Messages.getMessage(
> > -                                DeploymentErrorMsgs.MODULE_NOT_FOUND,
> refName));
> > -                    } else {
> > -                        operation.addModule(refName);
> > -                    }
> > +//                    if (axisConfig.getModule(refName) == null) {
> > +//                        throw new
> DeploymentException(Messages.getMessage(
> > +//                                DeploymentErrorMsgs.MODULE_NOT_FOUND,
> refName));
> > +//                    } else {
> > +//                        operation.addModule(refName);
> > +//                    }
> >                 }
> >             }
> > -        } catch (AxisFault axisFault) {
> > -            throw new DeploymentException(Messages.getMessage(
> > -                    DeploymentErrorMsgs.MODULE_NOT_FOUND, axisFault
> > -                    .getMessage()), axisFault);
> > -        }
> > +//        } catch (AxisFault axisFault) {
> > +//            throw new DeploymentException(Messages.getMessage(
> > +//                    DeploymentErrorMsgs.MODULE_NOT_FOUND, axisFault
> > +//                    .getMessage()), axisFault);
> > +//        }
> >     }
> >
> >     /**
> >
> > Modified:
> webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java
> > URL:
> http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java?rev=759032&r1=759031&r2=759032&view=diff
> >
> ==============================================================================
> > ---
> webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java
> (original)
> > +++
> webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java
> Fri Mar 27 06:34:58 2009
> > @@ -657,7 +657,7 @@
> >         */
> >        protected void processModuleRefs(Iterator moduleRefs)
> >                        throws DeploymentException {
> > -               try {
> > +//             try {
> >                        while (moduleRefs.hasNext()) {
> >                                OMElement moduleref = (OMElement)
> moduleRefs.next();
> >                                OMAttribute moduleRefAttribute = moduleref
> > @@ -665,18 +665,18 @@
> >
> >                                if (moduleRefAttribute != null) {
> >                                        String refName =
> moduleRefAttribute.getAttributeValue();
> > -
> > -                                       if (axisConfig.getModule(refName)
> == null) {
> > -                                               throw new
> DeploymentException(Messages.getMessage(
> > -
> DeploymentErrorMsgs.MODULE_NOT_FOUND, refName));
> > -                                       } else {
> > -
> service.addModuleref(refName);
> > -                                       }
> > +                    service.addModuleref(refName);
> > +//                                     if (axisConfig.getModule(refName)
> == null) {
> > +//                                             throw new
> DeploymentException(Messages.getMessage(
> > +//
> DeploymentErrorMsgs.MODULE_NOT_FOUND, refName));
> > +//                                     } else {
> > +//
> service.addModuleref(refName);
> > +//                                     }
> >                                }
> >                        }
> > -               } catch (AxisFault axisFault) {
> > -                       throw new DeploymentException(axisFault);
> > -               }
> > +//             } catch (AxisFault axisFault) {
> > +//                     throw new DeploymentException(axisFault);
> > +//             }
> >        }
> >
> >        protected void processOperationModuleConfig(Iterator
> moduleConfigs,
> >
> > Modified:
> webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java
> > URL:
> http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java?rev=759032&r1=759031&r2=759032&view=diff
> >
> ==============================================================================
> > ---
> webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java
> (original)
> > +++
> webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java
> Fri Mar 27 06:34:58 2009
> > @@ -88,9 +88,7 @@
> >                                              location,
> >                                              deploymentFileData,
> >                                              axisConfig);
> > -            log.info
> (Messages.getMessage(DeploymentErrorMsgs.DEPLOYING_WS,
> > -                                         deploymentFileData.getName(),
> > -                                         location.toString()));
> > +
> >         } catch (DeploymentException de) {
> >             de.printStackTrace();
> >
> log.error(Messages.getMessage(DeploymentErrorMsgs.INVALID_SERVICE,
> >
> > Modified:
> webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceGroupBuilder.java
> > URL:
> http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceGroupBuilder.java?rev=759032&r1=759031&r2=759032&view=diff
> >
> ==============================================================================
> > ---
> webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceGroupBuilder.java
> (original)
> > +++
> webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceGroupBuilder.java
> Fri Mar 27 06:34:58 2009
> > @@ -117,25 +117,26 @@
> >      */
> >     protected void processModuleRefs(Iterator moduleRefs,
> AxisServiceGroup axisServiceGroup)
> >             throws DeploymentException {
> > -        try {
> > +//        try {
> >             while (moduleRefs.hasNext()) {
> >                 OMElement moduleref = (OMElement) moduleRefs.next();
> >                 OMAttribute moduleRefAttribute =
> moduleref.getAttribute(new QName(TAG_REFERENCE));
> >
> >                 if (moduleRefAttribute != null) {
> >                     String refName =
> moduleRefAttribute.getAttributeValue();
> > +                    axisServiceGroup.addModuleref(refName);
> >
> > -                    if (axisConfig.getModule(refName) == null) {
> > -                        throw new DeploymentException(
> > -
>  Messages.getMessage(DeploymentErrorMsgs.MODULE_NOT_FOUND, refName));
> > -                    } else {
> > -                        axisServiceGroup.addModuleref(refName);
> > -                    }
> > +//                    if (axisConfig.getModule(refName) == null) {
> > +//                        throw new DeploymentException(
> > +//
>  Messages.getMessage(DeploymentErrorMsgs.MODULE_NOT_FOUND, refName));
> > +//                    } else {
> > +//                        axisServiceGroup.addModuleref(refName);
> > +//                    }
> >                 }
> >             }
> > -        } catch (AxisFault axisFault) {
> > -            throw new DeploymentException(axisFault);
> > -        }
> > +//        } catch (AxisFault axisFault) {
> > +//            throw new DeploymentException(axisFault);
> > +//        }
> >     }
> >
> >     protected void processServiceModuleConfig(Iterator moduleConfigs,
> ParameterInclude parent,
> >
> > 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=759032&r1=759031&r2=759032&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
> Fri Mar 27 06:34:58 2009
> > @@ -61,6 +61,7 @@
> >  import org.apache.axis2.transport.MessageFormatter;
> >  import org.apache.axis2.util.TargetResolver;
> >  import org.apache.axis2.util.Utils;
> > +import org.apache.axis2.util.FaultyServiceData;
> >  import org.apache.commons.logging.Log;
> >  import org.apache.commons.logging.LogFactory;
> >
> > @@ -116,6 +117,10 @@
> >      */
> >     private Hashtable<String, String> faultyServices;
> >
> > +    private final HashMap<String, HashMap<String, FaultyServiceData>>
> faultyServicesDueToModules = new HashMap<String,
> > +            HashMap<String, FaultyServiceData>>();
> > +
> > +
> >     private List<Phase> inFaultPhases;
> >
> >     private List<Phase> inPhasesUptoAndIncludingPostDispatch;
> > @@ -642,6 +647,54 @@
> >         return faultyServices;
> >     }
> >
> > +    /**
> > +     * Updates the map that keeps track of faulty services due to
> modules
> > +     * @param moduleName This service has become faulty due this module.
> > +     * @param faultyServiceData  Data that are required when recovering
> the faulty service.
> > +     */
> > +    public void addFaultyServiceDuetoModule(String moduleName,
> FaultyServiceData faultyServiceData) {
> > +        HashMap<String, FaultyServiceData> faultyServicesMap;
> > +
> > +        synchronized (faultyServicesDueToModules) {
> > +
> > +            if (faultyServicesDueToModules.containsKey(moduleName)) {
> > +                faultyServicesMap =
> faultyServicesDueToModules.get(moduleName);
> > +
>  faultyServicesMap.put(faultyServiceData.getServiceGroupName(),
> faultyServiceData);
> > +
> > +            } else {
> > +                faultyServicesMap = new HashMap<String,
> FaultyServiceData>();
> > +
>  faultyServicesMap.put(faultyServiceData.getServiceGroupName(),
> faultyServiceData);
> > +                faultyServicesDueToModules.put(moduleName,
> faultyServicesMap);
> > +            }
> > +        }
> > +    }
> > +
> > +    public HashMap<String, FaultyServiceData>
> getFaultyServicesDuetoModule(String moduleName) {
> > +        if (faultyServicesDueToModules.containsKey(moduleName)) {
> > +            return faultyServicesDueToModules.get(moduleName);
> > +
> > +        }
> > +        return new HashMap<String, FaultyServiceData>(1);
> > +    }
> > +
> > +    public HashMap<String, HashMap<String, FaultyServiceData>>
> getFaultyServicsDuetoModules(){
> > +        return faultyServicesDueToModules;
> > +    }
> > +
> > +    public void removeFaultyServiceDuetoModule(String moduleName, String
> serviceGroupName) {
> > +        synchronized (faultyServicesDueToModules) {
> > +            HashMap<String, FaultyServiceData> faultyServices =
> faultyServicesDueToModules.get(moduleName);
> > +
> > +            if(faultyServices != null){
> > +                faultyServices.remove(serviceGroupName);
> > +
> > +                if(faultyServices.isEmpty()){
> > +                    faultyServicesDueToModules.remove(moduleName);
> > +                }
> > +            }
> > +        }
> > +    }
> > +
> >     public void removeFaultyService(String key) {
> >         Iterator<String> itr = faultyServices.keySet().iterator();
> >         while (itr.hasNext()) {
> >
> > Added:
> webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/FaultyServiceData.java
> > URL:
> http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/FaultyServiceData.java?rev=759032&view=auto
> >
> ==============================================================================
> > ---
> webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/FaultyServiceData.java
> (added)
> > +++
> webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/FaultyServiceData.java
> Fri Mar 27 06:34:58 2009
> > @@ -0,0 +1,67 @@
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one
> > + * or more contributor license agreements. See the NOTICE file
> > + * distributed with this work for additional information
> > + * regarding copyright ownership. The ASF licenses this file
> > + * to you under the Apache License, Version 2.0 (the
> > + * "License"); you may not use this file except in compliance
> > + * with the License. You may obtain a copy of the License at
> > + *
> > + * http://www.apache.org/licenses/LICENSE-2.0
> > + *
> > + * Unless required by applicable law or agreed to in writing,
> > + * software distributed under the License is distributed on an
> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > + * KIND, either express or implied. See the License for the
> > + * specific language governing permissions and limitations
> > + * under the License.
> > + */
> > +
> > +package org.apache.axis2.util;
> > +
> > +import org.apache.axis2.description.AxisServiceGroup;
> > +import org.apache.axis2.deployment.repository.util.DeploymentFileData;
> > +
> > +import java.util.ArrayList;
> > +import java.net.URL;
> > +
> > +public class FaultyServiceData {
> > +
> > +    private String serviceGroupName;
> > +    private AxisServiceGroup serviceGroup;
> > +    private ArrayList serviceList;
> > +    private DeploymentFileData currentDeploymentFile;
> > +    private URL serviceLocation;
> > +
> > +    public FaultyServiceData(AxisServiceGroup serviceGroup,
> > +                             ArrayList serviceList,
> > +                             URL serviceLocation,
> > +                             DeploymentFileData currentDeploymentFile) {
> > +        serviceGroupName = serviceGroup.getServiceGroupName();
> > +        this.serviceGroup = serviceGroup;
> > +        this.serviceList = serviceList;
> > +        this.currentDeploymentFile = currentDeploymentFile;
> > +        this.serviceLocation = serviceLocation;
> > +
> > +    }
> > +
> > +    public AxisServiceGroup getServiceGroup() {
> > +        return serviceGroup;
> > +    }
> > +
> > +    public DeploymentFileData getCurrentDeploymentFile() {
> > +        return currentDeploymentFile;
> > +    }
> > +
> > +    public ArrayList getServiceList() {
> > +        return serviceList;
> > +    }
> > +
> > +    public URL getServiceLocation() {
> > +        return serviceLocation;
> > +    }
> > +
> > +    public String getServiceGroupName() {
> > +        return serviceGroupName;
> > +    }
> > +}
> >
> > Added:
> webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/repo/axis2.xml
> > URL:
> http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/repo/axis2.xml?rev=759032&view=auto
> >
> ==============================================================================
> > ---
> webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/repo/axis2.xml
> (added)
> > +++
> webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/repo/axis2.xml
> Fri Mar 27 06:34:58 2009
> > @@ -0,0 +1,102 @@
> > +<!--
> > +  ~ Licensed to the Apache Software Foundation (ASF) under one
> > +  ~ or more contributor license agreements. See the NOTICE file
> > +  ~ distributed with this work for additional information
> > +  ~ regarding copyright ownership. The ASF licenses this file
> > +  ~ to you under the Apache License, Version 2.0 (the
> > +  ~ "License"); you may not use this file except in compliance
> > +  ~ with the License. You may obtain a copy of the License at
> > +  ~
> > +  ~ http://www.apache.org/licenses/LICENSE-2.0
> > +  ~
> > +  ~ Unless required by applicable law or agreed to in writing,
> > +  ~ software distributed under the License is distributed on an
> > +  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > +  ~ KIND, either express or implied. See the License for the
> > +  ~ specific language governing permissions and limitations
> > +  ~ under the License.
> > +  -->
> > +
> > +<axisconfig name="AxisJava2.0">
> > +    <!-- ================================================= -->
> > +    <!-- Parameters -->
> > +    <!-- ================================================= -->
> > +    <parameter name="hotdeployment">true</parameter>
> > +    <parameter name="hotupdate">false</parameter>
> > +    <parameter name="enableMTOM">true</parameter>
> > +
> > +    <parameter name="userName">admin</parameter>
> > +    <parameter name="password">axis2</parameter>
> > +
> > +    <parameter name="seralizeLocation">./target</parameter>
> > +
> > +
> > +    <!-- ================================================= -->
> > +    <!-- Message Receivers -->
> > +    <!-- ================================================= -->
> > +    <!-- This is the Deafult Message Receiver for the Request Response
> style Operations -->
> > +    <messageReceiver mep="INOUT"
> class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
> > +
> > +    <!-- ================================================= -->
> > +    <!-- Transport Ins -->
> > +    <!-- ================================================= -->
> > +
> > +    <phaseOrder type="InFlow">
> > +        <!--  System pre defined phases       -->
> > +         <phase name="Transport">
> > +            <handler name="RequestURIBasedDispatcher"
> > +
> class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
> > +            <handler name="SOAPActionBasedDispatcher"
> > +
> class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
> > +        </phase>
> > +        <phase name="Security"/>
> > +        <phase name="PreDispatch"/>
> > +        <phase name="Dispatch"
> class="org.apache.axis2.engine.DispatchPhase">
> > +            <handler name="AddressingBasedDispatcher"
> > +
> class="org.apache.axis2.dispatchers.AddressingBasedDispatcher"/>
> > +
> > +            <handler name="SOAPMessageBodyBasedDispatcher"
> > +
> class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
> > +        </phase>
> > +        <!--  System pre defined phases       -->
> > +        <!--   After Postdispatch phase module author or or service
> author can add any phase he want      -->
> > +        <phase name="OperationInPhase"/>
> > +       <phase name="loggingPhase"/>
> > +    </phaseOrder>
> > +    <phaseOrder type="OutFlow">
> > +        <!--      user can add his own phases to this area  -->
> > +        <phase name="OperationOutPhase"/>
> > +       <phase name="loggingPhase"/>
> > +        <!--system predefined phase-->
> > +        <!--these phase will run irrespective of the service-->
> > +        <phase name="PolicyDetermination"/>
> > +        <phase name="MessageOut"/>
> > +    </phaseOrder>
> > +    <phaseOrder type="InFaultFlow">
> > +        <phase name="PreDispatch"/>
> > +        <phase name="Dispatch"
> class="org.apache.axis2.engine.DispatchPhase">
> > +            <handler name="RequestURIBasedDispatcher"
> > +
> class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
> > +
> > +            <handler name="SOAPActionBasedDispatcher"
> > +
> class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
> > +
> > +            <handler name="AddressingBasedDispatcher"
> > +
> class="org.apache.axis2.dispatchers.AddressingBasedDispatcher"/>
> > +
> > +            <handler name="SOAPMessageBodyBasedDispatcher"
> > +
> class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
> > +        </phase>
> > +        <!--      user can add his own phases to this area  -->
> > +        <phase name="OperationInFaultPhase"/>
> > +       <phase name="loggingPhase"/>
> > +    </phaseOrder>
> > +    <phaseOrder type="OutFaultFlow">
> > +        <!--      user can add his own phases to this area  -->
> > +       <phase name="loggingPhase"/>
> > +        <phase name="OperationOutFaultPhase"/>
> > +        <phase name="PolicyDetermination"/>
> > +        <phase name="MessageOut"/>
> > +    </phaseOrder>
> > +</axisconfig>
> > +
> >
> > Added:
> webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/repo/services/echo2/META-INF/services.xml
> > URL:
> http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/repo/services/echo2/META-INF/services.xml?rev=759032&view=auto
> >
> ==============================================================================
> > ---
> webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/repo/services/echo2/META-INF/services.xml
> (added)
> > +++
> webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/repo/services/echo2/META-INF/services.xml
> Fri Mar 27 06:34:58 2009
> > @@ -0,0 +1,6 @@
> > +<serviceGroup>
> > +    <service name="echo2">
> > +       <module ref="sample-logging"/>
> > +       <parameter name="ServiceClass">org.apache.axis2.Echo2</parameter>
> > +    </service>
> > +</serviceGroup>
> >
> > Added:
> webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/sample-logging/META-INF/module.xml
> > URL:
> http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/sample-logging/META-INF/module.xml?rev=759032&view=auto
> >
> ==============================================================================
> > ---
> webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/sample-logging/META-INF/module.xml
> (added)
> > +++
> webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/faultyServiceshandling/sample-logging/META-INF/module.xml
> Fri Mar 27 06:34:58 2009
> > @@ -0,0 +1,44 @@
> > +<!--
> > +  ~ Licensed to the Apache Software Foundation (ASF) under one
> > +  ~ or more contributor license agreements. See the NOTICE file
> > +  ~ distributed with this work for additional information
> > +  ~ regarding copyright ownership. The ASF licenses this file
> > +  ~ to you under the Apache License, Version 2.0 (the
> > +  ~ "License"); you may not use this file except in compliance
> > +  ~ with the License. You may obtain a copy of the License at
> > +  ~
> > +  ~ http://www.apache.org/licenses/LICENSE-2.0
> > +  ~
> > +  ~ Unless required by applicable law or agreed to in writing,
> > +  ~ software distributed under the License is distributed on an
> > +  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > +  ~ KIND, either express or implied. See the License for the
> > +  ~ specific language governing permissions and limitations
> > +  ~ under the License.
> > +  -->
> > +
> > +<module name="sample-logging"
> class="org.apache.axis2.sample.module.LogginModule">
> > +    <InFlow>
> > +        <handler name="InFlowLogHandler"
> class="org.apache.axis2.sample.handlers.LoggingHandler">
> > +            <order phase="loggingPhase"/>
> > +        </handler>
> > +    </InFlow>
> > +
> > +    <OutFlow>
> > +        <handler name="OutFlowLogHandler"
> class="org.apache.axis2.sample.handlers.LoggingHandler">
> > +            <order phase="loggingPhase"/>
> > +        </handler>
> > +    </OutFlow>
> > +
> > +    <OutFaultFlow>
> > +        <handler name="FaultOutFlowLogHandler"
> class="org.apache.axis2.sample.handlers.LoggingHandler">
> > +            <order phase="loggingPhase"/>
> > +        </handler>
> > +    </OutFaultFlow>
> > +
> > +    <InFaultFlow>
> > +        <handler name="FaultInFlowLogHandler"
> class="org.apache.axis2.sample.handlers.LoggingHandler">
> > +            <order phase="loggingPhase"/>
> > +        </handler>
> > +    </InFaultFlow>
> > +</module>
> >
> > Added:
> webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/deployment/FaultyServicesDueToModuleTest.java
> > URL:
> http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/deployment/FaultyServicesDueToModuleTest.java?rev=759032&view=auto
> >
> ==============================================================================
> > ---
> webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/deployment/FaultyServicesDueToModuleTest.java
> (added)
> > +++
> webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/deployment/FaultyServicesDueToModuleTest.java
> Fri Mar 27 06:34:58 2009
> > @@ -0,0 +1,68 @@
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one
> > + * or more contributor license agreements. See the NOTICE file
> > + * distributed with this work for additional information
> > + * regarding copyright ownership. The ASF licenses this file
> > + * to you under the Apache License, Version 2.0 (the
> > + * "License"); you may not use this file except in compliance
> > + * with the License. You may obtain a copy of the License at
> > + *
> > + * http://www.apache.org/licenses/LICENSE-2.0
> > + *
> > + * Unless required by applicable law or agreed to in writing,
> > + * software distributed under the License is distributed on an
> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > + * KIND, either express or implied. See the License for the
> > + * specific language governing permissions and limitations
> > + * under the License.
> > + */
> > +
> > +package org.apache.axis2.deployment;
> > +
> > +import junit.framework.TestCase;
> > +import org.apache.axis2.engine.AxisConfiguration;
> > +import org.apache.axis2.AbstractTestCase;
> > +import org.apache.axis2.AxisFault;
> > +import org.apache.axis2.deployment.repository.util.DeploymentFileData;
> > +import org.apache.axis2.util.FaultyServiceData;
> > +import org.apache.axis2.description.AxisService;
> > +import org.apache.axis2.context.ConfigurationContextFactory;
> > +
> > +import java.util.HashMap;
> > +import java.io.File;
> > +
> > +public class FaultyServicesDueToModuleTest extends TestCase {
> > +
> > +    AxisConfiguration axisConfig;
> > +    String repo = AbstractTestCase.basedir +
> "/test-resources/deployment/faultyServiceshandling/repo";
> > +
> > +    protected void setUp() throws Exception {
> > +        axisConfig =
> ConfigurationContextFactory.createConfigurationContextFromFileSystem(repo,
> repo + "/axis2.xml")
> > +                .getAxisConfiguration();
> > +    }
> > +
> > +    public void testFaultyServiceDueToModuleLogging() throws AxisFault {
> > +        AxisService axisService = axisConfig.getService("echo2");
> > +        assertNull(axisService);
> > +
> > +        HashMap<String, FaultyServiceData> faultyServicesMap =
> axisConfig.getFaultyServicesDuetoModule(
> > +                "sample-logging");
> > +        FaultyServiceData faultyServiceData =
> faultyServicesMap.get("echo2");
> > +        assertNotNull(faultyServiceData);
> > +    }
> > +
> > +    public void testFaultyServicesRecovery() throws AxisFault{
> > +        File moduleFile = new File(AbstractTestCase.basedir +
> > +
>  "/test-resources/deployment/faultyServiceshandling/sample-logging");
> > +        DeploymentFileData deploymentFileData = new
> DeploymentFileData(moduleFile, new ModuleDeployer(axisConfig));
> > +        deploymentFileData.deploy();
> > +
> > +        AxisService axisService = axisConfig.getService("echo2");
> > +        assertNotNull(axisService);
> > +
> > +        HashMap<String, FaultyServiceData> faultyServicesMap =
> axisConfig.getFaultyServicesDuetoModule(
> > +                "sample-logging");
> > +        FaultyServiceData faultyServiceData =
> faultyServicesMap.get("echo2");
> > +        assertNull(faultyServiceData);
> > +    }
> > +}
> >
> > Added:
> webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/sample/module/LogginModule.java
> > URL:
> http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/sample/module/LogginModule.java?rev=759032&view=auto
> >
> ==============================================================================
> > ---
> webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/sample/module/LogginModule.java
> (added)
> > +++
> webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/sample/module/LogginModule.java
> Fri Mar 27 06:34:58 2009
> > @@ -0,0 +1,50 @@
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one
> > + * or more contributor license agreements. See the NOTICE file
> > + * distributed with this work for additional information
> > + * regarding copyright ownership. The ASF licenses this file
> > + * to you under the Apache License, Version 2.0 (the
> > + * "License"); you may not use this file except in compliance
> > + * with the License. You may obtain a copy of the License at
> > + *
> > + * http://www.apache.org/licenses/LICENSE-2.0
> > + *
> > + * Unless required by applicable law or agreed to in writing,
> > + * software distributed under the License is distributed on an
> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > + * KIND, either express or implied. See the License for the
> > + * specific language governing permissions and limitations
> > + * under the License.
> > + */
> > +
> > +package org.apache.axis2.sample.module;
> > +
> > +import org.apache.axis2.description.AxisModule;
> > +import org.apache.axis2.description.AxisDescription;
> > +import org.apache.axis2.modules.Module;
> > +import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.AxisFault;
> > +import org.apache.neethi.Assertion;
> > +import org.apache.neethi.Policy;
> > +
> > +public class LogginModule implements Module {
> > +    // initialize the module
> > +    public void init(ConfigurationContext configContext, AxisModule
> module) throws AxisFault {
> > +
> > +    }
> > +
> > +    public void engageNotify(AxisDescription axisDescription) throws
> AxisFault {
> > +        //To change body of implemented methods use File | Settings |
> File Templates.
> > +    }
> > +
> > +    public boolean canSupportAssertion(Assertion assertion) {
> > +        return false;  //To change body of implemented methods use File
> | Settings | File Templates.
> > +    }
> > +
> > +    public void applyPolicy(Policy policy, AxisDescription
> axisDescription) throws AxisFault {
> > +        //To change body of implemented methods use File | Settings |
> File Templates.
> > +    }// shutdown the module
> > +    public void shutdown(ConfigurationContext configurationContext)
> throws AxisFault {
> > +        //To change body of implemented methods use File | Settings |
> File Templates.
> > +    }
> > +}
> >
> >
> >
>



-- 
Sameera Jayasoma
Software Engineer
WSO2 Inc.
Oxygenating the Web Service Platform.
http://wso2.org/

blog: http://tech.jayasoma.org

Mime
View raw message