XebiaLabs Open-Source Libraries

| January 10, 2017 | 0 Comments

In XebiaLabs Engineering, we make use of quite a lot of open-source software to build our products. Frameworks like AngularJS, react, redux but also tools like Gradle and Jenkins. These allow us to spend our time building great products without first having to build all the underlying infrastructure.

 We are always on the lookout for opportunities to give back to the community. We contribute patches and bug fixes to the libraries we use and we have a list of open-source libraries that we have created and/or maintain:

Overthere

Overthere is a Java library to manipulate files and execute processes on remote hosts, i.e. do stuff “over there”. Overthere was originally developed for and is used in the XebiaLabs deployment automation product Deployit as a way to perform tasks on remote hosts, e.g. copy configuration files, install EAR files or restart web servers. Another way of looking at it is to say that Overthere gives you java.io.File and java.lang. Process as they should’ve been: as interfaces, created by a factory and extensible through an SPI mechanism.

Overcast

Overcast is a Java library to spin up test machines on cloud infrastructure and use the hosts to test against. It allows you to write the tests independent of the cloud infrastructure being used. Support is included for Amazon, Vagrant, VirtualBox and docker, among others.

SSHJ

SSHJ enables you to connect to remote hosts via the internet standard SSH protocol from a Java program. It supports public key, password and keyboard-interactive authentication, local and remote port forwarding and scp + complete sftp version 0-3 implementation.

SMBJ

SMBJ is a Java library used to transfer files to and from Windows servers using SMB. Using SMB is the fastest way of transferring large amounts of data to and from Windows hosts.

Gradle license plugin

This plugin is used to apply a license header to the source files in your project. By default it will scan every source set and report warnings. It will also create format tasks, which will properly format and apply the specified header. A bulk of the logic comes from the maven-license-plugin. This plugin will also report on the licenses of your dependencies.

 

This way everyone benefits, which is the beauty of open-source software. We always enjoy hearing about people using our software in their work. For example, DZone featured an article by Andriy Redko recently discussing the use of our Overcast library in combination with Docker to write test cases for an application. If you yourself use any of our libraries or are interested in working on them, let us know!


Martin van Vliet

About the Author ()

As Vice President of Engineering for XebiaLabs, Martin oversees development of XebiaLabs products. He has over 20 years of experience in the high-tech industry, building and leading software development teams. As a member of the senior leadership team, Martin contributes to company strategic direction and aligns software development with overall business and commercial objectives.