aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/fabricmc/loom
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/fabricmc/loom')
-rw-r--r--src/main/java/net/fabricmc/loom/util/GroovyXmlUtil.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/main/java/net/fabricmc/loom/util/GroovyXmlUtil.java b/src/main/java/net/fabricmc/loom/util/GroovyXmlUtil.java
index 801cc118..4e587e10 100644
--- a/src/main/java/net/fabricmc/loom/util/GroovyXmlUtil.java
+++ b/src/main/java/net/fabricmc/loom/util/GroovyXmlUtil.java
@@ -31,6 +31,8 @@ import java.util.stream.Stream;
import groovy.util.Node;
import groovy.xml.QName;
+import net.fabricmc.loom.util.gradle.GradleSupport;
+
public final class GroovyXmlUtil {
private GroovyXmlUtil() { }
@@ -63,9 +65,19 @@ public final class GroovyXmlUtil {
return ((QName) nodeName).matches(givenName);
}
+ // New groovy 3 (gradle 7) class
+ if (GradleSupport.IS_GRADLE_7_OR_NEWER && nodeName.getClass().getName().equals("groovy.namespace.QName")) {
+ return isSameNameGroovy3(nodeName, givenName);
+ }
+
throw new UnsupportedOperationException("Cannot determine if " + nodeName.getClass() + " is the same as a String");
}
+ // TODO Move out of its own method when requiring gradle 7
+ private static boolean isSameNameGroovy3(Object nodeName, String givenName) {
+ return ((groovy.namespace.QName) nodeName).matches(givenName);
+ }
+
public static Stream<Node> childrenNodesStream(Node node) {
//noinspection unchecked
return (Stream<Node>) (Stream) (((List<Object>) node.children()).stream().filter((i) -> i instanceof Node));