You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by er...@apache.org on 2010/11/03 23:39:41 UTC

svn commit: r1030742 - in /servicemix/sandbox/website20/src/main/webapp: WEB-INF/scalate/layouts/ community/ contrib/ css/ images/

Author: ericjohnson
Date: Wed Nov  3 22:39:40 2010
New Revision: 1030742

URL: http://svn.apache.org/viewvc?rev=1030742&view=rev
Log:
Added some content around contributing and the community

Added:
    servicemix/sandbox/website20/src/main/webapp/community/index.page
    servicemix/sandbox/website20/src/main/webapp/community/projects.conf
    servicemix/sandbox/website20/src/main/webapp/contrib/building.page
    servicemix/sandbox/website20/src/main/webapp/contrib/coding-standards.page
    servicemix/sandbox/website20/src/main/webapp/contrib/releasing.page
      - copied, changed from r1030498, servicemix/sandbox/website20/src/main/webapp/contrib/developers.page
    servicemix/sandbox/website20/src/main/webapp/images/Fisheye_logo.png   (with props)
    servicemix/sandbox/website20/src/main/webapp/images/forbidden.gif   (with props)
    servicemix/sandbox/website20/src/main/webapp/images/release_01.png   (with props)
    servicemix/sandbox/website20/src/main/webapp/images/release_01.png.jpeg   (with props)
    servicemix/sandbox/website20/src/main/webapp/images/release_02.png   (with props)
    servicemix/sandbox/website20/src/main/webapp/images/release_02.png.jpeg   (with props)
    servicemix/sandbox/website20/src/main/webapp/images/release_03.png   (with props)
    servicemix/sandbox/website20/src/main/webapp/images/release_03.png.jpeg   (with props)
    servicemix/sandbox/website20/src/main/webapp/images/release_04.png   (with props)
    servicemix/sandbox/website20/src/main/webapp/images/release_04.png.jpeg   (with props)
    servicemix/sandbox/website20/src/main/webapp/images/release_05.png   (with props)
    servicemix/sandbox/website20/src/main/webapp/images/release_05.png.jpeg   (with props)
    servicemix/sandbox/website20/src/main/webapp/images/release_06.png   (with props)
    servicemix/sandbox/website20/src/main/webapp/images/release_06.png.jpeg   (with props)
Removed:
    servicemix/sandbox/website20/src/main/webapp/contrib/developers.page
Modified:
    servicemix/sandbox/website20/src/main/webapp/WEB-INF/scalate/layouts/default.ssp
    servicemix/sandbox/website20/src/main/webapp/contrib/committers-guide.page
    servicemix/sandbox/website20/src/main/webapp/contrib/source.page
    servicemix/sandbox/website20/src/main/webapp/css/master.css

Modified: servicemix/sandbox/website20/src/main/webapp/WEB-INF/scalate/layouts/default.ssp
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/WEB-INF/scalate/layouts/default.ssp?rev=1030742&r1=1030741&r2=1030742&view=diff
==============================================================================
--- servicemix/sandbox/website20/src/main/webapp/WEB-INF/scalate/layouts/default.ssp (original)
+++ servicemix/sandbox/website20/src/main/webapp/WEB-INF/scalate/layouts/default.ssp Wed Nov  3 22:39:40 2010
@@ -72,13 +72,26 @@ limitations under the License.
               </ul>
             </li>
             <li>
-              <a href="/contrib/index.html" title="Contributing">Contributing</a>
+              <a href="/community/index.html" title="Community">Community</a>
               <ul>
-                <li><a href="/contrib/becoming-a-committer.html" title="Committing">Become a committer</a></li>
+                <li><a href="/community/mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                <li><a href="/community/discussion-forums.html" title="Discussion Forums">Forums</a></li>
+                <li><a href="/community/irc.html" title="IRC">IRC</a></li>
+                <li><a href="/community/users.html" title="Users">Users</a></li>
+                <li><a href="/community/team.html" title="Users">Team</a></li>
+                <li><a href="/community/projects.html" title="Users">Related Projects</a></li>
+              </ul>
+            </li>
+            <li>
+              <a href="/contrib/index.html" title="Contributing">Contribute</a>
+              <ul>
+                <li><a href="/contrib/becoming-a-committer.html" title="Committing">Become a Committer</a></li>
                 <li><a href="/contrib/committers-guide.html" title="Committing Guide">Committer Guide</a></li>
-                <li><a href="/contrib/source.html" title="Source">Source</a></li>
+                <li><a href="/contrib/source.html" title="Source">Getting the Source</a></li>
+                <li><a href="/contrib/building.html" title="Building">Building ServiceMix</a></li>
+                <li><a href="/contrib/coding-standards.html" title="Coding Standards">Coding Standards</a></li>
                 <li><a href="http://issues.apache.org/activemq/browse/SM" title="JIRA">JIRA</a></li>
-                <li><a href="/contrib/developers.html" title="Developers">Developer Resources</a></li>
+                <li><a href="/contrib/releasing.html" title="Releasing">Release Guide</a></li>
                 <li><a href="/community/team.html" title="Users">Team</a></li>
               </ul>
             </li>

Added: servicemix/sandbox/website20/src/main/webapp/community/index.page
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/community/index.page?rev=1030742&view=auto
==============================================================================
--- servicemix/sandbox/website20/src/main/webapp/community/index.page (added)
+++ servicemix/sandbox/website20/src/main/webapp/community/index.page Wed Nov  3 22:39:40 2010
@@ -0,0 +1,15 @@
+---
+<% attributes("title") = "Community" %>
+title: Community
+--- name:content pipeline:markdown
+
+# The ServiceMix Community
+
+* [Contributing](/contrib/index.html)
+* [Discussion Forums](discussion-forums.html)
+* [IRC](irc.html)
+* [Mailing Lists](mailing-lists.html)
+* [Roadmap](contrib/roadmap.html)
+* [Support](support/index.html)
+* [Team](team.html)
+* [Users](users.html)
\ No newline at end of file

Added: servicemix/sandbox/website20/src/main/webapp/community/projects.conf
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/community/projects.conf?rev=1030742&view=auto
==============================================================================
--- servicemix/sandbox/website20/src/main/webapp/community/projects.conf (added)
+++ servicemix/sandbox/website20/src/main/webapp/community/projects.conf Wed Nov  3 22:39:40 2010
@@ -0,0 +1,18 @@
+h1. Projects Using ServiceMix
+
+* [Apache Geronimo|http://geronimo.apache.org/] uses ServiceMix as its JBI container and component suite.
+* [ChainBuilder ESB|http://www.chainforge.net/] uses ServiceMix as its JBI container and HTTP component.
+* [InstantSVC|http://instantsvc.sourceforge.net/] uses ServiceMix as a foundation to implement [Task-Role Based Access Control (T-RBAC) for SOAs|http://sourceforge.net/project/showfiles.php?group_id=176328&package_id=241922].
+* [GASWerk|http://gaswerk.sourceforge.net/]
+* [Spagic|http://www.spagic.org/ecm/faces/public/guest/home/solutions/spagic]
+
+
+h1. Projects Included in ServiceMix
+
+- [Apache ActiveMQ|http://activemq.apache.org/|The most popular and powerful open source Message Bus] 
+- [Apache Camel|http://activemq.apache.org/camel/|POJO based Enterprise Integration Patterns and routing framework] 
+- [Apache CXF|http://cxf.apache.org/|Service Enablement Framework based on SOAP and JAX-WS] 
+- [Apache ODE|http://ode.apache.org/|Orchestration Engine] 
+- [Jencks|http://jencks.codehaus.org/|Message Driven POJOs and pooling for JMS and JDBC] 
+- [Stomp|http://stomp.codehaus.org/|Simple cross language protocol for messaging] 
+- [Spring|http://www.springframework.org/|The well know framework] 
\ No newline at end of file

Added: servicemix/sandbox/website20/src/main/webapp/contrib/building.page
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/contrib/building.page?rev=1030742&view=auto
==============================================================================
--- servicemix/sandbox/website20/src/main/webapp/contrib/building.page (added)
+++ servicemix/sandbox/website20/src/main/webapp/contrib/building.page Wed Nov  3 22:39:40 2010
@@ -0,0 +1,90 @@
+---
+<% attributes("title") = "Building ServiceMix" %>
+title: Building ServiceMix
+--- name:content pipeline:markdown
+
+# Building ServiceMix From Source
+
+ServiceMix uses [Maven](http://maven.apache.org/) as its build and management tool. We have tested the build with Maven 2.0.8 and it works fine, but Maven 2.0.9 is known to cause some issues that prevent a successful build for ServiceMix 3.2.1 and previous versions.  This has been fixed for 3.2.2 and 3.3.
+
+ServiceMix 4.x requires to use Maven 2.2.1 or better.
+
+## Getting started
+
+* Download and [install Maven](http://maven.apache.org/download.html#Installation).
+* Get the latest code [from SVN](source.html).
+* Build the code with the following command
+
+        mvn -Dmaven.test.skip=true -Pstep1 install
+        mvn -Dmaven.test.skip=true -Pstep2 install
+
+<div class="tip">
+  <h1>Useful Hints</h1>
+  <ul>
+	<l1>
+      <p>It may happen, that building step1 fails with an error message regarding PMD or checkstyle. In this case you can add a <code>nochecks</code> to the line so it looks like this:</p>
+      <code>mvn -Dmaven.test.skip=true -Pstep1,nochecks install</code>
+    </li>
+	<li>
+      <p>Also, if an out of memory error is encountered during compilation, set the <code>MAVEN_OPTS</code> environment variable to a larger amount of memory. Below is an example:</p>
+      <code>MAVEN_OPTS=-Xmx768m</code>
+    </li>
+	<LI>Some dependencies have POMs that specify repository URLs that are no longer valid. This can cause invalid artifacts to be downloaded to your local repository. You can add the following mirror to your Maven <code>settings.xml</code> file to avoid this problem:
+<PRE class="code-java">
+&lt;mirror&gt;
+  &lt;id&gt;servicemix-repo&lt;/id&gt;
+  &lt;name&gt;Apache ServiceMix Repository&lt;/name&gt;
+  &lt;url&gt;http:<SPAN class="code-comment">//svn.apache.org/repos/asf/servicemix/m2-repo/&lt;/url&gt;
+</SPAN>  &lt;mirrorOf&gt;servicemix-repo,servicemix-m2-repo&lt;/mirrorOf&gt;
+&lt;/mirror&gt;
+</PRE>
+</li>
+</ul>
+</div>
+
+<div class="warn">
+  <h1>Please Note</h1>
+  <p>There is an <a href="https://issues.apache.org/activemq/browse/SM-1079">issue</a> in building if you use the system property style of declaring the profiles (i.e., <code>-Dprofile=step2</code>) as the XFire Maven plugin thinks <code>step2</code> is a profile name it should use. This is fixed in the ServiceMix trunk (3.3 or greater). To work around this issue, try the following items below:</p>
+  <UL>
+	<LI>Use the -Pstep2 style of declaring the profile as noted above</LI>
+	<LI>Comment out the <A href="http://fisheye6.atlassian.com/browse/servicemix/smx3/tags/servicemix-3.2.1/platforms/pom.xml?%3Dtrunk#l36" class="external-link" rel="nofollow">Geronimo module in the platform POM</A></LI>
+  </UL>
+</div>
+
+Next time you build, you can just run
+
+    mvn -Dmaven.test.skip=true install
+
+<div class="tip">
+  <h1>Building 3.1.1</h1>
+  <p>If an out of memory error is encountered when building 3.1.1, setting the following environmental variable may help</P>
+  <code>MAVEN_OPTS=-Xmx768m</code>
+</div>
+
+<div class="tip">
+  <h1>Building 3.0-M1 and 3.0-M2</h1>
+  <p>Note that this only works for versions from 3.0-M3.</p>
+  <p>To build previous versions, you need to run:</p>
+  <pre>mvn &#45;N install
+cd tooling
+mvn install &#45;Dmaven.test.skip=true
+cd ..
+mvn install &#45;Dmaven.test.skip=true</pre>
+</div>
+
+## Code Conventions
+
+Checkstyle and PMD rules are used to scour the ServiceMix source code when performing a build. If you are hacking code and it does not follow these conventions, the build will fail. To make things easier on folks who are using Eclipse, there is an [Eclipse code convention profile](http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/build/src/main/resources/smx-eclipse-code-conventions.xml?view=markup) that matches the Checkstyle conventions, making things a bit easier in this regard. Import this profile into Eclipse under **Preferences-&gt;Java-&gt;Code Style-&gt;Formatter-&gt;Import**.
+
+## Using an IDE
+
+### Using Eclipse
+For [Eclipse](http://www.eclipse.org/), a detailed description is given at [Importing ServiceMix into Eclipse](importing-servicemix-into-eclipse.html). In addition, this page also describes how to start ServiceMix inside Eclipse with all debugging possibilities.
+
+### Other IDEs
+
+Any modern IDE with self respect can start a new project based on a Maven `pom.xml` file.
+
+Note that you may need to build the whole ServiceMix project once using maven.
+
+Please refer to the [Maven plugin reference](http://maven.apache.org/plugins/index.html) for more details on using them.
\ No newline at end of file

Added: servicemix/sandbox/website20/src/main/webapp/contrib/coding-standards.page
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/contrib/coding-standards.page?rev=1030742&view=auto
==============================================================================
--- servicemix/sandbox/website20/src/main/webapp/contrib/coding-standards.page (added)
+++ servicemix/sandbox/website20/src/main/webapp/contrib/coding-standards.page Wed Nov  3 22:39:40 2010
@@ -0,0 +1,215 @@
+---
+<% attributes("title") = "Coding Standards" %>
+title: Codine Standards
+--- name:content pipeline:markdown
+
+This page describes the standards used for Apache ServiceMixcode (java, xml, whatever). Code is read by a human being more often than it is written by a human being, make the code a pleasure to read.
+
+# Indentation
+
+## Java
+
+Follow Sun's coding standard rules which are pretty common in Java:
+
+* [http://java.sun.com/docs/codeconv/](http://java.sun.com/docs/codeconv/)
+* [http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html](http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html)
+
+In short:
+
+* 4 characters indentation
+* **No tabs** please!
+
+For example:
+<DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+<SPAN class="code-keyword">public</SPAN> class Foo {
+    <SPAN class="code-keyword">public</SPAN> void foo(<SPAN class="code-object">boolean</SPAN> a, <SPAN class="code-object">int</SPAN> x, <SPAN class="code-object">int</SPAN> y, <SPAN class="code-object">int</SPAN> z) {
+        <SPAN class="code-keyword">do</SPAN> {
+            <SPAN class="code-keyword">try</SPAN> {
+                <SPAN class="code-keyword">if</SPAN> (x &gt; 0) {
+                    <SPAN class="code-object">int</SPAN> someVariable = a ?  x : y;
+                } <SPAN class="code-keyword">else</SPAN> <SPAN class="code-keyword">if</SPAN> (x &lt; 0) {
+                    <SPAN class="code-object">int</SPAN> someVariable = (y + z);
+                    someVariable = x = x + y;
+                } <SPAN class="code-keyword">else</SPAN> {
+                    <SPAN class="code-keyword">for</SPAN> (<SPAN class="code-object">int</SPAN> i = 0; i &lt; 5; i++) {
+                        doSomething(i);
+                    }
+                }
+
+                <SPAN class="code-keyword">switch</SPAN> (a) {
+                    <SPAN class="code-keyword">case</SPAN> 0:
+                        doCase0();
+                        <SPAN class="code-keyword">break</SPAN>;
+                    <SPAN class="code-keyword">default</SPAN>:
+                        doDefault();
+                }
+            } <SPAN class="code-keyword">catch</SPAN> (Exception e) {
+                processException(e.getMessage(), x + y, z, a);
+            } <SPAN class="code-keyword">finally</SPAN> {
+                processFinally();
+            }
+        } <SPAN class="code-keyword">while</SPAN> (<SPAN class="code-keyword">true</SPAN>);
+
+        <SPAN class="code-keyword">if</SPAN> (2 &lt; 3) {
+            <SPAN class="code-keyword">return</SPAN>;
+        }
+
+        <SPAN class="code-keyword">if</SPAN> (3 &lt; 4) {
+            <SPAN class="code-keyword">return</SPAN>;
+        }
+
+        <SPAN class="code-keyword">do</SPAN> {
+            x++
+        } <SPAN class="code-keyword">while</SPAN> (x &lt; 10000);
+
+        <SPAN class="code-keyword">while</SPAN> (x &lt; 50000) {
+            x++;
+        }
+
+        <SPAN class="code-keyword">for</SPAN> (<SPAN class="code-object">int</SPAN> i = 0; i &lt; 5; i++) {
+            <SPAN class="code-object">System</SPAN>.out.println(i);
+        }
+    }
+
+    <SPAN class="code-keyword">private</SPAN> class InnerClass <SPAN class="code-keyword">implements</SPAN> I1, I2 {
+        <SPAN class="code-keyword">public</SPAN> void bar() <SPAN class="code-keyword">throws</SPAN> E1, E2 {
+        }
+    }
+}
+</PRE>
+</DIV></DIV>
+
+## XML
+
+* Use 4 characters.  This is to allow IDEs such as Eclipse to use a unified formatting convention.
+* **No tabs** please!
+
+# Interfaces
+
+All methods of an interface are `public abstract`, therefore it is not necessary to specify `public abstract` modifiers. Similarly all fields are `public static final`.</P>
+
+However this behavior works best with most tools and IDEs and seems to be common practice so we see no reason to disallow this practice. e.g:
+
+<DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+<SPAN class="code-keyword">public</SPAN> <SPAN class="code-keyword">interface</SPAN> MyInterface {
+    <SPAN class="code-keyword">public</SPAN> <SPAN class="code-keyword">static</SPAN> <SPAN class="code-keyword">final</SPAN> <SPAN class="code-object">int</SPAN> MY_INTEGER = 0;
+
+    <SPAN class="code-keyword">public</SPAN> <SPAN class="code-keyword">abstract</SPAN> void doSomething();
+}
+</PRE>
+</DIV></DIV>
+
+This has the added advantage that the interface can be converted into an abstract class (and copy and paste individual definitions) without changing anything.
+
+Preferably add `public`/`static`/`final` to constants, and `public`/`abstract` to methods, but it's not mandatory. However, if it's there, don't take it out.
+
+# Exceptions
+
+* A situation is only exceptional, if the program can not handle it with reasonably effort. Wrong input data should be an expected situation of the regular code, that could be handled gracefully.
+* The intention of exception-handling is to separate real error-handling from the regular part of the code, so don't force the caller to mix it with unnecessary exceptions.
+* Only if your code really has a problem to continue e.g., when a parameter is invalid, feel free to throw an exception!
+* Do **NOT** throw an exception, if you only suppose the caller of your code could have a problem with a special result. Try to return a special result value instead e.g., null, and let the caller decide with a regular if-else-statement. If the caller really has a problem, **HE WILL** throw an exception on his own.
+* But if your code throws an exception, even though it has no real problem and it could continue without an exception and return a special result value, you forestall the decision of the caller, whether the special result is really an error or not.
+* If you throw an exception, where the caller would decide that it is no error in the context of the caller, you force the caller to write an exception handler in his regular part or to abort i.e., you force the caller to mix regular code with exception handling. That is the opposite of the intentention of exception handling.
+* Bad example:
+
+        java.lang.Class.forName(String) throws ClassNotFoundException
+    In most programs/situations it is an error if this method does not find the class, therefore it throws an exception and forestalls the decision of the caller.
+    But maybe there is a program that should check a list of class names, whether the classes are present or not. Such a program is forced to mix its regular code with error handling of an exception, that is no error at all in that context.
+    The method should return a special result value instead: null. Many callers of that method have expected that situation and therefore are not in an unexpected situation/exceptional state. They could decide the situation on their own.
+* Only throw checked exceptions (not derived from `RuntimeException`), if the caller has a chance to handle it.
+* Exceptions that signal programming errors or system failures usually cannot be handled/repaired at runtime -&gt; unchecked exception.
+* If your code really has a problem to continue e.g., when a parameter is invalid, throw an unchecked exception (derived from `RuntimeException`) and do NOT throw a checked exception, because if not even your code can handle the problem, in the very most cases the caller has no chance to handle the problem, too. Instead there maybe somebody somewhere in the highest layers who catches all `RuntimeException`'s, logs them and continues the regular service.
+* Only if it is not possible to return special result values cleanly, use checked exceptions to force the caller to decide the situation. The caller should deescalate the situation by catching and handling one or more checked exceptions, e.g. with special result values(&#63;) or by escalating with an unchecked exception, because the situation is an error, that can not be handled.
+* Checked exceptions are an official part of the interface, therefore do not propagate checked exceptions from one abstraction layer to another, because usually this would break the lower abstraction. E.g. do not propagate SQLException to another layer, because SQLExceptions are an implementation detail, that may change in the future and such changes should not affect the interfaces and their callers.</LI>
+* Never throw `NullPointerException` or `RuntimeException`. Use either `IllegalArgumentException`, or `NullArgumentException` (which is a subclass of `IllegalArgumentException` anyway). If there isn't a suitable subclass available for representing an exception, create your own.
+
+# Package Naming
+
+* Package names are lowercase.
+* Package names should only contain alpha-numberic characters.
+* Package names should be suffixed with the name of the module in which they are defined.
+
+For example, if the module name is *common*, then the base package name should be `org.apache.geronimo.common`.
+
+<div class="note">
+  <h1>Note</h1>
+  <p>This is more of a <EM>guideline</EM> than a <EM>rule</EM>, as some modules simply can not follow this convention, but where applicable they should.</p>
+</div>
+
+# Imports
+
+* Should be fully qualified e.g. `import java.util.Vector` and not `java.util.*`
+* Should be sorted alphabetically, with *java*, then *javax* packages listed first, and then other packages sorted by package name.
+
+# IDE Auto-Formatting
+
+Eclipse users can:
+
+* use **Source -&gt; Organise Imports** to organize imports
+* use **Source -&gt; Format** to format code (please use default Eclipse formatting conventions, which are as above)
+
+IntelliJ users can:
+
+* use **Tools -&gt; Organise Imports** to organize imports
+* use **Tools -&gt; Reformat code** to format code (uses the code style setting in IDE options)
+
+The eclipse formater settings are available [here](coding-standards.data/eclipse-formater.xml).
+
+# JavaDoc Tags
+
+* `@version` should be: `@version $Revision$ $Date$`.
+* `@author` should not be used in source code at all.
+
+# Unit Test Cases
+
+* Use the naming scheme `*Test.java` for unit tests.
+* Do not define `public static Test suite&#40;)` or constructor methods, the build system will automatically do the right thing without them.
+
+# Logging
+
+* Log as much as necessary for someone to figure out what broke.
+* Use `org.apache.commons.logging.Log` rather than raw Log4j.
+* Do not log throwables that you throw - leave it to the caller.
+* Use flags to avoid string concatenation for *debug* and *trace*.
+* Cache flags (especially for *trace*) to avoid excessive `isTraceEnabled()` calls
+
+## Levels
+
+* Use *trace* level for detailed/diagnostic logging
+* Use *debug* level for things an application developer would need to know
+* Use *info* level for things an administrator would need to know
+* Use *warn* level for things indicating an application or transient problem
+* Use *error* level for things indicating a problem with the server itself
+* Use *fatal* level for things that mean this instance is compromised
+
+# Example
+
+<DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+<SPAN class="code-keyword">private</SPAN> <SPAN class="code-keyword">static</SPAN> <SPAN class="code-keyword">final</SPAN> Log log = LogFactory.getLog(MyClass.class);
+
+<SPAN class="code-keyword">public</SPAN> void doSomeStuff(Stuff stuff) <SPAN class="code-keyword">throws</SPAN> StuffException {
+    <SPAN class="code-object">boolean</SPAN> logTrace = log.isTraceEnabled();
+    <SPAN class="code-keyword">try</SPAN> {
+        <SPAN class="code-keyword">if</SPAN> (logTrace) {
+            log.trace(<SPAN class="code-quote">&quot;About to <SPAN class="code-keyword">do</SPAN> stuff &quot;</SPAN> + stuff);
+        }
+        stuff.doSomething();
+        <SPAN class="code-keyword">if</SPAN> (logTrace) {
+            log.trace(<SPAN class="code-quote">&quot;Did some stuff &quot;</SPAN>);
+        }
+    } <SPAN class="code-keyword">catch</SPAN> (BadException e) {
+        <SPAN class="code-comment">// don't log - leave it to caller
+</SPAN>        <SPAN class="code-keyword">throw</SPAN> <SPAN class="code-keyword">new</SPAN> StuffException(<SPAN class="code-quote">&quot;Something bad happened&quot;</SPAN>, e);
+    } <SPAN class="code-keyword">catch</SPAN> (IgnorableException e) {
+        <SPAN class="code-comment">// didn't cache <SPAN class="code-keyword">this</SPAN> as we don't expect to come here a lot
+</SPAN>        <SPAN class="code-keyword">if</SPAN> (log.isDebugEnabled()) {
+            log.debug(<SPAN class="code-quote">&quot;Ignoring problem doing stuff &quot;</SPAN>+stuff, e);
+        }
+    }
+}
+</PRE>
+</DIV></DIV>
\ No newline at end of file

Modified: servicemix/sandbox/website20/src/main/webapp/contrib/committers-guide.page
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/contrib/committers-guide.page?rev=1030742&r1=1030741&r2=1030742&view=diff
==============================================================================
--- servicemix/sandbox/website20/src/main/webapp/contrib/committers-guide.page (original)
+++ servicemix/sandbox/website20/src/main/webapp/contrib/committers-guide.page Wed Nov  3 22:39:40 2010
@@ -3,4 +3,66 @@
 title: Guidelines for Committers
 --- name:content pipeline:markdown
 
-# Guidelines for Committers
\ No newline at end of file
+# Guidelines for Committers
+
+This page serves as a gather spot for all information for committers to Apache ServiceMix. It is requested that all committers comply with the following guidelines.
+
+## Code Style
+
+Before committing anything, please see the [coding standards](coding-standards.html).
+
+These code standards are enforced in most ares of the codebase via the [maven-checkstyle-plugin](http://maven.apache.org/plugins/maven-checkstyle-plugin/) and the [maven-pmd-plugin](http://maven.apache.org/plugins/maven-pmd-plugin/). Just make sure to build your code before committing.
+
+
+## Subversion Client Configuration
+
+Please see the [Subversion client EOL configuration](http://www.apache.org/dev/svn-eol-style.txt).
+
+## Documentation
+
+* All major commits **must** be associated with a JIRA issue.
+    * The commit log should begin with the JIRA issue number. For a good example, see this [Log Message](http://svn.apache.org/viewvc?view=rev&revision=582756).
+    * If there are multiple commits for a JIRA issue, each commit log should begin with the JIRA issue number.
+* All committed code **must** be properly documented.
+    * If you are working on a piece of code that is undocumented or poorly documented, please take the time to document it properly before committing!
+    * This includes Javadoc and regular comments. If you need an example of good documentation, take a peek at the [Spring source code](http://springframework.cvs.sourceforge.net/springframework/spring/src/org/springframework/). Here is the [Spring ``AbstractJmsListeningContainer``](http://springframework.cvs.sourceforge.net/springframework/spring/src/org/springframework/jms/listener/AbstractJmsListeningContainer.java?view=markup).
+
+## Unit Tests
+
+* All major code additions and changes should be accompanied by a unit test.
+
+    This allows all issues to be proven in future builds.</LI>
+* Unit tests should provide as much coverage as possible.
+
+    The goal is to cover 100% of the codebase. This is enforced much easier on ServiceMix 4.0 than the existing ServiceMix 3.0 codebase.</LI>
+
+## Licensing and Copyright
+
+* All new source file submissions **must** include the Apache License in a comment at the head of the file.
+
+    Below is an example for use in Java files. Other file types may need to change the comment style.
+
+        /*
+         * Licensed to the Apache Software Foundation (ASF) under one or more
+         * contributor license agreements.  See the NOTICE file distributed with
+         * this work for additional information regarding copyright ownership.
+         * The ASF licenses this file to You under the Apache License, Version 2.0
+         * (the "License"); you may not use this file except in compliance with
+         * the License.  You may obtain a copy of the License at
+         *
+         *      http://www.apache.org/licenses/LICENSE-2.0
+         *
+         * Unless required by applicable law or agreed to in writing, software
+         * distributed under the License is distributed on an "AS IS" BASIS,
+         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+         * See the License for the specific language governing permissions and
+         * limitations under the License.
+         */
+
+* All contributions **must** comply with the terms of the [Apache Contributor License Agreement (CLA)](http://www.apache.org/licenses/cla.pdf).
+* Any questions about copyright or patent issues should be raised on the dev mailing list **before** contributing or committing code.
+
+## Miscellaneous
+
+* If you need to experiment with something and you want to commit your code, just create a branch in the Subversion repo.
+* If you are troubleshooting a problem, stop to create a unit test first. Then you'll have something to commit.
\ No newline at end of file

Copied: servicemix/sandbox/website20/src/main/webapp/contrib/releasing.page (from r1030498, servicemix/sandbox/website20/src/main/webapp/contrib/developers.page)
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/contrib/releasing.page?p2=servicemix/sandbox/website20/src/main/webapp/contrib/releasing.page&p1=servicemix/sandbox/website20/src/main/webapp/contrib/developers.page&r1=1030498&r2=1030742&rev=1030742&view=diff
==============================================================================
--- servicemix/sandbox/website20/src/main/webapp/contrib/developers.page (original)
+++ servicemix/sandbox/website20/src/main/webapp/contrib/releasing.page Wed Nov  3 22:39:40 2010
@@ -1,6 +1,270 @@
 ---
-<% attributes("title") = "Developer Resources" %>
-title: Developer Resources
+<% attributes("title") = "Release Guide" %>
+title: Release Guide
 --- name:content pipeline:markdown
 
-# Developer Resources
\ No newline at end of file
+How to create and announce a ServiceMix release.
+
+# Prepare the Release
+
+To prepare and perform a release you must be at least at Apache ServiceMix Committer.
+
+<UL>
+	<LI>each and every release must be <A href="http://www.apache.org/dev/release-signing.html" class="external-link" rel="nofollow">SIGNED</A></LI>
+	<LI>your public key should also be cross-signed by other Apache committers (not required, but suggested)</LI>
+	<LI>make sure you have all Apache servers defined in your <A href="http://maven.apache.org/developers/committer-settings.html" class="external-link" rel="nofollow">settings.xml</A></LI>
+	<LI>use Maven 2.0.x or 2.2..x</LI>
+</UL>
+
+
+<P>Your settings.xml should look like:</P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-xml">
+<SPAN class="code-tag">&lt;settings&gt;</SPAN>
+  ...
+  <SPAN class="code-tag">&lt;profiles&gt;</SPAN>
+    <SPAN class="code-tag">&lt;profile&gt;</SPAN>
+      <SPAN class="code-tag">&lt;id&gt;</SPAN>release<SPAN class="code-tag">&lt;/id&gt;</SPAN>
+      <SPAN class="code-tag">&lt;properties&gt;</SPAN>
+        <SPAN class="code-tag">&lt;gpg.passphrase&gt;</SPAN> <SPAN class="code-tag"><SPAN class="code-comment">&lt;!-- YOUR KEY PASSPHRASE --&gt;</SPAN></SPAN> <SPAN class="code-tag">&lt;/gpg.passphrase&gt;</SPAN>
+      <SPAN class="code-tag">&lt;/properties&gt;</SPAN>
+    <SPAN class="code-tag">&lt;/profile&gt;</SPAN>
+  <SPAN class="code-tag">&lt;/profiles&gt;</SPAN>
+  ...
+  <SPAN class="code-tag">&lt;servers&gt;</SPAN>
+    <SPAN class="code-tag"><SPAN class="code-comment">&lt;!-- To publish a snapshot of some part of Maven --&gt;</SPAN></SPAN>
+    <SPAN class="code-tag">&lt;server&gt;</SPAN>
+      <SPAN class="code-tag">&lt;id&gt;</SPAN>apache.snapshots.https<SPAN class="code-tag">&lt;/id&gt;</SPAN>
+      <SPAN class="code-tag">&lt;username&gt;</SPAN> <SPAN class="code-tag"><SPAN class="code-comment">&lt;!-- YOUR APACHE SVN USERNAME --&gt;</SPAN></SPAN> <SPAN class="code-tag">&lt;/username&gt;</SPAN>
+      <SPAN class="code-tag">&lt;password&gt;</SPAN> <SPAN class="code-tag"><SPAN class="code-comment">&lt;!-- YOUR APACHE SVN PASSWORD --&gt;</SPAN></SPAN> <SPAN class="code-tag">&lt;/password&gt;</SPAN>
+    <SPAN class="code-tag">&lt;/server&gt;</SPAN>
+    <SPAN class="code-tag"><SPAN class="code-comment">&lt;!-- To stage a release of some part of Maven --&gt;</SPAN></SPAN>
+    <SPAN class="code-tag">&lt;server&gt;</SPAN>
+      <SPAN class="code-tag">&lt;id&gt;</SPAN>apache.releases.https<SPAN class="code-tag">&lt;/id&gt;</SPAN>
+      <SPAN class="code-tag">&lt;username&gt;</SPAN> <SPAN class="code-tag"><SPAN class="code-comment">&lt;!-- YOUR APACHE SVN USERNAME --&gt;</SPAN></SPAN> <SPAN class="code-tag">&lt;/username&gt;</SPAN>
+      <SPAN class="code-tag">&lt;password&gt;</SPAN> <SPAN class="code-tag"><SPAN class="code-comment">&lt;!-- YOUR APACHE SVN PASSWORD --&gt;</SPAN></SPAN> <SPAN class="code-tag">&lt;/password&gt;</SPAN>
+    <SPAN class="code-tag">&lt;/server&gt;</SPAN>
+    ...
+  <SPAN class="code-tag">&lt;/servers&gt;</SPAN>
+<SPAN class="code-tag">&lt;/settings&gt;</SPAN>
+
+</PRE>
+</DIV></DIV>
+
+# Staging the Release Candidate
+
+<OL>
+	<LI>grab the latest <A href="source.html" title="Source">Source</A>
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+svn co https:<SPAN class="code-comment">//svn.apache.org/repos/asf/servicemix/$PART/trunk</SPAN>
+</PRE>
+</DIV></DIV>
+<P>where $PART is what you want to release. For example, it can be:</P>
+	<UL>
+		<LI>smx3</LI>
+		<LI>smx4</LI>
+		<LI>components/bindings/servicemix-cxf-bc</LI>
+		<LI>...</LI>
+	</UL>
+	</LI>
+	<LI>prepare your POMs for release:
+	<OL>
+		<LI>make sure there is no snapshots in the POMs to be released</LI>
+		<LI>make sure everything builds fine</LI>
+		<LI>check that your POMs will not lose content when they are rewritten during the release process:
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+mvn release:prepare -DdryRun
+</PRE>
+</DIV></DIV> 
+<P>and diff the original pom.xml with the one named pom.xml.tag to see if the license or any other info has been removed. This has been known to happen if the starting &lt;project&gt; tag is not a single line. The only things that should be different between these files are the &lt;version&gt; and &lt;scm&gt; elements. If there are any other changes, you must fix the original pom.xml file and commit before proceeding with the release. </P></LI>
+		<LI>publish a snapshot
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+$ mvn deploy
+...
+[INFO] [deploy:deploy]
+[INFO] Retrieving previous build number from apache.snapshots.https
+...
+</PRE>
+</DIV></DIV></LI>
+	</OL>
+	<UL>
+		<LI>if you experience an error during deployment like a HTTP 401 check your settings for the required server entries as outlined in the <B>Prerequisites</B></LI>
+		<LI>be sure that the generated artifacts respect the Apache release <A href="http://www.apache.org/dev/release.html" class="external-link" rel="nofollow">rules</A>: NOTICE and LICENSE files should be present in the META-INF directory within the jar. For sources artifacts, be sure that your POM does not use the maven-source-plugin:2.0.3 which is broken. The recommended version at this time is 2.0.4</LI>
+		<LI>you should verify the deployment under the <A href="https://repository.apache.org/content/groups/snapshots/org/apache/servicemix" class="external-link" rel="nofollow">snapshot</A> repository on Apache</LI>
+	</UL>
+	</LI>
+	<LI>prepare the release
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+mvn release:clean
+mvn release:prepare
+</PRE>
+</DIV></DIV></LI>
+	<LI>stage the release for a vote
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+mvn release:perform
+</PRE>
+</DIV></DIV>
+	<UL>
+		<LI>the release will automatically be inserted into a temporary staging repository for you, see the Nexus <A href="http://www.sonatype.com/books/nexus-book/reference/staging.html" class="external-link" rel="nofollow">staging documentation</A> for full details</LI>
+		<LI>you can continue to use mvn release:prepare and mvn release:perform on other sub-projects as necessary on the same machine and they will be combined in the same staging repository</LI>
+	</UL>
+	</LI>
+	<LI>close the staging repository
+	<UL>
+		<LI>login to <A href="https://repository.apache.org/" class="external-link" rel="nofollow">https://repository.apache.org</A> using your Apache SVN credentials. Click on Staging on the left. Then click on org.apache.servicemix in the list of repositories. In the panel below you should see an open repository that is linked to your username and IP. Right click on this repository and select Close. This will close the repository from future deployments and make it available for others to view. If you are staging multiple releases together, skip this step until you have staged everything<BR>
+<SPAN class="image-wrap" style=""><A class="confluence-thumbnail-link 1014x751" href="/images/release_01.png"><IMG src="/images/release_01.png.jpeg" style="border: 0px solid black"></A></SPAN> <SPAN class="image-wrap" style=""><A class="confluence-thumbnail-link 1014x751" href="/images/release_02.png"><IMG src="/images/release_02.png.jpeg" style="border: 0px solid black"></A></SPAN> <SPAN class="image-wrap" style=""><A class="confluence-thumbnail-link 1014x751" href="/images/release_03.png"><IMG src="/images/release_03.png.jpeg" style="border: 0px solid black"></A></SPAN> <SPAN class="image-wrap" style=""><A class="confluence-thumbnail-link 1014x751" href="/images/release_04.png"><IMG src="/images/release_04.png.jpeg" style="border: 0px solid black"></A></SPAN> <SPAN class="image-wrap" style=""><A class="confluence-thumbnail-link 1014x751" href="/images/release_05.png"><IMG src="/images/release_05.png.jpeg" style="border: 0px solid black"></A></SPAN> <SPAN class="image-wrap"
  style=""><A class="confluence-thumbnail-link 1014x751" href="/images/release_06.png"><IMG src="/images/release_06.png.jpeg" style="border: 0px solid black"></A></SPAN></LI>
+	</UL>
+	</LI>
+	<LI>verify the staged artifacts
+	<UL>
+		<LI>if you click on your repository, a tree view will appear below. You can then browse the contents to ensure the artifacts are as you expect them. Pay particular attention to the existence of *.asc (signature) files. If you don't like the content of the repository, right click your repository and choose Drop. You can then rollback your release (see Canceling the Release) and repeat the process</LI>
+		<LI>note the staging repository URL (especially the number at the end of the URL) you will need this in your vote email</LI>
+	</UL>
+	</LI>
+</OL>
+
+
+# Starting the Vote
+
+Propose a vote on the dev list with the closed issues, the issues left, and the staging repository - for example:
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+To: <SPAN class="code-quote">&quot;ServiceMix Developers List&quot;</SPAN> &lt;dev@servicemix.apache.org&gt;
+Subject: [VOTE] Release ServiceMix [Component] XXX version Y.Z
+
+Hi,
+
+We solved N issues in <SPAN class="code-keyword">this</SPAN> release:
+http:<SPAN class="code-comment">//issues.apache.org/jira/...
+</SPAN>
+There are still some outstanding issues:
+http:<SPAN class="code-comment">//issues.apache.org/jira/...
+</SPAN>
+Staging repository:
+https:<SPAN class="code-comment">//repository.apache.org/content/repositories/servicemix-staging-[YOUR REPOSITORY ID]/
+</SPAN>
+Please vote to approve <SPAN class="code-keyword">this</SPAN> release:
+
+[ ] +1 Approve the release
+[ ] -1 Veto the release (please provide specific comments)
+
+This vote will be open <SPAN class="code-keyword">for</SPAN> 72 hours.
+</PRE>
+</DIV></DIV>
+
+<UL>
+	<LI>to get the JIRA release notes link, browse to the ServiceMix <A href="http://issues.apache.org/jira/browse/ServiceMix" class="external-link" rel="nofollow">JIRA</A> page, select Release Notes and choose the relevant sub-project release and format (HTML)</LI>
+	<LI>to get the list of issues left in JIRA, select the Open Issues tab on the main ServiceMix page, and select the relevant sub-project.</LI>
+</UL>
+
+
+# Wait for the Results
+
+<P>From <A href="http://www.apache.org/foundation/voting.html" class="external-link" rel="nofollow">Votes on Package Releases</A>:</P>
+
+<P>    Votes on whether a package is ready to be released follow a format similar to majority approval - except that the decision is officially determined solely by whether at least three +1 votes were registered. Releases may not be vetoed. Generally the community will table the vote to release if anyone identifies serious problems, but in most cases the ultimate decision, once three or more positive votes have been garnered, lies with the individual serving as release manager. The specifics of the process may vary from project to project, but the 'minimum of three +1 votes' rule is universal.</P>
+
+<P>The list of binding voters is available at <A href="http://servicemix.apache.org/team.html" class="external-link" rel="nofollow">http://servicemix.apache.org/team.html</A>.</P>
+
+<P>If the vote is successful, post the result to the dev list - for example:</P>
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+To: <SPAN class="code-quote">&quot;ServiceMix Developers List&quot;</SPAN> &lt;dev@servicemix.apache.org&gt;
+Subject: [RESULT] [VOTE] Release ServiceMix [Component] XXX version Y.Z
+
+Hi,
+
+The vote has passed with the following result :
+
+  +1 (binding): &lt;&lt;list of names&gt;&gt;
+  +1 (non binding): &lt;&lt;list of names&gt;&gt;
+
+I will copy <SPAN class="code-keyword">this</SPAN> release to the ServiceMix dist directory and
+promote the artifacts to the central Maven repository.
+</PRE>
+</DIV></DIV>
+
+<P>If the vote is unsuccessful, you need to fix the issues and restart the process - see <B>Canceling the Release</B>.<BR>
+If the vote is successful, you need to promote and distribute the release - see <B>Promoting the Release</B>.</P>
+
+# Canceling the Release
+
+<P>If the vote fails, or you decide to redo the release:</P>
+
+<OL>
+	<LI>remove the release tag from Subversion (svn del ...)</LI>
+	<LI>login to <A href="https://repository.apache.org/" class="external-link" rel="nofollow">https://repository.apache.org</A> using your Apache SVN credentials. Click on Staging on the left. Then click on org.apache.servicemix in the list of repositories. In the panel below you should see a closed repository that is linked to your username and IP (if it's not yet closed you need to right click and select Close). Right click on this repository and select Drop.</LI>
+	<LI>rollback the version in the pom.xml and commit any fixes you need to make</LI>
+    <li>restart the vote</li>
+</OL>
+
+
+# Promoting the Release
+
+If the vote passes:
+
+1. Copy the released artifacts to the ServiceMix dist directory (/x1/www/www.apache.org/dist/servicemix) on people.apache.org
+1. Delete the old release from the ServiceMix dist directory (it's archived)
+1. Login to [https://repository.apache.org](https://repository.apache.org/) with your Apache SVN credentials.
+1. Click on Staging.
+1. Find your closed staging repository, right click on it and choose Promote.
+1. Select the Releases repository from the drop-down list and click Promote.
+1. Click on Repositories, select the Releases repository and validate that your artifacts are all there.
+1. Update the news section on the website at news.
+1. Update the download page on the website at downloads to point to the new release.
+
+<div class="tip">
+  <h1>Let the mirrors catch up</h1>
+  <P>For the last two tasks, it's better to give the mirrors some time to distribute the uploaded artifacts (one day should be fine). This ensures that once the website (news and download page) is updated, people can actually download the artifacts.</P>
+</div>
+
+# Update XML schemas
+
+Update the [Xml schemas](xml-schemas.html) page with a link to the HTML and XSD.
+
+
+
+# Update JIRA
+
+1. Go to **Admin** section on the ServiceMix JIRA and mark the **Component/Y.Z** version as released.
+1. Create version Y.Z+1, if that hasn't already been done.
+
+# Announcing the ServiceMix Release
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+To: <SPAN class="code-quote">&quot;ServiceMix Developers List&quot;</SPAN> &lt;dev@servicemix.apache.org&gt;
+Subject: [ANN] ServiceMix XXX version Y.Z Released
+
+The ServiceMix team is pleased to announce the release of ServiceMix XXX version Y.Z
+
+&lt;&lt;insert <SPAN class="code-object">short</SPAN> description of the sub-project&gt;&gt;
+
+  http:<SPAN class="code-comment">//servicemix.apache.org/XXX.html
+</SPAN>
+This release is available from http:<SPAN class="code-comment">//servicemix.apache.org/downloads and Maven:
+</SPAN>
+  &lt;dependency&gt;
+    &lt;groupId&gt;org.apache.servicemix&lt;/groupId&gt;
+    &lt;artifactId&gt;org.apache.servicemix.XXX&lt;/artifactId&gt;
+    &lt;version&gt;Y.Z&lt;/version&gt;
+  &lt;/dependency&gt;
+
+Release Notes:
+
+&lt;&lt;insert release notes in text format from JIRA&gt;&gt;
+
+Enjoy!
+
+-The ServiceMix team
+</PRE>
+</DIV></DIV>
+
+Remember to forward this announcement to users@servicemix.apache.org - try not to cross-post (CC announcements to both user and dev lists.
\ No newline at end of file

Modified: servicemix/sandbox/website20/src/main/webapp/contrib/source.page
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/contrib/source.page?rev=1030742&r1=1030741&r2=1030742&view=diff
==============================================================================
--- servicemix/sandbox/website20/src/main/webapp/contrib/source.page (original)
+++ servicemix/sandbox/website20/src/main/webapp/contrib/source.page Wed Nov  3 22:39:40 2010
@@ -1,6 +1,56 @@
 ---
-<% attributes("title") = "Source" %>
+<% attributes("title") = "Getting the Source" %>
 title: Source
 --- name:content pipeline:markdown
 
-Get the source
\ No newline at end of file
+# Browsing the Source Tree
+
+## Browsing SVN Via the Web
+
+To browse the raw SVN repo, use the following URL: [http://svn.apache.org/repos/asf/servicemix/](http://svn.apache.org/repos/asf/servicemix/)
+
+To browse the SVN repo using [ViewVC](http://www.viewvc.org/), use the following URL: [http://svn.apache.org/viewvc/servicemix/](http://svn.apache.org/viewvc/servicemix/)
+
+## Browsing SVN Via FishEye
+
+<img src="/images/Fisheye_logo.png" style="border: 0px solid black">
+
+A hearty thanks to [Atlassian](http://atlassian.com/) for providing [FishEye](http://www.atlassian.com/software/fisheye/) hosting for ServiceMix. Below is the URL to browse the Subversion repo via FishEye: 
+[http://fisheye6.cenqua.com/browse/servicemix/](http://fisheye6.cenqua.com/browse/servicemix/)
+
+# Checking out the Source Tree
+
+## Anonymous Checkout from the ServiceMix SVN Repo
+
+This project's SVN repository can be checked out anonymously using the following command:
+
+    svn co http://svn.apache.org/repos/asf/servicemix/
+
+## Committer Checkout from the ServiceMix SVN Repo
+
+ServiceMix committers can check out using the following command:
+
+    svn co https://svn.apache.org/repos/asf/servicemix/smx3/trunk
+
+<div class="warn">
+  <h1>Commiters Only</h1>
+  <p>Only project developers can commit to the SVN tree via this method. SSH must be installed on your client machine. Enter your site password when prompted.</p>
+</div>
+
+# Building the Source Code
+
+Once you have checked out the source code please read the [instructions on how to build ServiceMix](building.html).
+
+# Working With the ServiceMix Extensions at the Codehaus
+
+Due to license issues, some extensions to ServiceMix are hosted at the CodeHaus. To browse that SVN repo via the web, use the following URL: 
+[http://svn.codehaus.org/servicemix/trunk/](http://svn.codehaus.org/servicemix/trunk/)
+
+This project's SVN repository can be checked out anonymously with the following command:
+
+    svn co http://svn.codehaus.org/servicemix/trunk
+
+
+If you are a committer, use the following command:
+
+    svn co https://svn.codehaus.org/servicemix/trunk
\ No newline at end of file

Modified: servicemix/sandbox/website20/src/main/webapp/css/master.css
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/css/master.css?rev=1030742&r1=1030741&r2=1030742&view=diff
==============================================================================
--- servicemix/sandbox/website20/src/main/webapp/css/master.css (original)
+++ servicemix/sandbox/website20/src/main/webapp/css/master.css Wed Nov  3 22:39:40 2010
@@ -40,7 +40,8 @@ ul.siteNav {
   padding:0;
   margin:0;
   position: relative;
-  left:40%;
+  left:20%;
+  width: 80%;
   }
   
 ul.siteNav li {
@@ -216,6 +217,11 @@ div.note h1:before {
   padding-right: 10px;
 }
 
+div.warn h1:before {
+  content:url(/images/forbidden.gif);
+  padding-right: 10px;
+}
+
 div.tip h1, div.warn h1, div.note h1 {
   font-size: small;
   padding-bottom: 5px;

Added: servicemix/sandbox/website20/src/main/webapp/images/Fisheye_logo.png
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/images/Fisheye_logo.png?rev=1030742&view=auto
==============================================================================
Binary file - no diff available.

Propchange: servicemix/sandbox/website20/src/main/webapp/images/Fisheye_logo.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: servicemix/sandbox/website20/src/main/webapp/images/forbidden.gif
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/images/forbidden.gif?rev=1030742&view=auto
==============================================================================
Binary file - no diff available.

Propchange: servicemix/sandbox/website20/src/main/webapp/images/forbidden.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif

Added: servicemix/sandbox/website20/src/main/webapp/images/release_01.png
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/images/release_01.png?rev=1030742&view=auto
==============================================================================
Binary file - no diff available.

Propchange: servicemix/sandbox/website20/src/main/webapp/images/release_01.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: servicemix/sandbox/website20/src/main/webapp/images/release_01.png.jpeg
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/images/release_01.png.jpeg?rev=1030742&view=auto
==============================================================================
Binary file - no diff available.

Propchange: servicemix/sandbox/website20/src/main/webapp/images/release_01.png.jpeg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: servicemix/sandbox/website20/src/main/webapp/images/release_02.png
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/images/release_02.png?rev=1030742&view=auto
==============================================================================
Binary file - no diff available.

Propchange: servicemix/sandbox/website20/src/main/webapp/images/release_02.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: servicemix/sandbox/website20/src/main/webapp/images/release_02.png.jpeg
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/images/release_02.png.jpeg?rev=1030742&view=auto
==============================================================================
Binary file - no diff available.

Propchange: servicemix/sandbox/website20/src/main/webapp/images/release_02.png.jpeg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: servicemix/sandbox/website20/src/main/webapp/images/release_03.png
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/images/release_03.png?rev=1030742&view=auto
==============================================================================
Binary file - no diff available.

Propchange: servicemix/sandbox/website20/src/main/webapp/images/release_03.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: servicemix/sandbox/website20/src/main/webapp/images/release_03.png.jpeg
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/images/release_03.png.jpeg?rev=1030742&view=auto
==============================================================================
Binary file - no diff available.

Propchange: servicemix/sandbox/website20/src/main/webapp/images/release_03.png.jpeg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: servicemix/sandbox/website20/src/main/webapp/images/release_04.png
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/images/release_04.png?rev=1030742&view=auto
==============================================================================
Binary file - no diff available.

Propchange: servicemix/sandbox/website20/src/main/webapp/images/release_04.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: servicemix/sandbox/website20/src/main/webapp/images/release_04.png.jpeg
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/images/release_04.png.jpeg?rev=1030742&view=auto
==============================================================================
Binary file - no diff available.

Propchange: servicemix/sandbox/website20/src/main/webapp/images/release_04.png.jpeg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: servicemix/sandbox/website20/src/main/webapp/images/release_05.png
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/images/release_05.png?rev=1030742&view=auto
==============================================================================
Binary file - no diff available.

Propchange: servicemix/sandbox/website20/src/main/webapp/images/release_05.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: servicemix/sandbox/website20/src/main/webapp/images/release_05.png.jpeg
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/images/release_05.png.jpeg?rev=1030742&view=auto
==============================================================================
Binary file - no diff available.

Propchange: servicemix/sandbox/website20/src/main/webapp/images/release_05.png.jpeg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: servicemix/sandbox/website20/src/main/webapp/images/release_06.png
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/images/release_06.png?rev=1030742&view=auto
==============================================================================
Binary file - no diff available.

Propchange: servicemix/sandbox/website20/src/main/webapp/images/release_06.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: servicemix/sandbox/website20/src/main/webapp/images/release_06.png.jpeg
URL: http://svn.apache.org/viewvc/servicemix/sandbox/website20/src/main/webapp/images/release_06.png.jpeg?rev=1030742&view=auto
==============================================================================
Binary file - no diff available.

Propchange: servicemix/sandbox/website20/src/main/webapp/images/release_06.png.jpeg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream