Monday, August 05, 2013

How to develop (utilizing the full power of  Java/Groovy) and deploy (into cloud) a Salesforce external extension and integration in 3 minutes

(Part 1: develop and debug an Integration Pack)

- "NO Callout Execution Governors and Limits"(right! because it is based on Outbound Message.)

YouTube demo:
http://youtu.be/Z5YTqa0bm6M

Tech notes:
1. Outbound Message based solution, thus no worry about "Apex Callout Execution Governors and Limits " or "Apex Trigger Execution Governors and Limits".
2. Full Java (Groovy) power, including debugging Groovy/Java using IDEs such as Eclipse/Netbeans.
3. Utilizing existing Java (Groovy) framework/library such as Apache Commons, Restlet, Axis2, Jsch, JDBC, BigData, UnboundID, ... etc. And... utilizing your Java developers.
4. If you prefer, Java debug can be done 100% inside Salesforce.
5. HTTPs and SSH based security.

Use cases and value:
1. "NO Execution Governors and Limits" (the same as "NO Software") - for example, if some piece of Apex code is blocked by your instance's "Execution Governors and Limits", ... you could pack that logic into Java/Groovy code and deploy it into CloudChoir's "Integration server" (hosted in Amazon EC2 cloud or Windows Azure cloud).
2. Develop external customer integration logic( "Integration Pack") specifically for your org or instance, callable from such as Trigger.
3. Your Extensions or Integrations can serve for your own use, or to be published and marketed($$$) to other Salesforce users.

Dependency:
1. Free AppExchange app: CloudChoir - Saleforce Integration Foundation (submitted to AppExchange for review. developed also by Konafornia LLC.)
2. Java/Groovy runtime.
3. Optional: the ".jar" library your code used; the SSH cert in ".pem" format.

Tool:
Groovy IDE of your choice: such as Eclipse or NetBeans

Email: admin@konafornia.com
(I am currently looking for Salesforce dev job and/or sub contracts. thx!)

______________________________________________
Reference: Java/Groovy source code used in this DEMO:
 import groovy.util.XmlSlurper
//Integration Pack - parent class
class HelloWorld {
    static String IntegrationCall(String jInput) throws Exception{
        def gInput = new XmlSlurper().parseText(jInput)
        def title = gInput."title".text()
        def fullname = gInput."fullname".text()
        return myJavaClass.sGreet(title, fullname)
    }
    public static void main(String[] args) {
        String sInput =    "<root><title>Mr</title><fullname>Stanley He</fullname></root>";
        String sReturn = this.IntegrationCall(sInput);
        System.out.println(sReturn); //see the result
    }
}

//Java class, to consume whatever Java Jar
class myJavaClass
{
    public static String sGreet(String sTitle, String sName)
    {
        return "Hello(v1): " + sTitle + " " + sName;
    }
}

No comments: