The IBM Watson Personality Insights
service uses linguistic analysis to extract cognitive and social
characteristics from input text such as email, text messages, tweets,
forum posts, and more. By deriving cognitive and social preferences, the
service helps users to understand, connect to, and communicate with
other people on a more personalized level.
1. Clone the GitHub repo as shown below.
pas@192-168-1-4:~/bluemix-apps/watson$ git clone https://github.com/watson-developer-cloud/personality-insights-nodejs.git
Cloning into 'personality-insights-nodejs'...
remote: Counting objects: 84, done.
remote: Total 84 (delta 0), reused 0 (delta 0), pack-reused 84
Unpacking objects: 100% (84/84), done.
Checking connectivity... done.
2. Create the service as shown below.
pas@192-168-1-4:~/bluemix-apps/watson/personality-insights-nodejs$ cf create-service personality_insights "IBM Watson Personality Insights Monthly Plan" personality-insights-service
Creating service personality-insights-service in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK
3. Edit the manifest.yml to use a unique application name , I normally use {myname}-appname
---
declared-services:
personality-insights-service:
label: personality_insights
plan: 'IBM Watson Personality Insights Monthly Plan'
applications:
- name: pas-personality-insights-nodejs
command: node app.js
path: .
memory: 256M
services:
- personality-insights-service
4. Push the application as shown below.
pas@192-168-1-4:~/bluemix-apps/watson/personality-insights-nodejs$ cf push
Using manifest file /Users/pas/ibm/bluemix/apps/watson/personality-insights-nodejs/manifest.yml
Creating app pas-personality-insights-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK
Creating route pas-personality-insights-nodejs.mybluemix.net...
OK
Binding pas-personality-insights-nodejs.mybluemix.net to pas-personality-insights-nodejs...
OK
Uploading pas-personality-insights-nodejs...
Uploading app files from: /Users/pas/ibm/bluemix/apps/watson/personality-insights-nodejs
Uploading 188.5K, 30 files
Done uploading
OK
Binding service personality-insights-service to app pas-personality-insights-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK
Starting app pas-personality-insights-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
-----> Downloaded app package (192K)
-----> Node.js Buildpack Version: v1.14-20150309-1555
-----> Requested node range: >=0.10
-----> Resolved node version: 0.10.36
-----> Installing IBM SDK for Node.js from cache
-----> Checking and configuring service extensions
-----> Installing dependencies
errorhandler@1.3.5 node_modules/errorhandler
├── escape-html@1.0.1
└── accepts@1.2.5 (negotiator@0.5.1, mime-types@2.0.10)
body-parser@1.11.0 node_modules/body-parser
├── bytes@1.0.0
├── media-typer@0.3.0
├── raw-body@1.3.2
├── depd@1.0.0
├── qs@2.3.3
├── on-finished@2.2.0 (ee-first@1.1.0)
├── iconv-lite@0.4.6
└── type-is@1.5.7 (mime-types@2.0.10)
express@4.11.2 node_modules/express
├── escape-html@1.0.1
├── merge-descriptors@0.0.2
├── utils-merge@1.0.0
├── methods@1.1.1
├── fresh@0.2.4
├── cookie@0.1.2
├── range-parser@1.0.2
├── cookie-signature@1.0.5
├── media-typer@0.3.0
├── finalhandler@0.3.3
├── vary@1.0.0
├── parseurl@1.3.0
├── serve-static@1.8.1
├── content-disposition@0.5.0
├── path-to-regexp@0.1.3
├── depd@1.0.0
├── qs@2.3.3
├── on-finished@2.2.0 (ee-first@1.1.0)
├── debug@2.1.3 (ms@0.7.0)
├── etag@1.5.1 (crc@3.2.1)
├── proxy-addr@1.0.7 (forwarded@0.1.0, ipaddr.js@0.1.9)
├── send@0.11.1 (destroy@1.0.3, ms@0.7.0, mime@1.2.11)
├── accepts@1.2.5 (negotiator@0.5.1, mime-types@2.0.10)
└── type-is@1.5.7 (mime-types@2.0.10)
jade@1.9.2 node_modules/jade
├── character-parser@1.2.1
├── void-elements@2.0.1
├── commander@2.6.0
├── mkdirp@0.5.0 (minimist@0.0.8)
├── with@4.0.2 (acorn-globals@1.0.3, acorn@1.0.1)
├── constantinople@3.0.1 (acorn-globals@1.0.3)
└── transformers@2.1.0 (promise@2.0.0, css@1.0.8, uglify-js@2.2.5)
watson-developer-cloud@0.9.8 node_modules/watson-developer-cloud
├── object.pick@1.1.1
├── cookie@0.1.2
├── extend@2.0.0
├── isstream@0.1.2
├── async@0.9.0
├── string-template@0.2.0 (js-string-escape@1.0.0)
├── object.omit@0.2.1 (isobject@0.2.0, for-own@0.1.3)
└── request@2.53.0 (caseless@0.9.0, json-stringify-safe@5.0.0, aws-sign2@0.5.0, forever-agent@0.5.2, form-data@0.2.0, stringstream@0.0.4, oauth-sign@0.6.0, tunnel-agent@0.4.0, qs@2.3.3, node-uuid@1.4.3, mime-types@2.0.10, combined-stream@0.0.7, http-signature@0.10.1, tough-cookie@0.12.1, bl@0.9.4, hawk@2.3.1)
-----> Caching node_modules directory for future builds
-----> Cleaning up node-gyp and npm artifacts
-----> No Procfile found; Adding npm start to new Procfile
-----> Building runtime environment
-----> Checking and configuring service extensions
-----> Installing App Management
-----> Node.js Buildpack is done creating the droplet
-----> Uploading droplet (12M)
0 of 1 instances running, 1 starting
1 of 1 instances running
App started
OK
App pas-personality-insights-nodejs was started using this command `node app.js`
Showing health and status for app pas-personality-insights-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK
requested state: started
instances: 1/1
usage: 256M x 1 instances
urls: pas-personality-insights-nodejs.mybluemix.net
last uploaded: Mon Mar 30 10:18:37 +0000 2015
state since cpu memory disk details
#0 running 2015-03-30 09:20:06 PM 0.0% 0 of 0 0 of 0
5. Access Application
This demo is based off the link below.
https://github.com/watson-developer-cloud/personality-insights-nodejs
More information as follows
http://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/doc/personality-insights/
Search This Blog
Monday, 30 March 2015
Thursday, 26 March 2015
IBM Bluemix demo using IBM Watson Tradeoff Analytics Service
The IBM Watson Tradeoff Analytics service helps you make
better choices under multiple conflicting goals. The service combines smart
visualization and recommendations for tradeoff exploration.
The following demo application shows how to use the IBM Watson Tradeoff Analytics Service from IBM Bluemix. This is the demo application for this service.
1. Clone the GitHub project as shown below.
pas@pass-mbp:~/bluemix-apps/watson$ git clone https://github.com/watson-developer-cloud/tradeoff-analytics-nodejs.git
Cloning into 'tradeoff-analytics-nodejs'...
remote: Counting objects: 112, done.
remote: Total 112 (delta 0), reused 0 (delta 0), pack-reused 112
Receiving objects: 100% (112/112), 163.05 KiB | 11.00 KiB/s, done.
Resolving deltas: 100% (38/38), done.
Checking connectivity... done.
2. Create the Tradeoff Analytics service as shown below.
pas@pass-mbp:~/bluemix-apps/watson$ cf create-service tradeoff_analytics free tradeoff-analytics-service
Creating service tradeoff-analytics-service in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK
3. Create a mainifest.yml as shown below, ensuring you edit the application name to be a unique name
declared-services:
tradeoff-analytics-service:
label: tradeoff_analytics
plan: free
applications:
- services:
- tradeoff-analytics-service
name: pas-tradeoff-analytics-nodejs
command: node app.js
path: .
memory: 128M
4. Push the application into Bluemix as follows
pas@pass-mbp:~/bluemix-apps/watson/tradeoff-analytics-nodejs$ cf push
Using manifest file /Users/pas/ibm/bluemix/apps/watson/tradeoff-analytics-nodejs/manifest.yml
Creating app pas-tradeoff-analytics-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK
Creating route pas-tradeoff-analytics-nodejs.mybluemix.net...
OK
Binding pas-tradeoff-analytics-nodejs.mybluemix.net to pas-tradeoff-analytics-nodejs...
OK
Uploading pas-tradeoff-analytics-nodejs...
Uploading app files from: /Users/pas/ibm/bluemix/apps/watson/tradeoff-analytics-nodejs
Uploading 204K, 45 files
Done uploading
OK
Binding service tradeoff-analytics-service to app pas-tradeoff-analytics-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK
Starting app pas-tradeoff-analytics-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
-----> Downloaded app package (156K)
-----> Node.js Buildpack Version: v1.14-20150309-1555
TIP: Avoid using semver ranges starting with '>' in engines.node
-----> Requested node range: >=0.10
-----> Resolved node version: 0.10.36
-----> Installing IBM SDK for Node.js from cache
-----> Checking and configuring service extensions
-----> Installing dependencies
body-parser@1.10.2 node_modules/body-parser
├── media-typer@0.3.0
├── bytes@1.0.0
├── raw-body@1.3.2
├── depd@1.0.0
├── qs@2.3.3
├── on-finished@2.2.0 (ee-first@1.1.0)
├── iconv-lite@0.4.6
└── type-is@1.5.7 (mime-types@2.0.10)
express@4.12.3 node_modules/express
├── merge-descriptors@1.0.0
├── escape-html@1.0.1
├── utils-merge@1.0.0
├── cookie-signature@1.0.6
├── methods@1.1.1
├── fresh@0.2.4
├── cookie@0.1.2
├── range-parser@1.0.2
├── finalhandler@0.3.4
├── content-type@1.0.1
├── vary@1.0.0
├── parseurl@1.3.0
├── serve-static@1.9.2
├── content-disposition@0.5.0
├── path-to-regexp@0.1.3
├── depd@1.0.0
├── on-finished@2.2.0 (ee-first@1.1.0)
├── qs@2.4.1
├── debug@2.1.3 (ms@0.7.0)
├── etag@1.5.1 (crc@3.2.1)
├── send@0.12.2 (destroy@1.0.3, ms@0.7.0, mime@1.3.4)
├── proxy-addr@1.0.7 (forwarded@0.1.0, ipaddr.js@0.1.9)
├── accepts@1.2.5 (negotiator@0.5.1, mime-types@2.0.10)
└── type-is@1.6.1 (media-typer@0.3.0, mime-types@2.0.10)
errorhandler@1.3.5 node_modules/errorhandler
├── escape-html@1.0.1
└── accepts@1.2.5 (negotiator@0.5.1, mime-types@2.0.10)
request@2.53.0 node_modules/request
├── caseless@0.9.0
├── json-stringify-safe@5.0.0
├── forever-agent@0.5.2
├── aws-sign2@0.5.0
├── stringstream@0.0.4
├── oauth-sign@0.6.0
├── tunnel-agent@0.4.0
├── isstream@0.1.2
├── node-uuid@1.4.3
├── combined-stream@0.0.7 (delayed-stream@0.0.5)
├── qs@2.3.3
├── form-data@0.2.0 (async@0.9.0)
├── mime-types@2.0.10 (mime-db@1.8.0)
├── http-signature@0.10.1 (assert-plus@0.1.5, asn1@0.1.11, ctype@0.5.3)
├── bl@0.9.4 (readable-stream@1.0.33)
├── tough-cookie@0.12.1 (punycode@1.3.2)
└── hawk@2.3.1 (cryptiles@2.0.4, sntp@1.0.9, boom@2.6.1, hoek@2.12.0)
jade@1.9.2 node_modules/jade
├── character-parser@1.2.1
├── void-elements@2.0.1
├── commander@2.6.0
├── mkdirp@0.5.0 (minimist@0.0.8)
├── with@4.0.1 (acorn-globals@1.0.2, acorn@0.11.0)
├── transformers@2.1.0 (promise@2.0.0, css@1.0.8, uglify-js@2.2.5)
└── constantinople@3.0.1 (acorn-globals@1.0.2)
watson-developer-cloud@0.9.6 node_modules/watson-developer-cloud
├── object.pick@1.1.1
├── cookie@0.1.2
├── extend@2.0.0
├── isstream@0.1.2
├── async@0.9.0
├── string-template@0.2.0 (js-string-escape@1.0.0)
└── object.omit@0.2.1 (isobject@0.2.0, for-own@0.1.3)
-----> Caching node_modules directory for future builds
-----> Cleaning up node-gyp and npm artifacts
-----> No Procfile found; Adding npm start to new Procfile
-----> Building runtime environment
-----> Checking and configuring service extensions
-----> Installing App Management
-----> Node.js Buildpack is done creating the droplet
-----> Uploading droplet (14M)
0 of 1 instances running, 1 starting
1 of 1 instances running
App started
OK
App pas-tradeoff-analytics-nodejs was started using this command `node app.js`
Showing health and status for app pas-tradeoff-analytics-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK
requested state: started
instances: 1/1
usage: 128M x 1 instances
urls: pas-tradeoff-analytics-nodejs.mybluemix.net
last uploaded: Thu Mar 26 09:44:55 +0000 2015
state since cpu memory disk details
#0 running 2015-03-26 08:45:51 PM 0.0% 43.5M of 128M 50.3M of 1G
5. Access the application
6. Click on the "Analyze Sample Data"
The demo can be found on the GutHub link below.
https://github.com/watson-developer-cloud/tradeoff-analytics-nodejs
The following demo application shows how to use the IBM Watson Tradeoff Analytics Service from IBM Bluemix. This is the demo application for this service.
1. Clone the GitHub project as shown below.
pas@pass-mbp:~/bluemix-apps/watson$ git clone https://github.com/watson-developer-cloud/tradeoff-analytics-nodejs.git
Cloning into 'tradeoff-analytics-nodejs'...
remote: Counting objects: 112, done.
remote: Total 112 (delta 0), reused 0 (delta 0), pack-reused 112
Receiving objects: 100% (112/112), 163.05 KiB | 11.00 KiB/s, done.
Resolving deltas: 100% (38/38), done.
Checking connectivity... done.
2. Create the Tradeoff Analytics service as shown below.
pas@pass-mbp:~/bluemix-apps/watson$ cf create-service tradeoff_analytics free tradeoff-analytics-service
Creating service tradeoff-analytics-service in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK
3. Create a mainifest.yml as shown below, ensuring you edit the application name to be a unique name
declared-services:
tradeoff-analytics-service:
label: tradeoff_analytics
plan: free
applications:
- services:
- tradeoff-analytics-service
name: pas-tradeoff-analytics-nodejs
command: node app.js
path: .
memory: 128M
4. Push the application into Bluemix as follows
pas@pass-mbp:~/bluemix-apps/watson/tradeoff-analytics-nodejs$ cf push
Using manifest file /Users/pas/ibm/bluemix/apps/watson/tradeoff-analytics-nodejs/manifest.yml
Creating app pas-tradeoff-analytics-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK
Creating route pas-tradeoff-analytics-nodejs.mybluemix.net...
OK
Binding pas-tradeoff-analytics-nodejs.mybluemix.net to pas-tradeoff-analytics-nodejs...
OK
Uploading pas-tradeoff-analytics-nodejs...
Uploading app files from: /Users/pas/ibm/bluemix/apps/watson/tradeoff-analytics-nodejs
Uploading 204K, 45 files
Done uploading
OK
Binding service tradeoff-analytics-service to app pas-tradeoff-analytics-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK
Starting app pas-tradeoff-analytics-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
-----> Downloaded app package (156K)
-----> Node.js Buildpack Version: v1.14-20150309-1555
TIP: Avoid using semver ranges starting with '>' in engines.node
-----> Requested node range: >=0.10
-----> Resolved node version: 0.10.36
-----> Installing IBM SDK for Node.js from cache
-----> Checking and configuring service extensions
-----> Installing dependencies
body-parser@1.10.2 node_modules/body-parser
├── media-typer@0.3.0
├── bytes@1.0.0
├── raw-body@1.3.2
├── depd@1.0.0
├── qs@2.3.3
├── on-finished@2.2.0 (ee-first@1.1.0)
├── iconv-lite@0.4.6
└── type-is@1.5.7 (mime-types@2.0.10)
express@4.12.3 node_modules/express
├── merge-descriptors@1.0.0
├── escape-html@1.0.1
├── utils-merge@1.0.0
├── cookie-signature@1.0.6
├── methods@1.1.1
├── fresh@0.2.4
├── cookie@0.1.2
├── range-parser@1.0.2
├── finalhandler@0.3.4
├── content-type@1.0.1
├── vary@1.0.0
├── parseurl@1.3.0
├── serve-static@1.9.2
├── content-disposition@0.5.0
├── path-to-regexp@0.1.3
├── depd@1.0.0
├── on-finished@2.2.0 (ee-first@1.1.0)
├── qs@2.4.1
├── debug@2.1.3 (ms@0.7.0)
├── etag@1.5.1 (crc@3.2.1)
├── send@0.12.2 (destroy@1.0.3, ms@0.7.0, mime@1.3.4)
├── proxy-addr@1.0.7 (forwarded@0.1.0, ipaddr.js@0.1.9)
├── accepts@1.2.5 (negotiator@0.5.1, mime-types@2.0.10)
└── type-is@1.6.1 (media-typer@0.3.0, mime-types@2.0.10)
errorhandler@1.3.5 node_modules/errorhandler
├── escape-html@1.0.1
└── accepts@1.2.5 (negotiator@0.5.1, mime-types@2.0.10)
request@2.53.0 node_modules/request
├── caseless@0.9.0
├── json-stringify-safe@5.0.0
├── forever-agent@0.5.2
├── aws-sign2@0.5.0
├── stringstream@0.0.4
├── oauth-sign@0.6.0
├── tunnel-agent@0.4.0
├── isstream@0.1.2
├── node-uuid@1.4.3
├── combined-stream@0.0.7 (delayed-stream@0.0.5)
├── qs@2.3.3
├── form-data@0.2.0 (async@0.9.0)
├── mime-types@2.0.10 (mime-db@1.8.0)
├── http-signature@0.10.1 (assert-plus@0.1.5, asn1@0.1.11, ctype@0.5.3)
├── bl@0.9.4 (readable-stream@1.0.33)
├── tough-cookie@0.12.1 (punycode@1.3.2)
└── hawk@2.3.1 (cryptiles@2.0.4, sntp@1.0.9, boom@2.6.1, hoek@2.12.0)
jade@1.9.2 node_modules/jade
├── character-parser@1.2.1
├── void-elements@2.0.1
├── commander@2.6.0
├── mkdirp@0.5.0 (minimist@0.0.8)
├── with@4.0.1 (acorn-globals@1.0.2, acorn@0.11.0)
├── transformers@2.1.0 (promise@2.0.0, css@1.0.8, uglify-js@2.2.5)
└── constantinople@3.0.1 (acorn-globals@1.0.2)
watson-developer-cloud@0.9.6 node_modules/watson-developer-cloud
├── object.pick@1.1.1
├── cookie@0.1.2
├── extend@2.0.0
├── isstream@0.1.2
├── async@0.9.0
├── string-template@0.2.0 (js-string-escape@1.0.0)
└── object.omit@0.2.1 (isobject@0.2.0, for-own@0.1.3)
-----> Caching node_modules directory for future builds
-----> Cleaning up node-gyp and npm artifacts
-----> No Procfile found; Adding npm start to new Procfile
-----> Building runtime environment
-----> Checking and configuring service extensions
-----> Installing App Management
-----> Node.js Buildpack is done creating the droplet
-----> Uploading droplet (14M)
0 of 1 instances running, 1 starting
1 of 1 instances running
App started
OK
App pas-tradeoff-analytics-nodejs was started using this command `node app.js`
Showing health and status for app pas-tradeoff-analytics-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK
requested state: started
instances: 1/1
usage: 128M x 1 instances
urls: pas-tradeoff-analytics-nodejs.mybluemix.net
last uploaded: Thu Mar 26 09:44:55 +0000 2015
state since cpu memory disk details
#0 running 2015-03-26 08:45:51 PM 0.0% 43.5M of 128M 50.3M of 1G
5. Access the application
6. Click on the "Analyze Sample Data"
The demo can be found on the GutHub link below.
https://github.com/watson-developer-cloud/tradeoff-analytics-nodejs
Wednesday, 11 March 2015
Adding MySQL driver to Spring Boot CLI Groovy Demo
I previously showed how you can use the Spring Boot CLI to create a simple Restful Application saying Hello World as shown in the link below using Groovy.
http://theblasfrompas.blogspot.com.au/2015/02/spring-boot-hello-world-from-command.html
If you wanted to extend that demo to include additional dependencies JAR file such as MySQL driver jar file we would do the following
1. You can add extensions to the CLI using the
> spring install mysql:mysql-connector-java:5.1.34
2. Package the application into a JAR which now includes the MySQL driver JAR file to enable you to connect to a MySQL instance from your application. You will need to write the code to do that , BUT now the JAR file is packaged in the JAR created to enable you to do that.
> spring jar -cp /usr/local/Cellar/springboot/1.2.1.RELEASE/lib/mysql-connector-java-5.1.34.jar hello.jar hello.groovy
Note: If you find that you reach the limit of the CLI tool, you will probably want to look at converting your application to full Gradle or Maven built “groovy project”
More Information
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#cli-using-the-cli
http://theblasfrompas.blogspot.com.au/2015/02/spring-boot-hello-world-from-command.html
If you wanted to extend that demo to include additional dependencies JAR file such as MySQL driver jar file we would do the following
1. You can add extensions to the CLI using the
install
command as shown below to add MySQL driver. This is installed in the LIB folder of the Spring Boot CLI location directory> spring install mysql:mysql-connector-java:5.1.34
2. Package the application into a JAR which now includes the MySQL driver JAR file to enable you to connect to a MySQL instance from your application. You will need to write the code to do that , BUT now the JAR file is packaged in the JAR created to enable you to do that.
> spring jar -cp /usr/local/Cellar/springboot/1.2.1.RELEASE/lib/mysql-connector-java-5.1.34.jar hello.jar hello.groovy
Note: If you find that you reach the limit of the CLI tool, you will probably want to look at converting your application to full Gradle or Maven built “groovy project”
More Information
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#cli-using-the-cli
Friday, 6 March 2015
Reading VCAP_SERVICES Postgresql service credentials within Bluemix
The following shows how you can easily read the VCAP_SERVICES postgresql credentials within your Java Code using the maven repo. This assumes your using the ElephantSQL Postgresql service. A single connection won't be ideal but for demo purposes might just be all you need.
1. First add the maven dependency as follows. This will add WebSphere Application Server Liberty Profile to your project
2. In your code , something as follows gets you the Connection details to make a JDBC connection withinyou java code.
1. First add the maven dependency as follows. This will add WebSphere Application Server Liberty Profile to your project
<dependency> <groupId>com.ibm.tools.target</groupId> <artifactId>was-liberty</artifactId> <version>LATEST</version> <type>pom</type> <scope>provided</scope> </dependency>
2. In your code , something as follows gets you the Connection details to make a JDBC connection withinyou java code.
private static Connection getConnection() throws Exception { Map<String, String> env = System.getenv(); if (env.containsKey("VCAP_SERVICES")) { JSONObject vcap = (JSONObject) JSON.parse(env.get("VCAP_SERVICES")); JSONObject service = null; // We don't know exactly what the service is called, // but it will contain "elephantsql" for (Object key : vcap.keySet()) { String keyStr = (String) key; if (keyStr.toLowerCase().contains("elephantsql")) { service = (JSONObject) ((JSONArray) vcap.get(keyStr)).get(0); break; } } if (service != null) { JSONObject creds = (JSONObject) service.get("credentials"); URI uri = URI.create((String) creds.get("uri")); String url = "jdbc:postgresql://" + uri.getHost() + ":" + uri.getPort() + uri.getPath(); String username = uri.getUserInfo().split(":")[0]; String password = uri.getUserInfo().split(":")[1]; return DriverManager.getConnection(url, username, password); } } throw new Exception("No ElephantSQL service URL found. Make sure you " + "have bound the correct services to your app."); }
Subscribe to:
Posts (Atom)