Skip to content

pontiyaraja/deccanplato

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

deccanplato

Build Status(https://travis-ci.org/indykish/deccanplato)

deccanplato - Named after the largest plateau in Southern India

deccanplato is an opensouce cloud integation REST based connectors for cloud apps used to bring open source cloud integration using a cloud identity making a live cloud.

Live cloud ?

When <x> happens in a cloud app, <y> gets a notification and does something <z>. This takes cloud integration to the next level.

where <x>, <y> are cloud apps. <z> is an action to perform.

Usecase - Actionable Evented Cloud Apps :

The system mentioned below are cloud apps

  • When a product is shipped from an inventory system,
  • Generate Invoice
  • Update the CRM records,
  • Send a voice notification to the customer saying that it was shipped
  • Send out an email

This uses OpenJDK 1.7, Spring 3.2.2, REST, JSON and the RESTful cloud app interfaces.

How will this happen

Watch our blog.megam.co for updates Slideshare.net slideshare.net/indykish for updates

We'll launch soon in Q2 2013

Stay tuned : Live cloud integration using Cloud identity Blog : Cloud Realtime Streaming - Part 1 Blog : Cloud Realtime Streaming - Live Cloud

Requirements

OpenJDK 1.7+ Install Instructions

Tomcat 7 Install Instructions

make sure the file <tomcat_install_home>\conf\tomcat_users.xml has an user=admin, pw=admin

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="manager-gui,admin-gui,manager,admin,manager-script,admin-script"/>

Running the application

Clone this project locally:

$ git clone https://github.com/indykish/deccanplato.git

Build with:

$ mvn clean verify

Then run in tomcat7 with:

$ mvn tomcat7:deploy

Testing your install

Start the tomcat7 container on port 8080 with:

$ ~/tomcat/bin/start.sh

Let us create an account with salesforce.

In your src/test/resource/salesforcecrm, there exists a json named : account_create.json

system
	access
	Ignore the fields `project_id`	`access_org_id`		`access_account_name`. 
	These are internal fields that are used for tracking a project based on an id.
			
provider
	access : Feed the appropriate data.
The import aspect to note here is the provider shall be `salesforcecrm` 
and `bizactivity` shall be `account#create`	

For further details, read the documentation at Opensource cloud integration : * launching shortly

{
	"system": {
		"access": {
			"project_id": "3c78f781-fc28-4c69-8fad-0ca66f2c5dbc",
			"api_token": "oVj29MbD2LcXzsRzNFx9vw==",
			"access_email": "alrin@megam.com",
			"access_org_id": 1,
			"access_account_name": "MegamSyste"
		}
	},
	"provider": {
		"access": {
			"consumer_key": "3MVG9Y6d_Btp4xp51yG_eZBS13fsAsN55a0mb4tjHy0V1jx4sOOo_7.HtHfu0dUNZ9qaIF8mqWpmUtWVbDfZo",
			"consumer_secret": "2416933755273187085",
			"access_username": "pontiyaraja@gmail.com",
			"access_password": "pandiya1988hKIZMcZwbLX0vSRHY9ddjuYHQ",
			"provider": "salesforcecrm",
			"category": "CRM",
			"description": "My first Connector Project",
			"user_email": "alrin@megam.com",
			"org_name": "Megam Systems"
		},
		"business_activity": {
			"biz_function": "account#create",
                        "name":"Raja"
		}
	},
	"execution": {
		"output": {
			"type": "default",
			"location": "default"
		}
	}
}

Use the class available in src\test\java, to perform a JUnit test.

public class SaleforceCRMAdapterTest {

	private static final String SALESFORCE="salesforcecrm";
    @Test
	public void salesforceTest() { 
    	
    	GenericApplicationContext ctx = new GenericApplicationContext();
    	XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(ctx);
    	xmlReader.loadBeanDefinitions(new ClassPathResource(
    			"applicationContext.xml"));
    	ctx.refresh();
    	ProviderRegistry registry = (ProviderRegistry) ctx.getBean("registry");
    	 
		List<String> busiMethod =new ArrayList<String>();
		busiMethod.add("account");		
		List<String> busiActivity = new ArrayList<String>();
		busiActivity.add("create");
		
		for(String function: busiMethod) {
			for(String activity: busiActivity) {
				CommonTest ctest=new CommonTest();
				RequestData reqData;
				reqData=ctest.commonTest(function, activity, SALESFORCE);
				if(function.equalsIgnoreCase("user") && activity.equalsIgnoreCase("create")) {
				testAdapterAccess(reqData);
				}
				ctest.testBusinessImpl();
			}
		}					
	}
    private void testAdapterAccess(RequestData reqData)  {

		SalesforceCRMAdapterAccess saa = new SalesforceCRMAdapterAccess();
		try {
			DataMap dmap = saa.authenticate(reqData.getGeneral());
		} catch (AdapterAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}   
}
Post execution verify that an account indeed exists in salesforce.

Getting Started : Opensource cloud integration :

Running on heroku

Clone this project locally.

Create a new app on Heroku (make sure you have the Heroku Toolbelt installed):

$ heroku login
$ heroku create -s cedar

Upload the app to Heroku:

$ git push heroku master

Open the app in your browser:

$ heroku open

Want to contribute ?

Go ahead and setup a development environment

Setup the prereqs

OpenJDK 1.7, Tomcat 7, Maven - 3.0.5, Ubuntu 12.10 > preferred, Eclipse Juno >

Dependency *optional

This step is only needed if you changed xero public application

Has a dependency on xero public application.

The cloned copy contains a local maven repo(deccanplato/repo) with the required xero jar files. So this already taken care.

Xero changed ?

Clone the xero project locally.

Generating an updated xero*.jar.

From your xero project, run

$ mvn package

After your run it, a new jar of xero, will automatically land in your deccanplato/lib directory.

We assume that both xero and deccanplato projects are in the same eclipse workspace.

Download this python script and place it in your ~/bin directory.

Add your ~/bin into your PATH variable in .bashrc (If you are on Ubuntu)

Run the following from deccanplato directory

$ ~/deccanplato$ mvnlocalrepo.py -i
-----
Processing `lib/com.rossjourdain.xero.xeroapi_1.2.jar`
Choose a correct artifactId for `com.rossjourdain.xero.xeroapi`:
1) xeroapi
2) xero.xeroapi
3) rossjourdain.xero.xeroapi

1

A successful run will provide you the following.

<dependency>
  <groupId>com.rossjourdain.xero</groupId>
  <artifactId>xeroapi</artifactId>
  <version>1.2</version>
</dependency>

Compile deccanplato.

mvn compile

Getting Started : Opensource cloud integration : *launching shortly

TO - DO

  • Interface to tap
  • Consume customers cloud identity
  • Metrics

License

Author: KishorekumarNeelamegam (nkishore@megam.co.in)
R Pandiyaraja (raja.pandiya@yahoo.com)
Copyright: Copyright (c) 2012-2013 Megam Systems.
License: Apache License, Version 2.0

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

REST cloud connectors for the cloud providers Salesforce, Zoho, SugarCRM, Google App, Box.com, Dropbox... More to come.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.0%
  • Shell 1.0%