Author: ruwan
Date: Mon Mar  8 06:05:44 2010
New Revision: 920200

URL: http://svn.apache.org/viewvc?rev=920200&view=rev
Log:
Adding a method to the AxisConfiguration to add a service to an axisting active 
service group

Modified:
    
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java

Modified: 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java?rev=920200&r1=920199&r2=920200&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java
 Mon Mar  8 06:05:44 2010
@@ -407,6 +407,70 @@
         addChild(axisServiceGroup);
     }
 
+    /**
+     * This method is used to add a service to an existing active service 
group in the axis configuration
+     *
+     * @param axisService service to be added to the existing service group 
provided
+     * @param serviceGroupName name of the service group which should be 
existing in the axis configuration
+     * @throws AxisFault in case of an error in adding the service to the 
group specified or if the group is not existing
+     */
+    public void addServiceToExistingServiceGroup(AxisService axisService,
+                                                 String serviceGroupName) 
throws AxisFault {
+
+        AxisServiceGroup serviceGroup = getServiceGroup(serviceGroupName);
+        if (serviceGroup == null) {
+            String message = "A ServiceGroup with the provided name "
+                    + serviceGroupName + " is not existing";
+            log.error(message);
+            throw new AxisFault(message);
+        }
+
+        if (axisService.getSchemaTargetNamespace() == null) {
+            axisService.setSchemaTargetNamespace(Java2WSDLConstants.AXIS2_XSD);
+        }
+
+        if (axisService.isUseDefaultChains()) {
+            Iterator<AxisOperation> operations = axisService.getOperations();
+            while (operations.hasNext()) {
+                AxisOperation operation = operations.next();
+                phasesinfo.setOperationPhases(operation);
+            }
+        }
+
+        Map<String, AxisEndpoint> endpoints = axisService.getEndpoints();
+        if (endpoints == null || endpoints.size() == 0) {
+                       
org.apache.axis2.deployment.util.Utils.addEndpointsToService(
+                                       axisService, 
axisService.getAxisConfiguration());
+            endpoints = axisService.getEndpoints();
+               }
+
+        String serviceName = axisService.getName();
+        addToAllServicesMap(axisService);
+
+        if (endpoints != null) {
+            Iterator<String> endpointNameIter = endpoints.keySet().iterator();
+            while (endpointNameIter.hasNext()) {
+                String endpointName = endpointNameIter.next();
+                if (log.isDebugEnabled()) {
+                    log.debug("Adding service to allEndpoints map: ("
+                            + serviceName + "," + endpointName + ") ");
+                }
+
+                allEndpoints.put(serviceName + "." + endpointName, 
axisService);
+            }
+            if (log.isDebugEnabled()) {
+                log.debug("After adding to allEndpoints map, size is "
+                        + allEndpoints.size());
+            }
+        }
+        
+        serviceGroup.addService(axisService);
+
+        if (!axisService.isClientSide()) {
+            notifyObservers(new AxisEvent(AxisEvent.SERVICE_DEPLOY, 
axisService), axisService);
+        }
+    }
+
     public void addToAllServicesMap(AxisService axisService) throws AxisFault {
         String serviceName = axisService.getName();
         AxisService oldService = allServices.get(serviceName);


Reply via email to