mirror of
https://github.com/2006-Scape/Parabot.git
synced 2026-07-03 00:37:55 +00:00
Speed up server provider parser
This commit is contained in:
@@ -1,16 +1,15 @@
|
||||
package org.parabot.core.parsers.servers;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.parabot.core.Directories;
|
||||
import org.parabot.core.classpath.ClassPath;
|
||||
import org.parabot.core.desc.ServerDescription;
|
||||
import org.parabot.environment.servers.LocalServerExecuter;
|
||||
import org.parabot.environment.servers.ServerManifest;
|
||||
import org.parabot.environment.servers.ServerProvider;
|
||||
import org.parabot.environment.servers.loader.ServerLoader;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Parses local server providers located in the servers directory
|
||||
*
|
||||
@@ -53,13 +52,11 @@ public class LocalServers extends ServerParser {
|
||||
// get constructor
|
||||
final Constructor<?> con = serverProviderClass
|
||||
.getConstructor();
|
||||
final ServerProvider serverProvider = (ServerProvider) con
|
||||
.newInstance();
|
||||
|
||||
SERVER_CACHE.put(
|
||||
new ServerDescription(manifest.name(), manifest
|
||||
.author(), manifest.version()),
|
||||
new LocalServerExecuter(serverProvider, path,
|
||||
new LocalServerExecuter(con, path,
|
||||
manifest.name()));
|
||||
} catch (Throwable t) {
|
||||
t.printStackTrace();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.parabot.environment.servers;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.net.MalformedURLException;
|
||||
|
||||
import org.parabot.core.Core;
|
||||
@@ -15,13 +16,13 @@ import org.parabot.core.classpath.ClassPath;
|
||||
*
|
||||
*/
|
||||
public class LocalServerExecuter extends ServerExecuter {
|
||||
private final ServerProvider serverProvider;
|
||||
private final Constructor<?> serverProviderConstructor;
|
||||
private ClassPath classPath;
|
||||
private String serverName;
|
||||
|
||||
public LocalServerExecuter(ServerProvider serverProvider,
|
||||
public LocalServerExecuter(Constructor<?> serverProviderConstructor,
|
||||
ClassPath classPath, final String serverName) {
|
||||
this.serverProvider = serverProvider;
|
||||
this.serverProviderConstructor = serverProviderConstructor;
|
||||
this.classPath = classPath;
|
||||
this.serverName = serverName;
|
||||
}
|
||||
@@ -43,7 +44,11 @@ public class LocalServerExecuter extends ServerExecuter {
|
||||
}
|
||||
}
|
||||
// finalize
|
||||
super.finalize(this.serverProvider, this.serverName);
|
||||
try {
|
||||
super.finalize((ServerProvider) serverProviderConstructor.newInstance(), this.serverName);
|
||||
} catch (Throwable t) {
|
||||
t.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user