Enterprise Integration : Mule ESB
Reading Pipe/CSV Files : Process individual lines and display in logger - the each line
Mule Flow Diagram :
Mule Config :
<?xml version="1.0" encoding="UTF-8"?><mule xmlns:file="http://www.mulesoft.org/schema/mule/file"
xmlns:jdbc="http://www.mulesoft.org/schema/mule/jdbc" 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" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd
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">
<configuration doc:name="Configuration">
<expression-language autoResolveVariables="true">
<import class="org.mule.util.StringUtils" />
</expression-language>
</configuration>
<flow name="ImportCSVFile" >
<!-- Component 1 : Folder to read CSV file source -->
<file:inbound-endpoint path="C:\InputFileFolderLocation\FileRead" pollingFrequency="5000" doc:name="Source" responseTimeout="10000"/>
<!-- Component 2: Convert between object arrays and strings -->
<object-to-string-transformer doc:name="Object to String"/>
<!-- Component 3: Split each row -->
<splitter expression="#[StringUtils.split(message.payload, '\n\r')]" doc:name="Splitter"/>
<component class="RequestProcessor1" doc:name="Java"/>
<!-- Component 4: Paylod - display in logger -->
<logger message=" #[message.payloadAs(java.lang.String)]" level="INFO" doc:name="Logger"/>
<!-- Component 5: Transform CSV(",")/Pipe("|") row in array and display in logger -->
<expression-transformer expression="#[StringUtils.split(message.payload, '|')]" doc:name="Expression"/>
</flow>
</mule>
Mule Java Component Class and Code:
RequestProcessor1.java(for Java Component):import java.util.StringTokenizer;
import org.mule.api.MuleEventContext;
import org.mule.api.lifecycle.Callable;
public class RequestProcessor1 implements Callable {
@Override
public Object onCall(MuleEventContext eventContext) throws Exception {
String[] PayloadStr = eventContext.getMessage().getPayloadAsString().split("\\|", -1);
Further Processing of PayloadStr ...
}
}...
So, as shown above, we can use the splitter /expression-tranform or splitter/custom java code to read file and process it line by line in Mule ESB.

ReplyDeleteI want to share a testimony on how Mr Pedro loan offer helped my life,
It isn't a good idea to use a payday loan on a regular basis. In the event that you endlessly prolong your repayment date and borrow often towards your subsequent paycheck, it could run you a good amount of money. However, it is just as sensible to decide on payday loans as they can be swiftly approved exactly the same day you put in your loan application form. You can contact Mr Pedro loan offer because my payday loan was very fast to proceed, email pedroloanss@gmail.com to request any kind of loan. Whatsapp +18632310632