Merge branch 'master' of https://github.com/apache/synapse
diff --git a/modules/core/src/main/java/org/apache/synapse/Axis2SynapseController.java b/modules/core/src/main/java/org/apache/synapse/Axis2SynapseController.java
index cece905..46888e0 100644
--- a/modules/core/src/main/java/org/apache/synapse/Axis2SynapseController.java
+++ b/modules/core/src/main/java/org/apache/synapse/Axis2SynapseController.java
@@ -504,6 +504,9 @@
         //we initialize xpath extensions here since synapse environment is available
         initXpathExtensions();
 
+        ((Axis2SynapseEnvironment) synapseEnvironment)
+                .setSynapseDebugMode(serverConfigurationInformation.isSynapseDebug());
+
         return synapseEnvironment;
     }
 
diff --git a/modules/core/src/main/java/org/apache/synapse/ServerConfigurationInformation.java b/modules/core/src/main/java/org/apache/synapse/ServerConfigurationInformation.java
index 59af3fa..d67032e 100644
--- a/modules/core/src/main/java/org/apache/synapse/ServerConfigurationInformation.java
+++ b/modules/core/src/main/java/org/apache/synapse/ServerConfigurationInformation.java
@@ -61,6 +61,8 @@
     private String ipAddress;
     /* Deployment mode*/
     private String deploymentMode;
+    /* Synapse Debug mode */
+    private boolean synapseDebug;
 
     public ServerConfigurationInformation() {
         initServerHostAndIP();
@@ -231,8 +233,17 @@
         }
     }
 
+    public boolean isSynapseDebug() {
+        return synapseDebug;
+    }
+
+    public void setSynapseDebug(boolean synapseDebug) {
+        this.synapseDebug = synapseDebug;
+    }
+
     public String toString() {
         StringBuffer sb = new StringBuffer();
+        sb.append("[ Synapse Debug Mode: ").append(synapseDebug).append(" ]");
         sb.append("[ Server Name : ").append(serverName).append(" ]");
         sb.append("[ Synapse Home : ").append(synapseHome).append(" ]");
         sb.append("[ Synapse XML : ").append(synapseXMLLocation).append(" ]");
diff --git a/modules/core/src/main/java/org/apache/synapse/ServerConfigurationInformationFactory.java b/modules/core/src/main/java/org/apache/synapse/ServerConfigurationInformationFactory.java
index 012a695..275668d 100644
--- a/modules/core/src/main/java/org/apache/synapse/ServerConfigurationInformationFactory.java
+++ b/modules/core/src/main/java/org/apache/synapse/ServerConfigurationInformationFactory.java
@@ -117,7 +117,11 @@
             information.setSynapseHome(args[2]);
             information.setSynapseXMLLocation(args[3]);
             information.setResolveRoot(args[4]);
-            information.setDeploymentMode(args[5]);
+            if (args[5].equalsIgnoreCase("synapseDebug")) {
+                information.setSynapseDebug(true);
+            } else {
+                information.setDeploymentMode(args[5]);
+            }
         } else if (args.length == 7) {
             information.setAxis2Xml(args[1]);
             information.setSynapseHome(args[2]);
diff --git a/modules/core/src/main/java/org/apache/synapse/core/SynapseEnvironment.java b/modules/core/src/main/java/org/apache/synapse/core/SynapseEnvironment.java
index 964f89d..f911257 100644
--- a/modules/core/src/main/java/org/apache/synapse/core/SynapseEnvironment.java
+++ b/modules/core/src/main/java/org/apache/synapse/core/SynapseEnvironment.java
@@ -160,5 +160,11 @@
      */
     public Map<QName, SynapseXpathVariableResolver> getXpathVariableExtensions();
 
+    /**
+     * This is used to check if the server instance is started
+     * with synapseDebug mode flag
+     * @return true if the server is started with debug mode
+     */
+    public boolean isSynapseDebugMode();
 
 }
diff --git a/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java b/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
index 47f2e17..a63a8bc 100644
--- a/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
+++ b/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
@@ -81,6 +81,8 @@
     Map<QName, SynapseXpathVariableResolver> xpathVariableExtensions =
             new HashMap<QName, SynapseXpathVariableResolver>();
 
+    private boolean synapseDebugMode;
+
     public Axis2SynapseEnvironment(SynapseConfiguration synCfg) {
 
         int coreThreads = SynapseThreadPool.SYNAPSE_CORE_THREADS;
@@ -499,7 +501,10 @@
          }
     }
 
-
+    @Override
+    public boolean isSynapseDebugMode() {
+        return this.synapseDebugMode;
+    }
 
     private void handleException(String message, Throwable e) {
         log.error(message, e);
@@ -545,4 +550,8 @@
         }
         return null;
     }
+
+    public void setSynapseDebugMode(boolean synapseDebugMode) {
+        this.synapseDebugMode = synapseDebugMode;
+    }
 }
diff --git a/modules/core/src/main/java/org/apache/synapse/mediators/builtin/LogMediator.java b/modules/core/src/main/java/org/apache/synapse/mediators/builtin/LogMediator.java
index 8e96cc7..2b3edf9 100644
--- a/modules/core/src/main/java/org/apache/synapse/mediators/builtin/LogMediator.java
+++ b/modules/core/src/main/java/org/apache/synapse/mediators/builtin/LogMediator.java
@@ -95,6 +95,9 @@
                 break;
             case CATEGORY_DEBUG :
                 synLog.auditDebug(getLogMessage(synCtx));
+                if (synCtx.getEnvironment().isSynapseDebugMode()) {
+                    synLog.auditLog(getLogMessage(synCtx));
+                }
                 break;
             case CATEGORY_WARN :
                 synLog.auditWarn(getLogMessage(synCtx));
diff --git a/modules/core/src/test/resources/identity.jks b/modules/core/src/test/resources/identity.jks
index e7e6514..3666a78 100644
--- a/modules/core/src/test/resources/identity.jks
+++ b/modules/core/src/test/resources/identity.jks
Binary files differ
diff --git a/modules/core/src/test/resources/keystore.jks b/modules/core/src/test/resources/keystore.jks
index e7e6514..3666a78 100644
--- a/modules/core/src/test/resources/keystore.jks
+++ b/modules/core/src/test/resources/keystore.jks
Binary files differ
diff --git a/modules/core/src/test/resources/trust.jks b/modules/core/src/test/resources/trust.jks
index e7e6514..3666a78 100644
--- a/modules/core/src/test/resources/trust.jks
+++ b/modules/core/src/test/resources/trust.jks
Binary files differ
diff --git a/modules/distribution/src/main/bin/synapse.bat b/modules/distribution/src/main/bin/synapse.bat
index dac1051..de8e443 100644
--- a/modules/distribution/src/main/bin/synapse.bat
+++ b/modules/distribution/src/main/bin/synapse.bat
@@ -35,6 +35,7 @@
 if ""%1""==""-sample"" goto SYNAPSESample
 if ""%1""==""-serverName"" goto serverName
 if ""%1""==""-xdebug"" goto xdebug
+if ""%1""==""-synapseDebug"" goto synapseDebug
 shift
 goto setupArgs
 
@@ -57,6 +58,11 @@
 shift
 goto setupArgs
 
+:synapseDebug
+shift
+set _SNYPASE_DEBUG="synapseDebug"
+goto setupArgs
+
 :doneStart
 rem find SYNAPSE_HOME if it does not exist due to either an invalid value passed
 rem by the user or the %0 problem on Windows 9x
@@ -111,7 +117,7 @@
 rem Start the Wrapper
 rem
 :startup
-"%_WRAPPER_EXE%" -c %_WRAPPER_CONF% wrapper.app.parameter.5=%_SYNAPSE_XML% wrapper.app.parameter.8=%_SERVER_NAME% %_XDEBUG%
+"%_WRAPPER_EXE%" -c %_WRAPPER_CONF% wrapper.app.parameter.5=%_SYNAPSE_XML% wrapper.app.parameter.8=%_SERVER_NAME% wrapper.app.parameter.9=%_SNYPASE_DEBUG% %_XDEBUG%
 
 if not errorlevel 1 goto :eof
 pause
diff --git a/modules/distribution/src/main/bin/synapse.sh b/modules/distribution/src/main/bin/synapse.sh
index ec1ff04..dad4a79 100644
--- a/modules/distribution/src/main/bin/synapse.sh
+++ b/modules/distribution/src/main/bin/synapse.sh
@@ -146,12 +146,17 @@
     SERVER_NAME=$2
     shift 2 # -serverName and actual name
 
+  elif [ "$1" = "-synapseDebug" ]; then
+    SYNAPSE_DEBUG="synapseDebug"
+    shift
+
 elif [ "$1" = "-h" ]; then
     echo "Usage: synapse.sh ( commands ... )"
     echo "commands:"
     echo "  -xdebug            Start Synapse under JPDA debugger"
     echo "  -sample (number)   Start with sample Synapse configuration of given number"
     echo "  -serverName <name> Name of the Synapse server instance"
+    echo "  -synapseDebug      Start Synapse under debug mode"
     shift
     exit 0
 
@@ -185,4 +190,5 @@
         $SYNAPSE_HOME \
         $SYNAPSE_XML \
         $SYNAPSE_HOME/repository \
-        $SERVER_NAME
\ No newline at end of file
+        $SERVER_NAME \
+        $SYNAPSE_DEBUG
\ No newline at end of file
diff --git a/modules/distribution/src/main/conf/identity.jks b/modules/distribution/src/main/conf/identity.jks
index e7e6514..3666a78 100644
--- a/modules/distribution/src/main/conf/identity.jks
+++ b/modules/distribution/src/main/conf/identity.jks
Binary files differ
diff --git a/modules/distribution/src/main/conf/trust.jks b/modules/distribution/src/main/conf/trust.jks
index e7e6514..3666a78 100644
--- a/modules/distribution/src/main/conf/trust.jks
+++ b/modules/distribution/src/main/conf/trust.jks
Binary files differ
diff --git a/modules/integration/src/test/resources/identity.jks b/modules/integration/src/test/resources/identity.jks
index e7e6514..3666a78 100644
--- a/modules/integration/src/test/resources/identity.jks
+++ b/modules/integration/src/test/resources/identity.jks
Binary files differ
diff --git a/modules/integration/src/test/resources/trust.jks b/modules/integration/src/test/resources/trust.jks
index e7e6514..3666a78 100644
--- a/modules/integration/src/test/resources/trust.jks
+++ b/modules/integration/src/test/resources/trust.jks
Binary files differ
diff --git a/modules/samples/services/SecureStockQuoteService/store.jks b/modules/samples/services/SecureStockQuoteService/store.jks
index fe3c5f8..a442356 100644
--- a/modules/samples/services/SecureStockQuoteService/store.jks
+++ b/modules/samples/services/SecureStockQuoteService/store.jks
Binary files differ
diff --git a/repository/conf/sample/resources/security/store.jks b/repository/conf/sample/resources/security/store.jks
index fe3c5f8..a442356 100644
--- a/repository/conf/sample/resources/security/store.jks
+++ b/repository/conf/sample/resources/security/store.jks
Binary files differ