Monday, October 24, 2011

Mule smtp outbound using Gmail

Following mule flow reads files from a directory and sends the content of the files to an email using gmail account.

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns="" xmlns:file=""
xmlns:smtps="" xmlns:doc=""
xmlns:email="" xmlns:spring=""
xsi:schemaLocation=" ">
<spring:beans />

<smtps:connector name="smtpsGmailConnector"
fromAddress="" ccAddresses="">

<smtps:header key="mail.transport.protocol" value="smtps" />
<smtps:header key="mail.smtps.auth" value="true" />
<smtps:header key="mail.smtps.quitwait" value="false" />
<smtps:tls-client />
<smtps:tls-trust-store path="greenmail-truststore" />

<flow name="9f1f86a7-021f-4d20-b062-40fcd1c6c9fa">
<file:inbound-endpoint path="E:/someDir"
pollingFrequency="1000" fileAge="500" reverseOrder="false" doc:name="File"
doc:description="Read/write a file from the filesystem" />

<smtps:outbound-endpoint connector-ref="smtpsGmailConnector"
user="yourid" password="yourpassword" host=""
subject="Your order has been placed!">

<email:string-to-email-transformer />

Run with mule

Put some text file int the directory "E:/someDir"

Console will look something like the following image

Thursday, October 20, 2011

Simple Reverse Geo-coding in Java using Google Map

The Java Class

package geo;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class MyGeo {
public static void main(String ar[]) throws Exception {
System.out.println(new MyGeo().getAddress("13.031067,80.239656"));
public String getAddress(String latlong){
String address = null;
String gURL = "" + latlong + "&sensor=true";
try {
DocumentBuilderFactory df = DocumentBuilderFactory.newInstance();
DocumentBuilder db = df.newDocumentBuilder();
Document dom = db.parse(gURL);
Element docEl = dom.getDocumentElement();
NodeList nl = docEl.getElementsByTagName("result");
if (nl != null && nl.getLength() > 0){
for(int i=0;i<nl.getLength();i++){
String temp=((Element)nl.item(i)).getElementsByTagName("formatted_address").item(0).getTextContent();
} catch (Exception ex) {
address = "Err";
return address;
public String getAddress(String lat, String lon) {
return getAddress(lat+ "," + lon);
public String getAddress(double lat, double lon) {
return getAddress("" + lat, "" + lon);

>java geo.MyGeo
Venkatanarayana Rd, CIT Nagar, Chennai, Tamil Nadu, India

Note: Google has some restriction in this web-service call like number of requests per day from one IP.