summary refs log tree commit diff
diff options
context:
space:
mode:
authorJulien Lepiller <julien@lepiller.eu>2018-05-26 00:00:37 +0200
committerJulien Lepiller <julien@lepiller.eu>2018-05-27 18:47:07 +0200
commit3402e651c87190299b0d1cab18ace4ea29e65b1f (patch)
tree2280ec8d01c1b93dabe67d6ccd3d6838f5b3780d
parent3fa18fe796e02f65ef55ea070cbec35593e19625 (diff)
downloadguix-3402e651c87190299b0d1cab18ace4ea29e65b1f.tar.gz
gnu: Add java-janino.
* gnu/packages/java.scm (java-janino): New variable.
-rw-r--r--gnu/packages/java.scm23
1 files changed, 23 insertions, 0 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index cfd8f81592..a810a53585 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -10017,3 +10017,26 @@ adds Plexus support to the Sisu-Inject container.")
 @code{IExpressionEvaluator}, @code{IScriptEvaluator}, @code{IClassBodyEvaluator}
 and @code{ISimpleCompiler} interfaces.")
     (license license:bsd-3)))
+
+(define-public java-janino
+  (package
+    (inherit java-commons-compiler)
+    (name "java-janino")
+    (arguments
+     `(#:jar-name "janino.jar"
+       #:source-dir "src/main/java"
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'chdir
+           (lambda _
+             (chdir "janino"))))))
+    (inputs
+     `(("java-commons-compiler" ,java-commons-compiler)))
+    (native-inputs
+     `(("java-junit" ,java-junit)
+       ("java-hamcrest-core" ,java-hamcrest-core)))
+    (description "Janino is a Java compiler.  Janino can compile a set of
+source files to a set of class files like @code{javac}, but also compile a
+Java expression, block, class body or source file in memory, load the bytecode
+and execute it directly in the same JVM.  @code{janino} can also be used for
+static code analysis or code manipulation.")))