diff --git a/reference-nbi/src/docker/DockerFile b/reference-nbi/src/docker/DockerFile new file mode 100755 index 0000000..69c2efd --- /dev/null +++ b/reference-nbi/src/docker/DockerFile @@ -0,0 +1,12 @@ +#FROM anapsix/alpine-java:jre8 +FROM openjdk:8 + +ARG USERVICE_HOME=/opt/app/ + +# Build up the deployment folder structure +RUN mkdir -p $USERVICE_HOME + +ADD reference-nbi-*.jar $USERVICE_HOME/lib/reference-nbi.jar +ADD startService.sh $USERVICE_HOME/bin/ + +CMD ["/opt/app/bin/startService.sh"] \ No newline at end of file diff --git a/reference-nbi/src/docker/build.sh b/reference-nbi/src/docker/build.sh new file mode 100755 index 0000000..2831fde --- /dev/null +++ b/reference-nbi/src/docker/build.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# http://wiki.obrienlabs.cloud/display/DEV/AWS+ECR+E2E+Architecture +# source from http://jira.obrienlabs.cloud/browse/ECS-1 +# https://github.com/obrienlabs/refarch +# Michael O'Brien + +BUILD_ID=10001 +BUILD_DIR=builds +mkdir ../../$BUILD_DIR +TARGET_DIR=../../$BUILD_DIR/$BUILD_ID +mkdir $TARGET_DIR +CONTAINER_IMAGE=reference-nbi + +cp ../../target/*.jar $TARGET_DIR +cp DockerFile $TARGET_DIR +cp startService.sh $TARGET_DIR +cd $TARGET_DIR +docker build --no-cache --build-arg build-id=$BUILD_ID -t obrienlabs/$CONTAINER_IMAGE -f DockerFile . +#docker tag $CONTAINER_IMAGE:latest $CONTAINER_IMAGE:latest +docker tag obrienlabs/$CONTAINER_IMAGE obrienlabs/$CONTAINER_IMAGE:0.0.1 +# dockerhub +docker push obrienlabs/$CONTAINER_IMAGE:0.0.1 +# locally +docker stop $CONTAINER_IMAGE +docker rm $CONTAINER_IMAGE +echo "starting: $CONTAINER_IMAGE" +docker run --name $CONTAINER_IMAGE \ + -d -p 8888:8080 \ + -e os.environment.configuration.dir=/ \ + -e os.environment.ecosystem=sbx \ + obrienlabs/$CONTAINER_IMAGE:0.0.1 + + +cd ../../src/docker + diff --git a/reference-nbi/src/docker/startService.sh b/reference-nbi/src/docker/startService.sh new file mode 100755 index 0000000..3bd1244 --- /dev/null +++ b/reference-nbi/src/docker/startService.sh @@ -0,0 +1,8 @@ +#!/bin/bash +cd /opt/app +#-Dlogging.config=config/logback.xml +if [ -z "${java_runtime_arguments}" ]; then +java -Xms128m -Xmx1536m -jar /opt/app/lib/reference-nbi.jar +else +java $java_runtime_arguments -jar /opt/app/lib/reference-nbi.jar +fi diff --git a/reference-nbi/src/main/java/cloud/containerization/reference/nbi/ApiController.java b/reference-nbi/src/main/java/cloud/containerization/reference/nbi/ApiController.java index 5c230d5..5285667 100755 --- a/reference-nbi/src/main/java/cloud/containerization/reference/nbi/ApiController.java +++ b/reference-nbi/src/main/java/cloud/containerization/reference/nbi/ApiController.java @@ -53,18 +53,22 @@ public class ApiController { } /** + * MapReduce: split a string on & into a list and then each entry on the = delimiter into a map * execution=e1s1&action=test = ZXhlY3V0aW9uPWUxczEmYWN0aW9uPXRlc3Q= */ private Map parseParameters(String decoded) { - // split on & delimiter - List kvPairs = Stream.of(decoded.split("&")) + Map map = null; + if(null != decoded && decoded.length() > 0) { + map = Stream.of(decoded + .split("&")) .map(elem -> new String(elem)) - .collect(Collectors.toList()); - // split on = delimiter - Map map = kvPairs.stream().map(s -> s.split("=")).collect( - Collectors.toMap(a -> a[0], a -> a[1])); - map.entrySet().stream().forEach( - e -> LOG.info("Attribute: " + e.getKey() + "=" + e.getValue())); + .collect(Collectors.toList()) + .stream() + .map(s -> s.split("=")) + .collect(Collectors.toMap(a -> a[0], a -> a[1])); + map.entrySet().stream() + .forEach(e -> LOG.info("Attribute: " + e.getKey() + "=" + e.getValue())); + } return map; } } diff --git a/reference-nbi/src/main/java/cloud/containerization/reference/nbi/Base64Filter.java b/reference-nbi/src/main/java/cloud/containerization/reference/nbi/Base64Filter.java index ba08cf6..e582a3e 100644 --- a/reference-nbi/src/main/java/cloud/containerization/reference/nbi/Base64Filter.java +++ b/reference-nbi/src/main/java/cloud/containerization/reference/nbi/Base64Filter.java @@ -45,7 +45,11 @@ private String encode(String url) { } private String decode(String url) { - byte[] decodedBytes = Base64.getUrlDecoder().decode(url); - return new String(decodedBytes); + if(null != url) { + byte[] decodedBytes = Base64.getUrlDecoder().decode(url); + return new String(decodedBytes); + } else { + return ""; + } } }