Fix header levels to get a neat hierarchy in the PDF

git-svn-id: https://svn.apache.org/repos/asf/servicemix/documentation/trunk@1023673 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/webapp/camel/camel-deployment.conf b/src/main/webapp/camel/camel-deployment.conf
index 33234d9..90a4cd2 100644
--- a/src/main/webapp/camel/camel-deployment.conf
+++ b/src/main/webapp/camel/camel-deployment.conf
@@ -1,4 +1,4 @@
-h1. Deployment options
+h2. Deployment options
 There are a few different ways to deploy Camel routes on ServiceMix ${servicemx.version}:
 * deploy routes in a plain Spring XML file
 * deploy a bundle containing
@@ -7,7 +7,7 @@
 
 Camel routes can also be deployed as part of a JBI SA, allowing you use Camel for routing between JBI endpoints - this option will be discussed later when we are talking about using JBI inside ServiceMix 4.
 
-h2. Deploy as a plain Spring XML file
+h3. Deploy as a plain Spring XML file
 ServiceMix ${servicemix.version} supports the deployment of plain Spring XML files, automatically creating and starting the Spring ApplicationContext from the XML file.
 
 In order to leverage this feature to create and start Camel routes, drop a file with this syntax in the {{$SERVICEMIX_HOME/deploy}} folder:
@@ -29,7 +29,7 @@
 </beans>
 {pygmentize}
 
-h3. An example
+h4. An example
 Just create a new XML file in the deploy folder with the code below to start a route to copy files from one directory to another.
 {pygmentize:lang=xml}
 <?xml version="1.0" encoding="UTF-8"?>
@@ -53,13 +53,13 @@
 </beans>
 {pygmentize}
 
-h2. Deploy as an OSGi bundle
+h3. Deploy as an OSGi bundle
 The Spring XML file can also be deployed as part of a bundle by adding it to the {{META-INF/spring}} folder.  When the bundle is being started, the Spring ApplicationContext is created and started as well.  This kind of deployment also allows using Java or Scala Routebuilders for defining the routes.
 
-h3. Using the XML file to define the routes
+h4. Using the XML file to define the routes
 The route can be defined directly in the XML file you add to {{META-INF/spring}}, similar to the example shown before.
 
-h3. Using a Java or Scala RouteBuilder
+h4. Using a Java or Scala RouteBuilder
 When using a Java (or Scala) RouteBuilder to define your Camel routes, the Spring XML file refers to the packages containing the RouteBuilder classes:
 {pygmentize:lang=xml}
 <?xml version="1.0" encoding="UTF-8"?>
diff --git a/src/main/webapp/camel/camel-index.conf b/src/main/webapp/camel/camel-index.conf
index 7453baf..c7ef288 100644
--- a/src/main/webapp/camel/camel-index.conf
+++ b/src/main/webapp/camel/camel-index.conf
@@ -1,3 +1,3 @@
-h1. Apache Camel
+h2. Apache Camel
 
 //TODO: Add some info about Apache Camel
\ No newline at end of file
diff --git a/src/main/webapp/getting-started/technology-selection.conf b/src/main/webapp/getting-started/technology-selection.conf
index 402e754..b52f239 100644
--- a/src/main/webapp/getting-started/technology-selection.conf
+++ b/src/main/webapp/getting-started/technology-selection.conf
@@ -1,4 +1,4 @@
-h1. Technology selection guide
+h2. Technology selection guide
 ServiceMix 4 offers a set of different messaging and integration technologies:
 * ActiveMQ
 * Camel
@@ -8,27 +8,27 @@
 
 Depending on the solution you're building, you want to select one or more of these technologies.  Below are some guidelines to help you pick the right mix for your problem.
 
-h2. When to use Camel?
+h3. When to use Camel?
 For any integration scenario, we recommend to start as simple as possible.  Camel allows you to build routes for integration scenario's quickly and efficiently.  You can deploy these routes directly on ServiceMix by deploying the plain Spring XML route or by packaging the route in an OSGi bundle.
 
 As you need more (advanced) features, start combining Camel with ActiveMQ, CXF and/or the NMR
 
-h2. When to use ActiveMQ?
+h3. When to use ActiveMQ?
 ActiveMQ is a JMS message broker, featuring support for clustering, pluggable persistence mechanism, master-slave configuration for failover, ...
 
 ServiceMix 4 includes an instance of the ActiveMQ broker, which can be combined with Camel to provide easy-to-use message persistence and reliable messaging.
 
 After setting up multiple instances of ActiveMQ (or ServiceMix 4) on the network, you can configure ActiveMQ clustering or master-slave mode to allow for a more reliable and scalable set-up.
 
-h2. When to use CXF?
+h3. When to use CXF?
 CXF is an open-source services framework that you can use to suit your WS-* standards integration needs.  It allows you to use common programming APIs like JAX-RS or JAX-WS for building your own services and to expose them to the outside world.
 
 You can use CXF from within your Camel routes with the Camel CXF component.
 
-h2. When to use NMR?
+h3. When to use NMR?
 The NMR provides the basic ESB features for ServiceMix 4.  You can use it to connect multiple camel routes in a lightweight way.  It can also be used as a common transport on which you can add container-level auditing by registering your own ExchangeListener implementation.
 
-h2. When to use JBI?
+h3. When to use JBI?
 If you want to build a full-blown SOA solution using BPEL, ServiceMix includes a version of Apache ODE that integrates well with JBI messaging.  Because we still support JBI 1.0 on ServiceMix, you can also move your existing JBI artifacts from ServiceMix 3 to the new container with no/minimal changes.
 
 
diff --git a/src/main/webapp/jbi/servicemix-bean.conf b/src/main/webapp/jbi/servicemix-bean.conf
index 551d29f..5b2d74b 100644
--- a/src/main/webapp/jbi/servicemix-bean.conf
+++ b/src/main/webapp/jbi/servicemix-bean.conf
@@ -1,9 +1,9 @@
-h1. servicemix-bean
+h2. servicemix-bean
 
-h2. Overview
+h3. Overview
 The ServiceMix Bean component provides integration with beans (POJOs) with the JBI bus to make it easy to use POJOs to process JBI message exchanges. Like in an Message Driven Bean in J2EE a POJO will receive a message from the NMR and process it in any way it likes. Unlike in a JMS component where the coding is already done the Bean component gives the developer the freedom to create any type of message handling but it must be hand coded all the way.
 
-h3. Namespace and xbean.xml
+h4. Namespace and xbean.xml
 The namespace URI for the servicemix-bean JBI component is {{http://servicemix.apache.org/bean/1.0}}.  This is an example of <filename>xbean.xml</filename> file with a namespace definition with prefix {{bean}}.
 {pygmentize:lang=xml}
 <beans xmlns:bean="http://servicemix.apache.org/bean/1.0">
@@ -13,12 +13,12 @@
 </beans>
 {pygmentize}
 
-h3. Endpoint types
+h4. Endpoint types
 The servicemix-bean component only defines one endpoint, called {{bean:endpoint}}.  It can be used to receive and send message exchanges from/to the NMR.
 
-h2. {{Endpoint bean:endpoint}}
+h3. {{Endpoint bean:endpoint}}
 
-h3. Using a Java class
+h4. Using a Java class
 When definining a {{bean:endpoint}} specifying a Java class name, a new instance of this class will be created for handling a single message exchange.
 
 {pygmentize:lang=xml}
@@ -31,4 +31,4 @@
 </beans>
 {pygmentize}
 
-h3. TODO: add other configuration types
+h4. TODO: add other configuration types
diff --git a/src/main/webapp/jbi/servicemix-camel.conf b/src/main/webapp/jbi/servicemix-camel.conf
index d1cdc69..934875f 100644
--- a/src/main/webapp/jbi/servicemix-camel.conf
+++ b/src/main/webapp/jbi/servicemix-camel.conf
@@ -1,9 +1,9 @@
-h1. servicemix-camel
+h2. servicemix-camel
 
-h2. Overview
+h3. Overview
 The servicemix-camel component provides support for using Apache Camel to provide a full set of Enterprise Integration Patterns and flexible routing and transformation in both Java code or Spring XML to route services on the Normalized Message Router.
 
-h3. Namespace and camel-context.xml
+h4. Namespace and camel-context.xml
 When creating a servicemix-camel service unit, we reuse the default Camel namespace {{http://camel.apache.org/schema/spring}}.
 
 This is an example {{camel-context.xml}} which uses the Spring DSL to define the Camel routes
@@ -44,7 +44,7 @@
 </beans>
 {pygmentize}
 
-h2. URI
+h3. URI
 Camel routes use URIs to interact with the ESB.  You can use these URIs to expose new endpoints on the ESB as well as to send message exchanges to existing endpoints.
 
 The snippet below automatically exposes a new endpoint to the bus, where the service QName is {{{http://foo.bar.org}MyService}} and the endpoint name is {{MyEndpoint}}.
@@ -59,7 +59,7 @@
 
 The messages sent by this producer endpoint are sent to the already deployed JBI endpoint.
 
-h3. URI format
+h4. URI format
 
 {pygmentize:lang=text}
 jbi:service:serviceNamespace[sep]serviceName[?options]
@@ -73,34 +73,34 @@
 
 You can append query options to the URI in the following format, {{?option=value&amp;option=value&amp;...}}
 
-h4. Examples
-h5. Using {{jbi:service}}
+h5. Examples
+h6. Using {{jbi:service}}
 
 {pygmentize:lang=text}
 jbi:service:http://foo.bar.org/MyService
 jbi:service:urn:foo:bar:MyService
 {pygmentize}
 
-h5. Using {{jbi:endpoint}}
+h6. Using {{jbi:endpoint}}
 {pygmentize:lang=text}
 jbi:endpoint:urn:foo:bar:MyService:MyEndpoint
 jbi:endpoint:http://foo.bar.org/MyService/MyEndpoint
 {pygmentize}
 
-h5. Using {{jbi:name}}
+h6. Using {{jbi:name}}
 When using {{jbi:name}}, the component uses {{http://activemq.apache.org/camel/schema/jbi}endpoint}} as the default Service QName.
 {pygmentize:lang=text}
 jbi:name:MyEndpoint
 {pygmentize}
 
-h3. URI options
+h4. URI options
 || Name || Default value || Description ||
 | {{mep}} | MEP of the Camel Exchange | Allows users to override the MEP set on the Exchange object. Valid values for this option are {{in-only}}, {{in-out}}, {{robust-in-out}} and {{in-optional-out}}. |
 | {{operation}} | Value of the {{jbi.operation}} header property | Specifies the JBI operation for the {{MessageExchange}}.  If no value is supplied, the JBI binding will use the value of the {{jbi.operation}} header property. |
 | {{serialization}} | {{basic}} | Default value ({{basic}}) will check if headers are serializable by looking at the type, setting this option to {{strict}} will detect objects that can not be serialized although they implement the {{Serializable}} interface.  Set to {{nocheck}} to disable this check altogether, note that this should only be used for in-memory transports like SEDAFlow, otherwise you can expect to get {{NotSerializableException}} thrown at runtime. |
 | {{convertException}} | {{false}} | {{false}}: send any exceptions thrown from the Camel route back unmodified \\ {{true}}: convert all exceptions to a JBI FaultException (can be used to avoid non-serializable exceptions or to implement generic error handling |
 
-h4. Examples
+h5. Examples
 {pygmentize:lang=text}
 jbi:service:http://foo.bar.org/MyService?mep=in-out       (override the MEP, use InOut JBI MessageExchanges)
 jbi:endpoint:urn:foo:bar:MyService:MyEndpoint?mep=in      (override the MEP, use InOnly JBI MessageExchanges)
@@ -108,8 +108,8 @@
 (overide the operation for the JBI Exchange to {http://www.mycompany.org}AddNumbers)
 {pygmentize}
 
-h2. Example routes
-h3. Simple Spring route
+h3. Example routes
+h4. Simple Spring route
 This simple Spring route registers a new endpoint on the ESB (service {{{urn:org:example}Router}}, endpoint name {{orders}}).  The message exchange contents will be logged and then forwarded to another JBI service endpoint (service {{{http://services.example.org}OrderService}})
 {pygmentize:lang=xml}
 <beans xmlns="http://www.springframework.org/schema/beans"
@@ -131,7 +131,7 @@
 </beans>
 {pygmentize}
 
-h3. The same route using the Java DSL
+h4. The same route using the Java DSL
 When we implement the same route in the Java DSL, we first code our {{RouteBuilder}} implementation
 {pygmentize:lang=java}
 package org.apache.servicemix.example;
@@ -174,8 +174,8 @@
 
 
 
-h2. Special considerations
-h3. Stream handling
+h3. Special considerations
+h4. Stream handling
 If you are using a stream type as the message body, you should be aware that a stream is only capable of being read once. So if you enable {{DEBUG}} logging, the body is usually logged and thus read. To deal with this, Camel has a {{streamCaching}} option that can cache the stream, enabling you to read it multiple times.
 
 {pygmentize:lang=java}
diff --git a/src/main/webapp/jbi/servicemix-cxf-bc.conf b/src/main/webapp/jbi/servicemix-cxf-bc.conf
index 8ec6364..afcce53 100644
--- a/src/main/webapp/jbi/servicemix-cxf-bc.conf
+++ b/src/main/webapp/jbi/servicemix-cxf-bc.conf
@@ -1,6 +1,6 @@
-h1. servicemix-cxf-bc
+h2. servicemix-cxf-bc
 
-h2. Overview
+h3. Overview
 A JBI compliant HTTP/SOAP or JMS/SOAP binding component named servicemix-cxf-bc which use apache cxf internally.
 
 The main features are:
@@ -15,7 +15,7 @@
 * WS-RM support
 * WS-Addressing support
 
-h3. Namespace and xbean.xml
+h4. Namespace and xbean.xml
 The namespace URI for the servicemix-bean JBI component is {{http://servicemix.apache.org/cxfbc/1.0}}.  This is an example of <filename>xbean.xml</filename> file with a namespace definition with prefix {{bean}}.
 {pygmentize:lang=xml}
 <beans xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0">
@@ -25,7 +25,7 @@
 </beans>
 {pygmentize}
 
-h3. Endpoint types
+h4. Endpoint types
 The servicemix-cxf-bc component defines two endpoints:
 - {{cxfbc:consumer}} :: a server-side cxf endpoint that will consume plain HTTP+SOAP requests and send them into the NMR to a given JBI endpoint
 - {{cxfbc:provider}} :: a client-side jbi endpoint which can receive requests from the NMR and send them to a given url where the service is provided
diff --git a/src/main/webapp/jbi/servicemix-cxf-se.conf b/src/main/webapp/jbi/servicemix-cxf-se.conf
index 45effe8..97888e1 100644
--- a/src/main/webapp/jbi/servicemix-cxf-se.conf
+++ b/src/main/webapp/jbi/servicemix-cxf-se.conf
@@ -1,6 +1,6 @@
-h1. servicemix-cxf-se
+h2. servicemix-cxf-se
 
-h2. Overview
+h3. Overview
 ServiceMix CXF SE component is a JBI Service Engine exposing (annotated) POJO as services on the JBI Bus.
 It uses Apache CXF internally to perform service invocations and xml marshaling.
 
@@ -11,7 +11,7 @@
 * java proxy support
 * MTOM / attachments support
 
-h3. Namespace and xbean.xml
+h4. Namespace and xbean.xml
 The namespace URI for the servicemix-bean JBI component is {{http://servicemix.apache.org/cxfse/1.0}}.  This is an example of <filename>xbean.xml</filename> file with a namespace definition with prefix {{bean}}.
 {pygmentize:lang=xml}
 <beans xmlns:cxfse="http://servicemix.apache.org/cxfse/1.0">
@@ -21,7 +21,7 @@
 </beans>
 {pygmentize}
 
-h3. Endpoint types
+h4. Endpoint types
 The servicemix-cxf-bc component defines one endpoint type:
 - {{cxfse:endpoint}} :: no description yet
 
diff --git a/src/main/webapp/jbi/servicemix-drools.conf b/src/main/webapp/jbi/servicemix-drools.conf
index 79f7f19..4136fa1 100644
--- a/src/main/webapp/jbi/servicemix-drools.conf
+++ b/src/main/webapp/jbi/servicemix-drools.conf
@@ -1,13 +1,13 @@
-h1. servicemix-drools
+h2. servicemix-drools
 
-h2. Overview
+h3. Overview
 The ServiceMix Drools component provides JBI integration to the Drools Rules Engine.
 
 This Service Engine can be used to deploy a rules set that will implement a router or an actual service.
 
 A router will mostly act as a transparent proxy between the consumer and the target service provider mad will mostly be implemented by the jbi.route(uri) method below. This method creates a new exchange identical to the one received by the component and will send it to the specified destination. You can also send back a Fault if needed. A router can also be implemented by using directly the JBI Apis (available with the jbi helper) by using the provided client.
 
-h3. Namespace and xbean.xml
+h4. Namespace and xbean.xml
 The namespace URI for the servicemix-bean JBI component is {{http://servicemix.apache.org/drools/1.0}}.  This is an example of <filename>xbean.xml</filename> file with a namespace definition with prefix {{bean}}.
 {pygmentize:lang=xml}
 <beans xmlns:drools="http://servicemix.apache.org/drools/1.0">
@@ -17,7 +17,7 @@
 </beans>
 {pygmentize}
 
-h3. Endpoint types
+h4. Endpoint types
 The servicemix-drools component defines one endpoint type:
 - {{drools:endpoint}} :: no description yet
 
diff --git a/src/main/webapp/jbi/servicemix-eip.conf b/src/main/webapp/jbi/servicemix-eip.conf
index f03f3f0..5f2c895 100644
--- a/src/main/webapp/jbi/servicemix-eip.conf
+++ b/src/main/webapp/jbi/servicemix-eip.conf
@@ -1,10 +1,10 @@
-h1. servicemix-eip
+h2. servicemix-eip
 
-h2. Overview
+h3. Overview
 The servicemix-eip component is a routing container where different routing patterns can be deployed as service unit.
 This component is based on the great Enterprise Integration Patterns book.
 
-h3. Namespace and xbean.xml
+h4. Namespace and xbean.xml
 The namespace URI for the servicemix-bean JBI component is {{http://servicemix.apache.org/eip/1.0}}.  This is an example of <filename>xbean.xml</filename> file with a namespace definition with prefix {{bean}}.
 {pygmentize:lang=xml}
 <beans xmlns:drools="http://servicemix.apache.org/eip/1.0">
@@ -14,7 +14,7 @@
 </beans>
 {pygmentize}
 
-h3. Endpoint types
+h4. Endpoint types
 The servicemix-eip component defines several endpoint types:
 - {{eip:content-based-router}} :: Implements the Content-Based Router EIP
 - {{eip:message-filter}} :: Implements the Message Filter EIP
diff --git a/src/main/webapp/jbi/servicemix-file.conf b/src/main/webapp/jbi/servicemix-file.conf
index e3bf7f6..ffdc5e4 100644
--- a/src/main/webapp/jbi/servicemix-file.conf
+++ b/src/main/webapp/jbi/servicemix-file.conf
@@ -1,10 +1,10 @@
-h1. servicemix-file
+h2. servicemix-file
 
-h2. Overview
+h3. Overview
 The ServiceMix File component provides JBI integration to the file system. It can be used to read & write files via URI or to periodically poll directories for new files.
 
 
-h3. Namespace and xbean.xml
+h4. Namespace and xbean.xml
 The namespace URI for the servicemix-bean JBI component is {{http://servicemix.apache.org/file/1.0}}.  This is an example of <filename>xbean.xml</filename> file with a namespace definition with prefix {{bean}}.
 {pygmentize:lang=xml}
 <beans xmlns:file="http://servicemix.apache.org/file/1.0">
@@ -14,7 +14,7 @@
 </beans>
 {pygmentize}
 
-h3. Endpoint types
+h4. Endpoint types
 The servicemix-file component defines two endpoint type:
 - {{file:poller}} :: Periodically polls a directory for files and sends an exchange for every file
 - {{file:sender}} :: Writes the contents of an exchange to a file
diff --git a/src/main/webapp/jbi/servicemix-ftp.conf b/src/main/webapp/jbi/servicemix-ftp.conf
index eaf50f8..0ff59e7 100644
--- a/src/main/webapp/jbi/servicemix-ftp.conf
+++ b/src/main/webapp/jbi/servicemix-ftp.conf
@@ -1,10 +1,10 @@
-h1. servicemix-ftp
+h2. servicemix-ftp
 
-h2. Overview
+h3. Overview
 The ServiceMix FTP component provides JBI integration to the FTP servers. It can be used to read & write files over FTPor to periodically poll directories for new files.
 
 
-h3. Namespace and xbean.xml
+h4. Namespace and xbean.xml
 The namespace URI for the servicemix-bean JBI component is {{http://servicemix.apache.org/ftp/1.0}}.  This is an example of <filename>xbean.xml</filename> file with a namespace definition with prefix {{bean}}.
 {pygmentize:lang=xml}
 <beans xmlns:ftp="http://servicemix.apache.org/ftp/1.0">
@@ -14,7 +14,7 @@
 </beans>
 {pygmentize}
 
-h3. Endpoint types
+h4. Endpoint types
 The servicemix-ftp component defines two endpoint type:
 - {{ftp:poller}} :: Periodically polls a directory on an FTP server for files and sends an exchange for every file
 - {{ftp:sender}} :: Writes the contents of an exchange to a file on an FTP server
diff --git a/src/main/webapp/jbi/servicemix-http.conf b/src/main/webapp/jbi/servicemix-http.conf
index f9c114f..1e91391 100644
--- a/src/main/webapp/jbi/servicemix-http.conf
+++ b/src/main/webapp/jbi/servicemix-http.conf
@@ -1,6 +1,6 @@
-h1. servicemix-http
+h2. servicemix-http
 
-h2. Overview
+h3. Overview
 ServiceMix ships with a JBI compliant HTTP/SOAP binding component named servicemix-http.
 
 Here are the main features:
@@ -18,7 +18,7 @@
 * WS-Security support
 
 
-h3. Namespace and xbean.xml
+h4. Namespace and xbean.xml
 The namespace URI for the servicemix-bean JBI component is {{http://servicemix.apache.org/http/1.0}}.  This is an example of <filename>xbean.xml</filename> file with a namespace definition with prefix {{bean}}.
 {pygmentize:lang=xml}
 <beans xmlns:http="http://servicemix.apache.org/http/1.0">
@@ -29,7 +29,7 @@
 </beans>
 {pygmentize}
 
-h3. Endpoint types
+h4. Endpoint types
 The servicemix-http component defines four endpoint type:
 - {{http:consumer}} :: This endpoint allows you to expose a service in the ESB to the outside world over HTTP. Whenever it receives an HTTP request, it will interact with the configured services on the ESB to provide the HTTP response.
 - {{http:soap-consumer}} :: Similar to {{http:consumer}}, but specifically geared towards handing SOAP requests and responses
diff --git a/src/main/webapp/jbi/servicemix-jms.conf b/src/main/webapp/jbi/servicemix-jms.conf
index eda7d7a..edc2b20 100644
--- a/src/main/webapp/jbi/servicemix-jms.conf
+++ b/src/main/webapp/jbi/servicemix-jms.conf
@@ -1,6 +1,6 @@
-h1. servicemix-http
+h2. servicemix-http
 
-h2. Overview
+h3. Overview
 ServiceMix ships with a JBI compliant JMS binding component named servicemix-jms.
 
 Here are the main features:
@@ -13,7 +13,7 @@
 * Support for all MEPs as consumers or providers
 
 
-h3. Namespace and xbean.xml
+h4. Namespace and xbean.xml
 The namespace URI for the servicemix-bean JBI component is {{http://servicemix.apache.org/jms/1.0}}.  This is an example of <filename>xbean.xml</filename> file with a namespace definition with prefix {{bean}}.
 {pygmentize:lang=xml}
 <beans xmlns:jms="http://servicemix.apache.org/jms/1.0">
@@ -24,7 +24,7 @@
 </beans>
 {pygmentize}
 
-h3. Endpoint types
+h4. Endpoint types
 The servicemix-jms component defines six endpoint type:
 - {{jms:consumer}} :: This endpoint allows you to expose a service in the ESB to the outside world over JMS. Whenever it receives a JMS message, it will interact with the configured services on the ESB.
 - {{jms:soap-consumer}} :: Similar to {{jms:consumer}}, but specifically geared towards handing SOAP requests and responses
diff --git a/src/main/webapp/jbi/servicemix-mail.conf b/src/main/webapp/jbi/servicemix-mail.conf
index 3b5fce3..ad976a5 100644
--- a/src/main/webapp/jbi/servicemix-mail.conf
+++ b/src/main/webapp/jbi/servicemix-mail.conf
@@ -1,10 +1,10 @@
-h1. servicemix-mail
+h2. servicemix-mail
 
-h2. Overview
+h3. Overview
 he ServiceMix Mail component provides support for receiving and sending mails via the enterprise service bus.
 
 
-h3. Namespace and xbean.xml
+h4. Namespace and xbean.xml
 The namespace URI for the servicemix-bean JBI component is {{http://servicemix.apache.org/mail/1.0}}.  This is an example of <filename>xbean.xml</filename> file with a namespace definition with prefix {{bean}}.
 {pygmentize:lang=xml}
 <beans xmlns:mail="http://servicemix.apache.org/mail/1.0">
@@ -14,7 +14,7 @@
 </beans>
 {pygmentize}
 
-h3. Endpoint types
+h4. Endpoint types
 The servicemix-mail component defines two endpoint type:
 - {{mail:poller}} :: Connect to a POP3 or IMAP server and send a MessageExchange for every mail
 - {{mail:sender}} :: Connect to an SMTP server and send a mail for every JBI MessageExchange it receives
diff --git a/src/main/webapp/jbi/servicemix-osworkflow.conf b/src/main/webapp/jbi/servicemix-osworkflow.conf
index 15f9d01..7fe4773 100644
--- a/src/main/webapp/jbi/servicemix-osworkflow.conf
+++ b/src/main/webapp/jbi/servicemix-osworkflow.conf
@@ -1,10 +1,10 @@
-h1. servicemix-osworkflow
+h2. servicemix-osworkflow
 
-h2. Overview
+h3. Overview
 The ServiceMix OSWorkflow component provides workflow functionality to the ESB. You can specify one or more workflows and it's processing will start when a valid message is received.
 
 
-h3. Namespace and xbean.xml
+h4. Namespace and xbean.xml
 The namespace URI for the servicemix-bean JBI component is {{http://servicemix.apache.org/osworkflow/1.0}}.  This is an example of <filename>xbean.xml</filename> file with a namespace definition with prefix {{bean}}.
 {pygmentize:lang=xml}
 <beans xmlns:osworkflow="http://servicemix.apache.org/osworkflow/1.0">
@@ -14,7 +14,7 @@
 </beans>
 {pygmentize}
 
-h3. Endpoint types
+h4. Endpoint types
 The servicemix-osworkflow component defines a single endpoint type:
 - {{osworkflow:endpoint}} :: The endpoint will receive messages from the NMR and will then start the processing of the workflow.
 
diff --git a/src/main/webapp/jbi/servicemix-quartz.conf b/src/main/webapp/jbi/servicemix-quartz.conf
index 4efeb40..74cac92 100644
--- a/src/main/webapp/jbi/servicemix-quartz.conf
+++ b/src/main/webapp/jbi/servicemix-quartz.conf
@@ -1,9 +1,9 @@
-h1. servicemix-quartz
+h2. servicemix-quartz
 
-h2. Overview
+h3. Overview
 The servicemix-quartz component is a standard JBI Service Engine able to schedule and trigger jobs using the great Quartz scheduler.
 
-h3. Namespace and xbean.xml
+h4. Namespace and xbean.xml
 The namespace URI for the servicemix-bean JBI component is {{http://servicemix.apache.org/quartz/1.0}}.  This is an example of <filename>xbean.xml</filename> file with a namespace definition with prefix {{bean}}.
 {pygmentize:lang=xml}
 <beans xmlns:osworkflow="http://servicemix.apache.org/quartz/1.0">
@@ -13,7 +13,7 @@
 </beans>
 {pygmentize}
 
-h3. Endpoint types
+h4. Endpoint types
 The servicemix-quartz component defines a single endpoint type:
 - {{quartz:endpoint}} :: The quartz endpoint can be used to fire message exchanges at a given (recurrent) time.
 
diff --git a/src/main/webapp/jbi/servicemix-saxon.conf b/src/main/webapp/jbi/servicemix-saxon.conf
index dd7a353..dacb859 100644
--- a/src/main/webapp/jbi/servicemix-saxon.conf
+++ b/src/main/webapp/jbi/servicemix-saxon.conf
@@ -1,9 +1,9 @@
-h1. servicemix-saxon
+h2. servicemix-saxon
 
-h2. Overview
+h3. Overview
 The servicemix-saxon component is a standard JBI Service Engine for XSLT / XQuery. This component is based on Saxon and supports XSLT 2.0 and XPath 2.0, and XQuery 1.0.
 
-h3. Namespace and xbean.xml
+h4. Namespace and xbean.xml
 The namespace URI for the servicemix-bean JBI component is {{http://servicemix.apache.org/saxon/1.0}}.  This is an example of {{xbean.xml}} file with a namespace definition with prefix {{saxon}}.
 {pygmentize:lang=xml}
     <beans xmlns:saxon="http://servicemix.apache.org/saxon  /1.0">
@@ -13,13 +13,13 @@
     </beans>
 {pygmentize}
 
-h3. Endpoint types
+h4. Endpoint types
 The servicemix-saxon component defines these endpoints:
 - {{saxon:xslt}} :: Translates the in message content using XSLT to send back the translated content in the out message
 - {{saxon:proxy}} :: Acts as a proxy for an endpoint, translating the message passed to/from the endpoint using XSLT
 - {{saxon:xquery}} :: Use xquery to extract parts of the XML
 
-h2. Endpoint {{saxon:xslt}}
+h3. Endpoint {{saxon:xslt}}
 
 The XSLT endpoint can be used to apply an XSLT stylesheet to the incoming exchange and will return the transformed result as the output message.
 {pygmentize:lang=xml}
@@ -27,12 +27,12 @@
             resource="classpath:transform.xsl" />
 {pygmentize}
 
-h3. Mandatory properties
+h4. Mandatory properties
 The endpoint requires one of these two properties to be specified:
 - {{resource}} ([Spring resource|http://springframework.org/docs/api/org/springframework/core/io/Resource.html]) :: the spring resource pointing to the XSLT stylesheet
 - {{expression}} ([ServiceMix expression|http://incubator.apache.org/servicemix/dist/servicemix-3.0-incubating/site/servicemix-core/apidocs/org/apache/servicemix/expression/Expression.html]) :: expression used to dynamically load the stylesheet
 
-h3. Optional properties
+h4. Optional properties
 - {{wsdlResource}} ([Spring resource|http://springframework.org/docs/api/org/springframework/core/io/Resource.html]) :: if set, the wsdl will be retrieved from the given Spring resource
 - {{transformerFactory}} (TransformerFactory, defaults to the Saxon implementation) :: TraX factory to create transformers
 - {{configuration}} ([Saxon configuration|http://www.saxonica.com/documentation/javadoc/net/sf/saxon/Configuration.html]) :: Saxon configuration object
@@ -42,7 +42,7 @@
 - {{useDomSourceForContent}} (defaults to {{false}}) :: when set to {{true}}, forces the transformation of the incoming JBI message into a DOM document before giving it to the transformer
 - {{parameters}} :: a {{Map}} containing additional parameters to give to the transformation engine
 
-h3. Using properties and parameters
+h4. Using properties and parameters
 All properties defined on the JBI exchange and input JBI message will be available for use inside the XSLT stylesheet as parameters.
 In addition to those properties and the one specified in the {{parameters}} property on the endpoint, the following objects are also available:
 - {{exchange}} :: the JBI exchange
@@ -51,7 +51,7 @@
 
 All those parameters can be accessed using XSLT standard ways using {{<xsl:param/>}}.
 
-h2. Endpoint {{saxon:proxy}}
+h3. Endpoint {{saxon:proxy}}
 One common use case is the need to transform a request coming from a service and send it to another service and do the same with the response.  A simple example is the need to translate the request and responses between two SOAP endpoints.  Such a use case could be implemented using two XSLT endpoints and an EIP StaticRoutingSlip.  However, there are some drawbacks, as the operation is lost in the process, and a static routing slip can not be used to process InOnly exchanges.
 {pygmentize:lang=xml}
 <saxon:proxy service="test:proxy" endpoint="endpoint"
@@ -64,7 +64,7 @@
 </saxon:proxy>
 {pygmentize}
 
-h3. Mandatory properties
+h4. Mandatory properties
 Depending on the MEP, you have to set one or more XSL stylesheets to be used for converting the message payloads:
 - {{resource}} :: [Spring resource|http://springframework.org/docs/api/org/springframework/core/io/Resource.html] pointing to the XSLT stylesheet used to transform the input message
 - {{outResource}} :: [Spring resource|http://springframework.org/docs/api/org/springframework/core/io/Resource.html] pointing to the XSLT stylesheet used to transform the output message
@@ -74,35 +74,35 @@
 You also have to specify the target service that should be invoked from this endpoint:
 - {{target}} :: ExchangeTarget that specifies the target service for the proxy endpoint
 
-h3. Optional properties
+h4. Optional properties
 - {{wsdlResource}} :: if set, the wsdl will be retrieved from the given ([Spring resource|http://springframework.org/docs/api/org/springframework/core/io/Resource.html])
 - {{transformerFactory}} (defaults to the Saxon implementation) :: TraX TransformerFactory to create transformers
 - {{configuration}} ([Saxon configuration|http://www.saxonica.com/documentation/javadoc/net/sf/saxon/Configuration.html]) :: Saxon configuration object
 - {{result}} (defaults to {{dom}}) :: Allows specifying the output result type, possible values are {{dom}}, {{bytes}}, {{string}}
 - {{copyAttachments}}, {{copyProperties}} and {{copySubject}} (default to {{true}}) ::  Configure to copy message attachments, properties and security subject over to the result message
 
-h2. Endpoint {{saxon:xquery}}
+h3. Endpoint {{saxon:xquery}}
 The XQuery endpoint can be used to apply a selected XQuery to the input document.
 {pygmentize:lang=xml}
 <saxon:xquery service="test:xquery" endpoint="endpoint"
               resource="classpath:query.xq" />
 {pygmentize}
 
-h3. Mandatory properties
+h4. Mandatory properties
 You need to specify one of {{query}}, {{resource}} or {{expression}}
 - {{query}} :: String containing the inlined XQuery expression
 - {{resource}} :: [Spring resource|http://springframework.org/docs/api/org/springframework/core/io/Resource.html] resource pointing to the XQuery
 - {{expression}} :: | [ServiceMix expression|http://incubator.apache.org/servicemix/dist/servicemix-3.0-incubating/site/servicemix-core/apidocs/org/apache/servicemix/expression/Expression.html]  to dynamically load the xquery
 
-h3. Optional properties
+h4. Optional properties
 - {{wsdlResource}} :: if set, the wsdl will be retrieved from the given ([Spring resource|http://springframework.org/docs/api/org/springframework/core/io/Resource.html])
 - {{outputProperties}} :: Map containing the Saxon specific output properties
 - {{configuration}} ([Saxon configuration|http://www.saxonica.com/documentation/javadoc/net/sf/saxon/Configuration.html]) :: Saxon configuration object
 - {{result}} (defaults to {{dom}}) :: Allows specifying the output result type, possible values are {{dom}}, {{bytes}}, {{string}}
 - {{copyAttachments}}, {{copyProperties}} and {{copySubject}} (default to {{true}}) ::  Configure to copy message attachments, properties and security subject over to the result message
 
-h2. Sample configurations
-h3. {{saxon:xslt}} : Dynamic stylesheet selection
+h3. Sample configurations
+h4. {{saxon:xslt}} : Dynamic stylesheet selection
 This endpoint configuration will dynamically load the XSL-T resource that is specified in the {{xslt.source}} property on the {{NormalizedMessage}}
 {pygmentize:lang=xml}
 <saxon:xslt service="test:xslt-dynamic" endpoint="endpoint">
@@ -114,7 +114,7 @@
 </saxon:xslt>
 {pygmentize}
 
-h3. {{saxon:xslt}} : Using parameters in the XSL-T stylesheet
+h4. {{saxon:xslt}} : Using parameters in the XSL-T stylesheet
 You can define a Map of parameters on the {{saxon:xslt}} endpoint.
 {pygmentize:lang=xml}
 <saxon:xslt service="test:xslt-params" endpoint="endpoint"
@@ -142,7 +142,7 @@
 </xsl:stylesheet>
 {pygmentize}
 
-h3. {{saxon:xquery}} : Inlined XQuery and specific output configuration
+h4. {{saxon:xquery}} : Inlined XQuery and specific output configuration
 {pygmentize:lang=xml}
 <saxon:xquery service="test:xquery-inline" endpoint="endpoint">
   <saxon:query>
@@ -156,7 +156,7 @@
 </saxon:xquery>
 {pygmentize}
 
-h3. {{saxon:xquery}} : Dynamic XQuery selection
+h4. {{saxon:xquery}} : Dynamic XQuery selection
 This endpoint configuration will dynamically load the XQuery resource that is specified in the {{xquery.source}} property on the {{NormalizedMessage}}
 {pygmentize:lang=xml}
 <saxon:xquery service="test:xquery-dynamic" endpoint="endpoint">
diff --git a/src/main/webapp/jbi/servicemix-scripting.conf b/src/main/webapp/jbi/servicemix-scripting.conf
index 331ef14..ec5b248 100644
--- a/src/main/webapp/jbi/servicemix-scripting.conf
+++ b/src/main/webapp/jbi/servicemix-scripting.conf
@@ -1,6 +1,6 @@
-h1. servicemix-scripting
+h2. servicemix-scripting
 
-h2. Overview
+h3. Overview
 The ServiceMix Scripting component provides support for processing scripts using JSR-223 compliant scripting languages.
 
 The component is currently shipping with:
@@ -8,7 +8,7 @@
 * JRuby (1.1.2)
 * Rhino JavaScript (1.7R1)
 
-h3. Namespace and xbean.xml
+h4. Namespace and xbean.xml
 The namespace URI for the servicemix-bean JBI component is {{http://servicemix.apache.org/scripting/1.0}}.  This is an example of <filename>xbean.xml</filename> file with a namespace definition with prefix {{bean}}.
 {pygmentize:lang=xml}
 <beans xmlns:scripting="http://servicemix.apache.org/scripting/1.0">
@@ -18,7 +18,7 @@
 </beans>
 {pygmentize}
 
-h3. Endpoint types
+h4. Endpoint types
 The servicemix-scripting component defines a single endpoint type:
 - {{scripting:endpoint}} :: The scripting endpoint can be used to use scripts to handle exchanges or send new exchanges
 
diff --git a/src/main/webapp/jbi/servicemix-snmp.conf b/src/main/webapp/jbi/servicemix-snmp.conf
index 90af864..b2a9f20 100644
--- a/src/main/webapp/jbi/servicemix-snmp.conf
+++ b/src/main/webapp/jbi/servicemix-snmp.conf
@@ -1,9 +1,9 @@
-h1. servicemix-snmp
+h2. servicemix-snmp
 
-h2. Overview
+h3. Overview
 The ServiceMix SNMP component provides support for receiving SNMP events via the enterprise service bus by using the SNMP4J library.
 
-h3. Namespace and xbean.xml
+h4. Namespace and xbean.xml
 The namespace URI for the servicemix-bean JBI component is {{http://servicemix.apache.org/snmp/1.0}}.  This is an example of <filename>xbean.xml</filename> file with a namespace definition with prefix {{bean}}.
 {pygmentize:lang=xml}
 <beans xmlns:snmp="http://servicemix.apache.org/snmp/1.0">
@@ -13,7 +13,7 @@
 </beans>
 {pygmentize}
 
-h3. Endpoint types
+h4. Endpoint types
 The servicemix-snmp component defines two endpoint types:
 - {{snmp:poller}} :: Periodically polls a device status using SNMP and sends the OIDs as a JBI MessageExchange
 - {{snmp:trap-consumer}} :: Consumes an SNMP trap message and sends the OIDs as a JBI MessageExchange
diff --git a/src/main/webapp/jbi/servicemix-validation.conf b/src/main/webapp/jbi/servicemix-validation.conf
index d5b776f..f3dcfa2 100644
--- a/src/main/webapp/jbi/servicemix-validation.conf
+++ b/src/main/webapp/jbi/servicemix-validation.conf
@@ -1,9 +1,9 @@
-h1. servicemix-validation
+h2. servicemix-validation
 
-h2. Overview
+h3. Overview
 The ServiceMix Validation component provides schema validation of documents using JAXP 1.3 and XMLSchema or RelaxNG.
 
-h3. Namespace and xbean.xml
+h4. Namespace and xbean.xml
 The namespace URI for the servicemix-bean JBI component is {{http://servicemix.apache.org/validation/1.0}}.  This is an example of <filename>xbean.xml</filename> file with a namespace definition with prefix {{bean}}.
 {pygmentize:lang=xml}
 <beans xmlns:scripting="http://servicemix.apache.org/validation/1.0">
@@ -13,7 +13,7 @@
 </beans>
 {pygmentize}
 
-h3. Endpoint types
+h4. Endpoint types
 The servicemix-validation component defines a single endpoint type:
 - {{validation:endpoint}} :: Validates the incoming XML message - can be configured to fail the exchange or to send validation errors back to the sender in the message body.
 
diff --git a/src/main/webapp/jbi/servicemix-vfs.conf b/src/main/webapp/jbi/servicemix-vfs.conf
index 614fb86..0a27049 100644
--- a/src/main/webapp/jbi/servicemix-vfs.conf
+++ b/src/main/webapp/jbi/servicemix-vfs.conf
@@ -1,9 +1,9 @@
-h1. servicemix-vfs
+h2. servicemix-vfs
 
-h2. Overview
+h3. Overview
 The ServiceMix VFS component provides support for reading from and writing to virtual file systems via the enterprise service bus by using the Apache commons-vfs library.
 
-h3. Namespace and xbean.xml
+h4. Namespace and xbean.xml
 The namespace URI for the servicemix-bean JBI component is {{http://servicemix.apache.org/vfs/1.0}}.  This is an example of <filename>xbean.xml</filename> file with a namespace definition with prefix {{bean}}.
 {pygmentize:lang=xml}
 <beans xmlns:vfs="http://servicemix.apache.org/vfs/1.0">
@@ -13,7 +13,7 @@
 </beans>
 {pygmentize}
 
-h3. Endpoint types
+h4. Endpoint types
 The servicemix-vfs component defines two endpoint types:
 - {{vfs:poller}} :: Periodically polls a directory on one of the VFS-supported file systems for files and sends an exchange for every file
 - {{vfs:sender}} :: Writes the contents of an exchange to a file on one of the VFS-supported file systems
diff --git a/src/main/webapp/jbi/servicemix-wsn2005.conf b/src/main/webapp/jbi/servicemix-wsn2005.conf
index 2f47b5d..6be8815 100644
--- a/src/main/webapp/jbi/servicemix-wsn2005.conf
+++ b/src/main/webapp/jbi/servicemix-wsn2005.conf
@@ -1,6 +1,6 @@
-h1. servicemix-wsn2005
+h2. servicemix-wsn2005
 
-h2. Overview
+h3. Overview
 The servicemix-wsn2005 is a standard JBI Service Engine which implements the WS-Notification specification from Oasis.
 
 
diff --git a/src/main/webapp/jbi/servicemix-xmpp.conf b/src/main/webapp/jbi/servicemix-xmpp.conf
index 891d92e..48eb803 100644
--- a/src/main/webapp/jbi/servicemix-xmpp.conf
+++ b/src/main/webapp/jbi/servicemix-xmpp.conf
@@ -1,6 +1,6 @@
-h1. servicemix-xmpp
+h2. servicemix-xmpp
 
-h2. Overview
+h3. Overview
 The ServiceMix XMPP component is used to communicate with XMPP (Jabber) servers through the JBI bus.
 
 
diff --git a/src/main/webapp/manual.conf b/src/main/webapp/manual.conf
index 8b7a03d..eee7de1 100644
--- a/src/main/webapp/manual.conf
+++ b/src/main/webapp/manual.conf
@@ -1,5 +1,15 @@
 {attributes:layout=/WEB-INF/scalate/layouts/print.ssp}
 
+h1. Getting started
+{include:getting-started/what-is-smx4.conf}
+{include:getting-started/installation.conf}
+{include:getting-started/discover.conf}
+{include:getting-started/technology-selection.conf}
+
+h1. Camel
+{include:camel/camel-index.conf}
+{include:camel/camel-deployment.conf}
+
 h1. NMR
 {include:nmr-index}
 {include:nmr-camel}
@@ -28,3 +38,6 @@
 {include:jbi/servicemix-vfs.conf}
 {include:jbi/servicemix-wsn2005.conf}
 {include:jbi/servicemix-xmpp.conf}
+
+h1. Appendices
+{include:appendices/migration.conf}
diff --git a/src/main/webapp/nmr/nmr-camel.conf b/src/main/webapp/nmr/nmr-camel.conf
index 76d8426..fb79caa 100644
--- a/src/main/webapp/nmr/nmr-camel.conf
+++ b/src/main/webapp/nmr/nmr-camel.conf
@@ -1,8 +1,8 @@
-h1. Camel NMR Component
+h2. Camel NMR Component
 
 The Camel NMR component is an adapter to the Normalized Message Router (NMR) in ServiceMix, which is intended for use by Camel applications deployed directly into the OSGi container.
 
-h2. Installing
+h3. Installing
 
 In order to be able to use this component, you first have to define it in  your Spring configuration file ({{META-INF/spring/*.xml}}) by adding the following {{bean}}:
 
@@ -18,7 +18,7 @@
 </beans>
 {pygmentize}
 
-h2. NMR consumer and producer endpoints
+h3. NMR consumer and producer endpoints
 
 The following code:
 
@@ -36,7 +36,7 @@
 
 The messages sent by this producer endpoint are sent to the already deployed JBI endpoint.
 
-h2. URI format
+h3. URI format
 
 {pygmentize:lang=text}
 nmr:endpointName
@@ -46,7 +46,7 @@
 - *{{synchronous}}* (defaults to {{false}}) ::  When this is set to {{true}} on a consumer endpoint, an incoming, synchronous NMR Exchange will be handled on the sender's thread instead of being handled on a new thread of the NMR endpoint's thread pool |
 
 
-h3. Examples
+h4. Examples
 
 {pygmentize:lang=java}
 from("nmr:MyServiceEndpoint")
diff --git a/src/main/webapp/nmr/nmr-event-listeners.conf b/src/main/webapp/nmr/nmr-event-listeners.conf
index 2299a59..263fc8d 100644
--- a/src/main/webapp/nmr/nmr-event-listeners.conf
+++ b/src/main/webapp/nmr/nmr-event-listeners.conf
@@ -1,13 +1,13 @@
-h1. Event listeners
+h2. Event listeners
 
 The NMR has a rich event API that can be used to receive all sort of notifications about what's happening in the NMR.
 Currently, two types of listeners are defined:
 - {{org.apache.servicemix.nmr.api.event.EndpointListener}}
 - {{org.apache.servicemix.nmr.api.event.ExchangeListener}}
 
-h2. Endpoint Listener
+h3. Endpoint Listener
 
-h3. API
+h4. API
 The {{EndpointListener}} defined two methods:
 - {{endpointRegistered}} is called whenever a new endpoint is registered with the NMR
 - {{endpointUnregistered}} is called whenever an existing endpoint is unregistered
@@ -19,7 +19,7 @@
 }
 {pygmentize}
 
-h3. Registering {{EndpointListener}}
+h4. Registering {{EndpointListener}}
 An {{EndpointListener}} can be registered directly with the NMR:
 {pygmentize:lang=java}
 nmr.getListenerRegistry().register(listener, null);
@@ -42,12 +42,12 @@
 </blueprint>
 {pygmentize}
 
-h3. Example
+h4. Example
 An example of using an endpoint listener is shipped as part of the ServiceMix distribution.  It can be found in the {{examples/interceptors/endpoint}} directory.
 
-h2. ExchangeListener
+h3. ExchangeListener
 
-h3. API
+h4. API
 The {{ExchangeListener}} defined two methods:
 - {{exchangeSent}} is called whenever an exchange is sent to the NMR for delivery
 - {{exchangeDelivered}} is called whenever an exchange is being delivered to an endpoint
@@ -62,7 +62,7 @@
 }
 {pygmentize}
 
-h3. Registering {{ExchangeListener}}
+h4. Registering {{ExchangeListener}}
 An {{ExchangeListener}} can be registered directly with the NMR:
 {pygmentize:lang=java}
 nmr.getListenerRegistry().register(listener, null);
@@ -85,5 +85,5 @@
 </blueprint>
 {pygmentize}
 
-h3. Example
+h4. Example
 An example of using an exchange listener is shipped as part of the ServiceMix distribution.  It can be found in the {{examples/interceptors/exchange}} directory.
\ No newline at end of file
diff --git a/src/main/webapp/nmr/nmr-index.conf b/src/main/webapp/nmr/nmr-index.conf
index f6fc4f0..79a809b 100644
--- a/src/main/webapp/nmr/nmr-index.conf
+++ b/src/main/webapp/nmr/nmr-index.conf
@@ -1,3 +1,3 @@
-h1. Introducing the NMR
+h2. Introducing the NMR
 
 //TODO: Add some info about the NMR
\ No newline at end of file
diff --git a/src/main/webapp/theme/print.css b/src/main/webapp/theme/print.css
index 21850a4..1ef9762 100644
--- a/src/main/webapp/theme/print.css
+++ b/src/main/webapp/theme/print.css
@@ -40,4 +40,25 @@
   margin-left: 1em;
   margin-right: 1em;
   padding: .5em;
+  page-break-inside: avoid;
+}
+
+h1 {
+  page-break-before: always;
+  counter-increment: h1;
+  counter-reset: h2;
+  margin-left: -20px;
+}
+
+h1::before {
+  content: counter(h1) ". ";
+}
+
+h2 {
+  counter-increment: h2;
+  margin-left: -20px;
+}
+
+h2::before {
+  content: counter(h1) "." counter(h2) ". ";
 }