mirror of
https://github.com/corda/corda.git
synced 2024-12-19 13:08:04 +00:00
455221629b
* CORDA-1343 Make the RPCClient ssl constructors public. Clean up broker authentication logic * CORDA-1343 small fix * CORDA-1343 cleanup * CORDA-1343 fixed api changes script * CORDA-1343 fixed merge * CORDA-1343 removed unused property * CORDA-1343 add separate p2p and rpc node users * CORDA-1343 remove test configuration * CORDA-1343 fix tests * CORDA-1343 address core review comments * CORDA-1343 some documentation and adding createWithSsl method for a haAddressPool * CORDA-1343 clean up the CordaRPCClient interface * CORDA-1343 add internal shell test * CORDA-1343 address code review comments * CORDA-1343 split the internalShell user from the System Rpc user * CORDA-1343 fix test * CORDA-1343 Add warning when certificateChainCheckPolicies is being configured * CORDA-1343 Address code review changes * CORDA-1343 fix merge * CORDA-1343 added test, docs, clarify comments * CORDA-1343 clean up docs * CORDA-1343 fix api * CORDA-1343 fix merge * CORDA-1343 fix merge * CORDA-1343 fix merge * CORDA-1343 fix merge
80 lines
2.2 KiB
Bash
Executable File
80 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
set +o posix
|
|
|
|
echo "Starting API Diff"
|
|
|
|
APIHOME=$(dirname $0)
|
|
|
|
apiCurrent=$APIHOME/api-current.txt
|
|
if [ ! -f $apiCurrent ]; then
|
|
echo "Missing $apiCurrent file - cannot check API diff. Please rebase or add it to this release"
|
|
exit -1
|
|
fi
|
|
|
|
# Remove the two header lines from the diff output.
|
|
diffContents=`diff -u $apiCurrent $APIHOME/../build/api/api-corda-*.txt | tail -n +3`
|
|
echo "Diff contents:"
|
|
echo "$diffContents"
|
|
echo
|
|
|
|
# A removed line means that an API was either deleted or modified.
|
|
removals=$(echo "$diffContents" | grep "^-")
|
|
removalCount=`grep -v "^$" <<EOF | wc -l
|
|
$removals
|
|
EOF
|
|
`
|
|
|
|
echo "Number of API removals/changes: "$removalCount
|
|
if [ $removalCount -gt 0 ]; then
|
|
echo "$removals"
|
|
echo
|
|
fi
|
|
|
|
# Adding new abstract methods could also break the API.
|
|
# However, first exclude classes marked with the @DoNotImplement annotation
|
|
function forUserImpl() {
|
|
awk '/DoNotImplement/,/^##/{ next }{ print }' $1
|
|
}
|
|
|
|
userDiffContents=`diff -u <(forUserImpl $apiCurrent) <(forUserImpl $APIHOME/../build/api/api-corda-*.txt) | tail -n +3`
|
|
|
|
newAbstracts=$(echo "$userDiffContents" | grep "^+" | grep "\(public\|protected\) abstract")
|
|
abstractCount=`grep -v "^$" <<EOF | wc -l
|
|
$newAbstracts
|
|
EOF
|
|
`
|
|
|
|
#Get a list of any methods that expose classes in .internal. namespaces, and any classes which extend/implement
|
|
#an internal class
|
|
#TODO: check that only classes in a whitelist are part of the API rather than look for specific invalid cases going forward
|
|
newInternalExposures=$(echo "$userDiffContents" | grep "^+" | grep "\.internal\." )
|
|
newNodeExposures=$(echo "$userDiffContents" | grep "^+" | grep "net\.corda\.node\.")
|
|
|
|
internalCount=`grep -v "^$" <<EOF | wc -l
|
|
$newInternalExposures
|
|
$newNodeExposures
|
|
EOF
|
|
`
|
|
|
|
echo "Number of new internal class exposures: "$internalCount
|
|
if [ $internalCount -gt 0 ]; then
|
|
echo "$newInternalExposures"
|
|
echo "$newNodeExposures"
|
|
echo
|
|
fi
|
|
|
|
echo "Number of new abstract APIs: "$abstractCount
|
|
if [ $abstractCount -gt 0 ]; then
|
|
echo "$newAbstracts"
|
|
echo
|
|
fi
|
|
|
|
badChanges=$(($removalCount + $abstractCount + $internalCount))
|
|
if [ $badChanges -gt 255 ]; then
|
|
echo "OVERFLOW! Number of bad API changes: $badChanges"
|
|
badChanges=255
|
|
fi
|
|
|
|
echo "Exiting with exit code" $badChanges
|
|
exit $badChanges
|