corda/bridge/bridgecapsule/build.gradle
Matthew Nesbit d592fb5c49 Create basic bridge module and capsule build
Basic pieces of bridge, still very rough

Work in progress

Fixes after rebase

Primitive float tunnel implementation

Put explanatory comments on the interfaces. Add support for different SSL KeyStores for the different connections to/from the bridge and float.

Add a couple more comments

Cleanup

Fix some issues

Use a new custom header to relay the login identity from bridges. (Will add more security to this shortly)

Make key protection logic a bit clearer in the comments

Create some basic test and integrationTests

Add a couple of tests of the BridgeAMQPListenerService

Add some basic tests

Correct comment

Fixup after rebase

Fixup after rebase

Fixup after rebase

Explicit parameter types to work on build box.

Address PR comments

Address some of Mike's PR comments.

Re-enable test on enterprise.

Don't sweep up node default config

Remove obsolete config entry

Correct merge mistake

Configurable whitelist headers on bridge

Don't access primary artemis session from different threads used by inbound packet pathway.

Fix unit test
2018-03-14 11:08:09 +00:00

66 lines
2.4 KiB
Groovy

/**
* This build.gradle exists to publish our capsule (executable fat jar) to maven. It cannot be placed in the
* bridges project because the bintray plugin cannot publish two modules from one project.
*/
apply plugin: 'net.corda.plugins.publish-utils'
apply plugin: 'us.kirchmeier.capsule'
description 'Corda bridge server capsule'
configurations {
runtimeArtifacts
capsuleRuntime
}
dependencies {
// TypeSafe Config: for simple and human friendly config files.
capsuleRuntime "com.typesafe:config:$typesafe_config_version"
}
// Force the Caplet to target Java 6. This ensures that running 'java -jar corda.jar' on any Java 6 VM upwards
// will get as far as the Capsule version checks, meaning that if your JVM is too old, you will at least get
// a sensible error message telling you what to do rather than a bytecode version exception that doesn't.
// If we introduce .java files into this module that need Java 8+ then we will have to push the caplet into
// its own module so its target can be controlled individually, but for now this suffices.
sourceCompatibility = 1.6
targetCompatibility = 1.6
task buildBridgeServerJar(type: FatCapsule, dependsOn: project(':bridge').jar) {
applicationClass 'net.corda.bridge.Bridge'
archiveName "corda-bridgeserver-${corda_release_version}.jar"
applicationSource = files(
project(':bridge').configurations.runtime,
project(':bridge').jar,
"$rootDir/config/dev/log4j2.xml",
"$rootDir/bridge/build/resources/main/reference.conf"
)
from 'NOTICE' // Copy CDDL notice
from configurations.capsuleRuntime.files.collect { zipTree(it) }
capsuleManifest {
applicationVersion = corda_release_version
javaAgents = []
systemProperties['visualvm.display.name'] = 'Corda Bridge Server'
minJavaVersion = '1.8.0'
minUpdateVersion['1.8'] = java8_minUpdateVersion
caplets = []
// JVM configuration:
// - Constrain to small heap sizes to ease development on low end devices.
// - Switch to the G1 GC which is going to be the default in Java 9 and gives low pause times/string dedup.
jvmArgs = ['-Xmx200m', '-XX:+UseG1GC']
}
}
artifacts {
runtimeArtifacts buildBridgeServerJar
publish buildBridgeServerJar {
classifier ""
}
}
publish {
disableDefaultJar = true
name 'corda-bridgeserver'
}