http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/ibsen_cover150.jpg ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/ibsen_cover150.jpg b/manual/src/main/asciidoc/images/ibsen_cover150.jpg new file mode 100644 index 0000000..7810375 Binary files /dev/null and b/manual/src/main/asciidoc/images/ibsen_cover150.jpg differ
http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/log-display-exception.png ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/log-display-exception.png b/manual/src/main/asciidoc/images/log-display-exception.png new file mode 100644 index 0000000..766e9b2 Binary files /dev/null and b/manual/src/main/asciidoc/images/log-display-exception.png differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/log-display.png ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/log-display.png b/manual/src/main/asciidoc/images/log-display.png new file mode 100644 index 0000000..02118bb Binary files /dev/null and b/manual/src/main/asciidoc/images/log-display.png differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/log-set-debug.png ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/log-set-debug.png b/manual/src/main/asciidoc/images/log-set-debug.png new file mode 100644 index 0000000..374ec13 Binary files /dev/null and b/manual/src/main/asciidoc/images/log-set-debug.png differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/logodesign.png ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/logodesign.png b/manual/src/main/asciidoc/images/logodesign.png new file mode 100644 index 0000000..4a97fbf Binary files /dev/null and b/manual/src/main/asciidoc/images/logodesign.png differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/loosely-coupled-kaye.jpg ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/loosely-coupled-kaye.jpg b/manual/src/main/asciidoc/images/loosely-coupled-kaye.jpg new file mode 100644 index 0000000..5c9de67 Binary files /dev/null and b/manual/src/main/asciidoc/images/loosely-coupled-kaye.jpg differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/loosely-coupled-kaye150x208.jpg ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/loosely-coupled-kaye150x208.jpg b/manual/src/main/asciidoc/images/loosely-coupled-kaye150x208.jpg new file mode 100644 index 0000000..f855805 Binary files /dev/null and b/manual/src/main/asciidoc/images/loosely-coupled-kaye150x208.jpg differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/new-logo.png ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/new-logo.png b/manual/src/main/asciidoc/images/new-logo.png new file mode 100644 index 0000000..2dfff47 Binary files /dev/null and b/manual/src/main/asciidoc/images/new-logo.png differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/osgi-list-pipegrep.png ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/osgi-list-pipegrep.png b/manual/src/main/asciidoc/images/osgi-list-pipegrep.png new file mode 100644 index 0000000..6b7a187 Binary files /dev/null and b/manual/src/main/asciidoc/images/osgi-list-pipegrep.png differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/osgi-list.png ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/osgi-list.png b/manual/src/main/asciidoc/images/osgi-list.png new file mode 100644 index 0000000..b33fe3b Binary files /dev/null and b/manual/src/main/asciidoc/images/osgi-list.png differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/osgilist.png ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/osgilist.png b/manual/src/main/asciidoc/images/osgilist.png new file mode 100644 index 0000000..6f28f6a Binary files /dev/null and b/manual/src/main/asciidoc/images/osgilist.png differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/pulier.jpg ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/pulier.jpg b/manual/src/main/asciidoc/images/pulier.jpg new file mode 100644 index 0000000..ad4172d Binary files /dev/null and b/manual/src/main/asciidoc/images/pulier.jpg differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/pulier150x188.jpg ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/pulier150x188.jpg b/manual/src/main/asciidoc/images/pulier150x188.jpg new file mode 100644 index 0000000..f54a727 Binary files /dev/null and b/manual/src/main/asciidoc/images/pulier150x188.jpg differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/rademakers2.png ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/rademakers2.png b/manual/src/main/asciidoc/images/rademakers2.png new file mode 100644 index 0000000..a17a474 Binary files /dev/null and b/manual/src/main/asciidoc/images/rademakers2.png differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/samplebundle.png ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/samplebundle.png b/manual/src/main/asciidoc/images/samplebundle.png new file mode 100644 index 0000000..71f31de Binary files /dev/null and b/manual/src/main/asciidoc/images/samplebundle.png differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/soa-concepts.jpg ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/soa-concepts.jpg b/manual/src/main/asciidoc/images/soa-concepts.jpg new file mode 100644 index 0000000..1b0d39d Binary files /dev/null and b/manual/src/main/asciidoc/images/soa-concepts.jpg differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/soa-concepts150x212.jpg ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/soa-concepts150x212.jpg b/manual/src/main/asciidoc/images/soa-concepts150x212.jpg new file mode 100644 index 0000000..fc42818 Binary files /dev/null and b/manual/src/main/asciidoc/images/soa-concepts150x212.jpg differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/soa-dp-erl.jpg ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/soa-dp-erl.jpg b/manual/src/main/asciidoc/images/soa-dp-erl.jpg new file mode 100644 index 0000000..7641c66 Binary files /dev/null and b/manual/src/main/asciidoc/images/soa-dp-erl.jpg differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/soa-dp-erl150x195.jpg ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/soa-dp-erl150x195.jpg b/manual/src/main/asciidoc/images/soa-dp-erl150x195.jpg new file mode 100644 index 0000000..3d55af7 Binary files /dev/null and b/manual/src/main/asciidoc/images/soa-dp-erl150x195.jpg differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/soa-fieldguide-xml-ws.jpg ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/soa-fieldguide-xml-ws.jpg b/manual/src/main/asciidoc/images/soa-fieldguide-xml-ws.jpg new file mode 100644 index 0000000..5bf792c Binary files /dev/null and b/manual/src/main/asciidoc/images/soa-fieldguide-xml-ws.jpg differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/soa-fieldguide-xml-ws150x197.jpg ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/soa-fieldguide-xml-ws150x197.jpg b/manual/src/main/asciidoc/images/soa-fieldguide-xml-ws150x197.jpg new file mode 100644 index 0000000..b3725ce Binary files /dev/null and b/manual/src/main/asciidoc/images/soa-fieldguide-xml-ws150x197.jpg differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/sojbi.jpg ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/sojbi.jpg b/manual/src/main/asciidoc/images/sojbi.jpg new file mode 100644 index 0000000..400797f Binary files /dev/null and b/manual/src/main/asciidoc/images/sojbi.jpg differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/sojbi150x190.jpg ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/sojbi150x190.jpg b/manual/src/main/asciidoc/images/sojbi150x190.jpg new file mode 100644 index 0000000..5d65965 Binary files /dev/null and b/manual/src/main/asciidoc/images/sojbi150x190.jpg differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/start-linux.png ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/start-linux.png b/manual/src/main/asciidoc/images/start-linux.png new file mode 100644 index 0000000..d31ca92 Binary files /dev/null and b/manual/src/main/asciidoc/images/start-linux.png differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/start-windows.png ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/start-windows.png b/manual/src/main/asciidoc/images/start-windows.png new file mode 100644 index 0000000..6463dd9 Binary files /dev/null and b/manual/src/main/asciidoc/images/start-windows.png differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/understanding-soa-ws-newcomer.jpg ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/understanding-soa-ws-newcomer.jpg b/manual/src/main/asciidoc/images/understanding-soa-ws-newcomer.jpg new file mode 100644 index 0000000..89a8f99 Binary files /dev/null and b/manual/src/main/asciidoc/images/understanding-soa-ws-newcomer.jpg differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/understanding-soa-ws-newcomer150x202.jpg ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/understanding-soa-ws-newcomer150x202.jpg b/manual/src/main/asciidoc/images/understanding-soa-ws-newcomer150x202.jpg new file mode 100644 index 0000000..f0b6c00 Binary files /dev/null and b/manual/src/main/asciidoc/images/understanding-soa-ws-newcomer150x202.jpg differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/webservice-platform.jpg ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/webservice-platform.jpg b/manual/src/main/asciidoc/images/webservice-platform.jpg new file mode 100644 index 0000000..f6d7802 Binary files /dev/null and b/manual/src/main/asciidoc/images/webservice-platform.jpg differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/webservice-platform150x196.jpg ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/webservice-platform150x196.jpg b/manual/src/main/asciidoc/images/webservice-platform150x196.jpg new file mode 100644 index 0000000..cf98803 Binary files /dev/null and b/manual/src/main/asciidoc/images/webservice-platform150x196.jpg differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/ws-soa-cloud-mamager-guide-barry.jpg ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/ws-soa-cloud-mamager-guide-barry.jpg b/manual/src/main/asciidoc/images/ws-soa-cloud-mamager-guide-barry.jpg new file mode 100644 index 0000000..b0f1bc4 Binary files /dev/null and b/manual/src/main/asciidoc/images/ws-soa-cloud-mamager-guide-barry.jpg differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/images/ws-soa-cloud-mamager-guide-barry150x225.jpg ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/images/ws-soa-cloud-mamager-guide-barry150x225.jpg b/manual/src/main/asciidoc/images/ws-soa-cloud-mamager-guide-barry150x225.jpg new file mode 100644 index 0000000..ce0d4a6 Binary files /dev/null and b/manual/src/main/asciidoc/images/ws-soa-cloud-mamager-guide-barry150x225.jpg differ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/index.adoc ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/index.adoc b/manual/src/main/asciidoc/index.adoc new file mode 100644 index 0000000..0154650 --- /dev/null +++ b/manual/src/main/asciidoc/index.adoc @@ -0,0 +1,32 @@ += ServiceMix +Apache Software Foundation +:!numbered: +:!toc: + +* <<quickstart#,Quickstart Guide>> + + [smx-list-description]#If you're new to Apache ServiceMix, this document will guide you in your first steps in Apache ServiceMix.# +* <<user-guide#,User Guide>> + + [smx-list-description]#Apache ServiceMix contains a lot of different components and it embeds a lot of other Apache projects. + This user guide will help you select and configure the right components when building your own solution.# +* <<activemq-guide#,ActiveMQ Guide>> + + [smx-list-description]#Apache ServiceMix embeds Apache ActiveMQ to provide a JMS message broker that you can interact with + from your Camel routes, providing support for message persistence, clustering, failover, ...# +* <<camel-guide#,Camel Guide>> + + [smx-list-description]#Apache Camel is a core component of Apache ServiceMix. This guide will show you how to build and deploy + Camel routes for Apache ServiceMix.# +* <<activiti-guide#,Activiti Guide>> + + [smx-list-description]#Apache ServiceMix embeds Activiti to provide a light-weight workflow and Business Process Management + (BPM) Platform targeted at business people, developers and system admins, ...# +* <<karaf-commands#,Karaf Command Reference>> + + [smx-list-description]#Help pages for all the available Karaf commands in the Apache ServiceMix console.# +* link:++https://karaf.apache.org/manual/latest/#_user_guide++[Karaf User Guide] + + [smx-list-description]#Apache ServiceMix uses Apache Karaf as the underlying OSGi server runtime. This manual explains about the features and functionality provided by Karaf.# +* link:++https://karaf.apache.org/manual/latest/#_developer_guide++[Karaf Developer Guide] + + [smx-list-description]#The Apache Karaf Developer Guide gives you some information about developing with and for the OSGi server runtime.# +* <<resources#,Further Resources>> + + [smx-list-description]#A selection of related books and websites.# +* <<contribute#,We welcome contributions!>> +* <<documentation#,Complete Documentation>> + + [smx-list-description]#The complete ServiceMix documentation as one file, without the Karaf documentation.# + + http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/quickstart/_activemq.adoc ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/quickstart/_activemq.adoc b/manual/src/main/asciidoc/quickstart/_activemq.adoc new file mode 100644 index 0000000..a7d6e7a --- /dev/null +++ b/manual/src/main/asciidoc/quickstart/_activemq.adoc @@ -0,0 +1,80 @@ +// +// Licensed 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. +// + +== Adding ActiveMQ to the 'Mix + +Out-of-the-box, every Apache ServiceMix instance comes with an embedded ActiveMQ JMS broker. This makes it easy to communicate between Camel routes using persistent messages on the same machine, but it will also enable you to distribute your routes over multiple instances afterwards for clustering or load-balancing. + +=== Our scenario + +In this scenario, we also want to move files between directories. Instead of logging the move directly, we are going to send an event JMS message onto a queue. Afterwards, we will create a second Camel route to receive the events and log them. + +=== Moving files and sending event messages +The first Blueprint XML file we'll create contains a Camel route that moves the files from _activemq/input_ to the _activemq/output_ directory. Afterwards, it will generate an event message and send that to an ActiveMQ queue called _events_. + +[source,xml] +---- +<?xml version="1.0" encoding="UTF-8"?> +<blueprint + xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://www.osgi.org/xmlns/blueprint/v1.0.0 + http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> + + <camelContext xmlns="http://camel.apache.org/schema/blueprint"> + <route> + <from uri="file:activemq/input"/> + <to uri="file:activemq/output"/> + + <setBody> + <simple> + FileMovedEvent(file: ${file:name}, timestamp: ${date:now:hh:MM:ss.SSS}) + </simple> + </setBody> + <to uri="activemq://events" /> + </route> + </camelContext> +</blueprint> +---- + +Save this file in ServiceMix' _deploy_ folder and use _bundle:list_ to check on the bundle status as you did with the simple Camel example. You should now be able to put files in the _activemq/input_ directory and see them being moved to _activemq/output_. + +=== Receiving the event messages +After deploying the first XML file, you're obviously not seeing any events being logged yet. The event messages are sent to an ActiveMQ queue, but there's nobody to receive the events yet. Let's change that now by creating a second Blueprint XML file. + +[source,xml] +---- +<?xml version="1.0" encoding="UTF-8"?> +<blueprint + xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://www.osgi.org/xmlns/blueprint/v1.0.0 + http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> + + <camelContext xmlns="http://camel.apache.org/schema/blueprint"> + <route> + <from uri="activemq://events"/> + <to uri="log:events"/> + </route> + </camelContext> +</blueprint> +---- + +As soon as this second file has been deployed, you'll start seeing the event messages in your _log:display_ output. + +=== Using the shell to manage the routes + +You can now start and stop both routes from the command shell. The important thing to note here is that you can stop the event handler route while files are being processed. As soon as you restart that bundle afterwards, you'll receive the events from all files that have been moved while the route was not running. http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/quickstart/_camel.adoc ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/quickstart/_camel.adoc b/manual/src/main/asciidoc/quickstart/_camel.adoc new file mode 100644 index 0000000..e3cd956 --- /dev/null +++ b/manual/src/main/asciidoc/quickstart/_camel.adoc @@ -0,0 +1,78 @@ +// +// Licensed 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. +// + +== Using Camel + +Now that we know how to operate Apache ServiceMix through the shell console, it's time to start using it for what it is built for. Let's build our very first integration solution with a Camel route and deploy it on ServiceMix. + +=== Our simple scenario +In this simple scenario, we're going to move files from an input directory called _camel/input_ to an output directory called _camel/output_. To ensure we can keep track of which files get moved, we'll also write a message to the log file whenever we move a file. + +=== Creating the route +One of the most simple ways to deploy a new route on ServiceMix, is by defining the route in a Blueprint XML file. + +[source,xml] +---- +<?xml version="1.0" encoding="UTF-8"?> +<blueprint + xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://www.osgi.org/xmlns/blueprint/v1.0.0 + http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> + + <camelContext xmlns="http://camel.apache.org/schema/blueprint"> + <route> + <from uri="file:camel/input"/> + <log message="Moving ${file:name} to the output directory"/> + <to uri="file:camel/output"/> + </route> + </camelContext> + +</blueprint> +---- + +=== Deploying the route + +In order to deploy and start the route, just copy the XML file you created into ServiceMix' _deploy_ directory. The file will get +picked up and deployed by ServiceMix. You will see a _camel/input_ folder appear in your ServiceMix installation directory and any +files you copy into that directory will get moved into the _camel/output_ directory. + +If you do a _log:display_ in the shell, you will also see the log output for every file that's been moved. + +image::camel-sample-log.png[] + +=== Using the shell to manage the route + +Using _bundle:list_, you'll notice that your XML file has been transformed into a bundle and that the Blueprint container has been created to start your Camel route. + +image::camel-sample-deploy.png[] + +From this output, you also learn that the bundle id for your XML file is 250. This allow you to start and stop the route whenever +necessary. Let's give this a go now: + +First, stop the route with +[source,text] +---- +karaf@root> bundle:stop 250 +---- + +The route is no longer active, so any files you copy into the _orders/input_ folder will remain there for now. As soon as you +restart the route, the pending files will get moving again. + +[source,text] +---- +karaf@root> bundle:start 250 +---- + http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/quickstart/_console.adoc ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/quickstart/_console.adoc b/manual/src/main/asciidoc/quickstart/_console.adoc new file mode 100644 index 0000000..5ea2c2c --- /dev/null +++ b/manual/src/main/asciidoc/quickstart/_console.adoc @@ -0,0 +1,95 @@ +// +// Licensed 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. +// + +== Apache ServiceMix console + +Now that we successfully installed and started Apache ServiceMix, we'll take a closer look at the console. This is where you manage +your ServiceMix instance, add and remove bundles, install optional features, and more. + +=== Working with bundles + +When ServiceMix is first started, a whole set of bundles providing the core features for the product are being installed. Let's use +the command console to find out more about them. + +The _bundle:list_ command can be used to get a list of all bundles currently installed. Enter this + +[source,text] +---- +karaf@root> bundle:list +---- + +This is what the output looks like if you run this on your ServiceMix instance. + +image::osgi-list.png[] + +For every bundle, you see: + +* the bundle id +* the bundle state +* the bundle start level +* the bundle version and name + +If you're looking for something specific in the list, you can use unix-like pipes and utilities to help you. An example: to look +for all Camel related bundles: + +[source,text] +---- +karaf@root> bundle:list | grep camel +---- + +image::osgi-list-pipegrep.png[] + +=== Working with logging + +Many of the applications you write will have some form of log output. To look at the message in the log file, you can us the +_log:diplay_ command. + +[source,text] +---- +karaf@root> log:display +---- + +image::log-display.png[] + +If you're only interested in the latest exception in the log file, you can use _log:exception-display_ instead. + +[source,text] +---- +karaf@root> log:exception-display +---- + +image::log-display-exception.png[] + +You can also change the log level at runtime by using the _log:set_ command. You can try these commands on your instance now by +first setting the log level to _DEBUG_ and then using _grep_ to make sure that you can actually see the extra logging. + +[source,text] +---- +karaf@root> log:set DEBUG +karaf@root> log:display | grep DEBUG +---- + +image::log-set-debug.png[] + +Afterwards, revert the log level to its original _INFO_ value again with _log:set_. + +[source,text] +---- +karaf@root> log:set INFO +---- + +=== ...and there's a lot more + +These are obviously just a few examples of what the command shell is all about. There are a lot more commands in the shell to help +you deploy, monitor, manage and troubleshoot the applications you're building with ServiceMix. http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/quickstart/_features.adoc ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/quickstart/_features.adoc b/manual/src/main/asciidoc/quickstart/_features.adoc new file mode 100644 index 0000000..1c6534d --- /dev/null +++ b/manual/src/main/asciidoc/quickstart/_features.adoc @@ -0,0 +1,55 @@ +// +// Licensed 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. +// + +== Optional features + +Everything discussed in the quickstart guide so far is installed out-of-the-box in Apache ServiceMix, but we also have a lot of +optional features that can be installed in the container when necessary. + +=== List of features + +The list of features is available with the _feature:list_ command. The overview shows you whether or not the feature is currently +installed, the version and the name of the feature. + +image::featureslist.png[] + +The full list contains a lot of different features: optional Camel components, features for adding OBR or wrapper support to +ServiceMix, a web console, and many more. Again, you can use things like _|_ and _grep_ to find the things in the list that you're +interested in. + +[source,text] +---- +karaf@root> feature:list | grep camel +---- + +=== Example: web console + +To get the web console installed in ServiceMix, install the feature from your console +[source,text] +---- +karaf@root> feature:install webconsole +---- + +Afterwards, you can verify that the feature is installed and started in the overview. + +[source,text] +---- +karaf@root> feature:list | grep -i webconsole +---- + +image::featureslist-grep-webconsole.png[] + +You will now be able to point your browser to http://localhost:8181/system/console and login with user _smx_ and password _smx_ to +access the web console. From the webconsole, Karaf can be managed, including starting and stopping bundles, installing and +uninstalling features, and managing the configuration. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/quickstart/_installation.adoc ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/quickstart/_installation.adoc b/manual/src/main/asciidoc/quickstart/_installation.adoc new file mode 100644 index 0000000..04aa0fc --- /dev/null +++ b/manual/src/main/asciidoc/quickstart/_installation.adoc @@ -0,0 +1,72 @@ +// +// Licensed 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. +// + +== Installation + +Before we can start working with Apache ServiceMix, we have to get it installed and running on our local machine first. + +=== System requirements + +For running Apache ServiceMix itself, you'll need + +* Java Runtime Environment (JRE) 1.7.x (Java 7) or + Java Runtime Environment (JRE) 1.8.x (Java 8) +* About 100 MB of free disk space for the default assembly + +If you're developing your own integration applications and OSGi bundles, you'll also need + +* Java Developer Kit (JDK) 1.7.x (Java 7) or + Java Developer Kit (JDK) 1.8.x (Java 8) +* Apache Maven 3.0.4 or higher + +=== Downloading Apache ServiceMix + +Apache ServiceMix {servicemix-version} is available under the Apache License v2 and can be downloaded from http://servicemix.apache.org/downloads.html. + +Depending on your operation system, you should download either the tar.gz or the zip file: + +* _tar.gz_ for Linux/Unix/MacOS X +* _zip_ for Windows + +=== Installing Apache ServiceMix + +Installing Apache ServiceMix is as simple as uncompressing the downloaded archive on your hard disk. For the rest of this guide, we'll refer to the this location as *_<SERVICEMIX_HOME>_*. + +=== Starting Apache ServiceMix + +Depending on your platform, start Apache ServiceMix by following the instructions below. After starting the container, you will have access to the console from which you can manage the container. + +==== On Windows +In a command prompt window, navigate to the directory where you extracted ServiceMix and run the _bin\servicemix.bat_ file. + +Example: if ServiceMix in installed in the _c:\tools\apache-servicemix-{servicemix-version}_ directory +[source,text,subs="attributes"] +---- +> cd c:\tools\apache-servicemix-{servicemix-version} +> .\bin\servicemix +---- + +image::start-windows.png[] + +==== On Linux/Unix/MacOS X +On a command shell, navigate to the directory where you extracted ServiceMix and the _bin/servicemix_ shell script + +Example: if ServiceMix is installed in the _~/bin/apache-servicemix-{servicemix-version}_ directory. +[source,text,subs="attributes"] +---- +$ cd ~/bin/apache-servicemix-{servicemix-version} +$ ./bin/servicemix +---- + +image::start-linux.png[] http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/quickstart/_introduction.adoc ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/quickstart/_introduction.adoc b/manual/src/main/asciidoc/quickstart/_introduction.adoc new file mode 100644 index 0000000..6c220f4 --- /dev/null +++ b/manual/src/main/asciidoc/quickstart/_introduction.adoc @@ -0,0 +1,21 @@ +// +// Licensed 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. +// + +== Introduction + +First of all, welcome to the Apache ServiceMix project! + +The goal of this Quickstart guide is to give you a 20-minute overview of what ServiceMix is and what you can do with it. +In that time, we'll install ServiceMix on your machine, deploy some basic integration routes and extend the container +with an additional feature. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/quickstart/_quickstart.adoc ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/quickstart/_quickstart.adoc b/manual/src/main/asciidoc/quickstart/_quickstart.adoc new file mode 100644 index 0000000..861c1f0 --- /dev/null +++ b/manual/src/main/asciidoc/quickstart/_quickstart.adoc @@ -0,0 +1,31 @@ +// +// Licensed 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. +// + +// This document is intended to be included in other documents. +// No title heading! +// The top level heading in all included documents should not be a document title. + +include::_introduction.adoc[] + +include::_installation.adoc[] + +include::_console.adoc[] + +include::_camel.adoc[] + +include::_activemq.adoc[] + +include::_features.adoc[] + +include::_summary.adoc[] http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/quickstart/_summary.adoc ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/quickstart/_summary.adoc b/manual/src/main/asciidoc/quickstart/_summary.adoc new file mode 100644 index 0000000..4157418 --- /dev/null +++ b/manual/src/main/asciidoc/quickstart/_summary.adoc @@ -0,0 +1,20 @@ +// +// Licensed 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. +// + +== Wrapping it up... + +This is where our introductory journey through the world of Apache ServiceMix ends. We've obviously just scratched the surface of +what is possible, but we hope you have an idea of what you can expect from Apache ServiceMix and how you can use it in your environment. + +For more in-depth information, have a look at our set of user guides. Also, if you have any questions, we welcome you on our user mailing list! http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/quickstart/quickstart.adoc ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/quickstart/quickstart.adoc b/manual/src/main/asciidoc/quickstart/quickstart.adoc new file mode 100644 index 0000000..7ada86f --- /dev/null +++ b/manual/src/main/asciidoc/quickstart/quickstart.adoc @@ -0,0 +1,21 @@ +// +// Licensed 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. +// + +// This is standalone document with a Asciidoctor document title. +// This document is not intended to be included in other documents. += Quickstart Guide +Apache Software Foundation +:numbered: + +include::quickstart/_quickstart.adoc[] http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/resources/_resources.adoc ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/resources/_resources.adoc b/manual/src/main/asciidoc/resources/_resources.adoc new file mode 100644 index 0000000..3c33ade --- /dev/null +++ b/manual/src/main/asciidoc/resources/_resources.adoc @@ -0,0 +1,72 @@ +// +// Licensed 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. +// + +// This document is intended to be included in other documents. +// No title heading! +// The top level heading in all included documents should not be a document title. + +== Books + +[%autowidth,frame=topbot,grid=rows] +|=== +a|https://www.amazon.com/Enterprise-Integration-Patterns-Designing-Deploying/dp/0321200683/ref=sr_1_1?s=books&ie=UTF8&qid=1494695165&sr=1-1[Enterprise Integration Patterns : Designing, Building, and Deploying Messaging Solutions] + +Gregor Hohpe and Bobby Woolf + +October 2003 | image:eip150x198.jpg[] + +a|http://www.amazon.com/Service-Oriented-Business-Integration-Binildas-Christudas/dp/1847194400[Service Oriented Java Business Integration - Enterprise Service Bus Integration Solutions for Java Developers] + +Binildas A. Christudas + +March 2008 | image:sojbi150x190.jpg[] + +a|https://www.amazon.com/Design-Patterns-Prentice-Service-Oriented-Computing/dp/0136135161[SOA Design Patterns] + +Thomas Erl + +January 2009 | image:soa-dp-erl150x195.jpg[] + +a|https://www.manning.com/books/understanding-enterprise-soa[Understanding Enterprise SOA] + +Eric Pulier and Hugh Taylor + +November 2005 | image:pulier150x188.jpg[] + +a|https://www.amazon.com/o/ASIN/0131428985/002-7139888-4078404[Service-Oriented Architecture: A Field Guide to Integrating XML and Web Services] + +Thomas Erl + +April 2006 | image:soa-fieldguide-xml-ws150x197.jpg[] + +a|https://www.amazon.com/o/ASIN/0131858580/002-7139888-4078404[Service-Oriented Architecture (SOA): Concepts, Technology, and Design] + +Thomas Erl + +August 2005 | image:soa-concepts150x212.jpg[] + +a|https://www.amazon.com/o/ASIN/0131465759/002-7139888-4078404[Enterprise SOA: Service-Oriented Architecture Best Practices] + +Dirk Krafzig, Karl Banke, and Dirk Slama + +November 2004 | image:enterpreise-soa-best-practices-krafzig150x197.jpg[] + +a|https://www.amazon.com/Understanding-SOA-Services-Eric-Newcomer/dp/0321180860[Understanding SOA with Web Services] + +Eric Newcomer and Greg Lomow + +December 2004 | image:understanding-soa-ws-newcomer150x202.jpg[] + +a|https://www.amazon.com/Services-Service-Oriented-Architectures-Computing-Second/dp/0123983576[Web Services, Service-Oriented Architectures, and Cloud Computing, Second Edition: The Savvy Manager's Guide] + +Douglas K. Barry + +January 2013 | image:ws-soa-cloud-mamager-guide-barry150x225.jpg[] + +a|https://www.amazon.com/Web-Services-Platform-Architecture-WS-Addressing/dp/0131488740[Web Services Platform Architecture : SOAP, WSDL, WS-Policy, WS-Addressing, WS-BPEL, WS-Reliable Messaging, and More] + +Sanjiva Weerawarana, Francisco Curbera, Frank Leymann, Tony Storey, and Donald F. Ferguson + +April 2005 | image:webservice-platform150x196.jpg[] + +a|https://www.amazon.com/Loosely-Coupled-Missing-Pieces-Services/dp/1881378241[Loosely Coupled: The Missing Pieces of Web Services] + +Doug Kaye + +August 2003 | image:loosely-coupled-kaye150x208.jpg[] + +|=== + +== Websites + +* http://www.eaipatterns.com/[Enterprise Integration Patterns] +* http://www.servicetechbooks.com/[The Prentice Hall Service Technology Series from Thomas Erl] \ No newline at end of file http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/resources/resources.adoc ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/resources/resources.adoc b/manual/src/main/asciidoc/resources/resources.adoc new file mode 100644 index 0000000..aeb52a4 --- /dev/null +++ b/manual/src/main/asciidoc/resources/resources.adoc @@ -0,0 +1,21 @@ +// +// Licensed 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. +// + +// This is standalone document with a Asciidoctor document title. +// This document is not intended to be included in other documents. += Resources +Apache Software Foundation +:numbered: + +include::resources/_resources.adoc[] http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/user-guide/_introduction.adoc ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/user-guide/_introduction.adoc b/manual/src/main/asciidoc/user-guide/_introduction.adoc new file mode 100644 index 0000000..1151d0c --- /dev/null +++ b/manual/src/main/asciidoc/user-guide/_introduction.adoc @@ -0,0 +1,22 @@ +// +// Licensed 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. +// + +== Introduction + +Apache ServiceMix is a flexible, open-source integration container that unifies the features and functionality of +Apache ActiveMQ, Camel, CXF and Karaf into a powerful runtime platform for building integrations solutions. + +The goal of this document is to introduce you to the different components that are part of Apache ServiceMix and explain +how and when they can be used together. + http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/user-guide/_technology-selection.adoc ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/user-guide/_technology-selection.adoc b/manual/src/main/asciidoc/user-guide/_technology-selection.adoc new file mode 100644 index 0000000..5fc3435 --- /dev/null +++ b/manual/src/main/asciidoc/user-guide/_technology-selection.adoc @@ -0,0 +1,51 @@ +// +// Licensed 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. +// + +== Technology selection guide + +ServiceMix offers a set of different messaging and integration technologies: + +* ActiveMQ +* Camel +* CXF + +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. + +=== 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 and CXF. + +=== When to use ActiveMQ? + +ActiveMQ is a JMS message broker, featuring support for clustering, pluggable persistence mechanism, master-slave configuration for +failover, and more. + +ServiceMix 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) on the network, you can configure ActiveMQ clustering or +master-slave mode to allow for a more reliable and scalable set-up. + +=== When to use CXF? + +CXF is an open-source services framework that you can use to suit your REST and 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. + http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/user-guide/_user-guide.adoc ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/user-guide/_user-guide.adoc b/manual/src/main/asciidoc/user-guide/_user-guide.adoc new file mode 100644 index 0000000..da06391 --- /dev/null +++ b/manual/src/main/asciidoc/user-guide/_user-guide.adoc @@ -0,0 +1,24 @@ +// +// Licensed 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. +// + +// This document is intended to be included in other documents. +// No title heading! +// The top level heading in all included documents should not be a document title. + +include::_introduction.adoc[] + +include::_what-is-servicemix.adoc[] + +include::_technology-selection.adoc[] + http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/user-guide/_what-is-servicemix.adoc ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/user-guide/_what-is-servicemix.adoc b/manual/src/main/asciidoc/user-guide/_what-is-servicemix.adoc new file mode 100644 index 0000000..5106c35 --- /dev/null +++ b/manual/src/main/asciidoc/user-guide/_what-is-servicemix.adoc @@ -0,0 +1,157 @@ +// +// Licensed 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. +// + +== What is (in) ServiceMix? + +Apache ServiceMix is an open source ESB (Enterprise Service Bus) that combines the functionality of a Service Oriented Architecture +(SOA) and the modularity. The adoption of a Service Bus allows to decouple the applicatons together and reduce dependencies. +Messages are used to wire together applications (=services) and/or connectors to exchange information using different protocols or +communication modes like FTP, HTTP, and web services. + +Apache ServiceMix is designed on top of the OSGI specification. Using OSGI framework brings a new important feature to SOA development: +modularity. That means that we can handle classloading and application lifecycle differently between the components. + +ServiceMix is lightweight and easily embeddable, has integrated Spring support and can be run at the edge of the network (inside a +client or server), as a standalone ESB provider or as a service within another ESB. You can use ServiceMix in Java SE or Java EE +application server. + +=== Platform presentation + +Apache ServiceMix is a distributed ESB built from the ground up and released under the Apache license. + +ServiceMix uses ActiveMQ to provide remoting, clustering, reliability and distributed failover. + +ServiceMix can also be embedded into a JEE application server such as JBoss WildFly, Oracle Weblogic or IBM Websphere. + +=== OSGi for Dummies + +http://www.osgi.org/About/Technology[OSGi technology] is the dynamic module system for +http://www.oracle.com/technetwork/java/index.html[Java]. The OSGi Service Platform provides functionality to Java that makes Java +the premier environment for software integration and thus for development. Java provides the portability that is required to support +products on many different platforms. The OSGi technology provides the standardized primitives that allow applications to be +constructed from small, reusable and collaborative components. These components can be composed into an application and deployed. + +The OSGi Service Platform provides the functions to change the composition dynamically on the device of a variety of networks, +without requiring restarts. To minimize the coupling, as well as make these couplings managed, the OSGi technology provides a +service-oriented architecture that enables these components to dynamically discover each other for collaboration. The OSGi Alliance +has developed many standard component interfaces for common functions like HTTP servers, configuration, logging, security, user +administration, XML and many more. Plug-compatible implementations of these components can be obtained from different vendors with +different optimizations and costs. However, service interfaces can also be developed on a proprietary basis. + +OSGi technology adopters benefit from improved time-to-market and reduced development costs because OSGi technology provides for the +integration of pre-built and pre-tested component subsystems. The technology also reduces maintenance costs and enables unique new +aftermarket opportunities because components can be dynamically delivered to devices in the field. + +For more information, check out the http://www.osgi.org/Main/HomePage[OSGi Alliance website]. + +=== Powered by Apache Karaf + +Apache ServiceMix is based on http://karaf.apache.org/[Apache Karaf]. Apache Karaf is a small +http://www.osgi.org/Main/HomePage[OSGi-based] runtime which provides a lightweight container onto which various components and +applications can be deployed. + +Here is a short list of features supported by the Karaf: + +Hot deployment: Karaf supports hot deployment of OSGi bundles by monitoring jar files inside the $home/deploy directory. Each time a +jar is copied in this folder, it will be installed inside the runtime. You can then update or delete it and changes will be handled +automatically. In addition, the Karaf also supports exploded bundles and custom deployers (Blueprint and Spring ones are included by +default). + +Dynamic configuration: Services are usually configured through the ConfigurationAdmin OSGi service. Such configuration can be +defined in Karaf using property files inside the $home/etc directory. These configurations are monitored and changes on the +properties files will be propagated to the services. + +Logging System: using a centralized logging back end supported by Log4J, Karaf supports a number of different APIs (JDK 1.4, JCL, +SLF4J, Avalon, Tomcat, OSGi) + +Provisioning: Provisioning of libraries or applications can be done through a number of different ways, by which they will be +downloaded locally, installed and started. + +Native OS integration: Karaf can be integrated into your own Operating System as a service so that the lifecycle will be bound to +your Operating System. + +Extensible Shell console: Karaf features a nice text console where you can manage the services, install new applications or +libraries and manage their state. This shell is easily extensible by deploying new commands dynamically along with new features or +applications. + +Remote access: use any SSH client to connect to Karaf and issue commands in the console . + +Security framework based on JAAS. + +Managing instances: Karaf provides simple commands for managing multiple instances. You can easily create, delete, start and stop +instances of Karaf through the console. + +For more information, check out the http://karaf.apache.org/[Apache Karaf project page]. + +=== Apache Camel + +Apache Camel is a powerful open source integration framework based on known +http://camel.apache.org/enterprise-integration-patterns.html[Enterprise Integration Patterns] with powerful +http://camel.apache.org/bean-integration.html[Bean Integration]. + +Apache Camel lets you create the http://camel.apache.org/enterprise-integration-patterns.html[Enterprise Integration Patterns] to +implement routing and mediation rules in either a Java based http://camel.apache.org/dsl.html[Domain Specific Language (or Fluent +API)], via http://camel.apache.org/spring.html[Spring based Xml Configuration] files or via the +http://camel.apache.org/scala-dsl.html[Scala DSL]. + +For more information, check out the <<camel-guide.adoc#,Using Apache Camel in ServiceMix User Guide>>. + +=== Services proposed + +_TODO: write this bit_ + +==== Message Broker : Apache ActiveMQ + +Apache ServiceMix ships with an embedded instance of http://activemq.apache.org[Apache ActiveMQ] out-of-the-box. + +It is a fully functional Apache ActiveMQ message broker instance listening for http://activemq.apache.org/openwire.html[TCP] +connections on port 61616 and http://activemq.apache.org/stomp.html[STOMP] connections on port 61613. + +The http://activemq.apache.org/xml-configuration.html[default configuration for the Apache ActiveMQ] message broker resides in the +ServiceMix installation directory under the etc sub-directory. The ActiveMQ configuration file is named activemq.xml. It's +configured with reasonable default information like http://activemq.apache.org/persistence.html[Persistence (KahaDB)] and +http://activemq.apache.org/producer-flow-control.html[Producer Flow Control] (essentially to make sure the broker does not run out +of memory). + +The configuration file also makes use of a reusable connection pool available to all OSGi bundles exposing a +http://docs.oracle.com/javaee/1.4/api/javax/jms/ConnectionFactory.html[javax.jms.ConnectionFactory] as a service for consumption. +You can re-use this connection pool via tools such as http://activemq.apache.org/osgi-integration.html[spring-dm or blueprint]. + +The ActiveMQ message broker allows several components such as servicemix-cluster, http://camel.apache.org/jms.html[camel-jms], +http://camel.apache.org/activemq.html[camel-activemq], http://cxf.apache.org/docs/jms-transport.html[cxf-jms transport] to be +utilized without any additional configuration. + +==== Transaction : Geronimo Transaction Manager +_TODO: write this bit_ + +==== Routing and Mediation : Apache Camel +_TODO: write this bit_ + +==== Web Services : Apache CXF +_TODO: write this bit_ + +==== Web Container +_TODO: write this bit_ + +==== SOA platform +_TODO: write this bit_ + +===== Spring DM container +_TODO: write this bit_ + +===== Blueprint OSGI container +_TODO: write this bit_ + +===== EJB Container +_TODO: write this bit_ http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/asciidoc/user-guide/user-guide.adoc ---------------------------------------------------------------------- diff --git a/manual/src/main/asciidoc/user-guide/user-guide.adoc b/manual/src/main/asciidoc/user-guide/user-guide.adoc new file mode 100644 index 0000000..aa195d0 --- /dev/null +++ b/manual/src/main/asciidoc/user-guide/user-guide.adoc @@ -0,0 +1,21 @@ +// +// Licensed 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. +// + +// This is standalone document with a Asciidoctor document title. +// This document is not intended to be included in other documents. += User Guide +Apache Software Foundation +:numbered: + +include::user-guide/_user-guide.adoc[] http://git-wip-us.apache.org/repos/asf/servicemix/blob/138042d4/manual/src/main/groovy/CreateKarafCommandsAdocFile.groovy ---------------------------------------------------------------------- diff --git a/manual/src/main/groovy/CreateKarafCommandsAdocFile.groovy b/manual/src/main/groovy/CreateKarafCommandsAdocFile.groovy new file mode 100644 index 0000000..53f86d5 --- /dev/null +++ b/manual/src/main/groovy/CreateKarafCommandsAdocFile.groovy @@ -0,0 +1,25 @@ +def dir = new File(project.properties.karafCommandsDir) +def out = new File(project.properties.karafCommandsDir,"karaf-commands.adoc") + +out.write ("= Karaf Commands\n\n") + +def commands = [:] +dir.eachFile { it -> + def line = it.readLines()[0] + def command = line - ~/^=\s/ + def filename = command.replace(":","-") + ".adoc" + def link = "<<${filename}#,${command}>>" + commands.put(command, link) +} + +def keys = commands.keySet().sort() +def lastGroup = "" +keys.findAll { it.contains(":") }.each { key -> + def group = key.split(":")[0] + if (!lastGroup.equals(group)) { + lastGroup = group + out.append("\n== ${group}\n\n") + } + def link = commands[key] + out.append("* ${link}\n") +}
