Author: hiranya
Date: Mon Apr 25 10:47:55 2011
New Revision: 1096455

URL: http://svn.apache.org/viewvc?rev=1096455&view=rev
Log:
Adding fail safe mode to the ProxyService#buildAxisService method

Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/deployers/ProxyServiceDeployer.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java?rev=1096455&r1=1096454&r2=1096455&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java
 Mon Apr 25 10:47:55 2011
@@ -275,6 +275,13 @@ public class ProxyService implements Asp
                 handleException("Malformed URI for wsdl", e);
             } catch (IOException e) {
                 //handleException("Error reading from wsdl URI", e);
+
+                if (isFailSafeEnabled(axisCfg)) {
+                    log.warn("Proxy Service configuration : " + name + " 
cannot be built.", e);
+                    log.warn("Continue in Proxy Service Fail-safe mode.");
+                    return null;
+                }
+
                 boolean enablePublishWSDLSafeMode = false;
                 Map proxyParameters= this.getParameterMap();
                 if (!proxyParameters.isEmpty()) {
@@ -331,7 +338,7 @@ public class ProxyService implements Asp
         if (wsdlElement != null) {
             OMNamespace wsdlNamespace = wsdlElement.getNamespace();
 
-            // serialize and create an inputstream to read WSDL
+            // serialize and create an input stream to read WSDL
             ByteArrayOutputStream baos = new ByteArrayOutputStream();
             try {
                 if (trace()) trace.info("Serializing wsdlElement found to 
build an Axis2 service");
@@ -628,6 +635,22 @@ public class ProxyService implements Asp
         return proxyService;
     }
 
+    private boolean isFailSafeEnabled(AxisConfiguration axisConfig) {
+        String failSafeStr = 
SynapseConfigUtils.getSynapseEnvironment(axisConfig).
+                
getSynapseConfiguration().getProperty(SynapseConstants.FAIL_SAFE_MODE_STATUS);
+        if (failSafeStr != null) {
+            String[] failSafeComponents = failSafeStr.split(",");
+            List<String> stringList = 
Arrays.<String>asList(failSafeComponents);
+            if (stringList.indexOf(SynapseConstants.FAIL_SAFE_MODE_ALL) >= 0
+                    || 
stringList.indexOf(SynapseConstants.FAIL_SAFE_MODE_PROXY_SERVICES) >= 0) {
+                return true;
+            }
+        } else {
+            return true; // Enabled by default
+        }
+        return false;
+    }
+
     private void setUserDefinedResourceResolvers(SynapseConfiguration synCfg,
                                                  InputStream wsdlInputStream,
                                                  WSDLToAxisServiceBuilder 
wsdlToAxisServiceBuilder) {

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/deployers/ProxyServiceDeployer.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/deployers/ProxyServiceDeployer.java?rev=1096455&r1=1096454&r2=1096455&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/deployers/ProxyServiceDeployer.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/deployers/ProxyServiceDeployer.java
 Mon Apr 25 10:47:55 2011
@@ -99,7 +99,7 @@ public class ProxyServiceDeployer extend
             }
         } catch (Exception e) {
             if (failSafeProxyEnabled) {
-                log.warn("Proxy Service : " + fileName + " : Hot Deployment 
Failed" + e.getMessage());
+                log.warn("Proxy Service : " + fileName + " : Hot Deployment 
Failed - " + e.getMessage());
                 log.warn("Proxy Service : Fail-Safe mode.");
             } else {
                 handleSynapseArtifactDeploymentError(


Reply via email to