BeanShell

Abstract

The following proposal is about BeanShell, see JSR-274: The BeanShell Scripting Language implementation.

Proposal

BeanShell is a small, free, embeddable Java source interpreter with object scripting language features, written in Java. BeanShell dynamically executes standard Java syntax and extends it with common scripting conveniences such as loose types, commands, and method closures like those in Perl and JavaScript. Users can use BeanShell interactively for Java experimentation and debugging as well as to extend your applications in new ways. Scripting Java lends itself to a wide variety of applications including rapid prototyping, user scripting extension, rules engines, configuration, testing, dynamic deployment, embedded systems, and even Java education. BeanShell is small and embeddable, so users can call BeanShell from Java applications to execute Java code dynamically at run-time or to provide extensibility in applications. Alternatively, users can use standalone BeanShell scripts to manipulate Java applications; working with Java objects and APIs dynamically. Since BeanShell is written in Java and runs in the same VM as application, users can freely pass references to "live" objects into scripts and return them as results.

Background

BeanShell is a long living project born in the 2000 thanks to Patrick Niemeyer initial effort, who is still maintaining the project, with the help of Daniel Leuck and contributions voluntarily sent by users.

Rationale

Currently there are no projects hosted by the ASF focused on providing JSR-274 implementation, moving the existing BeanShell project under the Apache umbrella would mean the ASF provides the JSR-274 reference implementation.

Current Status

Meritocracy

The historical BeanShell team believes in meritocracy and always acted as a community. Mailing list, open issue tracker and other communication channels have always been adopted since its first release. The adoption in a larger community, such as Apache, is the natural evolution for BeanShell. Moreover, the Apache standards will enforce the existing BeanShell community practices and will be a foundation for future committers involvement.

Core Developers

In alphabetical order:

Alignment

Main aim of the project is to develop and maintain a fully flavored JSR-274 implementation that can be used by other Apache projects that need a Java Scripting Language.

Known Risks

Orphaned Products

The increasing number of BeanShell adopters and the raising interest for the JSR-274 technology let us believe that there is a minimal risk for this work to being abandoned from the community.

Moreover, BeanShell has been already used by the following projects for years:

Inexperience with Open Source

All of the committers have experience working in one or more open source projects inside and outside ASF.

Homogeneous Developers

The list of initial committers are geographically distributed across the world with no one company being associated with a majority of the developers. Many of these initial developers are experienced Apache committers already and all are experienced with working in distributed development communities.

Reliance on Salaried Developers

To the best of our knowledge, none of the initial committers are being paid to develop code for this project. BeanShell has already proven its capability to attract external developers.

Relationships with Other Apache Products

A number of existing ASF projects already benefit from BeanShell implementation, including Apache OpenOffice, Apache Maven and Apache JMeter. It is hoped that members of those projects will be interested in contributing to and adopting this implementation.

An Excessive Fascination with the Apache Brand

Even if the BeanShell community recognizes the power and the attractiveness of the ASF brand, we are absolutely aware of our already established role in the wide JSR-274 community. Furthermore, we are convinced that we can enthusiastically bring inside the ASF new and fresh energies in order to improve our visions, insights and knowledge about the other projects and, most important, to have the possibility of enlarge our small community with talented and passionate developers.

Documentation

BeanShell Documentation

  1. BeanShell Project Homepage

  2. Beanshell code hosted at Apache Extra

BeanShell Related Specifications

  1. JSR 274: The BeanShell Scripting Language

Initial Source

The intial source comprises code developed on ikayzo.org licensed under the Dual Licensing Sun Public License / Gnu Lesser Public License but the project had been relicensed under the Apache License v2.0 in Apache Extra repository (contributed under Grant from Patrick Niemeyer for BeanShell).

Source and Intellectual Property Submission Plan

Source code will be moved from Apache Extra space inside the SVN space of the podling.

External Dependencies

BeanShell has no external dependencies.

Cryptography

The project does not handle cryptography in any way.

Required Resources

Initial Committers

Names of initial committers - in alphabetical order - with current ASF status:

Sponsors

Champion

Nominated Mentors

Sponsoring Entity

Other interested people (in alphabetical order)

BeanShellProposal (last edited 2013-05-24 07:14:48 by SimoneTripodi)