incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shane Isbell" <>
Subject [PROPOSAL] JVending
Date Fri, 14 Sep 2007 22:01:19 GMT

I have a proposal to bring over JVending to the Apache incubator. I have put
a good deal of work into this project over the last few years, but it is
languishing on Sourceforge due to lack of community interest.  I've seen
what the incubator has done for the NMaven podling; I would like to breathe
similar life into JVending by using the incubator to generate interest,
build a community and recruit good developers. I'd like to see if there is
any interest from the Apache community in getting JVending fully compliant
with JSR-124 and passing the TCK, as well as subsequent work on the portal
and various adaptors. I have also been reading about some of the new work
with Product Line Architectures coming out using JVending: this could be an
important area of growth for social networks and the delivery of content,
and another area of focus for JVending. Currently, there are no other
developers; I am in need of mentors and committers.

Proposal Link:

Shane Isbell


JVending Proposal
JVending is a content provisioning system that implements most of the J2EE
Client Provisioning Specification (JSR-124).

JVending is a content provisioning system that implements most of the J2EE
Client Provisioning Specification (JSR-124). It provides catalog management,
device detection and Web/WAP based browsing. It is designed to run on
embedded servers and DBs, as well as within more traditional carrier systems
and deployments.

The mobile application space deals with numerous handheld devices, each with
different capabilities. It's a challenge to match content requirements -
such as screen size, MIDP version, and memory - to an appropriate device.
The JSR-124 expert group addressed these issues by creating a specification
that defined how to match content requirements to device capabilities. The
specification also covers discovery of content, stocking of content and
delivery adapters for provisioning. While the specification arose to address
pain points within the mobile industry, the specification covers all content
and all devices (including PCs).

JVending initially arose from a desire to demonstrate the basics of DRM and
OTA provisioning, but later developed into a fully functional provisioning
server based on the JSR-124 spec. An early goal, maintained throughout the
life of the project, has been to build a provisioning server that is light
enough to deploy on PCs so that the individual can participate in the
sharing and publishing of content.

JVending is the only open-source version of JSR-124. While there are a
number of other content repositories, JVending is the only one specialized
for general capability matching and custom interactions to the device,
making it highly extensible. For example, users can easily create custom
interfaces - SOAP, RDF, HTTP, OTA - that sit on top of a common repository
with advanced device capability matching. In my case, I recently developed a
Maven adapter to deliver artifacts to the build machine.

There is also exciting, new work in Product Line Architectures that
integrates JVending with Scatter for matching devices and applications
across millions of variants. This has important implications for social and
location aware content delivery.

ASF would be a good home for JVending due to the ASF's emphasis on community
building, which is an area that has been enormously difficult to do on

Initial Goals
- Change code base to ASLv2

- Import code base to incubator SVN

- Remove LGPL Hibernate dependencies

- Recruit developers

Current Status
JVending implements most of the JSR-124 spec but has not been tested with
the TCK. The last release of JVending provisioning J2EE component was April
2006. There has been subsequent work related to integrating with WURFL and
adapters for provisioning of Maven artifacts. No active work is going on at
this time.

There is currently only one developer on the project. Additional developers
will be added by following the Apache meritocracy process.

Various companies have expressed interest in deploying JVending but no
active community has involved in its development or use. Given the current
trends in self-publishing of content, there is a large potential base of
users and developers, particularly those wanting to deliver personal content
to mobile devices. Also, since JVending is implementing a JSR spec, I expect
there to be interest in commercial developers wanting to leverage open
standards in the provisioning space. The goal is to attract 3-5 developers
from different companies/organizations to sustain the project.

Core Developers
Shane Isbell, who is the only developer on the project, founded JVending.

JVending currently has dependencies on Apache projects jaxme for processing
of configuration files and Lucene for content search. It is packaged as a
WAR file and runs on Tomcat. It also uses Apache Maven for the build and
currently supports delivery of Maven artifacts through an adapter. The
Apache NMaven podling uses a modified version of JVending's registry
component. So there is a fair amount of existing alignment with existing
Apache projects.

The Hibernate support will be removed, with possible replacement with
OpenJPA: Provided general community support,
MyFaces will be used to build out the portal.

Known Risks
Orphaned projects
This is the primary risk to JVending. It only has one developer and needs to
build out a community. There is a strong code base to build upon; community
building will be the primary, initial focus of the project.

Inexperience with Open Source
JVending started as an open-source project in February 2004. The primary
developer is the founder of Apache NMaven podling (and an Apache Committer).

Reliance on Salaried Developers
The primary developer is not paid to work on JVending.

An Excessive Fascination with the Apache Brand
>From first hand experience, I know that the Apache brand does attract
committers and a broad range of interested parties. The culture is also one
of respect among members of the community. These factors are a key in
deciding where to grow a project.

- JSR-124 Specification:

- JVending Web Site:

- JVending Project Page:

 - Provisioning and Digital Rights Management (with JVending):

- JVending MMS Client:

- Product Line Architecture (using JVending for Delivery):

Initial Source
The latest source for JVending provisioning project has been moved to SVN:

Source and Intellectual Property Submission Plan
The current license for JVending is LGPL, but since all of the code is
coming from a single developer (who is already an Apache Committer), it will
be a simple process of converting to ASLv2 license and importing code from
the sourceforge code base.

External Dependencies
JVending does use Hibernate, which is covered under LGPL; this will need to
be replaced. There is also one config file that jaxme cannot process so
there is a dependency on the JAXB reference implementation covered under
CDDL. A complete list of dependencies can be found here:

Required Resources
Mailing Lists

Subversion Directory

Issue Tracking

Initial Committers
Shane Isbell (shane.isbell at gmail dot com), Current Apache Committer

Nominated Mentors
In need of mentors to volunteer.

Sponsoring Entity
In need of sponsoring entity. Since JVending is not a common component, I
would see the sponsoring entity as the incubator

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message