BeanShell

IPMC vote thread

Abstract

The following proposal is about Bean{{`Shell, see JSR-274: The Bean}}`Shell Scripting Language implementation.

Proposal

Bean{{`Shell is a small, free, embeddable Java source interpreter with object scripting language features, written in Java. Bean}}Shell 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 Java`Script. 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. Bean{{`Shell is small and embeddable, so users can call Bean}}Shell 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 Bean`Shell 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 Bean{{`Shell 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 Bean}}Shell. Moreover, the Apache standards will enforce the existing Bean`Shell community practices and will be a foundation for future committers involvement.

Core Developers

In alphabetical order:

  • Daniel Leuck <dan at ikayzo dot com>,
  • Patrick Niemeyer <pat at ikayzo dot com>
  • Pedro Giffuni <pfg at apache dot org>
  • Simone Tripodi <simonetripodi at apache dot org>

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:

  • Apache OpenOffice
  • Apache Maven
  • Apache JMeter

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 Bean{{`Shell implementation, including Apache Open}}`Office, 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 Bean}}`Shell).

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:

  • Daniel Leuck <dan at ikayzo dot com> (ICLA signed ?)
  • Patrick Niemeyer <pat at ikayzo dot com> (ICLA signed)
  • Pedro Giffuni <pfg at apache dot org> (Committer)
  • Peter Jodeleit <pejobo70 at gmail dot com> (ICLA signed)
  • Simone Gianni <simoneg at apache dot org> (Member)
  • Simone Tripodi <simonetripodi at apache dot org> (Member)
  • Sebastian Bazley <sebb at apache dot org> (Member)

Sponsors

Champion

  • Simone Tripodi <simonetripodi at apache dot org> (Member)

Nominated Mentors

  • Sebastian Bazley <sebb at apache dot org> (Member)
  • Mohammad Nour <mnour at apache dot org> (Member)
  • Dave Fisher <wave at apache dot org> (Member)

Sponsoring Entity

Other interested people (in alphabetical order)

  • Andrea Pescetti <pescetti at apache dot org> (Committer)
  • No labels