As probably all software development companies we develop and maintain a number of proprietary libraries that we share across projects. Today we migrated a set of our Java libraries to Bitbucket, so they are now available for the general public. We have open sourced them under an Apache 2.0 license
Our common Java libraries (as we call them) have been used throughout several projects for many years, we obviously consider them production ready. As they are mainly utility libraries they do not evolve that rapidly, but we will keep maintaining them and add all future code changes on the open source repository.
These libraries were primarily designed for Spring based applications and as such depend on Spring framework 3+. We try to keep the amount of other dependencies as small as possible.
Documentation and website
Along with the source code that is available on our Bitbucket space, we are migrating everything to our public tool stack:
- The Javadoc is the most up-to-date documentation right now
- Our Confluence space will contain tutorials and release notes
- Use our public JIRA when you want to report a bug or request a feature
General documentation on the Confluence space is still in making. For now your best bet is the Javadoc and source code (unit tests), or just dropping us a question.
An overview of the different libraries
Different utilities are packaged in separate libraries:
Contains a number of concurrency related constructs. Most important are the ObjectLockRepository and the DistributedLockRepository. The former provides an easy way to link a lock to a domain object, the latter is a simple JDBC based implementation for creating distributed locks.
A diverse set of small utilities:
- Base classes and services for domain objects with localized properties
- Configuration helpers for Logback and Log4J (legacy)
- Custom Hibernate validators for multiple email addresses and ISBN codes
- Generic interfaces and service extensions for ConversionService related operations
- A TypedPropertyMap construct that allows you to work with a String based map of properties in a strongly typed fashion using Spring ConversionService.
The latest release of our libraries has been pushed to maven central and can be imported using:
<dependency> <groupId>com.foreach.libs</groupId> <artifactId>library-name</artifactId> <version>0.12</version> </dependency>