BeanShell est un petit interpréteur de code source Java intégrable, gratuit et doté de fonctionnalités de langage de script objet, écrit en Java . Il s'exécute dans l' environnement d'exécution Java (JRE), exécute dynamiquement la syntaxe Java standard et l'étend avec des fonctionnalités de script courantes telles que des types libres, des commandes et des fermetures de méthodes, comme celles de Perl et JavaScript.
Caractéristiques
Bien que BeanShell permette à ses utilisateurs de définir des fonctions qui peuvent être appelées à partir d'un script, sa philosophie de base a été de ne pas polluer sa syntaxe avec trop d'extensions et de « sucre syntaxique », garantissant ainsi que le code écrit pour un compilateur Java peut généralement être exécuté de manière interprétative par BeanShell sans aucune modification et, presque autant, vice versa. Cela fait de BeanShell un outil de test et de débogage populaire pour la plate-forme de machine virtuelle Java (JVM).
BeanShell prend en charge les objets scriptés en tant que fermetures de méthodes simples comme celles de Perl et JavaScript .
BeanShell est un projet open source et a été intégré dans de nombreuses applications, telles que Apache OpenOffice , Apache Ant , WebLogic Server Application Server, Apache JMeter , jEdit , ImageJ , JUMP GIS , Apache Taverna et bien d'autres. BeanShell fournit une interface de programmation d'application (API) facile à intégrer . Il peut également être exécuté en mode ligne de commande ou dans son propre environnement graphique.
Histoire
Les premières versions de BeanShell (0.96, 1.0) ont été publiées par Patrick Niemeyer en 1999, suivies d'une série de versions. BeanShell 1.3.0 a été publiée en août 2003. La version 2.0b1 a été publiée en septembre 2003, culminant avec la version 2.0b4 en mai 2005, qui en janvier 2015 est la version la plus récente publiée sur la page Web officielle.
BeanShell est inclus dans la distribution Linux Debian depuis 1999.
BeanShell était en cours de normalisation via le Java Community Process (JCP) sous JSR 274.
Suite à l'approbation par le JCP du scrutin de révision du JSR BeanShell en juin 2005, aucune activité visible n'a eu lieu autour de BeanShell. Le statut du JSR 274 est « Dormant ».
Depuis Java 9, Java inclut à la place JShell , un shell de boucle de lecture-évaluation-impression (REPL) différent basé sur la syntaxe Java, indiquant que BeanShell ne sera pas continué.
Un fork de BeanShell, BeanShell2 , a été créé en mai 2007 sur le site Web Google Code , aujourd'hui disparu . Le projet beanshell2 a apporté un certain nombre de correctifs et d'améliorations à BeanShell et à plusieurs versions. En janvier 2020 , la dernière version de BeanShell2 est la v2.1.9, publiée en mars 2018. Ce fork a été fusionné dans l'arborescence d'origine en 2018, conservant toutes les modifications indépendantes des deux, et le projet officiel a été hébergé sur GitHub .
En décembre 2012, suite à une proposition visant à accepter BeanShell comme projet Apache Incubator, BeanShell a été concédé sous licence à l'Apache Software Foundation et migré vers Apache Extras, changeant la licence en Apache License 2.0 . Le projet n'a pas été accepté mais a plutôt été projeté pour faire partie d' Apache Commons à une date ultérieure.
En raison de changements dans la situation personnelle des développeurs, la communauté BeanShell n'a cependant pas terminé la migration vers Apache, mais est restée sur Apache Extras. Le projet a depuis publié BeanShell 2.0b5, qui est utilisé par Apache OpenOffice et Apache Taverna .
Un installateur automatisé Windows, BeanShell Double-Click, a été créé en 2013. Il inclut des fonctionnalités d'intégration de bureau.