* testOnJdk8 is not run by default
* If testJdk8 Gradle property is set, run testOnJdk8 as part of `check`
* Set testJdk8 in gradle.yml Github Actions workflow
This commit contains rather hard to review diffs to the protobuf test datasets in .txt format.
To aid the review, this Python script can be used to convert the data from the old to the new
format:
```
import sys
file = open(sys.argv[1])
outfile = open(sys.argv[1] + ".lite", "w")
line = file.readline()
lines = []
def sortAndPrint(group, removeLastLB=False, removeFirstLB=False):
group.sort()
if removeFirstLB and group[0] == "\n":
group.remove("\n")
for i in range(len(group)):
if i == len(group) - 1 and removeLastLB:
group[i] = group[i].rstrip()
print(group[i], end="", file=outfile)
def sign32neg(value):
if 0x80000000 <= value <= 0xFFFFFFFF:
value &= 0x7FFFFFFF
value = int(value)
value = ~value
value ^= 0x7FFFFFFF
return value
def processPath(path):
parts = path.rstrip().split(":")
number = int(parts[1].lstrip())
if number >= 0x80000000:
number = sign32neg(number)
return parts[0] + ": " + str(number) + "\n"
groupcount = 0
while len(line) > 0:
if line.startswith("type:"):
if len(lines):
sortAndPrint(lines, removeFirstLB=groupcount==0)
groupcount += 1
lines.clear()
lines.append(line)
elif line.find("deterministic_key {") != -1:
structure = line
innerlines = []
line = file.readline()
while not line.startswith('}'):
if line.find("path") != -1: # preserve order of paths
pathlines = processPath(line)
line = file.readline()
if line.startswith('}'):
innerlines.append(pathlines)
continue
while line.find("path") != -1:
pathlines += processPath(line)
line = file.readline()
innerlines.append(pathlines)
if line.startswith('}'):
continue
if line.startswith(" sigsRequiredToSpend"):
line = line.replace("sigsRequiredToSpend", "sigs_required_to_spend")
innerlines.append(line)
line = file.readline()
innerlines.sort()
for l in innerlines:
structure += l
structure += line.rstrip() + "\n"
lines.append(structure)
elif line.find("path") != -1: # preserve order of paths
accountpathlines = processPath(line)
line = file.readline()
while line.find("path") != -1:
accountpathlines += processPath(line)
line = file.readline()
lines.append(accountpathlines)
lines.append(line)
else:
lines.append(line)
line = file.readline()
print(file=outfile)
sortAndPrint(lines, removeLastLB=True)
file.close()
outfile.close()
```
Use the Gradle java-library plugin to make Guava an `api`
dependency since Guava types are used in the bitcoinj public API.
This allows us to remove explicit dependencies on
Guava in the other modules.