Hi, 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: http://wiki.apache.org/incubator/JVendingProposal Thanks, Shane Isbell ============= 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: http://openjpa.apache.org/. 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 - JSR-124 Specification: http://jcp.org/aboutJava/communityprocess/final/jsr124/ - JVending Web Site: http://jvending.sf.net - JVending Project Page: http://sf.net/projects/jvending - Provisioning and Digital Rights Management (with JVending): http://sys-con.com/read/43940.htm: - JVending MMS Client: http://sys-con.com/read/44695.htm - Product Line Architecture (using JVending for Delivery): http://www.dre.vanderbilt.edu/~jules/jbcs-jwhite.pdf Initial Source The latest source for JVending provisioning project has been moved to SVN: http://jvending.svn.sourceforge.net/viewvc/jvending/trunk/ 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: http://jvending.sourceforge.net/dependencies.html Required Resources Mailing Lists [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] Subversion Directory https://svn.apache.org/repos/asf/incubator/jvending Issue Tracking JIRA JVENDING 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