buildframework/helium/doc/src/manual/messaging.rst
changeset 628 7c4a911dc066
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/buildframework/helium/doc/src/manual/messaging.rst	Fri Aug 13 14:59:05 2010 +0300
@@ -0,0 +1,92 @@
+Messaging
+=========
+
+Currently the communication to external services (diamonds, ats, internal logging framework)
+are done within helium as REST / SOAP client, which is not scalable and had limitations
+and lot of overheads in terms communication with those external services.
+
+ 
+
+Overview
+--------
+
+The messaging framework is aimed to address this issue by defining
+the input using which the data is exchanged to the external system. Currently the
+main focus is to define the input format for the messaging framework and to work with
+existing framework. In the future directly interact with the messaging system to exchange
+data to the external system.
+
+Currently there are three types of messages could be defined, which works with
+existing system to send data to diamonds.
+
+Text Message
+~~~~~~~~~~~~
+
+Any text message to be sent to the diamonds could be possible with the message type
+definition. Example to use it as below,
+
+
+.. code-block:: xml
+
+      <hlm:textMessage id="initial-message" text="<diamonds-build>
+    <schema>21</schema><build>
+    <category>ido_BtDo_tb101-release_btservices_sbs-ec</category>
+    <name>IDO_BtDo_tb101-release_btservices_10.1.69</name>
+    <started>2010-08-04T13:23:54</started></build></diamonds-build>" />
+
+File Message
+~~~~~~~~~~~~
+
+Any file which needs to be sent using messaging framework could be defined 
+using file message. Example to use it as below,
+
+.. code-block:: xml
+
+      <hlm:fileMessage id="initial-message" file="${build.output.dir}/initial-message.xml" />
+      
+Here the the attribute value for file attribute pointing to the file to be sent is forwarded
+to the destination.
+
+
+FMPP Message
+~~~~~~~~~~~~
+
+Any message generated by processing the fmpp template data could be defined using
+the fmpp message. Example is,
+
+.. code-block:: xml
+
+      <hlm:fmppMessage target="diamonds" sourceFile="tool.xml.ftl"&gt;
+          <data expandProperties="yes"&gt;
+          ant: antProperties()
+          </data>
+      </hlm:fmppMessage>
+      
+The above definition format is similar to fmpp conversion task, except that it has
+limitation to convert one file using the template. Before sending data, the input template
+is converted and an internal file message is created with the converted file path and 
+sent to the diamonds.
+
+TargetMessage Trigger
+~~~~~~~~~~~~~~~~~~~~~
+
+TargetMessageTrigger type maps a message to a particular target and could be used to
+send the input message for the target execution. Example is as below,
+
+
+.. code-block:: xml
+
+
+        <hlm:targetMessageTrigger id="codescanner.id" target="ido-codescanner">
+            <hlm:fmppMessage sourceFile="${helium.dir}/tools/common/templates/diamonds/codescanner.xml.ftl">
+                <data expandProperties="yes">
+                    ant: antProperties()
+                    doc: xml(${ido.codescanner.output.dir}/problemIndex.xml)
+                </data>
+            </hlm:fmppMessage>
+        </hlm:targetMessageTrigger>
+ 
+
+In the above example, the target ido-codescanner contains an fmpp message. When
+the target executes the target ido-codescanner at the end of execution which converts
+the input file using template and the output file is sent to diamonds.
\ No newline at end of file