Hammock Proposal

Abstract

Hammock is a CDI (Contexts & Dependency Injection for Java) based Microservices framework. It provides basic bootstrapping as well as a number of CDI extensions focused on the tools typically used in microservices development.

Proposal

The proposal is to create the Hammock Project within the Apache Software Foundation.

Background

Hammock was conceived as an initial prototype from the Resteasy codebase some years back to prove out CDI integration in a JAX-RS container on top of Netty as a webserver. Over time, it grew into a more robust implementation supporting pluggable servlet containers, JAX-RS implementations. It has also started to house various CDI extensions that focus on cloud environments and tooling useful to microservices.

A small developer and user community have formed around the tooling, allowing it to be tried and tested in various deployment environments.

Rationale

The need for frameworks based around microservices has grown over time. The need to leverage various Java EE technologies has allowed projects to leverage these tools without changing their development methodologies.

Initial Goals

Hammock has just completed its 1.0 release. Upon migrating to ASF infrastructure, we anticipate various re-packaging steps - maven coordinates, package name changes. A website will need to be created in addition to new features coming into the code base.

Current Status

Hammock has a strong pipeline of features coming in. It is aligned to the CDI 1.2 API but will go to CDI 2.0 once available and stabilized. New users are popping up and features coming in as those users need them.

Meritocracy

The Hammock codebase has been Apache v2 licensed since the beginning. As we start to move to the ASF, we expect to more formalize development strategies and build out

Community

The target community are those interested in CDI but want to slim down their container dependencies. The Microprofile community has focused on that pretty heavily and we see interest coming from there frequently.

Core Developers

Alignment

Hammock currently leverages the following Apache products:

In addition, there are plans to add integration for Camel, Juneau, Kafka in the near term.

Known Risks

Orphaned products

Hammock was one of the first six implementations of Microprofile. It was the first implementation not backed by a software vendor but instead a true community effort. Based on the path forward for both the project and Microprofile, it is not likely to be abandoned any time soon.

Inexperience with Open Source

Half of the committers are active in other areas of open source. With time, the remaining half will gain their footing.

Homogenous Developers

Hammock was not started within a company. Instead it came together as a shared vision from a number of community members. The developer community behind it do not hail from any single company, giving the project a leg up in staying diverse.

Reliance on Salaried Developers

None of the current developers are paid salary to work on or maintain Hammock.

Relationships with Other Apache Products

Hammock is built from a large number of existing Apache Products. Full list can be found in the alignment section.

A Excessive Fascination with the Apache Brand

The move to the ASF is focused on creating a level playing field and a true community around the product. Leveraging the ASF is based on core committer competencies within the ASF (over Eclipse Foundation or Linux Foundation).

Documentation

All user documentation can be found in the wiki - https://github.com/hammock-project/hammock/wiki

Initial Source

All source code from https://github.com/hammock-project, with the exclusion of micrprofile-samples are eligible for inclusion. The logo of Hammock was a paid item. A license can be requested from the author to transfer the rights to the logo.

External Dependencies

Hammock Core:

Hammock Extensions:
Please note, all extension modules are considered optional.

Required Resources

Mailing lists

Git Repositories

The project expects to leverage several git repositories:

While the ASF currently requires projects to use git hosted at the ASF as their canonical repository, a move to github as master (or gitbox) would be welcomed once stabilized.

Issue Tracking

The project presently uses GitHub issues. A move to JIRA may provide more structure.

Other Resources

Initial Committers

Affiliations

Sponsors

Champion

John D. Ament johndament AT apache DOT org

Nominated Mentors

Informal Mentors

Sponsoring Entity

We are requesting the Incubator to sponsor this project.