| BeanShell | |
|---|---|
| Paradigm | Object-oriented,scripting |
| Designed by | JCP |
| First appeared | 1999; 27 years ago (1999) |
| Stable release | |
| Typing discipline | Dynamic,strong |
| Implementation language | Java |
| Platform | JVM |
| OS | Cross-platform |
| License | 2012:Apache-2.0[a][2][3] 2001:SPL-1.0 orLGPL-2.1-only[b][4] 1999:LGPL-2.1-only[c][5] |
| Website | github |
| Influenced by | |
| Java,JavaScript,Perl | |
BeanShell is a small, free, embeddable Java source interpreter with object scripting language features, written inJava. It runs in theJava Runtime Environment (JRE), 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.
While BeanShell allows its users to definefunctions that can be called from within a script, its underpinning philosophy has been to not pollute its syntax with too many extensions and "syntactic sugar", thereby ensuring that code written for a Javacompiler can usually be executedinterpretively by BeanShell without any changes and, almost just as much, vice versa. This makes BeanShell a populartesting anddebugging tool for theJava virtual machine (JVM) platform.
BeanShell supports scripted objects as simple methodclosures like those inPerl andJavaScript.
BeanShell is anopen source project and has been incorporated into many applications, such asApache OpenOffice,Apache Ant,WebLogic Server Application Server,Apache JMeter,jEdit,ImageJ,JUMP GIS,Apache Taverna, and many others. BeanShell provides an easy to integrateapplication programming interface (API). It can also be run in command-line mode or within its own graphical environment.
The first versions of BeanShell (0.96, 1.0) were released by Patrick Niemeyer in 1999, followed by a series of versions. BeanShell 1.3.0 was released in August 2003. Version 2.0b1 was released in September 2003, culminating with version 2.0b4 in May 2005, which as of January 2015 is the newest release posted on the official webpage.[6]
BeanShell has been included in the Linux distributionDebian since 1999.[7]
BeanShell was undergoingstandardization through theJava Community Process (JCP) under JSR 274.[8]
Following the JCP approval of the BeanShell JSR Review Ballot in June 2005, no visible activity was taking place around BeanShell.[9] The JSR 274 status is "Dormant".
Since Java 9, Java instead includesJShell, a differentread–eval–print loop (REPL) shell based on Java syntax, indicating that BeanShell will not be continued.[10]
Afork of BeanShell,BeanShell2, was created in May 2007 on the now-defunctGoogle Code Web site.[11] Thebeanshell2 project has made a number of fixes and enhancements to BeanShell and multiple releases. As of January 2020[update], the latest version of BeanShell2 is v2.1.9, released March 2018.[12] This fork was merged back into the original tree in 2018,[13] retaining all the independent changes from both, and the official project has been hosted atGitHub.[14]
In December 2012, following a proposal to accept BeanShell as an Apache Incubator project,[15] BeanShell was licensed toThe Apache Software Foundation and migrated to the Apache Extras,[16] changing the license toApache License 2.0. The project was not accepted but instead projected to become part of theApache Commons at a future time.
Due to changes in the developers' personal circumstances, the BeanShell community did not, however, complete the move to Apache,[17] but remained at Apache Extras. The project has since released BeanShell 2.0b5,[16] which is used byApache OpenOffice andApache Taverna.
A Windows automated installer, BeanShell Double-Click,[18] was created in 2013. It includes desktop integration features.