Re: [DISCUSS] Hammock to incubate at the ASF as Apache Hammock (incubating)

2017-01-11 Thread larry mccay
Hi John -

I do remain interested in this microservices framework and think it is a
great addition.

I am +1 (non-binding) on seeing this accepted into the incubator!
I would like to point out a couple observations:

1. I think that the proposal fails to communicate the simplicity of the
intended programming model as well as it could. I found another description
a bit more helpful from an external article [1]. I assume it oversimplifies
things and understates or omits the pluggability aspects but from a
programming model perspective I got a bit more from it. I feel the proposal
is more CDI centric which probably fits the project's original purpose but
is should maybe be more of an implementation detail with the ease of the
programming model being central moving forward.

"Hammock  is a framework for
bootstrapping CDI, launching a web server and deploying REST APIs. It is
made available through Maven Central and can be added to a project as a
dependency. There is a specific MicroProfile 
distribution which
gives a basic application structure including the requisite dependencies to
run Hammock. These include a Servlet Container (Undertow
), a JAX-RS runtime (Apache CXF
), a JSON-B library (Apache Johnzon
) and a CDI runtime (Weld
).

>From there it is relatively simple to start a running container, and from
there building REST endpoints. There are helpful Hammock-specific MicroProfile
samples  to get
started with."

2. While looking for more details on the intended programming model, I
stumbled upon another hammock project for microservices [2].

thanks,

--larry


1. https://www.voxxed.com/blog/2016/09/microprofile-1-0-developers-want/

2. http://www.stratoscale.com/blog/devops/rest-python-hammock/

On Mon, Jan 9, 2017 at 10:58 PM, John D. Ament 
wrote:

> Hi All,
>
> I would like to submit to you a proposal to bring Hammock to the ASF.
> Hammock is a lightweight microservices framework and CDI (Contexts and
> Dependency Injection for Java) extension library.  It is designed for small
> deployments first, high configurability and a simplified development
> model.  The core microservice runtime is meant to replace legacy Java based
> application servers while the remaining CDI extensions are meant to work in
> any CDI runtime.  Its a small team, mostly getting started with community
> contribution, however it makes sense to move into a foundation rather than
> try to keep it operating alone.
>
> I've copied the proposal text below.  The page can be found at
> https://wiki.apache.org/incubator/HammockProposal .  I'm looking forward
> to
> seeing interest and discussions around Hammock.  Some might say its my
> pride and joy.
>
> = 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 

[DISCUSS] Hammock to incubate at the ASF as Apache Hammock (incubating)

2017-01-09 Thread John D. Ament
Hi All,

I would like to submit to you a proposal to bring Hammock to the ASF.
Hammock is a lightweight microservices framework and CDI (Contexts and
Dependency Injection for Java) extension library.  It is designed for small
deployments first, high configurability and a simplified development
model.  The core microservice runtime is meant to replace legacy Java based
application servers while the remaining CDI extensions are meant to work in
any CDI runtime.  Its a small team, mostly getting started with community
contribution, however it makes sense to move into a foundation rather than
try to keep it operating alone.

I've copied the proposal text below.  The page can be found at
https://wiki.apache.org/incubator/HammockProposal .  I'm looking forward to
seeing interest and discussions around Hammock.  Some might say its my
pride and joy.

= 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 ===

 * John D. Ament
 * Libor Kramoliš
 * Irimia Dragos
 * Gerald Mücke

=== Alignment ===

Hammock currently leverages the following Apache products:
 * CXF
 * Tomcat
 * DeltaSpike
 * Johnzon
 * ActiveMQ Artemis
 * OpenWebBeans

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