Skip to content

Commit

Permalink
Fix jsr223 interface and jpms test
Browse files Browse the repository at this point in the history
  • Loading branch information
gudzpoz committed May 22, 2024
1 parent 4cca751 commit 7a1e6c6
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 32 deletions.
4 changes: 4 additions & 0 deletions jpms-example/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ plugins {

repositories {
mavenCentral()
maven {
url 'https://jitpack.io'
}
}

java {
Expand All @@ -30,6 +33,7 @@ dependencies {
implementation project(path: ':lua53', configuration: 'instrumentedJars')
implementation project(path: ':lua54', configuration: 'instrumentedJars')
implementation project(path: ':luajit', configuration: 'instrumentedJars')
implementation project(':luaj')
runtimeOnly project(path: ':lua51', configuration: 'desktopNatives')
runtimeOnly project(path: ':lua52', configuration: 'desktopNatives')
runtimeOnly project(path: ':lua53', configuration: 'desktopNatives')
Expand Down
4 changes: 3 additions & 1 deletion jpms-example/src/main/java/module-info.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
module party.iroiro.luajava.jpms {
exports party.iroiro.luajava.jpms;

requires party.iroiro.luajava;
requires party.iroiro.luajava.lua51;
requires party.iroiro.luajava.lua52;
requires party.iroiro.luajava.lua53;
requires party.iroiro.luajava.lua54;
requires party.iroiro.luajava.luajit;
}
requires party.iroiro.luajava.luaj;
}
20 changes: 6 additions & 14 deletions jpms-example/src/main/java/party/iroiro/luajava/jpms/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@
import party.iroiro.luajava.lua52.Lua52;
import party.iroiro.luajava.lua53.Lua53;
import party.iroiro.luajava.lua54.Lua54;
import party.iroiro.luajava.luaj.LuaJ;
import party.iroiro.luajava.luajit.LuaJit;

import static party.iroiro.luajava.Lua.LuaError.OK;

public class Main implements AutoCloseable {
public static void main(String[] args) {
try (Main test = new Main()) {
Expand All @@ -26,26 +25,19 @@ private Main() {
new Lua53(),
new Lua54(),
new LuaJit(),
new LuaJ(),
};
}

private void test() {
for (Lua L : luas) {
// Accessing java.*
assertEquals(L.run("out = java.import('java.lang.System').out"), OK);
assertEquals(L.run("out:println('Hello World: ' .. _VERSION)"), OK);
L.run("out = java.import('java.lang.System').out");
L.run("out:println('Hello World: ' .. _VERSION)");
// Accessing explicitly modulized classes
assertEquals(L.run("out:println(java.import('party.iroiro.luajava.jpms.Main').class:getName())"), OK);
L.run("out:println(java.import('party.iroiro.luajava.jpms.Main').class:getName())");
// Accessing implicit modules
assertEquals(L.run("out:println(java.import('party.iroiro.luajava.lua51.Lua51').class:getName())"), OK);
}
}

private void assertEquals(Object a, Object b) {
if (a != b) {
if (a != null && !a.equals(b)) {
throw new AssertionError();
}
L.run("out:println(java.import('party.iroiro.luajava.lua51.Lua51').class:getName())");
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import party.iroiro.luajava.ClassPathLoader;
import party.iroiro.luajava.Consts;
import party.iroiro.luajava.Lua;
import party.iroiro.luajava.LuaException;
import party.iroiro.luajava.util.ClassUtils;
import party.iroiro.luajava.value.LuaValue;

Expand All @@ -24,7 +25,6 @@ public final class LuaScriptEngine extends AbstractScriptEngine implements Scrip

private Lua getLua() throws ScriptException {
try {
//noinspection deprecation
Lua L = (Lua) ClassUtils.forName(luaClass, null).newInstance();
L.setExternalLoader(new ClassPathLoader());
L.openLibraries();
Expand Down Expand Up @@ -100,11 +100,7 @@ private static <T> void assertNotNull(T t, String name) {
@Override
public CompiledScript compile(String s) throws ScriptException {
try (Lua L = getLua()) {
if (L.load(s) != Lua.LuaError.OK) {
String message = L.toString(-1);
L.pop(1);
throw new ScriptException(message);
}
L.load(s);
ByteBuffer dump = L.dump();
return new CompiledScript() {
@Override
Expand All @@ -114,18 +110,13 @@ public Object eval(ScriptContext scriptContext) throws ScriptException {
putContext(L, scriptContext);
int top = L.getTop();
L.load(dump, "CompiledScript");
if (L.pCall(0, Consts.LUA_MULTRET) == Lua.LuaError.OK) {
int returnCount = L.getTop() - top;
LuaValue[] returnValues = new LuaValue[returnCount];
for (int i = 0; i < returnCount; i++) {
returnValues[returnCount - i - 1] = L.get();
}
return returnValues.length == 0 ? null : returnValues;
} else {
String message = L.toString(-1);
L.pop(1);
throw new ScriptException(message);
L.pCall(0, Consts.LUA_MULTRET);
int returnCount = L.getTop() - top;
LuaValue[] returnValues = new LuaValue[returnCount];
for (int i = 0; i < returnCount; i++) {
returnValues[returnCount - i - 1] = L.get();
}
return returnValues.length == 0 ? null : returnValues;
}
}

Expand All @@ -134,6 +125,8 @@ public ScriptEngine getEngine() {
return LuaScriptEngine.this;
}
};
} catch (LuaException e) {
throw new ScriptException(e);
}
}

Expand Down

0 comments on commit 7a1e6c6

Please sign in to comment.