diff --git a/gctrl-spring (copy)/gctrl.zip b/gctrl-spring (copy)/gctrl.zip deleted file mode 100644 index 6e53772..0000000 Binary files a/gctrl-spring (copy)/gctrl.zip and /dev/null differ diff --git a/gctrl-spring (copy)/gctrl/.gitignore b/gctrl-spring (copy)/gctrl/.gitignore deleted file mode 100644 index 549e00a..0000000 --- a/gctrl-spring (copy)/gctrl/.gitignore +++ /dev/null @@ -1,33 +0,0 @@ -HELP.md -target/ -!.mvn/wrapper/maven-wrapper.jar -!**/src/main/**/target/ -!**/src/test/**/target/ - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -build/ -!**/src/main/**/build/ -!**/src/test/**/build/ - -### VS Code ### -.vscode/ diff --git a/gctrl-spring (copy)/gctrl/.mvn/wrapper/MavenWrapperDownloader.java b/gctrl-spring (copy)/gctrl/.mvn/wrapper/MavenWrapperDownloader.java deleted file mode 100644 index e76d1f3..0000000 --- a/gctrl-spring (copy)/gctrl/.mvn/wrapper/MavenWrapperDownloader.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright 2007-present the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import java.net.*; -import java.io.*; -import java.nio.channels.*; -import java.util.Properties; - -public class MavenWrapperDownloader { - - private static final String WRAPPER_VERSION = "0.5.6"; - /** - * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. - */ - private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" - + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; - - /** - * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to - * use instead of the default one. - */ - private static final String MAVEN_WRAPPER_PROPERTIES_PATH = - ".mvn/wrapper/maven-wrapper.properties"; - - /** - * Path where the maven-wrapper.jar will be saved to. - */ - private static final String MAVEN_WRAPPER_JAR_PATH = - ".mvn/wrapper/maven-wrapper.jar"; - - /** - * Name of the property which should be used to override the default download url for the wrapper. - */ - private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; - - public static void main(String args[]) { - System.out.println("- Downloader started"); - File baseDirectory = new File(args[0]); - System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); - - // If the maven-wrapper.properties exists, read it and check if it contains a custom - // wrapperUrl parameter. - File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); - String url = DEFAULT_DOWNLOAD_URL; - if(mavenWrapperPropertyFile.exists()) { - FileInputStream mavenWrapperPropertyFileInputStream = null; - try { - mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); - Properties mavenWrapperProperties = new Properties(); - mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); - url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); - } catch (IOException e) { - System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); - } finally { - try { - if(mavenWrapperPropertyFileInputStream != null) { - mavenWrapperPropertyFileInputStream.close(); - } - } catch (IOException e) { - // Ignore ... - } - } - } - System.out.println("- Downloading from: " + url); - - File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); - if(!outputFile.getParentFile().exists()) { - if(!outputFile.getParentFile().mkdirs()) { - System.out.println( - "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); - } - } - System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); - try { - downloadFileFromURL(url, outputFile); - System.out.println("Done"); - System.exit(0); - } catch (Throwable e) { - System.out.println("- Error downloading"); - e.printStackTrace(); - System.exit(1); - } - } - - private static void downloadFileFromURL(String urlString, File destination) throws Exception { - if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { - String username = System.getenv("MVNW_USERNAME"); - char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); - Authenticator.setDefault(new Authenticator() { - @Override - protected PasswordAuthentication getPasswordAuthentication() { - return new PasswordAuthentication(username, password); - } - }); - } - URL website = new URL(urlString); - ReadableByteChannel rbc; - rbc = Channels.newChannel(website.openStream()); - FileOutputStream fos = new FileOutputStream(destination); - fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); - fos.close(); - rbc.close(); - } - -} diff --git a/gctrl-spring (copy)/gctrl/.mvn/wrapper/maven-wrapper.jar b/gctrl-spring (copy)/gctrl/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 2cc7d4a..0000000 Binary files a/gctrl-spring (copy)/gctrl/.mvn/wrapper/maven-wrapper.jar and /dev/null differ diff --git a/gctrl-spring (copy)/gctrl/.mvn/wrapper/maven-wrapper.properties b/gctrl-spring (copy)/gctrl/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index 642d572..0000000 --- a/gctrl-spring (copy)/gctrl/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1,2 +0,0 @@ -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip -wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar diff --git a/gctrl-spring (copy)/gctrl/bin/.gitignore b/gctrl-spring (copy)/gctrl/bin/.gitignore deleted file mode 100644 index 549e00a..0000000 --- a/gctrl-spring (copy)/gctrl/bin/.gitignore +++ /dev/null @@ -1,33 +0,0 @@ -HELP.md -target/ -!.mvn/wrapper/maven-wrapper.jar -!**/src/main/**/target/ -!**/src/test/**/target/ - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -build/ -!**/src/main/**/build/ -!**/src/test/**/build/ - -### VS Code ### -.vscode/ diff --git a/gctrl-spring (copy)/gctrl/bin/.mvn/wrapper/MavenWrapperDownloader.class b/gctrl-spring (copy)/gctrl/bin/.mvn/wrapper/MavenWrapperDownloader.class deleted file mode 100644 index 860ca68..0000000 Binary files a/gctrl-spring (copy)/gctrl/bin/.mvn/wrapper/MavenWrapperDownloader.class and /dev/null differ diff --git a/gctrl-spring (copy)/gctrl/bin/.mvn/wrapper/maven-wrapper.jar b/gctrl-spring (copy)/gctrl/bin/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 2cc7d4a..0000000 Binary files a/gctrl-spring (copy)/gctrl/bin/.mvn/wrapper/maven-wrapper.jar and /dev/null differ diff --git a/gctrl-spring (copy)/gctrl/bin/.mvn/wrapper/maven-wrapper.properties b/gctrl-spring (copy)/gctrl/bin/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index 642d572..0000000 --- a/gctrl-spring (copy)/gctrl/bin/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1,2 +0,0 @@ -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip -wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar diff --git a/gctrl-spring (copy)/gctrl/bin/mvnw b/gctrl-spring (copy)/gctrl/bin/mvnw deleted file mode 100755 index a16b543..0000000 --- a/gctrl-spring (copy)/gctrl/bin/mvnw +++ /dev/null @@ -1,310 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Mingw, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -########################################################################################## -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -# This allows using the maven wrapper in projects that prohibit checking in binary data. -########################################################################################## -if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found .mvn/wrapper/maven-wrapper.jar" - fi -else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." - fi - if [ -n "$MVNW_REPOURL" ]; then - jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - else - jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - fi - while IFS="=" read key value; do - case "$key" in (wrapperUrl) jarUrl="$value"; break ;; - esac - done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" - if [ "$MVNW_VERBOSE" = true ]; then - echo "Downloading from: $jarUrl" - fi - wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" - if $cygwin; then - wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` - fi - - if command -v wget > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found wget ... using wget" - fi - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - wget "$jarUrl" -O "$wrapperJarPath" - else - wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" - fi - elif command -v curl > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found curl ... using curl" - fi - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - curl -o "$wrapperJarPath" "$jarUrl" -f - else - curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f - fi - - else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Falling back to using Java to download" - fi - javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" - # For Cygwin, switch paths to Windows format before running javac - if $cygwin; then - javaClass=`cygpath --path --windows "$javaClass"` - fi - if [ -e "$javaClass" ]; then - if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Compiling MavenWrapperDownloader.java ..." - fi - # Compiling the Java class - ("$JAVA_HOME/bin/javac" "$javaClass") - fi - if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - # Running the downloader - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Running MavenWrapperDownloader.java ..." - fi - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") - fi - fi - fi -fi -########################################################################################## -# End of extension -########################################################################################## - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -if [ "$MVNW_VERBOSE" = true ]; then - echo $MAVEN_PROJECTBASEDIR -fi -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -# Provide a "standardized" way to retrieve the CLI args that will -# work with both Windows and non-Windows executions. -MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" -export MAVEN_CMD_LINE_ARGS - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/gctrl-spring (copy)/gctrl/bin/mvnw.cmd b/gctrl-spring (copy)/gctrl/bin/mvnw.cmd deleted file mode 100644 index c8d4337..0000000 --- a/gctrl-spring (copy)/gctrl/bin/mvnw.cmd +++ /dev/null @@ -1,182 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM https://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM set title of command window -title %0 -@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - -FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B -) - -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. -if exist %WRAPPER_JAR% ( - if "%MVNW_VERBOSE%" == "true" ( - echo Found %WRAPPER_JAR% - ) -) else ( - if not "%MVNW_REPOURL%" == "" ( - SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - ) - if "%MVNW_VERBOSE%" == "true" ( - echo Couldn't find %WRAPPER_JAR%, downloading it ... - echo Downloading from: %DOWNLOAD_URL% - ) - - powershell -Command "&{"^ - "$webclient = new-object System.Net.WebClient;"^ - "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ - "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ - "}"^ - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ - "}" - if "%MVNW_VERBOSE%" == "true" ( - echo Finished downloading %WRAPPER_JAR% - ) -) -@REM End of extension - -@REM Provide a "standardized" way to retrieve the CLI args that will -@REM work with both Windows and non-Windows executions. -set MAVEN_CMD_LINE_ARGS=%* - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/gctrl-spring (copy)/gctrl/bin/pom.xml b/gctrl-spring (copy)/gctrl/bin/pom.xml deleted file mode 100644 index f68c290..0000000 --- a/gctrl-spring (copy)/gctrl/bin/pom.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 2.4.1 - - - fr.laas - gctrl - 0.0.1-SNAPSHOT - gctrl - Demo project for Spring Boot - - - 1.8 - - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/gctrl-spring (copy)/gctrl/bin/src/main/java/fr/laas/gctrl/GctrlApplication.class b/gctrl-spring (copy)/gctrl/bin/src/main/java/fr/laas/gctrl/GctrlApplication.class deleted file mode 100644 index 835856c..0000000 Binary files a/gctrl-spring (copy)/gctrl/bin/src/main/java/fr/laas/gctrl/GctrlApplication.class and /dev/null differ diff --git a/gctrl-spring (copy)/gctrl/bin/src/main/resources/application.properties b/gctrl-spring (copy)/gctrl/bin/src/main/resources/application.properties deleted file mode 100644 index 8b13789..0000000 --- a/gctrl-spring (copy)/gctrl/bin/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ - diff --git a/gctrl-spring (copy)/gctrl/bin/src/test/java/fr/laas/gctrl/GctrlApplicationTests.class b/gctrl-spring (copy)/gctrl/bin/src/test/java/fr/laas/gctrl/GctrlApplicationTests.class deleted file mode 100644 index 7a9bad3..0000000 Binary files a/gctrl-spring (copy)/gctrl/bin/src/test/java/fr/laas/gctrl/GctrlApplicationTests.class and /dev/null differ diff --git a/gctrl-spring (copy)/gctrl/mvnw b/gctrl-spring (copy)/gctrl/mvnw deleted file mode 100755 index a16b543..0000000 --- a/gctrl-spring (copy)/gctrl/mvnw +++ /dev/null @@ -1,310 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Mingw, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -########################################################################################## -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -# This allows using the maven wrapper in projects that prohibit checking in binary data. -########################################################################################## -if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found .mvn/wrapper/maven-wrapper.jar" - fi -else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." - fi - if [ -n "$MVNW_REPOURL" ]; then - jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - else - jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - fi - while IFS="=" read key value; do - case "$key" in (wrapperUrl) jarUrl="$value"; break ;; - esac - done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" - if [ "$MVNW_VERBOSE" = true ]; then - echo "Downloading from: $jarUrl" - fi - wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" - if $cygwin; then - wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` - fi - - if command -v wget > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found wget ... using wget" - fi - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - wget "$jarUrl" -O "$wrapperJarPath" - else - wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" - fi - elif command -v curl > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found curl ... using curl" - fi - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - curl -o "$wrapperJarPath" "$jarUrl" -f - else - curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f - fi - - else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Falling back to using Java to download" - fi - javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" - # For Cygwin, switch paths to Windows format before running javac - if $cygwin; then - javaClass=`cygpath --path --windows "$javaClass"` - fi - if [ -e "$javaClass" ]; then - if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Compiling MavenWrapperDownloader.java ..." - fi - # Compiling the Java class - ("$JAVA_HOME/bin/javac" "$javaClass") - fi - if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - # Running the downloader - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Running MavenWrapperDownloader.java ..." - fi - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") - fi - fi - fi -fi -########################################################################################## -# End of extension -########################################################################################## - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -if [ "$MVNW_VERBOSE" = true ]; then - echo $MAVEN_PROJECTBASEDIR -fi -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -# Provide a "standardized" way to retrieve the CLI args that will -# work with both Windows and non-Windows executions. -MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" -export MAVEN_CMD_LINE_ARGS - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/gctrl-spring (copy)/gctrl/mvnw.cmd b/gctrl-spring (copy)/gctrl/mvnw.cmd deleted file mode 100644 index c8d4337..0000000 --- a/gctrl-spring (copy)/gctrl/mvnw.cmd +++ /dev/null @@ -1,182 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM https://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM set title of command window -title %0 -@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - -FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B -) - -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. -if exist %WRAPPER_JAR% ( - if "%MVNW_VERBOSE%" == "true" ( - echo Found %WRAPPER_JAR% - ) -) else ( - if not "%MVNW_REPOURL%" == "" ( - SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - ) - if "%MVNW_VERBOSE%" == "true" ( - echo Couldn't find %WRAPPER_JAR%, downloading it ... - echo Downloading from: %DOWNLOAD_URL% - ) - - powershell -Command "&{"^ - "$webclient = new-object System.Net.WebClient;"^ - "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ - "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ - "}"^ - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ - "}" - if "%MVNW_VERBOSE%" == "true" ( - echo Finished downloading %WRAPPER_JAR% - ) -) -@REM End of extension - -@REM Provide a "standardized" way to retrieve the CLI args that will -@REM work with both Windows and non-Windows executions. -set MAVEN_CMD_LINE_ARGS=%* - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/gctrl-spring (copy)/gctrl/pom.xml b/gctrl-spring (copy)/gctrl/pom.xml deleted file mode 100644 index f4a1e83..0000000 --- a/gctrl-spring (copy)/gctrl/pom.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 2.4.1 - - - fr.laas - gctrl - 0.0.1-SNAPSHOT - gctrl - Demo project for Spring Boot - - - 1.8 - - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.h2database - h2 - 1.4.200 - - - - de.vandermeer - asciitable - 0.3.2 - - - - com.github.signaflo - timeseries - 0.4 - - - - org.slf4j - slf4j-api - 1.7.5 - - - - org.slf4j - slf4j-log4j12 - 1.7.5 - - - - com.google.code.gson - gson - 2.8.6 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/gctrl-spring (copy)/gctrl/src/main/java/Analyze.java b/gctrl-spring (copy)/gctrl/src/main/java/Analyze.java deleted file mode 100644 index 62bb9d7..0000000 --- a/gctrl-spring (copy)/gctrl/src/main/java/Analyze.java +++ /dev/null @@ -1,78 +0,0 @@ -import java.util.List; - -// - -//* @author couedrao on 25/11/2019. - -//* @project gctrl - -// - -// -//* 1)Perform complex data analysis and reasoning on the symptoms provided by the monitor function. -//* 2)Influenced by stored knowledge data. -//* 3)If changes are required, a change request is logically passed to the plan function. -//* -@SuppressWarnings({"SameParameterValue", "SynchronizeOnNonFinalField"}) -class Analyze { - public String gw_current_RFC = ""; - private static int i; - - void start() { - Main.logger(this.getClass().getSimpleName(), "Start Analyzing"); - - while (Main.run) { - - String current_symptom = get_symptom(); - //Main.logger(this.getClass().getSimpleName(), "Received Symptom : " + current_symptom); - - update_rfc(rfc_generator(current_symptom)); - } - } - - //Symptom Receiver - private String get_symptom() { - synchronized (Main.monitor.gw_current_SYMP) { - try { - Main.monitor.gw_current_SYMP.wait(); - } catch (InterruptedException ex) { - ex.printStackTrace(); - } - } - return Main.monitor.gw_current_SYMP; - } - - //Rule-based RFC Generator - private String rfc_generator(String symptom) { - List symptoms = Main.shared_knowledge.get_symptoms(); - List rfcs = Main.shared_knowledge.get_rfc(); - - if (symptom.contentEquals(symptoms.get(0)) || symptom.contentEquals(symptoms.get(2))) { - Main.logger(this.getClass().getSimpleName(), "RFC --> To plan : " + rfcs.get(0)); - i = 0; - return rfcs.get(0); - } else if (symptom.contentEquals(symptoms.get(1))) { - i++; - if (i < 3) { - Main.logger(this.getClass().getSimpleName(), "RFC --> To plan : " + rfcs.get(1)); - return rfcs.get(1); - } else { - Main.logger(this.getClass().getSimpleName(), "RFC --> To plan : " + "YourPlansDoNotWork"); - return "YourPlansDoNotWork"; - } - } else - return null; - - } - - - private void update_rfc(String rfc) { - - synchronized (gw_current_RFC) { - gw_current_RFC.notify(); - gw_current_RFC = rfc; - - } - } - -} diff --git a/gctrl-spring (copy)/gctrl/src/main/java/Execute.java b/gctrl-spring (copy)/gctrl/src/main/java/Execute.java deleted file mode 100644 index 8c9c52d..0000000 --- a/gctrl-spring (copy)/gctrl/src/main/java/Execute.java +++ /dev/null @@ -1,102 +0,0 @@ -import java.util.List; - -// - -//* @author couedrao on 25/11/2019. - -//* @project gctrl - -// - -// -//* Changes the behavior of the managed resource using effectors Changes the behavior of the managed resource using effectors, based on the actions recommended by the plan function. -//* -@SuppressWarnings({"SameParameterValue", "SynchronizeOnNonFinalField"}) -class Execute { - private static List workflow_lists; - private static final MANOAPI manoapi = new MANOAPI(); - private static final SDNCtrlAPI sdnctlrapi = new SDNCtrlAPI(); - - void start() throws InterruptedException { - Main.logger(this.getClass().getSimpleName(), "Start Execution"); - workflow_lists = Main.shared_knowledge.get_worklow_lists(); - - while (Main.run) { - String current_plan = get_plan(); - - // Main.logger(this.getClass().getSimpleName(), "Received Plan : " + current_plan); - String[] workflow = workflow_generator(current_plan); - for (int i = 0; i < workflow.length; i++) { - Main.logger(this.getClass().getSimpleName(), "workflow [" + i + "] : " + workflow[i]); - - } - - for (String w : workflow) { - Main.logger(this.getClass().getSimpleName(), "UC : " + w); - switch (w) { - case "UC1": - Main.logger(this.getClass().getSimpleName(), "Nothing to do"); - break; - case "UC2": - Main.logger(this.getClass().getSimpleName(), "Deploying GW"); - String newdestip = manoapi.deploy_gw(Main.shared_knowledge.getGwinfo()); - Main.shared_knowledge.setNewdestip(newdestip); - Main.shared_knowledge.setOldgwip(newdestip); - break; - case "UC3": - Main.logger(this.getClass().getSimpleName(), "Redirecting Traffic"); - String status = sdnctlrapi.redirect_traffic(Main.shared_knowledge.getOlddestip(), Main.shared_knowledge.getNewdestip()); - Main.logger(this.getClass().getSimpleName(), status); - break; - case "UC4": - Main.logger(this.getClass().getSimpleName(), "Deploying LB+GWs"); - List newgwsip = manoapi.deploy_multi_gws_and_lb(Main.shared_knowledge.getGwsinfo()); - Main.shared_knowledge.setLbip(newgwsip.get(0)); - Main.shared_knowledge.setNewgwsip(newgwsip.subList(1, newgwsip.size())); - break; - case "UC5": - Main.logger(this.getClass().getSimpleName(), "Inserting a loadbalancer"); - status = sdnctlrapi.insert_a_loadbalancer(Main.shared_knowledge.getOldgwip(), Main.shared_knowledge.getLbip(), Main.shared_knowledge.getNewgwsip()); - Main.logger(this.getClass().getSimpleName(), status); - break; - case "UC6": - Main.logger(this.getClass().getSimpleName(), "Removing less important traffic"); - status = sdnctlrapi.remove_less_important_traffic(Main.shared_knowledge.getImportantsrcip()); - Main.logger(this.getClass().getSimpleName(), status); - break; - default: - } - Thread.sleep(2000); - continue; - - - } - - } - } - - //Plan Receiver - private String get_plan() { - synchronized (Main.plan.gw_PLAN) { - try { - Main.plan.gw_PLAN.wait(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - return Main.plan.gw_PLAN; - } - - //Rule-based Workflow Generator - private String[] workflow_generator(String plan) { - List plans = Main.shared_knowledge.get_plans(); - if (plan.contentEquals(plans.get(0))) { - return workflow_lists.get(0).split("/"); - } else if (plan.contentEquals(plans.get(1))) { - return workflow_lists.get(1).split("/"); - } else if (plan.contentEquals(plans.get(2))) { - return workflow_lists.get(2).split("/"); - } else - return null; - } -} diff --git a/gctrl-spring (copy)/gctrl/src/main/java/Health.java b/gctrl-spring (copy)/gctrl/src/main/java/Health.java deleted file mode 100644 index a768f14..0000000 --- a/gctrl-spring (copy)/gctrl/src/main/java/Health.java +++ /dev/null @@ -1,5 +0,0 @@ - -public class Health { - //private float avgload; - //private float -} diff --git a/gctrl-spring (copy)/gctrl/src/main/java/Knowledge.java b/gctrl-spring (copy)/gctrl/src/main/java/Knowledge.java deleted file mode 100644 index 98368ad..0000000 --- a/gctrl-spring (copy)/gctrl/src/main/java/Knowledge.java +++ /dev/null @@ -1,404 +0,0 @@ -import org.h2.tools.DeleteDbFiles; - -import java.sql.*; -import java.util.*; - -// - -//* @author couedrao on 25/11/2019. - -//* @project gctrl - -// - -// - -//* 1)Standard data shared among the monitor analyze plan and Standard data shared among the monitor, analyze, plan and execute functions - -//* 2)The shared knowledge includes data such as topology information, historical logs, metrics, symptoms and policies - -//* 3)Created by the monitor part while execute part might update the knowledge - -//* - -class Knowledge { - - private static final String DB_DRIVER = "org.h2.Driver"; - private static final String DB_CONNECTION = "jdbc:h2:~/test"; - private static final String DB_USER = ""; - private static final String DB_PASSWORD = ""; - - static final int moving_wind = 10; - static final int horizon = 3; - static final String gw = "GW_I"; - static final double gw_lat_threshold = 70; - - /*TODO : edit symptom, rfc, workflow_lists, plan*/ - private static final List symptom = Arrays.asList("N/A", "NOK", "OK"); - private static final List rfc = Arrays.asList("DoNotDoAnything", "DecreaseLatencyIn" + gw); - private static final List workflow_lists = Arrays.asList("UC1", "UC2/UC3", "UC4/UC5/UC6"); - private static final List plan = Arrays.asList("A", "B", "C"); - private final Map gwinfo = new HashMap<>(); - private final List> gwsinfo = new ArrayList<>(); - private final String olddestip = "192.168.0.2"; - private String newdestip; - private String oldgwip; - private String lbip; - private List newgwsip; - private final String importantsrcip = "192.168.0.1"; - - void start() throws Exception { - // delete the H2 database named 'test' in the user home directory - DeleteDbFiles.execute("~", "test", true); - Main.logger(this.getClass().getSimpleName(), "old database 'test' deleted"); - //Initialization of the Knowledge - store_symptoms(); - store_rfcs(); - store_plans(); - store_execution_workflow(); - //TODO : update gwinfo - gwinfo.put("name", "gw"); - gwinfo.put("image", "alpine:latest"); - gwinfo.put("net", "new_network"); - - gwsinfo.add(0, gwinfo); - gwsinfo.add(1, gwinfo); - gwsinfo.add(2, gwinfo); - - Main.logger(this.getClass().getSimpleName(), "Knowledge Starting"); - - } - - void insert_in_tab(Timestamp timestamp, double lat) { - try (Connection conn = getDBConnection()) { - PreparedStatement insert; - String InsertQuery = "INSERT INTO " + Knowledge.gw + "_LAT" + " (id, latency) values" + "(?,?)"; - conn.setAutoCommit(false); - insert = conn.prepareStatement(InsertQuery); - insert.setTimestamp(1, timestamp); - insert.setDouble(2, lat); - insert.executeUpdate(); - insert.close(); - conn.commit(); - } catch (SQLException e) { - System.out.println("Exception Message " + e.getLocalizedMessage()); - } catch (Exception e) { - e.printStackTrace(); - } - } - - List get_symptoms() { - String gw_symp = gw + "_SYMP"; - - Connection conn = getDBConnection(); - String SelectQuery = "select * from " + gw_symp; - PreparedStatement select; - List r = null; - try { - select = conn.prepareStatement(SelectQuery); - ResultSet rs = select.executeQuery(); - r = new ArrayList<>(); - while (rs.next()) { - r.add(rs.getString("symptom")); - } - } catch (SQLException e) { - System.out.println("Exception Message " + e.getLocalizedMessage()); - } catch (Exception e) { - e.printStackTrace(); - } - return r; - - } - - List get_rfc() { - String gw_rfc = gw + "_RFC"; - - Connection conn = getDBConnection(); - String SelectQuery = "select * from " + gw_rfc; - PreparedStatement select; - List r = null; - try { - select = conn.prepareStatement(SelectQuery); - ResultSet rs = select.executeQuery(); - r = new ArrayList<>(); - while (rs.next()) { - r.add(rs.getString("rfc")); - } - } catch (SQLException e) { - System.out.println("Exception Message " + e.getLocalizedMessage()); - } catch (Exception e) { - e.printStackTrace(); - } - - return r; - - } - - List get_plans() { - String gw_plan = gw + "_PLAN"; - - Connection conn = getDBConnection(); - String SelectQuery = "select * from " + gw_plan; - PreparedStatement select; - List r = null; - try { - select = conn.prepareStatement(SelectQuery); - ResultSet rs = select.executeQuery(); - r = new ArrayList<>(); - while (rs.next()) { - r.add(rs.getString("plan")); - } - } catch (SQLException e) { - System.out.println("Exception Message " + e.getLocalizedMessage()); - } catch (Exception e) { - e.printStackTrace(); - } - - return r; - - } - - List get_worklow_lists() { - String gw_execw = gw + "_EXECW"; - - Connection conn = getDBConnection(); - String SelectQuery = "select * from " + gw_execw; - PreparedStatement select; - List r = null; - try { - select = conn.prepareStatement(SelectQuery); - ResultSet rs = select.executeQuery(); - r = new ArrayList<>(); - while (rs.next()) { - r.add(rs.getString("workflow")); - } - } catch (SQLException e) { - System.out.println("Exception Message " + e.getLocalizedMessage()); - } catch (Exception e) { - e.printStackTrace(); - } - - return r; - - } - - ResultSet select_from_tab() { - //Main.logger("Select the last " + n + " latencies"); - Connection conn = getDBConnection(); - String SelectQuery = "select TOP " + moving_wind + " * from " + Knowledge.gw + "_LAT" + " ORDER BY id DESC"; - //PreparedStatement select; - ResultSet rs = null; - try { - Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); - // select = conn.prepareStatement(SelectQuery); - rs = stmt.executeQuery(SelectQuery); - } catch (SQLException e) { - System.out.println("Exception Message " + e.getLocalizedMessage()); - } catch (Exception e) { - e.printStackTrace(); - } - return rs; - - - } - - void create_lat_tab() { - try (Connection conn = getDBConnection()) { - Statement create; - conn.setAutoCommit(false); - create = conn.createStatement(); - create.execute("CREATE TABLE " + Knowledge.gw + "_LAT" + " (id timestamp primary key, latency double )"); - create.close(); - conn.commit(); - } catch (SQLException e) { - System.out.println("Exception Message " + e.getLocalizedMessage()); - } catch (Exception e) { - e.printStackTrace(); - } finally { - Main.logger(this.getClass().getSimpleName(), "... Database Created"); - - } - } - - private void store_plans() throws SQLException { - String gw_plan = gw + "_PLAN"; - Connection conn = getDBConnection(); - Statement create; - conn.setAutoCommit(false); - create = conn.createStatement(); - create.execute("CREATE TABLE " + gw_plan + " (id int primary key, plan varchar(20) )"); - create.close(); - - for (int i = 0; i < plan.size(); i++) { - conn = getDBConnection(); - PreparedStatement insert; - try { - insert = conn.prepareStatement("INSERT INTO " + gw_plan + " (id, plan) values" + "(?,?)"); - insert.setInt(1, i + 1); - insert.setString(2, plan.get(i)); - insert.executeUpdate(); - insert.close(); - conn.commit(); - } catch (SQLException e) { - System.out.println("Exception Message " + e.getLocalizedMessage()); - } catch (Exception e) { - e.printStackTrace(); - } finally { - conn.close(); - } - } - } - - private void store_rfcs() throws SQLException { - String gw_rfc = gw + "_RFC"; - Connection conn = getDBConnection(); - Statement create; - conn.setAutoCommit(false); - create = conn.createStatement(); - create.execute("CREATE TABLE " + gw_rfc + " (id int primary key, rfc varchar(40) )"); - create.close(); - - for (int i = 0; i < rfc.size(); i++) { - conn = getDBConnection(); - PreparedStatement insert; - try { - insert = conn.prepareStatement("INSERT INTO " + gw_rfc + " (id, rfc) values" + "(?,?)"); - insert.setInt(1, i + 1); - insert.setString(2, rfc.get(i)); - insert.executeUpdate(); - insert.close(); - conn.commit(); - } catch (SQLException e) { - System.out.println("Exception Message " + e.getLocalizedMessage()); - } catch (Exception e) { - e.printStackTrace(); - } finally { - conn.close(); - } - } - } - - private void store_execution_workflow() throws SQLException { - String gw_execw = gw + "_EXECW"; - Connection conn = getDBConnection(); - Statement create; - conn.setAutoCommit(false); - create = conn.createStatement(); - create.execute("CREATE TABLE " + gw_execw + " (id int primary key, workflow varchar(50) )"); - create.close(); - - for (int i = 0; i < workflow_lists.size(); i++) { - conn = getDBConnection(); - PreparedStatement insert; - try { - insert = conn.prepareStatement("INSERT INTO " + gw_execw + " (id, workflow) values" + "(?,?)"); - insert.setInt(1, i + 1); - insert.setString(2, workflow_lists.get(i)); - insert.executeUpdate(); - insert.close(); - conn.commit(); - } catch (SQLException e) { - System.out.println("Exception Message " + e.getLocalizedMessage()); - } catch (Exception e) { - e.printStackTrace(); - } finally { - conn.close(); - } - } - } - - private void store_symptoms() throws SQLException { - String gw_symp = gw + "_SYMP"; - Connection conn = getDBConnection(); - Statement create; - conn.setAutoCommit(false); - create = conn.createStatement(); - create.execute("CREATE TABLE " + gw_symp + " (id int primary key, symptom varchar(5) )"); - create.close(); - - for (int i = 0; i < symptom.size(); i++) { - conn = getDBConnection(); - PreparedStatement insert; - - try { - insert = conn.prepareStatement("INSERT INTO " + gw_symp + " (id, symptom) values" + "(?,?)"); - insert.setInt(1, i + 1); - insert.setString(2, symptom.get(i)); - insert.executeUpdate(); - insert.close(); - conn.commit(); - } catch (SQLException e) { - System.out.println("Exception Message " + e.getLocalizedMessage()); - } catch (Exception e) { - e.printStackTrace(); - } finally { - conn.close(); - } - } - } - - private Connection getDBConnection() { - // Main.logger("Connecting the database ..."); - try { - Class.forName(DB_DRIVER); - } catch (ClassNotFoundException e) { - System.out.println(e.getMessage()); - } - try { - return DriverManager.getConnection(DB_CONNECTION, DB_USER, DB_PASSWORD); - } catch (SQLException e) { - System.out.println(e.getMessage()); - return null; - } - - } - - public Map getGwinfo() { - return gwinfo; - } - - public List> getGwsinfo() { - return gwsinfo; - } - - public String getOlddestip() { - return olddestip; - } - - public String getNewdestip() { - return newdestip; - } - - public void setNewdestip(String newdestip) { - this.newdestip = newdestip; - } - - public String getOldgwip() { - return oldgwip; - } - - public void setOldgwip(String oldgwip) { - this.oldgwip = oldgwip; - } - - public String getLbip() { - return lbip; - } - - public void setLbip(String lbip) { - this.lbip = lbip; - } - - public List getNewgwsip() { - return newgwsip; - } - - public void setNewgwsip(List newgwsip) { - this.newgwsip = newgwsip; - } - - public String getImportantsrcip() { - return importantsrcip; - } - -} \ No newline at end of file diff --git a/gctrl-spring (copy)/gctrl/src/main/java/MANOAPI.java b/gctrl-spring (copy)/gctrl/src/main/java/MANOAPI.java deleted file mode 100644 index c41999f..0000000 --- a/gctrl-spring (copy)/gctrl/src/main/java/MANOAPI.java +++ /dev/null @@ -1,36 +0,0 @@ -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Random; - -/** - * @author couedrao on 27/11/2019. - * @project gctrl - */ -class MANOAPI { - - String deploy_gw(Map vnfinfos) { - String ip = "192.168.0." + (new Random().nextInt(253) + 1); - Main.logger(this.getClass().getSimpleName(), "Deploying VNF ..."); - - //printing - for (Entry e : vnfinfos.entrySet()) { - Main.logger(this.getClass().getSimpleName(), "\t" + e.getKey() + " : " + e.getValue()); - } - //TODO - - return ip; - } - - List deploy_multi_gws_and_lb(List> vnfsinfos) { - List ips = new ArrayList<>(); - //TODO - - for (Map vnfsinfo : vnfsinfos) { - ips.add(deploy_gw(vnfsinfo)); - } - - return ips; - } -} diff --git a/gctrl-spring (copy)/gctrl/src/main/java/Main.java b/gctrl-spring (copy)/gctrl/src/main/java/Main.java deleted file mode 100644 index 2eb6eb9..0000000 --- a/gctrl-spring (copy)/gctrl/src/main/java/Main.java +++ /dev/null @@ -1,92 +0,0 @@ -import org.apache.log4j.Level; -import org.apache.log4j.Logger; - -// - -//* @author couedrao on 25/11/2019. - -//* @project gctrl - -// - -class Main { - static boolean run = true; - static final Monitor monitor = new Monitor(); - static final Analyze analyze = new Analyze(); - static final Plan plan = new Plan(); - private static final Execute execute = new Execute(); - static final Knowledge shared_knowledge = new Knowledge(); - private static final boolean log = true; - - public static void main(String[] args) throws Exception { - Logger.getRootLogger().setLevel(Level.ERROR); - - - shared_knowledge.start(); - Thread.sleep(3000); - - Thread thread_m = new Thread(() -> { - try { - monitor.start(); - } catch (Exception e) { - e.printStackTrace(); - } - }); - - - Thread thread_a = new Thread(() -> { - try { - analyze.start(); - } catch (Exception e) { - e.printStackTrace(); - } - }); - - Thread thread_p = new Thread(() -> { - try { - plan.start(); - } catch (Exception e) { - e.printStackTrace(); - } - }); - - Thread thread_e = new Thread(() -> { - try { - execute.start(); - } catch (Exception e) { - e.printStackTrace(); - } - }); - - thread_m.start(); - thread_a.start(); - thread_p.start(); - thread_e.start(); - - } - - static void logger(String from, String msg) { - if (log) { - switch (from) { - case "Knowledge": - System.out.println("\u001B[1;31m" + "\t[" + from + "] : \t\t" + msg + "\u001B[0m"); - break; - case "Monitor": - System.out.println("\u001B[1;32m" + "\t[" + from + "] : \t\t" + msg + "\u001B[0m"); - break; - case "Analyze": - System.out.println("\u001B[1;34m" + "\t[" + from + "] : \t\t" + msg + "\u001B[0m"); - break; - case "Plan": - System.out.println("\u001B[1;35m" + "\t[" + from + "] : \t\t\t" + msg + "\u001B[0m"); - break; - case "Execute": - System.out.println("\u001B[1;36m" + "\t[" + from + "] : \t\t" + msg + "\u001B[0m"); - break; - default: - System.out.println("\t[" + from + "] : \t\t" + msg); - } - - } - } -} \ No newline at end of file diff --git a/gctrl-spring (copy)/gctrl/src/main/java/Monitor.java b/gctrl-spring (copy)/gctrl/src/main/java/Monitor.java deleted file mode 100644 index 167dee3..0000000 --- a/gctrl-spring (copy)/gctrl/src/main/java/Monitor.java +++ /dev/null @@ -1,182 +0,0 @@ -import com.github.signaflo.math.operations.DoubleFunctions; -import com.github.signaflo.timeseries.TimeSeries; -import com.github.signaflo.timeseries.forecast.Forecast; -import com.github.signaflo.timeseries.model.arima.Arima; -import com.github.signaflo.timeseries.model.arima.ArimaOrder; -import de.vandermeer.asciitable.AsciiTable; -import de.vandermeer.asciitable.CWC_LongestWord; -import de.vandermeer.asciithemes.a7.A7_Grids; - -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.springframework.http.ResponseEntity; -import org.springframework.web.client.RestTemplate; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -// - -//* @author couedrao on 25/11/2019. - -//* @project gctrl - -// - -// - - -//* 1)Collects the details from the managed resources e g topology Collects the details from the managed resources e.g. topology information, metrics (e.g. offered capacity and throughput), configuration property settings and so on. - - -//* 2)The monitor function aggregates,correlates and filters these details until it determines a symptom that needs to be analyzed. - - -//* - - -@SuppressWarnings({"SynchronizeOnNonFinalField"}) -class Monitor { - private static List symptom = Arrays.asList("N/A", "NOK", "OK"); - private static final int period = 2000; - private static double i = 0; - public String gw_current_SYMP = "N/A"; - - void start() { - Main.logger(this.getClass().getSimpleName(), "Start monitoring of " + Knowledge.gw); - symptom = Main.shared_knowledge.get_symptoms(); - Main.shared_knowledge.create_lat_tab(); - data_collector(); //in bg - symptom_generator(); - } - - //Symptom Generator (can be modified) - private void symptom_generator() { - while (Main.run) - try { - Thread.sleep(period * 5); - ResultSet rs = Main.shared_knowledge.select_from_tab(); - //print_nice_rs(rs); - double[] prediction = predict_next_lat(rs); - boolean isOk = true; - for (int j = 0; j < Knowledge.horizon; j++) { - if (prediction[j] > Knowledge.gw_lat_threshold) { - Main.logger(this.getClass().getSimpleName(), "Symptom --> To Analyse : " + symptom.get(1)); - update_symptom(symptom.get(1)); - isOk = false; - break; - } else if (prediction[j] < .0) { - Main.logger(this.getClass().getSimpleName(), " Symptom --> To Analyse : " + symptom.get(0)); - update_symptom(symptom.get(0)); - isOk = false; - break; - } - } - if (isOk) { - Main.logger(this.getClass().getSimpleName(), "Symptom --> To Analyse : " + symptom.get(2)); - update_symptom(symptom.get(2)); - } - } catch (SQLException | InterruptedException e) { - e.printStackTrace(); - } - } - - //Data Collector TODO : modify - private void data_collector() { - new Thread(() -> { - Main.logger(this.getClass().getSimpleName(), "Filling db with latencies"); - while (Main.run) - try { - //TODO: Remove this - Thread.sleep(period); - Main.shared_knowledge.insert_in_tab(new java.sql.Timestamp(new java.util.Date().getTime()), get_data()); - } catch (InterruptedException e) { - e.printStackTrace(); - } - - } - - ).start(); - } - - private int get_data() { - int cpu_load = -1; - RestTemplate restTemplate = new RestTemplate(); - ResponseEntity response = restTemplate.getForEntity("http://172.17.0.3:8080/health", String.class); - - ObjectMapper mapper = new ObjectMapper(); - JsonNode root; - try { - root = mapper.readTree(response.getBody()); - JsonNode current_load = root.path("currentload"); - cpu_load = current_load.asInt(); - } catch (JsonMappingException e) { - e.printStackTrace(); - } catch (JsonProcessingException e) { - e.printStackTrace(); - } - return cpu_load; - } - - private double get_fake_data() { - //return new Random().nextInt(); - return i += 10; - } - - //ARIMA-based Forecasting - private double[] predict_next_lat(ResultSet rs) throws SQLException { - rs.first(); - double[] history = new double[Knowledge.moving_wind]; - double[] p = new double[Knowledge.horizon]; - int j = Knowledge.moving_wind - 1; - while (rs.next()) { - history[j] = Double.parseDouble(rs.getString("latency")); - j--; - } - TimeSeries timeSeries = TimeSeries.from(DoubleFunctions.arrayFrom(history)); - ArimaOrder modelOrder = ArimaOrder.order(0, 1, 1, 0, 1, 1); - //ArimaOrder modelOrder = ArimaOrder.order(0, 0, 0, 1, 1, 1); - Arima model = Arima.model(timeSeries, modelOrder); - Forecast forecast = model.forecast(Knowledge.moving_wind); - System.out.print("Point Estimates : "); - for (int k = 0; k < Knowledge.horizon; k++) { - p[k] = forecast.pointEstimates().at(k); - System.out.print(p[k] + "; "); - } - System.out.println(); - return p; - } - - private void print_nice_rs(ResultSet rs) throws SQLException { - rs.first(); - AsciiTable at = new AsciiTable(); - at.addRule(); - at.addRow("Timestamp", "Latency_in_" + Knowledge.gw); - at.addRule(); - while (rs.next()) { - at.addRow(rs.getTimestamp("id").getTime(), rs.getString("latency")); - at.addRule(); - } - at.getContext().setGrid(A7_Grids.minusBarPlusEquals()); - at.getRenderer().setCWC(new CWC_LongestWord()); - System.out.println(this.getClass().getSimpleName() + " : "); - System.out.println(at.render()); - - } - - private void update_symptom(String symptom) { - - synchronized (gw_current_SYMP) { - gw_current_SYMP.notify(); - gw_current_SYMP = symptom; - - } - } - - -} \ No newline at end of file diff --git a/gctrl-spring (copy)/gctrl/src/main/java/Plan.java b/gctrl-spring (copy)/gctrl/src/main/java/Plan.java deleted file mode 100644 index 7655407..0000000 --- a/gctrl-spring (copy)/gctrl/src/main/java/Plan.java +++ /dev/null @@ -1,87 +0,0 @@ -import java.util.List; - -// - -// @author couedrao on 25/11/2019. - -//* @project gctrl - -// - -// - -//* 1)Structures the actions needed to achieve goals and objectives Structures the actions needed to achieve goals and objectives. - -//* 2)The plan function creates or selects a procedure to enact a desired alteration in the managed resource. - -//* 3)The plan function can take on many forms, ranging from a single command to a complex workflow. - -//* - -@SuppressWarnings({"SynchronizeOnNonFinalField"}) -class Plan { - private static int i; - public String gw_PLAN = ""; - - void start() { - Main.logger(this.getClass().getSimpleName(), "Start Planning"); - - while (Main.run) { - String current_rfc = get_rfc(); - //Main.logger(this.getClass().getSimpleName(), "Received RFC : " + current_rfc); - update_plan(plan_generator(current_rfc)); - - } - } - - //RFC Receiver - private String get_rfc() { - synchronized (Main.analyze.gw_current_RFC) { - try { - Main.analyze.gw_current_RFC.wait(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - return Main.analyze.gw_current_RFC; - } - - - //Rule-based Plan Generator - private String plan_generator(String rfc) { - List rfcs = Main.shared_knowledge.get_rfc(); - List plans = Main.shared_knowledge.get_plans(); - - if ("YourPlansDoNotWork".contentEquals(rfc)) { - // Thread.sleep(2000); - Main.run = false; - Main.logger(this.getClass().getSimpleName(), "All the Plans were executed without success. \n \t\t The loop will stop!"); - // Terminate JVM - System.exit(0); - } else if (rfc.contentEquals(rfcs.get(0))) { - Main.logger(this.getClass().getSimpleName(), "Plan --> To Execute : " + plans.get(0)); - i = 0; - return plans.get(0); - } else if (rfc.contentEquals(rfcs.get(1))) { - if (i == 0) { - Main.logger(this.getClass().getSimpleName(), "Plan --> To Execute : " + plans.get(1)); - i++; - return plans.get(1); - } else if (i == 1) { - Main.logger(this.getClass().getSimpleName(), "Plan --> To Execute : " + plans.get(2)); - i++; - return plans.get(2); - } - } - return null; - } - - - private void update_plan(String plan) { - synchronized (gw_PLAN) { - gw_PLAN.notify(); - gw_PLAN = plan; - } - } -} - diff --git a/gctrl-spring (copy)/gctrl/src/main/java/SDNCtrlAPI.java b/gctrl-spring (copy)/gctrl/src/main/java/SDNCtrlAPI.java deleted file mode 100644 index c7cfbb2..0000000 --- a/gctrl-spring (copy)/gctrl/src/main/java/SDNCtrlAPI.java +++ /dev/null @@ -1,34 +0,0 @@ -import java.util.List; - -/** - * @author couedrao on 27/11/2019. - * @project gctrl - */ -class SDNCtrlAPI { - - String redirect_traffic(String olddestip, String newdestip) { - String status = "OK"; - Main.logger(this.getClass().getSimpleName(), "olddestip = " + olddestip + "; newdestip = " + newdestip); - //TODO - - return status; - } - - String insert_a_loadbalancer(String oldgwip, String lbip, List newgwsip) { - String status = "OK"; - Main.logger(this.getClass().getSimpleName(), "oldgwip = " + oldgwip + "; lbip = " + lbip + "; newgwsip = " + newgwsip); - //TODO - - return status; - } - - String remove_less_important_traffic(String importantsrcip) { - String status = "OK"; - Main.logger(this.getClass().getSimpleName(), "importantsrcip = " + importantsrcip); - //TODO - - return status; - } - - -} diff --git a/gctrl-spring (copy)/gctrl/src/main/java/fr/laas/gctrl/GctrlApplication.java b/gctrl-spring (copy)/gctrl/src/main/java/fr/laas/gctrl/GctrlApplication.java deleted file mode 100644 index c294494..0000000 --- a/gctrl-spring (copy)/gctrl/src/main/java/fr/laas/gctrl/GctrlApplication.java +++ /dev/null @@ -1,35 +0,0 @@ -package fr.laas.gctrl; - -import org.springframework.http.ResponseEntity; -import org.springframework.web.client.RestTemplate; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class GctrlApplication { - - public static void main(String[] args) { - RestTemplate restTemplate = new RestTemplate(); - ResponseEntity response = restTemplate.getForEntity("http://172.17.0.3:8080/health", String.class); - - ObjectMapper mapper = new ObjectMapper(); - JsonNode root; - try { - root = mapper.readTree(response.getBody()); - JsonNode cpu_load = root.path("currentload"); - - //JsonNode root1 = mapper.readTree(name.toString().replace("[", "").replace("]", "")); - //JsonNode name1 = root1.path("load"); - - System.out.println(cpu_load.asDouble()); - //System.out.println(name1.asDouble()+2); - } catch (JsonMappingException e) { - e.printStackTrace(); - } catch (JsonProcessingException e) { - e.printStackTrace(); - } - } - -} diff --git a/gctrl-spring (copy)/gctrl/src/main/resources/application.properties b/gctrl-spring (copy)/gctrl/src/main/resources/application.properties deleted file mode 100644 index 8b13789..0000000 --- a/gctrl-spring (copy)/gctrl/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ - diff --git a/gctrl-spring (copy)/gctrl/src/misc/5sdbd_gc.draft.svg b/gctrl-spring (copy)/gctrl/src/misc/5sdbd_gc.draft.svg deleted file mode 100644 index 2e3127d..0000000 --- a/gctrl-spring (copy)/gctrl/src/misc/5sdbd_gc.draft.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/gctrl-spring (copy)/gctrl/src/test/java/Tester.java b/gctrl-spring (copy)/gctrl/src/test/java/Tester.java deleted file mode 100644 index 10d35cd..0000000 --- a/gctrl-spring (copy)/gctrl/src/test/java/Tester.java +++ /dev/null @@ -1,35 +0,0 @@ -import java.util.List; -import java.util.Scanner; - -// -//* @author couedrao on 25/11/2019. -//* @project gctrl -// -class Tester { - - private static final Knowledge k = new Knowledge(); - - public static void main(String[] args) throws Exception { - k.start(); - List workflow_lists = k.get_worklow_lists(); - while (Main.run) { - logger("You are in test mode! The following actions can be performed : "); - for (int i = 0; i < workflow_lists.size(); i++) { - logger("[" + i + "] :" + workflow_lists.get(i)); - } - logger("Select any number in [0-" + (workflow_lists.size() - 1) + "] to continue"); - int input = new Scanner(System.in).nextInt(); - if (input < workflow_lists.size() ) - logger("Execution of Action : [" + workflow_lists.get(input) + "]"); - else logger("(-_-)"); - - //Call Effectors - /*TODO : */ - } - } - - private static void logger(String msg) { - if (true) - System.out.println(msg); - } -} diff --git a/gctrl-spring (copy)/gctrl/src/test/java/fr/laas/gctrl/GctrlApplicationTests.java b/gctrl-spring (copy)/gctrl/src/test/java/fr/laas/gctrl/GctrlApplicationTests.java deleted file mode 100644 index 2da2941..0000000 --- a/gctrl-spring (copy)/gctrl/src/test/java/fr/laas/gctrl/GctrlApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package fr.laas.gctrl; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class GctrlApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git a/gctrl-spring/gctrl/pom.xml b/gctrl-spring/gctrl/pom.xml index f4a1e83..6143064 100644 --- a/gctrl-spring/gctrl/pom.xml +++ b/gctrl-spring/gctrl/pom.xml @@ -16,6 +16,7 @@ 1.8 + true @@ -65,6 +66,12 @@ gson 2.8.6 + + + org.apache.httpcomponents + httpclient + 4.5 + @@ -76,4 +83,4 @@ - + \ No newline at end of file diff --git a/gctrl-spring/gctrl/src/main/java/Execute.java b/gctrl-spring/gctrl/src/main/java/Execute.java index 8c9c52d..ba98688 100644 --- a/gctrl-spring/gctrl/src/main/java/Execute.java +++ b/gctrl-spring/gctrl/src/main/java/Execute.java @@ -1,5 +1,8 @@ +import java.io.IOException; import java.util.List; +import org.apache.http.client.ClientProtocolException; + // //* @author couedrao on 25/11/2019. @@ -33,43 +36,49 @@ class Execute { for (String w : workflow) { Main.logger(this.getClass().getSimpleName(), "UC : " + w); - switch (w) { - case "UC1": - Main.logger(this.getClass().getSimpleName(), "Nothing to do"); - break; - case "UC2": - Main.logger(this.getClass().getSimpleName(), "Deploying GW"); - String newdestip = manoapi.deploy_gw(Main.shared_knowledge.getGwinfo()); - Main.shared_knowledge.setNewdestip(newdestip); - Main.shared_knowledge.setOldgwip(newdestip); - break; - case "UC3": - Main.logger(this.getClass().getSimpleName(), "Redirecting Traffic"); - String status = sdnctlrapi.redirect_traffic(Main.shared_knowledge.getOlddestip(), Main.shared_knowledge.getNewdestip()); - Main.logger(this.getClass().getSimpleName(), status); - break; - case "UC4": - Main.logger(this.getClass().getSimpleName(), "Deploying LB+GWs"); - List newgwsip = manoapi.deploy_multi_gws_and_lb(Main.shared_knowledge.getGwsinfo()); - Main.shared_knowledge.setLbip(newgwsip.get(0)); - Main.shared_knowledge.setNewgwsip(newgwsip.subList(1, newgwsip.size())); - break; - case "UC5": - Main.logger(this.getClass().getSimpleName(), "Inserting a loadbalancer"); - status = sdnctlrapi.insert_a_loadbalancer(Main.shared_knowledge.getOldgwip(), Main.shared_knowledge.getLbip(), Main.shared_knowledge.getNewgwsip()); - Main.logger(this.getClass().getSimpleName(), status); - break; - case "UC6": - Main.logger(this.getClass().getSimpleName(), "Removing less important traffic"); - status = sdnctlrapi.remove_less_important_traffic(Main.shared_knowledge.getImportantsrcip()); - Main.logger(this.getClass().getSimpleName(), status); - break; - default: - } + try { + switch (w) { + case "UC1": + Main.logger(this.getClass().getSimpleName(), "Nothing to do"); + break; + case "UC2":////// + Main.logger(this.getClass().getSimpleName(), "Deploying GW"); + String newdestip = manoapi.deploy_gw(Main.shared_knowledge.getGwinfo()); + Main.shared_knowledge.setNewdestip(newdestip); + Main.shared_knowledge.setOldgwip(Main.shared_knowledge.getOlddestip()); + break; + case "UC3":///// + Main.logger(this.getClass().getSimpleName(), "Redirecting Traffic"); + String status = sdnctlrapi.redirect_traffic(Main.shared_knowledge.getOlddestip(), Main.shared_knowledge.getNewdestip()); + Main.logger(this.getClass().getSimpleName(), status); + break; + case "UC4": + Main.logger(this.getClass().getSimpleName(), "Deploying LB+GWs"); + List newgwsip = manoapi.deploy_multi_gws_and_lb(Main.shared_knowledge.getGwsinfo()); + Main.shared_knowledge.setLbip(newgwsip.get(0)); + Main.shared_knowledge.setNewgwsip(newgwsip.subList(1, newgwsip.size())); + break; + case "UC5": + Main.logger(this.getClass().getSimpleName(), "Inserting a loadbalancer"); + status = sdnctlrapi.insert_a_loadbalancer(Main.shared_knowledge.getOldgwip(), Main.shared_knowledge.getLbip(), Main.shared_knowledge.getNewgwsip()); + Main.logger(this.getClass().getSimpleName(), status); + break; + case "UC6": + Main.logger(this.getClass().getSimpleName(), "Removing less important traffic"); + status = sdnctlrapi.remove_less_important_traffic(Main.shared_knowledge.getImportantsrcip()); + Main.logger(this.getClass().getSimpleName(), status); + break; + default: + } + } catch (ClientProtocolException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } Thread.sleep(2000); continue; - - } } diff --git a/gctrl-spring/gctrl/src/main/java/Knowledge.java b/gctrl-spring/gctrl/src/main/java/Knowledge.java index 98368ad..6958fb1 100644 --- a/gctrl-spring/gctrl/src/main/java/Knowledge.java +++ b/gctrl-spring/gctrl/src/main/java/Knowledge.java @@ -40,7 +40,7 @@ class Knowledge { private static final List plan = Arrays.asList("A", "B", "C"); private final Map gwinfo = new HashMap<>(); private final List> gwsinfo = new ArrayList<>(); - private final String olddestip = "192.168.0.2"; + private final String olddestip = "10.2.2.1"; private String newdestip; private String oldgwip; private String lbip; @@ -56,14 +56,12 @@ class Knowledge { store_rfcs(); store_plans(); store_execution_workflow(); - //TODO : update gwinfo - gwinfo.put("name", "gw"); - gwinfo.put("image", "alpine:latest"); - gwinfo.put("net", "new_network"); + //TODO : update gwinfo ************ + gwinfo.put("name", "gwi2"); + gwinfo.put("image", "gateway:topo"); + gwinfo.put("net", "10.2.2.2/8"); gwsinfo.add(0, gwinfo); - gwsinfo.add(1, gwinfo); - gwsinfo.add(2, gwinfo); Main.logger(this.getClass().getSimpleName(), "Knowledge Starting"); diff --git a/gctrl-spring/gctrl/src/main/java/MANOAPI.java b/gctrl-spring/gctrl/src/main/java/MANOAPI.java index c41999f..ddf8e1a 100644 --- a/gctrl-spring/gctrl/src/main/java/MANOAPI.java +++ b/gctrl-spring/gctrl/src/main/java/MANOAPI.java @@ -1,36 +1,87 @@ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Map.Entry; + +import org.apache.http.HttpResponse; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.methods.HttpPut; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.springframework.http.ResponseEntity; +import org.springframework.web.client.RestTemplate; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + import java.util.Random; + + /** * @author couedrao on 27/11/2019. * @project gctrl */ class MANOAPI { - String deploy_gw(Map vnfinfos) { - String ip = "192.168.0." + (new Random().nextInt(253) + 1); + String deploy_gw(Map vnfinfos) throws ClientProtocolException, IOException{ + String ip = vnfinfos.get("net").split("/")[0]; Main.logger(this.getClass().getSimpleName(), "Deploying VNF ..."); //printing for (Entry e : vnfinfos.entrySet()) { Main.logger(this.getClass().getSimpleName(), "\t" + e.getKey() + " : " + e.getValue()); } - //TODO - + //TODO ************ (giw2: 10.2.2.2 intern ==> 172.17.0.17 extern) + + for (Entry e : vnfinfos.entrySet()) { + CloseableHttpClient httpclient = HttpClients.createDefault(); + HttpPut httpPut = new HttpPut("http://127.0.0.1:5001/restapi/compute/dc1/"+vnfinfos.get("name")); + httpPut.setHeader("Accept", "application/json"); + httpPut.setHeader("Content-type", "application/json");//vnfinfos.get("image") + /*String inputJson = "{\n" + + " \"image\": \"+gateway:topo+\",\n" + + " \"network\": \"(id=input,ip=10.2.2.2/8)\"\n" + + "}";*/ + String inputJson = "{\n" + + " \"image\": \""+vnfinfos.get("image")+"\",\n" + + " \"network\": \"(id=input,ip="+ip+"/8)\"\n" + + "}"; + StringEntity stringEntity = new StringEntity(inputJson); + httpPut.setEntity(stringEntity); + HttpResponse response = httpclient.execute(httpPut); + BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent()))); + if (response.getStatusLine().getStatusCode() != 200) { + throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode()); + } + StringBuffer result = new StringBuffer(); + String line = ""; + while ((line = br.readLine()) != null) { + System.out.println("Response : \n" + result.append(line)); + } + //System.out.println("Does Reponse contains 'datacenter'? :" + result.toString().contains("datacenter")); + } return ip; } List deploy_multi_gws_and_lb(List> vnfsinfos) { List ips = new ArrayList<>(); - //TODO - + //TODO ********************* for (Map vnfsinfo : vnfsinfos) { - ips.add(deploy_gw(vnfsinfo)); + try { + ips.add(deploy_gw(vnfsinfo)); + } catch (ClientProtocolException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } } - return ips; } } diff --git a/gctrl-spring/gctrl/src/main/java/Monitor.java b/gctrl-spring/gctrl/src/main/java/Monitor.java index 167dee3..47cd260 100644 --- a/gctrl-spring/gctrl/src/main/java/Monitor.java +++ b/gctrl-spring/gctrl/src/main/java/Monitor.java @@ -94,7 +94,7 @@ class Monitor { try { //TODO: Remove this Thread.sleep(period); - Main.shared_knowledge.insert_in_tab(new java.sql.Timestamp(new java.util.Date().getTime()), get_data()); + Main.shared_knowledge.insert_in_tab(new java.sql.Timestamp(new java.util.Date().getTime()), get_fake_data()); } catch (InterruptedException e) { e.printStackTrace(); } diff --git a/gctrl-spring/gctrl/src/main/java/SDNCtrlAPI.java b/gctrl-spring/gctrl/src/main/java/SDNCtrlAPI.java index c7cfbb2..23c44b9 100644 --- a/gctrl-spring/gctrl/src/main/java/SDNCtrlAPI.java +++ b/gctrl-spring/gctrl/src/main/java/SDNCtrlAPI.java @@ -1,15 +1,45 @@ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; import java.util.List; +import org.apache.http.HttpResponse; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.methods.HttpPut; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; + /** * @author couedrao on 27/11/2019. * @project gctrl */ class SDNCtrlAPI { - String redirect_traffic(String olddestip, String newdestip) { + String redirect_traffic(String olddestip, String newdestip) throws ClientProtocolException, IOException{ String status = "OK"; Main.logger(this.getClass().getSimpleName(), "olddestip = " + olddestip + "; newdestip = " + newdestip); - //TODO + + CloseableHttpClient httpclient = HttpClients.createDefault(); + HttpPut httpPut = new HttpPut("http://127.0.0.1:5001/restapi/compute/dc1/"); + httpPut.setHeader("Accept", "application/json"); + httpPut.setHeader("Content-type", "application/json");//vnfinfos.get("image") + String inputJson = "{\n" + + " \"image\": \"+gateway:topo+\",\n" + + " \"network\": \"(id=input,ip=10.2.2.2/8)\"\n" + + "}"; + StringEntity stringEntity = new StringEntity(inputJson); + httpPut.setEntity(stringEntity); + HttpResponse response = httpclient.execute(httpPut); + BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent()))); + if (response.getStatusLine().getStatusCode() != 200) { + throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode()); + } + StringBuffer result = new StringBuffer(); + String line = ""; + while ((line = br.readLine()) != null) { + System.out.println("Response : \n" + result.append(line)); + } return status; } diff --git a/gctrl-spring/gctrl/src/main/java/fr/laas/gctrl/GctrlApplication.java b/gctrl-spring/gctrl/src/main/java/fr/laas/gctrl/GctrlApplication.java index c294494..2ab24c8 100644 --- a/gctrl-spring/gctrl/src/main/java/fr/laas/gctrl/GctrlApplication.java +++ b/gctrl-spring/gctrl/src/main/java/fr/laas/gctrl/GctrlApplication.java @@ -1,5 +1,21 @@ package fr.laas.gctrl; +import java.io.BufferedReader; +import java.io.DataOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; + +import org.apache.http.HttpResponse; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.HttpPut; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; import org.springframework.http.ResponseEntity; import org.springframework.web.client.RestTemplate; @@ -10,8 +26,8 @@ import com.fasterxml.jackson.databind.ObjectMapper; public class GctrlApplication { - public static void main(String[] args) { - RestTemplate restTemplate = new RestTemplate(); + public static void main(String[] args) throws ClientProtocolException, IOException{ + /*RestTemplate restTemplate = new RestTemplate(); ResponseEntity response = restTemplate.getForEntity("http://172.17.0.3:8080/health", String.class); ObjectMapper mapper = new ObjectMapper(); @@ -29,7 +45,30 @@ public class GctrlApplication { e.printStackTrace(); } catch (JsonProcessingException e) { e.printStackTrace(); - } + }*/ + + //RestTemplate restTemplate = new RestTemplate(); + CloseableHttpClient httpclient = HttpClients.createDefault(); + HttpPut httpPut = new HttpPut("http://127.0.0.1:5001/restapi/compute/dc1/gwi2"); + httpPut.setHeader("Accept", "application/json"); + httpPut.setHeader("Content-type", "application/json"); + String inputJson = "{\n" + + " \"image\": \"gateway:topo\",\n" + + " \"network\": \"(id=input,ip=10.2.2.2/8)\"\n" + + "}"; + StringEntity stringEntity = new StringEntity(inputJson); + httpPut.setEntity(stringEntity); + HttpResponse response = httpclient.execute(httpPut); + BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent()))); + if (response.getStatusLine().getStatusCode() != 200) { + throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode()); + } + StringBuffer result = new StringBuffer(); + String line = ""; + while ((line = br.readLine()) != null) { + System.out.println("Response : \n" + result.append(line)); + } + System.out.println("Does Reponse contains 'datacenter'? :" + result.toString().contains("datacenter")); } } diff --git a/gctrl-spring/gctrl/src/main/java/fr/laas/gctrl/ParameterStringBuilder.java b/gctrl-spring/gctrl/src/main/java/fr/laas/gctrl/ParameterStringBuilder.java new file mode 100644 index 0000000..09eb099 --- /dev/null +++ b/gctrl-spring/gctrl/src/main/java/fr/laas/gctrl/ParameterStringBuilder.java @@ -0,0 +1,24 @@ +package fr.laas.gctrl; + +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.util.Map; + +public class ParameterStringBuilder { + public static String getParamsString(Map params) + throws UnsupportedEncodingException{ + StringBuilder result = new StringBuilder(); + + for (Map.Entry entry : params.entrySet()) { + result.append(URLEncoder.encode(entry.getKey(), "UTF-8")); + result.append("="); + result.append(URLEncoder.encode(entry.getValue(), "UTF-8")); + result.append("&"); + } + + String resultString = result.toString(); + return resultString.length() > 0 + ? resultString.substring(0, resultString.length() - 1) + : resultString; + } +} \ No newline at end of file