bitcoinj/core/build.gradle

83 lines
2.2 KiB
Groovy
Raw Normal View History

plugins {
id 'java-library'
id 'com.google.protobuf'
id 'maven-publish'
id 'eclipse'
}
2019-03-01 11:46:48 +01:00
version = '0.16-SNAPSHOT'
dependencies {
api 'org.bouncycastle:bcprov-jdk15to18:1.69'
api 'com.google.guava:guava:31.0.1-android'
build.gradle: migrate from protobuf-java to protobuf-javalite 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() ```
2019-10-08 20:47:25 +02:00
api 'com.google.protobuf:protobuf-javalite:3.13.0'
api 'com.squareup.okhttp3:okhttp:3.12.13'
2021-09-16 18:23:19 -07:00
implementation 'org.slf4j:slf4j-api:1.7.32'
implementation 'net.jcip:jcip-annotations:1.0'
compileOnly 'org.fusesource.leveldbjni:leveldbjni-all:1.8'
2021-02-11 13:01:30 +01:00
testImplementation 'junit:junit:4.13.1'
testImplementation 'org.easymock:easymock:3.2'
testImplementation 'com.fasterxml.jackson.core:jackson-databind:2.5.2'
2021-09-16 18:23:19 -07:00
testImplementation 'org.slf4j:slf4j-jdk14:1.7.32'
testImplementation 'com.h2database:h2:1.3.167'
testImplementation 'org.fusesource.leveldbjni:leveldbjni-all:1.8'
testImplementation 'nl.jqno.equalsverifier:equalsverifier:2.5.2'
testImplementation 'org.hamcrest:hamcrest-library:1.3'
}
sourceCompatibility = 1.7
targetCompatibility = 1.8
compileJava.options.encoding = 'UTF-8'
compileTestJava.options.encoding = 'UTF-8'
javadoc.options.encoding = 'UTF-8'
protobuf {
protoc {
artifact = 'com.google.protobuf:protoc:3.13.0'
}
build.gradle: migrate from protobuf-java to protobuf-javalite 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() ```
2019-10-08 20:47:25 +02:00
generateProtoTasks {
all().each { task ->
task.builtins {
java {
option "lite"
}
}
}
}
generatedFilesBaseDir = new File(projectDir, '/src') // workaround for '$projectDir/src'
}
test {
exclude 'org/bitcoinj/core/PeerTest*'
exclude 'org/bitcoinj/core/TransactionBroadcastTest*'
2019-03-15 12:09:05 +01:00
exclude 'org/bitcoinj/net/discovery/DnsDiscoveryTest*'
testLogging {
events "failed"
exceptionFormat "full"
}
}
ext.moduleName = 'org.bitcoinj.core'
jar {
inputs.property("moduleName", moduleName)
manifest {
attributes 'Automatic-Module-Name': moduleName
}
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
artifacts {
archives sourcesJar
archives javadocJar
}