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