Skip to content

Commit d003cfc

Browse files
authored
Merge pull request #709 from jooby-project/698
Forking JVM does not work with jooby:run fix #698
2 parents 23dbed5 + d1c3b1e commit d003cfc

3 files changed

Lines changed: 33 additions & 18 deletions

File tree

jooby-run/src/main/java/org/jooby/run/AppModuleLoader.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,6 @@
1818
*/
1919
package org.jooby.run;
2020

21-
import org.jboss.modules.DependencySpec;
22-
import org.jboss.modules.Module;
23-
import org.jboss.modules.ModuleIdentifier;
24-
import org.jboss.modules.ModuleLoadException;
25-
import org.jboss.modules.ModuleLoader;
26-
import org.jboss.modules.ModuleSpec;
27-
import org.jboss.modules.ResourceLoaderSpec;
28-
import org.jboss.modules.ResourceLoaders;
29-
import org.jooby.internal.run__.JoobyRef;
30-
3121
import java.io.BufferedReader;
3222
import java.io.File;
3323
import java.io.FileReader;
@@ -44,6 +34,15 @@
4434
import java.util.Set;
4535
import java.util.jar.JarFile;
4636

37+
import org.jboss.modules.DependencySpec;
38+
import org.jboss.modules.Module;
39+
import org.jboss.modules.ModuleIdentifier;
40+
import org.jboss.modules.ModuleLoadException;
41+
import org.jboss.modules.ModuleLoader;
42+
import org.jboss.modules.ModuleSpec;
43+
import org.jboss.modules.ResourceLoaderSpec;
44+
import org.jboss.modules.ResourceLoaders;
45+
4746
public class AppModuleLoader extends ModuleLoader {
4847

4948
private Map<ModuleIdentifier, ModuleSpec> modules;
@@ -82,7 +81,8 @@ private static Map<ModuleIdentifier, ModuleSpec> newModule(final String name,
8281
String mId = name.replace(".jar", "");
8382
ModuleSpec.Builder builder = ModuleSpec.build(ModuleIdentifier.fromString(mId));
8483
if (level == 0) {
85-
String classurl = JoobyRef.class.getResource(JoobyRef.class.getSimpleName() + ".class")
84+
String classurl = AppModuleLoader.class
85+
.getResource("/" + Main.JOOBY_REF.replace(".", "/") + ".class")
8686
.toString();
8787
String jartoken = ".jar!";
8888
File jar = new File(URI
@@ -140,7 +140,7 @@ private static Map<ModuleIdentifier, ModuleSpec> newModule(final String name,
140140
return modules;
141141
}
142142

143-
@SuppressWarnings({"rawtypes", "unchecked"})
143+
@SuppressWarnings({"rawtypes", "unchecked" })
144144
private static Set<String> jdkPaths() throws Exception {
145145
Class jdkPath = AppModuleLoader.class.getClassLoader().loadClass("org.jboss.modules.JDKPaths");
146146
Field field = jdkPath.getDeclaredField("JDK");
@@ -168,12 +168,12 @@ private static Set<String> pkgs(final File file) throws IOException {
168168
if (file.exists()) {
169169
return pkgs(new FileReader(file));
170170
}
171-
return new LinkedHashSet<String>();
171+
return new LinkedHashSet<>();
172172
}
173173

174174
private static Set<String> pkgs(final Reader reader) throws IOException {
175175
try (BufferedReader in = new BufferedReader(reader)) {
176-
Set<String> pkgs = new LinkedHashSet<String>();
176+
Set<String> pkgs = new LinkedHashSet<>();
177177
String line = in.readLine();
178178
while (line != null) {
179179
pkgs.add(line.trim());
@@ -183,7 +183,7 @@ private static Set<String> pkgs(final Reader reader) throws IOException {
183183
}
184184
}
185185

186-
public static void main(String[] args) throws MalformedURLException {
186+
public static void main(final String[] args) throws MalformedURLException {
187187
URI jaruri = URI.create(
188188
"jar:file:/Users/edgar/.m2/repository/org/jooby/jooby-run/1.0.4-SNAPSHOT/jooby-run-1.0.4-SNAPSHOT.jar!/org/jooby/internal/run__/JoobyRef.class");
189189
System.out.println(jaruri.toURL().toExternalForm());

jooby-run/src/main/java/org/jooby/run/Main.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,11 @@
5252
import org.jboss.modules.ModuleIdentifier;
5353
import org.jboss.modules.ModuleLoader;
5454
import org.jboss.modules.log.ModuleLogger;
55-
import org.jooby.internal.run__.JoobyRef;
5655

5756
public class Main {
5857

58+
static final String JOOBY_REF = "org.jooby.internal.run__.JoobyRef";
59+
5960
private static boolean DEBUG;
6061

6162
private static boolean TRACE;
@@ -191,7 +192,7 @@ public void run(final boolean block, final String... args) {
191192
this.scanner.start();
192193
this.args = new ArrayList<>(Arrays.asList(args));
193194
this.args.add("server.join=false");
194-
this.args.add("jooby.internal.onStart=" + JoobyRef.class.getName());
195+
this.args.add("jooby.internal.onStart=" + JOOBY_REF);
195196
this.startApp(this.args);
196197

197198
if (block) {
@@ -230,7 +231,7 @@ private void startApp(final List<String> args) {
230231
Thread.currentThread().setContextClassLoader(mcloader);
231232

232233
debug("starting: %s", runclass);
233-
Class appref = mcloader.loadClass(JoobyRef.class.getName());
234+
Class appref = mcloader.loadClass(JOOBY_REF);
234235
debug("loaded: %s", appref);
235236
Class appclass = mcloader.loadClass(runclass);
236237
debug("loaded: %s", appclass);
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package org.jooby.run;
2+
3+
import static org.junit.Assert.assertEquals;
4+
5+
import org.jooby.internal.run__.JoobyRef;
6+
import org.junit.Test;
7+
8+
public class JoobyRefClassNameTest {
9+
10+
@Test
11+
public void classNameShouldBeEq() {
12+
assertEquals(JoobyRef.class.getName(), Main.JOOBY_REF);
13+
}
14+
}

0 commit comments

Comments
 (0)