The official and active project home for BeanShell.
The only reccomended version is a manual build of the master branch. Support for legacy releases reached end of line, only issues and pull requests against master can be accepted.
The next release will be BeanShell 3.0 as outlined in the development roadmap. It was decided that the next release will be a production ready major version with all outstanding issues resolved to encourage community envolvement and testing.
Most of the outstanding issues were imported from sourceforge, reported many years ago and now orphaned without owners. The majority will already be resolved in master, the valid ones need to be identified to the developers. An earnest call goes out for assistance in processing these issues to verify if they are still valid, reproducible or already resolved.
New language enhancement remain open for comments and discussion.
Items identified as out of scope for 3.0 are scheduled for the next release.
StrictJavacompliance, unit tests and outstanding issues
You 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 you can call BeanShell from your Java applications to execute Java code dynamically at run-time or to provide extensibility in your applications. Alternatively, you 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 your application, you can freely pass references to "live" objects into scripts and return them as results.
The development snapshot branch is master, the currently recommended version for use. To build, pull the project and run the maven command.
$ mvn install
Requires as a minimum JDK 8 but will build with Java 9 and Java 10 as well.
Latest release: not supported (use the recommended development snapshot)
Beanshell releases are published to Maven Central. To use Beanshell with Maven, add this to your
<dependencies> <dependency> <groupId>org.apache-extras.beanshell</groupId> <artifactId>bsh</artifactId> <version>2.0b6</version> </dependency> </dependencies>
<!-- just beanshell --> <repository> <id>bintray-beanshell-Beanshell</id> <name>bintray</name> <url>http://dl.bintray.com/beanshell/Beanshell</url> <snapshots><enabled>false</enabled></snapshots> </repository> <!-- or use JCenter --> <repository> <id>central</id> <name>bintray</name> <url>http://jcenter.bintray.com</url> <snapshots><enabled>false</enabled></snapshots> </repository>
You can also download the
bsh.jar binary from Bintray.
If you want to execute the Beanshell User Interface, either double-click the JAR file, or run it with:
$ java -jar bsh-2.0b6.jar
For a BeanShell interactive shell you can either use the java command:
$ java -cp bsh-2.0b6.jar bsh.Interpreter
or the supplied helper scripts
bsh.bat available under the scripts folder.
You will need Java 5 or later installed.
$ mvn clean install
You are encouraged to raise a Github Pull Request with any suggested improvements and fixes!
You can also raise an issue for any questions or bugs. Remember, your stacktrace might be particularly useful for others!
Please note, only issues and pull requests made against the development branch merge-fork-beanshell2 will be considered.
The old documentation available at http://beanshell.org may also be useful.
Current development effort is focused towards releasing BeanShell 3.0. The following road map serves as a guide to gauge progress to the next release.
Projects that we know of which use BeanShell. Is your project not listed here? Let us know by submitting an issue.
On 2015-09-23, the BeanShell repository moved from https://code.google.com/a/apache-extras.org/p/beanshell/ to its new home on https://github.com/beanshell/beanshell/ as Google Code was been discontinued.
The project adapted an open collaborative approach using GitHub pull requests and has since grown its committer base beyond the original Apache Extra team.
http://beanshell.org/ remains available for older versions.
BeanShell was proposed as an incubator project to move to Apache Software Foundation. In preparation for this, the codebase for BeanShell 2.0b4 was donated to ASF by a code grant, and the license changed to Apache License, version 2.0.
The source code was moved to http://apache-extras.org/ - a project home hosted by Google Code, that was only informally associated with Apache Software Foundation. Many of the BeanShell committers were Apache committers, and thus Apache Extras seemed a natural home.
However the project did not move into the Apache incubator, and remained at apache-extras.org as an independent project.
In March 2015 Google announced it would discontinue Google Code, which provided the hosting for Apache Extras.
The community forked BeanShell in May 2007 creating the BeanShell2 project hosted on google code. The new fork saw crucial fixes and updates with several releases between 2011 and 2014.
The project moved to GitHub in June 2016 after google code was discontinued and is independently maintained.
In August 2017 BeanShell decided to merge all the changes from the BeanShell2 fork back upstream ensuring that no effort was lost during this period.
In 2005 JSR 274 is accepted for officially defining the language but this was never completed. The current status is dormant as voted by the JCP in June 2011.
BeanShell was originally developed by Patrick Niemeyer at http://beanshell.org/ - distributed as BeanShell (2.0b4 and earlier) were distributed under GNU Lesser General Public License (LGPL) and Sun Public License (SPL).
In 2000 the project was hosted on sourceforge which quickly saw interest in the new java scripting language grow.