Skip to content

Commit

Permalink
Merge pull request #1 from Juuxel/libraries-moshi
Browse files Browse the repository at this point in the history
Switch JSON parsing to Moshi
  • Loading branch information
modmuss50 committed Apr 11, 2021
2 parents 85580fe + b7deb13 commit 4a48cc6
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 25 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ dependencies {
implementation "net.fabricmc.unpick:unpick:$project.unpick_version"
implementation "net.fabricmc.unpick:unpick-format-utils:$project.unpick_version"
implementation "net.fabricmc:tiny-mappings-parser:$project.tiny_mappings_parser_version"
implementation "com.google.code.gson:gson:$project.gson_version"
implementation "com.squareup.moshi:moshi:$project.moshi_version"

testImplementation platform("org.junit:junit-bom:$project.junit_version")
testImplementation 'org.junit.jupiter:junit-jupiter'
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
asm_version = 9.1
enigma_version = 0.27.1
gson_version = 2.8.6
moshi_version = 1.12.0
junit_version = 5.7.1
assertj_version = 3.19.0
unpick_version = 2.2.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,19 @@
import java.util.Map;
import java.util.Objects;

import com.google.gson.JsonObject;

@SuppressWarnings("unused")
public final class MinecraftVersionMetadata {
// Always use a specific OS here to ensure the inputs are always the same. This isn't an issue as it will never be ran
public static final String OS = "linux";

private JsonObject arguments;
private Map<String, Object> arguments;
private AssetIndex assetIndex;
private String assets;
private int complianceLevel;
private Map<String, Download> downloads;
private String id;
private List<Library> libraries;
private JsonObject logging;
private Map<String, Object> logging;
private String mainClass;
private int minimumLauncherVersion;
private String releaseTime;
Expand All @@ -30,7 +28,7 @@ public Download getDownload(String key) {
return getDownloads().get(key);
}

public JsonObject getArguments() {
public Map<String, Object> getArguments() {
return arguments;
}

Expand Down Expand Up @@ -58,7 +56,7 @@ public List<Library> getLibraries() {
return libraries;
}

public JsonObject getLogging() {
public Map<String, Object> getLogging() {
return logging;
}

Expand All @@ -82,7 +80,7 @@ public String getType() {
return type;
}

public final class AssetIndex extends Downloadable {
public static final class AssetIndex extends Downloadable {
private String id;
private long totalSize;

Expand All @@ -99,10 +97,10 @@ public long getTotalSize() {
}
}

public final class Download extends Downloadable {
public static final class Download extends Downloadable {
}

public final class Library {
public static final class Library {
private Downloads downloads;
private String name;
private Map<String, String> natives;
Expand Down Expand Up @@ -167,7 +165,7 @@ public List<Rule> getRules() {
}
}

public final class Downloads {
public static final class Downloads {
private Artifact artifact;
private Map<String, Classifier> classifiers;

Expand All @@ -184,13 +182,13 @@ public Map<String, Classifier> getClassifiers() {
}
}

public final class Artifact extends Downloadable {
public static final class Artifact extends Downloadable {
}

public final class Classifier extends Downloadable {
public static final class Classifier extends Downloadable {
}

public final class Rule {
public static final class Rule {
private String action;
private OS os;

Expand All @@ -211,7 +209,7 @@ public OS getOS() {
}
}

public final class OS {
public static final class OS {
private String name;

public boolean isValidForOS() {
Expand Down
14 changes: 6 additions & 8 deletions src/main/java/net/fabricmc/filament/util/JsonUtil.java
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
package net.fabricmc.filament.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.InputStream;
import java.net.URL;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.squareup.moshi.Moshi;
import okio.Okio;

public class JsonUtil {
public static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();
private static final Moshi MOSHI = new Moshi.Builder().build();

public static <T> T parseFromUrl(String url, Class<T> clazz) throws IOException {
try (Reader reader = new BufferedReader(new InputStreamReader(new URL(url).openStream()))) {
return GSON.fromJson(reader, clazz);
try (InputStream in = new URL(url).openStream()) {
return MOSHI.adapter(clazz).fromJson(Okio.buffer(Okio.source(in)));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ private BuildResult runGradleBuild() {
GradleRunner runner = GradleRunner.create()
.withPluginClasspath()
.withProjectDir(projectDirectory)
.withArguments("printLibraries");
.withArguments("printLibraries", "--stacktrace");

return runner.build();
}
Expand Down

0 comments on commit 4a48cc6

Please sign in to comment.