Moved to Maven

This commit is contained in:
JKetelaar
2015-09-13 22:51:13 +02:00
parent a3bf8d0d0d
commit 52836a3e9a
303 changed files with 56775 additions and 35 deletions
@@ -0,0 +1,55 @@
package org.parabot.environment.servers.executers;
import java.lang.reflect.Constructor;
import java.net.MalformedURLException;
import org.parabot.core.Core;
import org.parabot.core.Directories;
import org.parabot.core.build.BuildPath;
import org.parabot.core.classpath.ClassPath;
import org.parabot.environment.servers.ServerProvider;
/**
*
* Loads locally stored server providers
*
* @author Everel
*
*/
public class LocalServerExecuter extends ServerExecuter {
private final Constructor<?> serverProviderConstructor;
private ClassPath classPath;
private String serverName;
public LocalServerExecuter(Constructor<?> serverProviderConstructor,
ClassPath classPath, final String serverName) {
this.serverProviderConstructor = serverProviderConstructor;
this.classPath = classPath;
this.serverName = serverName;
}
@Override
public void run() {
// add jar or directory to buildpath.
if (this.classPath.isJar()) {
Core.verbose("Adding server provider jar to buildpath: "
+ this.classPath.lastParsed.toString());
this.classPath.addToBuildPath();
} else {
Core.verbose("Adding server providers directory to buildpath: "
+ Directories.getServerPath().getPath());
try {
BuildPath.add(Directories.getServerPath().toURI().toURL());
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
// finalize
try {
super.finalize((ServerProvider) serverProviderConstructor.newInstance(), this.serverName);
} catch (Throwable t) {
t.printStackTrace();
}
}
}
@@ -0,0 +1,123 @@
package org.parabot.environment.servers.executers;
import org.parabot.core.Configuration;
import org.parabot.core.Context;
import org.parabot.core.Core;
import org.parabot.core.Directories;
import org.parabot.core.build.BuildPath;
import org.parabot.core.classpath.ClassPath;
import org.parabot.core.desc.ServerProviderInfo;
import org.parabot.core.forum.AccountManager;
import org.parabot.core.forum.AccountManagerAccess;
import org.parabot.core.ui.components.VerboseLoader;
import org.parabot.core.ui.utils.UILog;
import org.parabot.environment.api.utils.WebUtil;
import org.parabot.environment.servers.ServerProvider;
import org.parabot.environment.servers.loader.ServerLoader;
import javax.swing.*;
import java.io.File;
import java.lang.reflect.Constructor;
import java.net.URL;
/**
*
* Fetches a server provider from the Parabot BDN
*
* @author Everel
*
*/
public class PublicServerExecuter extends ServerExecuter {
private String serverName;
private static AccountManager manager;
public static final AccountManagerAccess MANAGER_FETCHER = new AccountManagerAccess() {
@Override
public final void setManager(AccountManager manager) {
PublicServerExecuter.manager = manager;
}
};
public PublicServerExecuter(final String serverName) {
this.serverName = serverName;
}
@Override
public void run() {
try {
ServerProviderInfo serverProviderInfo = new ServerProviderInfo(new URL(Configuration.GET_SERVER_PROVIDER_INFO
+ this.serverName), manager.getAccount().getURLUsername(), manager.getAccount().getURLPassword());
final File destination = new File(Directories.getCachePath(),
serverProviderInfo.getCRC32() + ".jar");
final String jarUrl = Configuration.GET_SERVER_PROVIDER
+ this.serverName;
Core.verbose("Downloading: " + jarUrl + " ...");
if(destination.exists()) {
Core.verbose("Found cached server provider [CRC32: " + serverProviderInfo.getCRC32() + "]");
} else {
WebUtil.downloadFile(new URL(jarUrl), destination,
VerboseLoader.get(), manager.getAccount().getURLUsername(), manager.getAccount().getURLPassword());
Core.verbose("Server provider downloaded...");
}
final ClassPath classPath = new ClassPath();
classPath.addJar(destination);
BuildPath.add(destination.toURI().toURL());
ServerLoader serverLoader = new ServerLoader(classPath);
final String[] classNames = serverLoader.getServerClassNames();
if (classNames == null || classNames.length == 0) {
UILog.log(
"Error",
"Failed to load server provider, error: [No provider found in jar file.]",
JOptionPane.ERROR_MESSAGE);
return;
} else if (classNames.length > 1) {
UILog.log(
"Error",
"Failed to load server provider, error: [Multiple providers found in jar file.]");
return;
}
final String className = classNames[0];
try {
final Class<?> providerClass = serverLoader
.loadClass(className);
final Constructor<?> con = providerClass.getConstructor();
final ServerProvider serverProvider = (ServerProvider) con
.newInstance();
Context.getInstance(serverProvider).setProviderInfo(serverProviderInfo);
super.finalize(serverProvider, this.serverName);
} catch (NoClassDefFoundError | ClassNotFoundException ignored) {
UILog.log(
"Error",
"Failed to load server provider, error: [This server provider is not compitable with this version of parabot]",
JOptionPane.ERROR_MESSAGE);
} catch (Throwable t) {
t.printStackTrace();
UILog.log(
"Error",
"Failed to load server provider, post the stacktrace/error on the parabot forums.",
JOptionPane.ERROR_MESSAGE);
}
} catch (Exception e) {
e.printStackTrace();
UILog.log(
"Error",
"Failed to load server provider, post the stacktrace/error on the parabot forums.",
JOptionPane.ERROR_MESSAGE);
}
}
}
@@ -0,0 +1,35 @@
package org.parabot.environment.servers.executers;
import org.parabot.core.Context;
import org.parabot.core.parsers.randoms.RandomParser;
import org.parabot.core.ui.components.PaintComponent;
import org.parabot.environment.servers.ServerProvider;
/**
*
* Executes a server provider
*
* @author Everel
*
*/
public abstract class ServerExecuter {
public abstract void run();
public void finalize(final ServerProvider provider, final String serverName) {
new Thread(new Runnable() {
@Override
public void run() {
try {
Context context = Context.getInstance(provider);
context.load();
PaintComponent.getInstance().startPainting(context);
RandomParser.enable();
} catch (Throwable t) {
t.printStackTrace();
}
}
}).start();
}
}