Open Source Java Development Tools

For testing, SQL access, development, static code analysis and more.

— tools

— Testing

xmlunit, jacoco, sqlunit, cdiunit, dbunit, arquillian, jmeter, soapui, etc…

google CodePro Analytix



Oracle PL/SQL Tutorial

Getting IBM WS MQ Queue Count


hawtio is a lightweight and modular HTML5 web console with lots of plugins for managing your Java stuff
plugins for camel, git, jboss, jmx, logs, maven, wiki


Hikari Connection Pool

DataSource Configuration in Java:

HikariConfig config = new HikariConfig();
config.addDataSourceProperty(“cachePrepStmts”, “true”);
config.addDataSourceProperty(“prepStmtCacheSize”, “250”);
config.addDataSourceProperty(“prepStmtCacheSqlLimit”, “2048”);
return new HikariDataSource(config);

gradle dependency:

compile ‘com.zaxxer:HikariCP:2.4.1’

Press Release: Cubes

Introducing Cubes

The new iOS app creates visual collections of the content that matters to users


October 15, 2015 — New York Techweek– Cubes (, creators of the mobile app bringing elegance and order to email and cloud-based services, announced the launch of its beta product today at New York Techweek. Available on iOS, Cubes automatically collects, organizes and visually displays files and links from a multitude of services. With everything in one place, users can quickly discover content by type, author, topic or service.


Free on the App Store worldwide, Cubes supports Gmail, Yahoo, iCloud,, Exchange, Office365 and Dropbox, with additional cloud storage and social media services coming soon.


Highlights of Cubes


  • Visual collections: All your important files, links, photos and more are beautifully displayed in one place for easy access.

  • Content, automatically organized: All your email attachments, email links and cloud-based content are collected and arranged into intelligent Cubes.

  • Create your own Cubes: Curate your content based on interest, project, topic or anything else you’d like. It’s an efficient way to pull together content from different services.

  • Contact Cubes: Create “contact cubes” to easily see content shared with your most important contacts.


With more businesses adopting SaaS models, and some offices eschewing paper records altogether, cleaning up the cloud has never been more important. Digital content is spread throughout the cloud, making it difficult to find the right content on the go. Cubes not only catalogs files across multiple services, it caters to our innate preference to process information visually.


Citing the growing popularity of Instagram and Pinterest, Cubes CEO and co-founder Kalpesh Rathod noted, “Both science and the marketplace show consumers prefer to consume content visually. We process visuals 60,000 times faster than text and 90 percent of the information transmitted to the brain is visual.”


“Our users don’t have to waste time switching between different services or scrolling through lists. Visual collections makes it a breeze to quickly see everything that matters,” Rathod said.


A graduate of engineering and MBA programs, Kalpesh is a serial entrepreneur with experience launching companies. Cubes has already attracted investor backing from former senior executives at Microsoft and Oracle.


Former president of Microsoft Canada and investor Simon Witts said, “Kalpesh and the team have found a sweet spot between elegance and efficiency. Cubes will undoubtedly help mobile professionals be more productive.”


About Cubes


Cubes is a mobile app that creates visual collections to make it easy to find the content that matters. From the Toronto-based team behind Inbox Cube, Cubes automatically collects, organizes and visually displays content from email and cloud-based services. Finally, mobile professionals can view attachments, shared links, photos and files in one place. Find, read and share content more easily with Cubes. Learn more at

Top InfoSec OSINT Tools and Tutorials

Security Tools for Pentesting, Malware Analysis, Infosec

Quick Tip: Java 8 Quick Output

For Java 8, I have an ArrayList of Strings I want to display.   Couldn't be easier.   Using SLF4J for logging and running in Spring Boot. 

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List; -> log.debug("Value: [{}]", value));



Top 25 Reactive Big Data (JVM) Resources and Articles

Ingestion system in Scala/Akka/Spray/… seems like a pumped up super Flume
Smack Stack (Mesos + )
Avro Resources
Kite works with avro
Key Features:
  • Row based with schema
  • schema in the file
  • schema is json
  • block compression, splittable files
  • schema evolution
Spark : @databricksMesos : @mesosphere Akka : @typesafe Cassandra : @DataStax Kafka : @ConfluentInc
Akka/Avro Persistence?
Akka / Event Sourcing
Apache Gora
Java 8 Streams
Do we store our Avro in HBase?
Apache Flume for Avro Consumption
Do we store and process Avro files on HDFS?
Replace Chron and Quartz
RDS Postgres or EC2 Postgres
jHiccup (JVM check)

The Drive to Open APIs and Open Source

Cities are publishing data and using open source

Governments are doing open source

Hexagonal Architecture

JVM DevOps with Immutable Infrastructure

PalletOps for JVM
Immutable Infrastructure

Reactive Programming, Reactive Streams, Lean, Unit Tests, DDD, Microservices, 12 Factor Apps

Resume 2015


Timothy Spann


I am a senior application developer and tech lead with extensive experience designing, coding, testing, running agile teams and supporting next-generation web based solutions in various Linux, Unix and Windows environments. I am a Senior Field Engineer at Pivotal Software. I have several blogs that I post about various technologies I am exploring including: Android, JDK 8, Scala, HTML 5 with WebSockets, Node.JS, Spring 4, Spring Boot, Redis, RabbitMQ, MongoDB, Groovy, SpringXD, Cloud, Apache Spark, Tachyon, Big Data, Hadoop, NoSQL, Microservices, 12 Factor Applications, Lambda architecture, reactive programming and PaaS. I am passionate about learning new technologies and how best to utilize them for real world applications.




Rebuilding your infrastructure

Marathon and Mesos
HAProxy, SmartStack, Zookeeper
Alerting with ElasticSearch (
Redis Driver – Lettuce – has some nice features
Java Redis Orm
Advanced Java Data Structures
Redis Meetup – NY 04-August-2015
SSL Tunnel with Redis
Java with Redis
Redis Proxy
Testing Points
Linux Performance Tools
Docker/Microservices issues
Consul and Puppet for Service Discovery & Mgmt
Drill for Mongo query
Moving to Scala



Apache Drill with AVRO and MongoDB

Drill with REST and JDBC -> AVRO, MONGO
Set up Zookeeper based cluster
firewall was blocking it < watch these ports
select * from dfs.`/Users/timothyspann/Downloads/apache-drill-1.1.0/sample-data/region.parquet`
SELECT * FROM cp.`employee.json` LIMIT 20
show databases;
use mongo.`security-mydatabase`;
show tables;
Mongo Issue:   I have similar observations. At the moment I can only query elements that are strings. Numbers and dates do not work.
This is Drill 1.1 with Mongo 3.0 issue
bin/sqlline –u jdbc:drill:schema=dfs;zk=local

Microservices Weekly Report

Microservices Security
Interesting, may be helpful
Stateless authentication server
Big Data
AWS ElasticBeanStalk with Docker

Controlling Multiple Linux Boxes at Once

For running a few commands to multiple boxes

find . -iname “*myfile*”

grep -iR “mytext” *

Of course, Puppet or Chef is a better option.    Or just use AWS ElasticBeanStalk or CloudFoundry.

Microservices, Devops, Scala, Akka, Spring Boot and more…

Spring Boot Microservices



New Open Source From IBM

NodeJS Metrics

Agentless System Crawler

DevOps Report

Scala / AKKA

Everything about Tor


Java 8

Redis Speed Burn

Redis commands per second

Improve performance with Twemproxy or dynomite

Mac Ulimit


Test Data and Generated Data    <–  nice one   <- really but they receive email

QuickHit: Check Mail Checking from AWS EC2 with JavaMail

To avoid having to install maven or gradle or specialized tools, we just put in a simple class and shell script.    First download the mail jars you need from here.   A simple wget will work on the links.  Keep them in the same dir as the .java and you can use the shell script below.   Real quick and dirty, but works for testing if your local EC2 instance can send email and there’s no firewall or other issues.

import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

try { Properties props = System.getProperties();
                props.put("", "localhost");
                props.put("mail.debug", "true");
                Session session = Session.getDefaultInstance(props, null);
                Transport transport = session.getTransport("smtp");
                MimeMessage message = new MimeMessage(session);
                Address fromAddress = new InternetAddress("root@localhost.localdomain");
                InternetAddress to = new InternetAddress("");
                message.addRecipient(Message.RecipientType.TO, to);
                message.setSubject("Test Mail");
                message.setText("Test Body");
                transport.connect(host, from);
            } catch (Exception x) {

javac -cp imap-1.5.4.jar:javax.mail.jar:smtp-1.5.4.jar
java -cp imap-1.5.4.jar:javax.mail.jar:smtp-1.5.4.jar:. MailCheck

Setup Jenkins and DevTools on Ubuntu on AWS EC2


Install Git, Java7, Java 8 and Maven

sudo apt-get install git

sudo apt-add-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java8-installer

sudo apt-get install oracle-java7-installer

sudo apt-get install oracle-java8-set-default

sudo apt-get install maven


Install Jenkins

sudo wget -q -O – | sudo apt-key add –
sudo sh -c ‘echo deb binary/ > /etc/apt/sources.list.d/jenkins.list’
sudo apt-get update
sudo apt-get install jenkins


Install MongoDB

sudo apt-key adv –keyserver hkp:// –recv 7F0CEB10

echo “deb “$(lsb_release -sc)”/mongodb-org/3.0 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

sudo apt-get update

sudo apt-get install -y mongodb-org

sudo apt-get install -y mongodb-org=3.0.4 mongodb-org-server=3.0.4 mongodb-org-shell=3.0.4 mongodb-org-mongos=3.0.4 mongodb-org-tools=3.0.4

sudo service mongod start

sudo tail -5000 /var/log/mongodb/mongod.log


Install Postgresql

sudo apt-get update
sudo apt-get install postgresql postgresql-contrib


Install Redis

sudo apt-get install build-essential

sudo apt-get install tcl8.5

sudo wget

sudo tar xzf redis-stable.tar.gz

cd redis-stable


make test

sudo make install

cd utils

sudo ./

sudo service redis_6379 start


Install Scala

sudo wget

sudo dpkg -i scala-2.11.7.deb


Install SBT and Gradle

echo “deb /” | sudo tee -a /etc/apt/sources.list.d/sbt.list
sudo apt-get update
sudo apt-get install sbt

install typesafe activator

sudo wget


sudo apt-get install unzip

curl -s | bash

source “/root/.gvm/bin/”

gvm install gradle



Setup back for jenkins




Add 8080 to all same ports as 80