Skip to content
This repository was archived by the owner on Mar 4, 2024. It is now read-only.

Commit e33ccc9

Browse files
Merge branch 'release/0.1.0'
2 parents d08be40 + cae4b87 commit e33ccc9

File tree

14 files changed

+1434
-2
lines changed

14 files changed

+1434
-2
lines changed

.gitignore

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
#############
2+
## Maven
3+
#############
4+
15
target/
26
pom.xml.tag
37
pom.xml.releaseBackup
@@ -7,3 +11,66 @@ release.properties
711
dependency-reduced-pom.xml
812
buildNumber.properties
913
.mvn/timing.properties
14+
15+
#################
16+
## Eclipse
17+
#################
18+
19+
.project
20+
.metadata
21+
bin/
22+
tmp/
23+
*.tmp
24+
*.bak
25+
*.swp
26+
*~.nib
27+
local.properties
28+
.classpath
29+
.settings/
30+
.loadpath
31+
32+
# External tool builders
33+
.externalToolBuilders/
34+
35+
# Locally stored "Eclipse launch configurations"
36+
*.launch
37+
38+
# CDT-specific
39+
.cproject
40+
41+
# PDT-specific
42+
.buildpath
43+
44+
#############
45+
## Windows detritus
46+
#############
47+
48+
# Windows image file caches
49+
Thumbs.db
50+
ehthumbs.db
51+
52+
# Folder config file
53+
Desktop.ini
54+
55+
# Recycle Bin used on file shares
56+
$RECYCLE.BIN/
57+
58+
#############
59+
## Mac detritus
60+
#############
61+
62+
.DS_Store
63+
64+
#############
65+
## Linux detritus
66+
#############
67+
68+
*.*~
69+
*~
70+
71+
#############
72+
## Java
73+
#############
74+
75+
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
76+
hs_err_pid*

.travis.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
sudo: false
2+
language: java
3+
jdk:
4+
- oraclejdk7
5+
6+
notifications:
7+
slack: sdhub:ti8lMh7ERZIqLzWF4dHkcgwt
8+
9+
cache:
10+
directories:
11+
- $HOME/.m2/repository
12+
- $HOME/.sonar
13+
14+
before_cache:
15+
- source ./.travis/utils.sh backup-maven-repo
16+
17+
before_install:
18+
- source ./.travis/utils.sh prepare-repo
19+
20+
before_script:
21+
- source ./.travis/utils.sh prepare-keys $ENCRYPTION_PASSWORD
22+
23+
script:
24+
- source ./.travis/build.sh
25+
26+
after_success:
27+
- source ./.travis/utils.sh restore-maven-repo
28+
- source ./.travis/qa.sh
29+
30+
env:
31+
global:
32+
- secure: bOPkjrXTYBlFNSC4H3CRxY7Fuom2g0jk6PF2oy6XHVjlJvQH8nlc1C6PXhlW07stPsfbWJ8seCxTf1RP3FfCSPU99bnZ7u0Wv5ANE57rWeBs/BDM92BzIYmlgGsyuz3S0pRKW44NPzeKBsMIaKPgLM0kI16xmjN4FAwufTV5bAWdxerrMrDEfqjGAgZhFPnKWu/wpYMpVQFgywpIHdq5HUsDIFWiUA7ArVwWxHUaKubM1bRSEt66yMVce/p2Q/bZMIw3GofcKzkiMGmWkLVX1MibTEAWGxkOWa/C5Ma3+2+pibnLp0ViTIQ3kSefoDjIzaly+OK81OPO+Gyzs2rulLGImQ47mRZ1lmqlSXGxtnAKGupo8hKu8IxbuBtMBQKElq6qdh6fppkZ3wVvkmOP2dbxBPQsK+q/58Glxfxaoa+PRhx4HR2+/GzEsPtlOVo09TtYJJ9SQFMxI1WER8atX1RAuS3VdtADOwH+022XCaoCoj0fL++T0Vq91LsSayzUFg243DoIISwrEnP3RgNXk3W6nFG3jCa0nnI4rXu/9slC78JHqrUFaH8hfvFWuPkenX5dlJiwr1sTpmGfMb8T1Wu0MNEMFZIRnxSUNG3+EFB8KxSVHpkJSe7lgulR45Uml7EnTk3IbP7JhpkokjF7z85LuiR0PKt21tAXUG1WwAs=
33+
- secure: ZWa4ZaLK3l4WAcX/Y5XUwYlFBzcoup8hQ6lwTzEiNYtK/LSPhzWVUrQ2WR1xt/gsNxd8i/FYfSHCpK5gqY4E7FS6wNHift7xKKGzf5sJ+zfQVrchFkVmvmSmK8xTPBBfldavhAcGuKI9OPGsVDQrDy8qvAPdqp/I/nakD98dz18WsCjHgIFlOmhhvo2LWKqaZWyDmCGF4ruC9FWks2in13BR5O7WQQxGPUoXG56fiSvyFsbhbM3WmMnO3PdLxr6GvATdVWuda6s361WcZLZ7XnYcYoN5THwdrN1OGzymN4mMpywKH5iY+HDKI499OjlC7CrFG4BloN+diLgPOklI7ftylcc1rC6i134wFqzJgme4nD3m59le2g2uG8OvJklMx67wO1znN9geetTzR4iogHah6X3EsrTvISaPqfdJ8pU/ie8ve5Co9DvlEshiw/4/OFntmtoUniiemuIgm4ZHfRj162x9BKuL5gpbiR6eWeOwUXQ5HZTJN1FtVrXhS7XYZkGb9H/Du2V9o0HWU5aY2Xtb+QAodM/N11kODCr16xUnEjluzCqJF2rDN5rvZLQfxsbp9mP68simR7wQLaWZNqyQBbS94pf3gR6vDT78Eze2R640qD7gPzk6ucSKJkprRSeyzbma6DuGiFcWHVvxoSkaZ/+gogbCKlr3ryf+7lg=
34+
- secure: ar2lhHVgkfikuCBF+xsIbv8o3G8SLJHrGJj2HUB8r1EGoohNTvlQm7M5y+vSUdyquNYMLqaV12djF9rPWluIZ30oW+tG32ZWZ9kX8nzk4TWPrwlOhbjP84HbkaovxOKmqFd62IkLAKPPUuLZjOGHf126904sRCbF7H8ClGBo3pDkXw7B4KDVJEGUHJ0Ns1yEBmf2RdPFwiBw2s6iLwv/L8SKYdNycgxIxPHyA/w6+PR9J/EldWsN6L7By/j4Hw7L9GVVfraQfQQPQ4AN9FuvSVYn+slhPNphZHlaxb5YKys+bKQQTmzGozKZgy8CfyEFdIZhqMGeJ1IQxt0674rN4LI5Wz7P1UyV68OWWDMrSLfpjj6GamnVxUbR74DXDqHHiwhiweI3jyYaIzz2m5Ks4RsDAPN08ftsXWNT00Q3tSlshz1/Z0cYTAVyjSbeggKjSR6q0MW7fo/K2a578Ym28rGGqoW6P1RgTwg7+CYSJu91bHNZupaWukBT0ly/+i6IW0VPYYqfHAIAtHpbQ1nNNOiTt1frKzcGYm034q7TzUhMg9w82mQDRzxBLiJbueXBFReMPys5ZG776x8jZTLOww5mNPJ9B74oAK9crMf6gl5g+MjeDswm910rjQ7eHpagZL2n4Fvp/NXK7aXQ6wGPByqZDvVIB0BfRkMoLVGFZE4=
35+
- secure: Q4/a/cHrpaM+tfSpu9NwQzeHRBkhPwyTCfELlwNagRumNV2Pyzrh2mjXOCB6LU5atBjpAMULZXN+i4ijfmc4L3VGCY0ncfpLfJGmQJuG6SWehtfITJmCqchrWXG3KkAJzviBZp3Z57EOdkbmBsalbYOFvyDPgIy0OWnIJTnZmwJQqJBmF/El6G3T45hnFiSm+Kgl4FemsGOAikLWQ00iwQfco7uwyc7r0tdgpdCBD88tB8nXpXKVt+nUYvZ7y+AFfbaPiDx5wlwMLbRaoLi+5aeJ7uXqPCBaJQ6gn3Y/d4Pt4mBnYuSpu5Wd1vjIIU1V5pUYpd6ZxemQmZQFzORGcN1IDDNxlHkTL1N4X8UawQbrgjvhdp71IYf/NshOdFNHdzadkHWywD1PC4Y6vc2sXcaFyso7Q8xUvY1fJ83q1xwdkLgY7QoPcHc7ktm/ds3t0oH7Iw8bxsVWlWh08OOJVE1C8+JochvADAD3GIIYm4i0jWdxupdPsNRFHf8V2LNMyyCwKS1oRmLmz8ngjsQlZMA1AYKd0aQeWNdpEpujB4UcYFkOEN4bxhRlNiTMsOdUdksZ5rJzzDiJUk4aXrsDiKtKvMxPXUAKabpxSCkuUqX21x3f2aTSW3090bG5pfeQ9AXWcNIOU+XDGbU5MduIpJhh2Kiql0hrn/pTwZP96cg=
36+
- secure: bfFv9EOdOJGvTEjunQXfqFvJnZXNpwj8/FjyCSIizbwgv7yyG7rrARGZFFh2ksFo5UPv/4EJCkVYfgl7B1zTl/NXjFX4lL1hdrMlVFqwn8t70E9kDZZU12CW8Z9t3ltGjy32DXlEP5pamg0ic1x3tm4v9yjPn5if6Jd1Jfc51RxVhcTKwQ90OajzmOCHHWkbkOsZgaN0fJWM4BxtsRhsD/yAisZZke7i3okoT5XOwVrdlHyqf93fetEvId3U6tAnZeOkSDHe3BVOVsLvk7UbYyp+RaR2K0qrTSEfH5JH4xQ+LTCb2/sQNS1saPAdoqncsT9fYkPruRUQKwAXgA+AAxiSEjI6uDqHUeEA4MyQUouxGYWYeo5A7ET3F7pLlhii2q2klR/RRYPXWNq+kQQTalknw9F4CEBRmOvQn7lV2TiqZg9cktf08RxTHC/kSbNDDO4tZcqDT/MLHnLhCtwxZ0iye1RNcnRKDrkeCF2o/CeVrVWtrW35FVUhSluskON6TXiooxU/DhQcgEk76HSDWdmd4r9b9qzhVzl6IJf3v4NHSqEN333ou4amThwTSkvtlTv/wVaoAjRVWCPJELWCNXJ5BSUm1lbthJVOObcQSCDxT+ZEfwEpUDiLWFVwl1fSYCwgTZh88NsxqWhh0uTJ1rJi7IY1PeBbmCiVByrrwII=
37+
- secure: ioRsPD/1hv8zUejkBHgCUub/46JFpIdHhO1+CBC5kMaZPIR6iqA/f4xXElHyrozj8gCsoXtfVtfeXDSyTUsOiEQiOQlqfFsall3PUv0ZeaQmqeZYSZt4ete9htLw/ufiAimHLHLiyuIto3dpuBPflUCkvlNeYk7FnWUpmDzZBoI19wom2cFSEGMnI7p2+SKGKPMSI9k5oTS0756LFWeFmiq3PV8WHic/pgcRv+I9T/b7xnx/oKYfVAizQwCO1iOY5OhXCY6QrhSbIk9tZvol9wjglsmcSYSdpuluaB9o+Uu6mdST+nwXANPodEWXWM0bfwo8Zqu5ZMN0tniLi+wpJo8uH55rdW59WRLkvX4LVU00DRevVvPkYfDgtnJMWSXWDvbT8ZM7e6JbYLo1w/Pvl3lU2gmJ5zLxkw77nIDN4gceG60vm1ahkt+icnKXnnM63Nhhnd4SwDQ8RYMTajSEPjG2LDStBM2Zdbu2J579NoOUaJRhRAQPZOokcJGIRX98yv9do7dPOsnzEBRNxm9VW0QWLkngyR4ee/jSxJ9/Lxx992NeE4wC4GgEsUJw6L2H4HCmN0OVE26d96WtHYv7K3s4XxQ/IRHsy6suP2MWY0ut6fwhoHNGzThe5842TIXiYoLVHgeMJS4nVI/8nWXfDRUTGLC03PUpXdVO5mOmMwA=
38+
- secure: WfYrhnWsWhF9ox6HeMrBNE0GwjidmXVqEn0tSb8DBAt7V8okLdJ4BV/llmDhD8aN40N7qf4xfOgE8XeaLrB45h18DxgmHXCU2Q90rRaK0Q+316ji/sp86SE6SdUj9I5WOETXtF2/NJTBz0BVrCkGkrZa9fzIe/qgUA4/NoDs57SaQwJ1Q+lNIS9hZhOvlaEqoeizHKSz5CeQzRIDlGjnFBl0CHjlNLtl6tMvCFMB1aTxdhFrTVpFWV6KNeMvAV4M+9PRrVTrOwb+KGOvjpaTEzLdt/GDumfr0b4XLNslN/qMACdPrikWf8f+f0aOMPNkP/F5JHzVlftiYCxBg8w9beEfhTBqFEW89KcPBvwObxi6vLASUjzsGef1rN2BasSohYyTIDygsK8J8ylsDXB2JIhV38m/ysTMzoGEovQQJ1nUqOJVztbBqd04cq6zxkxtbPXfiPl6WSb4na0MzEPvBUo5/54yOLCMSxNjcFe3DZfK26X/4PRE+eghD99BFXB4c++eTszyd5GvgSAQL/nlNGGKCyfAquqiEDdA4p15sGsFUMYHEhxyXknJ3nkci5JzXFGZG9HfVB4uZtWWXZ41GoOBXZfbD/ETvOU87tYIgHdSaUAdHoolp0BHwqaEpfvcEvVgOznWrjwyqusnaQCKy+gZn6txmPCtBg6GiDeRwH4=
39+
- secure: BnK42A+GKsteyLFcEd9c5WVBBaxsWTtSP+xyBdbhAQodRZKNa5Pa1Scd3DCVvMB5ABPnWK1D8hCGBZBkksLmf3S+2/Wl91ZAvRqnanf8GMbtocibhzSXop1rGCZmvpWDZZEyAf5UlI8Phm55Z1JS8eRNI7YY7jmks3Y6fkTb7qcexrhx5O2G21m3dxIzDHcoj3GywewAt+/pm+S8utn/DmlBHXNG7v5fXAjNG9iYUGWekMTAY2QgwO6kk8AHVJwyOiMGrRUoD7IqV8B64SiAGJXbSBdZ5//bIVUOOYV66XAXQpmuQk7Vbtsfm3mwU/M+zPM43X7l4O3YJunjtKBxdfVhia/EpTKJZDy91LD/VBts3E2lZ6dKY1cl13CKxv4iKLuLxnPFl2Xjm0HOH7aMtZ9Im3x2Sx//43N2eTqPSCWOpK2PfGeK59LWCuqYnrlFFUnWWJfb/ZN7/2Dgc9iWVHgjZN06/UyYFmsz8YtFVOyBhrWTt0WLOijwItZZG8kDmAaIaj3euYgUmiGDvEahBD6sARvR4vh0n51WvuKqGbYr/kne74V0pe7t0Y7J5AMP3F0clRiL28/LTOxa/PMofWUI+ZnBfwi2bnMJRnZhs4KhRYENuYwP3DgbxERkfwXUy8FMIMTLI0Xr6AEGCGZ+utPyrVzmdJkqHbzt6HTraTA=
40+
- secure: jpttqB8CnEb7fFb0n6CYrmr8Pk/XOj+YpINlK3W+9vNHXc9k8PogTW35r9J6f85sfIRpqohEgopD/Ra5Gj7gIo2jOFAc3b3dMO1H4KGyJ8MAMQMjtBc3gLxj6qydZ0+AelVlsyomtj/OEmGekXhmlEfU6zw12J+x8C7Uv4EkttyogKbpBiCDb5+zMLuVgGLxtBrAuLAofgpdl4e+Y94unxvBPkHVKXAJ2QR0ajiO9t5nGTeU8Vo+Li1gsD5KPmRAgDHvv5ri0O8wcpj58PvJagR/oD09mzaSwU61+3mQU4iTQ5Q2Z9V6WaxBWa3SYeyWO1iDuzACG6x6CUY5Ej3ODNRR8wlnaTGHLuLcFwJXu4N3xPehzLBFVUHs2dCjw/giwGcJmuoBB1R8LmRc/YkrIvzWuEtPUSVUwW6TtE8bYZcAY6hc/7GW9L2lmJ28eyAxrzUkZO2ZjaLaV84rYZ9Gzs/mkv5zlYJR2r5WTcJvlJj4jmS0SkBOIp+30AvrdshuVB3SPASZb7M9CbYZJTiXadr234/kZ32IvcnEPIA2vh5fX8qyUFAXLee58PuP6O6dnVGMcfdWiC4I3NHVpfbQg5ujU0yDTR3V7S8l8cx2E6nWV6Btn1ZcbGQ850Pb4mcRRYCXfMJ19jxujbh4cYcmPaTeOhN3CODZIETiRwk4kxg=

.travis/build.sh

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#!/bin/bash
2+
# Abort script on first failure
3+
set -e
4+
5+
function deploy() {
6+
if [ "$1" != "porcelain" ];
7+
then
8+
echo "Executing Maven deploy (${TRAVIS_BRANCH})..."
9+
mvn clean deploy -B -Dcodebase.directory=$(pwd) -Dcoverage.reports.dir=$(pwd)/target/all --settings target/config/ci/settings.xml
10+
else
11+
echo "Skipped Maven deploy (${TRAVIS_BRANCH}): Porcelain"
12+
fi
13+
}
14+
15+
function install() {
16+
if [ "$1" != "porcelain" ];
17+
then
18+
echo "Executing Maven install (${TRAVIS_BRANCH})..."
19+
mvn clean install -B -Dcoverage.reports.dir=$(pwd)/target/all --settings target/config/ci/settings.xml
20+
else
21+
echo "Skipped Maven install (${TRAVIS_BRANCH}): Porcelain"
22+
fi
23+
}
24+
25+
function runBuild() {
26+
mode=$1
27+
if [ "${TRAVIS_PULL_REQUEST}" = "false" ];
28+
then
29+
case "${TRAVIS_BRANCH}" in
30+
master | develop ) deploy "$mode";;
31+
feature\/* ) install "$mode";;
32+
* ) install "$mode";;
33+
esac
34+
else
35+
install "$mode"
36+
fi
37+
}
38+
39+
function skipBuild() {
40+
echo "Skipping build..."
41+
}
42+
43+
if [ "${DEBUG}" = "trace" ];
44+
then
45+
set -x
46+
fi
47+
48+
case "${CI}" in
49+
skip ) skipBuild ;;
50+
porcelain ) runBuild porcelain ;;
51+
* ) runBuild "$1" ;;
52+
esac

.travis/qa.sh

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
#!/bin/bash
2+
# Avoid aborting script on failure
3+
set +e
4+
5+
function logCheckResults() {
6+
case "${DEBUG}" in
7+
trace | verbose )
8+
echo "-> Trace:"
9+
cat log.txt
10+
echo "-> Response:"
11+
cat data.txt
12+
;;
13+
* )
14+
:
15+
;;
16+
esac
17+
}
18+
19+
function checkWithCurl() {
20+
if [ "${DEBUG}" = "verbose" ];
21+
then
22+
curl --version
23+
fi
24+
curl --head --silent --verbose --connect-timeout 5 "$1" > data.txt 2> log.txt
25+
error=$?
26+
logCheckResults
27+
return "$error"
28+
}
29+
30+
function checkWithWget() {
31+
if [ "${DEBUG}" = "verbose" ];
32+
then
33+
wget --version
34+
fi
35+
# Write response (and headers) to 'data.txt', (verbose) activity to 'log.txt'
36+
# including additional debug entries (e.g., requests and responses), with a
37+
# generic timeout of 5s, and retry only once.
38+
# In addition, discard the additional output (both standard and error)
39+
wget --output-document=data.txt --output-file=log.txt --verbose --debug --timeout=5 --tries 1 --save-headers "$1" > error.log 2>&1
40+
error=$?
41+
if [ "$error" != "0" ];
42+
then
43+
# If a failure happens, but the server sent a response...
44+
if [ "$(grep -c "response begin" log.txt)" -gt 0 ]
45+
then
46+
# ... we extract the response from the log...
47+
from=$(awk '/response begin/{ print NR; exit }' log.txt)
48+
to=$(awk '/response end/{ print NR; exit }' log.txt)
49+
head -n $((to - 1)) log.txt | tail -n $((to - from - 1)) > data.txt
50+
# ... and clear the failure status.
51+
error=0
52+
fi
53+
fi
54+
logCheckResults
55+
return "$error"
56+
}
57+
58+
function checkSonarQubeServer() {
59+
echo "Checking SonarQube Server..."
60+
61+
case "${CHECKER}" in
62+
curl ) checkWithCurl "$1";;
63+
* ) checkWithWget "$1";;
64+
esac
65+
66+
error=$?
67+
if [ "$error" = "0" ];
68+
then
69+
status=$(head -n 1 data.txt | awk '{print $2}')
70+
if [ "$status" != "200" ];
71+
then
72+
echo "SonarQube Server is not available (response status code: $status)"
73+
error=1
74+
fi
75+
else
76+
echo "Could not connect to SonarQube Server: "
77+
cat log.txt
78+
error=2
79+
fi
80+
rm data.txt
81+
rm log.txt
82+
return "$error"
83+
}
84+
85+
function analyzeBranch() {
86+
checkSonarQubeServer "$1"
87+
if [ "$?" = "0" ];
88+
then
89+
if [ "$2" != "porcelain" ];
90+
then
91+
echo "Executing SonarQube analysis (${TRAVIS_BRANCH})..."
92+
# If SSL network failures happen, execute the analysis with -Djavax.net.debug=all
93+
mvn sonar:sonar -B -Dsonar.branch="$TRAVIS_BRANCH" -Dcoverage.reports.dir="$(pwd)/target/all" --settings target/config/ci/settings.xml
94+
else
95+
echo "Skipped SonarQube analysis (${TRAVIS_BRANCH}): Porcelain"
96+
fi
97+
else
98+
echo "Skipped SonarQube analysis (${TRAVIS_BRANCH})"
99+
fi
100+
}
101+
102+
function skipBranchAnalysis() {
103+
echo "Skipped SonarQube analysis (${TRAVIS_BRANCH}): Non Q.A. branch"
104+
}
105+
106+
function skipPullRequestAnalysis() {
107+
echo "Skipped SonarQube analysis (${TRAVIS_BRANCH}): Pull request"
108+
}
109+
110+
function skipBuild() {
111+
echo "Skipping build..."
112+
}
113+
114+
function skipSonarQubeAnalysis() {
115+
echo "Skipping SonarQube analysis..."
116+
}
117+
118+
function runSonarQubeAnalysis() {
119+
if [ "${TRAVIS_PULL_REQUEST}" = "false" ];
120+
then
121+
case "${TRAVIS_BRANCH}" in
122+
master | develop ) analyzeBranch "$1" "$2";;
123+
feature\/* ) analyzeBranch "$1" "$2";;
124+
* ) skipBranchAnalysis ;;
125+
esac
126+
else
127+
skipPullRequestAnalysis
128+
fi
129+
}
130+
131+
if [ "${DEBUG}" = "trace" ];
132+
then
133+
set -x
134+
fi
135+
136+
server=http://www.smartdeveloperhub.org/sonar/
137+
138+
case "${CI}" in
139+
skip ) skipBuild ;;
140+
noqa ) skipSonarQubeAnalysis ;;
141+
porcelain ) runSonarQubeAnalysis "$server" porcelain ;;
142+
* ) runSonarQubeAnalysis "$server" "$1" ;;
143+
esac
144+
145+
set +x
146+
147+
return 0

0 commit comments

Comments
 (0)