|
Page Edited :
SM :
servicemix-exec
servicemix-exec has been edited by Lars Heinemann (May 07, 2009). Content:ServiceMix ExecServiceMix Exec component is used to invoke commands (executables, shell commands, shell scripts, ...). The command can be static (defined in the component endpoint descriptor) or dynamic (provided in the incoming message, including arguments).
InstallationSimply drop the servicemix-exec installer zip in an hotdeploy directory monitored by ServiceMix. How it worksServiceMix Exec service engine acts as a provider. It supports all MEP. When used with an InOnly MEP, the Exec component executes the command and set the exchange in DONE status. When used with an InOut MEP, the Exec components executes the command and get the command output buffer. The command output is put in the out message and send back in the exchange. Exec in message format<message> <command>ls</command> <arguments> <argument>-l</argument> <argument>/tmp</argument> </arguments> </message>
Exec out message formatWhen used with an InOut MEP, the Exec return the command execution output into the out message. The out message content looks like: <result> <started>1241756756376</started> <finished>1241756756390</finished> <duration>14</duration> <exitcode>0</exitcode> <output><![CDATA[ total 6729 -rw------- 1 jb jb 1693752 2009-04-09 09:07 f9G0lWzx.tar.part -rw-r--r-- 1 jb jb 8 2009-03-27 18:27 gnome-session-manager srwxr-xr-x 1 jb jb 0 2009-03-26 10:56 gnome-system-monitor.jb.3619273851 drwxr-xr-x 2 jb jb 1024 2009-04-23 08:43 hsperfdata_jb drwxr-xr-x 2 jboss java 1024 2009-04-17 12:46 hsperfdata_jboss drwxr-xr-x 2 weblogic java 1024 2009-04-17 09:40 hsperfdata_weblogic -rw-r--r-- 1 jb jb 870 2009-03-26 10:59 jbi12672.zip -rw-r--r-- 1 jb jb 870 2009-03-26 10:59 jbi12673.zip ]]></output> <error><![CDATA[ ]]></error> </result> What does the tags containstarted - contains the execution start time in millis (System.currentTimeMillis() is used) finished - contains the time the process execution finished in millis (System.currentTimeMillis() is used) duration - the duration in millis the execution took exitcode - the return code of the process (0 means all fine; != 0 means an error code) output - the contents of the output stream of the process error - the contents of the error stream of the process Some words on the output and error stream contents. It may happen that some information at the very beginning will get lost depending on how fast the stream listeners are set up and how fast the executed process will push information to it. EndpointThe Exec endpoint can be very simple, waiting for command contained in the in message: <beans xmlns="http://servicemix.apache.org/exec/1.0" xmlns:test="http://test"> <exec:endpoint service="test:MyService" endpoint="MyExec"/> </beans> You can define a fallback command if the incoming doesn't provide a command: <beans xmlns="http://servicemix.apache.org/exec/1.0" xmlns:test="http://test"> <exec:endpoint service="test:MyService" endpoint="MyExec" command="date"/> </beans>
|
Unsubscribe or edit your notifications preferences
