Information for Committers / Contributors
Before working with the Synapse codebase, please set your ~/.subversion/config to contain the following lines
- .java = svn:eol-style=native
- .html = svn:eol-style=native
- .xml = svn:eol-style=native
- .properties = svn:eol-style=native
- .bat = svn:eol-style=CRLF
- .sh = svn:eol-style=LF
Also, note that you need to use the updated ASF v2 license header in all of your code, as listed here http://www.apache.org/legal/src-headers.html#headers
You may use the Intellij IDEA Copyright plugin (http://www.intellij.org/twiki/bin/view/Main/CopyrightPlugin) or use alternative methods to comply and ensure the above.
We stick to the general Sun/Axis2 coding standards, with the line length of 100 characters.
However more importantly, we expect all code to contain useful Javadocs that explains what the code does and adequate in-line comments that explains how it is done where necessary. Currently we have a code to comment ratio of 1.9:1 for the core Synapse code and we strive to enhance this and not degrade.
All code uses commons logging to log information at appropriate levels, and mediators also support writing information to the trace logs. The log and trace message must provide adequate information such that if a user complains of an error, we must be able to troubleshoot and find the cause - just by going through the log files at DEBUG level. If we want to print something like the SOAP message to the log, we check if isDebugEnabled() before we write any debug() calls.
We always log each exception the first time it is caught, and throw a SynapseException with an appropriate error message that tries to give out additional information on why the exception occurred.