From 8341a02ae37801e390d0db9e47743b94553535f9 Mon Sep 17 00:00:00 2001 From: Clisprail Date: Sun, 27 Apr 2014 00:47:43 +0200 Subject: [PATCH] Speed up server provider parser --- .../parabot/core/parsers/servers/LocalServers.java | 11 ++++------- .../environment/servers/LocalServerExecuter.java | 13 +++++++++---- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/parabotv2/src/org/parabot/core/parsers/servers/LocalServers.java b/parabotv2/src/org/parabot/core/parsers/servers/LocalServers.java index fdbe230..723891e 100644 --- a/parabotv2/src/org/parabot/core/parsers/servers/LocalServers.java +++ b/parabotv2/src/org/parabot/core/parsers/servers/LocalServers.java @@ -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(); diff --git a/parabotv2/src/org/parabot/environment/servers/LocalServerExecuter.java b/parabotv2/src/org/parabot/environment/servers/LocalServerExecuter.java index 398cb9b..73d301e 100644 --- a/parabotv2/src/org/parabot/environment/servers/LocalServerExecuter.java +++ b/parabotv2/src/org/parabot/environment/servers/LocalServerExecuter.java @@ -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(); + } } }