Skip to content

Commit e32c607

Browse files
committed
updated to Gradle 2.5, finalized update json stuff
1 parent 71a9559 commit e32c607

File tree

14 files changed

+252
-150
lines changed

14 files changed

+252
-150
lines changed

gradle/wrapper/gradle-wrapper.jar

5 Bytes
Binary file not shown.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#Wed May 06 11:17:28 CDT 2015
1+
#Sat Jul 25 16:06:56 CDT 2015
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-bin.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-2.5-bin.zip

src/main/java/net/minecraftforge/gradle/common/BasePlugin.java

Lines changed: 42 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package net.minecraftforge.gradle.common;
22

33
import static net.minecraftforge.gradle.common.Constants.*;
4-
import groovy.lang.Closure;
54

65
import java.io.File;
76
import java.io.IOException;
@@ -13,18 +12,6 @@
1312
import java.util.List;
1413
import java.util.Map;
1514

16-
import net.minecraftforge.gradle.tasks.*;
17-
import net.minecraftforge.gradle.util.FileLogListenner;
18-
import net.minecraftforge.gradle.util.GradleConfigurationException;
19-
import net.minecraftforge.gradle.util.delayed.DelayedFile;
20-
import net.minecraftforge.gradle.util.delayed.DelayedFileTree;
21-
import net.minecraftforge.gradle.util.delayed.DelayedString;
22-
import net.minecraftforge.gradle.util.delayed.TokenReplacer;
23-
import net.minecraftforge.gradle.util.json.JsonFactory;
24-
import net.minecraftforge.gradle.util.json.fgversion.ForgeGradleVersion;
25-
import net.minecraftforge.gradle.util.json.fgversion.ForgeGradleWrapper;
26-
import net.minecraftforge.gradle.util.json.version.Version;
27-
2815
import org.gradle.api.Action;
2916
import org.gradle.api.DefaultTask;
3017
import org.gradle.api.Plugin;
@@ -50,6 +37,30 @@
5037
import com.google.common.io.ByteStreams;
5138
import com.google.common.io.Files;
5239
import com.google.gson.reflect.TypeToken;
40+
41+
import groovy.lang.Closure;
42+
import net.minecraftforge.gradle.tasks.CrowdinDownload;
43+
import net.minecraftforge.gradle.tasks.Download;
44+
import net.minecraftforge.gradle.tasks.DownloadAssetsTask;
45+
import net.minecraftforge.gradle.tasks.EtagDownloadTask;
46+
import net.minecraftforge.gradle.tasks.ExtractConfigTask;
47+
import net.minecraftforge.gradle.tasks.GenSrgs;
48+
import net.minecraftforge.gradle.tasks.JenkinsChangelog;
49+
import net.minecraftforge.gradle.tasks.MergeJars;
50+
import net.minecraftforge.gradle.tasks.ObtainFernFlowerTask;
51+
import net.minecraftforge.gradle.tasks.SignJar;
52+
import net.minecraftforge.gradle.tasks.SplitJarTask;
53+
import net.minecraftforge.gradle.util.FileLogListenner;
54+
import net.minecraftforge.gradle.util.GradleConfigurationException;
55+
import net.minecraftforge.gradle.util.delayed.DelayedFile;
56+
import net.minecraftforge.gradle.util.delayed.DelayedFileTree;
57+
import net.minecraftforge.gradle.util.delayed.DelayedString;
58+
import net.minecraftforge.gradle.util.delayed.TokenReplacer;
59+
import net.minecraftforge.gradle.util.json.JsonFactory;
60+
import net.minecraftforge.gradle.util.json.fgversion.FGBuildStatus;
61+
import net.minecraftforge.gradle.util.json.fgversion.FGVersion;
62+
import net.minecraftforge.gradle.util.json.fgversion.FGVersionWrapper;
63+
import net.minecraftforge.gradle.util.json.version.Version;
5364
public abstract class BasePlugin<K extends BaseExtension> implements Plugin<Project>
5465
{
5566
public Project project;
@@ -231,17 +242,17 @@ protected void doFGVersionCheck(List<String> outLines)
231242
final File jsonCache = cacheFile("ForgeGradleVersion.json");
232243
final File etagFile = new File(jsonCache.getAbsolutePath() + ".etag");
233244

234-
ForgeGradleWrapper wrapper = JsonFactory.GSON.fromJson(getWithEtag(checkUrl, jsonCache, etagFile), ForgeGradleWrapper.class);
235-
ForgeGradleVersion webVersion = wrapper.versionObjects.get(version);
236-
String latestVersion = wrapper.versionNumbers.get(wrapper.versionNumbers.size()-1);
245+
FGVersionWrapper wrapper = JsonFactory.GSON.fromJson(getWithEtag(checkUrl, jsonCache, etagFile), FGVersionWrapper.class);
246+
FGVersion webVersion = wrapper.versionObjects.get(version);
247+
String latestVersion = wrapper.versions.get(wrapper.versions.size()-1);
237248

238-
if (webVersion == null || (!webVersion.broken && !webVersion.outdated))
249+
if (webVersion == null || webVersion.status == FGBuildStatus.FINE)
239250
{
240251
return;
241252
}
242253

243254
// broken implies outdated
244-
if (webVersion.broken)
255+
if (webVersion.status == FGBuildStatus.BROKEN)
245256
{
246257
outLines.add("ForgeGradle "+webVersion.version+" HAS " + (webVersion.bugs.length > 1 ? "SERIOUS BUGS" : "a SERIOUS BUG") + "!");
247258
outLines.add("UPDATE TO "+latestVersion+" IMMEDIATELY!");
@@ -253,21 +264,31 @@ protected void doFGVersionCheck(List<String> outLines)
253264
outLines.add("****************************");
254265
return;
255266
}
256-
else if (webVersion.outdated)
267+
else if (webVersion.status == FGBuildStatus.OUTDATED)
257268
{
258269
outLines.add("ForgeGradle "+latestVersion + " is out! You should update!");
259270
outLines.add(" Features:");
260271

261-
for (int i = webVersion.index; i < wrapper.versionNumbers.size(); i++)
272+
for (int i = webVersion.index; i < wrapper.versions.size(); i++)
262273
{
263-
for (String feature : wrapper.versionObjects.get(wrapper.versionNumbers.get(i)).changes)
274+
for (String feature : wrapper.versionObjects.get(wrapper.versions.get(i)).changes)
264275
{
265276
outLines.add(" -- " + feature);
266277
}
267278
}
268279
outLines.add("****************************");
269280
}
270281
}
282+
283+
/**
284+
* Function to do stuff with the version check json information. Is called afterEvaluate
285+
* @param version
286+
* @param wrapper
287+
*/
288+
protected void onVersionCheck(FGVersion version, FGVersionWrapper wrapper)
289+
{
290+
// not required.. but you probably wanan implement this
291+
}
271292

272293
@SuppressWarnings("serial")
273294
private void makeCommonTasks()

src/main/java/net/minecraftforge/gradle/user/patcherUser/forge/ForgePlugin.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
import net.minecraftforge.gradle.user.patcherUser.PatcherUserBasePlugin;
1414
import net.minecraftforge.gradle.util.GradleConfigurationException;
1515
import net.minecraftforge.gradle.util.json.JsonFactory;
16+
import net.minecraftforge.gradle.util.json.fgversion.FGVersion;
17+
import net.minecraftforge.gradle.util.json.fgversion.FGVersionWrapper;
1618
import net.minecraftforge.gradle.util.json.forgeversion.ForgeVersion;
1719

1820
import org.gradle.api.plugins.JavaPluginConvention;
@@ -75,6 +77,29 @@ private void setForgeVersionJson()
7577

7678
getExtension().forgeJson = JsonFactory.GSON.fromJson(getWithEtag(url, jsonCache, etagFile), ForgeVersion.class);
7779
}
80+
81+
@Override
82+
protected void onVersionCheck(FGVersion version, FGVersionWrapper wrapper)
83+
{
84+
String forgeVersion = getExtension().getForgeVersion();
85+
86+
// isolate build number
87+
int index = forgeVersion.indexOf('-');
88+
if (index >= 0)
89+
forgeVersion = forgeVersion.substring(0, index);
90+
index = forgeVersion.lastIndexOf('.');
91+
forgeVersion.substring(index + 1);
92+
93+
int buildNum = Integer.parseInt(forgeVersion);
94+
95+
int minBuild = version.ext.get("forgeMinBuild").getAsInt();
96+
int maxBuild = version.ext.get("forgeMaxBuild").getAsInt();
97+
98+
if (buildNum < minBuild)
99+
throw new GradleConfigurationException("This version of FOrgeGradle ("+getExtension().forgeGradleVersion+") does not support forge builds less than #"+minBuild);
100+
else if (buildNum > maxBuild)
101+
throw new GradleConfigurationException("This version of FOrgeGradle ("+getExtension().forgeGradleVersion+") does not support forge builds greater than #"+maxBuild);
102+
}
78103

79104
@Override
80105
public String getApiGroup(ForgeExtension ext)

src/main/java/net/minecraftforge/gradle/util/ZipFileTree.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.gradle.api.file.FileVisitDetails;
3737
import org.gradle.api.file.FileVisitor;
3838
import org.gradle.api.file.RelativePath;
39+
import org.gradle.api.internal.file.FileSystemSubset.Builder;
3940
import org.gradle.api.internal.file.collections.MinimalFileTree;
4041
import org.gradle.util.DeprecationLogger;
4142
import org.gradle.util.GFileUtils;
@@ -264,4 +265,10 @@ public int getMode()
264265
return ((isDirectory()) ? 493 : 420);
265266
}
266267
}
268+
269+
@Override
270+
public void registerWatchPoints(Builder arg0)
271+
{
272+
// umm... wat?
273+
}
267274
}

src/main/java/net/minecraftforge/gradle/util/json/JsonFactory.java

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,6 @@
99
import java.util.Map;
1010
import java.util.Map.Entry;
1111

12-
import net.minecraftforge.gradle.util.json.LiteLoaderJson.VersionObject;
13-
import net.minecraftforge.gradle.util.json.forgeversion.ForgeArtifact;
14-
import net.minecraftforge.gradle.util.json.forgeversion.ForgeArtifactAdapter;
15-
import net.minecraftforge.gradle.util.json.version.AssetIndex;
16-
import net.minecraftforge.gradle.util.json.version.Version;
17-
1812
import com.google.common.base.Strings;
1913
import com.google.gson.Gson;
2014
import com.google.gson.GsonBuilder;
@@ -24,9 +18,18 @@
2418
import com.google.gson.JsonParser;
2519
import com.google.gson.JsonSyntaxException;
2620

21+
import net.minecraftforge.gradle.util.json.LiteLoaderJson.VersionObject;
22+
import net.minecraftforge.gradle.util.json.fgversion.FGVersionDeserializer;
23+
import net.minecraftforge.gradle.util.json.fgversion.FGVersionWrapper;
24+
import net.minecraftforge.gradle.util.json.forgeversion.ForgeArtifact;
25+
import net.minecraftforge.gradle.util.json.forgeversion.ForgeArtifactAdapter;
26+
import net.minecraftforge.gradle.util.json.version.AssetIndex;
27+
import net.minecraftforge.gradle.util.json.version.Version;
28+
2729
public class JsonFactory
2830
{
2931
public static final Gson GSON;
32+
3033
static
3134
{
3235
GsonBuilder builder = new GsonBuilder();
@@ -35,6 +38,7 @@ public class JsonFactory
3538
builder.registerTypeAdapter(File.class, new FileAdapter());
3639
builder.registerTypeAdapter(VersionObject.class, new LiteLoaderJson.VersionAdapter());
3740
builder.registerTypeAdapter(ForgeArtifact.class, new ForgeArtifactAdapter());
41+
builder.registerTypeAdapter(FGVersionWrapper.class, new FGVersionDeserializer());
3842
builder.enableComplexMapKeySerialization();
3943
builder.setPrettyPrinting();
4044
GSON = builder.create();
@@ -43,47 +47,47 @@ public class JsonFactory
4347
public static Version loadVersion(File json, File... inheritanceDirs) throws JsonSyntaxException, JsonIOException, IOException
4448
{
4549
FileReader reader = new FileReader(json);
46-
Version v = GSON.fromJson(reader, Version.class);
50+
Version v = GSON.fromJson(reader, Version.class);
4751
reader.close();
48-
52+
4953
if (!Strings.isNullOrEmpty(v.inheritsFrom))
5054
{
5155
boolean found = false;
52-
56+
5357
for (File inheritDir : inheritanceDirs)
5458
{
5559
File parentFile = new File(inheritDir, v.inheritsFrom + ".json");
56-
60+
5761
if (parentFile.exists())
5862
{
5963
Version parent = loadVersion(new File(inheritDir, v.inheritsFrom + ".json"), inheritanceDirs);
6064
v.extendFrom(parent);
6165
break;
6266
}
6367
}
64-
68+
6569
// still didnt find the inherited
6670
if (!found)
6771
{
6872
throw new FileNotFoundException("Inherited json file (" + v.inheritsFrom + ") not found! Maybe you are running in offline mode?");
6973
}
7074
}
71-
75+
7276
return v;
7377
}
74-
78+
7579
public static AssetIndex loadAssetsIndex(File json) throws JsonSyntaxException, JsonIOException, IOException
7680
{
7781
FileReader reader = new FileReader(json);
78-
AssetIndex a = GSON.fromJson(reader, AssetIndex.class);
82+
AssetIndex a = GSON.fromJson(reader, AssetIndex.class);
7983
reader.close();
8084
return a;
8185
}
82-
86+
8387
public static LiteLoaderJson loadLiteLoaderJson(File json) throws JsonSyntaxException, JsonIOException, IOException
8488
{
8589
FileReader reader = new FileReader(json);
86-
LiteLoaderJson a = GSON.fromJson(reader, LiteLoaderJson.class);
90+
LiteLoaderJson a = GSON.fromJson(reader, LiteLoaderJson.class);
8791
reader.close();
8892
return a;
8993
}
@@ -93,7 +97,7 @@ public static Map<String, MCInjectorStruct> loadMCIJson(File json) throws IOExce
9397
FileReader reader = new FileReader(json);
9498
Map<String, MCInjectorStruct> ret = new LinkedHashMap<String, MCInjectorStruct>();
9599

96-
JsonObject object = (JsonObject)new JsonParser().parse(reader);
100+
JsonObject object = (JsonObject) new JsonParser().parse(reader);
97101
reader.close();
98102

99103
for (Entry<String, JsonElement> entry : object.entrySet())
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package net.minecraftforge.gradle.util.json.fgversion;
2+
3+
public enum FGBuildStatus
4+
{
5+
FINE,
6+
OUTDATED,
7+
BROKEN
8+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package net.minecraftforge.gradle.util.json.fgversion;
2+
3+
import com.google.gson.JsonObject;
4+
5+
public class FGVersion
6+
{
7+
public String version, docUrl;
8+
public String[] changes, bugs;
9+
public FGBuildStatus status;
10+
public int index;
11+
public JsonObject ext;
12+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package net.minecraftforge.gradle.util.json.fgversion;
2+
3+
import java.lang.reflect.Type;
4+
import java.util.List;
5+
6+
import com.google.gson.JsonDeserializationContext;
7+
import com.google.gson.JsonDeserializer;
8+
import com.google.gson.JsonElement;
9+
import com.google.gson.JsonParseException;
10+
import com.google.gson.reflect.TypeToken;
11+
12+
public class FGVersionDeserializer implements JsonDeserializer<FGVersionWrapper>
13+
{
14+
@Override
15+
public FGVersionWrapper deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException
16+
{
17+
FGVersionWrapper wrapper = new FGVersionWrapper();
18+
19+
List<FGVersion> versions = context.deserialize(json, new TypeToken<List<FGVersion>>() {}.getType());
20+
21+
for (int i = 0; i < versions.size(); i++)
22+
{
23+
FGVersion v = versions.get(i);
24+
v.index = i;
25+
wrapper.versions.add(v.version);
26+
wrapper.versionObjects.put(v.version, v);
27+
}
28+
29+
return wrapper;
30+
}
31+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package net.minecraftforge.gradle.util.json.fgversion;
2+
3+
import java.util.List;
4+
import java.util.Map;
5+
6+
import com.beust.jcommander.internal.Lists;
7+
import com.google.common.collect.Maps;
8+
9+
/**
10+
* This class exist to be deserialised by FGWrapperDeserialiser
11+
*/
12+
public class FGVersionWrapper
13+
{
14+
public List<String> versions = Lists.newArrayList();
15+
public Map<String, FGVersion> versionObjects = Maps.newHashMap();
16+
}

0 commit comments

Comments
 (0)