mirror of
https://github.com/corda/corda.git
synced 2025-06-20 08:03:53 +00:00
Razvan/merge 4.3 into 4.4 (#5494)
* NOTICK: Corda 4.3-RC01 Created first release candidate of Corda 4.3 - RC01. * CORDA-3141: Add GracefulReconnect callbacks which allow logic to be performed when RPC disconnects unexpectedly (#5430) Also removed potential for growing stack trace on reconnects. * CORDA-2050 Upgrade Corda to Java 11 (compatibility mode) (#5356) Upgrade Corda to run with Java 11 (compatibility mode) - see https://github.com/corda/corda/pull/5356 * ENT-4198 Adding legal text Signed-off-by: Ed Prosser <edward.prosser@r3.com> * TM-29 new baseline for 4.3 since new debt has been added with the last few commits (#5487) * TM-23 compileAll task to compile all code (#5490) * Add simple compileAll task to be used by warning check * lazy configure compileAll * TM-32 Merge OS 4.3 into 4.4 * TM-32 fixed detekt issue * Downgrade Dokka back to 0.9.17 due to failing docs_builder. * add ability to group test types together (#5459) * add ability to group test types together * add ability to specify podCount for use in parallel testing * remove compiler xml * add Jenkinsfile to enable scanning * trigger build * add ability to specify what docker tag to use from outside of the build * fix docker work dir * fix pipeline syntax issues * use environment rather than `def` * move agent restrictor outside of stages block * use steps block * more pipeline syntax fixes * even more pipeline syntax fixes * even more pipeline syntax fixes * add kubenetize as property to image build * move clear of docker image to end of build rather than start to prevent colocated builds * escape dollar on docker image remove command * attempt to kill all existing jobs * fix compile issue due to killall_jobs * fix compile issue due to killall_jobs pt2 * fix spelling * make all variables environment variables * add logic to delete images locally after pushing * wrap testing phase with try / finally so that junit reports are always evaluated * change the behaviour around post build actions * break implicit link between testing phase and image building phase, allowing testing to occur without a rebuild and push of image * prepend registry name to provided tag * allow tasks to specify whether they wish to stream output from containers * add timestamps directive to Jenkinsfile to have timing info on output * make KubesTest resilient against transient pod failures in k8s * increase CPU request * add logic to allow specifying container resource requests * attempt to run unit and integration tests in parallel * change unit tests to use 3 cores to allow co-location on 8c machines * join grouped tests together to give pod meaningful name * add step to renew token with GKE * change renew step to use pods instead of nodes * fix bug where memory request is not correctly passed to pod * disable unit tests for now * [CORDA-2368] Added exception handling for missing files that displays appropriate messages rather than defaulting to file names. (#5472) * NOTIK Minor adjustments to Detekt rules to reflect current working practises (#5498) * Minor adjustments to rules to reflect current working practises (including IntelliJ code style alignment) * Adjust another rule in line with existing code style. * rebaseline with changed detekt ruleset * rebaseline with NodeStartup changes
This commit is contained in:
@ -0,0 +1,61 @@
|
||||
package net.corda.deterministic;
|
||||
|
||||
import java.security.Provider;
|
||||
import java.security.SecureRandom;
|
||||
import java.security.SecureRandomSpi;
|
||||
import java.security.Security;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
/**
|
||||
* Temporarily restore Sun's [SecureRandom] provider.
|
||||
* This is ONLY for allowing us to generate test data, e.g. signatures.
|
||||
*
|
||||
* JDK11 upgrade: rewritten in Java to gain access to private internal JDK classes via module directives (not available to Kotlin compiler):
|
||||
* sun.security.provider.SecureRandom()
|
||||
*/
|
||||
public class CheatingSecurityProvider extends Provider implements AutoCloseable {
|
||||
|
||||
private static AtomicInteger counter = new AtomicInteger();
|
||||
|
||||
@SuppressWarnings("deprecation") // JDK11: should replace with Provider(String name, double version, String info) (since 9)
|
||||
public CheatingSecurityProvider() {
|
||||
super("Cheat-" + counter.getAndIncrement(), 1.8, "Cheat security provider");
|
||||
putService(new CheatingSecureRandomService(this));
|
||||
assertEquals(1, Security.insertProviderAt(this, 1));
|
||||
}
|
||||
|
||||
public void close() {
|
||||
Security.removeProvider(getName());
|
||||
}
|
||||
|
||||
private class SunSecureRandom extends SecureRandom {
|
||||
public SunSecureRandom() {
|
||||
// JDK11 upgrade: rewritten in Java to gain access to private internal JDK classes via open module directive
|
||||
super(new sun.security.provider.SecureRandom(), null);
|
||||
}
|
||||
}
|
||||
|
||||
private class CheatingSecureRandomService extends Provider.Service {
|
||||
|
||||
public CheatingSecureRandomService(Provider provider) {
|
||||
super(provider, "SecureRandom", "CheatingPRNG", CheatingSecureRandomSpi.class.getName(), null, null);
|
||||
}
|
||||
|
||||
private SecureRandomSpi instance = new CheatingSecureRandomSpi();
|
||||
|
||||
public Object newInstance(Object constructorParameter){
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
|
||||
private class CheatingSecureRandomSpi extends SecureRandomSpi {
|
||||
|
||||
private SecureRandom secureRandom = new SunSecureRandom();
|
||||
|
||||
public void engineSetSeed(byte[] seed) { secureRandom.setSeed(seed); }
|
||||
public void engineNextBytes(byte[] bytes) { secureRandom.nextBytes(bytes); }
|
||||
public byte[] engineGenerateSeed(int numBytes) { return secureRandom.generateSeed(numBytes); }
|
||||
}
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
package net.corda.deterministic
|
||||
|
||||
import org.junit.Assert.*
|
||||
import java.security.Provider
|
||||
import java.security.SecureRandom
|
||||
import java.security.SecureRandomSpi
|
||||
import java.security.Security
|
||||
import java.util.concurrent.atomic.AtomicInteger
|
||||
|
||||
/**
|
||||
* Temporarily restore Sun's [SecureRandom] provider.
|
||||
* This is ONLY for allowing us to generate test data, e.g. signatures.
|
||||
*/
|
||||
class CheatingSecurityProvider : Provider("Cheat-${counter.getAndIncrement()}", 1.8, "Cheat security provider"), AutoCloseable {
|
||||
private companion object {
|
||||
private val counter = AtomicInteger()
|
||||
}
|
||||
|
||||
init {
|
||||
putService(CheatingSecureRandomService(this))
|
||||
assertEquals(1, Security.insertProviderAt(this, 1))
|
||||
}
|
||||
|
||||
override fun close() {
|
||||
Security.removeProvider(name)
|
||||
}
|
||||
|
||||
private class SunSecureRandom : SecureRandom(sun.security.provider.SecureRandom(), null)
|
||||
|
||||
private class CheatingSecureRandomService(provider: Provider)
|
||||
: Provider.Service(provider, "SecureRandom", "CheatingPRNG", CheatingSecureRandomSpi::javaClass.name, null, null) {
|
||||
|
||||
private val instance: SecureRandomSpi = CheatingSecureRandomSpi()
|
||||
override fun newInstance(constructorParameter: Any?) = instance
|
||||
}
|
||||
|
||||
private class CheatingSecureRandomSpi : SecureRandomSpi() {
|
||||
private val secureRandom: SecureRandom = SunSecureRandom()
|
||||
|
||||
override fun engineSetSeed(seed: ByteArray) = secureRandom.setSeed(seed)
|
||||
override fun engineNextBytes(bytes: ByteArray) = secureRandom.nextBytes(bytes)
|
||||
override fun engineGenerateSeed(numBytes: Int): ByteArray = secureRandom.generateSeed(numBytes)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user