diff --git a/pom.xml b/pom.xml
index b7d45b4bd0..aac069cc65 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,9 +11,9 @@
1.8
1.8
+ 113-SNAPSHOT
+
1.7.12
- 1.1.0
- 3.1.0
@@ -23,6 +23,14 @@
+
+
+ runelite
+ RuneLite
+ http://repo.runelite.net
+
+
+
org.slf4j
@@ -34,36 +42,6 @@
slf4j-simple
${slf4j.version}
-
- org.eclipse.aether
- aether-api
- ${aether.version}
-
-
- org.eclipse.aether
- aether-impl
- ${aether.version}
-
-
- org.eclipse.aether
- aether-connector-basic
- ${aether.version}
-
-
- org.eclipse.aether
- aether-transport-http
- ${aether.version}
-
-
- org.apache.maven
- maven-aether-provider
- ${maven.version}
-
-
- com.google.code.gson
- gson
- 2.4
-
net.sf.jopt-simple
jopt-simple
@@ -75,6 +53,11 @@
api
1.0.0-SNAPSHOT
+
+ net.runelite.rs
+ client
+ ${rs.version}
+
junit
diff --git a/src/main/java/net/runelite/client/ArtifactResolver.java b/src/main/java/net/runelite/client/ArtifactResolver.java
deleted file mode 100644
index 47a4927cf8..0000000000
--- a/src/main/java/net/runelite/client/ArtifactResolver.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package net.runelite.client;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
-import org.eclipse.aether.DefaultRepositorySystemSession;
-import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.collection.CollectRequest;
-import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory;
-import org.eclipse.aether.graph.Dependency;
-import org.eclipse.aether.graph.DependencyFilter;
-import org.eclipse.aether.impl.DefaultServiceLocator;
-import org.eclipse.aether.repository.LocalRepository;
-import org.eclipse.aether.repository.RemoteRepository;
-import org.eclipse.aether.repository.RepositoryPolicy;
-import org.eclipse.aether.resolution.ArtifactResult;
-import org.eclipse.aether.resolution.DependencyRequest;
-import org.eclipse.aether.resolution.DependencyResolutionException;
-import org.eclipse.aether.spi.connector.RepositoryConnectorFactory;
-import org.eclipse.aether.spi.connector.transport.TransporterFactory;
-import org.eclipse.aether.transport.http.HttpTransporterFactory;
-import org.eclipse.aether.util.artifact.JavaScopes;
-import org.eclipse.aether.util.filter.DependencyFilterUtils;
-
-public class ArtifactResolver
-{
- private final File repositoryCache;
- private final List repositories = new ArrayList<>();
-
- public ArtifactResolver(File repositoryCache)
- {
- this.repositoryCache = repositoryCache;
- }
-
- public List resolveArtifacts(Artifact artifact) throws DependencyResolutionException
- {
- RepositorySystem system = newRepositorySystem();
-
- RepositorySystemSession session = newRepositorySystemSession(system);
-
- DependencyFilter classpathFlter = DependencyFilterUtils.classpathFilter(JavaScopes.COMPILE);
-
- CollectRequest collectRequest = new CollectRequest();
- collectRequest.setRoot(new Dependency(artifact, JavaScopes.COMPILE));
- collectRequest.setRepositories(repositories);
-
- DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, classpathFlter);
-
- List results = system.resolveDependencies(session, dependencyRequest).getArtifactResults();
- validate(results);
- return results;
- }
-
- public DefaultRepositorySystemSession newRepositorySystemSession(RepositorySystem system)
- {
- DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
-
- LocalRepository localRepo = new LocalRepository(repositoryCache.getAbsolutePath());
- session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, localRepo));
-
- //session.setTransferListener(new ConsoleTransferListener());
- //session.setRepositoryListener(new ConsoleRepositoryListener());
-
- return session;
- }
-
- public RepositorySystem newRepositorySystem()
- {
- DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
- locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
- locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
-
- locator.setErrorHandler(new DefaultServiceLocator.ErrorHandler()
- {
- @Override
- public void serviceCreationFailed(Class> type, Class> impl, Throwable exception)
- {
- exception.printStackTrace();
- }
- });
-
- return locator.getService(RepositorySystem.class);
- }
-
- public void addRepositories()
- {
- repositories.add(this.newCentralRepository());
- repositories.add(this.newRuneliteRepository());
- }
-
- private RemoteRepository newCentralRepository()
- {
- return new RemoteRepository.Builder("central", "default", "http://central.maven.org/maven2/").build();
- }
-
- public RemoteRepository newRuneliteRepository()
- {
- return new RemoteRepository.Builder("runelite", "default", "http://repo.runelite.net/")
- .setPolicy(new RepositoryPolicy(true, RepositoryPolicy.UPDATE_POLICY_ALWAYS, RepositoryPolicy.CHECKSUM_POLICY_FAIL))
- .build();
- }
-
- private void validate(List artifacts)
- {
- for (ArtifactResult ar : artifacts)
- {
- Artifact a = ar.getArtifact();
-
- if (!a.getGroupId().startsWith("net.runelite"))
- continue;
-
- if (ar.getRepository() instanceof RemoteRepository && !ar.getRepository().equals(newRuneliteRepository()))
- throw new RuntimeException();
- }
- }
-}
diff --git a/src/main/java/net/runelite/client/ClientLoader.java b/src/main/java/net/runelite/client/ClientLoader.java
index 082bbdb155..09e1ea8b36 100644
--- a/src/main/java/net/runelite/client/ClientLoader.java
+++ b/src/main/java/net/runelite/client/ClientLoader.java
@@ -1,20 +1,8 @@
package net.runelite.client;
-import com.google.gson.Gson;
import java.applet.Applet;
-import java.io.File;
import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.net.URLConnection;
-import java.util.List;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.artifact.DefaultArtifact;
-import org.eclipse.aether.resolution.ArtifactResult;
-import org.eclipse.aether.resolution.DependencyResolutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -22,51 +10,19 @@ public class ClientLoader
{
private static final Logger logger = LoggerFactory.getLogger(ClientLoader.class);
- private static final String CLIENT_ARTIFACT_URL = "https://static.runelite.net/client.json";
-
- public Applet load() throws MalformedURLException, ClassNotFoundException, IOException, InstantiationException, IllegalAccessException, DependencyResolutionException
+ public Applet load() throws MalformedURLException, ClassNotFoundException, IOException, InstantiationException, IllegalAccessException
{
ConfigLoader config = new ConfigLoader();
config.fetch();
-
- ArtifactResolver resolver;
- if (!RuneLite.getOptions().has("developer-mode"))
- {
- resolver = new ArtifactResolver(RuneLite.REPO_DIR);
- resolver.addRepositories();
- }
- else
- {
- resolver = new ArtifactResolver(new File(System.getProperty("user.home"), ".m2/repository"));
-
- logger.info("In developer mode, not fetching updates for client");
- }
-
- List results = resolver.resolveArtifacts(getClientArtifact());
- File client = results.get(0).getArtifact().getFile();
-
+
String initialClass = config.getProperty(ConfigLoader.INITIAL_CLASS).replace(".class", "");
- URLClassLoader loader = new URLClassLoader(new URL[]{ client.toURI().toURL() }, this.getClass().getClassLoader());
- Class> clientClass = loader.loadClass(initialClass);
-
+ Class> clientClass = this.getClass().getClassLoader().loadClass(initialClass);
Applet rs = (Applet) clientClass.newInstance();
rs.setStub(new RSStub(config, rs));
return rs;
}
-
- private static Artifact getClientArtifact() throws MalformedURLException, IOException
- {
- URL u = new URL(CLIENT_ARTIFACT_URL);
- URLConnection conn = u.openConnection();
- conn.setRequestProperty("User-Agent", "Mozilla/5.0");
- try (InputStream i = conn.getInputStream())
- {
- Gson g = new Gson();
- return g.fromJson(new InputStreamReader(i), DefaultArtifact.class);
- }
- }
}