groovy18/groovy18-timestamp.patch

155 lines
8.5 KiB
Diff

--- groovy-core-GROOVY_1_8_9/gradle/assemble.gradle 2023-09-14 17:55:59.522896097 +0200
+++ groovy-core-GROOVY_1_8_9/gradle/assemble.gradle 2023-09-14 21:03:58.849056055 +0200
@@ -45,6 +45,10 @@
binaryJarsMetaInf = {
Date buildTime = new Date()
+ def sourceDateEpoch = System.getenv("SOURCE_DATE_EPOCH")
+ if (sourceDateEpoch != null) {
+ buildTime = new Date(1000 * Long.parseLong(sourceDateEpoch))
+ }
from "$projectDir/LICENSE.txt"
from("$projectDir/src/main/META-INF/groovy-release-info.properties") {
filter {String line ->
--- groovy-core-GROOVY_1_8_9/src/examples/transforms/global/CompiledAtASTTransformation.groovy 2023-09-14 17:55:59.532896167 +0200
+++ groovy-core-GROOVY_1_8_9/src/examples/transforms/global/CompiledAtASTTransformation.groovy 2023-09-14 21:31:24.853487358 +0200
@@ -16,7 +16,7 @@
@GroovyASTTransformation(phase=CompilePhase.CONVERSION)
public class CompiledAtASTTransformation implements ASTTransformation {
- private final static compileTime = new Date().toString()
+ private final static compileTime = (System.getenv("SOURCE_DATE_EPOCH") != null ? new Date(1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH"))) : new Date()).toString()
public void visit(ASTNode[] astNodes, SourceUnit sourceUnit) {
--- groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/classgen/Verifier.java 2023-09-15 00:14:26.176051747 +0200
+++ groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/classgen/Verifier.java 2023-09-15 01:27:52.518115209 +0200
@@ -432,13 +432,13 @@
ClassHelper.long_TYPE,
//"",
node,
- new ConstantExpression(System.currentTimeMillis()));
+ new ConstantExpression((System.getenv("SOURCE_DATE_EPOCH") != null ? new Date(1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH"))) : new Date()).getTime()));
// alternatively, FieldNode timeTagField = SourceUnit.createFieldNode("public static final long __timeStamp = " + System.currentTimeMillis() + "L");
timeTagField.setSynthetic(true);
node.addField(timeTagField);
timeTagField = new FieldNode(
- Verifier.__TIMESTAMP__ + String.valueOf(System.currentTimeMillis()),
+ Verifier.__TIMESTAMP__ + String.valueOf((System.getenv("SOURCE_DATE_EPOCH") != null ? new Date(1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH"))) : new Date()).getTime()),
ACC_PUBLIC | ACC_STATIC | ACC_SYNTHETIC,
ClassHelper.long_TYPE,
//"",
@@ -1051,12 +1051,12 @@
}
protected void addCovariantMethods(ClassNode classNode) {
- Map methodsToAdd = new HashMap();
- Map genericsSpec = new HashMap();
+ Map methodsToAdd = new TreeMap();
+ Map genericsSpec = new TreeMap();
// unimplemented abstract methods from interfaces
- Map abstractMethods = new HashMap();
- Map<String, MethodNode> allInterfaceMethods = new HashMap<String, MethodNode>();
+ Map abstractMethods = new TreeMap();
+ Map<String, MethodNode> allInterfaceMethods = new TreeMap<String, MethodNode>();
ClassNode[] interfaces = classNode.getInterfaces();
for (ClassNode iface : interfaces) {
Map ifaceMethodsMap = iface.getDeclaredMethodsMap();
@@ -1086,7 +1086,7 @@
addCovariantMethods(classNode, declaredMethods, abstractMethods, methodsToAdd, genericsSpec);
- Map<String, MethodNode> declaredMethodsMap = new HashMap<String, MethodNode>();
+ Map<String, MethodNode> declaredMethodsMap = new TreeMap<String, MethodNode>();
if (methodsToAdd.size() > 0) {
for (MethodNode mn : declaredMethods) {
declaredMethodsMap.put(mn.getTypeDescriptor(), mn);
@@ -1336,7 +1336,7 @@
}
private Map createGenericsSpec(ClassNode current, Map oldSpec) {
- Map ret = new HashMap(oldSpec);
+ Map ret = new TreeMap(oldSpec);
// ret contains the type specs, what we now need is the type spec for the
// current class. To get that we first apply the type parameters to the
// current class and then use the type names of the current class to reset
--- groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/tools/groovydoc/gstringTemplates/classLevel/classDocName.html 2023-09-14 17:55:59.569563087 +0200
+++ groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/tools/groovydoc/gstringTemplates/classLevel/classDocName.html 2023-09-14 21:15:34.220475678 +0200
@@ -62,9 +62,8 @@
%>
<html>
<head>
-<!-- Generated by groovydoc (${GroovySystem.version}) on ${new Date()} -->
+<!-- Generated by groovydoc (${GroovySystem.version}) -->
<title>${title}</title>
-<meta name="date" content="${new Date().format('yyyy-MM-dd')}">
<meta http-equiv="Content-Type" content="text/html; charset=${props.charset}">
<link href="${classDoc.relativeRootPath}groovy.ico" type="image/x-icon" rel="shortcut icon">
<link href="${classDoc.relativeRootPath}groovy.ico" type="image/x-icon" rel="icon">
--- groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/tools/groovydoc/gstringTemplates/topLevel/deprecated-list.html 2023-09-14 17:55:59.569563087 +0200
+++ groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/tools/groovydoc/gstringTemplates/topLevel/deprecated-list.html 2023-09-14 21:14:47.296829350 +0200
@@ -38,9 +38,8 @@
%>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=${props.charset}">
-<!-- Generated by groovydoc (${GroovySystem.version}) on <% new Date() %> -->
+<!-- Generated by groovydoc (${GroovySystem.version}) -->
<title>${title}</title>
-<meta name="date" content="${new Date().format('yyyy-MM-dd')}">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link href="groovy.ico" type="image/x-icon" rel="shortcut icon">
<link href="groovy.ico" type="image/x-icon" rel="icon">
--- groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/tools/groovydoc/gstringTemplates/topLevel/help-doc.html 2023-09-14 17:55:59.569563087 +0200
+++ groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/tools/groovydoc/gstringTemplates/topLevel/help-doc.html 2023-09-14 21:14:32.966733748 +0200
@@ -3,7 +3,7 @@
<% def title = subtitle + (props.windowTitle ? " (${props.windowTitle})" : "") %>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=${props.charset}">
-<!-- Generated by groovydoc (${GroovySystem.version}) on <% new Date() %> -->
+<!-- Generated by groovydoc (${GroovySystem.version}) -->
<title>${title}</title>
<link href="groovy.ico" type="image/x-icon" rel="shortcut icon">
<link href="groovy.ico" type="image/x-icon" rel="icon">
--- groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/tools/groovydoc/gstringTemplates/topLevel/index-all.html 2023-09-14 17:55:59.569563087 +0200
+++ groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/tools/groovydoc/gstringTemplates/topLevel/index-all.html 2023-09-14 21:15:03.270269230 +0200
@@ -16,9 +16,8 @@
%>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=${props.charset}">
-<!-- Generated by groovydoc (${GroovySystem.version}) on <% new Date() %> -->
+<!-- Generated by groovydoc (${GroovySystem.version}) -->
<title>${title}</title>
-<meta name="date" content="${new Date().format('yyyy-MM-dd')}">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link href="groovy.ico" type="image/x-icon" rel="shortcut icon">
<link href="groovy.ico" type="image/x-icon" rel="icon">
--- groovy-core-GROOVY_1_8_9/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxTimerFactory.groovy 2023-09-14 17:55:59.506229315 +0200
+++ groovy-core-GROOVY_1_8_9/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxTimerFactory.groovy 2023-09-14 21:08:56.304430856 +0200
@@ -93,7 +93,13 @@
}
private def getNormalizedDate(date) {
- if (!date) return new Date()
+ def sourceDateEpoch = System.getenv("SOURCE_DATE_EPOCH")
+ if (!date) {
+ if (sourceDateEpoch != null) {
+ return new Date(1000 * Long.parseLong(sourceDateEpoch))
+ }
+ return new Date()
+ }
if (date instanceof Date) {
return date
}
@@ -103,6 +109,9 @@
case "now":
default:
startDate = new Date()
+ if (sourceDateEpoch != null) {
+ startDate = new Date(1000 * Long.parseLong(sourceDateEpoch))
+ }
}
return startDate
}