By
Sudha Ch
 The main motto of this PPT is how to use For
Each component in our applications.
 The Foreach scope splits a collection into
elements and processes them iteratively
through the processors embedded in the
scope, then returns the original message to
the flow.
 .mflow<?xml version="1.0" encoding="UTF-8"?>
 <mule xmlns:jdbc-ee="http://www.mulesoft.org/schema/mule/ee/jdbc"
xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.4.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-current.xsd
 http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
 http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
 http://www.mulesoft.org/schema/mule/ee/jdbc http://www.mulesoft.org/schema/mule/ee/jdbc/current/mule-jdbc-
ee.xsd">
 <jdbc-ee:mssql-data-source name="MS_SQL_Data_Source" user=“****" password=“****"
url="jdbc:sqlserver://localhost;databaseName=test1" transactionIsolation="UNSPECIFIED" doc:name="MS SQL Data
Source"/>
 <jdbc-ee:connector name="Database" dataSource-ref="MS_SQL_Data_Source" validateConnections="true"
queryTimeout="-1" pollingFrequency="0" doc:name="Database"/>
 <flow name="Database_ComponentFlow1" doc:name="Database_ComponentFlow1">
 <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8087" path="database"
doc:name="HTTP"/>
 <logger message="--main flow--" level="INFO" doc:name="Logger"/>
 <jdbc-ee:outbound-endpoint exchange-pattern="request-response" queryKey="select" queryTimeout="-1"
connector-ref="Database" doc:name="Database">
 <jdbc-ee:query key="select" value="select * from mytable"/>
 </jdbc-ee:outbound-endpoint>
 <foreach collection="#[payload]" doc:name="For Each">
 <logger message="--In foreach loop" level="INFO" doc:name="Logger"/>
 <logger message="--Result--#[payload]" level="INFO" doc:name="Logger"/>
 </foreach>
 </flow>
 </mule>
 Output:INFO 2015-10-03 17:50:45,299 [main] org.mule.DefaultMuleContext:
 **********************************************************************
 * Application: Database Component *
 * OS encoding: Cp1252, Mule encoding: UTF-8 *
 * *
 * Agents Running: *
 * Clustering Agent *
 * JMX Agent *
 **********************************************************************
 INFO 2015-10-03 17:50:45,300 [main] org.mule.module.launcher.MuleDeploymentService:
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 + Started app 'Database Component' +
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 INFO 2015-10-03 17:50:52,770 [[Database Component].connector.http.mule.default.receiver.02]
org.mule.api.processor.LoggerMessageProcessor: --main flow--
 INFO 2015-10-03 17:50:52,778 [[Database Component].connector.http.mule.default.receiver.02]
org.mule.lifecycle.AbstractLifecycleManager: Initialising: 'Database.dispatcher.424429501'. Object is: EEJdbcMessageDispatcher
 INFO 2015-10-03 17:50:52,779 [[Database Component].connector.http.mule.default.receiver.02]
org.mule.lifecycle.AbstractLifecycleManager: Starting: 'Database.dispatcher.424429501'. Object is: EEJdbcMessageDispatcher
 INFO 2015-10-03 17:50:53,042 [[Database Component].connector.http.mule.default.receiver.02]
org.mule.api.processor.LoggerMessageProcessor: --In foreach loop
 INFO 2015-10-03 17:50:53,046 [[Database Component].connector.http.mule.default.receiver.02]
org.mule.api.processor.LoggerMessageProcessor: --Result--{subj=Hindi, marks=55, name=Ramesh, id=1}
 INFO 2015-10-03 17:50:53,047 [[Database Component].connector.http.mule.default.receiver.02]
org.mule.api.processor.LoggerMessageProcessor: --In foreach loop
 INFO 2015-10-03 17:50:53,049 [[Database Component].connector.http.mule.default.receiver.02]
org.mule.api.processor.LoggerMessageProcessor: --Result--{subj=English, marks=65, name=Mahesh, id=2}
 INFO 2015-10-03 17:50:53,050 [[Database Component].connector.http.mule.default.receiver.02]
org.mule.api.processor.LoggerMessageProcessor: --In foreach loop
 INFO 2015-10-03 17:50:53,052 [[Database Component].connector.http.mule.default.receiver.02]
org.mule.api.processor.LoggerMessageProcessor: --Result--{subj=science, marks=75, name=Pavan, id=3}
 INFO 2015-10-03 17:50:53,053 [[Database Component].connector.http.mule.default.receiver.02]
org.mule.api.processor.LoggerMessageProcessor: --In foreach loop
 INFO 2015-10-03 17:50:53,056 [[Database Component].connector.http.mule.default.receiver.02]
org.mule.api.processor.LoggerMessageProcessor: --Result--{subj=social, marks=45, name=Siva, id=4}
 Flow of execution:
1. URL to trigger the service from browser
http://localhost:8087/foreach
2. Database component connects to the specific
database, executes the select query and prints
the result (one by one) using for each
component
 https://docs.mulesoft.com/mule-user-
guide/v/3.7/foreach

For each component in mule demo

  • 1.
  • 2.
     The mainmotto of this PPT is how to use For Each component in our applications.
  • 3.
     The Foreachscope splits a collection into elements and processes them iteratively through the processors embedded in the scope, then returns the original message to the flow.
  • 5.
     .mflow<?xml version="1.0"encoding="UTF-8"?>  <mule xmlns:jdbc-ee="http://www.mulesoft.org/schema/mule/ee/jdbc" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd  http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd  http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd  http://www.mulesoft.org/schema/mule/ee/jdbc http://www.mulesoft.org/schema/mule/ee/jdbc/current/mule-jdbc- ee.xsd">  <jdbc-ee:mssql-data-source name="MS_SQL_Data_Source" user=“****" password=“****" url="jdbc:sqlserver://localhost;databaseName=test1" transactionIsolation="UNSPECIFIED" doc:name="MS SQL Data Source"/>  <jdbc-ee:connector name="Database" dataSource-ref="MS_SQL_Data_Source" validateConnections="true" queryTimeout="-1" pollingFrequency="0" doc:name="Database"/>  <flow name="Database_ComponentFlow1" doc:name="Database_ComponentFlow1">  <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8087" path="database" doc:name="HTTP"/>  <logger message="--main flow--" level="INFO" doc:name="Logger"/>  <jdbc-ee:outbound-endpoint exchange-pattern="request-response" queryKey="select" queryTimeout="-1" connector-ref="Database" doc:name="Database">  <jdbc-ee:query key="select" value="select * from mytable"/>  </jdbc-ee:outbound-endpoint>  <foreach collection="#[payload]" doc:name="For Each">  <logger message="--In foreach loop" level="INFO" doc:name="Logger"/>  <logger message="--Result--#[payload]" level="INFO" doc:name="Logger"/>  </foreach>  </flow>  </mule>
  • 6.
     Output:INFO 2015-10-0317:50:45,299 [main] org.mule.DefaultMuleContext:  **********************************************************************  * Application: Database Component *  * OS encoding: Cp1252, Mule encoding: UTF-8 *  * *  * Agents Running: *  * Clustering Agent *  * JMX Agent *  **********************************************************************  INFO 2015-10-03 17:50:45,300 [main] org.mule.module.launcher.MuleDeploymentService:  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  + Started app 'Database Component' +  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  INFO 2015-10-03 17:50:52,770 [[Database Component].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor: --main flow--  INFO 2015-10-03 17:50:52,778 [[Database Component].connector.http.mule.default.receiver.02] org.mule.lifecycle.AbstractLifecycleManager: Initialising: 'Database.dispatcher.424429501'. Object is: EEJdbcMessageDispatcher  INFO 2015-10-03 17:50:52,779 [[Database Component].connector.http.mule.default.receiver.02] org.mule.lifecycle.AbstractLifecycleManager: Starting: 'Database.dispatcher.424429501'. Object is: EEJdbcMessageDispatcher  INFO 2015-10-03 17:50:53,042 [[Database Component].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor: --In foreach loop  INFO 2015-10-03 17:50:53,046 [[Database Component].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor: --Result--{subj=Hindi, marks=55, name=Ramesh, id=1}  INFO 2015-10-03 17:50:53,047 [[Database Component].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor: --In foreach loop  INFO 2015-10-03 17:50:53,049 [[Database Component].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor: --Result--{subj=English, marks=65, name=Mahesh, id=2}  INFO 2015-10-03 17:50:53,050 [[Database Component].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor: --In foreach loop  INFO 2015-10-03 17:50:53,052 [[Database Component].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor: --Result--{subj=science, marks=75, name=Pavan, id=3}  INFO 2015-10-03 17:50:53,053 [[Database Component].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor: --In foreach loop  INFO 2015-10-03 17:50:53,056 [[Database Component].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor: --Result--{subj=social, marks=45, name=Siva, id=4}
  • 7.
     Flow ofexecution: 1. URL to trigger the service from browser http://localhost:8087/foreach 2. Database component connects to the specific database, executes the select query and prints the result (one by one) using for each component
  • 8.