Author: keith
Date: Mon Jun 23 00:58:03 2008
New Revision: 18548
URL: http://wso2.org/svn/browse/wso2?view=rev&revision=18548

Log:
Fixing Mashup-835



Modified:
   
trunk/mashup/java/modules/admin/service/src/org/wso2/mashup/admin/service/MashupAdminService.java

Modified: 
trunk/mashup/java/modules/admin/service/src/org/wso2/mashup/admin/service/MashupAdminService.java
URL: 
http://wso2.org/svn/browse/wso2/trunk/mashup/java/modules/admin/service/src/org/wso2/mashup/admin/service/MashupAdminService.java?rev=18548&r1=18547&r2=18548&view=diff
==============================================================================
--- 
trunk/mashup/java/modules/admin/service/src/org/wso2/mashup/admin/service/MashupAdminService.java
   (original)
+++ 
trunk/mashup/java/modules/admin/service/src/org/wso2/mashup/admin/service/MashupAdminService.java
   Mon Jun 23 00:58:03 2008
@@ -589,23 +589,33 @@
         }
         TransportDO transportDO = pm.getTransport(transportName);
         if (!axisService.isEnableAllTransports()) {
-
-            serviceDO.getTransports().remove(transportDO);
-            transportDO.getServices().remove(serviceDO);
-            axisService.removeExposedTransport(transportName);
-            pm.updateEntity(transportDO);
+            if (axisService.getExposedTransports().size() == 1) {
+                               throw new AxisFault(
+                        "Cannot remove transport binding of service" + 
serviceName +
+                                ". <br/>A service must contain at least one 
transport binding!");
+            } else {
+                serviceDO.getTransports().remove(transportDO);
+                transportDO.getServices().remove(serviceDO);
+                axisService.removeExposedTransport(transportName);
+                pm.updateEntity(transportDO);
+            }
         } else {
             TransportSummary[] transports = new TransportAdmin()
                     .listTransports();
+            if (transports.length == 1) {
+                               throw new AxisFault(
+                        "Cannot remove transport binding of service" + 
serviceName +
+                                ". <br/>A service must contain at least one 
transport binding!");
+            } else {
+                for (int i = 0; i < transports.length; i++) {
+                    String protocol = transports[i].getProtocol();
 
-            for (int i = 0; i < transports.length; i++) {
-                String protocol = transports[i].getProtocol();
-
-                if (!protocol.equals(transportName)) {
-                    axisService.addExposedTransport(protocol);
-                    TransportDO addTransportDO = pm.getTransport(protocol);
-                    serviceDO.addTransport(addTransportDO);
-                    pm.updateEntity(addTransportDO);
+                    if (!protocol.equals(transportName)) {
+                        axisService.addExposedTransport(protocol);
+                        TransportDO addTransportDO = pm.getTransport(protocol);
+                        serviceDO.addTransport(addTransportDO);
+                        pm.updateEntity(addTransportDO);
+                    }
                 }
             }
         }

_______________________________________________
Mashup-dev mailing list
[email protected]
http://www.wso2.org/cgi-bin/mailman/listinfo/mashup-dev

Reply via email to