diff --git a/core-kotlin-2/.gitignore b/core-kotlin-2/.gitignore
deleted file mode 100644
index 0c017e8f8c..0000000000
--- a/core-kotlin-2/.gitignore
+++ /dev/null
@@ -1,14 +0,0 @@
-/bin/
-
-#ignore gradle
-.gradle/
-
-
-#ignore build and generated files
-build/
-node/
-out/
-
-#ignore installed node modules and package lock file
-node_modules/
-package-lock.json
diff --git a/core-kotlin-2/README.md b/core-kotlin-2/README.md
deleted file mode 100644
index 5249262fa3..0000000000
--- a/core-kotlin-2/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-## Core Kotlin
-
-This module contains articles about core Kotlin.
-
-### Relevant articles:
-
-- [Kotlin Scope Functions](https://www.baeldung.com/kotlin-scope-functions)
-- [Kotlin Annotations](https://www.baeldung.com/kotlin-annotations)
-- [Split a List into Parts in Kotlin](https://www.baeldung.com/kotlin-split-list-into-parts)
-- [String Comparison in Kotlin](https://www.baeldung.com/kotlin-string-comparison)
-- [Guide to JVM Platform Annotations in Kotlin](https://www.baeldung.com/kotlin-jvm-annotations)
-- [Finding an Element in a List Using Kotlin](https://www.baeldung.com/kotlin-finding-element-in-list)
-- [Kotlin Ternary Conditional Operator](https://www.baeldung.com/kotlin-ternary-conditional-operator)
-- More articles: [[<-- prev]](/core-kotlin)
diff --git a/core-kotlin-2/build.gradle b/core-kotlin-2/build.gradle
deleted file mode 100644
index 1c52172404..0000000000
--- a/core-kotlin-2/build.gradle
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-group 'com.baeldung.ktor'
-version '1.0-SNAPSHOT'
-
-
-buildscript {
- ext.kotlin_version = '1.3.30'
-
- repositories {
- mavenCentral()
- }
- dependencies {
-
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- }
-}
-
-apply plugin: 'java'
-apply plugin: 'kotlin'
-apply plugin: 'application'
-
-mainClassName = 'APIServer.kt'
-
-sourceCompatibility = 1.8
-compileKotlin { kotlinOptions.jvmTarget = "1.8" }
-compileTestKotlin { kotlinOptions.jvmTarget = "1.8" }
-
-repositories {
- mavenCentral()
- jcenter()
- maven { url "https://dl.bintray.com/kotlin/ktor" }
-}
-sourceSets {
- main{
- kotlin{
- srcDirs 'com/baeldung/ktor'
- }
- }
-}
-
-test {
- useJUnitPlatform()
- testLogging {
- events "passed", "skipped", "failed"
- }
-}
-
-dependencies {
- implementation "ch.qos.logback:logback-classic:1.2.1"
- implementation "org.jetbrains.kotlin:kotlin-stdlib:${kotlin_version}"
- testImplementation 'org.junit.jupiter:junit-jupiter:5.4.2'
- testImplementation 'junit:junit:4.12'
- testImplementation 'org.assertj:assertj-core:3.12.2'
- testImplementation 'org.mockito:mockito-core:2.27.0'
- testImplementation "org.jetbrains.kotlin:kotlin-test:${kotlin_version}"
- testImplementation "org.jetbrains.kotlin:kotlin-test-junit5:${kotlin_version}"
-}
diff --git a/core-kotlin-2/gradle/wrapper/gradle-wrapper.jar b/core-kotlin-2/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 5c2d1cf016..0000000000
Binary files a/core-kotlin-2/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/core-kotlin-2/gradle/wrapper/gradle-wrapper.properties b/core-kotlin-2/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index 5f1b1201a7..0000000000
--- a/core-kotlin-2/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.4-bin.zip
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
diff --git a/core-kotlin-2/gradlew b/core-kotlin-2/gradlew
deleted file mode 100644
index b0d6d0ab5d..0000000000
--- a/core-kotlin-2/gradlew
+++ /dev/null
@@ -1,188 +0,0 @@
-#!/usr/bin/env sh
-
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-##############################################################################
-##
-## 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='"-Xmx64m" "-Xms64m"'
-
-# 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/core-kotlin-2/gradlew.bat b/core-kotlin-2/gradlew.bat
deleted file mode 100644
index 9991c50326..0000000000
--- a/core-kotlin-2/gradlew.bat
+++ /dev/null
@@ -1,100 +0,0 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem http://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
-@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="-Xmx64m" "-Xms64m"
-
-@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/core-kotlin-2/pom.xml b/core-kotlin-2/pom.xml
deleted file mode 100644
index be2f5fa68f..0000000000
--- a/core-kotlin-2/pom.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-
-
- 4.0.0
- core-kotlin-2
- core-kotlin-2
- jar
-
-
- com.baeldung
- parent-kotlin
- 1.0.0-SNAPSHOT
- ../parent-kotlin
-
-
-
-
- org.jetbrains.kotlin
- kotlin-stdlib-jdk8
- ${kotlin.version}
-
-
- org.junit.jupiter
- junit-jupiter
- ${junit.jupiter.version}
- test
-
-
- org.mockito
- mockito-core
- ${mockito.version}
- test
-
-
- net.bytebuddy
- byte-buddy
- ${byte-buddy.version}
- test
-
-
- org.assertj
- assertj-core
- ${assertj.version}
- test
-
-
- org.jetbrains.kotlin
- kotlin-test
- ${kotlin.version}
- test
-
-
- org.jetbrains.kotlin
- kotlin-test-junit5
- ${kotlin.version}
- test
-
-
-
-
-
-
- org.jetbrains.kotlin
- kotlin-maven-plugin
- ${kotlin.version}
-
-
- compile
- compile
-
- compile
-
-
-
- test-compile
- test-compile
-
- test-compile
-
-
-
-
- 1.8
-
-
-
-
-
-
- 1.3.30
- 5.4.2
- 2.27.0
- 1.9.12
- 3.10.0
-
-
-
diff --git a/core-kotlin-2/resources/logback.xml b/core-kotlin-2/resources/logback.xml
deleted file mode 100644
index 9452207268..0000000000
--- a/core-kotlin-2/resources/logback.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
- %d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/core-kotlin-2/settings.gradle b/core-kotlin-2/settings.gradle
deleted file mode 100644
index c91c993971..0000000000
--- a/core-kotlin-2/settings.gradle
+++ /dev/null
@@ -1,2 +0,0 @@
-rootProject.name = 'KtorWithKotlin'
-
diff --git a/core-kotlin-2/src/main/resources/logback.xml b/core-kotlin-2/src/main/resources/logback.xml
deleted file mode 100644
index 7d900d8ea8..0000000000
--- a/core-kotlin-2/src/main/resources/logback.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/core-kotlin-2/src/test/resources/Kotlin.in b/core-kotlin-2/src/test/resources/Kotlin.in
deleted file mode 100644
index d140d4429e..0000000000
--- a/core-kotlin-2/src/test/resources/Kotlin.in
+++ /dev/null
@@ -1,5 +0,0 @@
-Hello to Kotlin. Its:
-1. Concise
-2. Safe
-3. Interoperable
-4. Tool-friendly
\ No newline at end of file
diff --git a/core-kotlin-2/src/test/resources/Kotlin.out b/core-kotlin-2/src/test/resources/Kotlin.out
deleted file mode 100644
index 63d15d2528..0000000000
--- a/core-kotlin-2/src/test/resources/Kotlin.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Kotlin
-Concise, Safe, Interoperable, Tool-friendly
\ No newline at end of file
diff --git a/core-kotlin-modules/core-kotlin-2/README.md b/core-kotlin-modules/core-kotlin-2/README.md
new file mode 100644
index 0000000000..11593062c5
--- /dev/null
+++ b/core-kotlin-modules/core-kotlin-2/README.md
@@ -0,0 +1,8 @@
+## Core Kotlin 2
+
+This module contains articles about Kotlin core features.
+
+### Relevant articles:
+- [Working with Dates in Kotlin](https://www.baeldung.com/kotlin-dates)
+- [Kotlin Ternary Conditional Operator](https://www.baeldung.com/kotlin-ternary-conditional-operator)
+- [[<-- Prev]](/core-kotlin-modules/core-kotlin)
diff --git a/core-kotlin-modules/core-kotlin-2/pom.xml b/core-kotlin-modules/core-kotlin-2/pom.xml
new file mode 100644
index 0000000000..ae6e2d175a
--- /dev/null
+++ b/core-kotlin-modules/core-kotlin-2/pom.xml
@@ -0,0 +1,25 @@
+
+
+ 4.0.0
+ core-kotlin-2
+ core-kotlin-2
+ jar
+
+
+ com.baeldung.core-kotlin-modules
+ core-kotlin-modules
+ 1.0.0-SNAPSHOT
+
+
+
+
+ org.assertj
+ assertj-core
+ ${assertj.version}
+ test
+
+
+
+
\ No newline at end of file
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/datetime/UseDuration.kt b/core-kotlin-modules/core-kotlin-2/src/main/kotlin/com/baeldung/dates/datetime/UseDuration.kt
similarity index 90%
rename from core-kotlin/src/main/kotlin/com/baeldung/datetime/UseDuration.kt
rename to core-kotlin-modules/core-kotlin-2/src/main/kotlin/com/baeldung/dates/datetime/UseDuration.kt
index 40fb161c08..922c3a1988 100644
--- a/core-kotlin/src/main/kotlin/com/baeldung/datetime/UseDuration.kt
+++ b/core-kotlin-modules/core-kotlin-2/src/main/kotlin/com/baeldung/dates/datetime/UseDuration.kt
@@ -1,4 +1,4 @@
-package com.baeldung.datetime
+package com.baeldung.dates.datetime
import java.time.Duration
import java.time.LocalTime
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/datetime/UseLocalDate.kt b/core-kotlin-modules/core-kotlin-2/src/main/kotlin/com/baeldung/dates/datetime/UseLocalDate.kt
similarity index 96%
rename from core-kotlin/src/main/kotlin/com/baeldung/datetime/UseLocalDate.kt
rename to core-kotlin-modules/core-kotlin-2/src/main/kotlin/com/baeldung/dates/datetime/UseLocalDate.kt
index 250c071bbe..81d50a70b2 100644
--- a/core-kotlin/src/main/kotlin/com/baeldung/datetime/UseLocalDate.kt
+++ b/core-kotlin-modules/core-kotlin-2/src/main/kotlin/com/baeldung/dates/datetime/UseLocalDate.kt
@@ -1,4 +1,4 @@
-package com.baeldung.datetime
+package com.baeldung.dates.datetime
import java.time.DayOfWeek
import java.time.LocalDate
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/datetime/UseLocalDateTime.kt b/core-kotlin-modules/core-kotlin-2/src/main/kotlin/com/baeldung/dates/datetime/UseLocalDateTime.kt
similarity index 84%
rename from core-kotlin/src/main/kotlin/com/baeldung/datetime/UseLocalDateTime.kt
rename to core-kotlin-modules/core-kotlin-2/src/main/kotlin/com/baeldung/dates/datetime/UseLocalDateTime.kt
index ab7bbfcee1..5d0eb6a911 100644
--- a/core-kotlin/src/main/kotlin/com/baeldung/datetime/UseLocalDateTime.kt
+++ b/core-kotlin-modules/core-kotlin-2/src/main/kotlin/com/baeldung/dates/datetime/UseLocalDateTime.kt
@@ -1,4 +1,4 @@
-package com.baeldung.datetime
+package com.baeldung.dates.datetime
import java.time.LocalDateTime
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/datetime/UseLocalTime.kt b/core-kotlin-modules/core-kotlin-2/src/main/kotlin/com/baeldung/dates/datetime/UseLocalTime.kt
similarity index 92%
rename from core-kotlin/src/main/kotlin/com/baeldung/datetime/UseLocalTime.kt
rename to core-kotlin-modules/core-kotlin-2/src/main/kotlin/com/baeldung/dates/datetime/UseLocalTime.kt
index 152515621f..24402467e8 100644
--- a/core-kotlin/src/main/kotlin/com/baeldung/datetime/UseLocalTime.kt
+++ b/core-kotlin-modules/core-kotlin-2/src/main/kotlin/com/baeldung/dates/datetime/UseLocalTime.kt
@@ -1,6 +1,5 @@
-package com.baeldung.datetime
+package com.baeldung.dates.datetime
-import java.time.LocalDateTime
import java.time.LocalTime
import java.time.temporal.ChronoUnit
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/datetime/UsePeriod.kt b/core-kotlin-modules/core-kotlin-2/src/main/kotlin/com/baeldung/dates/datetime/UsePeriod.kt
similarity index 90%
rename from core-kotlin/src/main/kotlin/com/baeldung/datetime/UsePeriod.kt
rename to core-kotlin-modules/core-kotlin-2/src/main/kotlin/com/baeldung/dates/datetime/UsePeriod.kt
index df66a3d546..d15e02eb37 100644
--- a/core-kotlin/src/main/kotlin/com/baeldung/datetime/UsePeriod.kt
+++ b/core-kotlin-modules/core-kotlin-2/src/main/kotlin/com/baeldung/dates/datetime/UsePeriod.kt
@@ -1,4 +1,4 @@
-package com.baeldung.datetime
+package com.baeldung.dates.datetime
import java.time.LocalDate
import java.time.Period
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/datetime/UseZonedDateTime.kt b/core-kotlin-modules/core-kotlin-2/src/main/kotlin/com/baeldung/dates/datetime/UseZonedDateTime.kt
similarity index 88%
rename from core-kotlin/src/main/kotlin/com/baeldung/datetime/UseZonedDateTime.kt
rename to core-kotlin-modules/core-kotlin-2/src/main/kotlin/com/baeldung/dates/datetime/UseZonedDateTime.kt
index fd1838bd2d..e2f3a207c4 100644
--- a/core-kotlin/src/main/kotlin/com/baeldung/datetime/UseZonedDateTime.kt
+++ b/core-kotlin-modules/core-kotlin-2/src/main/kotlin/com/baeldung/dates/datetime/UseZonedDateTime.kt
@@ -1,4 +1,4 @@
-package com.baeldung.datetime
+package com.baeldung.dates.datetime
import java.time.LocalDateTime
import java.time.ZoneId
diff --git a/kotlin-libraries/src/test/kotlin/com/baeldung/kotlin/dates/CreateDateUnitTest.kt b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/CreateDateUnitTest.kt
similarity index 96%
rename from kotlin-libraries/src/test/kotlin/com/baeldung/kotlin/dates/CreateDateUnitTest.kt
rename to core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/CreateDateUnitTest.kt
index d52a2f0f19..af5e08ea2d 100644
--- a/kotlin-libraries/src/test/kotlin/com/baeldung/kotlin/dates/CreateDateUnitTest.kt
+++ b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/CreateDateUnitTest.kt
@@ -1,34 +1,34 @@
-package com.baeldung.kotlin.dates
-
-import org.assertj.core.api.Assertions.assertThat
-import org.junit.jupiter.api.Test
-import java.time.LocalDate
-import java.time.format.DateTimeFormatter
-
-class CreateDateUnitTest {
-
- @Test
- fun givenString_whenDefaultFormat_thenCreated() {
-
- var date = LocalDate.parse("2018-12-31")
-
- assertThat(date).isEqualTo("2018-12-31")
- }
-
- @Test
- fun givenString_whenCustomFormat_thenCreated() {
-
- var formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy")
- var date = LocalDate.parse("31-12-2018", formatter)
-
- assertThat(date).isEqualTo("2018-12-31")
- }
-
- @Test
- fun givenYMD_whenUsingOf_thenCreated() {
- var date = LocalDate.of(2018, 12, 31)
-
- assertThat(date).isEqualTo("2018-12-31")
- }
-
+package com.baeldung.kotlin.dates
+
+import org.assertj.core.api.Assertions.assertThat
+import org.junit.jupiter.api.Test
+import java.time.LocalDate
+import java.time.format.DateTimeFormatter
+
+class CreateDateUnitTest {
+
+ @Test
+ fun givenString_whenDefaultFormat_thenCreated() {
+
+ var date = LocalDate.parse("2018-12-31")
+
+ assertThat(date).isEqualTo("2018-12-31")
+ }
+
+ @Test
+ fun givenString_whenCustomFormat_thenCreated() {
+
+ var formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy")
+ var date = LocalDate.parse("31-12-2018", formatter)
+
+ assertThat(date).isEqualTo("2018-12-31")
+ }
+
+ @Test
+ fun givenYMD_whenUsingOf_thenCreated() {
+ var date = LocalDate.of(2018, 12, 31)
+
+ assertThat(date).isEqualTo("2018-12-31")
+ }
+
}
\ No newline at end of file
diff --git a/kotlin-libraries/src/test/kotlin/com/baeldung/kotlin/dates/ExtractDateUnitTest.kt b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/ExtractDateUnitTest.kt
similarity index 96%
rename from kotlin-libraries/src/test/kotlin/com/baeldung/kotlin/dates/ExtractDateUnitTest.kt
rename to core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/ExtractDateUnitTest.kt
index ef3841752b..d297f4b6c3 100644
--- a/kotlin-libraries/src/test/kotlin/com/baeldung/kotlin/dates/ExtractDateUnitTest.kt
+++ b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/ExtractDateUnitTest.kt
@@ -1,29 +1,29 @@
-package com.baeldung.kotlin.dates
-
-import org.assertj.core.api.Assertions.assertThat
-import org.junit.jupiter.api.Test
-import java.time.DayOfWeek
-import java.time.LocalDate
-import java.time.Month
-
-class ExtractDateUnitTest {
-
- @Test
- fun givenDate_thenExtractedYMD() {
- var date = LocalDate.parse("2018-12-31")
-
- assertThat(date.year).isEqualTo(2018)
- assertThat(date.month).isEqualTo(Month.DECEMBER)
- assertThat(date.dayOfMonth).isEqualTo(31)
- }
-
- @Test
- fun givenDate_thenExtractedEraDowDoy() {
- var date = LocalDate.parse("2018-12-31")
-
- assertThat(date.era.toString()).isEqualTo("CE")
- assertThat(date.dayOfWeek).isEqualTo(DayOfWeek.MONDAY)
- assertThat(date.dayOfYear).isEqualTo(365)
- }
-
+package com.baeldung.kotlin.dates
+
+import org.assertj.core.api.Assertions.assertThat
+import org.junit.jupiter.api.Test
+import java.time.DayOfWeek
+import java.time.LocalDate
+import java.time.Month
+
+class ExtractDateUnitTest {
+
+ @Test
+ fun givenDate_thenExtractedYMD() {
+ var date = LocalDate.parse("2018-12-31")
+
+ assertThat(date.year).isEqualTo(2018)
+ assertThat(date.month).isEqualTo(Month.DECEMBER)
+ assertThat(date.dayOfMonth).isEqualTo(31)
+ }
+
+ @Test
+ fun givenDate_thenExtractedEraDowDoy() {
+ var date = LocalDate.parse("2018-12-31")
+
+ assertThat(date.era.toString()).isEqualTo("CE")
+ assertThat(date.dayOfWeek).isEqualTo(DayOfWeek.MONDAY)
+ assertThat(date.dayOfYear).isEqualTo(365)
+ }
+
}
\ No newline at end of file
diff --git a/kotlin-libraries/src/test/kotlin/com/baeldung/kotlin/dates/FormatDateUnitTest.kt b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/FormatDateUnitTest.kt
similarity index 96%
rename from kotlin-libraries/src/test/kotlin/com/baeldung/kotlin/dates/FormatDateUnitTest.kt
rename to core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/FormatDateUnitTest.kt
index 11ff6ec9f0..f7ca414aee 100644
--- a/kotlin-libraries/src/test/kotlin/com/baeldung/kotlin/dates/FormatDateUnitTest.kt
+++ b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/FormatDateUnitTest.kt
@@ -1,29 +1,29 @@
-package com.baeldung.kotlin.dates
-
-import org.assertj.core.api.Assertions.assertThat
-import org.junit.jupiter.api.Test
-import java.time.LocalDate
-import java.time.format.DateTimeFormatter
-
-class FormatDateUnitTest {
-
- @Test
- fun givenDate_whenDefaultFormat_thenFormattedString() {
-
- var date = LocalDate.parse("2018-12-31")
-
- assertThat(date.toString()).isEqualTo("2018-12-31")
- }
-
- @Test
- fun givenDate_whenCustomFormat_thenFormattedString() {
-
- var date = LocalDate.parse("2018-12-31")
-
- var formatter = DateTimeFormatter.ofPattern("dd-MMMM-yyyy")
- var formattedDate = date.format(formatter)
-
- assertThat(formattedDate).isEqualTo("31-December-2018")
- }
-
+package com.baeldung.kotlin.dates
+
+import org.assertj.core.api.Assertions.assertThat
+import org.junit.jupiter.api.Test
+import java.time.LocalDate
+import java.time.format.DateTimeFormatter
+
+class FormatDateUnitTest {
+
+ @Test
+ fun givenDate_whenDefaultFormat_thenFormattedString() {
+
+ var date = LocalDate.parse("2018-12-31")
+
+ assertThat(date.toString()).isEqualTo("2018-12-31")
+ }
+
+ @Test
+ fun givenDate_whenCustomFormat_thenFormattedString() {
+
+ var date = LocalDate.parse("2018-12-31")
+
+ var formatter = DateTimeFormatter.ofPattern("dd-MMMM-yyyy")
+ var formattedDate = date.format(formatter)
+
+ assertThat(formattedDate).isEqualTo("31-December-2018")
+ }
+
}
\ No newline at end of file
diff --git a/kotlin-libraries/src/test/kotlin/com/baeldung/kotlin/dates/PeriodDateUnitTest.kt b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/PeriodDateUnitTest.kt
similarity index 96%
rename from kotlin-libraries/src/test/kotlin/com/baeldung/kotlin/dates/PeriodDateUnitTest.kt
rename to core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/PeriodDateUnitTest.kt
index e6b66634d3..e8ca2971e8 100644
--- a/kotlin-libraries/src/test/kotlin/com/baeldung/kotlin/dates/PeriodDateUnitTest.kt
+++ b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/PeriodDateUnitTest.kt
@@ -1,48 +1,48 @@
-package com.baeldung.kotlin.dates
-
-import org.assertj.core.api.Assertions.assertThat
-import org.junit.jupiter.api.Test
-import java.time.LocalDate
-import java.time.Period
-
-class PeriodDateUnitTest {
-
- @Test
- fun givenYMD_thenCreatePeriod() {
- var period = Period.of(1, 2, 3)
-
- assertThat(period.toString()).isEqualTo("P1Y2M3D")
- }
-
- @Test
- fun givenPeriod_whenAdd_thenModifiedDate() {
- var period = Period.of(1, 2, 3)
-
- var date = LocalDate.of(2018, 6, 25)
- var modifiedDate = date.plus(period)
-
- assertThat(modifiedDate).isEqualTo("2019-08-28")
- }
-
- @Test
- fun givenPeriod_whenSubtracted_thenModifiedDate() {
- var period = Period.of(1, 2, 3)
-
- var date = LocalDate.of(2018, 6, 25)
- var modifiedDate = date.minus(period)
-
- assertThat(modifiedDate).isEqualTo("2017-04-22")
- }
-
- @Test
- fun givenTwoDate_whenUsingBetween_thenDiffOfDates() {
-
- var date1 = LocalDate.parse("2018-06-25")
- var date2 = LocalDate.parse("2018-12-25")
-
- var period = Period.between(date1, date2)
-
- assertThat(period.toString()).isEqualTo("P6M")
- }
-
+package com.baeldung.kotlin.dates
+
+import org.assertj.core.api.Assertions.assertThat
+import org.junit.jupiter.api.Test
+import java.time.LocalDate
+import java.time.Period
+
+class PeriodDateUnitTest {
+
+ @Test
+ fun givenYMD_thenCreatePeriod() {
+ var period = Period.of(1, 2, 3)
+
+ assertThat(period.toString()).isEqualTo("P1Y2M3D")
+ }
+
+ @Test
+ fun givenPeriod_whenAdd_thenModifiedDate() {
+ var period = Period.of(1, 2, 3)
+
+ var date = LocalDate.of(2018, 6, 25)
+ var modifiedDate = date.plus(period)
+
+ assertThat(modifiedDate).isEqualTo("2019-08-28")
+ }
+
+ @Test
+ fun givenPeriod_whenSubtracted_thenModifiedDate() {
+ var period = Period.of(1, 2, 3)
+
+ var date = LocalDate.of(2018, 6, 25)
+ var modifiedDate = date.minus(period)
+
+ assertThat(modifiedDate).isEqualTo("2017-04-22")
+ }
+
+ @Test
+ fun givenTwoDate_whenUsingBetween_thenDiffOfDates() {
+
+ var date1 = LocalDate.parse("2018-06-25")
+ var date2 = LocalDate.parse("2018-12-25")
+
+ var period = Period.between(date1, date2)
+
+ assertThat(period.toString()).isEqualTo("P6M")
+ }
+
}
\ No newline at end of file
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/datetime/UseLocalDateTimeUnitTest.kt b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/datetime/UseLocalDateTimeUnitTest.kt
similarity index 92%
rename from core-kotlin/src/test/kotlin/com/baeldung/kotlin/datetime/UseLocalDateTimeUnitTest.kt
rename to core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/datetime/UseLocalDateTimeUnitTest.kt
index 8f9f8374ed..f3615a527c 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/datetime/UseLocalDateTimeUnitTest.kt
+++ b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/datetime/UseLocalDateTimeUnitTest.kt
@@ -1,14 +1,12 @@
package com.baeldung.kotlin.datetime
-import com.baeldung.datetime.UseLocalDateTime
+import com.baeldung.dates.datetime.UseLocalDateTime
+import org.junit.Assert.assertEquals
+import org.junit.Test
import java.time.LocalDate
import java.time.LocalTime
import java.time.Month
-import org.junit.Test
-
-import org.junit.Assert.assertEquals
-
class UseLocalDateTimeUnitTest {
var useLocalDateTime = UseLocalDateTime()
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/datetime/UseLocalDateUnitTest.kt b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/datetime/UseLocalDateUnitTest.kt
similarity index 97%
rename from core-kotlin/src/test/kotlin/com/baeldung/kotlin/datetime/UseLocalDateUnitTest.kt
rename to core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/datetime/UseLocalDateUnitTest.kt
index ac42e91c6c..e6353c9dab 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/datetime/UseLocalDateUnitTest.kt
+++ b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/datetime/UseLocalDateUnitTest.kt
@@ -1,6 +1,6 @@
package com.baeldung.kotlin.datetime
-import com.baeldung.datetime.UseLocalDate
+import com.baeldung.dates.datetime.UseLocalDate
import org.junit.Assert
import org.junit.Test
import java.time.DayOfWeek
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/datetime/UseLocalTimeUnitTest.kt b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/datetime/UseLocalTimeUnitTest.kt
similarity index 95%
rename from core-kotlin/src/test/kotlin/com/baeldung/kotlin/datetime/UseLocalTimeUnitTest.kt
rename to core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/datetime/UseLocalTimeUnitTest.kt
index 83fc57f850..1afe03ca48 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/datetime/UseLocalTimeUnitTest.kt
+++ b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/datetime/UseLocalTimeUnitTest.kt
@@ -1,10 +1,9 @@
package com.baeldung.kotlin.datetime
-import com.baeldung.datetime.UseLocalTime
-import java.time.LocalTime
-
+import com.baeldung.dates.datetime.UseLocalTime
import org.junit.Assert
import org.junit.Test
+import java.time.LocalTime
class UseLocalTimeUnitTest {
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/datetime/UsePeriodUnitTest.kt b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/datetime/UsePeriodUnitTest.kt
similarity index 94%
rename from core-kotlin/src/test/kotlin/com/baeldung/kotlin/datetime/UsePeriodUnitTest.kt
rename to core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/datetime/UsePeriodUnitTest.kt
index 48be72feb0..36e1e5533a 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/datetime/UsePeriodUnitTest.kt
+++ b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/datetime/UsePeriodUnitTest.kt
@@ -1,11 +1,10 @@
package com.baeldung.kotlin.datetime
-import com.baeldung.datetime.UsePeriod
-import java.time.LocalDate
-import java.time.Period
-
+import com.baeldung.dates.datetime.UsePeriod
import org.junit.Assert
import org.junit.Test
+import java.time.LocalDate
+import java.time.Period
class UsePeriodUnitTest {
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/datetime/UseZonedDateTimeUnitTest.kt b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/datetime/UseZonedDateTimeUnitTest.kt
similarity index 90%
rename from core-kotlin/src/test/kotlin/com/baeldung/kotlin/datetime/UseZonedDateTimeUnitTest.kt
rename to core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/datetime/UseZonedDateTimeUnitTest.kt
index a9d7d973ef..aa2cdaa4f3 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/datetime/UseZonedDateTimeUnitTest.kt
+++ b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/dates/datetime/UseZonedDateTimeUnitTest.kt
@@ -1,6 +1,6 @@
package com.baeldung.kotlin.datetime
-import com.baeldung.datetime.UseZonedDateTime
+import com.baeldung.dates.datetime.UseZonedDateTime
import org.junit.Assert
import org.junit.Test
import java.time.LocalDateTime
diff --git a/core-kotlin-2/src/test/kotlin/com/baeldung/sequences/SequencesTest.kt b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/sequences/SequencesTest.kt
similarity index 100%
rename from core-kotlin-2/src/test/kotlin/com/baeldung/sequences/SequencesTest.kt
rename to core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/sequences/SequencesTest.kt
diff --git a/core-kotlin-2/src/test/kotlin/com/baeldung/ternary/TernaryOperatorTest.kt b/core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/ternary/TernaryOperatorTest.kt
similarity index 100%
rename from core-kotlin-2/src/test/kotlin/com/baeldung/ternary/TernaryOperatorTest.kt
rename to core-kotlin-modules/core-kotlin-2/src/test/kotlin/com/baeldung/ternary/TernaryOperatorTest.kt
diff --git a/core-kotlin-modules/core-kotlin-lang-oop-2/README.md b/core-kotlin-modules/core-kotlin-lang-oop-2/README.md
index 83d8f6f38a..27536273dc 100644
--- a/core-kotlin-modules/core-kotlin-lang-oop-2/README.md
+++ b/core-kotlin-modules/core-kotlin-lang-oop-2/README.md
@@ -1,4 +1,4 @@
-## Core Kotlin
+## Core Kotlin Lang OOP
This module contains articles about Object-Oriented Programming in Kotlin
@@ -7,4 +7,4 @@ This module contains articles about Object-Oriented Programming in Kotlin
- [Generics in Kotlin](https://www.baeldung.com/kotlin-generics)
- [Delegated Properties in Kotlin](https://www.baeldung.com/kotlin-delegated-properties)
- [Delegation Pattern in Kotlin](https://www.baeldung.com/kotlin-delegation-pattern)
-- [[<-- Prev]](/core-kotlin-lang-oop)
+- [[<-- Prev]](/core-kotlin-modules/core-kotlin-lang-oop)
diff --git a/core-kotlin-modules/core-kotlin-lang-oop/README.md b/core-kotlin-modules/core-kotlin-lang-oop/README.md
index 461635f1b5..0c1aeb7850 100644
--- a/core-kotlin-modules/core-kotlin-lang-oop/README.md
+++ b/core-kotlin-modules/core-kotlin-lang-oop/README.md
@@ -14,4 +14,4 @@ This module contains articles about Object-Oriented Programming in Kotlin
- [Guide to Kotlin Interfaces](https://www.baeldung.com/kotlin-interfaces)
- [Inline Classes in Kotlin](https://www.baeldung.com/kotlin-inline-classes)
- [Static Methods Behavior in Kotlin](https://www.baeldung.com/kotlin-static-methods)
-- More articles: [[next -->]](/core-kotlin-lang-oop-2)
+- More articles: [[next -->]](/core-kotlin-modules/core-kotlin-lang-oop-2)
diff --git a/core-kotlin-modules/core-kotlin/README.md b/core-kotlin-modules/core-kotlin/README.md
new file mode 100644
index 0000000000..8815b0fadd
--- /dev/null
+++ b/core-kotlin-modules/core-kotlin/README.md
@@ -0,0 +1,16 @@
+## Core Kotlin
+
+This module contains articles about Kotlin core features.
+
+### Relevant articles:
+- [Introduction to the Kotlin Language](https://www.baeldung.com/kotlin)
+- [Kotlin Java Interoperability](https://www.baeldung.com/kotlin-java-interoperability)
+- [Get a Random Number in Kotlin](https://www.baeldung.com/kotlin-random-number)
+- [Create a Java and Kotlin Project with Maven](https://www.baeldung.com/kotlin-maven-java-project)
+- [Guide to Sorting in Kotlin](https://www.baeldung.com/kotlin-sort)
+- [Creational Design Patterns in Kotlin: Builder](https://www.baeldung.com/kotlin-builder-pattern)
+- [Kotlin Scope Functions](https://www.baeldung.com/kotlin-scope-functions)
+- [Implementing a Binary Tree in Kotlin](https://www.baeldung.com/kotlin-binary-tree)
+- [JUnit 5 for Kotlin Developers](https://www.baeldung.com/junit-5-kotlin)
+- [Converting Kotlin Data Class from JSON using GSON](https://www.baeldung.com/kotlin-json-convert-data-class)
+- [[More --> ]](/core-kotlin-modules/core-kotlin-2)
diff --git a/core-kotlin-modules/core-kotlin/pom.xml b/core-kotlin-modules/core-kotlin/pom.xml
new file mode 100644
index 0000000000..6e36b7c8ef
--- /dev/null
+++ b/core-kotlin-modules/core-kotlin/pom.xml
@@ -0,0 +1,29 @@
+
+
+ 4.0.0
+ core-kotlin
+ core-kotlin
+ jar
+
+
+ com.baeldung.core-kotlin-modules
+ core-kotlin-modules
+ 1.0.0-SNAPSHOT
+
+
+
+
+ org.junit.platform
+ junit-platform-runner
+ ${junit.platform.version}
+ test
+
+
+
+
+ 1.1.1
+
+
+
\ No newline at end of file
diff --git a/core-kotlin/src/main/java/com/baeldung/java/ArrayExample.java b/core-kotlin-modules/core-kotlin/src/main/java/com/baeldung/interoperability/ArrayExample.java
similarity index 91%
rename from core-kotlin/src/main/java/com/baeldung/java/ArrayExample.java
rename to core-kotlin-modules/core-kotlin/src/main/java/com/baeldung/interoperability/ArrayExample.java
index ef91db517b..93b9a3984a 100644
--- a/core-kotlin/src/main/java/com/baeldung/java/ArrayExample.java
+++ b/core-kotlin-modules/core-kotlin/src/main/java/com/baeldung/interoperability/ArrayExample.java
@@ -1,4 +1,4 @@
-package com.baeldung.java;
+package com.baeldung.interoperability;
import java.io.File;
import java.io.FileReader;
diff --git a/core-kotlin/src/main/java/com/baeldung/java/Customer.java b/core-kotlin-modules/core-kotlin/src/main/java/com/baeldung/interoperability/Customer.java
similarity index 91%
rename from core-kotlin/src/main/java/com/baeldung/java/Customer.java
rename to core-kotlin-modules/core-kotlin/src/main/java/com/baeldung/interoperability/Customer.java
index 0156bf7b44..4a070a0f97 100644
--- a/core-kotlin/src/main/java/com/baeldung/java/Customer.java
+++ b/core-kotlin-modules/core-kotlin/src/main/java/com/baeldung/interoperability/Customer.java
@@ -1,4 +1,4 @@
-package com.baeldung.java;
+package com.baeldung.interoperability;
public class Customer {
diff --git a/core-kotlin/src/main/java/com/baeldung/java/StringUtils.java b/core-kotlin-modules/core-kotlin/src/main/java/com/baeldung/introduction/StringUtils.java
similarity index 77%
rename from core-kotlin/src/main/java/com/baeldung/java/StringUtils.java
rename to core-kotlin-modules/core-kotlin/src/main/java/com/baeldung/introduction/StringUtils.java
index f405924cdf..1c477ce039 100644
--- a/core-kotlin/src/main/java/com/baeldung/java/StringUtils.java
+++ b/core-kotlin-modules/core-kotlin/src/main/java/com/baeldung/introduction/StringUtils.java
@@ -1,4 +1,4 @@
-package com.baeldung.java;
+package com.baeldung.introduction;
public class StringUtils {
public static String toUpperCase(String name) {
diff --git a/core-kotlin/src/main/java/com/baeldung/mavenjavakotlin/Application.java b/core-kotlin-modules/core-kotlin/src/main/java/com/baeldung/mavenjavakotlin/Application.java
similarity index 91%
rename from core-kotlin/src/main/java/com/baeldung/mavenjavakotlin/Application.java
rename to core-kotlin-modules/core-kotlin/src/main/java/com/baeldung/mavenjavakotlin/Application.java
index e2cc0f1e01..ac933d6228 100644
--- a/core-kotlin/src/main/java/com/baeldung/mavenjavakotlin/Application.java
+++ b/core-kotlin-modules/core-kotlin/src/main/java/com/baeldung/mavenjavakotlin/Application.java
@@ -1,7 +1,6 @@
package com.baeldung.mavenjavakotlin;
import com.baeldung.mavenjavakotlin.services.JavaService;
-import com.baeldung.mavenjavakotlin.services.KotlinService;
public class Application {
diff --git a/core-kotlin/src/main/java/com/baeldung/mavenjavakotlin/services/JavaService.java b/core-kotlin-modules/core-kotlin/src/main/java/com/baeldung/mavenjavakotlin/services/JavaService.java
similarity index 100%
rename from core-kotlin/src/main/java/com/baeldung/mavenjavakotlin/services/JavaService.java
rename to core-kotlin-modules/core-kotlin/src/main/java/com/baeldung/mavenjavakotlin/services/JavaService.java
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/datastructures/Main.kt b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/binarytree/Main.kt
similarity index 93%
rename from core-kotlin/src/main/kotlin/com/baeldung/datastructures/Main.kt
rename to core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/binarytree/Main.kt
index 4fd8aa27c7..eee10fbd8b 100644
--- a/core-kotlin/src/main/kotlin/com/baeldung/datastructures/Main.kt
+++ b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/binarytree/Main.kt
@@ -1,4 +1,4 @@
-package com.baeldung.datastructures
+package com.baeldung.binarytree
/**
* Example of how to use the {@link Node} class.
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/datastructures/Node.kt b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/binarytree/Node.kt
similarity index 99%
rename from core-kotlin/src/main/kotlin/com/baeldung/datastructures/Node.kt
rename to core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/binarytree/Node.kt
index b81afe1e4c..77bb98f828 100644
--- a/core-kotlin/src/main/kotlin/com/baeldung/datastructures/Node.kt
+++ b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/binarytree/Node.kt
@@ -1,4 +1,4 @@
-package com.baeldung.datastructures
+package com.baeldung.binarytree
/**
* An ADT for a binary search tree.
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/builder/FoodOrder.kt b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/builder/FoodOrder.kt
similarity index 100%
rename from core-kotlin/src/main/kotlin/com/baeldung/builder/FoodOrder.kt
rename to core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/builder/FoodOrder.kt
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/builder/FoodOrderApply.kt b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/builder/FoodOrderApply.kt
similarity index 100%
rename from core-kotlin/src/main/kotlin/com/baeldung/builder/FoodOrderApply.kt
rename to core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/builder/FoodOrderApply.kt
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/builder/FoodOrderNamed.kt b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/builder/FoodOrderNamed.kt
similarity index 100%
rename from core-kotlin/src/main/kotlin/com/baeldung/builder/FoodOrderNamed.kt
rename to core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/builder/FoodOrderNamed.kt
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/builder/Main.kt b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/builder/Main.kt
similarity index 100%
rename from core-kotlin/src/main/kotlin/com/baeldung/builder/Main.kt
rename to core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/builder/Main.kt
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/kotlin/Example1.kt b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/introduction/Example1.kt
similarity index 63%
rename from core-kotlin/src/main/kotlin/com/baeldung/kotlin/Example1.kt
rename to core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/introduction/Example1.kt
index bca1e54a6c..aacd8f7915 100644
--- a/core-kotlin/src/main/kotlin/com/baeldung/kotlin/Example1.kt
+++ b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/introduction/Example1.kt
@@ -1,4 +1,4 @@
-package com.baeldung.kotlin
+package com.baeldung.introduction
fun main(args: Array){
println("hello word")
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/kotlin/Item.kt b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/introduction/Item.kt
similarity index 89%
rename from core-kotlin/src/main/kotlin/com/baeldung/kotlin/Item.kt
rename to core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/introduction/Item.kt
index 36994e4994..bb91dd1eae 100644
--- a/core-kotlin/src/main/kotlin/com/baeldung/kotlin/Item.kt
+++ b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/introduction/Item.kt
@@ -1,4 +1,4 @@
-package com.baeldung.kotlin
+package com.baeldung.introduction
open class Item(val id: String, val name: String = "unknown_name") {
open fun getIdOfItem(): String {
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/introduction/ItemService.kt
similarity index 98%
rename from core-kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt
rename to core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/introduction/ItemService.kt
index 88de1aa9be..dfcf17df7c 100644
--- a/core-kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt
+++ b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/introduction/ItemService.kt
@@ -1,4 +1,4 @@
-package com.baeldung.kotlin
+package com.baeldung.introduction
import java.util.*
diff --git a/core-kotlin-modules/core-kotlin-lang-oop/src/main/kotlin/com/baeldung/kotlin/ListExtension.kt b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/introduction/ListExtension.kt
similarity index 90%
rename from core-kotlin-modules/core-kotlin-lang-oop/src/main/kotlin/com/baeldung/kotlin/ListExtension.kt
rename to core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/introduction/ListExtension.kt
index da1773b7c9..e71292c60a 100644
--- a/core-kotlin-modules/core-kotlin-lang-oop/src/main/kotlin/com/baeldung/kotlin/ListExtension.kt
+++ b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/introduction/ListExtension.kt
@@ -1,4 +1,4 @@
-package com.baeldung.kotlin
+package com.baeldung.introduction
import java.util.concurrent.ThreadLocalRandom
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/kotlin/MathematicsOperations.kt b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/introduction/MathematicsOperations.kt
similarity index 75%
rename from core-kotlin/src/main/kotlin/com/baeldung/kotlin/MathematicsOperations.kt
rename to core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/introduction/MathematicsOperations.kt
index 924f9d2323..0ed30ed5b4 100644
--- a/core-kotlin/src/main/kotlin/com/baeldung/kotlin/MathematicsOperations.kt
+++ b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/introduction/MathematicsOperations.kt
@@ -1,4 +1,4 @@
-package com.baeldung.kotlin
+package com.baeldung.introduction
class MathematicsOperations {
fun addTwoNumbers(a: Int, b: Int): Int {
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/mavenjavakotlin/services/KotlinService.kt b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/mavenjavakotlin/KotlinService.kt
similarity index 70%
rename from core-kotlin/src/main/kotlin/com/baeldung/mavenjavakotlin/services/KotlinService.kt
rename to core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/mavenjavakotlin/KotlinService.kt
index 114b1c88df..10d6a792d8 100644
--- a/core-kotlin/src/main/kotlin/com/baeldung/mavenjavakotlin/services/KotlinService.kt
+++ b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/mavenjavakotlin/KotlinService.kt
@@ -1,4 +1,4 @@
-package com.baeldung.mavenjavakotlin.services
+package com.baeldung.mavenjavakotlin
class KotlinService {
diff --git a/core-kotlin-2/src/main/kotlin/com/baeldung/scope/ScopeFunctions.kt b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/scope/ScopeFunctions.kt
similarity index 100%
rename from core-kotlin-2/src/main/kotlin/com/baeldung/scope/ScopeFunctions.kt
rename to core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/scope/ScopeFunctions.kt
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/sorting/SortingExample.kt b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/sorting/SortingExample.kt
similarity index 97%
rename from core-kotlin/src/main/kotlin/com/baeldung/sorting/SortingExample.kt
rename to core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/sorting/SortingExample.kt
index 2309d23c36..bf3163bc8f 100644
--- a/core-kotlin/src/main/kotlin/com/baeldung/sorting/SortingExample.kt
+++ b/core-kotlin-modules/core-kotlin/src/main/kotlin/com/baeldung/sorting/SortingExample.kt
@@ -1,7 +1,5 @@
package com.baeldung.sorting
-import kotlin.comparisons.*
-
fun sortMethodUsage() {
val sortedValues = mutableListOf(1, 2, 7, 6, 5, 6)
sortedValues.sort()
diff --git a/core-kotlin/src/test/java/com/baeldung/kotlin/JavaCallToKotlinUnitTest.java b/core-kotlin-modules/core-kotlin/src/test/java/com/baeldung/introduction/JavaCallToKotlinUnitTest.java
similarity index 90%
rename from core-kotlin/src/test/java/com/baeldung/kotlin/JavaCallToKotlinUnitTest.java
rename to core-kotlin-modules/core-kotlin/src/test/java/com/baeldung/introduction/JavaCallToKotlinUnitTest.java
index 370f24785a..2c386eaad3 100644
--- a/core-kotlin/src/test/java/com/baeldung/kotlin/JavaCallToKotlinUnitTest.java
+++ b/core-kotlin-modules/core-kotlin/src/test/java/com/baeldung/introduction/JavaCallToKotlinUnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.kotlin;
+package com.baeldung.introduction;
import org.junit.Test;
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/datastructures/NodeTest.kt b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/binarytree/NodeTest.kt
similarity index 98%
rename from core-kotlin/src/test/kotlin/com/baeldung/datastructures/NodeTest.kt
rename to core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/binarytree/NodeTest.kt
index 8a46c5f6ec..9414d7dde9 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/datastructures/NodeTest.kt
+++ b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/binarytree/NodeTest.kt
@@ -1,7 +1,8 @@
-package com.baeldung.datastructures
+package com.baeldung.binarytree
import org.junit.After
-import org.junit.Assert.*
+import org.junit.Assert.assertEquals
+import org.junit.Assert.assertNull
import org.junit.Before
import org.junit.Test
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/builder/BuilderPatternUnitTest.kt b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/builder/BuilderPatternUnitTest.kt
similarity index 100%
rename from core-kotlin/src/test/kotlin/com/baeldung/builder/BuilderPatternUnitTest.kt
rename to core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/builder/BuilderPatternUnitTest.kt
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/gson/GsonUnitTest.kt b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/gson/GsonUnitTest.kt
similarity index 87%
rename from core-kotlin/src/test/kotlin/com/baeldung/kotlin/gson/GsonUnitTest.kt
rename to core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/gson/GsonUnitTest.kt
index bdf44d3b49..9159be96be 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/gson/GsonUnitTest.kt
+++ b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/gson/GsonUnitTest.kt
@@ -1,4 +1,4 @@
-package com.baeldung.kotlin.gson
+package com.baeldung.gson
import com.google.gson.Gson
@@ -11,7 +11,7 @@ class GsonUnitTest {
@Test
fun givenObject_thenGetJSONString() {
- var jsonString = gson.toJson(TestModel(1,"Test"))
+ var jsonString = gson.toJson(TestModel(1, "Test"))
Assert.assertEquals(jsonString, "{\"id\":1,\"description\":\"Test\"}")
}
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/ArrayTest.kt b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/interoperability/ArrayTest.kt
similarity index 82%
rename from core-kotlin/src/test/kotlin/com/baeldung/kotlin/ArrayTest.kt
rename to core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/interoperability/ArrayTest.kt
index f7d1c53b13..8e9467f92a 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/ArrayTest.kt
+++ b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/interoperability/ArrayTest.kt
@@ -1,7 +1,5 @@
-package com.baeldung.kotlin
+package com.baeldung.interoperability
-import com.baeldung.java.ArrayExample
-import com.baeldung.java.Customer
import org.junit.Test
import kotlin.test.assertEquals
@@ -29,7 +27,7 @@ class ArrayTest {
val constructors = instance.constructors
assertEquals(constructors.size, 1)
- assertEquals(constructors[0].name, "com.baeldung.java.Customer")
+ assertEquals(constructors[0].name, "com.baeldung.interoperability.Customer")
}
fun makeReadFile() {
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/CustomerTest.kt b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/interoperability/CustomerTest.kt
similarity index 88%
rename from core-kotlin/src/test/kotlin/com/baeldung/kotlin/CustomerTest.kt
rename to core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/interoperability/CustomerTest.kt
index 6395dfcfed..c1b09cd0c1 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/CustomerTest.kt
+++ b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/interoperability/CustomerTest.kt
@@ -1,6 +1,5 @@
-package com.baeldung.kotlin
+package com.baeldung.interoperability
-import com.baeldung.java.Customer
import org.junit.Test
import kotlin.test.assertEquals
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/ItemServiceTest.kt b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/introduction/ItemServiceTest.kt
similarity index 92%
rename from core-kotlin/src/test/kotlin/com/baeldung/kotlin/ItemServiceTest.kt
rename to core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/introduction/ItemServiceTest.kt
index 3d730b1283..2ba14a7462 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/ItemServiceTest.kt
+++ b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/introduction/ItemServiceTest.kt
@@ -1,9 +1,10 @@
-package com.baeldung.kotlin
+package com.baeldung.introduction
import org.junit.Test
import kotlin.test.assertNotNull
class ItemServiceTest {
+
@Test
fun givenItemId_whenGetForOptionalItem_shouldMakeActionOnNonNullValue() {
//given
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/KotlinJavaInteroperabilityTest.kt b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/introduction/KotlinJavaInteroperabilityTest.kt
similarity index 84%
rename from core-kotlin/src/test/kotlin/com/baeldung/kotlin/KotlinJavaInteroperabilityTest.kt
rename to core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/introduction/KotlinJavaInteroperabilityTest.kt
index 91ccaabf6f..5dddf9bfc9 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/KotlinJavaInteroperabilityTest.kt
+++ b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/introduction/KotlinJavaInteroperabilityTest.kt
@@ -1,6 +1,5 @@
-package com.baeldung.kotlin
+package com.baeldung.introduction
-import com.baeldung.java.StringUtils
import org.junit.Test
import kotlin.test.assertEquals
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/LambdaTest.kt b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/introduction/LambdaTest.kt
similarity index 91%
rename from core-kotlin/src/test/kotlin/com/baeldung/kotlin/LambdaTest.kt
rename to core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/introduction/LambdaTest.kt
index 34217336a0..5e5166074e 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/LambdaTest.kt
+++ b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/introduction/LambdaTest.kt
@@ -1,10 +1,11 @@
-package com.baeldung.kotlin
+package com.baeldung.introduction
import org.junit.Test
import kotlin.test.assertEquals
class LambdaTest {
+
@Test
fun givenListOfNumber_whenDoingOperationsUsingLambda_shouldReturnProperResult() {
//given
diff --git a/core-kotlin-modules/core-kotlin-lang-oop/src/test/kotlin/com/baeldung/kotlin/ListExtensionTest.kt b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/introduction/ListExtensionTest.kt
similarity index 79%
rename from core-kotlin-modules/core-kotlin-lang-oop/src/test/kotlin/com/baeldung/kotlin/ListExtensionTest.kt
rename to core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/introduction/ListExtensionTest.kt
index 7a496e7437..38f244297b 100644
--- a/core-kotlin-modules/core-kotlin-lang-oop/src/test/kotlin/com/baeldung/kotlin/ListExtensionTest.kt
+++ b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/introduction/ListExtensionTest.kt
@@ -1,12 +1,12 @@
-package com.baeldung.kotlin
+package com.baeldung.introduction
-import com.baeldung.kotlin.ListExtension
import org.junit.Test
import kotlin.test.assertTrue
class ListExtensionTest {
+
@Test
- fun givenList_whenExecuteExtensionFunctionOnList_shouldReturnRandomElementOfList(){
+ fun givenList_whenExecuteExtensionFunctionOnList_shouldReturnRandomElementOfList() {
//given
val elements = listOf("a", "b", "c")
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/junit5/Calculator.kt b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/junit5/Calculator.kt
similarity index 91%
rename from core-kotlin/src/test/kotlin/com/baeldung/kotlin/junit5/Calculator.kt
rename to core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/junit5/Calculator.kt
index 1b61c05887..9f6e3ab2b9 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/junit5/Calculator.kt
+++ b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/junit5/Calculator.kt
@@ -1,4 +1,4 @@
-package com.baeldung.kotlin.junit5
+package com.baeldung.junit5
class Calculator {
fun add(a: Int, b: Int) = a + b
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/junit5/CalculatorTest5.kt b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/junit5/CalculatorUnitTest.kt
similarity index 97%
rename from core-kotlin/src/test/kotlin/com/baeldung/kotlin/junit5/CalculatorTest5.kt
rename to core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/junit5/CalculatorUnitTest.kt
index daaedca5a3..07cab3b76e 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/junit5/CalculatorTest5.kt
+++ b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/junit5/CalculatorUnitTest.kt
@@ -1,9 +1,9 @@
-package com.baeldung.kotlin.junit5
+package com.baeldung.junit5
import org.junit.jupiter.api.*
import org.junit.jupiter.api.function.Executable
-class CalculatorTest5 {
+class CalculatorUnitTest {
private val calculator = Calculator()
@Test
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/junit5/DivideByZeroException.kt b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/junit5/DivideByZeroException.kt
similarity index 64%
rename from core-kotlin/src/test/kotlin/com/baeldung/kotlin/junit5/DivideByZeroException.kt
rename to core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/junit5/DivideByZeroException.kt
index 60bc4e2944..5675367fd5 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/junit5/DivideByZeroException.kt
+++ b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/junit5/DivideByZeroException.kt
@@ -1,3 +1,3 @@
-package com.baeldung.kotlin.junit5
+package com.baeldung.junit5
class DivideByZeroException(val numerator: Int) : Exception()
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/junit5/SimpleTest5.kt b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/junit5/SimpleUnitTest.kt
similarity index 88%
rename from core-kotlin/src/test/kotlin/com/baeldung/kotlin/junit5/SimpleTest5.kt
rename to core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/junit5/SimpleUnitTest.kt
index 15ff201430..e3fe998efd 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/junit5/SimpleTest5.kt
+++ b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/junit5/SimpleUnitTest.kt
@@ -1,10 +1,10 @@
-package com.baeldung.kotlin.junit5
+package com.baeldung.junit5
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.Test
-class SimpleTest5 {
+class SimpleUnitTest {
@Test
fun `isEmpty should return true for empty lists`() {
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/random/RandomNumberTest.kt b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/random/RandomNumberTest.kt
similarity index 100%
rename from core-kotlin/src/test/kotlin/com/baeldung/random/RandomNumberTest.kt
rename to core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/random/RandomNumberTest.kt
diff --git a/core-kotlin-2/src/test/kotlin/com/baeldung/scope/ScopeFunctionsUnitTest.kt b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/scope/ScopeFunctionsUnitTest.kt
similarity index 100%
rename from core-kotlin-2/src/test/kotlin/com/baeldung/scope/ScopeFunctionsUnitTest.kt
rename to core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/scope/ScopeFunctionsUnitTest.kt
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/sorting/SortingExampleKtTest.kt b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/sorting/SortingExampleKtTest.kt
similarity index 86%
rename from core-kotlin/src/test/kotlin/com/baeldung/sorting/SortingExampleKtTest.kt
rename to core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/sorting/SortingExampleKtTest.kt
index 8a94e29c2f..7ac0efa4ef 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/sorting/SortingExampleKtTest.kt
+++ b/core-kotlin-modules/core-kotlin/src/test/kotlin/com/baeldung/sorting/SortingExampleKtTest.kt
@@ -1,9 +1,8 @@
package com.baeldung.sorting
+import org.junit.jupiter.api.Assertions.assertTrue
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.Assertions.*
-
class SortingExampleKtTest {
@Test
diff --git a/core-kotlin-modules/pom.xml b/core-kotlin-modules/pom.xml
index e49b5fb85d..24bdc189be 100644
--- a/core-kotlin-modules/pom.xml
+++ b/core-kotlin-modules/pom.xml
@@ -15,6 +15,8 @@
+ core-kotlin
+ core-kotlin-2
core-kotlin-advanced
core-kotlin-annotations
core-kotlin-collections
diff --git a/core-kotlin/.gitignore b/core-kotlin/.gitignore
deleted file mode 100644
index 0c017e8f8c..0000000000
--- a/core-kotlin/.gitignore
+++ /dev/null
@@ -1,14 +0,0 @@
-/bin/
-
-#ignore gradle
-.gradle/
-
-
-#ignore build and generated files
-build/
-node/
-out/
-
-#ignore installed node modules and package lock file
-node_modules/
-package-lock.json
diff --git a/core-kotlin/README.md b/core-kotlin/README.md
deleted file mode 100644
index 89e1b7287e..0000000000
--- a/core-kotlin/README.md
+++ /dev/null
@@ -1,32 +0,0 @@
-## Core Kotlin
-
-This module contains articles about core Kotlin.
-
-### Relevant articles:
-
-- [Introduction to the Kotlin Language](https://www.baeldung.com/kotlin)
-- [Kotlin Java Interoperability](https://www.baeldung.com/kotlin-java-interoperability)
-- [Generics in Kotlin](https://www.baeldung.com/kotlin-generics)
-- [Data Classes in Kotlin](https://www.baeldung.com/kotlin-data-classes)
-- [Delegated Properties in Kotlin](https://www.baeldung.com/kotlin-delegated-properties)
-- [Sealed Classes in Kotlin](https://www.baeldung.com/kotlin-sealed-classes)
-- [JUnit 5 for Kotlin Developers](https://www.baeldung.com/junit-5-kotlin)
-- [Extension Methods in Kotlin](https://www.baeldung.com/kotlin-extension-methods)
-- [Objects in Kotlin](https://www.baeldung.com/kotlin-objects)
-- [Working with Enums in Kotlin](https://www.baeldung.com/kotlin-enum)
-- [Create a Java and Kotlin Project with Maven](https://www.baeldung.com/kotlin-maven-java-project)
-- [Get a Random Number in Kotlin](https://www.baeldung.com/kotlin-random-number)
-- [Kotlin Constructors](https://www.baeldung.com/kotlin-constructors)
-- [Creational Design Patterns in Kotlin: Builder](https://www.baeldung.com/kotlin-builder-pattern)
-- [Kotlin Nested and Inner Classes](https://www.baeldung.com/kotlin-inner-classes)
-- [Fuel HTTP Library with Kotlin](https://www.baeldung.com/kotlin-fuel)
-- [Introduction to Kovenant Library for Kotlin](https://www.baeldung.com/kotlin-kovenant)
-- [Converting Kotlin Data Class from JSON using GSON](https://www.baeldung.com/kotlin-json-convert-data-class)
-- [Guide to Kotlin Interfaces](https://www.baeldung.com/kotlin-interfaces)
-- [Guide to Sorting in Kotlin](https://www.baeldung.com/kotlin-sort)
-- [Dependency Injection for Kotlin with Injekt](https://www.baeldung.com/kotlin-dependency-injection-with-injekt)
-- [Implementing a Binary Tree in Kotlin](https://www.baeldung.com/kotlin-binary-tree)
-- [Inline Classes in Kotlin](https://www.baeldung.com/kotlin-inline-classes)
-- [Static Methods Behavior in Kotlin](https://www.baeldung.com/kotlin-static-methods)
-- [Delegation Pattern in Kotlin](https://www.baeldung.com/kotlin-delegation-pattern)
-- More articles: [[next -->]](/core-kotlin-2)
diff --git a/core-kotlin/build.gradle b/core-kotlin/build.gradle
deleted file mode 100755
index 2b6527fca7..0000000000
--- a/core-kotlin/build.gradle
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-group 'com.baeldung.ktor'
-version '1.0-SNAPSHOT'
-
-
-buildscript {
- ext.kotlin_version = '1.2.41'
-
- repositories {
- mavenCentral()
- }
- dependencies {
-
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- }
-}
-
-apply plugin: 'java'
-apply plugin: 'kotlin'
-apply plugin: 'application'
-
-mainClassName = 'APIServer.kt'
-
-sourceCompatibility = 1.8
-compileKotlin { kotlinOptions.jvmTarget = "1.8" }
-compileTestKotlin { kotlinOptions.jvmTarget = "1.8" }
-
-kotlin { experimental { coroutines "enable" } }
-
-repositories {
- mavenCentral()
- jcenter()
- maven { url "https://dl.bintray.com/kotlin/ktor" }
-}
-sourceSets {
- main{
- kotlin{
- srcDirs 'com/baeldung/ktor'
- }
- }
-
-}
-
-dependencies {
- compile "ch.qos.logback:logback-classic:1.2.1"
- testCompile group: 'junit', name: 'junit', version: '4.12'
-}
\ No newline at end of file
diff --git a/core-kotlin/gradle/wrapper/gradle-wrapper.jar b/core-kotlin/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100755
index 01b8bf6b1f..0000000000
Binary files a/core-kotlin/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/core-kotlin/gradle/wrapper/gradle-wrapper.properties b/core-kotlin/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100755
index 0b83b5a3e3..0000000000
--- a/core-kotlin/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-bin.zip
diff --git a/core-kotlin/gradlew b/core-kotlin/gradlew
deleted file mode 100755
index cccdd3d517..0000000000
--- a/core-kotlin/gradlew
+++ /dev/null
@@ -1,172 +0,0 @@
-#!/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/core-kotlin/gradlew.bat b/core-kotlin/gradlew.bat
deleted file mode 100755
index e95643d6a2..0000000000
--- a/core-kotlin/gradlew.bat
+++ /dev/null
@@ -1,84 +0,0 @@
-@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/core-kotlin/pom.xml b/core-kotlin/pom.xml
deleted file mode 100644
index 5fe8a47f62..0000000000
--- a/core-kotlin/pom.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-
-
- 4.0.0
- core-kotlin
- core-kotlin
- jar
-
-
- com.baeldung
- parent-kotlin
- 1.0.0-SNAPSHOT
- ../parent-kotlin
-
-
-
-
- org.apache.commons
- commons-lang3
- ${commons-lang3.version}
-
-
- org.junit.platform
- junit-platform-runner
- ${junit.platform.version}
- test
-
-
- org.assertj
- assertj-core
- ${assertj.version}
- test
-
-
- com.h2database
- h2
- ${h2.version}
-
-
- com.github.kittinunf.fuel
- fuel
- ${fuel.version}
-
-
- com.github.kittinunf.fuel
- fuel-gson
- ${fuel.version}
-
-
- com.github.kittinunf.fuel
- fuel-rxjava
- ${fuel.version}
-
-
- com.github.kittinunf.fuel
- fuel-coroutines
- ${fuel.version}
-
-
- nl.komponents.kovenant
- kovenant
- ${kovenant.version}
- pom
-
-
- uy.kohesive.injekt
- injekt-core
- ${injekt-core.version}
-
-
-
-
- 1.1.1
- 5.2.0
- 3.10.0
- 1.15.0
- 3.3.0
- 1.16.1
-
-
-
diff --git a/core-kotlin/resources/logback.xml b/core-kotlin/resources/logback.xml
deleted file mode 100755
index 274cdcdb02..0000000000
--- a/core-kotlin/resources/logback.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
- %d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/core-kotlin/settings.gradle b/core-kotlin/settings.gradle
deleted file mode 100755
index 13bbce9583..0000000000
--- a/core-kotlin/settings.gradle
+++ /dev/null
@@ -1,2 +0,0 @@
-rootProject.name = 'KtorWithKotlin'
-
diff --git a/core-kotlin/src/main/resources/logback.xml b/core-kotlin/src/main/resources/logback.xml
deleted file mode 100644
index 7d900d8ea8..0000000000
--- a/core-kotlin/src/main/resources/logback.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/kotlin-libraries-2/README.md b/kotlin-libraries-2/README.md
index 4064ef67d8..f725048acd 100644
--- a/kotlin-libraries-2/README.md
+++ b/kotlin-libraries-2/README.md
@@ -8,4 +8,7 @@ This module contains articles about Kotlin Libraries.
- [Introduction to RxKotlin](https://www.baeldung.com/rxkotlin)
- [MockK: A Mocking Library for Kotlin](https://www.baeldung.com/kotlin-mockk)
- [Kotlin Immutable Collections](https://www.baeldung.com/kotlin-immutable-collections)
+- [Dependency Injection for Kotlin with Injekt](https://www.baeldung.com/kotlin-dependency-injection-with-injekt)
+- [Fuel HTTP Library with Kotlin](https://www.baeldung.com/kotlin-fuel)
+- [Introduction to Kovenant Library for Kotlin](https://www.baeldung.com/kotlin-kovenant)
- More articles: [[<-- prev]](/kotlin-libraries)
diff --git a/kotlin-libraries-2/pom.xml b/kotlin-libraries-2/pom.xml
index 518142403e..27dc91d156 100644
--- a/kotlin-libraries-2/pom.xml
+++ b/kotlin-libraries-2/pom.xml
@@ -39,6 +39,37 @@
kotlinx-collections-immutable
${kotlinx-collections-immutable.version}
+
+ uy.kohesive.injekt
+ injekt-core
+ ${injekt-core.version}
+
+
+ com.github.kittinunf.fuel
+ fuel
+ ${fuel.version}
+
+
+ com.github.kittinunf.fuel
+ fuel-gson
+ ${fuel.version}
+
+
+ com.github.kittinunf.fuel
+ fuel-rxjava
+ ${fuel.version}
+
+
+ com.github.kittinunf.fuel
+ fuel-coroutines
+ ${fuel.version}
+
+
+ nl.komponents.kovenant
+ kovenant
+ ${kovenant.version}
+ pom
+
io.mockk
@@ -49,6 +80,9 @@
+ 1.16.1
+ 1.15.0
+ 3.3.0
27.1-jre
1.9.3
0.1
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/fuel/Interceptors.kt b/kotlin-libraries-2/src/main/kotlin/com/baeldung/fuel/Interceptors.kt
similarity index 100%
rename from core-kotlin/src/main/kotlin/com/baeldung/fuel/Interceptors.kt
rename to kotlin-libraries-2/src/main/kotlin/com/baeldung/fuel/Interceptors.kt
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/fuel/Post.kt b/kotlin-libraries-2/src/main/kotlin/com/baeldung/fuel/Post.kt
similarity index 100%
rename from core-kotlin/src/main/kotlin/com/baeldung/fuel/Post.kt
rename to kotlin-libraries-2/src/main/kotlin/com/baeldung/fuel/Post.kt
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/fuel/PostRoutingAPI.kt b/kotlin-libraries-2/src/main/kotlin/com/baeldung/fuel/PostRoutingAPI.kt
similarity index 100%
rename from core-kotlin/src/main/kotlin/com/baeldung/fuel/PostRoutingAPI.kt
rename to kotlin-libraries-2/src/main/kotlin/com/baeldung/fuel/PostRoutingAPI.kt
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/injekt/DelegateInjectionApplication.kt b/kotlin-libraries-2/src/main/kotlin/com/baeldung/injekt/DelegateInjectionApplication.kt
similarity index 100%
rename from core-kotlin/src/main/kotlin/com/baeldung/injekt/DelegateInjectionApplication.kt
rename to kotlin-libraries-2/src/main/kotlin/com/baeldung/injekt/DelegateInjectionApplication.kt
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/injekt/KeyedApplication.kt b/kotlin-libraries-2/src/main/kotlin/com/baeldung/injekt/KeyedApplication.kt
similarity index 80%
rename from core-kotlin/src/main/kotlin/com/baeldung/injekt/KeyedApplication.kt
rename to kotlin-libraries-2/src/main/kotlin/com/baeldung/injekt/KeyedApplication.kt
index 744459b7fe..4205678981 100644
--- a/core-kotlin/src/main/kotlin/com/baeldung/injekt/KeyedApplication.kt
+++ b/kotlin-libraries-2/src/main/kotlin/com/baeldung/injekt/KeyedApplication.kt
@@ -1,8 +1,12 @@
package com.baeldung.injekt
import org.slf4j.LoggerFactory
-import uy.kohesive.injekt.*
-import uy.kohesive.injekt.api.*
+import uy.kohesive.injekt.Injekt
+import uy.kohesive.injekt.InjektMain
+import uy.kohesive.injekt.api.InjektRegistrar
+import uy.kohesive.injekt.api.addPerKeyFactory
+import uy.kohesive.injekt.api.addSingletonFactory
+import uy.kohesive.injekt.api.get
class KeyedApplication {
companion object : InjektMain() {
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/injekt/ModularApplication.kt b/kotlin-libraries-2/src/main/kotlin/com/baeldung/injekt/ModularApplication.kt
similarity index 94%
rename from core-kotlin/src/main/kotlin/com/baeldung/injekt/ModularApplication.kt
rename to kotlin-libraries-2/src/main/kotlin/com/baeldung/injekt/ModularApplication.kt
index e802f3f6d5..96a0c9556a 100644
--- a/core-kotlin/src/main/kotlin/com/baeldung/injekt/ModularApplication.kt
+++ b/kotlin-libraries-2/src/main/kotlin/com/baeldung/injekt/ModularApplication.kt
@@ -1,7 +1,8 @@
package com.baeldung.injekt
import org.slf4j.LoggerFactory
-import uy.kohesive.injekt.*
+import uy.kohesive.injekt.Injekt
+import uy.kohesive.injekt.InjektMain
import uy.kohesive.injekt.api.*
class ModularApplication {
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/injekt/PerThreadApplication.kt b/kotlin-libraries-2/src/main/kotlin/com/baeldung/injekt/PerThreadApplication.kt
similarity index 84%
rename from core-kotlin/src/main/kotlin/com/baeldung/injekt/PerThreadApplication.kt
rename to kotlin-libraries-2/src/main/kotlin/com/baeldung/injekt/PerThreadApplication.kt
index a42f314349..f3167bc223 100644
--- a/core-kotlin/src/main/kotlin/com/baeldung/injekt/PerThreadApplication.kt
+++ b/kotlin-libraries-2/src/main/kotlin/com/baeldung/injekt/PerThreadApplication.kt
@@ -1,8 +1,12 @@
package com.baeldung.injekt
import org.slf4j.LoggerFactory
-import uy.kohesive.injekt.*
-import uy.kohesive.injekt.api.*
+import uy.kohesive.injekt.Injekt
+import uy.kohesive.injekt.InjektMain
+import uy.kohesive.injekt.api.InjektRegistrar
+import uy.kohesive.injekt.api.addPerThreadFactory
+import uy.kohesive.injekt.api.addSingletonFactory
+import uy.kohesive.injekt.api.get
import java.util.*
import java.util.concurrent.Executors
import java.util.concurrent.TimeUnit
diff --git a/core-kotlin/src/main/kotlin/com/baeldung/injekt/SimpleApplication.kt b/kotlin-libraries-2/src/main/kotlin/com/baeldung/injekt/SimpleApplication.kt
similarity index 75%
rename from core-kotlin/src/main/kotlin/com/baeldung/injekt/SimpleApplication.kt
rename to kotlin-libraries-2/src/main/kotlin/com/baeldung/injekt/SimpleApplication.kt
index 2b07cd059f..5c2dc28ba5 100644
--- a/core-kotlin/src/main/kotlin/com/baeldung/injekt/SimpleApplication.kt
+++ b/kotlin-libraries-2/src/main/kotlin/com/baeldung/injekt/SimpleApplication.kt
@@ -1,8 +1,12 @@
package com.baeldung.injekt
import org.slf4j.LoggerFactory
-import uy.kohesive.injekt.*
-import uy.kohesive.injekt.api.*
+import uy.kohesive.injekt.Injekt
+import uy.kohesive.injekt.InjektMain
+import uy.kohesive.injekt.api.InjektRegistrar
+import uy.kohesive.injekt.api.addSingleton
+import uy.kohesive.injekt.api.addSingletonFactory
+import uy.kohesive.injekt.api.get
class SimpleApplication {
companion object : InjektMain() {
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/fuel/FuelHttpUnitTest.kt b/kotlin-libraries-2/src/test/kotlin/com/baeldung/fuel/FuelHttpUnitTest.kt
similarity index 100%
rename from core-kotlin/src/test/kotlin/com/baeldung/fuel/FuelHttpUnitTest.kt
rename to kotlin-libraries-2/src/test/kotlin/com/baeldung/fuel/FuelHttpUnitTest.kt
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/KovenantTest.kt b/kotlin-libraries-2/src/test/kotlin/com/baeldung/kovenant/KovenantTest.kt
similarity index 99%
rename from core-kotlin/src/test/kotlin/com/baeldung/kotlin/KovenantTest.kt
rename to kotlin-libraries-2/src/test/kotlin/com/baeldung/kovenant/KovenantTest.kt
index 469118f0f6..046b7380f7 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/KovenantTest.kt
+++ b/kotlin-libraries-2/src/test/kotlin/com/baeldung/kovenant/KovenantTest.kt
@@ -1,4 +1,4 @@
-package com.baeldung.kotlin
+package com.baeldung.kovenant
import nl.komponents.kovenant.*
import nl.komponents.kovenant.Kovenant.deferred
@@ -12,6 +12,7 @@ import java.util.*
import java.util.concurrent.TimeUnit
class KovenantTest {
+
@Before
fun setupTestMode() {
Kovenant.testMode { error ->
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/KovenantTimeoutTest.kt b/kotlin-libraries-2/src/test/kotlin/com/baeldung/kovenant/KovenantTimeoutTest.kt
similarity index 96%
rename from core-kotlin/src/test/kotlin/com/baeldung/kotlin/KovenantTimeoutTest.kt
rename to kotlin-libraries-2/src/test/kotlin/com/baeldung/kovenant/KovenantTimeoutTest.kt
index e37d2cc2fa..d98f9c538f 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/kotlin/KovenantTimeoutTest.kt
+++ b/kotlin-libraries-2/src/test/kotlin/com/baeldung/kovenant/KovenantTimeoutTest.kt
@@ -1,4 +1,4 @@
-package com.baeldung.kotlin
+package com.baeldung.kovenant
import nl.komponents.kovenant.Promise
import nl.komponents.kovenant.any
diff --git a/kotlin-libraries/README.md b/kotlin-libraries/README.md
index 99a57c8293..570bf9b1e5 100644
--- a/kotlin-libraries/README.md
+++ b/kotlin-libraries/README.md
@@ -10,7 +10,6 @@ This module contains articles about Kotlin Libraries.
- [Writing Specifications with Kotlin and Spek](https://www.baeldung.com/kotlin-spek)
- [Processing JSON with Kotlin and Klaxson](https://www.baeldung.com/kotlin-json-klaxson)
- [Guide to the Kotlin Exposed Framework](https://www.baeldung.com/kotlin-exposed-persistence)
-- [Working with Dates in Kotlin](https://www.baeldung.com/kotlin-dates)
- [Introduction to Arrow in Kotlin](https://www.baeldung.com/kotlin-arrow)
- [Kotlin with Ktor](https://www.baeldung.com/kotlin-ktor)
- [REST API With Kotlin and Kovert](https://www.baeldung.com/kotlin-kovert)
diff --git a/pom.xml b/pom.xml
index 55c41b5100..4d04617dcc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -662,7 +662,6 @@
spring-boot-kotlin
spring-boot-libraries
spring-boot-logging-log4j2
- spring-boot-mvc
spring-boot-mvc-2
spring-boot-mvc-birt
spring-boot-nashorn
@@ -841,9 +840,6 @@
parent-java
parent-kotlin
- core-kotlin
- core-kotlin-2
-
jenkins/plugins
jhipster
jws
@@ -1376,9 +1372,6 @@
parent-java
parent-kotlin
- core-kotlin
- core-kotlin-2
-
jenkins/plugins
jhipster
jws