diff --git a/example/pom.xml b/example/pom.xml index c4dba3d613..233277f444 100644 --- a/example/pom.xml +++ b/example/pom.xml @@ -101,21 +101,6 @@ - - - spdy-server - - io.netty.example.spdy.server.SpdyServer - - - - spdy-client - - io.netty.example.spdy.client.SpdyClient - - - - @@ -129,6 +114,7 @@ ${argLine.leak} ${argLine.coverage} -classpath %classpath + ${argLine.example} ${exampleClass} runtime diff --git a/run-example.sh b/run-example.sh index 9bf40f64cb..b14c1c8ef2 100755 --- a/run-example.sh +++ b/run-example.sh @@ -1,15 +1,42 @@ #!/bin/bash -e -cd "`dirname "$0"`"/example -if [[ $# -ne 1 ]]; then - echo "Usage: $0 " >&2 +declare -A EXAMPLE_MAP=( + ['spdy-server']='io.netty.example.spdy.server.SpdyServer' + ['spdy-client']='io.netty.example.spdy.client.SpdyClient' +) + +EXAMPLE='' +EXAMPLE_CLASS='' +EXAMPLE_ARGS='' +I=0 + +while [[ $# -gt 0 ]]; do + ARG="$1" + shift + if [[ "$ARG" =~ (^-.+) ]]; then + if [[ -z "$EXAMPLE_ARGS" ]]; then + EXAMPLE_ARGS="$ARG" + else + EXAMPLE_ARGS="$EXAMPLE_ARGS $ARG" + fi + else + EXAMPLE="$ARG" + EXAMPLE_CLASS="${EXAMPLE_MAP["$EXAMPLE"]}" + break + fi +done + +if [[ -z "$EXAMPLE" ]] || [[ -z "$EXAMPLE_CLASS" ]] || [[ $# -ne 0 ]]; then + echo " Usage: $0 [-D[=] ...] " >&2 + echo "Example: $0 -Dport=8443 -Dssl http-server" >&2 echo >&2 echo "Available examples:" >&2 - grep -E '^ [-a-z0-9]*' pom.xml | sed -e 's#\(^.*\|.*$\)##g' | sed -e 's#^# #' >&2 + for E in "${!EXAMPLE_MAP[@]}"; do + echo " $E" + done | sort >&2 exit 1 fi -EXAMPLE_NAME="$1" - -echo "[INFO] Running: $EXAMPLE_NAME" -mvn -X -P "$EXAMPLE_NAME" compile exec:exec +cd "`dirname "$0"`"/example +echo "[INFO] Running: $EXAMPLE ($EXAMPLE_CLASS $EXAMPLE_ARGS)" +exec mvn -nsu compile exec:exec -DargLine.example="$EXAMPLE_ARGS" -DexampleClass="$EXAMPLE_CLASS"