In XebiaLabs Engineering, we make use of many open source software tools to build our products—frameworks like AngularJS, React, and Redux, but also tools such as Gradle and Jenkins. These tools and frameworks allow us to spend our time building great products without first having to build all of the underlying foundation.
Given how much we’ve benefited from using open source tools, we think it’s important to give back to the open source community, which is why we regularly contribute patches and bug fixes to the libraries we use.
To do Continuous Delivery and deployment at enterprise scale, we recommend our top-notch DevOps platform, which enables scalability across hundreds of applications and teams. Not only does our foundation consist of open source, we deliver the best of both worlds—an enterprise-class DevOps platform, along with the ability to easily integrate your favorite open source tools into it!
Below is a list of open source libraries that we’ve created and/or maintain:
JHipster is an open source development platform for generating, developing and deploying Spring Boot web applications and microservices. JHipster helps you create production-ready Spring Boot plus Angular web apps in minutes. You can also use the platform to create an entire microservice architecture using Spring Boot, Netflix OSS, Elastic stack and other technologies of your choice. JHipster is downloaded approximately 30 thousand times per month. Its total number of downloads to date is half a million. It also has over 7800 GitHub stars and more than 350 contributors, including official contributions from Google, Heroku, Okta, Hazelcast, Ehcache, and RedHat. Two of JHipsters core team members, including a project lead, work for Xebialabs. The new React support in JHipster (currently under active development) is the direct result of some of the work XebiaLabs is doing.
Overthere is a Java library for manipulating files and executing processes on remote hosts (i.e., do stuff “over there”). Overthere was originally developed for and is used in the XebiaLabs deployment automation product XL Deploy 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 is a Java library for spinning up test machines on cloud infrastructure and using 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 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 plus complete sftp version 0-3 implementation.
SMBJ is a Java library used to transfer files to and from Windows servers using SMB. SMB offers the fastest way of transferring large amounts of data to and from Windows hosts.
The Gradle license plugin is used to apply a license header to the source files in your project. By default, it scans every source set and reports warnings. It also creates format tasks, which properly format and apply the specified header. A bulk of the logic comes from the maven-license-plugin. The Gradle plugin also reports on the licenses of your dependencies.
We always enjoy hearing about how people use our software in their work. For example, earlier this year, DZone featured an article by Andriy Redko discussing the use of our Overcast library in combination with Docker to write test cases for an application. If you use any of our libraries or are interested in working on them, let us know in the comments below.