Difference between revisions of "GVExample TOUPPER A"

From GreenVulcano Wiki
Jump to: navigation, search
Line 14: Line 14:
 
# Expand the GVSystems item.
 
# Expand the GVSystems item.
 
# Right clicking on Systems, insert-after -> System. A new element System will be created.
 
# Right clicking on Systems, insert-after -> System. A new element System will be created.
# Set the [[System]] parameters in the [[VulCon_perspective|Properties panel]]. We named it GVESB
+
# Set the [[System]] parameters in the [[VulCon_perspective|Properties panel]]. We named it GVESB_TEST
 
# You can insert a new [[Channel]] right clicking the new [[System]] element -> Insert after (or Insert before) -> Channel*. A new Channel element will be created
 
# You can insert a new [[Channel]] right clicking the new [[System]] element -> Insert after (or Insert before) -> Channel*. A new Channel element will be created
 
# Click on this new Channel element and set the property ''id_channel''. We named it TEST_CHANNEL_A
 
# Click on this new Channel element and set the property ''id_channel''. We named it TEST_CHANNEL_A
Line 37: Line 37:
 
: transaction-status="TMSUCCESS"
 
: transaction-status="TMSUCCESS"
 
|-
 
|-
| test-service-call || name="toupper_call"
+
| [[test-service-call]] || name="toupper_call"
 
|}
 
|}
  
Line 57: Line 57:
 
[[File:NewServiceWizard.jpg|thumb|New {{GVESB}} Service Wizard]]Now we are able to use the Wizard.
 
[[File:NewServiceWizard.jpg|thumb|New {{GVESB}} Service Wizard]]Now we are able to use the Wizard.
 
# From the Core View of {{VULCON}}. Right click the element Services -> Wizard New Service
 
# From the Core View of {{VULCON}}. Right click the element Services -> Wizard New Service
# A new windows will be open where you can set the name of the Service you want to create, in this case we named TOUPPER_A, and your Group, we used DEFAULT_GRP. You can also select the paradigm, for this example will be [[Paradigms_of_communication#synchronous-asynchronous|synchronous-asynchronous]]. Click next.
+
# A new windows will be open where you can set the name of the Service you want to create, in this case we named TOUPPER_A, and your Group, we used DEFAULT_GRP. You can also select the paradigm, for this example will be [[Paradigms_of_communication#asynchronous-asynchronous|asynchronous-asynchronous]]. Click next.
# Set System as GVESB and Channel as TEST_CHANNEL_A. Then chose the Operation, in this case Test. Then finish.
+
# Set System as GVESB_TEST and Channel as TEST_CHANNEL_A. Then chose as Request Operation ''JMSEnqueueTo::TOUPPER_A_Req'', and the response Operation ''toupper_call''. Then finish.
  
  
[[File:TOUPPEREditor.jpg |thumb |TOUPPER flow]]As you can see from the core view, inside the Services element, a new Service named TOUPPER has been created. The editor will be open automatically, showing the nodes involved in our [[Flow]].
+
[[File:GvExamplesTOUPPER_AEditor.jpg |thumb |TOUPPER_A flow]]As you can see from the core view, inside the Services element, a new Service named TOUPPER_A has been created. This service contains two Operations:
* The [[Main_nodes|Start node]] sets the flow first node. In this case ''request''
+
We setted the first one as a Request (to enqueue), and the second as a GetReply (to dequeue).
* The [[Operations |Operation node]] ''request'' calls the ''test-service-call'' operation '''test''' and executes it.
+
Nodes will be setted as seen in the following table:
* A [[Main_nodes|Check node]] named ''check_status'' is also inserted for controlling the success of the preceding node.
+
{|class="gvtable"
* If ''success'' flow passes to the [[Main_nodes|End node]] ''return_status''
+
! Node !! Request !! GetReply
* In case of Error, flow goes to the [[Main_nodes|End node]] ''return_error''. The difference with ''return_status'' is signed by the [[Palette|Connection]] with ''check_status'' Check node. In this case an [[Palette|Error Connection]] (the Red arrow) have been used.
+
|-
* Save clicking the ''Save'' icon from the Core View
+
| GVOperationNode || output: output_JMSEnqueueTo::TOUPPER_A_Req<br/>
 +
id="request"<br/>
 +
id-system="GVESB_TEST"<br/>
 +
input="input_JMSEnqueueTo::TOUPPER_A_Req"<br/>
 +
next-node-id="check_status" op-type="enqueue"<br/>
 +
operation-name="JMSEnqueueTo::TOUPPER_A_Req" || output: "output_null"<br/>
 +
id="request"<br/>
 +
id-system="GVESB_TEST"<br/>
 +
input="input_null"<br/>
 +
next-node-id="check_status" op-type="dequeue"<br/>
 +
operation-name="JMSDequeueTo::TOUPPER_A_Resp"
 +
|-
 +
| GVNodeCheck || default-id="return_status"<br/>
 +
id="check_status"<br/>
 +
input="output_JMSEnqueueTo::TOUPPER_A_Req"<br/>
 +
on-exception-id="return_error" <br/>
 +
op-type="check" || default-id="return_status"<br/>
 +
id="check_status"<br/>
 +
input="output_null"<br/>
 +
on-exception-id="return_error" <br/>
 +
op-type="check"
 +
|-
 +
| GVEndNode || id="return_status" <br/>
 +
op-type="end"<br/>
 +
output="output_JMSEnqueueTo::TOUPPER_A_Req" || id="return_status" <br/>
 +
op-type="end"<br/>
 +
output="output_null"
 +
|-
 +
| GVEndNode || id="return_error" <br/>
 +
output="output_JMSEnqueueTo::TOUPPER_A_Req" || id="return_error" <br/>
 +
output="output_null"
 +
|}
 +
 
  
 
The GVCore.xml configuration file will be changed as follow:
 
The GVCore.xml configuration file will be changed as follow:
 
* Into ''Services'' element will be added the tag
 
* Into ''Services'' element will be added the tag
 
<syntaxhighlight lang="XML">
 
<syntaxhighlight lang="XML">
<Service group-name="TEST_GROUP" id-service="TOUPPER" service-activation="on"
+
<Service group-name="DEFAULT_GRP" id-service="TOUPPER_A"
                    statistics="off">
+
                    service-activation="on" statistics="off">
    <Operation name="RequestReply" operation-activation="on"
+
                <Operation name="Request" operation-activation="on"
 +
                          out-check-type="sys-svc-tid" type="operation">
 +
                    <Description>VulCon generated Operation</Description>
 +
                    <Participant id-channel="TEST_CHANNEL_A" id-system="GVESB_TEST"/>
 +
                    <Flow first-node="request" point-x="50" point-y="150">
 +
                        <GVOperationNode class="it.greenvulcano.gvesb.core.flow.GVOperationNode"
 +
                                        id="request" id-system="GVESB_TEST"
 +
                                        input="input_JMSEnqueueTo::TOUPPER_A_Req"
 +
                                        next-node-id="check_status" op-type="enqueue"
 +
                                        operation-name="JMSEnqueueTo::TOUPPER_A_Req"
 +
                                        output="output_JMSEnqueueTo::TOUPPER_A_Req"
 +
                                        point-x="200" point-y="150" type="flow-node"/>
 +
                        <GVNodeCheck class="it.greenvulcano.gvesb.core.flow.GVNodeCheck"
 +
                                    default-id="return_status" id="check_status"
 +
                                    input="output_JMSEnqueueTo::TOUPPER_A_Req"
 +
                                    on-exception-id="return_error" op-type="check"
 +
                                    point-x="350" point-y="150" type="flow-node"/>
 +
                        <GVEndNode class="it.greenvulcano.gvesb.core.flow.GVEndNode"
 +
                                  id="return_status" op-type="end"
 +
                                  output="output_JMSEnqueueTo::TOUPPER_A_Req"
 +
                                  point-x="700" point-y="150" type="flow-node"/>
 +
                        <GVEndNode class="it.greenvulcano.gvesb.core.flow.GVEndNode"
 +
                                  id="return_error" op-type="end"
 +
                                  output="output_JMSEnqueueTo::TOUPPER_A_Req"
 +
                                  point-x="350" point-y="300" type="flow-node"/>
 +
                    </Flow>
 +
                </Operation>
 +
                <Operation name="GetReply" operation-activation="on"
 
                           out-check-type="sys-svc-tid" type="operation">
 
                           out-check-type="sys-svc-tid" type="operation">
        <Description>VulCon generated Operation</Description>
+
                    <Description>VulCon generated Operation</Description>
        <Participant id-channel="TEST_CHANNEL" id-system="GVESB_TEST"/>
+
                    <Participant id-channel="TEST_CHANNEL_A" id-system="GVESB_TEST"/>
        <Flow first-node="request" point-x="50" point-y="150">
+
                    <Flow first-node="request" point-x="50" point-y="150">
              <GVOperationNode class="it.greenvulcano.gvesb.core.flow.GVOperationNode"
+
                        <GVOperationNode class="it.greenvulcano.gvesb.core.flow.GVOperationNode"
                  id="request" id-system="GVESB_TEST"
+
                                        id="request" id-system="GVESB_TEST"
                  input="input_test" next-node-id="check_status"
+
                                        input="input_null" next-node-id="check_status"
                  op-type="call" operation-name="test"
+
                                        op-type="dequeue"
                  output="output_test" point-x="200" point-y="150"
+
                                        operation-name="JMSDequeueTo::TOUPPER_A_Resp"
                  type="flow-node"/>
+
                                        output="output_null" point-x="200" point-y="150"
              <GVNodeCheck class="it.greenvulcano.gvesb.core.flow.GVNodeCheck"
+
                                        type="flow-node"/>
                  default-id="return_status" id="check_status"
+
                        <GVNodeCheck class="it.greenvulcano.gvesb.core.flow.GVNodeCheck"
                  input="output_test" on-exception-id="return_error"
+
                                    default-id="return_status" id="check_status"
                  op-type="check" point-x="350" point-y="150"
+
                                    input="output_null" on-exception-id="return_error"
                  type="flow-node"/>
+
                                    op-type="check" point-x="350" point-y="150"
              <GVEndNode class="it.greenvulcano.gvesb.core.flow.GVEndNode"
+
                                    type="flow-node"/>
                  id="return_status" op-type="end" output="output_test"
+
                        <GVEndNode class="it.greenvulcano.gvesb.core.flow.GVEndNode"
                  point-x="700" point-y="50" type="flow-node"/>
+
                                  id="return_status" op-type="end" output="output_null"
              <GVEndNode class="it.greenvulcano.gvesb.core.flow.GVEndNode"
+
                                  point-x="700" point-y="150" type="flow-node"/>
                  id="return_error" op-type="end" output="output_test"
+
                        <GVEndNode class="it.greenvulcano.gvesb.core.flow.GVEndNode"
                  point-x="700" point-y="250" type="flow-node"/>
+
                                  id="return_error" op-type="end" output="output_null"
        </Flow>
+
                                  point-x="350" point-y="300" type="flow-node"/>
    </Operation>
+
                    </Flow>
</Service>
+
                </Operation>
 +
            </Service>
 
</syntaxhighlight>
 
</syntaxhighlight>
* Into ''Systems'' element will be added the tag
+
* Into ''System'' element will be added the tag
 
<syntaxhighlight lang="XML">
 
<syntaxhighlight lang="XML">
 
<System id-system="GVESB_TEST" system-activation="on">
 
<System id-system="GVESB_TEST" system-activation="on">
  <Channel id-channel="TEST_CHANNEL">
+
                <Channel id-channel="TEST_CHANNEL">
        <test-service-call class="it.greenvulcano.gvesb.virtual.internal.TestServiceCall"
+
                    <test-service-call class="it.greenvulcano.gvesb.virtual.internal.TestServiceCall"
                name="test" service="toupper" type="call"/>
+
                                      name="test" service="toupper" type="call"/>
  </Channel>
+
                </Channel>
</System>
+
                <Channel id-channel="TEST_CHANNEL_A">
 +
                    <jms-enqueue acknowledge-type="auto-acknowledge"
 +
                                class="it.greenvulcano.gvesb.virtual.j2ee.JMSEnqueueOperation"
 +
                                connection-factory="java:/XAConnectionFactory"
 +
                                delivery-mode="persistent"
 +
                                destination-name="gvesb/jms/queue/TOUPPER_A_Request_Queue"
 +
                                destination-type="queue"
 +
                                name="JMSEnqueueTo::TOUPPER_A_Req" priority="4"
 +
                                ref-dp="WriteString_JMSBytesMessageDataProvider"
 +
                                transacted="false" type="enqueue">
 +
                        <XAHelper auto-enlist="false" transaction-status="TMSUCCESS"/>
 +
                    </jms-enqueue>
 +
                    <jms-enqueue acknowledge-type="auto-acknowledge"
 +
                                class="it.greenvulcano.gvesb.virtual.j2ee.JMSEnqueueOperation"
 +
                                connection-factory="java:/XAConnectionFactory"
 +
                                delivery-mode="persistent"
 +
                                destination-name="gvesb/jms/queue/TOUPPER_A_Response_Queue"
 +
                                destination-type="queue"
 +
                                name="JMSEnqueueTo::TOUPPER_A_Resp" priority="4"
 +
                                transacted="false" type="enqueue">
 +
                        <XAHelper auto-enlist="false" transaction-status="TMSUCCESS"/>
 +
                    </jms-enqueue>
 +
                    <jms-dequeue acknowledge-type="auto-acknowledge"
 +
                                class="it.greenvulcano.gvesb.virtual.j2ee.JMSDequeueOperation"
 +
                                connection-factory="java:/XAConnectionFactory"
 +
                                destination-name="gvesb/jms/queue/TOUPPER_A_Response_Queue"
 +
                                destination-type="queue"
 +
                                name="JMSDequeueTo::TOUPPER_A_Resp"
 +
                                receive-timeout-overridable="false"
 +
                                receive-type="timeout" transacted="false" type="dequeue">
 +
                        <XAHelper auto-enlist="false" transaction-status="TMSUCCESS"/>
 +
                    </jms-dequeue>
 +
                    <test-service-call class="it.greenvulcano.gvesb.virtual.internal.TestServiceCall"
 +
                                      name="toupper_call" service="toupper" type="call"/>
 +
                </Channel>
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 129: Line 223:
  
 
The section [[Deploy_Service|Deploy Services]] will be open. In this section you can select the services you want to deploy.
 
The section [[Deploy_Service|Deploy Services]] will be open. In this section you can select the services you want to deploy.
# Clicking on service TOUPPER a new view will be showed containing the files GVCore.xml present in local and on server side.
+
# Clicking on service TOUPPER_A a new view will be showed containing the files GVCore.xml present in local and on server side.
 
# Click Deploy. Now you can save the document and write some notes about it.
 
# Click Deploy. Now you can save the document and write some notes about it.
 
# Save the Document. By saving you will return to the [[Deploy Service]] section.
 
# Save the Document. By saving you will return to the [[Deploy Service]] section.
Line 139: Line 233:
  
 
[[File:GVConsoleTesting.jpg|thumb|{{GVCONSOLE}} Testing section]]Go to the {{GVCONSOLE}} section [[Testing]]. In this section you can finally test your new service:
 
[[File:GVConsoleTesting.jpg|thumb|{{GVCONSOLE}} Testing section]]Go to the {{GVCONSOLE}} section [[Testing]]. In this section you can finally test your new service:
# Into the Service voice select TOUPPER
+
# Into the Service voice select TOUPPER_A
 
# Into the System voice select GVESB_TEST
 
# Into the System voice select GVESB_TEST
# Click RequestReply
+
# Click Request
  
 
When test finishes, the Testing view will be expanded for containing the GVBUFFER OUTPUT. In this case no properties have been defined so there are only be presents the main informations about the process (System, Service, Id, etc.). Standard fields and the detailed GVBuffer are described in the [[Testing#Data_input|Output File Name]] (we setted it as <nowiki>${{gv.app.home}}</nowiki>/log/TestOutput.txt).  
 
When test finishes, the Testing view will be expanded for containing the GVBUFFER OUTPUT. In this case no properties have been defined so there are only be presents the main informations about the process (System, Service, Id, etc.). Standard fields and the detailed GVBuffer are described in the [[Testing#Data_input|Output File Name]] (we setted it as <nowiki>${{gv.app.home}}</nowiki>/log/TestOutput.txt).  
  
 
In case of error or exceptions you can review the logs file presents in the folder <nowiki>${{gv.app.home}}</nowiki>/log/.
 
In case of error or exceptions you can review the logs file presents in the folder <nowiki>${{gv.app.home}}</nowiki>/log/.

Revision as of 14:29, 17 February 2012

Description

This example shows how configure an asynchronous service with Forward JMS.

How To

The best mode for creating a Service is through the Wizard. But for use it you must first define a new Group, System and Channel, if you do not want to use those already presents, and the workflow operations.

Defining Group, System and Channel

From the core view:

  1. Right click the element Groups -> Insert after (or Insert before) -> Group. A new element Group will be created.
  2. Click on the Group new element and set the attribute id-group from the Properties View. We named it DEFAULT_GRP
  3. Expand the GVSystems item.
  4. Right clicking on Systems, insert-after -> System. A new element System will be created.
  5. Set the System parameters in the Properties panel. We named it GVESB_TEST
  6. You can insert a new Channel right clicking the new System element -> Insert after (or Insert before) -> Channel*. A new Channel element will be created
  7. Click on this new Channel element and set the property id_channel. We named it TEST_CHANNEL_A

Defining Workflow Operations

Once you have created the Channel, insert into the operations you need for the workflow. In this case:

Plugin Value
jms-enqueue connection-factory="java:/XAConnectionFactory"
destination-name="gvesb/jms/queue/TOUPPER_A_Request_Queue"
name="JMSEnqueueTo::TOUPPER_A_Req"
ref-dp="WriteString_JMSBytesMessageDataProvider"
XAHelper
auto-enlist="false"
transaction-status="TMSUCCESS"
jms-enqueue connection-factory="java:/XAConnectionFactory"
delivery-mode="persistent"
destination-name="gvesb/jms/queue/TOUPPER_A_Response_Queue"
name="JMSEnqueueTo::TOUPPER_A_Resp"
ref-dp="WriteString_JMSBytesMessageDataProvider"
XAHelper
auto-enlist="false"
transaction-status="TMSUCCESS"
jms-dequeue connection-factory="java:/XAConnectionFactory"
delivery-mode="persistent"
destination-name="gvesb/jms/queue/TOUPPER_A_Response_Queue"
name="JMSDequeueTo::TOUPPER_A_Resp"
ref-dp="ReadString_JMSBytesMessageDataProvider"
receive-type="timeout"
XAHelper
auto-enlist="false"
transaction-status="TMSUCCESS"
test-service-call name="toupper_call"

Check that Data Providers WriteString_JMSBytesMessageDataProvider and ReadString_JMSBytesMessageDataProvider will be present in the element DataProviders (JMSBytesMessageDataProvider and StringDataProvider respectively), visualized from the VulCon Adapter view. If don't you can add it setting their attributes as seen in the following table:

Data Provider Value
JMSBytesMessageDataProvider name="WriteString_JMSBytesMessageDataProvider"
Field:
direction="OUT" key="output" type="field">
Expression: type="ognl"
writeBytes(#input.object.getBytes('UTF-8'))
StringDataProvider name="ReadString_JMSBytesMessageDataProvider"
Field:
direction="INOUT" key="buffer" type="field"
Expression: type="ognl"
#bArr = new byte[object.getBodyLength()], object.reset(), object.readBytes(#bArr), new java.lang.String(#bArr, 'UTF-8')
New GreenVulcano® ESB Service Wizard

Now we are able to use the Wizard.

  1. From the Core View of VulCon. Right click the element Services -> Wizard New Service
  2. A new windows will be open where you can set the name of the Service you want to create, in this case we named TOUPPER_A, and your Group, we used DEFAULT_GRP. You can also select the paradigm, for this example will be asynchronous-asynchronous. Click next.
  3. Set System as GVESB_TEST and Channel as TEST_CHANNEL_A. Then chose as Request Operation JMSEnqueueTo::TOUPPER_A_Req, and the response Operation toupper_call. Then finish.


As you can see from the core view, inside the Services element, a new Service named TOUPPER_A has been created. This service contains two Operations:

We setted the first one as a Request (to enqueue), and the second as a GetReply (to dequeue). Nodes will be setted as seen in the following table:

Node Request GetReply
GVOperationNode output: output_JMSEnqueueTo::TOUPPER_A_Req

id="request"
id-system="GVESB_TEST"
input="input_JMSEnqueueTo::TOUPPER_A_Req"
next-node-id="check_status" op-type="enqueue"
operation-name="JMSEnqueueTo::TOUPPER_A_Req" || output: "output_null"
id="request"
id-system="GVESB_TEST"
input="input_null"
next-node-id="check_status" op-type="dequeue"
operation-name="JMSDequeueTo::TOUPPER_A_Resp"

GVNodeCheck default-id="return_status"

id="check_status"
input="output_JMSEnqueueTo::TOUPPER_A_Req"
on-exception-id="return_error"
op-type="check" || default-id="return_status"
id="check_status"
input="output_null"
on-exception-id="return_error"
op-type="check"

GVEndNode id="return_status"

op-type="end"
output="output_JMSEnqueueTo::TOUPPER_A_Req" || id="return_status"
op-type="end"
output="output_null"

GVEndNode id="return_error"

output="output_JMSEnqueueTo::TOUPPER_A_Req" || id="return_error"
output="output_null"


The GVCore.xml configuration file will be changed as follow:

  • Into Services element will be added the tag
<Service group-name="DEFAULT_GRP" id-service="TOUPPER_A"
                     service-activation="on" statistics="off">
                <Operation name="Request" operation-activation="on"
                           out-check-type="sys-svc-tid" type="operation">
                    <Description>VulCon generated Operation</Description>
                    <Participant id-channel="TEST_CHANNEL_A" id-system="GVESB_TEST"/>
                    <Flow first-node="request" point-x="50" point-y="150">
                        <GVOperationNode class="it.greenvulcano.gvesb.core.flow.GVOperationNode"
                                         id="request" id-system="GVESB_TEST"
                                         input="input_JMSEnqueueTo::TOUPPER_A_Req"
                                         next-node-id="check_status" op-type="enqueue"
                                         operation-name="JMSEnqueueTo::TOUPPER_A_Req"
                                         output="output_JMSEnqueueTo::TOUPPER_A_Req"
                                         point-x="200" point-y="150" type="flow-node"/>
                        <GVNodeCheck class="it.greenvulcano.gvesb.core.flow.GVNodeCheck"
                                     default-id="return_status" id="check_status"
                                     input="output_JMSEnqueueTo::TOUPPER_A_Req"
                                     on-exception-id="return_error" op-type="check"
                                     point-x="350" point-y="150" type="flow-node"/>
                        <GVEndNode class="it.greenvulcano.gvesb.core.flow.GVEndNode"
                                   id="return_status" op-type="end"
                                   output="output_JMSEnqueueTo::TOUPPER_A_Req"
                                   point-x="700" point-y="150" type="flow-node"/>
                        <GVEndNode class="it.greenvulcano.gvesb.core.flow.GVEndNode"
                                   id="return_error" op-type="end"
                                   output="output_JMSEnqueueTo::TOUPPER_A_Req"
                                   point-x="350" point-y="300" type="flow-node"/>
                    </Flow>
                </Operation>
                <Operation name="GetReply" operation-activation="on"
                           out-check-type="sys-svc-tid" type="operation">
                    <Description>VulCon generated Operation</Description>
                    <Participant id-channel="TEST_CHANNEL_A" id-system="GVESB_TEST"/>
                    <Flow first-node="request" point-x="50" point-y="150">
                        <GVOperationNode class="it.greenvulcano.gvesb.core.flow.GVOperationNode"
                                         id="request" id-system="GVESB_TEST"
                                         input="input_null" next-node-id="check_status"
                                         op-type="dequeue"
                                         operation-name="JMSDequeueTo::TOUPPER_A_Resp"
                                         output="output_null" point-x="200" point-y="150"
                                         type="flow-node"/>
                        <GVNodeCheck class="it.greenvulcano.gvesb.core.flow.GVNodeCheck"
                                     default-id="return_status" id="check_status"
                                     input="output_null" on-exception-id="return_error"
                                     op-type="check" point-x="350" point-y="150"
                                     type="flow-node"/>
                        <GVEndNode class="it.greenvulcano.gvesb.core.flow.GVEndNode"
                                   id="return_status" op-type="end" output="output_null"
                                   point-x="700" point-y="150" type="flow-node"/>
                        <GVEndNode class="it.greenvulcano.gvesb.core.flow.GVEndNode"
                                   id="return_error" op-type="end" output="output_null"
                                   point-x="350" point-y="300" type="flow-node"/>
                    </Flow>
                </Operation>
            </Service>
  • Into System element will be added the tag
<System id-system="GVESB_TEST" system-activation="on">
                <Channel id-channel="TEST_CHANNEL">
                    <test-service-call class="it.greenvulcano.gvesb.virtual.internal.TestServiceCall"
                                       name="test" service="toupper" type="call"/>
                </Channel>
                <Channel id-channel="TEST_CHANNEL_A">
                    <jms-enqueue acknowledge-type="auto-acknowledge"
                                 class="it.greenvulcano.gvesb.virtual.j2ee.JMSEnqueueOperation"
                                 connection-factory="java:/XAConnectionFactory"
                                 delivery-mode="persistent"
                                 destination-name="gvesb/jms/queue/TOUPPER_A_Request_Queue"
                                 destination-type="queue"
                                 name="JMSEnqueueTo::TOUPPER_A_Req" priority="4"
                                 ref-dp="WriteString_JMSBytesMessageDataProvider"
                                 transacted="false" type="enqueue">
                        <XAHelper auto-enlist="false" transaction-status="TMSUCCESS"/>
                    </jms-enqueue>
                    <jms-enqueue acknowledge-type="auto-acknowledge"
                                 class="it.greenvulcano.gvesb.virtual.j2ee.JMSEnqueueOperation"
                                 connection-factory="java:/XAConnectionFactory"
                                 delivery-mode="persistent"
                                 destination-name="gvesb/jms/queue/TOUPPER_A_Response_Queue"
                                 destination-type="queue"
                                 name="JMSEnqueueTo::TOUPPER_A_Resp" priority="4"
                                 transacted="false" type="enqueue">
                        <XAHelper auto-enlist="false" transaction-status="TMSUCCESS"/>
                    </jms-enqueue>
                    <jms-dequeue acknowledge-type="auto-acknowledge"
                                 class="it.greenvulcano.gvesb.virtual.j2ee.JMSDequeueOperation"
                                 connection-factory="java:/XAConnectionFactory"
                                 destination-name="gvesb/jms/queue/TOUPPER_A_Response_Queue"
                                 destination-type="queue"
                                 name="JMSDequeueTo::TOUPPER_A_Resp"
                                 receive-timeout-overridable="false"
                                 receive-type="timeout" transacted="false" type="dequeue">
                        <XAHelper auto-enlist="false" transaction-status="TMSUCCESS"/>
                    </jms-dequeue>
                    <test-service-call class="it.greenvulcano.gvesb.virtual.internal.TestServiceCall"
                                       name="toupper_call" service="toupper" type="call"/>
                </Channel>

Now you are able to test your first VulCon service from the GV Console®. But first you need to export the configuration.

Exporting configuration

Once the flow is correctly configured, the user can export the configuration and pass it to the GreenVulcano® ESB import tool, in order to add into the GreenVulcano® ESB the service just created.

  1. The Export function is available in the view "Project". Expand the project
  2. Before you proceed press F5 to refresh the file list.
  3. Right click the conf folder. It will open a drop-down list.
  4. Export your project as a compressed file.

Testing with GV Console

It is finally arrived the time to test your project. To do that execute the following steps:

Deploy new Service

Suppose you have saved the VulCon project as "${{gv.app.home}}/TEST/REPG1.zip". To deploy the new Service follow this steps:

  1. Start GreenVulcano® ESB
  2. Access to the GV Console.
  3. In the Deploy New Service section click Browse and select the file where you saved the VulCon configuration.
  4. `Click Submit.

The section Deploy Services will be open. In this section you can select the services you want to deploy.

  1. Clicking on service TOUPPER_A a new view will be showed containing the files GVCore.xml present in local and on server side.
  2. Click Deploy. Now you can save the document and write some notes about it.
  3. Save the Document. By saving you will return to the Deploy Service section.
GV Console Utility section

Now pass to the GV Console section Utility.

  1. Click on Reload configuration
  2. Select GVCore.xml and then Reload. A new windows will be open to confirm the operation
  3. Click OK.
GV Console Testing section

Go to the GV Console section Testing. In this section you can finally test your new service:

  1. Into the Service voice select TOUPPER_A
  2. Into the System voice select GVESB_TEST
  3. Click Request

When test finishes, the Testing view will be expanded for containing the GVBUFFER OUTPUT. In this case no properties have been defined so there are only be presents the main informations about the process (System, Service, Id, etc.). Standard fields and the detailed GVBuffer are described in the Output File Name (we setted it as ${{gv.app.home}}/log/TestOutput.txt).

In case of error or exceptions you can review the logs file presents in the folder ${{gv.app.home}}/log/.