Skip to content

Commit 0dbb5d0

Browse files
committed
Merge remote-tracking branch 'origin/master' into staging
2 parents 6cf7f22 + e7eeff9 commit 0dbb5d0

File tree

4 files changed

+178
-9
lines changed

4 files changed

+178
-9
lines changed

.release

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.9.116
1+
0.9.142

.release.details

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.9.116 116 43e6d94ebc74d11715890b0d33b2528e1c95031c namely-yearly-weaner
1+
0.9.142 142 2edd8dd85121ac77a4902724aa4457ff0e107eac enthusiastic-dipper-from-knights-hill

README.md

Lines changed: 70 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,96 @@
1-
Build Status: [![Circle CI](https://circleci.com/gh/sillelien/java-as-script.png?style=badge)](https://circleci.com/gh/sillelien/java-as-script)
1+
Build: [![Circle CI](https://circleci.com/gh/sillelien/java-as-script.png?style=badge)](https://circleci.com/gh/sillelien/java-as-script)
2+
23
[ ![Download](https://api.bintray.com/packages/sillelien/maven/java-as-script/images/download.svg) ](https://bintray.com/sillelien/maven/java-as-script/_latestVersion)
34

45
Java-as-Script [![Alpha](https://img.shields.io/badge/Status-Alpha-yellowgreen.svg?style=flat)](http://github.com/sillelien/java-as-script)
56
==============
67
Java-as-Script provides a hot reloading JSR-223 implementation for Java. This version is a fork of [the original project](https://github.com/jmarranz/relproxy) specifically it has been reduced in scope to focus entirely on the JSR-223 aspect of the original project. It is also primarily been forked for use in the [Dollar project](https://github.com/sillelien/dollar).
78

9+
Make sure you have the JCenter repo in your pom.xml
10+
811
```xml
912
<repositories>
1013
<repository>
1114
<snapshots>
1215
<enabled>false</enabled>
1316
</snapshots>
14-
<id>bintray-sillelien-maven</id>
17+
<id>central</id>
1518
<name>bintray</name>
16-
<url>http://dl.bintray.com/sillelien/maven</url>
19+
<url>http://jcenter.bintray.com</url>
1720
</repository>
1821
</repositories>
19-
```
22+
```
23+
24+
Then just add the following dependency
2025

2126
```xml
2227
<dependency>
2328
<groupId>com.sillelien</groupId>
2429
<artifactId>java-as-script</artifactId>
25-
<version>0.9.116</version>
30+
<version>0.9.135</version>
2631
</dependency>
2732
```
2833

34+
[ ![Download](https://api.bintray.com/packages/sillelien/maven/java-as-script/images/download.svg) ](https://bintray.com/sillelien/maven/java-as-script/_latestVersion)
35+
36+
Below is a complete example of using Java-as-Script as a JSR-223 scripting engine, with the language being Java.
37+
38+
```java
39+
package com.sillelien.jas;
40+
41+
import com.sillelien.jas.jproxy.JProxy;
42+
import com.sillelien.jas.jproxy.JProxyConfig;
43+
import com.sillelien.jas.jproxy.JProxyScriptEngine;
44+
import com.sillelien.jas.jproxy.JProxyScriptEngineFactory;
45+
46+
import javax.script.Bindings;
47+
import javax.script.ScriptEngine;
48+
import javax.script.ScriptEngineManager;
49+
import javax.tools.Diagnostic;
50+
import javax.tools.JavaFileObject;
51+
import java.util.Collections;
52+
import java.util.List;
53+
54+
public class Demo {
55+
56+
public static void main(String[] ignored) throws Exception {
57+
58+
//Initializing and configuring the JSR-223 script engine
59+
JProxyConfig jpConfig = JProxy.createJProxyConfig();
60+
jpConfig.setEnabled(true)
61+
.setRelProxyOnReloadListener((objOld, objNew, proxy, method, args) -> {
62+
//TODO
63+
})
64+
// .setInputPath(".")
65+
.setScanPeriod(-1)
66+
.setClassFolder("./tmp/classes")
67+
.setCompilationOptions(Collections.emptyList())
68+
.setJProxyDiagnosticsListener(diagnostics -> {
69+
List<Diagnostic<? extends JavaFileObject>> diagnosticList = diagnostics.getDiagnostics();
70+
diagnosticList.stream()
71+
.filter(diagnostic -> diagnostic.getKind().equals(Diagnostic.Kind.ERROR))
72+
.forEach(System.err::println);
73+
});
74+
75+
JProxyScriptEngineFactory factory = JProxyScriptEngineFactory.create();
76+
77+
ScriptEngineManager manager = new ScriptEngineManager();
78+
manager.registerEngineName("java", factory);
79+
Bindings bindings = manager.getBindings();
80+
bindings.put("in", "World");
81+
82+
ScriptEngine engine = manager.getEngineByName("java");
83+
JProxyScriptEngine scriptEngine = (JProxyScriptEngine) engine;
84+
scriptEngine.init(jpConfig);
85+
86+
//Your code goes here, e.g.
87+
88+
scriptEngine.eval("System.out.println(\"Hello \"+context.getAttribute(\"in\",javax.script.ScriptContext.ENGINE_SCOPE));return null;\n",bindings);
89+
90+
}
91+
}
92+
93+
```
2994

3095
Dependencies: [![Dependency Status](https://www.versioneye.com/user/projects/5960064c6725bd0049735d0b/badge.svg?style=flat-square)](https://www.versioneye.com/user/projects/5960064c6725bd0049735d0b)
3196

@@ -39,5 +104,3 @@ Please contact me through Gitter (chat) or through GitHub Issues.
39104

40105
For commercial support please <a href="mailto:hello@neilellis.me">contact me directly</a>.
41106
-------
42-
43-
Java-as-Script is a JSR 223 [Java Scripting API](http://docs.oracle.com/javase/6/docs/technotes/guides/scripting/programmer_guide/index.html) implementation for "Java" as the target scripting language. You can embed and execute Java code as scripting into your Java program. In case of Java "scripting", there is no a new language, is pure Java code with compilation on the fly.

README.staged.md

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
Build: [![Circle CI](https://circleci.com/gh/sillelien/java-as-script.png?style=badge)](https://circleci.com/gh/sillelien/java-as-script)
2+
3+
[ ![Download](https://api.bintray.com/packages/sillelien/maven/java-as-script/images/download.svg) ](https://bintray.com/sillelien/maven/java-as-script/_latestVersion)
4+
5+
Java-as-Script [![Alpha](https://img.shields.io/badge/Status-Alpha-yellowgreen.svg?style=flat)](http://github.com/sillelien/java-as-script)
6+
==============
7+
Java-as-Script provides a hot reloading JSR-223 implementation for Java. This version is a fork of [the original project](https://github.com/jmarranz/relproxy) specifically it has been reduced in scope to focus entirely on the JSR-223 aspect of the original project. It is also primarily been forked for use in the [Dollar project](https://github.com/sillelien/dollar).
8+
9+
Make sure you have the JCenter repo in your pom.xml
10+
11+
```xml
12+
<repositories>
13+
<repository>
14+
<snapshots>
15+
<enabled>false</enabled>
16+
</snapshots>
17+
<id>central</id>
18+
<name>bintray</name>
19+
<url>http://jcenter.bintray.com</url>
20+
</repository>
21+
</repositories>
22+
```
23+
24+
Then just add the following dependency
25+
26+
```xml
27+
<dependency>
28+
<groupId>com.sillelien</groupId>
29+
<artifactId>java-as-script</artifactId>
30+
<version>0.9.142</version>
31+
</dependency>
32+
```
33+
34+
[ ![Download](https://api.bintray.com/packages/sillelien/maven/java-as-script/images/download.svg) ](https://bintray.com/sillelien/maven/java-as-script/_latestVersion)
35+
36+
Below is a complete example of using Java-as-Script as a JSR-223 scripting engine, with the language being Java.
37+
38+
```java
39+
package com.sillelien.jas;
40+
41+
import com.sillelien.jas.jproxy.JProxy;
42+
import com.sillelien.jas.jproxy.JProxyConfig;
43+
import com.sillelien.jas.jproxy.JProxyScriptEngine;
44+
import com.sillelien.jas.jproxy.JProxyScriptEngineFactory;
45+
46+
import javax.script.Bindings;
47+
import javax.script.ScriptEngine;
48+
import javax.script.ScriptEngineManager;
49+
import javax.tools.Diagnostic;
50+
import javax.tools.JavaFileObject;
51+
import java.util.Collections;
52+
import java.util.List;
53+
54+
public class Demo {
55+
56+
public static void main(String[] ignored) throws Exception {
57+
58+
//Initializing and configuring the JSR-223 script engine
59+
JProxyConfig jpConfig = JProxy.createJProxyConfig();
60+
jpConfig.setEnabled(true)
61+
.setRelProxyOnReloadListener((objOld, objNew, proxy, method, args) -> {
62+
//TODO
63+
})
64+
// .setInputPath(".")
65+
.setScanPeriod(-1)
66+
.setClassFolder("./tmp/classes")
67+
.setCompilationOptions(Collections.emptyList())
68+
.setJProxyDiagnosticsListener(diagnostics -> {
69+
List<Diagnostic<? extends JavaFileObject>> diagnosticList = diagnostics.getDiagnostics();
70+
diagnosticList.stream()
71+
.filter(diagnostic -> diagnostic.getKind().equals(Diagnostic.Kind.ERROR))
72+
.forEach(System.err::println);
73+
});
74+
75+
JProxyScriptEngineFactory factory = JProxyScriptEngineFactory.create();
76+
77+
ScriptEngineManager manager = new ScriptEngineManager();
78+
manager.registerEngineName("java", factory);
79+
Bindings bindings = manager.getBindings();
80+
bindings.put("in", "World");
81+
82+
ScriptEngine engine = manager.getEngineByName("java");
83+
JProxyScriptEngine scriptEngine = (JProxyScriptEngine) engine;
84+
scriptEngine.init(jpConfig);
85+
86+
//Your code goes here, e.g.
87+
88+
scriptEngine.eval("System.out.println(\"Hello \"+context.getAttribute(\"in\",javax.script.ScriptContext.ENGINE_SCOPE));return null;\n",bindings);
89+
90+
}
91+
}
92+
93+
```
94+
95+
Dependencies: [![Dependency Status](https://www.versioneye.com/user/projects/5960064c6725bd0049735d0b/badge.svg?style=flat-square)](https://www.versioneye.com/user/projects/5960064c6725bd0049735d0b)
96+
97+
-------
98+
99+
** If you use this project please consider giving us a star on [GitHub](http://github.com/sillelien/java-as-script). **
100+
101+
Please contact me through Gitter (chat) or through GitHub Issues.
102+
103+
[![GitHub Issues](https://img.shields.io/github/issues/sillelien/java-as-script.svg)](https://github.com/sillelien/java-as-script/issues) [![Join the chat at https://gitter.im/sillelien/java-as-script](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/sillelien/java-as-script?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
104+
105+
For commercial support please <a href="mailto:hello@neilellis.me">contact me directly</a>.
106+
-------

0 commit comments

Comments
 (0)