incubator-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <>
Subject [Incubator Wiki] Update of "JVendingProposal" by shaneisbell
Date Fri, 14 Sep 2007 21:32:15 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Incubator Wiki" for change notification.

The following page has been changed by shaneisbell:

New page:
= JVending Proposal =

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

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

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

== Rationale ==
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 sourceforge.

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

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

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

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

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

== Sponsors ==

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

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message