<?xml version="1.0" encoding="UTF-8"?>
<!-- name="generator" content="blojsom v3.2" -->
<rss version="2.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/">
    <channel>
        <title>Developers Blog</title>
        <link>http://www.developers-blog.org/blog/default</link>
        <description>Topics: Visions, Architecture Issues, Programming Languages, ...</description>
        <language>de</language>
        <image>
            <url>http://www.developers-blog.org//favicon.ico</url>
            <title>Developers Blog</title>
            <link>http://www.developers-blog.org/blog/default</link>
        </image>
        <docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<generator>blojsom v3.2</generator>
		<managingEditor>rafael.sobek@web.de</managingEditor>
		<webMaster>rafael.sobek@web.de</webMaster>
		<pubDate>Tue, 28 Oct 2008 00:07:49 +0000</pubDate>

                        <item>
            <title>A simple ActiveMQ example</title>
            <link>http://www.developers-blog.org/blog/default/2008/10/28/A-simple-ActiveMQ-example</link>
            <description>A small class to get started with ActiveMQ. Inspired by the examples contained in the ActiveMQ download.&lt;p/&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;MyFirstActiveMqQueue.java&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;&lt;!--
.syntax0 {
color: #000000;
}
.syntax1 {
color: #cc0000;
}
.syntax2 {
color: #ff8400;
}
.syntax3 {
color: #6600cc;
}
.syntax4 {
color: #cc6600;
}
.syntax5 {
color: #ff0000;
}
.syntax6 {
color: #9966ff;
}
.syntax7 {
background: #ffffcc;
color: #ff0066;
}
.syntax8 {
color: #006699;
font-weight: bold;
}
.syntax9 {
color: #009966;
font-weight: bold;
}
.syntax10 {
color: #0099ff;
font-weight: bold;
}
.syntax11 {
color: #66ccff;
font-weight: bold;
}
.syntax12 {
color: #02b902;
}
.syntax13 {
color: #ff00cc;
}
.syntax14 {
color: #cc00cc;
}
.syntax15 {
color: #9900cc;
}
.syntax16 {
color: #6600cc;
}
.syntax17 {
color: #0000ff;
}
.syntax18 {
color: #000000;
font-weight: bold;
}
.gutter {
background: #dbdbdb;
color: #000000;
}
.gutterH {
background: #dbdbdb;
color: #990066;
}
--&gt;&lt;/style&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot;&gt;
&lt;pre&gt;&lt;span class=&quot;syntax0&quot;&gt;&lt;span class=&quot;gutter&quot;&gt;   1:&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;/*&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   2:&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;Small&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;to&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;started&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;ActiveMQ.&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;Inspired&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;by&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;the&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;examples&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;contained&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;the&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   3:&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;ActiveMQ&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;download.&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;Gisbert&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;Amm,&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;2008-10-28&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   4:&lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax1&quot;&gt;*/&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;   5:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;package&lt;/span&gt; de.gisbertamm.activemqstart;
&lt;span class=&quot;gutter&quot;&gt;   6:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   7:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; javax.jms.JMSException;
&lt;span class=&quot;gutter&quot;&gt;   8:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; org.apache.activemq.ActiveMQConnectionFactory;
&lt;span class=&quot;gutter&quot;&gt;   9:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; org.apache.activemq.broker.BrokerService;
&lt;span class=&quot;gutterH&quot;&gt;  10:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; javax.jms.Connection;
&lt;span class=&quot;gutter&quot;&gt;  11:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; javax.jms.DeliveryMode;
&lt;span class=&quot;gutter&quot;&gt;  12:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; javax.jms.Destination;
&lt;span class=&quot;gutter&quot;&gt;  13:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; javax.jms.ExceptionListener;
&lt;span class=&quot;gutter&quot;&gt;  14:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; javax.jms.Message;
&lt;span class=&quot;gutterH&quot;&gt;  15:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; javax.jms.MessageConsumer;
&lt;span class=&quot;gutter&quot;&gt;  16:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; javax.jms.MessageListener;
&lt;span class=&quot;gutter&quot;&gt;  17:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; javax.jms.MessageProducer;
&lt;span class=&quot;gutter&quot;&gt;  18:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; javax.jms.Session;
&lt;span class=&quot;gutter&quot;&gt;  19:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; javax.jms.TextMessage;
&lt;span class=&quot;gutterH&quot;&gt;  20:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; org.apache.activemq.ActiveMQConnection;
&lt;span class=&quot;gutter&quot;&gt;  21:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  22:&lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt;/**&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  23:&lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt;*&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  24:&lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;@author&lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt;gisbert&lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt;amm&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  25:&lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt;*/&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  26:&lt;/span&gt;&lt;span class=&quot;syntax8&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;syntax10&quot;&gt;class&lt;/span&gt; MyFirstActiveMqQueue &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  27:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  28:&lt;/span&gt;    &lt;span class=&quot;syntax8&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;static&lt;/span&gt; ActiveMQConnectionFactory connectionFactory;
&lt;span class=&quot;gutter&quot;&gt;  29:&lt;/span&gt;    &lt;span class=&quot;syntax8&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;static&lt;/span&gt; Connection connection;
&lt;span class=&quot;gutterH&quot;&gt;  30:&lt;/span&gt;    &lt;span class=&quot;syntax8&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;static&lt;/span&gt; Session session;
&lt;span class=&quot;gutter&quot;&gt;  31:&lt;/span&gt;    &lt;span class=&quot;syntax8&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;static&lt;/span&gt; Destination destination;
&lt;span class=&quot;gutter&quot;&gt;  32:&lt;/span&gt;    &lt;span class=&quot;syntax8&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;syntax10&quot;&gt;boolean&lt;/span&gt; transacted &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;syntax14&quot;&gt;false&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  33:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  34:&lt;/span&gt;    &lt;span class=&quot;syntax8&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;syntax10&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;syntax6&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;String[] args&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;throws&lt;/span&gt; Exception &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  35:&lt;/span&gt;        BrokerService broker &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;syntax6&quot;&gt;BrokerService&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  36:&lt;/span&gt;        broker.&lt;span class=&quot;syntax6&quot;&gt;setUseJmx&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax14&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  37:&lt;/span&gt;        broker.&lt;span class=&quot;syntax6&quot;&gt;addConnector&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;tcp://localhost:61616&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  38:&lt;/span&gt;        broker.&lt;span class=&quot;syntax6&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  39:&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  40:&lt;/span&gt;        &lt;span class=&quot;syntax6&quot;&gt;setUp&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  41:&lt;/span&gt;        &lt;span class=&quot;syntax6&quot;&gt;createProducerAndSendAMessage&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  42:&lt;/span&gt;        System.out.&lt;span class=&quot;syntax6&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;Simulating&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;huge&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;network&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;delay&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;:)&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  43:&lt;/span&gt;        Thread.&lt;span class=&quot;syntax6&quot;&gt;sleep&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax5&quot;&gt;4000&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  44:&lt;/span&gt;        &lt;span class=&quot;syntax6&quot;&gt;createConsumerAndReceiveAMessage&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutterH&quot;&gt;  45:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  46:&lt;/span&gt;        &lt;span class=&quot;syntax2&quot;&gt;//&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;TODO:&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;Find&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;out&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;how&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;to&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;rid&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;of&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;the&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;exceptions&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;thrown&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;when&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;stopping&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;the&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;broker&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  47:&lt;/span&gt;        broker.&lt;span class=&quot;syntax6&quot;&gt;stop&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  48:&lt;/span&gt;    &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  49:&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  50:&lt;/span&gt;    &lt;span class=&quot;syntax8&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;syntax10&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;syntax6&quot;&gt;setUp&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;throws&lt;/span&gt; JMSException &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  51:&lt;/span&gt;        connectionFactory &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;syntax6&quot;&gt;ActiveMQConnectionFactory&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  52:&lt;/span&gt;                ActiveMQConnection.DEFAULT_USER,
&lt;span class=&quot;gutter&quot;&gt;  53:&lt;/span&gt;                ActiveMQConnection.DEFAULT_PASSWORD,
&lt;span class=&quot;gutter&quot;&gt;  54:&lt;/span&gt;                ActiveMQConnection.DEFAULT_BROKER_URL&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutterH&quot;&gt;  55:&lt;/span&gt;        connection &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; connectionFactory.&lt;span class=&quot;syntax6&quot;&gt;createConnection&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  56:&lt;/span&gt;        connection.&lt;span class=&quot;syntax6&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  57:&lt;/span&gt;        session &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; connection.&lt;span class=&quot;syntax6&quot;&gt;createSession&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;transacted, Session.AUTO_ACKNOWLEDGE&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  58:&lt;/span&gt;        destination &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; session.&lt;span class=&quot;syntax6&quot;&gt;createQueue&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;mmy&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;first&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;active&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;mq&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;queue&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  59:&lt;/span&gt;    &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  60:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  61:&lt;/span&gt;    &lt;span class=&quot;syntax8&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;syntax10&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;syntax6&quot;&gt;createProducerAndSendAMessage&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;throws&lt;/span&gt; JMSException &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  62:&lt;/span&gt;        MessageProducer producer &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; session.&lt;span class=&quot;syntax6&quot;&gt;createProducer&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;destination&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  63:&lt;/span&gt;        producer.&lt;span class=&quot;syntax6&quot;&gt;setDeliveryMode&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;DeliveryMode.NON_PERSISTENT&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  64:&lt;/span&gt;        TextMessage message &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; session.&lt;span class=&quot;syntax6&quot;&gt;createTextMessage&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;Hello&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;World!&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutterH&quot;&gt;  65:&lt;/span&gt;        System.out.&lt;span class=&quot;syntax6&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;Sending&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;message:&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt; message.&lt;span class=&quot;syntax6&quot;&gt;getText&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  66:&lt;/span&gt;        producer.&lt;span class=&quot;syntax6&quot;&gt;send&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;message&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  67:&lt;/span&gt;    &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  68:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  69:&lt;/span&gt;    &lt;span class=&quot;syntax8&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;syntax10&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;syntax6&quot;&gt;createConsumerAndReceiveAMessage&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;throws&lt;/span&gt; JMSException, InterruptedException &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  70:&lt;/span&gt;        connection &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; connectionFactory.&lt;span class=&quot;syntax6&quot;&gt;createConnection&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  71:&lt;/span&gt;        connection.&lt;span class=&quot;syntax6&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  72:&lt;/span&gt;        MessageConsumer consumer &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; session.&lt;span class=&quot;syntax6&quot;&gt;createConsumer&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;destination&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  73:&lt;/span&gt;        MyConsumer myConsumer &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;syntax6&quot;&gt;MyConsumer&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  74:&lt;/span&gt;        connection.&lt;span class=&quot;syntax6&quot;&gt;setExceptionListener&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;myConsumer&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutterH&quot;&gt;  75:&lt;/span&gt;        consumer.&lt;span class=&quot;syntax6&quot;&gt;setMessageListener&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;myConsumer&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  76:&lt;/span&gt;    &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  77:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  78:&lt;/span&gt;    &lt;span class=&quot;syntax8&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;syntax10&quot;&gt;class&lt;/span&gt; MyConsumer &lt;span class=&quot;syntax8&quot;&gt;implements&lt;/span&gt; MessageListener, ExceptionListener &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  79:&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  80:&lt;/span&gt;        &lt;span class=&quot;syntax8&quot;&gt;synchronized&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;syntax10&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;syntax6&quot;&gt;onException&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;JMSException ex&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  81:&lt;/span&gt;            System.out.&lt;span class=&quot;syntax6&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;JMS&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;Exception&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;occured.&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;Shutting&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;down&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;client.&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  82:&lt;/span&gt;            System.&lt;span class=&quot;syntax6&quot;&gt;exit&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax5&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  83:&lt;/span&gt;        &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  84:&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  85:&lt;/span&gt;        &lt;span class=&quot;syntax8&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;syntax10&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;syntax6&quot;&gt;onMessage&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;Message message&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  86:&lt;/span&gt;            &lt;span class=&quot;syntax8&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;message &lt;span class=&quot;syntax8&quot;&gt;instanceof&lt;/span&gt; TextMessage&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  87:&lt;/span&gt;                TextMessage textMessage &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;TextMessage&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; message;
&lt;span class=&quot;gutter&quot;&gt;  88:&lt;/span&gt;                &lt;span class=&quot;syntax8&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  89:&lt;/span&gt;                    System.out.&lt;span class=&quot;syntax6&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;Received&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;message:&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt; textMessage.&lt;span class=&quot;syntax6&quot;&gt;getText&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutterH&quot;&gt;  90:&lt;/span&gt;                &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;JMSException ex&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  91:&lt;/span&gt;                    System.out.&lt;span class=&quot;syntax6&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;Error&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;reading&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;message:&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt; ex&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  92:&lt;/span&gt;                &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  93:&lt;/span&gt;            &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;else&lt;/span&gt;  &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  94:&lt;/span&gt;                System.out.&lt;span class=&quot;syntax6&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;Received:&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt; message&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutterH&quot;&gt;  95:&lt;/span&gt;            &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  96:&lt;/span&gt;        &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  97:&lt;/span&gt;    &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  98:&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;/body&gt;
&lt;/html&gt;
</description>
            <guid>http://www.developers-blog.org/blog/default/2008/10/28/A-simple-ActiveMQ-example</guid>
			<pubDate>Tue, 28 Oct 2008 00:07:49 +0000</pubDate>
            <category>/SOA/</category>
                                </item>
                        <item>
            <title>Pragmatische Visualisierung einer Architektur</title>
            <link>http://www.developers-blog.org/blog/default/2008/09/29/Pragmantische-Visualisierung-der-Architektur</link>
            <description>&lt;p&gt;Die einfachste und schnellste Methode ein bestehendes System zu visualisieren liegt in der Auswertung der Membervariablen jeglicher Klasse und die Erzeugung eines gerichteten Graphen. Natürlich werden hier Objekte die per Übergabe in Methoden verwendet werden nicht betrachtet sowie auch Singleton Klassen auf die man über die static Methoden zugreift. Aber wie gesagt, die Vorgehensweise verschafft einen ersten Einblick.&lt;/p&gt;

&lt;p style=&quot;text-align:center&quot;&gt;
Das Resultat zum nachfolgenden Beispiel:
&lt;br/&gt;&lt;img src=&quot;http://www.developers-blog.org/resources/default/graph.png&quot;/&gt;
&lt;/p&gt;


&lt;p&gt;Dabei wird mit Hilfe von Reflection und &lt;a href=&quot;http://www.graphviz.org/&quot;&gt;Graphviz&lt;/a&gt; einem Tool zur grafischen Darstellung von Hierarchien und Netzwerken ein Architekturbild im gewünschten Format erzeugen. Graphviz eignet sich vor allem deswegen, weil ab einer gewissen größe eines System, das manuelle Layout nicht mehr einfach ist. Die Layoutalgorithmen von Graphviz können auch mehr als 100 oder 1000 Knoten noch immer transparent darstellen.&lt;/p&gt;

&lt;p&gt;
Folgende Vorgehensweise wird hier durchgeführt:&lt;br/&gt;
&lt;ol&gt;
  &lt;li&gt;Auslesen aller Klassen eines definierten Source-Verzeichnisses.&lt;/li&gt;
  &lt;li&gt;Über eine Schleife werden alle MemberVariablen über die Methode &lt;pre&gt;classloader.loadClass(name).getDeclaredFields()&lt;/pre&gt; ausgelesen.&lt;/li&gt;
&lt;li&gt;Jeder Schleifendurchlauf schreibt die Memeberbeziehung zu einer anderen Klasse in ein DOT-File (Graphvizformat)&lt;./li&gt;
&lt;/ol&gt;
&lt;/p&gt;
Beispiel: &lt;br/&gt;&lt;b&gt;Drei Klassen, wobei jede die anderen kennt.&lt;/b&gt;
&lt;div&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;test2.java&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;&lt;!--
.syntax0 {
color: #000000;
}
.syntax1 {
color: #cc0000;
}
.syntax2 {
color: #ff8400;
}
.syntax3 {
color: #6600cc;
}
.syntax4 {
color: #cc6600;
}
.syntax5 {
color: #ff0000;
}
.syntax6 {
color: #9966ff;
}
.syntax7 {
background: #ffffcc;
color: #ff0066;
}
.syntax8 {
color: #006699;
font-weight: bold;
}
.syntax9 {
color: #009966;
font-weight: bold;
}
.syntax10 {
color: #0099ff;
font-weight: bold;
}
.syntax11 {
color: #66ccff;
font-weight: bold;
}
.syntax12 {
color: #02b902;
}
.syntax13 {
color: #ff00cc;
}
.syntax14 {
color: #cc00cc;
}
.syntax15 {
color: #9900cc;
}
.syntax16 {
color: #6600cc;
}
.syntax17 {
color: #0000ff;
}
.syntax18 {
color: #000000;
font-weight: bold;
}
.gutter {
background: #dbdbdb;
color: #000000;
}
.gutterH {
background: #dbdbdb;
color: #990066;
}
--&gt;&lt;/style&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot;&gt;
&lt;pre&gt;&lt;span class=&quot;syntax0&quot;&gt;&lt;span class=&quot;gutter&quot;&gt;   1:&lt;/span&gt;&lt;span class=&quot;syntax8&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;syntax10&quot;&gt;class&lt;/span&gt; Class1 &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   2:&lt;/span&gt;    &lt;span class=&quot;syntax8&quot;&gt;private&lt;/span&gt; Class2 class2;
&lt;span class=&quot;gutter&quot;&gt;   3:&lt;/span&gt;    &lt;span class=&quot;syntax8&quot;&gt;private&lt;/span&gt; Class3 class3;
&lt;span class=&quot;gutter&quot;&gt;   4:&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;   5:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   6:&lt;/span&gt;&lt;span class=&quot;syntax8&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;syntax10&quot;&gt;class&lt;/span&gt; Class2 &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   7:&lt;/span&gt;    &lt;span class=&quot;syntax8&quot;&gt;private&lt;/span&gt; Class1 class1;
&lt;span class=&quot;gutter&quot;&gt;   8:&lt;/span&gt;    &lt;span class=&quot;syntax8&quot;&gt;private&lt;/span&gt; Class3 class3;
&lt;span class=&quot;gutter&quot;&gt;   9:&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  10:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  11:&lt;/span&gt;&lt;span class=&quot;syntax8&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;syntax10&quot;&gt;class&lt;/span&gt; Class3 &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  12:&lt;/span&gt;    &lt;span class=&quot;syntax8&quot;&gt;private&lt;/span&gt; Class2 class2;
&lt;span class=&quot;gutter&quot;&gt;  13:&lt;/span&gt;    &lt;span class=&quot;syntax8&quot;&gt;private&lt;/span&gt; Class1 class1;
&lt;span class=&quot;gutter&quot;&gt;  14:&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;/div&gt;
&lt;b&gt;Klasse, welche die Klassen ausliest und per Reflection die Beziehung zwischen diesen identifiziert sowie das DOT-File erezugt.&lt;/b&gt;
&lt;div&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;test2.java&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;&lt;!--
.syntax0 {
color: #000000;
}
.syntax1 {
color: #cc0000;
}
.syntax2 {
color: #ff8400;
}
.syntax3 {
color: #6600cc;
}
.syntax4 {
color: #cc6600;
}
.syntax5 {
color: #ff0000;
}

.syntax6 {
color: #9966ff;
}
.syntax7 {
background: #ffffcc;
color: #ff0066;
}
.syntax8 {
color: #006699;
font-weight: bold;
}
.syntax9 {
color: #009966;
font-weight: bold;
}
.syntax10 {
color: #0099ff;
font-weight: bold;
}
.syntax11 {
color: #66ccff;
font-weight: bold;
}
.syntax12 {
color: #02b902;
}
.syntax13 {
color: #ff00cc;
}
.syntax14 {
color: #cc00cc;
}
.syntax15 {
color: #9900cc;
}
.syntax16 {
color: #6600cc;
}
.syntax17 {
color: #0000ff;
}
.syntax18 {
color: #000000;
font-weight: bold;
}
.gutter {
background: #dbdbdb;
color: #000000;
}
.gutterH {
background: #dbdbdb;
color: #990066;
}
--&gt;&lt;/style&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot;&gt;
&lt;pre&gt;&lt;span class=&quot;syntax0&quot;&gt;&lt;span class=&quot;gutter&quot;&gt;   1:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;package&lt;/span&gt; org.developersblog.PragmaticVisualizeArchiteture;
&lt;span class=&quot;gutter&quot;&gt;   2:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   3:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; java.io.File;
&lt;span class=&quot;gutter&quot;&gt;   4:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; java.io.FileWriter;
&lt;span class=&quot;gutterH&quot;&gt;   5:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; java.io.IOException;
&lt;span class=&quot;gutter&quot;&gt;   6:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; java.lang.reflect.Field;
&lt;span class=&quot;gutter&quot;&gt;   7:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; java.util.ArrayList;
&lt;span class=&quot;gutter&quot;&gt;   8:&lt;/span&gt;&lt;span class=&quot;syntax9&quot;&gt;import&lt;/span&gt; java.util.List;
&lt;span class=&quot;gutter&quot;&gt;   9:&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  10:&lt;/span&gt;&lt;span class=&quot;syntax8&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;syntax10&quot;&gt;class&lt;/span&gt; MemberExtractionAndDotGeneration &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  11:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  12:&lt;/span&gt;    &lt;span class=&quot;syntax8&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;syntax10&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;syntax6&quot;&gt;getClassNames&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;String prefix, 
&lt;span class=&quot;gutter&quot;&gt;  13:&lt;/span&gt;            List&lt;span class=&quot;syntax18&quot;&gt;&amp;lt;&lt;/span&gt;String&lt;span class=&quot;syntax18&quot;&gt;&amp;gt;&lt;/span&gt; classnames,
&lt;span class=&quot;gutter&quot;&gt;  14:&lt;/span&gt;            String dir&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  15:&lt;/span&gt;        File dirFile &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;syntax6&quot;&gt;File&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;dir&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  16:&lt;/span&gt;        &lt;span class=&quot;syntax8&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;File file : dirFile.&lt;span class=&quot;syntax6&quot;&gt;listFiles&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  17:&lt;/span&gt;            &lt;span class=&quot;syntax8&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;file.&lt;span class=&quot;syntax6&quot;&gt;isDirectory&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  18:&lt;/span&gt;                &lt;span class=&quot;syntax8&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;prefix.&lt;span class=&quot;syntax6&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;syntax5&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  19:&lt;/span&gt;                    &lt;span class=&quot;syntax6&quot;&gt;getClassNames&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;prefix &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt; 
&lt;span class=&quot;gutterH&quot;&gt;  20:&lt;/span&gt;                            file.&lt;span class=&quot;syntax6&quot;&gt;getName&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;, 
&lt;span class=&quot;gutter&quot;&gt;  21:&lt;/span&gt;                            classnames,
&lt;span class=&quot;gutter&quot;&gt;  22:&lt;/span&gt;                            file.&lt;span class=&quot;syntax6&quot;&gt;getAbsolutePath&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  23:&lt;/span&gt;                &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  24:&lt;/span&gt;                    &lt;span class=&quot;syntax6&quot;&gt;getClassNames&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;file.&lt;span class=&quot;syntax6&quot;&gt;getName&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;, classnames, 
&lt;span class=&quot;gutterH&quot;&gt;  25:&lt;/span&gt;                            file.&lt;span class=&quot;syntax6&quot;&gt;getAbsolutePath&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  26:&lt;/span&gt;                &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  27:&lt;/span&gt;            &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  28:&lt;/span&gt;                &lt;span class=&quot;syntax8&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;file.&lt;span class=&quot;syntax6&quot;&gt;getName&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;.&lt;span class=&quot;syntax6&quot;&gt;endsWith&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;.java&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  29:&lt;/span&gt;                    &lt;span class=&quot;syntax8&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;prefix.&lt;span class=&quot;syntax6&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;syntax5&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  30:&lt;/span&gt;                        String name &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; prefix &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt; file.&lt;span class=&quot;syntax6&quot;&gt;getName&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;.
&lt;span class=&quot;gutter&quot;&gt;  31:&lt;/span&gt;                                &lt;span class=&quot;syntax6&quot;&gt;replaceAll&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;.java&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  32:&lt;/span&gt;                        classnames.&lt;span class=&quot;syntax6&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;name&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  33:&lt;/span&gt;                    &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  34:&lt;/span&gt;                        String name &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; 
&lt;span class=&quot;gutterH&quot;&gt;  35:&lt;/span&gt;                                file.&lt;span class=&quot;syntax6&quot;&gt;getName&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;.&lt;span class=&quot;syntax6&quot;&gt;replaceAll&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;.java&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  36:&lt;/span&gt;                        classnames.&lt;span class=&quot;syntax6&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;name&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  37:&lt;/span&gt;                    &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  38:&lt;/span&gt;                &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  39:&lt;/span&gt;            &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  40:&lt;/span&gt;        &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  41:&lt;/span&gt;    &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  42:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  43:&lt;/span&gt;    &lt;span class=&quot;syntax3&quot;&gt;/**&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  44:&lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;@param&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax4&quot;&gt;args&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  45:&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;@throws&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax4&quot;&gt;ClassNotFoundException&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  46:&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;@throws&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax4&quot;&gt;SecurityException&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  47:&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;@throws&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax4&quot;&gt;IOException&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  48:&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax3&quot;&gt;*/&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  49:&lt;/span&gt;    &lt;span class=&quot;syntax8&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;syntax10&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;syntax6&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;String[] args&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;throws&lt;/span&gt; SecurityException,
&lt;span class=&quot;gutterH&quot;&gt;  50:&lt;/span&gt;            ClassNotFoundException, IOException &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  51:&lt;/span&gt;        FileWriter writer &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;syntax6&quot;&gt;FileWriter&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax8&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;syntax6&quot;&gt;File&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  52:&lt;/span&gt;                &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;/home/rafsob/Desktop/graph.dot&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  53:&lt;/span&gt;        writer.&lt;span class=&quot;syntax6&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;digraph&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;G&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;{\r\nedge&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;[len=2];\r\n&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  54:&lt;/span&gt;        ClassLoader cl &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; MemberExtractionAndDotGeneration.
&lt;span class=&quot;gutterH&quot;&gt;  55:&lt;/span&gt;                &lt;span class=&quot;syntax10&quot;&gt;class&lt;/span&gt;.&lt;span class=&quot;syntax6&quot;&gt;getClassLoader&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  56:&lt;/span&gt;        List&lt;span class=&quot;syntax18&quot;&gt;&amp;lt;&lt;/span&gt;String&lt;span class=&quot;syntax18&quot;&gt;&amp;gt;&lt;/span&gt; classnames &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;new&lt;/span&gt; ArrayList&lt;span class=&quot;syntax18&quot;&gt;&amp;lt;&lt;/span&gt;String&lt;span class=&quot;syntax18&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  57:&lt;/span&gt;        &lt;span class=&quot;syntax2&quot;&gt;//&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;Klassen&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;aus&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;dem&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;Verzeichnis&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;holen&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  58:&lt;/span&gt;        &lt;span class=&quot;syntax6&quot;&gt;getClassNames&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;, classnames,
&lt;span class=&quot;gutter&quot;&gt;  59:&lt;/span&gt;          &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;/home/rafsob/Desktop/workspace/&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  60:&lt;/span&gt;          &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;PragmaticVisualizeArchiteture/src/main/java&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  61:&lt;/span&gt;        &lt;span class=&quot;syntax2&quot;&gt;//&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;Klassenreferenzen&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;identifizieren&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  62:&lt;/span&gt;        &lt;span class=&quot;syntax8&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;String name : classnames&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  63:&lt;/span&gt;            System.out.&lt;span class=&quot;syntax6&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;check&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;name:&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt; name&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  64:&lt;/span&gt;            &lt;span class=&quot;syntax8&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;Field field : cl.&lt;span class=&quot;syntax6&quot;&gt;loadClass&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;name&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;.&lt;span class=&quot;syntax6&quot;&gt;getDeclaredFields&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  65:&lt;/span&gt;                &lt;span class=&quot;syntax8&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;classnames.&lt;span class=&quot;syntax6&quot;&gt;contains&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;field.&lt;span class=&quot;syntax6&quot;&gt;getType&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;.&lt;span class=&quot;syntax6&quot;&gt;getCanonicalName&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;&amp;amp;&lt;/span&gt; 
&lt;span class=&quot;gutter&quot;&gt;  66:&lt;/span&gt;                    &lt;span class=&quot;syntax18&quot;&gt;!&lt;/span&gt;name.&lt;span class=&quot;syntax6&quot;&gt;equals&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;field.&lt;span class=&quot;syntax6&quot;&gt;getType&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;.&lt;span class=&quot;syntax6&quot;&gt;getCanonicalName&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  67:&lt;/span&gt;                    
&lt;span class=&quot;gutter&quot;&gt;  68:&lt;/span&gt;                    &lt;span class=&quot;syntax10&quot;&gt;int&lt;/span&gt; lastFirst &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; name.&lt;span class=&quot;syntax6&quot;&gt;lastIndexOf&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  69:&lt;/span&gt;                    &lt;span class=&quot;syntax10&quot;&gt;int&lt;/span&gt; lastSecond &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; field.&lt;span class=&quot;syntax6&quot;&gt;getType&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;.
&lt;span class=&quot;gutterH&quot;&gt;  70:&lt;/span&gt;                            &lt;span class=&quot;syntax6&quot;&gt;getCanonicalName&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;.&lt;span class=&quot;syntax6&quot;&gt;lastIndexOf&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  71:&lt;/span&gt;                    &lt;span class=&quot;syntax2&quot;&gt;//&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;Knotenbeziehung&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;DOT&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;defnieren&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  72:&lt;/span&gt;                    writer.&lt;span class=&quot;syntax6&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;\&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt; name.&lt;span class=&quot;syntax6&quot;&gt;substring&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;lastFirst &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;syntax5&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;\&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;\&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt; 
&lt;span class=&quot;gutter&quot;&gt;  73:&lt;/span&gt;                            field.&lt;span class=&quot;syntax6&quot;&gt;getType&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;.&lt;span class=&quot;syntax6&quot;&gt;getCanonicalName&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;.
&lt;span class=&quot;gutter&quot;&gt;  74:&lt;/span&gt;                            &lt;span class=&quot;syntax6&quot;&gt;substring&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;lastSecond &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;syntax5&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;\&amp;quot;;\r\n&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutterH&quot;&gt;  75:&lt;/span&gt;                &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  76:&lt;/span&gt;            &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  77:&lt;/span&gt;        &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  78:&lt;/span&gt;        writer.&lt;span class=&quot;syntax6&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  79:&lt;/span&gt;        writer.&lt;span class=&quot;syntax6&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutterH&quot;&gt;  80:&lt;/span&gt;        &lt;span class=&quot;syntax2&quot;&gt;//&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;Neato&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;f&amp;uuml;r&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;die&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;Darstellung&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;von&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;Graphen&lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax2&quot;&gt;starten&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  81:&lt;/span&gt;        Process p &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; Runtime.&lt;span class=&quot;syntax6&quot;&gt;getRuntime&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;.&lt;span class=&quot;syntax6&quot;&gt;exec&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  82:&lt;/span&gt;                &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;/usr/bin/neato&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  83:&lt;/span&gt;                &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;-Tpng&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;/home/rafsob/Desktop/graph.dot&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  84:&lt;/span&gt;                &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;-o&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;/home/rafsob/Desktop/graph.png&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutterH&quot;&gt;  85:&lt;/span&gt;        System.out.&lt;span class=&quot;syntax6&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;  86:&lt;/span&gt;    &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  87:&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  88:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  89:&lt;/span&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;/div&gt;
Viele Grüße
Rafael Sobek
</description>
            <guid>http://www.developers-blog.org/blog/default/2008/09/29/Pragmantische-Visualisierung-der-Architektur</guid>
			<pubDate>Mon, 29 Sep 2008 14:59:49 +0000</pubDate>
            <category>/Architektur/</category>
                                </item>
                        <item>
            <title>OSGI Embedded Container</title>
            <link>http://www.developers-blog.org/blog/default/2008/09/17/OSGI-Embedded-Container</link>
            <description>&lt;p&gt;
Ich habe mich vor kurzem mit dem Thema OSGI-Einbindung des Felix- bzw. Equinoxcontainers beschäftigt. Anwendungsfelder können Applikationen sein, die sich gerade in der Refaktorisierungsphase Richtung OSGI-Komponentenapplikation befinden oder z.B. Servletapplikationen, die die Komponentenarchitektur in Form von OSGI-Bundles realisieren sollen.
&lt;/p&gt;
&lt;p&gt;
Weiterhin könnte auch die Anforderung existieren, einen OSGI-Container per Trigger auf der Quellcode Ebene zu initialisieren.
&lt;/p&gt;
&lt;p&gt;
Euqinox kann über die EclipseStarter-Klasse initilisiert werden (startup.jar), hier Beispielhaft:
&lt;/p&gt;
&lt;div&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;test.java&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;&lt;!--
.syntax0 {
color: #000000;
}
.syntax1 {
color: #cc0000;
}
.syntax2 {
color: #ff8400;
}
.syntax3 {
color: #6600cc;
}
.syntax4 {
color: #cc6600;
}
.syntax5 {
color: #ff0000;
}
.syntax6 {
color: #9966ff;
}
.syntax7 {
background: #ffffcc;
color: #ff0066;
}
.syntax8 {
color: #006699;
font-weight: bold;
}
.syntax9 {
color: #009966;
font-weight: bold;
}
.syntax10 {
color: #0099ff;
font-weight: bold;
}
.syntax11 {
color: #66ccff;
font-weight: bold;
}
.syntax12 {
color: #02b902;
}
.syntax13 {
color: #ff00cc;
}
.syntax14 {
color: #cc00cc;
}
.syntax15 {
color: #9900cc;
}
.syntax16 {
color: #6600cc;
}
.syntax17 {
color: #0000ff;
}
.syntax18 {
color: #000000;
font-weight: bold;
}
.gutter {
background: #dbdbdb;
color: #000000;
}
.gutterH {
background: #dbdbdb;
color: #990066;
}
--&gt;&lt;/style&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot;&gt;
&lt;pre&gt;&lt;span class=&quot;syntax0&quot;&gt;&lt;span class=&quot;gutter&quot;&gt;   1:&lt;/span&gt;String args[] &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;-console&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;2000&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;; 
&lt;span class=&quot;gutter&quot;&gt;   2:&lt;/span&gt;BundleContext ctx &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; org.eclipse.core.runtime.adaptor.EclipseStarter.&lt;span class=&quot;syntax6&quot;&gt;startup&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt; args, &lt;span class=&quot;syntax14&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;   3:&lt;/span&gt;Bundle b &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; ctx.&lt;span class=&quot;syntax6&quot;&gt;installBundle&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;file://home/rafsob/bundlerepository/testbundle.jar&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;   4:&lt;/span&gt;b.&lt;span class=&quot;syntax6&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;/span&gt;&lt;/pre&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;/div&gt;
&lt;p&gt;
Eine ausführliche Beschreibung der Einbettung des Felix OSGI Server&#39;s kann man auf der Apache Felix Seite finden &lt;a href=&quot;http://felix.apache.org/site/launching-and-embedding-apache-felix.html&quot;/&gt;Launching and Embedding Apache Felix&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
Zusammenfassend kann ich sagen, dass die Einbettung des Equinoxservers kaum dokumentiert ist. Bzw. ich nicht die Richtige Stelle im Internet gefunden habe. :-)
&lt;/p&gt;
&lt;p&gt;
Der Felixcontainer scheint mir hier einfacher und besser dokumentiert.
&lt;/p&gt;
Viele Grüße&lt;br/&gt;
Rafael Sobek


</description>
            <guid>http://www.developers-blog.org/blog/default/2008/09/17/OSGI-Embedded-Container</guid>
			<pubDate>Wed, 17 Sep 2008 22:17:32 +0000</pubDate>
            <category>/uncategorized/</category>
                                </item>
                        <item>
            <title>Camel-Routen visualisieren</title>
            <link>http://www.developers-blog.org/blog/default/2008/09/15/Camel-Routen-visualisieren</link>
            <description>&lt;p&gt;&lt;img src=&quot;/resources/default/routes2.png&quot;/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Neuesten Stand der Camel-Sourcen holen und bauen&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
Wir werden jetzt kleinere Features von Camel benutzen, die es im Release 1.4.0 noch nicht gibt (z.B. den Ablageort des Camel-Contextes zu konfigurieren). Deshalb ist es Zeit, die Camel-Sourcen auszuchecken und die aktuelle Version selbst zu bauen:
&lt;/p&gt;&lt;p&gt;&lt;em&gt;svn co https://svn.apache.org/repos/asf/activemq/camel/trunk camel&lt;br /&gt;
set MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=128m&lt;br /&gt;
mvn install -Dtest=false&lt;/em&gt;&lt;br /&gt;
(vgl. &lt;a href=&quot;http://activemq.apache.org/camel/building.html&quot;&gt;http://activemq.apache.org/camel/building.html&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Das dauert eine Weile. In der Zwischenzeit können wir unser Projekt anpassen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. POM anpassen&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Zunächst zentralisieren wir die Camel-Versionsangabe an einer Stelle, damit wir bei der nächsten Versionsänderung nur diese anpassen müssen. Dazu fügen wir der POM auf Hauptebene diesen Eintrag hinzu:&lt;/p&gt;
&lt;p&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;property.xml&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;&lt;!--
.syntax0 {
color: #000000;
}
.syntax1 {
color: #cc0000;
}
.syntax2 {
color: #ff8400;
}
.syntax3 {
color: #6600cc;
}
.syntax4 {
color: #cc6600;
}
.syntax5 {
color: #ff0000;
}
.syntax6 {
color: #9966ff;
}
.syntax7 {
background: #ffffcc;
color: #ff0066;
}
.syntax8 {
color: #006699;
font-weight: bold;
}
.syntax9 {
color: #009966;
font-weight: bold;
}
.syntax10 {
color: #0099ff;
font-weight: bold;
}
.syntax11 {
color: #66ccff;
font-weight: bold;
}
.syntax12 {
color: #02b902;
}
.syntax13 {
color: #ff00cc;
}
.syntax14 {
color: #cc00cc;
}
.syntax15 {
color: #9900cc;
}
.syntax16 {
color: #6600cc;
}
.syntax17 {
color: #0000ff;
}
.syntax18 {
color: #000000;
font-weight: bold;
}
.gutter {
background: #dbdbdb;
color: #000000;
}
.gutterH {
background: #dbdbdb;
color: #990066;
}
--&gt;&lt;/style&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot;&gt;
&lt;pre&gt;&lt;span class=&quot;syntax0&quot;&gt;&lt;span class=&quot;gutter&quot;&gt;   1:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;properties&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   2:&lt;/span&gt;        &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;camel&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;version&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;1.5-SNAPSHOT&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;camel&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;version&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   3:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;properties&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;/p&gt;
&lt;p&gt;
Nun können wir alle Vorkommen der Camel-Versionsnummer durch eine Referenz auf diese Property (&lt;em&gt;${camel.version}&lt;/em&gt;) ersetzen, im vi z.B. mittels &lt;br /&gt;&lt;em&gt;%s,1.4.0,${camel.version},g&lt;/em&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Wir ergänzen folgende Dependency, damit das Maven Camel-Plugin den Spring-Kontext laden kann:
&lt;/p&gt;
&lt;p&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;dependency.xml&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;&lt;!--
.syntax0 {
color: #000000;
}
.syntax1 {
color: #cc0000;
}
.syntax2 {
color: #ff8400;
}
.syntax3 {
color: #6600cc;
}
.syntax4 {
color: #cc6600;
}
.syntax5 {
color: #ff0000;
}
.syntax6 {
color: #9966ff;
}
.syntax7 {
background: #ffffcc;
color: #ff0066;
}
.syntax8 {
color: #006699;
font-weight: bold;
}
.syntax9 {
color: #009966;
font-weight: bold;
}
.syntax10 {
color: #0099ff;
font-weight: bold;
}
.syntax11 {
color: #66ccff;
font-weight: bold;
}
.syntax12 {
color: #02b902;
}
.syntax13 {
color: #ff00cc;
}
.syntax14 {
color: #cc00cc;
}
.syntax15 {
color: #9900cc;
}
.syntax16 {
color: #6600cc;
}
.syntax17 {
color: #0000ff;
}
.syntax18 {
color: #000000;
font-weight: bold;
}
.gutter {
background: #dbdbdb;
color: #000000;
}
.gutterH {
background: #dbdbdb;
color: #990066;
}
--&gt;&lt;/style&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot;&gt;
&lt;pre&gt;&lt;span class=&quot;syntax0&quot;&gt;&lt;span class=&quot;gutter&quot;&gt;   1:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;dependency&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   2:&lt;/span&gt;        &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;groupId&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;org.apache.camel&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;groupId&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   3:&lt;/span&gt;        &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;artifactId&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;camel-spring&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;artifactId&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   4:&lt;/span&gt;        &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;version&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;${camel.version}&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;version&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;   5:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;dependency&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   6:&lt;/span&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;/p&gt;
&lt;p&gt;
In den &lt;em&gt;&amp;lt;build&gt;&amp;lt;plugins&gt;&lt;/em&gt;-Abschnitt fügen wir diese Konfiguration ein:
&lt;/p&gt;
&lt;p&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;plugin-eintrag-build.xml&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;&lt;!--
.syntax0 {
color: #000000;
}
.syntax1 {
color: #cc0000;
}
.syntax2 {
color: #ff8400;
}
.syntax3 {
color: #6600cc;
}
.syntax4 {
color: #cc6600;
}
.syntax5 {
color: #ff0000;
}
.syntax6 {
color: #9966ff;
}
.syntax7 {
background: #ffffcc;
color: #ff0066;
}
.syntax8 {
color: #006699;
font-weight: bold;
}
.syntax9 {
color: #009966;
font-weight: bold;
}
.syntax10 {
color: #0099ff;
font-weight: bold;
}
.syntax11 {
color: #66ccff;
font-weight: bold;
}
.syntax12 {
color: #02b902;
}
.syntax13 {
color: #ff00cc;
}
.syntax14 {
color: #cc00cc;
}
.syntax15 {
color: #9900cc;
}
.syntax16 {
color: #6600cc;
}
.syntax17 {
color: #0000ff;
}
.syntax18 {
color: #000000;
font-weight: bold;
}
.gutter {
background: #dbdbdb;
color: #000000;
}
.gutterH {
background: #dbdbdb;
color: #990066;
}
--&gt;&lt;/style&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot;&gt;
&lt;pre&gt;&lt;span class=&quot;syntax0&quot;&gt;&lt;span class=&quot;gutter&quot;&gt;   1:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;plugin&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   2:&lt;/span&gt;        &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;groupId&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;org.apache.camel&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;groupId&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   3:&lt;/span&gt;        &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;artifactId&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;camel-maven-plugin&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;artifactId&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   4:&lt;/span&gt;        &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;version&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;${camel.version}&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;version&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;   5:&lt;/span&gt;        &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;configuration&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   6:&lt;/span&gt;                &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;fileApplicationContextUri&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;src/main/webapp/WEB-INF/spring-context.xml&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;fileApplicationContextUri&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   7:&lt;/span&gt;        &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;configuration&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   8:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;plugin&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   9:&lt;/span&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;/p&gt;
&lt;p&gt;
Der Parameter &lt;em&gt;&amp;lt;fileApplicationContextUri&gt;&lt;/em&gt; ist einer der Gründe, warum Camel 1.5 benötigt wird (dieser Code wurde von den Camel-Entwicklern am 1. September 2008 eingebaut).
&lt;/p&gt;
&lt;p&gt;
Außerdem fügen wir einen Reporting-Abschnitt ein:
&lt;/p&gt;
&lt;p&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;plugin-eintrag-reporting.xml&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;&lt;!--
.syntax0 {
color: #000000;
}
.syntax1 {
color: #cc0000;
}
.syntax2 {
color: #ff8400;
}
.syntax3 {
color: #6600cc;
}
.syntax4 {
color: #cc6600;
}
.syntax5 {
color: #ff0000;
}
.syntax6 {
color: #9966ff;
}
.syntax7 {
background: #ffffcc;
color: #ff0066;
}
.syntax8 {
color: #006699;
font-weight: bold;
}
.syntax9 {
color: #009966;
font-weight: bold;
}
.syntax10 {
color: #0099ff;
font-weight: bold;
}
.syntax11 {
color: #66ccff;
font-weight: bold;
}
.syntax12 {
color: #02b902;
}
.syntax13 {
color: #ff00cc;
}
.syntax14 {
color: #cc00cc;
}
.syntax15 {
color: #9900cc;
}
.syntax16 {
color: #6600cc;
}
.syntax17 {
color: #0000ff;
}
.syntax18 {
color: #000000;
font-weight: bold;
}
.gutter {
background: #dbdbdb;
color: #000000;
}
.gutterH {
background: #dbdbdb;
color: #990066;
}
--&gt;&lt;/style&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot;&gt;
&lt;pre&gt;&lt;span class=&quot;syntax0&quot;&gt;&lt;span class=&quot;gutter&quot;&gt;   1:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;reporting&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   2:&lt;/span&gt;        &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;plugins&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   3:&lt;/span&gt;                &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;plugin&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   4:&lt;/span&gt;                        &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;groupId&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;org.apache.camel&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;groupId&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;   5:&lt;/span&gt;                        &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;artifactId&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;camel-maven-plugin&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;artifactId&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   6:&lt;/span&gt;                        &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;version&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;${camel.version}&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;version&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   7:&lt;/span&gt;                &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;plugin&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   8:&lt;/span&gt;        &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;plugins&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   9:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;reporting&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  10:&lt;/span&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;/p&gt;
&lt;p&gt;Damit sind die Vorbereitungen abgeschlossen und wir können die Visualisierung der Route erstellen. 
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Visualisierung der Route mit GraphViz&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
Sobald Maven mit dem Kompilieren und Installieren von Camel 1.5-SNAPSHOT fertig ist, können wir mit &lt;em&gt;mvn camel:dot&lt;/em&gt; eine graphische Repräsentation der Route erstellen. Dazu muss &lt;em&gt;dot&lt;/em&gt; auf dem Rechner installiert sein (Doku dazu findet sich unter &lt;a href=&quot;http://activemq.apache.org/camel/camel-maven-plugin.html&quot;&gt;http://activemq.apache.org/camel/camel-maven-plugin.html&lt;/a&gt; und &lt;a href=&quot;http://activemq.apache.org/camel/visualisation.html&quot;&gt;http://activemq.apache.org/camel/visualisation.html&lt;/a&gt;). Die graphische Darstellung der Route wird nach &lt;em&gt;target/site/cameldoc&lt;/em&gt; generiert und sieht zunächst so aus: &lt;img src=&quot;/resources/default/routes.png&quot;/&gt;
&lt;/p&gt;
&lt;p&gt;Das ist weder sehr schön noch besonders praktikabel; aber da Camel GraphViz benutzt, kann man die Routen mit relativ wenig Aufwand nachbearbeiten. Die Datei &lt;em&gt; target/site/cameldoc/routes.dot&lt;/em&gt; sieht etwa so aus:&lt;/p&gt;
&lt;p&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;routes.dot&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;&lt;!--
.syntax0 {
color: #000000;
}
.syntax1 {
color: #cc0000;
}
.syntax2 {
color: #ff8400;
}
.syntax3 {
color: #6600cc;
}
.syntax4 {
color: #cc6600;
}
.syntax5 {
color: #ff0000;
}
.syntax6 {
color: #9966ff;
}
.syntax7 {
background: #ffffcc;
color: #ff0066;
}
.syntax8 {
color: #006699;
font-weight: bold;
}
.syntax9 {
color: #009966;
font-weight: bold;
}
.syntax10 {
color: #0099ff;
font-weight: bold;
}
.syntax11 {
color: #66ccff;
font-weight: bold;
}
.syntax12 {
color: #02b902;
}
.syntax13 {
color: #ff00cc;
}
.syntax14 {
color: #cc00cc;
}
.syntax15 {
color: #9900cc;
}
.syntax16 {
color: #6600cc;
}
.syntax17 {
color: #0000ff;
}
.syntax18 {
color: #000000;
font-weight: bold;
}
.gutter {
background: #dbdbdb;
color: #000000;
}
.gutterH {
background: #dbdbdb;
color: #990066;
}
--&gt;&lt;/style&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot;&gt;
&lt;pre&gt;&lt;span class=&quot;syntax0&quot;&gt;&lt;span class=&quot;gutter&quot;&gt;   1:&lt;/span&gt;digraph CamelRoutes {
&lt;span class=&quot;gutter&quot;&gt;   2:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   3:&lt;/span&gt;node [style = &amp;quot;rounded,filled&amp;quot;, fillcolor = yellow, fontname=&amp;quot;Helvetica-Oblique&amp;quot;];
&lt;span class=&quot;gutter&quot;&gt;   4:&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;   5:&lt;/span&gt;subgraph cluster_0 {
&lt;span class=&quot;gutter&quot;&gt;   6:&lt;/span&gt;label = &amp;quot;Camel Routes&amp;quot;;
&lt;span class=&quot;gutter&quot;&gt;   7:&lt;/span&gt;color = grey;
&lt;span class=&quot;gutter&quot;&gt;   8:&lt;/span&gt;style = &amp;quot;dashed&amp;quot;;
&lt;span class=&quot;gutter&quot;&gt;   9:&lt;/span&gt;URL = &amp;quot;Camel Routes.html&amp;quot;;
&lt;span class=&quot;gutterH&quot;&gt;  10:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  11:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  12:&lt;/span&gt;node1 [
&lt;span class=&quot;gutter&quot;&gt;  13:&lt;/span&gt;label = &amp;quot;cxf:bean:helloEndpoint&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  14:&lt;/span&gt;tooltip = &amp;quot;cxf:bean:helloEndpoint&amp;quot;
&lt;span class=&quot;gutterH&quot;&gt;  15:&lt;/span&gt;URL = &amp;quot;http://activemq.apache.org/camel/message-endpoint.html&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  16:&lt;/span&gt;];
&lt;span class=&quot;gutter&quot;&gt;  17:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  18:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  19:&lt;/span&gt;node2 [
&lt;span class=&quot;gutterH&quot;&gt;  20:&lt;/span&gt;label = &amp;quot;Interceptor Ref&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  21:&lt;/span&gt;tooltip = &amp;quot;Interceptor Ref: Delegate(DeadLetterChannel[Delegate(TraceInterceptor[To[bean:myCamelProcessor]]), RecipientList[log:org.apache.camel.DeadLetterChannel?level=error], RedeliveryPolicy[maximumRedeliveries=5, initialRedeliveryDelay=1000, maximumRedeliveryDelay=60000, useExponentialBackOff=false, backOffMultiplier=2.0, useCollisionAvoidance=false, collisionAvoidanceFactor=0.15]])&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  22:&lt;/span&gt;URL = &amp;quot;http://activemq.apache.org/camel/interceptor-ref.html&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  23:&lt;/span&gt;shape = &amp;quot;box&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  24:&lt;/span&gt;];
&lt;span class=&quot;gutterH&quot;&gt;  25:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  26:&lt;/span&gt;node1 -&amp;gt; node2 [
&lt;span class=&quot;gutter&quot;&gt;  27:&lt;/span&gt;];
&lt;span class=&quot;gutter&quot;&gt;  28:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  29:&lt;/span&gt;node3 [
&lt;span class=&quot;gutterH&quot;&gt;  30:&lt;/span&gt;label = &amp;quot;bean:myCamelProcessor&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  31:&lt;/span&gt;tooltip = &amp;quot;bean:myCamelProcessor&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  32:&lt;/span&gt;URL = &amp;quot;http://activemq.apache.org/camel/message-endpoint.html&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  33:&lt;/span&gt;];
&lt;span class=&quot;gutter&quot;&gt;  34:&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  35:&lt;/span&gt;node2 -&amp;gt; node3 [
&lt;span class=&quot;gutter&quot;&gt;  36:&lt;/span&gt;label = &amp;quot;Delegate(DeadLetterChannel[Delegate(TraceInterceptor[To[bean:myCamelProcessor]]), RecipientList[log:org.apache.camel.DeadLetterChannel?level=error], RedeliveryPolicy[maximumRedeliveries=5, initialRedeliveryDelay=1000, maximumRedeliveryDelay=60000, useExponentialBackOff=false, backOffMultiplier=2.0, useCollisionAvoidance=false, collisionAvoidanceFactor=0.15]])&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  37:&lt;/span&gt;];
&lt;span class=&quot;gutter&quot;&gt;  38:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  39:&lt;/span&gt;}
&lt;span class=&quot;gutterH&quot;&gt;  40:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  41:&lt;/span&gt;}
&lt;/span&gt;&lt;/pre&gt;
&lt;/body&gt;
&lt;/html&gt;

&lt;/p&gt;
&lt;p&gt;
Die Labels sind etwas geschwätzig; das läßt sich jedoch leicht ändern, indem man den Text großzügig kürzt. Außerdem kann man von &lt;a href=&quot;http://activemq.apache.org/camel/images/eip/&quot;&gt;http://activemq.apache.org/camel/images/eip/&lt;/a&gt; die passenden Bildchen herunterladen und mit &lt;em&gt;image = &quot;&amp;lt;Pfad im Dateisystem&gt;&lt;/em&gt; in die Grafik einarbeiten (GraphViz kann leider aktuell nicht mit HTTP-URLs umgehen). Die resultierende Datei sieht z.B. so aus:
&lt;/p&gt;
&lt;p&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;routes.dot&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;&lt;!--
.syntax0 {
color: #000000;
}
.syntax1 {
color: #cc0000;
}
.syntax2 {
color: #ff8400;
}
.syntax3 {
color: #6600cc;
}
.syntax4 {
color: #cc6600;
}
.syntax5 {
color: #ff0000;
}
.syntax6 {
color: #9966ff;
}
.syntax7 {
background: #ffffcc;
color: #ff0066;
}
.syntax8 {
color: #006699;
font-weight: bold;
}
.syntax9 {
color: #009966;
font-weight: bold;
}
.syntax10 {
color: #0099ff;
font-weight: bold;
}
.syntax11 {
color: #66ccff;
font-weight: bold;
}
.syntax12 {
color: #02b902;
}
.syntax13 {
color: #ff00cc;
}
.syntax14 {
color: #cc00cc;
}
.syntax15 {
color: #9900cc;
}
.syntax16 {
color: #6600cc;
}
.syntax17 {
color: #0000ff;
}
.syntax18 {
color: #000000;
font-weight: bold;
}
.gutter {
background: #dbdbdb;
color: #000000;
}
.gutterH {
background: #dbdbdb;
color: #990066;
}
--&gt;&lt;/style&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot;&gt;
&lt;pre&gt;&lt;span class=&quot;syntax0&quot;&gt;&lt;span class=&quot;gutter&quot;&gt;   1:&lt;/span&gt;digraph CamelRoutes {
&lt;span class=&quot;gutter&quot;&gt;   2:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   3:&lt;/span&gt;node [fontname=&amp;quot;Helvetica-Oblique&amp;quot;, fontsize=&amp;quot;10&amp;quot;, fontcolor=&amp;quot;red&amp;quot;];
&lt;span class=&quot;gutter&quot;&gt;   4:&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;   5:&lt;/span&gt;subgraph cluster_0 {
&lt;span class=&quot;gutter&quot;&gt;   6:&lt;/span&gt;label = &amp;quot;Camel Routes&amp;quot;;
&lt;span class=&quot;gutter&quot;&gt;   7:&lt;/span&gt;color = grey;
&lt;span class=&quot;gutter&quot;&gt;   8:&lt;/span&gt;style = &amp;quot;dashed&amp;quot;;
&lt;span class=&quot;gutter&quot;&gt;   9:&lt;/span&gt;URL = &amp;quot;Camel Routes.html&amp;quot;;
&lt;span class=&quot;gutterH&quot;&gt;  10:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  11:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  12:&lt;/span&gt;node1 [
&lt;span class=&quot;gutter&quot;&gt;  13:&lt;/span&gt;label = &amp;quot;cxf:bean:helloEndpoint&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  14:&lt;/span&gt;labelloc = &amp;quot;t&amp;quot;
&lt;span class=&quot;gutterH&quot;&gt;  15:&lt;/span&gt;tooltip = &amp;quot;cxf:bean:helloEndpoint&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  16:&lt;/span&gt;URL = &amp;quot;http://activemq.apache.org/camel/message-endpoint.html&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  17:&lt;/span&gt;shape = &amp;quot;box&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  18:&lt;/span&gt;image = &amp;quot;images/MessageEndpointIcon.png&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  19:&lt;/span&gt;];
&lt;span class=&quot;gutterH&quot;&gt;  20:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  21:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  22:&lt;/span&gt;node2 [
&lt;span class=&quot;gutter&quot;&gt;  23:&lt;/span&gt;label = &amp;quot;Interceptor Ref&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  24:&lt;/span&gt;tooltip = &amp;quot;TraceInterceptor&amp;quot;
&lt;span class=&quot;gutterH&quot;&gt;  25:&lt;/span&gt;URL = &amp;quot;http://activemq.apache.org/camel/interceptor-ref.html&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  26:&lt;/span&gt;shape = &amp;quot;box&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  27:&lt;/span&gt;image = &amp;quot;images/WireTapIcon.png&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  28:&lt;/span&gt;];
&lt;span class=&quot;gutter&quot;&gt;  29:&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  30:&lt;/span&gt;node1 -&amp;gt; node2 [
&lt;span class=&quot;gutter&quot;&gt;  31:&lt;/span&gt;label = &amp;quot;Logging&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  32:&lt;/span&gt;];
&lt;span class=&quot;gutter&quot;&gt;  33:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  34:&lt;/span&gt;node3 [
&lt;span class=&quot;gutterH&quot;&gt;  35:&lt;/span&gt;label = &amp;quot;bean:myCamelProcessor&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  36:&lt;/span&gt;tooltip = &amp;quot;bean:myCamelProcessor&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  37:&lt;/span&gt;URL = &amp;quot;http://activemq.apache.org/camel/message-endpoint.html&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  38:&lt;/span&gt;shape = &amp;quot;box&amp;quot;
&lt;span class=&quot;gutter&quot;&gt;  39:&lt;/span&gt;image = &amp;quot;images/MessageTranslatorIcon.png&amp;quot;
&lt;span class=&quot;gutterH&quot;&gt;  40:&lt;/span&gt;];
&lt;span class=&quot;gutter&quot;&gt;  41:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  42:&lt;/span&gt;node2 -&amp;gt; node3 [
&lt;span class=&quot;gutter&quot;&gt;  43:&lt;/span&gt;];
&lt;span class=&quot;gutter&quot;&gt;  44:&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  45:&lt;/span&gt;}
&lt;span class=&quot;gutter&quot;&gt;  46:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  47:&lt;/span&gt;}
&lt;/span&gt;&lt;/pre&gt;
&lt;/body&gt;
&lt;/html&gt;

&lt;/p&gt;
&lt;p&gt;Und das Bildchen, das dabei herauskommt, kann sich schon eher sehen lassen. &lt;img src=&quot;/resources/default/routes2.png&quot;/&gt;
&lt;/p&gt;
</description>
            <guid>http://www.developers-blog.org/blog/default/2008/09/15/Camel-Routen-visualisieren</guid>
			<pubDate>Mon, 15 Sep 2008 21:16:58 +0000</pubDate>
            <category>/SOA/</category>
                                </item>
                        <item>
            <title>SOAP Service Testing</title>
            <link>http://www.developers-blog.org/blog/default/2008/09/12/SOAP-Service-Testing</link>
            <description>&lt;p&gt;
Recently I looked for an easy and trivial way for testing webservices at junit 
tests. One way is the jetty servlet container which is runnable as ambedded server at java source code.
&lt;/p&gt;
&lt;p&gt;
&lt;div style=&quot;text-align:center&quot;&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.developers-blog.org//resources/default/trivial-webservice-testing.png&quot; align=&quot;center&quot;/&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;(1) First you have to define the content of your soap request. An example could be:&lt;/b&gt;
&lt;/p&gt;
&lt;div style=&quot;font-size:8px;overflow:auto;&quot; &gt;
&lt;style type=&quot;text/css&quot;&gt;&lt;!--
.syntax0 {
color: #000000;
}
.syntax1 {
color: #cc0000;
}
.syntax2 {
color: #ff8400;
}
.syntax3 {
color: #6600cc;
}
.syntax4 {
color: #cc6600;
}
.syntax5 {
color: #ff0000;
}
.syntax6 {
color: #9966ff;
}
.syntax7 {
background: #ffffcc;
color: #ff0066;
}
.syntax8 {
color: #006699;
font-weight: bold;
}
.syntax9 {
color: #009966;
font-weight: bold;
}
.syntax10 {
color: #0099ff;
font-weight: bold;
}
.syntax11 {
color: #66ccff;
font-weight: bold;
}
.syntax12 {
color: #02b902;
}
.syntax13 {
color: #ff00cc;
}
.syntax14 {
color: #cc00cc;
}
.syntax15 {
color: #9900cc;
}
.syntax16 {
color: #6600cc;
}
.syntax17 {
color: #0000ff;
}
.syntax18 {
color: #000000;
font-weight: bold;
}
.gutter {
background: #dbdbdb;
color: #000000;
}
.gutterH {
background: #dbdbdb;
color: #990066;
}
--&gt;&lt;/style&gt;
&lt;pre&gt;&lt;span class=&quot;syntax0&quot;&gt;&lt;span class=&quot;gutter&quot;&gt;   1:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;soapenv&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;Envelope&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   2:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;xmlns&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;soapenv&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;http://schemas.xmlsoap.org/soap/envelope/&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   3:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;xmlns&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;xsd&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   4:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;xmlns&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;xsi&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;   5:&lt;/span&gt;  &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;soapenv&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;Body&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   6:&lt;/span&gt;    &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;ns1&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;sayHello&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;soapenv&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;encodingStyle&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;http://schemas.xmlsoap.org/soap/encoding/&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;xmlns&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;ns1&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;http://127.0.0.1:40406/hello&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   7:&lt;/span&gt;      &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;integer&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;#id0&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   8:&lt;/span&gt;    &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;ns1&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;sayHello&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   9:&lt;/span&gt;    &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;multiRef&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;id0&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;soapenc&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;root&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;soapenv&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;encodingStyle&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;http://schemas.xmlsoap.org/soap/encoding/&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;  10:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;xsi&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;xsd:long&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;xmlns&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;soapenc&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;http://schemas.xmlsoap.org/soap/encoding/&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;Rafael&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;multiRef&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  11:&lt;/span&gt;  &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;soapenv&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;Body&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;  12:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;soapenv&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;Envelope&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;b&gt;(2) Equivalent Axis Service Call mechanism, that generates the soap content above:&lt;/b&gt;
&lt;/p&gt;
&lt;div  style=&quot;font-size:8px;overflow:auto;&quot; &gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;JavaCall.java&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;&lt;!--
.syntax0 {
color: #000000;
}
.syntax1 {
color: #cc0000;
}
.syntax2 {
color: #ff8400;
}
.syntax3 {
color: #6600cc;
}
.syntax4 {
color: #cc6600;
}
.syntax5 {
color: #ff0000;
}
.syntax6 {
color: #9966ff;
}
.syntax7 {
background: #ffffcc;
color: #ff0066;
}
.syntax8 {
color: #006699;
font-weight: bold;
}
.syntax9 {
color: #009966;
font-weight: bold;
}
.syntax10 {
color: #0099ff;
font-weight: bold;
}
.syntax11 {
color: #66ccff;
font-weight: bold;
}
.syntax12 {
color: #02b902;
}
.syntax13 {
color: #ff00cc;
}
.syntax14 {
color: #cc00cc;
}
.syntax15 {
color: #9900cc;
}
.syntax16 {
color: #6600cc;
}
.syntax17 {
color: #0000ff;
}
.syntax18 {
color: #000000;
font-weight: bold;
}
.gutter {
background: #dbdbdb;
color: #000000;
}
.gutterH {
background: #dbdbdb;
color: #990066;
}
--&gt;&lt;/style&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot;&gt;
&lt;pre&gt;&lt;span class=&quot;syntax0&quot;&gt;&lt;span class=&quot;gutter&quot;&gt;   1:&lt;/span&gt;Call c &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;syntax8&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;syntax6&quot;&gt;Call&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;serviceURL &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;/hello&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;   2:&lt;/span&gt;c.&lt;span class=&quot;syntax6&quot;&gt;addParameter&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;syntax8&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;syntax6&quot;&gt;QName&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;, ParameterMode.IN&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;   3:&lt;/span&gt;c.&lt;span class=&quot;syntax6&quot;&gt;setReturnType&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax8&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;syntax6&quot;&gt;QName&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;serviceURL &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;/Server&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutter&quot;&gt;   4:&lt;/span&gt;Object o &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; c.&lt;span class=&quot;syntax6&quot;&gt;invoke&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;serviceURL &lt;span class=&quot;syntax18&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;/hello&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;sayHello&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;syntax8&quot;&gt;new&lt;/span&gt; String[]&lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;Rafael&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;gutterH&quot;&gt;   5:&lt;/span&gt;String returnString &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; o.&lt;span class=&quot;syntax6&quot;&gt;toString&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;;
&lt;/span&gt;&lt;/pre&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;b&gt;(3) Second you define the response soap content. An example could be:&lt;/b&gt;
&lt;/p&gt;
&lt;div style=&quot;font-size:8px;overflow:auto;&quot; &gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;soap-response.xml&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;&lt;!--
.syntax0 {
color: #000000;
}
.syntax1 {
color: #cc0000;
}
.syntax2 {
color: #ff8400;
}
.syntax3 {
color: #6600cc;
}
.syntax4 {
color: #cc6600;
}
.syntax5 {
color: #ff0000;
}
.syntax6 {
color: #9966ff;
}
.syntax7 {
background: #ffffcc;
color: #ff0066;
}
.syntax8 {
color: #006699;
font-weight: bold;
}
.syntax9 {
color: #009966;
font-weight: bold;
}
.syntax10 {
color: #0099ff;
font-weight: bold;
}
.syntax11 {
color: #66ccff;
font-weight: bold;
}
.syntax12 {
color: #02b902;
}
.syntax13 {
color: #ff00cc;
}
.syntax14 {
color: #cc00cc;
}
.syntax15 {
color: #9900cc;
}
.syntax16 {
color: #6600cc;
}
.syntax17 {
color: #0000ff;
}
.syntax18 {
color: #000000;
font-weight: bold;
}
.gutter {
background: #dbdbdb;
color: #000000;
}
.gutterH {
background: #dbdbdb;
color: #990066;
}
--&gt;&lt;/style&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot;&gt;
&lt;pre&gt;&lt;span class=&quot;syntax0&quot;&gt;&lt;span class=&quot;gutter&quot;&gt;   1:&lt;/span&gt;&lt;span class=&quot;syntax10&quot;&gt;&amp;lt;?&lt;/span&gt;&lt;span class=&quot;syntax10&quot;&gt;xml&lt;/span&gt;&lt;span class=&quot;syntax10&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax10&quot;&gt;version=&amp;quot;1.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax10&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax10&quot;&gt;encoding=&amp;quot;UTF-8&amp;quot;?&lt;/span&gt;&lt;span class=&quot;syntax10&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   2:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;soapenv&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;Envelope&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;xmlns&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;soapenv&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;http://schemas.xmlsoap.org/soap/envelope/&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;xmlns&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;xsd&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;xmlns&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;xsi&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   3:&lt;/span&gt;        &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;soapenv&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;Body&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   4:&lt;/span&gt;                &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;ns1&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;sayHello&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;soapenv&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;encodingStyle&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;http://schemas.xmlsoap.org/soap/encoding/&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;xmlns&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;ns1&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;http://127.0.0.1:40406/hello&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;   5:&lt;/span&gt;                        &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;hello&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;#id0&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   6:&lt;/span&gt;                &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;ns1&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;sayHello&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   7:&lt;/span&gt;                &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;multiRef&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;id0&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;soapenc&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;root&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;soapenv&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;encodingStyle&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;http://schemas.xmlsoap.org/soap/encoding/&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;xsi&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;xsd:string&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt; &lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;xmlns&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;soapenc&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;http://schemas.xmlsoap.org/soap/encoding/&lt;/span&gt;&lt;span class=&quot;syntax13&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;Server: Hello Rafael&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;multiRef&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   8:&lt;/span&gt;        &lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;soapenv&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;Body&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   9:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;syntax12&quot;&gt;soapenv&lt;/span&gt;&lt;span class=&quot;syntax18&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;Envelope&lt;/span&gt;&lt;span class=&quot;syntax17&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;b&gt;(4) Then you implement a simple servlet, which generated the expected response which generic content:&lt;/b&gt;
&lt;/p&gt;
&lt;div style=&quot;font-size:8px;overflow:auto;&quot; &gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;ServletTest.java&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;&lt;!--
.syntax0 {
color: #000000;
}
.syntax1 {
color: #cc0000;
}
.syntax2 {
color: #ff8400;
}
.syntax3 {
color: #6600cc;
}
.syntax4 {
color: #cc6600;
}
.syntax5 {
color: #ff0000;
}
.syntax6 {
color: #9966ff;
}
.syntax7 {
background: #ffffcc;
color: #ff0066;
}
.syntax8 {
color: #006699;
font-weight: bold;
}
.syntax9 {
color: #009966;
font-weight: bold;
}
.syntax10 {
color: #0099ff;
font-weight: bold;
}
.syntax11 {
color: #66ccff;
font-weight: bold;
}
.syntax12 {
color: #02b902;
}
.syntax13 {
color: #ff00cc;
}
.syntax14 {
color: #cc00cc;
}
.syntax15 {
color: #9900cc;
}
.syntax16 {
color: #6600cc;
}
.syntax17 {
color: #0000ff;
}
.syntax18 {
color: #000000;
font-weight: bold;
}
.gutter {
background: #dbdbdb;
color: #000000;
}
.gutterH {
background: #dbdbdb;
color: #990066;
}
--&gt;&lt;/style&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot;&gt;
&lt;pre&gt;&lt;span class=&quot;syntax0&quot;&gt;&lt;span class=&quot;gutter&quot;&gt;   1:&lt;/span&gt;&lt;span class=&quot;syntax8&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;syntax10&quot;&gt;class&lt;/span&gt; SimpleServlet &lt;span class=&quot;syntax8&quot;&gt;extends&lt;/span&gt; HttpServlet &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt; 
&lt;span class=&quot;gutter&quot;&gt;   2:&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   3:&lt;/span&gt;    &lt;span class=&quot;syntax8&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;syntax10&quot;&gt;void&lt;/span&gt; doProcess &lt;span class=&quot;syntax18&quot;&gt;(&lt;/span&gt;HttpServletRequest req, HttpServletResponse res&lt;span class=&quot;syntax18&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;gutter&quot;&gt;   4:&lt;/span&gt;        &lt;span class=&quot;syntax8&quot;&gt;throws&lt;/span&gt; ServletException, IOException &lt;span class=&quot;syntax18&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;gutterH&quot;&gt;   5:&lt;/span&gt;        ServletOutputStream out &lt;span class=&quot;syntax18&quot;&gt;=&lt;/span&gt; res.&lt;span class=&quot;syntax6&quot;&gt;getOutputStream&lt;/span&gt;&lt;span class=&quot;syntax18&q