diff --git a/.gitignore b/.gitignore
index ceaafe7..ae5e786 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
-/dist/
-/build/
\ No newline at end of file
+/out/
+/build/
+/.gradle/
+/.idea/
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..0ecff98
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,17 @@
+plugins {
+ id 'java-library'
+}
+
+group 'io.github.chronosx88'
+version '1.0'
+
+sourceCompatibility = 1.8
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ implementation 'com.google.code.gson:gson:2.8.5'
+ implementation 'javax.xml.bind:jaxb-api:2.4.0-b180830.0359'
+}
diff --git a/build.xml b/build.xml
deleted file mode 100644
index 4167536..0000000
--- a/build.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- Builds, tests, and runs the project Kademlia.
-
-
-
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..28861d2
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..b42b57b
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Mar 01 19:17:47 MSK 2019
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-all.zip
diff --git a/gradlew b/gradlew
new file mode 100755
index 0000000..cccdd3d
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,172 @@
+#!/usr/bin/env sh
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+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
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+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
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=$(save "$@")
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+ cd "$(dirname "$0")"
+fi
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..e95643d
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,84 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/manifest.mf b/manifest.mf
deleted file mode 100644
index 1574df4..0000000
--- a/manifest.mf
+++ /dev/null
@@ -1,3 +0,0 @@
-Manifest-Version: 1.0
-X-COMMENT: Main-Class will be added automatically by build
-
diff --git a/nbproject/build-impl.xml b/nbproject/build-impl.xml
deleted file mode 100644
index 9092fc0..0000000
--- a/nbproject/build-impl.xml
+++ /dev/null
@@ -1,1413 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Must set src.dir
- Must set test.src.dir
- Must set build.dir
- Must set dist.dir
- Must set build.classes.dir
- Must set dist.javadoc.dir
- Must set build.test.classes.dir
- Must set build.test.results.dir
- Must set build.classes.excludes
- Must set dist.jar
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Must set javac.includes
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- No tests executed.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Must set JVM to use for profiling in profiler.info.jvm
- Must set profiler agent JVM arguments in profiler.info.jvmargs.agent
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Must select some files in the IDE or set javac.includes
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- To run this application from the command line without Ant, try:
-
- java -jar "${dist.jar.resolved}"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Must select one file in the IDE or set run.class
-
-
-
- Must select one file in the IDE or set run.class
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Must select one file in the IDE or set debug.class
-
-
-
-
- Must select one file in the IDE or set debug.class
-
-
-
-
- Must set fix.includes
-
-
-
-
-
-
-
-
-
- This target only works when run from inside the NetBeans IDE.
-
-
-
-
-
-
-
-
- Must select one file in the IDE or set profile.class
- This target only works when run from inside the NetBeans IDE.
-
-
-
-
-
-
-
-
- This target only works when run from inside the NetBeans IDE.
-
-
-
-
-
-
-
-
-
-
-
-
- This target only works when run from inside the NetBeans IDE.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Must select one file in the IDE or set run.class
-
-
-
-
-
- Must select some files in the IDE or set test.includes
-
-
-
-
- Must select one file in the IDE or set run.class
-
-
-
-
- Must select one file in the IDE or set applet.url
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Must select some files in the IDE or set javac.includes
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Some tests failed; see details above.
-
-
-
-
-
-
-
-
- Must select some files in the IDE or set test.includes
-
-
-
- Some tests failed; see details above.
-
-
-
- Must select some files in the IDE or set test.class
- Must select some method in the IDE or set test.method
-
-
-
- Some tests failed; see details above.
-
-
-
-
- Must select one file in the IDE or set test.class
-
-
-
- Must select one file in the IDE or set test.class
- Must select some method in the IDE or set test.method
-
-
-
-
-
-
-
-
-
-
-
-
-
- Must select one file in the IDE or set applet.url
-
-
-
-
-
-
-
-
- Must select one file in the IDE or set applet.url
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/nbproject/genfiles.properties b/nbproject/genfiles.properties
deleted file mode 100644
index cc9dd93..0000000
--- a/nbproject/genfiles.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-build.xml.data.CRC32=7e563d6e
-build.xml.script.CRC32=c3cd04bd
-build.xml.stylesheet.CRC32=8064a381@1.68.1.46
-# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
-# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
-nbproject/build-impl.xml.data.CRC32=7e563d6e
-nbproject/build-impl.xml.script.CRC32=934ae712
-nbproject/build-impl.xml.stylesheet.CRC32=876e7a8f@1.74.1.48
diff --git a/nbproject/project.properties b/nbproject/project.properties
deleted file mode 100644
index 35adc9e..0000000
--- a/nbproject/project.properties
+++ /dev/null
@@ -1,77 +0,0 @@
-annotation.processing.enabled=true
-annotation.processing.enabled.in.editor=false
-annotation.processing.processors.list=
-annotation.processing.run.all.processors=true
-annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
-application.title=Kademlia
-application.vendor=Joshua
-build.classes.dir=${build.dir}/classes
-build.classes.excludes=**/*.java,**/*.form
-# This directory is removed when the project is cleaned:
-build.dir=build
-build.generated.dir=${build.dir}/generated
-build.generated.sources.dir=${build.dir}/generated-sources
-# Only compile against the classpath explicitly listed here:
-build.sysclasspath=ignore
-build.test.classes.dir=${build.dir}/test/classes
-build.test.results.dir=${build.dir}/test/results
-# Uncomment to specify the preferred debugger connection transport:
-#debug.transport=dt_socket
-debug.classpath=\
- ${run.classpath}
-debug.test.classpath=\
- ${run.test.classpath}
-# Files in build.classes.dir which should be excluded from distribution jar
-dist.archive.excludes=
-# This directory is removed when the project is cleaned:
-dist.dir=dist
-dist.jar=${dist.dir}/Kademlia.jar
-dist.javadoc.dir=${dist.dir}/javadoc
-endorsed.classpath=
-excludes=
-file.reference.gson-2.2.4.jar=C:\\Users\\Joshua\\Documents\\NetBeansProjects\\Libraries\\gson-2.2.4.jar
-includes=**
-jar.compress=false
-javac.classpath=\
- ${file.reference.gson-2.2.4.jar}
-# Space-separated list of extra javac options
-javac.compilerargs=
-javac.deprecation=false
-javac.processorpath=\
- ${javac.classpath}
-javac.source=1.8
-javac.target=1.8
-javac.test.classpath=\
- ${javac.classpath}:\
- ${build.classes.dir}
-javac.test.processorpath=\
- ${javac.test.classpath}
-javadoc.additionalparam=
-javadoc.author=false
-javadoc.encoding=${source.encoding}
-javadoc.noindex=false
-javadoc.nonavbar=false
-javadoc.notree=false
-javadoc.private=false
-javadoc.splitindex=true
-javadoc.use=true
-javadoc.version=false
-javadoc.windowtitle=
-main.class=kademlia.KademliaBasic
-manifest.file=manifest.mf
-meta.inf.dir=${src.dir}/META-INF
-mkdist.disabled=false
-platform.active=default_platform
-run.classpath=\
- ${javac.classpath}:\
- ${build.classes.dir}
-# Space-separated list of JVM arguments used when running the project.
-# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
-# To set system properties for unit tests define test-sys-prop.name=value:
-run.jvmargs=
-run.test.classpath=\
- ${javac.test.classpath}:\
- ${build.test.classes.dir}
-source.encoding=UTF-8
-src.dir=src
-test.src.dir=test
diff --git a/nbproject/project.xml b/nbproject/project.xml
deleted file mode 100644
index 29e8f9a..0000000
--- a/nbproject/project.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- org.netbeans.modules.java.j2seproject
-
-
- Kademlia
-
-
-
-
-
-
-
-
-
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..1059e03
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,2 @@
+rootProject.name = 'kademliadht'
+
diff --git a/src/kademlia/DefaultConfiguration.java b/src/main/java/io/github/chronosx88/kademliadht/DefaultConfiguration.java
similarity index 98%
rename from src/kademlia/DefaultConfiguration.java
rename to src/main/java/io/github/chronosx88/kademliadht/DefaultConfiguration.java
index c4a8df2..34827af 100644
--- a/src/kademlia/DefaultConfiguration.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/DefaultConfiguration.java
@@ -1,4 +1,4 @@
-package kademlia;
+package io.github.chronosx88.kademliadht;
import java.io.File;
diff --git a/src/kademlia/JKademliaNode.java b/src/main/java/io/github/chronosx88/kademliadht/JKademliaNode.java
similarity index 89%
rename from src/kademlia/JKademliaNode.java
rename to src/main/java/io/github/chronosx88/kademliadht/JKademliaNode.java
index 225ed91..0e8e52f 100644
--- a/src/kademlia/JKademliaNode.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/JKademliaNode.java
@@ -1,4 +1,4 @@
-package kademlia;
+package io.github.chronosx88.kademliadht;
import java.io.DataInputStream;
import java.io.DataOutputStream;
@@ -11,27 +11,26 @@ import java.net.InetAddress;
import java.util.NoSuchElementException;
import java.util.Timer;
import java.util.TimerTask;
-import kademlia.dht.GetParameter;
-import kademlia.dht.DHT;
-import kademlia.dht.KadContent;
-import kademlia.dht.KademliaDHT;
-import kademlia.dht.KademliaStorageEntry;
-import kademlia.dht.JKademliaStorageEntry;
-import kademlia.exceptions.ContentNotFoundException;
-import kademlia.exceptions.RoutingException;
-import kademlia.message.MessageFactory;
-import kademlia.node.Node;
-import kademlia.node.KademliaId;
-import kademlia.operation.ConnectOperation;
-import kademlia.operation.ContentLookupOperation;
-import kademlia.operation.Operation;
-import kademlia.operation.KadRefreshOperation;
-import kademlia.operation.StoreOperation;
-import kademlia.routing.JKademliaRoutingTable;
-import kademlia.routing.KademliaRoutingTable;
-import kademlia.util.serializer.JsonDHTSerializer;
-import kademlia.util.serializer.JsonRoutingTableSerializer;
-import kademlia.util.serializer.JsonSerializer;
+import io.github.chronosx88.kademliadht.dht.GetParameter;
+import io.github.chronosx88.kademliadht.dht.DHT;
+import io.github.chronosx88.kademliadht.dht.KadContent;
+import io.github.chronosx88.kademliadht.dht.KademliaDHT;
+import io.github.chronosx88.kademliadht.dht.JKademliaStorageEntry;
+import io.github.chronosx88.kademliadht.exceptions.ContentNotFoundException;
+import io.github.chronosx88.kademliadht.exceptions.RoutingException;
+import io.github.chronosx88.kademliadht.message.MessageFactory;
+import io.github.chronosx88.kademliadht.node.Node;
+import io.github.chronosx88.kademliadht.node.KademliaId;
+import io.github.chronosx88.kademliadht.operation.ConnectOperation;
+import io.github.chronosx88.kademliadht.operation.ContentLookupOperation;
+import io.github.chronosx88.kademliadht.operation.Operation;
+import io.github.chronosx88.kademliadht.operation.KadRefreshOperation;
+import io.github.chronosx88.kademliadht.operation.StoreOperation;
+import io.github.chronosx88.kademliadht.routing.JKademliaRoutingTable;
+import io.github.chronosx88.kademliadht.routing.KademliaRoutingTable;
+import io.github.chronosx88.kademliadht.util.serializer.JsonDHTSerializer;
+import io.github.chronosx88.kademliadht.util.serializer.JsonRoutingTableSerializer;
+import io.github.chronosx88.kademliadht.util.serializer.JsonSerializer;
/**
* The main Kademlia Node on the network, this node manages everything for this local system.
@@ -174,8 +173,8 @@ public class JKademliaNode implements KademliaNode
*
* @return A Kademlia instance loaded from a stored state in a file
*
- * @throws java.io.FileNotFoundException
- * @throws java.lang.ClassNotFoundException
+ * @throws FileNotFoundException
+ * @throws ClassNotFoundException
*/
public static JKademliaNode loadFromFile(String ownerId) throws FileNotFoundException, IOException, ClassNotFoundException
{
@@ -190,8 +189,8 @@ public class JKademliaNode implements KademliaNode
*
* @return A Kademlia instance loaded from a stored state in a file
*
- * @throws java.io.FileNotFoundException
- * @throws java.lang.ClassNotFoundException
+ * @throws FileNotFoundException
+ * @throws ClassNotFoundException
*/
public static JKademliaNode loadFromFile(String ownerId, KadConfiguration iconfig) throws FileNotFoundException, IOException, ClassNotFoundException
{
diff --git a/src/kademlia/KadConfiguration.java b/src/main/java/io/github/chronosx88/kademliadht/KadConfiguration.java
similarity index 97%
rename from src/kademlia/KadConfiguration.java
rename to src/main/java/io/github/chronosx88/kademliadht/KadConfiguration.java
index 833c36f..11f59f5 100644
--- a/src/kademlia/KadConfiguration.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/KadConfiguration.java
@@ -1,4 +1,4 @@
-package kademlia;
+package io.github.chronosx88.kademliadht;
/**
* Interface that defines a KadConfiguration object
diff --git a/src/kademlia/KadServer.java b/src/main/java/io/github/chronosx88/kademliadht/KadServer.java
similarity index 95%
rename from src/kademlia/KadServer.java
rename to src/main/java/io/github/chronosx88/kademliadht/KadServer.java
index 0b91895..b6404a5 100644
--- a/src/kademlia/KadServer.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/KadServer.java
@@ -1,4 +1,4 @@
-package kademlia;
+package io.github.chronosx88.kademliadht;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -13,12 +13,11 @@ import java.util.Map;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
-import kademlia.exceptions.KadServerDownException;
-import kademlia.message.KademliaMessageFactory;
-import kademlia.message.Message;
-import kademlia.message.MessageFactory;
-import kademlia.node.Node;
-import kademlia.message.Receiver;
+import io.github.chronosx88.kademliadht.exceptions.KadServerDownException;
+import io.github.chronosx88.kademliadht.message.KademliaMessageFactory;
+import io.github.chronosx88.kademliadht.message.Message;
+import io.github.chronosx88.kademliadht.node.Node;
+import io.github.chronosx88.kademliadht.message.Receiver;
/**
* The server that handles sending and receiving messages between nodes on the Kad Network
@@ -66,7 +65,7 @@ public class KadServer
* @param config
* @param statistician A statistician to manage the server statistics
*
- * @throws java.net.SocketException
+ * @throws SocketException
*/
public KadServer(int udpPort, KademliaMessageFactory mFactory, Node localNode, KadConfiguration config, KadStatistician statistician) throws SocketException
{
@@ -105,7 +104,7 @@ public class KadServer
* @return Integer The communication ID of this message
*
* @throws IOException
- * @throws kademlia.exceptions.KadServerDownException
+ * @throws KadServerDownException
*/
public synchronized int sendMessage(Node to, Message msg, Receiver recv) throws IOException, KadServerDownException
{
@@ -147,7 +146,7 @@ public class KadServer
* @param msg The reply message
* @param comm The communication ID - the one received
*
- * @throws java.io.IOException
+ * @throws IOException
*/
public synchronized void reply(Node to, Message msg, int comm) throws IOException
{
diff --git a/src/kademlia/KadStatistician.java b/src/main/java/io/github/chronosx88/kademliadht/KadStatistician.java
similarity index 98%
rename from src/kademlia/KadStatistician.java
rename to src/main/java/io/github/chronosx88/kademliadht/KadStatistician.java
index aca1d24..c487d95 100644
--- a/src/kademlia/KadStatistician.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/KadStatistician.java
@@ -1,4 +1,4 @@
-package kademlia;
+package io.github.chronosx88.kademliadht;
/**
* Specification for class that keeps statistics for a Kademlia instance.
diff --git a/src/kademlia/KademliaNode.java b/src/main/java/io/github/chronosx88/kademliadht/KademliaNode.java
similarity index 83%
rename from src/kademlia/KademliaNode.java
rename to src/main/java/io/github/chronosx88/kademliadht/KademliaNode.java
index d6090f8..ee1f5c0 100644
--- a/src/kademlia/KademliaNode.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/KademliaNode.java
@@ -1,16 +1,15 @@
-package kademlia;
+package io.github.chronosx88.kademliadht;
import java.io.IOException;
import java.util.NoSuchElementException;
-import kademlia.dht.GetParameter;
-import kademlia.dht.JKademliaStorageEntry;
-import kademlia.dht.KadContent;
-import kademlia.dht.KademliaDHT;
-import kademlia.dht.KademliaStorageEntry;
-import kademlia.exceptions.ContentNotFoundException;
-import kademlia.exceptions.RoutingException;
-import kademlia.node.Node;
-import kademlia.routing.KademliaRoutingTable;
+import io.github.chronosx88.kademliadht.dht.GetParameter;
+import io.github.chronosx88.kademliadht.dht.JKademliaStorageEntry;
+import io.github.chronosx88.kademliadht.dht.KadContent;
+import io.github.chronosx88.kademliadht.dht.KademliaDHT;
+import io.github.chronosx88.kademliadht.exceptions.ContentNotFoundException;
+import io.github.chronosx88.kademliadht.exceptions.RoutingException;
+import io.github.chronosx88.kademliadht.node.Node;
+import io.github.chronosx88.kademliadht.routing.KademliaRoutingTable;
/**
* The main Kademlia Node on the network, this node manages everything for this local system.
@@ -71,7 +70,7 @@ public interface KademliaNode
*
* @return Integer How many nodes the content was stored on
*
- * @throws java.io.IOException
+ * @throws IOException
*
*/
public int put(KadContent content) throws IOException;
@@ -84,7 +83,7 @@ public interface KademliaNode
*
* @return Integer How many nodes the content was stored on
*
- * @throws java.io.IOException
+ * @throws IOException
*
*/
public int put(JKademliaStorageEntry entry) throws IOException;
@@ -94,7 +93,7 @@ public interface KademliaNode
*
* @param content The content to put on the DHT
*
- * @throws java.io.IOException
+ * @throws IOException
*/
public void putLocally(KadContent content) throws IOException;
@@ -105,15 +104,15 @@ public interface KademliaNode
*
* @return DHTContent The content
*
- * @throws java.io.IOException
- * @throws kademlia.exceptions.ContentNotFoundException
+ * @throws IOException
+ * @throws ContentNotFoundException
*/
public JKademliaStorageEntry get(GetParameter param) throws NoSuchElementException, IOException, ContentNotFoundException;
/**
* Allow the user of the System to call refresh even out of the normal Kad refresh timing
*
- * @throws java.io.IOException
+ * @throws IOException
*/
public void refresh() throws IOException;
diff --git a/src/kademlia/Statistician.java b/src/main/java/io/github/chronosx88/kademliadht/Statistician.java
similarity index 99%
rename from src/kademlia/Statistician.java
rename to src/main/java/io/github/chronosx88/kademliadht/Statistician.java
index c875e2d..cdb6b90 100644
--- a/src/kademlia/Statistician.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/Statistician.java
@@ -1,4 +1,4 @@
-package kademlia;
+package io.github.chronosx88.kademliadht;
import java.text.DecimalFormat;
diff --git a/src/kademlia/Todo b/src/main/java/io/github/chronosx88/kademliadht/Todo
similarity index 100%
rename from src/kademlia/Todo
rename to src/main/java/io/github/chronosx88/kademliadht/Todo
diff --git a/src/kademlia/dht/DHT.java b/src/main/java/io/github/chronosx88/kademliadht/dht/DHT.java
similarity index 94%
rename from src/kademlia/dht/DHT.java
rename to src/main/java/io/github/chronosx88/kademliadht/dht/DHT.java
index 6a35bf1..85d830e 100644
--- a/src/kademlia/dht/DHT.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/dht/DHT.java
@@ -1,4 +1,4 @@
-package kademlia.dht;
+package io.github.chronosx88.kademliadht.dht;
import java.io.DataInputStream;
import java.io.DataOutputStream;
@@ -9,12 +9,12 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import java.util.NoSuchElementException;
-import kademlia.KadConfiguration;
-import kademlia.exceptions.ContentExistException;
-import kademlia.exceptions.ContentNotFoundException;
-import kademlia.node.KademliaId;
-import kademlia.util.serializer.JsonSerializer;
-import kademlia.util.serializer.KadSerializer;
+import io.github.chronosx88.kademliadht.KadConfiguration;
+import io.github.chronosx88.kademliadht.exceptions.ContentExistException;
+import io.github.chronosx88.kademliadht.exceptions.ContentNotFoundException;
+import io.github.chronosx88.kademliadht.node.KademliaId;
+import io.github.chronosx88.kademliadht.util.serializer.JsonSerializer;
+import io.github.chronosx88.kademliadht.util.serializer.KadSerializer;
/**
* The main Distributed Hash Table class that manages the entire DHT
diff --git a/src/kademlia/dht/GetParameter.java b/src/main/java/io/github/chronosx88/kademliadht/dht/GetParameter.java
similarity index 95%
rename from src/kademlia/dht/GetParameter.java
rename to src/main/java/io/github/chronosx88/kademliadht/dht/GetParameter.java
index f57bde4..e675a34 100644
--- a/src/kademlia/dht/GetParameter.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/dht/GetParameter.java
@@ -1,6 +1,6 @@
-package kademlia.dht;
+package io.github.chronosx88.kademliadht.dht;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* A GET request can get content based on Key, Owner, Type, etc
diff --git a/src/kademlia/dht/JKademliaStorageEntry.java b/src/main/java/io/github/chronosx88/kademliadht/dht/JKademliaStorageEntry.java
similarity index 96%
rename from src/kademlia/dht/JKademliaStorageEntry.java
rename to src/main/java/io/github/chronosx88/kademliadht/dht/JKademliaStorageEntry.java
index c89c30e..46a3705 100644
--- a/src/kademlia/dht/JKademliaStorageEntry.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/dht/JKademliaStorageEntry.java
@@ -1,4 +1,4 @@
-package kademlia.dht;
+package io.github.chronosx88.kademliadht.dht;
/**
* A JKademliaStorageEntry class that is used to store a content on the DHT
diff --git a/src/kademlia/dht/KadContent.java b/src/main/java/io/github/chronosx88/kademliadht/dht/KadContent.java
similarity index 93%
rename from src/kademlia/dht/KadContent.java
rename to src/main/java/io/github/chronosx88/kademliadht/dht/KadContent.java
index f61a9ae..f52a22c 100644
--- a/src/kademlia/dht/KadContent.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/dht/KadContent.java
@@ -1,6 +1,6 @@
-package kademlia.dht;
+package io.github.chronosx88.kademliadht.dht;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* Any piece of content that needs to be stored on the DHT
diff --git a/src/kademlia/dht/KademliaDHT.java b/src/main/java/io/github/chronosx88/kademliadht/dht/KademliaDHT.java
similarity index 86%
rename from src/kademlia/dht/KademliaDHT.java
rename to src/main/java/io/github/chronosx88/kademliadht/dht/KademliaDHT.java
index 9edd27e..69b0fde 100644
--- a/src/kademlia/dht/KademliaDHT.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/dht/KademliaDHT.java
@@ -1,13 +1,13 @@
-package kademlia.dht;
+package io.github.chronosx88.kademliadht.dht;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
import java.util.NoSuchElementException;
-import kademlia.KadConfiguration;
-import kademlia.exceptions.ContentNotFoundException;
-import kademlia.node.KademliaId;
-import kademlia.util.serializer.KadSerializer;
+import io.github.chronosx88.kademliadht.KadConfiguration;
+import io.github.chronosx88.kademliadht.exceptions.ContentNotFoundException;
+import io.github.chronosx88.kademliadht.node.KademliaId;
+import io.github.chronosx88.kademliadht.util.serializer.KadSerializer;
/**
* The main Distributed Hash Table interface that manages the entire DHT
@@ -44,7 +44,7 @@ public interface KademliaDHT
*
* @return boolean true if we stored the content, false if the content already exists and is up to date
*
- * @throws java.io.IOException
+ * @throws IOException
*/
public boolean store(JKademliaStorageEntry content) throws IOException;
@@ -58,8 +58,8 @@ public interface KademliaDHT
*
* @return A KadContent object
*
- * @throws java.io.FileNotFoundException
- * @throws java.lang.ClassNotFoundException
+ * @throws FileNotFoundException
+ * @throws ClassNotFoundException
*/
public JKademliaStorageEntry retrieve(KademliaId key, int hashCode) throws FileNotFoundException, IOException, ClassNotFoundException;
@@ -79,7 +79,7 @@ public interface KademliaDHT
*
* @return KadContent The content object
*
- * @throws java.io.IOException
+ * @throws IOException
*/
public JKademliaStorageEntry get(KademliaStorageEntryMetadata entry) throws IOException, NoSuchElementException;
@@ -90,7 +90,7 @@ public interface KademliaDHT
*
* @return KadContent A KadContent found on the DHT satisfying the given criteria
*
- * @throws java.io.IOException
+ * @throws IOException
*/
public JKademliaStorageEntry get(GetParameter param) throws NoSuchElementException, IOException;
@@ -100,7 +100,7 @@ public interface KademliaDHT
* @param content The Content to Remove
*
*
- * @throws kademlia.exceptions.ContentNotFoundException
+ * @throws ContentNotFoundException
*/
public void remove(KadContent content) throws ContentNotFoundException;
diff --git a/src/kademlia/dht/KademliaStorageEntry.java b/src/main/java/io/github/chronosx88/kademliadht/dht/KademliaStorageEntry.java
similarity index 93%
rename from src/kademlia/dht/KademliaStorageEntry.java
rename to src/main/java/io/github/chronosx88/kademliadht/dht/KademliaStorageEntry.java
index 4cebdec..16c614d 100644
--- a/src/kademlia/dht/KademliaStorageEntry.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/dht/KademliaStorageEntry.java
@@ -1,4 +1,4 @@
-package kademlia.dht;
+package io.github.chronosx88.kademliadht.dht;
/**
* A StorageEntry interface for the storage entry class used to store a content on the DHT
diff --git a/src/kademlia/dht/KademliaStorageEntryMetadata.java b/src/main/java/io/github/chronosx88/kademliadht/dht/KademliaStorageEntryMetadata.java
similarity index 92%
rename from src/kademlia/dht/KademliaStorageEntryMetadata.java
rename to src/main/java/io/github/chronosx88/kademliadht/dht/KademliaStorageEntryMetadata.java
index fb895e7..9f87016 100644
--- a/src/kademlia/dht/KademliaStorageEntryMetadata.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/dht/KademliaStorageEntryMetadata.java
@@ -1,6 +1,6 @@
-package kademlia.dht;
+package io.github.chronosx88.kademliadht.dht;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* Keeps track of data for a Content stored in the DHT
diff --git a/src/kademlia/dht/StorageEntryMetadata.java b/src/main/java/io/github/chronosx88/kademliadht/dht/StorageEntryMetadata.java
similarity index 97%
rename from src/kademlia/dht/StorageEntryMetadata.java
rename to src/main/java/io/github/chronosx88/kademliadht/dht/StorageEntryMetadata.java
index f8a3109..9e781c2 100644
--- a/src/kademlia/dht/StorageEntryMetadata.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/dht/StorageEntryMetadata.java
@@ -1,7 +1,7 @@
-package kademlia.dht;
+package io.github.chronosx88.kademliadht.dht;
import java.util.Objects;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* Keeps track of data for a Content stored in the DHT
diff --git a/src/kademlia/dht/StoredContentManager.java b/src/main/java/io/github/chronosx88/kademliadht/dht/StoredContentManager.java
similarity index 95%
rename from src/kademlia/dht/StoredContentManager.java
rename to src/main/java/io/github/chronosx88/kademliadht/dht/StoredContentManager.java
index 23bb7a7..0afaa1d 100644
--- a/src/kademlia/dht/StoredContentManager.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/dht/StoredContentManager.java
@@ -1,13 +1,13 @@
-package kademlia.dht;
+package io.github.chronosx88.kademliadht.dht;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
-import kademlia.exceptions.ContentExistException;
-import kademlia.exceptions.ContentNotFoundException;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.exceptions.ContentExistException;
+import io.github.chronosx88.kademliadht.exceptions.ContentNotFoundException;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* It would be infeasible to keep all content in memory to be send when requested
diff --git a/src/kademlia/exceptions/ContentExistException.java b/src/main/java/io/github/chronosx88/kademliadht/exceptions/ContentExistException.java
similarity index 86%
rename from src/kademlia/exceptions/ContentExistException.java
rename to src/main/java/io/github/chronosx88/kademliadht/exceptions/ContentExistException.java
index 96e7c2a..b4433c8 100644
--- a/src/kademlia/exceptions/ContentExistException.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/exceptions/ContentExistException.java
@@ -1,4 +1,4 @@
-package kademlia.exceptions;
+package io.github.chronosx88.kademliadht.exceptions;
/**
* An exception used to indicate that a content already exist on the DHT
diff --git a/src/kademlia/exceptions/ContentNotFoundException.java b/src/main/java/io/github/chronosx88/kademliadht/exceptions/ContentNotFoundException.java
similarity index 86%
rename from src/kademlia/exceptions/ContentNotFoundException.java
rename to src/main/java/io/github/chronosx88/kademliadht/exceptions/ContentNotFoundException.java
index 4b7bf84..d1521c6 100644
--- a/src/kademlia/exceptions/ContentNotFoundException.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/exceptions/ContentNotFoundException.java
@@ -1,4 +1,4 @@
-package kademlia.exceptions;
+package io.github.chronosx88.kademliadht.exceptions;
/**
* An exception used to indicate that a content does not exist on the DHT
diff --git a/src/kademlia/exceptions/KadServerDownException.java b/src/main/java/io/github/chronosx88/kademliadht/exceptions/KadServerDownException.java
similarity index 86%
rename from src/kademlia/exceptions/KadServerDownException.java
rename to src/main/java/io/github/chronosx88/kademliadht/exceptions/KadServerDownException.java
index 92cf5d1..1b9cd43 100644
--- a/src/kademlia/exceptions/KadServerDownException.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/exceptions/KadServerDownException.java
@@ -1,4 +1,4 @@
-package kademlia.exceptions;
+package io.github.chronosx88.kademliadht.exceptions;
/**
* An exception to be thrown whenever the Kad Server is down
diff --git a/src/kademlia/exceptions/RoutingException.java b/src/main/java/io/github/chronosx88/kademliadht/exceptions/RoutingException.java
similarity index 86%
rename from src/kademlia/exceptions/RoutingException.java
rename to src/main/java/io/github/chronosx88/kademliadht/exceptions/RoutingException.java
index aa0697c..3b21521 100644
--- a/src/kademlia/exceptions/RoutingException.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/exceptions/RoutingException.java
@@ -1,4 +1,4 @@
-package kademlia.exceptions;
+package io.github.chronosx88.kademliadht.exceptions;
import java.io.IOException;
diff --git a/src/kademlia/exceptions/UnknownMessageException.java b/src/main/java/io/github/chronosx88/kademliadht/exceptions/UnknownMessageException.java
similarity index 87%
rename from src/kademlia/exceptions/UnknownMessageException.java
rename to src/main/java/io/github/chronosx88/kademliadht/exceptions/UnknownMessageException.java
index a7116ec..ff916f3 100644
--- a/src/kademlia/exceptions/UnknownMessageException.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/exceptions/UnknownMessageException.java
@@ -1,4 +1,4 @@
-package kademlia.exceptions;
+package io.github.chronosx88.kademliadht.exceptions;
/**
* An exception used to indicate an unknown message type or communication identifier
diff --git a/src/kademlia/message/AcknowledgeMessage.java b/src/main/java/io/github/chronosx88/kademliadht/message/AcknowledgeMessage.java
similarity index 91%
rename from src/kademlia/message/AcknowledgeMessage.java
rename to src/main/java/io/github/chronosx88/kademliadht/message/AcknowledgeMessage.java
index 0f4fef5..d1b71e3 100644
--- a/src/kademlia/message/AcknowledgeMessage.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/message/AcknowledgeMessage.java
@@ -1,9 +1,9 @@
-package kademlia.message;
+package io.github.chronosx88.kademliadht.message;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
-import kademlia.node.Node;
+import io.github.chronosx88.kademliadht.node.Node;
/**
* A message used to acknowledge a request from a node; can be used in many situations.
diff --git a/src/kademlia/message/ConnectMessage.java b/src/main/java/io/github/chronosx88/kademliadht/message/ConnectMessage.java
similarity index 91%
rename from src/kademlia/message/ConnectMessage.java
rename to src/main/java/io/github/chronosx88/kademliadht/message/ConnectMessage.java
index 25629be..2b9f876 100644
--- a/src/kademlia/message/ConnectMessage.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/message/ConnectMessage.java
@@ -1,9 +1,9 @@
-package kademlia.message;
+package io.github.chronosx88.kademliadht.message;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
-import kademlia.node.Node;
+import io.github.chronosx88.kademliadht.node.Node;
/**
* A message sent to another node requesting to connect to them.
diff --git a/src/kademlia/message/ConnectReceiver.java b/src/main/java/io/github/chronosx88/kademliadht/message/ConnectReceiver.java
similarity index 85%
rename from src/kademlia/message/ConnectReceiver.java
rename to src/main/java/io/github/chronosx88/kademliadht/message/ConnectReceiver.java
index e9fa922..fdb75d8 100644
--- a/src/kademlia/message/ConnectReceiver.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/message/ConnectReceiver.java
@@ -1,8 +1,8 @@
-package kademlia.message;
+package io.github.chronosx88.kademliadht.message;
import java.io.IOException;
-import kademlia.KadServer;
-import kademlia.KademliaNode;
+import io.github.chronosx88.kademliadht.KadServer;
+import io.github.chronosx88.kademliadht.KademliaNode;
/**
* Receives a ConnectMessage and sends an AcknowledgeMessage as reply.
@@ -27,7 +27,7 @@ public class ConnectReceiver implements Receiver
*
* @param comm
*
- * @throws java.io.IOException
+ * @throws IOException
*/
@Override
public void receive(Message incoming, int comm) throws IOException
@@ -49,7 +49,7 @@ public class ConnectReceiver implements Receiver
*
* @param comm
*
- * @throws java.io.IOException
+ * @throws IOException
*/
@Override
public void timeout(int comm) throws IOException
diff --git a/src/kademlia/message/ContentLookupMessage.java b/src/main/java/io/github/chronosx88/kademliadht/message/ContentLookupMessage.java
similarity index 87%
rename from src/kademlia/message/ContentLookupMessage.java
rename to src/main/java/io/github/chronosx88/kademliadht/message/ContentLookupMessage.java
index 9d8a85f..cd27a18 100644
--- a/src/kademlia/message/ContentLookupMessage.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/message/ContentLookupMessage.java
@@ -1,11 +1,11 @@
-package kademlia.message;
+package io.github.chronosx88.kademliadht.message;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
-import kademlia.dht.GetParameter;
-import kademlia.node.Node;
-import kademlia.util.serializer.JsonSerializer;
+import io.github.chronosx88.kademliadht.dht.GetParameter;
+import io.github.chronosx88.kademliadht.node.Node;
+import io.github.chronosx88.kademliadht.util.serializer.JsonSerializer;
/**
* Messages used to send to another node requesting content.
diff --git a/src/kademlia/message/ContentLookupReceiver.java b/src/main/java/io/github/chronosx88/kademliadht/message/ContentLookupReceiver.java
similarity index 88%
rename from src/kademlia/message/ContentLookupReceiver.java
rename to src/main/java/io/github/chronosx88/kademliadht/message/ContentLookupReceiver.java
index 99b24d1..63dac1b 100644
--- a/src/kademlia/message/ContentLookupReceiver.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/message/ContentLookupReceiver.java
@@ -1,11 +1,11 @@
-package kademlia.message;
+package io.github.chronosx88.kademliadht.message;
import java.io.IOException;
import java.util.NoSuchElementException;
-import kademlia.KadConfiguration;
-import kademlia.KadServer;
-import kademlia.KademliaNode;
-import kademlia.dht.KademliaDHT;
+import io.github.chronosx88.kademliadht.KadConfiguration;
+import io.github.chronosx88.kademliadht.KadServer;
+import io.github.chronosx88.kademliadht.KademliaNode;
+import io.github.chronosx88.kademliadht.dht.KademliaDHT;
/**
* Responds to a ContentLookupMessage by sending a ContentMessage containing the requested content;
diff --git a/src/kademlia/message/ContentMessage.java b/src/main/java/io/github/chronosx88/kademliadht/message/ContentMessage.java
similarity index 88%
rename from src/kademlia/message/ContentMessage.java
rename to src/main/java/io/github/chronosx88/kademliadht/message/ContentMessage.java
index b680bdd..ca781f3 100644
--- a/src/kademlia/message/ContentMessage.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/message/ContentMessage.java
@@ -1,12 +1,11 @@
-package kademlia.message;
+package io.github.chronosx88.kademliadht.message;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
-import kademlia.dht.JKademliaStorageEntry;
-import kademlia.dht.KademliaStorageEntry;
-import kademlia.node.Node;
-import kademlia.util.serializer.JsonSerializer;
+import io.github.chronosx88.kademliadht.dht.JKademliaStorageEntry;
+import io.github.chronosx88.kademliadht.node.Node;
+import io.github.chronosx88.kademliadht.util.serializer.JsonSerializer;
/**
* A Message used to send content between nodes
diff --git a/src/kademlia/message/KademliaMessageFactory.java b/src/main/java/io/github/chronosx88/kademliadht/message/KademliaMessageFactory.java
similarity index 86%
rename from src/kademlia/message/KademliaMessageFactory.java
rename to src/main/java/io/github/chronosx88/kademliadht/message/KademliaMessageFactory.java
index 10111eb..06ad565 100644
--- a/src/kademlia/message/KademliaMessageFactory.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/message/KademliaMessageFactory.java
@@ -1,8 +1,8 @@
-package kademlia.message;
+package io.github.chronosx88.kademliadht.message;
import java.io.DataInputStream;
import java.io.IOException;
-import kademlia.KadServer;
+import io.github.chronosx88.kademliadht.KadServer;
/**
* A factory that handles creating messages and receivers
@@ -21,7 +21,7 @@ public interface KademliaMessageFactory
*
* @return A message
*
- * @throws java.io.IOException
+ * @throws IOException
*/
public Message createMessage(byte code, DataInputStream in) throws IOException;
diff --git a/src/kademlia/message/Message.java b/src/main/java/io/github/chronosx88/kademliadht/message/Message.java
similarity index 87%
rename from src/kademlia/message/Message.java
rename to src/main/java/io/github/chronosx88/kademliadht/message/Message.java
index c1fd105..8033fdc 100644
--- a/src/kademlia/message/Message.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/message/Message.java
@@ -1,4 +1,4 @@
-package kademlia.message;
+package io.github.chronosx88.kademliadht.message;
public interface Message extends Streamable
{
diff --git a/src/kademlia/message/MessageFactory.java b/src/main/java/io/github/chronosx88/kademliadht/message/MessageFactory.java
similarity index 89%
rename from src/kademlia/message/MessageFactory.java
rename to src/main/java/io/github/chronosx88/kademliadht/message/MessageFactory.java
index da7f8fa..fffd93c 100644
--- a/src/kademlia/message/MessageFactory.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/message/MessageFactory.java
@@ -1,11 +1,11 @@
-package kademlia.message;
+package io.github.chronosx88.kademliadht.message;
import java.io.DataInputStream;
import java.io.IOException;
-import kademlia.KadConfiguration;
-import kademlia.KadServer;
-import kademlia.KademliaNode;
-import kademlia.dht.KademliaDHT;
+import io.github.chronosx88.kademliadht.KadConfiguration;
+import io.github.chronosx88.kademliadht.KadServer;
+import io.github.chronosx88.kademliadht.KademliaNode;
+import io.github.chronosx88.kademliadht.dht.KademliaDHT;
/**
* Handles creating messages and receivers
diff --git a/src/kademlia/message/NodeLookupMessage.java b/src/main/java/io/github/chronosx88/kademliadht/message/NodeLookupMessage.java
similarity index 90%
rename from src/kademlia/message/NodeLookupMessage.java
rename to src/main/java/io/github/chronosx88/kademliadht/message/NodeLookupMessage.java
index d1a9b5d..76f3776 100644
--- a/src/kademlia/message/NodeLookupMessage.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/message/NodeLookupMessage.java
@@ -1,10 +1,10 @@
-package kademlia.message;
+package io.github.chronosx88.kademliadht.message;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
-import kademlia.node.Node;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.node.Node;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* A message sent to other nodes requesting the K-Closest nodes to a key sent in this message.
diff --git a/src/kademlia/message/NodeLookupReceiver.java b/src/main/java/io/github/chronosx88/kademliadht/message/NodeLookupReceiver.java
similarity index 84%
rename from src/kademlia/message/NodeLookupReceiver.java
rename to src/main/java/io/github/chronosx88/kademliadht/message/NodeLookupReceiver.java
index eceb836..e914543 100644
--- a/src/kademlia/message/NodeLookupReceiver.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/message/NodeLookupReceiver.java
@@ -1,11 +1,11 @@
-package kademlia.message;
+package io.github.chronosx88.kademliadht.message;
import java.io.IOException;
import java.util.List;
-import kademlia.KadConfiguration;
-import kademlia.KadServer;
-import kademlia.KademliaNode;
-import kademlia.node.Node;
+import io.github.chronosx88.kademliadht.KadConfiguration;
+import io.github.chronosx88.kademliadht.KadServer;
+import io.github.chronosx88.kademliadht.KademliaNode;
+import io.github.chronosx88.kademliadht.node.Node;
/**
* Receives a NodeLookupMessage and sends a NodeReplyMessage as reply with the K-Closest nodes to the ID sent.
@@ -33,7 +33,7 @@ public class NodeLookupReceiver implements Receiver
*
* @param comm
*
- * @throws java.io.IOException
+ * @throws IOException
*/
@Override
public void receive(Message incoming, int comm) throws IOException
@@ -63,7 +63,7 @@ public class NodeLookupReceiver implements Receiver
*
* @param comm
*
- * @throws java.io.IOException
+ * @throws IOException
*/
@Override
public void timeout(int comm) throws IOException
diff --git a/src/kademlia/message/NodeReplyMessage.java b/src/main/java/io/github/chronosx88/kademliadht/message/NodeReplyMessage.java
similarity index 95%
rename from src/kademlia/message/NodeReplyMessage.java
rename to src/main/java/io/github/chronosx88/kademliadht/message/NodeReplyMessage.java
index 07a1f72..debbf59 100644
--- a/src/kademlia/message/NodeReplyMessage.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/message/NodeReplyMessage.java
@@ -1,11 +1,11 @@
-package kademlia.message;
+package io.github.chronosx88.kademliadht.message;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import kademlia.node.Node;
+import io.github.chronosx88.kademliadht.node.Node;
/**
* A message used to connect nodes.
diff --git a/src/kademlia/message/Receiver.java b/src/main/java/io/github/chronosx88/kademliadht/message/Receiver.java
similarity index 92%
rename from src/kademlia/message/Receiver.java
rename to src/main/java/io/github/chronosx88/kademliadht/message/Receiver.java
index eda37c0..6dd05f8 100644
--- a/src/kademlia/message/Receiver.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/message/Receiver.java
@@ -1,4 +1,4 @@
-package kademlia.message;
+package io.github.chronosx88.kademliadht.message;
import java.io.IOException;
@@ -17,7 +17,7 @@ public interface Receiver
* @param conversationId The ID of this conversation, used for further conversations
* @param incoming The incoming
*
- * @throws java.io.IOException
+ * @throws IOException
*/
public void receive(Message incoming, int conversationId) throws IOException;
diff --git a/src/kademlia/message/SimpleMessage.java b/src/main/java/io/github/chronosx88/kademliadht/message/SimpleMessage.java
similarity index 96%
rename from src/kademlia/message/SimpleMessage.java
rename to src/main/java/io/github/chronosx88/kademliadht/message/SimpleMessage.java
index 2b2b157..7111c13 100644
--- a/src/kademlia/message/SimpleMessage.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/message/SimpleMessage.java
@@ -1,4 +1,4 @@
-package kademlia.message;
+package io.github.chronosx88.kademliadht.message;
import java.io.DataInputStream;
import java.io.DataOutputStream;
diff --git a/src/kademlia/message/SimpleReceiver.java b/src/main/java/io/github/chronosx88/kademliadht/message/SimpleReceiver.java
similarity index 90%
rename from src/kademlia/message/SimpleReceiver.java
rename to src/main/java/io/github/chronosx88/kademliadht/message/SimpleReceiver.java
index 2a14e68..ea2ced0 100644
--- a/src/kademlia/message/SimpleReceiver.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/message/SimpleReceiver.java
@@ -1,4 +1,4 @@
-package kademlia.message;
+package io.github.chronosx88.kademliadht.message;
import java.io.IOException;
diff --git a/src/kademlia/message/StoreContentMessage.java b/src/main/java/io/github/chronosx88/kademliadht/message/StoreContentMessage.java
similarity index 87%
rename from src/kademlia/message/StoreContentMessage.java
rename to src/main/java/io/github/chronosx88/kademliadht/message/StoreContentMessage.java
index ea4162a..14824ff 100644
--- a/src/kademlia/message/StoreContentMessage.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/message/StoreContentMessage.java
@@ -1,12 +1,11 @@
-package kademlia.message;
+package io.github.chronosx88.kademliadht.message;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
-import kademlia.dht.JKademliaStorageEntry;
-import kademlia.dht.KademliaStorageEntry;
-import kademlia.node.Node;
-import kademlia.util.serializer.JsonSerializer;
+import io.github.chronosx88.kademliadht.dht.JKademliaStorageEntry;
+import io.github.chronosx88.kademliadht.node.Node;
+import io.github.chronosx88.kademliadht.util.serializer.JsonSerializer;
/**
* A StoreContentMessage used to send a store message to a node
diff --git a/src/kademlia/message/StoreContentReceiver.java b/src/main/java/io/github/chronosx88/kademliadht/message/StoreContentReceiver.java
similarity index 86%
rename from src/kademlia/message/StoreContentReceiver.java
rename to src/main/java/io/github/chronosx88/kademliadht/message/StoreContentReceiver.java
index a6caf04..59f1137 100644
--- a/src/kademlia/message/StoreContentReceiver.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/message/StoreContentReceiver.java
@@ -1,9 +1,9 @@
-package kademlia.message;
+package io.github.chronosx88.kademliadht.message;
import java.io.IOException;
-import kademlia.KadServer;
-import kademlia.KademliaNode;
-import kademlia.dht.KademliaDHT;
+import io.github.chronosx88.kademliadht.KadServer;
+import io.github.chronosx88.kademliadht.KademliaNode;
+import io.github.chronosx88.kademliadht.dht.KademliaDHT;
/**
* Receiver for incoming StoreContentMessage
diff --git a/src/kademlia/message/Streamable.java b/src/main/java/io/github/chronosx88/kademliadht/message/Streamable.java
similarity index 92%
rename from src/kademlia/message/Streamable.java
rename to src/main/java/io/github/chronosx88/kademliadht/message/Streamable.java
index fd038f3..821a297 100644
--- a/src/kademlia/message/Streamable.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/message/Streamable.java
@@ -1,4 +1,4 @@
-package kademlia.message;
+package io.github.chronosx88.kademliadht.message;
import java.io.DataInputStream;
import java.io.DataOutputStream;
@@ -27,7 +27,7 @@ public interface Streamable
*
* @param out
*
- * @throws java.io.IOException
+ * @throws IOException
*/
public void toStream(DataOutputStream out) throws IOException;
@@ -36,7 +36,7 @@ public interface Streamable
*
* @param out
*
- * @throws java.io.IOException
+ * @throws IOException
*/
public void fromStream(DataInputStream out) throws IOException;
}
diff --git a/src/kademlia/node/KademliaId.java b/src/main/java/io/github/chronosx88/kademliadht/node/KademliaId.java
similarity index 95%
rename from src/kademlia/node/KademliaId.java
rename to src/main/java/io/github/chronosx88/kademliadht/node/KademliaId.java
index ac58aff..1f106f9 100644
--- a/src/kademlia/node/KademliaId.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/node/KademliaId.java
@@ -3,7 +3,7 @@
* @created 20140215
* @desc Represents a Kademlia Node ID
*/
-package kademlia.node;
+package io.github.chronosx88.kademliadht.node;
import java.io.DataInputStream;
import java.io.DataOutputStream;
@@ -13,7 +13,9 @@ import java.math.BigInteger;
import java.util.Arrays;
import java.util.BitSet;
import java.util.Random;
-import kademlia.message.Streamable;
+import io.github.chronosx88.kademliadht.message.Streamable;
+
+import javax.xml.bind.DatatypeConverter;
public class KademliaId implements Streamable, Serializable
{
@@ -28,7 +30,7 @@ public class KademliaId implements Streamable, Serializable
*/
public KademliaId(String data)
{
- keyBytes = data.getBytes();
+ keyBytes = DatatypeConverter.parseHexBinary(data);
if (keyBytes.length != ID_LENGTH / 8)
{
throw new IllegalArgumentException("Specified Data need to be " + (ID_LENGTH / 8) + " characters long.");
@@ -250,8 +252,7 @@ public class KademliaId implements Streamable, Serializable
public String hexRepresentation()
{
/* Returns the hex format of this NodeId */
- BigInteger bi = new BigInteger(1, this.keyBytes);
- return String.format("%0" + (this.keyBytes.length << 1) + "X", bi);
+ return DatatypeConverter.printHexBinary(this.keyBytes);
}
@Override
diff --git a/src/kademlia/node/KeyComparator.java b/src/main/java/io/github/chronosx88/kademliadht/node/KeyComparator.java
similarity index 95%
rename from src/kademlia/node/KeyComparator.java
rename to src/main/java/io/github/chronosx88/kademliadht/node/KeyComparator.java
index 01bbbe4..3b8d306 100644
--- a/src/kademlia/node/KeyComparator.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/node/KeyComparator.java
@@ -1,4 +1,4 @@
-package kademlia.node;
+package io.github.chronosx88.kademliadht.node;
import java.math.BigInteger;
import java.util.Comparator;
diff --git a/src/kademlia/node/Node.java b/src/main/java/io/github/chronosx88/kademliadht/node/Node.java
similarity index 96%
rename from src/kademlia/node/Node.java
rename to src/main/java/io/github/chronosx88/kademliadht/node/Node.java
index 432f1f2..499212d 100644
--- a/src/kademlia/node/Node.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/node/Node.java
@@ -1,4 +1,4 @@
-package kademlia.node;
+package io.github.chronosx88.kademliadht.node;
import java.io.DataInputStream;
import java.io.DataOutputStream;
@@ -6,7 +6,7 @@ import java.io.IOException;
import java.io.Serializable;
import java.net.InetAddress;
import java.net.InetSocketAddress;
-import kademlia.message.Streamable;
+import io.github.chronosx88.kademliadht.message.Streamable;
/**
* A Node in the Kademlia network - Contains basic node network information.
diff --git a/src/kademlia/operation/BucketRefreshOperation.java b/src/main/java/io/github/chronosx88/kademliadht/operation/BucketRefreshOperation.java
similarity index 86%
rename from src/kademlia/operation/BucketRefreshOperation.java
rename to src/main/java/io/github/chronosx88/kademliadht/operation/BucketRefreshOperation.java
index 0ee5653..e99db27 100644
--- a/src/kademlia/operation/BucketRefreshOperation.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/operation/BucketRefreshOperation.java
@@ -1,10 +1,10 @@
-package kademlia.operation;
+package io.github.chronosx88.kademliadht.operation;
import java.io.IOException;
-import kademlia.KadConfiguration;
-import kademlia.KadServer;
-import kademlia.KademliaNode;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.KadConfiguration;
+import io.github.chronosx88.kademliadht.KadServer;
+import io.github.chronosx88.kademliadht.KademliaNode;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* At each time interval t, nodes need to refresh their K-Buckets
@@ -35,7 +35,7 @@ public class BucketRefreshOperation implements Operation
* Then Do a NodeLookupOperation for each of the generated NodeIds,
* This will find the K-Closest nodes to that ID, and update the necessary K-Bucket
*
- * @throws java.io.IOException
+ * @throws IOException
*/
@Override
public synchronized void execute() throws IOException
diff --git a/src/kademlia/operation/ConnectOperation.java b/src/main/java/io/github/chronosx88/kademliadht/operation/ConnectOperation.java
similarity index 87%
rename from src/kademlia/operation/ConnectOperation.java
rename to src/main/java/io/github/chronosx88/kademliadht/operation/ConnectOperation.java
index 8efb260..1e7a520 100644
--- a/src/kademlia/operation/ConnectOperation.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/operation/ConnectOperation.java
@@ -3,19 +3,19 @@
* @created 20140218
* @desc Operation that handles connecting to an existing Kademlia network using a bootstrap node
*/
-package kademlia.operation;
+package io.github.chronosx88.kademliadht.operation;
-import kademlia.message.Receiver;
+import io.github.chronosx88.kademliadht.message.Receiver;
import java.io.IOException;
-import kademlia.JKademliaNode;
-import kademlia.KadConfiguration;
-import kademlia.KadServer;
-import kademlia.KademliaNode;
-import kademlia.exceptions.RoutingException;
-import kademlia.message.AcknowledgeMessage;
-import kademlia.message.ConnectMessage;
-import kademlia.message.Message;
-import kademlia.node.Node;
+
+import io.github.chronosx88.kademliadht.KadConfiguration;
+import io.github.chronosx88.kademliadht.KadServer;
+import io.github.chronosx88.kademliadht.KademliaNode;
+import io.github.chronosx88.kademliadht.exceptions.RoutingException;
+import io.github.chronosx88.kademliadht.message.AcknowledgeMessage;
+import io.github.chronosx88.kademliadht.message.ConnectMessage;
+import io.github.chronosx88.kademliadht.message.Message;
+import io.github.chronosx88.kademliadht.node.Node;
public class ConnectOperation implements Operation, Receiver
{
@@ -122,7 +122,7 @@ public class ConnectOperation implements Operation, Receiver
*
* @param comm
*
- * @throws java.io.IOException
+ * @throws IOException
*/
@Override
public synchronized void timeout(int comm) throws IOException
diff --git a/src/kademlia/operation/ContentLookupOperation.java b/src/main/java/io/github/chronosx88/kademliadht/operation/ContentLookupOperation.java
similarity index 89%
rename from src/kademlia/operation/ContentLookupOperation.java
rename to src/main/java/io/github/chronosx88/kademliadht/operation/ContentLookupOperation.java
index 083fec2..ef727c1 100644
--- a/src/kademlia/operation/ContentLookupOperation.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/operation/ContentLookupOperation.java
@@ -1,6 +1,6 @@
-package kademlia.operation;
+package io.github.chronosx88.kademliadht.operation;
-import kademlia.message.Receiver;
+import io.github.chronosx88.kademliadht.message.Receiver;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
@@ -10,22 +10,21 @@ import java.util.List;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
-import kademlia.JKademliaNode;
-import kademlia.dht.GetParameter;
-import kademlia.KadConfiguration;
-import kademlia.KadServer;
-import kademlia.dht.JKademliaStorageEntry;
-import kademlia.dht.KademliaStorageEntry;
-import kademlia.exceptions.ContentNotFoundException;
-import kademlia.exceptions.RoutingException;
-import kademlia.exceptions.UnknownMessageException;
-import kademlia.message.ContentLookupMessage;
-import kademlia.message.ContentMessage;
-import kademlia.message.Message;
-import kademlia.message.NodeReplyMessage;
-import kademlia.node.KeyComparator;
-import kademlia.node.Node;
-import kademlia.util.RouteLengthChecker;
+import io.github.chronosx88.kademliadht.JKademliaNode;
+import io.github.chronosx88.kademliadht.dht.GetParameter;
+import io.github.chronosx88.kademliadht.KadConfiguration;
+import io.github.chronosx88.kademliadht.KadServer;
+import io.github.chronosx88.kademliadht.dht.JKademliaStorageEntry;
+import io.github.chronosx88.kademliadht.exceptions.ContentNotFoundException;
+import io.github.chronosx88.kademliadht.exceptions.RoutingException;
+import io.github.chronosx88.kademliadht.exceptions.UnknownMessageException;
+import io.github.chronosx88.kademliadht.message.ContentLookupMessage;
+import io.github.chronosx88.kademliadht.message.ContentMessage;
+import io.github.chronosx88.kademliadht.message.Message;
+import io.github.chronosx88.kademliadht.message.NodeReplyMessage;
+import io.github.chronosx88.kademliadht.node.KeyComparator;
+import io.github.chronosx88.kademliadht.node.Node;
+import io.github.chronosx88.kademliadht.util.RouteLengthChecker;
/**
* Looks up a specified identifier and returns the value associated with it
@@ -92,8 +91,8 @@ public class ContentLookupOperation implements Operation, Receiver
}
/**
- * @throws java.io.IOException
- * @throws kademlia.exceptions.RoutingException
+ * @throws IOException
+ * @throws RoutingException
*/
@Override
public synchronized void execute() throws IOException, RoutingException
@@ -287,7 +286,7 @@ public class ContentLookupOperation implements Operation, Receiver
*
* @param comm
*
- * @throws java.io.IOException
+ * @throws IOException
*/
@Override
public synchronized void timeout(int comm) throws IOException
@@ -319,7 +318,7 @@ public class ContentLookupOperation implements Operation, Receiver
/**
* @return The list of all content found during the lookup operation
*
- * @throws kademlia.exceptions.ContentNotFoundException
+ * @throws ContentNotFoundException
*/
public JKademliaStorageEntry getContentFound() throws ContentNotFoundException
{
diff --git a/src/kademlia/operation/ContentRefreshOperation.java b/src/main/java/io/github/chronosx88/kademliadht/operation/ContentRefreshOperation.java
similarity index 83%
rename from src/kademlia/operation/ContentRefreshOperation.java
rename to src/main/java/io/github/chronosx88/kademliadht/operation/ContentRefreshOperation.java
index fb05baf..22ca022 100644
--- a/src/kademlia/operation/ContentRefreshOperation.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/operation/ContentRefreshOperation.java
@@ -1,17 +1,16 @@
-package kademlia.operation;
+package io.github.chronosx88.kademliadht.operation;
import java.io.IOException;
import java.util.List;
-import kademlia.KadConfiguration;
-import kademlia.KadServer;
-import kademlia.KademliaNode;
-import kademlia.dht.KademliaDHT;
-import kademlia.dht.KademliaStorageEntryMetadata;
-import kademlia.dht.StorageEntryMetadata;
-import kademlia.exceptions.ContentNotFoundException;
-import kademlia.message.Message;
-import kademlia.message.StoreContentMessage;
-import kademlia.node.Node;
+import io.github.chronosx88.kademliadht.KadConfiguration;
+import io.github.chronosx88.kademliadht.KadServer;
+import io.github.chronosx88.kademliadht.KademliaNode;
+import io.github.chronosx88.kademliadht.dht.KademliaDHT;
+import io.github.chronosx88.kademliadht.dht.KademliaStorageEntryMetadata;
+import io.github.chronosx88.kademliadht.exceptions.ContentNotFoundException;
+import io.github.chronosx88.kademliadht.message.Message;
+import io.github.chronosx88.kademliadht.message.StoreContentMessage;
+import io.github.chronosx88.kademliadht.node.Node;
/**
* Refresh/Restore the data on this node by sending the data to the K-Closest nodes to the data
@@ -41,7 +40,7 @@ public class ContentRefreshOperation implements Operation
We assume that our JKademliaRoutingTable is updated, and we can get the K closest nodes from that table
*
- * @throws java.io.IOException
+ * @throws IOException
*/
@Override
public void execute() throws IOException
diff --git a/src/kademlia/operation/KadRefreshOperation.java b/src/main/java/io/github/chronosx88/kademliadht/operation/KadRefreshOperation.java
similarity index 79%
rename from src/kademlia/operation/KadRefreshOperation.java
rename to src/main/java/io/github/chronosx88/kademliadht/operation/KadRefreshOperation.java
index f2f1925..5c8358c 100644
--- a/src/kademlia/operation/KadRefreshOperation.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/operation/KadRefreshOperation.java
@@ -1,10 +1,10 @@
-package kademlia.operation;
+package io.github.chronosx88.kademliadht.operation;
import java.io.IOException;
-import kademlia.KadConfiguration;
-import kademlia.KadServer;
-import kademlia.KademliaNode;
-import kademlia.dht.KademliaDHT;
+import io.github.chronosx88.kademliadht.KadConfiguration;
+import io.github.chronosx88.kademliadht.KadServer;
+import io.github.chronosx88.kademliadht.KademliaNode;
+import io.github.chronosx88.kademliadht.dht.KademliaDHT;
/**
* An operation that handles refreshing the entire Kademlia Systems including buckets and content
diff --git a/src/kademlia/operation/NodeLookupOperation.java b/src/main/java/io/github/chronosx88/kademliadht/operation/NodeLookupOperation.java
similarity index 92%
rename from src/kademlia/operation/NodeLookupOperation.java
rename to src/main/java/io/github/chronosx88/kademliadht/operation/NodeLookupOperation.java
index 5d6162c..bb55918 100644
--- a/src/kademlia/operation/NodeLookupOperation.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/operation/NodeLookupOperation.java
@@ -1,6 +1,6 @@
-package kademlia.operation;
+package io.github.chronosx88.kademliadht.operation;
-import kademlia.message.Receiver;
+import io.github.chronosx88.kademliadht.message.Receiver;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Comparator;
@@ -8,16 +8,16 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
-import kademlia.KadConfiguration;
-import kademlia.KadServer;
-import kademlia.KademliaNode;
-import kademlia.exceptions.RoutingException;
-import kademlia.message.Message;
-import kademlia.message.NodeLookupMessage;
-import kademlia.message.NodeReplyMessage;
-import kademlia.node.KeyComparator;
-import kademlia.node.Node;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.KadConfiguration;
+import io.github.chronosx88.kademliadht.KadServer;
+import io.github.chronosx88.kademliadht.KademliaNode;
+import io.github.chronosx88.kademliadht.exceptions.RoutingException;
+import io.github.chronosx88.kademliadht.message.Message;
+import io.github.chronosx88.kademliadht.message.NodeLookupMessage;
+import io.github.chronosx88.kademliadht.message.NodeReplyMessage;
+import io.github.chronosx88.kademliadht.node.KeyComparator;
+import io.github.chronosx88.kademliadht.node.Node;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* Finds the K closest nodes to a specified identifier
@@ -77,8 +77,8 @@ public class NodeLookupOperation implements Operation, Receiver
}
/**
- * @throws java.io.IOException
- * @throws kademlia.exceptions.RoutingException
+ * @throws IOException
+ * @throws RoutingException
*/
@Override
public synchronized void execute() throws IOException, RoutingException
@@ -252,7 +252,7 @@ public class NodeLookupOperation implements Operation, Receiver
*
* @param comm
*
- * @throws java.io.IOException
+ * @throws IOException
*/
@Override
public synchronized void receive(Message incoming, int comm) throws IOException
@@ -285,7 +285,7 @@ public class NodeLookupOperation implements Operation, Receiver
*
* @param comm
*
- * @throws java.io.IOException
+ * @throws IOException
*/
@Override
public synchronized void timeout(int comm) throws IOException
diff --git a/src/kademlia/operation/Operation.java b/src/main/java/io/github/chronosx88/kademliadht/operation/Operation.java
similarity index 68%
rename from src/kademlia/operation/Operation.java
rename to src/main/java/io/github/chronosx88/kademliadht/operation/Operation.java
index cb01922..e2d9197 100644
--- a/src/kademlia/operation/Operation.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/operation/Operation.java
@@ -1,7 +1,7 @@
-package kademlia.operation;
+package io.github.chronosx88.kademliadht.operation;
import java.io.IOException;
-import kademlia.exceptions.RoutingException;
+import io.github.chronosx88.kademliadht.exceptions.RoutingException;
/**
* An operation in the Kademlia routing protocol
@@ -15,7 +15,7 @@ public interface Operation
/**
* Starts an operation and returns when the operation is finished
*
- * @throws kademlia.exceptions.RoutingException
+ * @throws RoutingException
*/
public void execute() throws IOException, RoutingException;
}
diff --git a/src/kademlia/operation/PingOperation.java b/src/main/java/io/github/chronosx88/kademliadht/operation/PingOperation.java
similarity index 81%
rename from src/kademlia/operation/PingOperation.java
rename to src/main/java/io/github/chronosx88/kademliadht/operation/PingOperation.java
index f78a434..77251f3 100644
--- a/src/kademlia/operation/PingOperation.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/operation/PingOperation.java
@@ -5,12 +5,12 @@
* @author Joshua Kissoon
* @since 20140218
*/
-package kademlia.operation;
+package io.github.chronosx88.kademliadht.operation;
import java.io.IOException;
-import kademlia.KadServer;
-import kademlia.exceptions.RoutingException;
-import kademlia.node.Node;
+import io.github.chronosx88.kademliadht.KadServer;
+import io.github.chronosx88.kademliadht.exceptions.RoutingException;
+import io.github.chronosx88.kademliadht.node.Node;
public class PingOperation implements Operation
{
diff --git a/src/kademlia/operation/StoreOperation.java b/src/main/java/io/github/chronosx88/kademliadht/operation/StoreOperation.java
similarity index 81%
rename from src/kademlia/operation/StoreOperation.java
rename to src/main/java/io/github/chronosx88/kademliadht/operation/StoreOperation.java
index ed3d211..bde6914 100644
--- a/src/kademlia/operation/StoreOperation.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/operation/StoreOperation.java
@@ -1,16 +1,15 @@
-package kademlia.operation;
+package io.github.chronosx88.kademliadht.operation;
import java.io.IOException;
import java.util.List;
-import kademlia.KadConfiguration;
-import kademlia.KadServer;
-import kademlia.KademliaNode;
-import kademlia.dht.JKademliaStorageEntry;
-import kademlia.dht.KademliaDHT;
-import kademlia.dht.KademliaStorageEntry;
-import kademlia.message.Message;
-import kademlia.message.StoreContentMessage;
-import kademlia.node.Node;
+import io.github.chronosx88.kademliadht.KadConfiguration;
+import io.github.chronosx88.kademliadht.KadServer;
+import io.github.chronosx88.kademliadht.KademliaNode;
+import io.github.chronosx88.kademliadht.dht.JKademliaStorageEntry;
+import io.github.chronosx88.kademliadht.dht.KademliaDHT;
+import io.github.chronosx88.kademliadht.message.Message;
+import io.github.chronosx88.kademliadht.message.StoreContentMessage;
+import io.github.chronosx88.kademliadht.node.Node;
/**
* Operation that stores a DHT Content onto the K closest nodes to the content Key
diff --git a/src/kademlia/routing/Contact.java b/src/main/java/io/github/chronosx88/kademliadht/routing/Contact.java
similarity index 96%
rename from src/kademlia/routing/Contact.java
rename to src/main/java/io/github/chronosx88/kademliadht/routing/Contact.java
index 896d1df..f0b60d1 100644
--- a/src/kademlia/routing/Contact.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/routing/Contact.java
@@ -1,6 +1,6 @@
-package kademlia.routing;
+package io.github.chronosx88.kademliadht.routing;
-import kademlia.node.Node;
+import io.github.chronosx88.kademliadht.node.Node;
/**
* Keeps information about contacts of the Node; Contacts are stored in the Buckets in the Routing Table.
diff --git a/src/kademlia/routing/ContactLastSeenComparator.java b/src/main/java/io/github/chronosx88/kademliadht/routing/ContactLastSeenComparator.java
similarity index 94%
rename from src/kademlia/routing/ContactLastSeenComparator.java
rename to src/main/java/io/github/chronosx88/kademliadht/routing/ContactLastSeenComparator.java
index 6c1d097..abad384 100644
--- a/src/kademlia/routing/ContactLastSeenComparator.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/routing/ContactLastSeenComparator.java
@@ -1,4 +1,4 @@
-package kademlia.routing;
+package io.github.chronosx88.kademliadht.routing;
import java.util.Comparator;
diff --git a/src/kademlia/routing/JKademliaBucket.java b/src/main/java/io/github/chronosx88/kademliadht/routing/JKademliaBucket.java
similarity index 97%
rename from src/kademlia/routing/JKademliaBucket.java
rename to src/main/java/io/github/chronosx88/kademliadht/routing/JKademliaBucket.java
index c9c745a..dda80cb 100644
--- a/src/kademlia/routing/JKademliaBucket.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/routing/JKademliaBucket.java
@@ -1,11 +1,11 @@
-package kademlia.routing;
+package io.github.chronosx88.kademliadht.routing;
import java.util.ArrayList;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.TreeSet;
-import kademlia.KadConfiguration;
-import kademlia.node.Node;
+import io.github.chronosx88.kademliadht.KadConfiguration;
+import io.github.chronosx88.kademliadht.node.Node;
/**
* A bucket in the Kademlia routing table
diff --git a/src/kademlia/routing/JKademliaRoutingTable.java b/src/main/java/io/github/chronosx88/kademliadht/routing/JKademliaRoutingTable.java
similarity index 95%
rename from src/kademlia/routing/JKademliaRoutingTable.java
rename to src/main/java/io/github/chronosx88/kademliadht/routing/JKademliaRoutingTable.java
index 2fe1907..dd42279 100644
--- a/src/kademlia/routing/JKademliaRoutingTable.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/routing/JKademliaRoutingTable.java
@@ -1,12 +1,12 @@
-package kademlia.routing;
+package io.github.chronosx88.kademliadht.routing;
import java.util.ArrayList;
import java.util.List;
import java.util.TreeSet;
-import kademlia.KadConfiguration;
-import kademlia.node.KeyComparator;
-import kademlia.node.Node;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.KadConfiguration;
+import io.github.chronosx88.kademliadht.node.KeyComparator;
+import io.github.chronosx88.kademliadht.node.Node;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* Implementation of a Kademlia routing table
diff --git a/src/kademlia/routing/KademliaBucket.java b/src/main/java/io/github/chronosx88/kademliadht/routing/KademliaBucket.java
similarity index 95%
rename from src/kademlia/routing/KademliaBucket.java
rename to src/main/java/io/github/chronosx88/kademliadht/routing/KademliaBucket.java
index d5a4457..78b2c93 100644
--- a/src/kademlia/routing/KademliaBucket.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/routing/KademliaBucket.java
@@ -1,7 +1,7 @@
-package kademlia.routing;
+package io.github.chronosx88.kademliadht.routing;
import java.util.List;
-import kademlia.node.Node;
+import io.github.chronosx88.kademliadht.node.Node;
/**
* A bucket used to store Contacts in the routing table.
diff --git a/src/kademlia/routing/KademliaRoutingTable.java b/src/main/java/io/github/chronosx88/kademliadht/routing/KademliaRoutingTable.java
similarity index 91%
rename from src/kademlia/routing/KademliaRoutingTable.java
rename to src/main/java/io/github/chronosx88/kademliadht/routing/KademliaRoutingTable.java
index 2e4af52..e82f3be 100644
--- a/src/kademlia/routing/KademliaRoutingTable.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/routing/KademliaRoutingTable.java
@@ -1,9 +1,9 @@
-package kademlia.routing;
+package io.github.chronosx88.kademliadht.routing;
import java.util.List;
-import kademlia.KadConfiguration;
-import kademlia.node.Node;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.KadConfiguration;
+import io.github.chronosx88.kademliadht.node.Node;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* Specification for Kademlia's Routing Table
diff --git a/src/kademlia/simulations/AutoRefreshOperation.java b/src/main/java/io/github/chronosx88/kademliadht/simulations/AutoRefreshOperation.java
similarity index 92%
rename from src/kademlia/simulations/AutoRefreshOperation.java
rename to src/main/java/io/github/chronosx88/kademliadht/simulations/AutoRefreshOperation.java
index 35ba638..3236f89 100644
--- a/src/kademlia/simulations/AutoRefreshOperation.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/simulations/AutoRefreshOperation.java
@@ -1,11 +1,11 @@
-package kademlia.simulations;
+package io.github.chronosx88.kademliadht.simulations;
import java.util.Timer;
import java.util.TimerTask;
-import kademlia.DefaultConfiguration;
-import kademlia.JKademliaNode;
-import kademlia.KadConfiguration;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.DefaultConfiguration;
+import io.github.chronosx88.kademliadht.JKademliaNode;
+import io.github.chronosx88.kademliadht.KadConfiguration;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* Testing the Kademlia Auto Content and Node table refresh operations
diff --git a/src/kademlia/simulations/AutoRefreshOperation2.java b/src/main/java/io/github/chronosx88/kademliadht/simulations/AutoRefreshOperation2.java
similarity index 89%
rename from src/kademlia/simulations/AutoRefreshOperation2.java
rename to src/main/java/io/github/chronosx88/kademliadht/simulations/AutoRefreshOperation2.java
index 8b193fe..cdb51f2 100644
--- a/src/kademlia/simulations/AutoRefreshOperation2.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/simulations/AutoRefreshOperation2.java
@@ -1,11 +1,11 @@
-package kademlia.simulations;
+package io.github.chronosx88.kademliadht.simulations;
import java.util.Timer;
import java.util.TimerTask;
-import kademlia.DefaultConfiguration;
-import kademlia.JKademliaNode;
-import kademlia.KadConfiguration;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.DefaultConfiguration;
+import io.github.chronosx88.kademliadht.JKademliaNode;
+import io.github.chronosx88.kademliadht.KadConfiguration;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* Testing the Kademlia Auto Content and Node table refresh operations
diff --git a/src/kademlia/simulations/ContentSendingTest.java b/src/main/java/io/github/chronosx88/kademliadht/simulations/ContentSendingTest.java
similarity index 83%
rename from src/kademlia/simulations/ContentSendingTest.java
rename to src/main/java/io/github/chronosx88/kademliadht/simulations/ContentSendingTest.java
index 3863e31..b3ce412 100644
--- a/src/kademlia/simulations/ContentSendingTest.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/simulations/ContentSendingTest.java
@@ -1,12 +1,12 @@
-package kademlia.simulations;
+package io.github.chronosx88.kademliadht.simulations;
import java.io.IOException;
import java.util.UUID;
-import kademlia.dht.GetParameter;
-import kademlia.JKademliaNode;
-import kademlia.dht.KademliaStorageEntry;
-import kademlia.exceptions.ContentNotFoundException;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.dht.GetParameter;
+import io.github.chronosx88.kademliadht.JKademliaNode;
+import io.github.chronosx88.kademliadht.dht.KademliaStorageEntry;
+import io.github.chronosx88.kademliadht.exceptions.ContentNotFoundException;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* Testing sending and receiving content between 2 Nodes on a network
diff --git a/src/kademlia/simulations/ContentUpdatingTest.java b/src/main/java/io/github/chronosx88/kademliadht/simulations/ContentUpdatingTest.java
similarity index 84%
rename from src/kademlia/simulations/ContentUpdatingTest.java
rename to src/main/java/io/github/chronosx88/kademliadht/simulations/ContentUpdatingTest.java
index 60ca1a0..7858fac 100644
--- a/src/kademlia/simulations/ContentUpdatingTest.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/simulations/ContentUpdatingTest.java
@@ -1,11 +1,11 @@
-package kademlia.simulations;
+package io.github.chronosx88.kademliadht.simulations;
import java.io.IOException;
-import kademlia.dht.GetParameter;
-import kademlia.JKademliaNode;
-import kademlia.dht.KademliaStorageEntry;
-import kademlia.exceptions.ContentNotFoundException;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.dht.GetParameter;
+import io.github.chronosx88.kademliadht.JKademliaNode;
+import io.github.chronosx88.kademliadht.dht.KademliaStorageEntry;
+import io.github.chronosx88.kademliadht.exceptions.ContentNotFoundException;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* Testing sending and receiving content between 2 Nodes on a network
diff --git a/src/kademlia/simulations/DHTContentImpl.java b/src/main/java/io/github/chronosx88/kademliadht/simulations/DHTContentImpl.java
similarity index 92%
rename from src/kademlia/simulations/DHTContentImpl.java
rename to src/main/java/io/github/chronosx88/kademliadht/simulations/DHTContentImpl.java
index 7fe1e29..ad372c5 100644
--- a/src/kademlia/simulations/DHTContentImpl.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/simulations/DHTContentImpl.java
@@ -1,8 +1,8 @@
-package kademlia.simulations;
+package io.github.chronosx88.kademliadht.simulations;
import com.google.gson.Gson;
-import kademlia.dht.KadContent;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.dht.KadContent;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* A simple DHT Content object to test DHT storage
diff --git a/src/kademlia/simulations/NodeConnectionTest.java b/src/main/java/io/github/chronosx88/kademliadht/simulations/NodeConnectionTest.java
similarity index 94%
rename from src/kademlia/simulations/NodeConnectionTest.java
rename to src/main/java/io/github/chronosx88/kademliadht/simulations/NodeConnectionTest.java
index 04c36e1..19fbbf0 100644
--- a/src/kademlia/simulations/NodeConnectionTest.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/simulations/NodeConnectionTest.java
@@ -1,8 +1,8 @@
-package kademlia.simulations;
+package io.github.chronosx88.kademliadht.simulations;
import java.io.IOException;
-import kademlia.JKademliaNode;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.JKademliaNode;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* Testing connecting 2 nodes to each other
diff --git a/src/kademlia/simulations/RefreshOperationTest.java b/src/main/java/io/github/chronosx88/kademliadht/simulations/RefreshOperationTest.java
similarity index 75%
rename from src/kademlia/simulations/RefreshOperationTest.java
rename to src/main/java/io/github/chronosx88/kademliadht/simulations/RefreshOperationTest.java
index fd2bb90..8f446dc 100644
--- a/src/kademlia/simulations/RefreshOperationTest.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/simulations/RefreshOperationTest.java
@@ -1,11 +1,11 @@
-package kademlia.simulations;
+package io.github.chronosx88.kademliadht.simulations;
import java.io.IOException;
-import kademlia.dht.GetParameter;
-import kademlia.JKademliaNode;
-import kademlia.dht.KademliaStorageEntry;
-import kademlia.exceptions.ContentNotFoundException;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.dht.GetParameter;
+import io.github.chronosx88.kademliadht.JKademliaNode;
+import io.github.chronosx88.kademliadht.dht.KademliaStorageEntry;
+import io.github.chronosx88.kademliadht.exceptions.ContentNotFoundException;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* Testing sending and receiving content between 2 Nodes on a network
diff --git a/src/kademlia/simulations/RoutingTableSimulation.java b/src/main/java/io/github/chronosx88/kademliadht/simulations/RoutingTableSimulation.java
similarity index 87%
rename from src/kademlia/simulations/RoutingTableSimulation.java
rename to src/main/java/io/github/chronosx88/kademliadht/simulations/RoutingTableSimulation.java
index 5262adb..a511d1f 100644
--- a/src/kademlia/simulations/RoutingTableSimulation.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/simulations/RoutingTableSimulation.java
@@ -1,8 +1,8 @@
-package kademlia.simulations;
+package io.github.chronosx88.kademliadht.simulations;
-import kademlia.JKademliaNode;
-import kademlia.node.KademliaId;
-import kademlia.routing.KademliaRoutingTable;
+import io.github.chronosx88.kademliadht.JKademliaNode;
+import io.github.chronosx88.kademliadht.node.KademliaId;
+import io.github.chronosx88.kademliadht.routing.KademliaRoutingTable;
/**
* Testing how the routing table works and checking if everything works properly
diff --git a/src/kademlia/simulations/RoutingTableStateTesting.java b/src/main/java/io/github/chronosx88/kademliadht/simulations/RoutingTableStateTesting.java
similarity index 94%
rename from src/kademlia/simulations/RoutingTableStateTesting.java
rename to src/main/java/io/github/chronosx88/kademliadht/simulations/RoutingTableStateTesting.java
index a5c2e03..e3e27fc 100644
--- a/src/kademlia/simulations/RoutingTableStateTesting.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/simulations/RoutingTableStateTesting.java
@@ -1,10 +1,10 @@
-package kademlia.simulations;
+package io.github.chronosx88.kademliadht.simulations;
import java.io.IOException;
import java.util.Scanner;
-import kademlia.JKademliaNode;
-import kademlia.dht.KadContent;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.JKademliaNode;
+import io.github.chronosx88.kademliadht.dht.KadContent;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* Testing how the routing table works and it's state after different operations
diff --git a/src/kademlia/simulations/SaveStateTest.java b/src/main/java/io/github/chronosx88/kademliadht/simulations/SaveStateTest.java
similarity index 94%
rename from src/kademlia/simulations/SaveStateTest.java
rename to src/main/java/io/github/chronosx88/kademliadht/simulations/SaveStateTest.java
index 630cc4b..6a41309 100644
--- a/src/kademlia/simulations/SaveStateTest.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/simulations/SaveStateTest.java
@@ -1,7 +1,7 @@
-package kademlia.simulations;
+package io.github.chronosx88.kademliadht.simulations;
-import kademlia.JKademliaNode;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.JKademliaNode;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* Testing the save and retrieve state operations
diff --git a/src/kademlia/simulations/SaveStateTest2.java b/src/main/java/io/github/chronosx88/kademliadht/simulations/SaveStateTest2.java
similarity index 87%
rename from src/kademlia/simulations/SaveStateTest2.java
rename to src/main/java/io/github/chronosx88/kademliadht/simulations/SaveStateTest2.java
index 9003453..a285002 100644
--- a/src/kademlia/simulations/SaveStateTest2.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/simulations/SaveStateTest2.java
@@ -1,9 +1,9 @@
-package kademlia.simulations;
+package io.github.chronosx88.kademliadht.simulations;
-import kademlia.JKademliaNode;
-import kademlia.dht.GetParameter;
-import kademlia.dht.KademliaStorageEntry;
-import kademlia.node.KademliaId;
+import io.github.chronosx88.kademliadht.JKademliaNode;
+import io.github.chronosx88.kademliadht.dht.GetParameter;
+import io.github.chronosx88.kademliadht.dht.KademliaStorageEntry;
+import io.github.chronosx88.kademliadht.node.KademliaId;
/**
* Testing the save and retrieve state operations.
diff --git a/src/kademlia/simulations/SimpleMessageTest.java b/src/main/java/io/github/chronosx88/kademliadht/simulations/SimpleMessageTest.java
similarity index 69%
rename from src/kademlia/simulations/SimpleMessageTest.java
rename to src/main/java/io/github/chronosx88/kademliadht/simulations/SimpleMessageTest.java
index 8adeaee..493698a 100644
--- a/src/kademlia/simulations/SimpleMessageTest.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/simulations/SimpleMessageTest.java
@@ -1,10 +1,10 @@
-package kademlia.simulations;
+package io.github.chronosx88.kademliadht.simulations;
import java.io.IOException;
-import kademlia.JKademliaNode;
-import kademlia.message.SimpleMessage;
-import kademlia.node.KademliaId;
-import kademlia.message.SimpleReceiver;
+import io.github.chronosx88.kademliadht.JKademliaNode;
+import io.github.chronosx88.kademliadht.message.SimpleMessage;
+import io.github.chronosx88.kademliadht.node.KademliaId;
+import io.github.chronosx88.kademliadht.message.SimpleReceiver;
/**
* Test 1: Try sending a simple message between nodes
diff --git a/src/kademlia/simulations/Simulation.java b/src/main/java/io/github/chronosx88/kademliadht/simulations/Simulation.java
similarity index 81%
rename from src/kademlia/simulations/Simulation.java
rename to src/main/java/io/github/chronosx88/kademliadht/simulations/Simulation.java
index 9dc75de..499607c 100644
--- a/src/kademlia/simulations/Simulation.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/simulations/Simulation.java
@@ -1,4 +1,4 @@
-package kademlia.simulations;
+package io.github.chronosx88.kademliadht.simulations;
/**
* A class that specifies the structure for simulations.
diff --git a/src/kademlia/util/HashCalculator.java b/src/main/java/io/github/chronosx88/kademliadht/util/HashCalculator.java
similarity index 90%
rename from src/kademlia/util/HashCalculator.java
rename to src/main/java/io/github/chronosx88/kademliadht/util/HashCalculator.java
index 2bd2bab..94e9d22 100644
--- a/src/kademlia/util/HashCalculator.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/util/HashCalculator.java
@@ -1,4 +1,4 @@
-package kademlia.util;
+package io.github.chronosx88.kademliadht.util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
@@ -19,7 +19,7 @@ public class HashCalculator
*
* @return byte[20] The hashed string
*
- * @throws java.security.NoSuchAlgorithmException
+ * @throws NoSuchAlgorithmException
*/
public static byte[] sha1Hash(String toHash) throws NoSuchAlgorithmException
{
@@ -41,7 +41,7 @@ public class HashCalculator
*
* @return byte[20] The hashed string
*
- * @throws java.security.NoSuchAlgorithmException
+ * @throws NoSuchAlgorithmException
*/
public static byte[] sha1Hash(String toHash, String salt) throws NoSuchAlgorithmException
{
@@ -62,7 +62,7 @@ public class HashCalculator
*
* @return byte[16] The hashed string
*
- * @throws java.security.NoSuchAlgorithmException
+ * @throws NoSuchAlgorithmException
*/
public static byte[] md5Hash(String toHash) throws NoSuchAlgorithmException
{
@@ -84,7 +84,7 @@ public class HashCalculator
*
* @return byte[16] The hashed string
*
- * @throws java.security.NoSuchAlgorithmException
+ * @throws NoSuchAlgorithmException
*/
public static byte[] md5Hash(String toHash, String salt) throws NoSuchAlgorithmException
{
diff --git a/src/kademlia/util/RouteLengthChecker.java b/src/main/java/io/github/chronosx88/kademliadht/util/RouteLengthChecker.java
similarity index 95%
rename from src/kademlia/util/RouteLengthChecker.java
rename to src/main/java/io/github/chronosx88/kademliadht/util/RouteLengthChecker.java
index 6fc7d27..ff06d06 100644
--- a/src/kademlia/util/RouteLengthChecker.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/util/RouteLengthChecker.java
@@ -1,8 +1,8 @@
-package kademlia.util;
+package io.github.chronosx88.kademliadht.util;
import java.util.Collection;
import java.util.HashMap;
-import kademlia.node.Node;
+import io.github.chronosx88.kademliadht.node.Node;
/**
* Class that helps compute the route length taken to complete an operation.
diff --git a/src/kademlia/util/serializer/JsonDHTSerializer.java b/src/main/java/io/github/chronosx88/kademliadht/util/serializer/JsonDHTSerializer.java
similarity index 91%
rename from src/kademlia/util/serializer/JsonDHTSerializer.java
rename to src/main/java/io/github/chronosx88/kademliadht/util/serializer/JsonDHTSerializer.java
index ee3d956..d8d1fc0 100644
--- a/src/kademlia/util/serializer/JsonDHTSerializer.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/util/serializer/JsonDHTSerializer.java
@@ -1,4 +1,4 @@
-package kademlia.util.serializer;
+package io.github.chronosx88.kademliadht.util.serializer;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
@@ -11,9 +11,9 @@ import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.lang.reflect.Type;
import java.util.List;
-import kademlia.dht.DHT;
-import kademlia.dht.KademliaDHT;
-import kademlia.dht.KademliaStorageEntryMetadata;
+import io.github.chronosx88.kademliadht.dht.DHT;
+import io.github.chronosx88.kademliadht.dht.KademliaDHT;
+import io.github.chronosx88.kademliadht.dht.KademliaStorageEntryMetadata;
/**
* A KadSerializer that serializes DHT to JSON format
diff --git a/src/kademlia/util/serializer/JsonRoutingTableSerializer.java b/src/main/java/io/github/chronosx88/kademliadht/util/serializer/JsonRoutingTableSerializer.java
similarity index 90%
rename from src/kademlia/util/serializer/JsonRoutingTableSerializer.java
rename to src/main/java/io/github/chronosx88/kademliadht/util/serializer/JsonRoutingTableSerializer.java
index dbfb556..ce938b7 100644
--- a/src/kademlia/util/serializer/JsonRoutingTableSerializer.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/util/serializer/JsonRoutingTableSerializer.java
@@ -1,4 +1,4 @@
-package kademlia.util.serializer;
+package io.github.chronosx88.kademliadht.util.serializer;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
@@ -9,12 +9,12 @@ import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
-import kademlia.routing.JKademliaRoutingTable;
+import io.github.chronosx88.kademliadht.routing.JKademliaRoutingTable;
import java.lang.reflect.Type;
import java.util.List;
-import kademlia.KadConfiguration;
-import kademlia.routing.Contact;
-import kademlia.routing.KademliaRoutingTable;
+import io.github.chronosx88.kademliadht.KadConfiguration;
+import io.github.chronosx88.kademliadht.routing.Contact;
+import io.github.chronosx88.kademliadht.routing.KademliaRoutingTable;
/**
* A KadSerializer that serializes routing tables to JSON format
diff --git a/src/kademlia/util/serializer/JsonSerializer.java b/src/main/java/io/github/chronosx88/kademliadht/util/serializer/JsonSerializer.java
similarity index 96%
rename from src/kademlia/util/serializer/JsonSerializer.java
rename to src/main/java/io/github/chronosx88/kademliadht/util/serializer/JsonSerializer.java
index b59e605..a75e92a 100644
--- a/src/kademlia/util/serializer/JsonSerializer.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/util/serializer/JsonSerializer.java
@@ -1,4 +1,4 @@
-package kademlia.util.serializer;
+package io.github.chronosx88.kademliadht.util.serializer;
import com.google.gson.Gson;
import com.google.gson.stream.JsonReader;
diff --git a/src/kademlia/util/serializer/KadSerializer.java b/src/main/java/io/github/chronosx88/kademliadht/util/serializer/KadSerializer.java
similarity index 85%
rename from src/kademlia/util/serializer/KadSerializer.java
rename to src/main/java/io/github/chronosx88/kademliadht/util/serializer/KadSerializer.java
index 824a1d1..3bc2e38 100644
--- a/src/kademlia/util/serializer/KadSerializer.java
+++ b/src/main/java/io/github/chronosx88/kademliadht/util/serializer/KadSerializer.java
@@ -1,4 +1,4 @@
-package kademlia.util.serializer;
+package io.github.chronosx88.kademliadht.util.serializer;
import java.io.DataInputStream;
import java.io.DataOutputStream;
@@ -23,7 +23,7 @@ public interface KadSerializer
* @param data The data to write
* @param out The output Stream to write to
*
- * @throws java.io.IOException
+ * @throws IOException
*/
public void write(T data, DataOutputStream out) throws IOException;
@@ -34,8 +34,8 @@ public interface KadSerializer
*
* @return T Data of type T
*
- * @throws java.io.IOException
- * @throws java.lang.ClassNotFoundException
+ * @throws IOException
+ * @throws ClassNotFoundException
*/
public T read(DataInputStream in) throws IOException, ClassNotFoundException;
}