From 5a042b6f80be92564624504084385e67fe3e490a Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankur.gupta@jda.com> Date: Wed, 25 Mar 2020 21:53:40 +0530 Subject: [PATCH 001/156] Java Example of Hexagonal Architecture --- hexagonaljava/.gitignore | 31 ++ .../.mvn/wrapper/MavenWrapperDownloader.java | 117 +++++++ hexagonaljava/.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 50710 bytes .../.mvn/wrapper/maven-wrapper.properties | 2 + hexagonaljava/mvnw | 310 ++++++++++++++++++ hexagonaljava/mvnw.cmd | 182 ++++++++++ hexagonaljava/pom.xml | 60 ++++ .../HexagonaljavaApplication.java | 13 + .../controller/StudentResultController.java | 29 ++ .../hexagonaljava/entity/Student.java | 37 +++ .../repository/StudentResultJdbcRepoImpl.java | 84 +++++ .../repository/StudentResultRepo.java | 11 + .../repository/StudentResultRepoImpl.java | 26 ++ .../service/StudentResultService.java | 11 + .../service/StudentResultServiceImpl.java | 32 ++ .../src/main/resources/application.properties | 5 + hexagonaljava/src/main/resources/schema.sql | 11 + .../HexagonaljavaApplicationTests.java | 13 + 18 files changed, 974 insertions(+) create mode 100644 hexagonaljava/.gitignore create mode 100644 hexagonaljava/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 hexagonaljava/.mvn/wrapper/maven-wrapper.jar create mode 100644 hexagonaljava/.mvn/wrapper/maven-wrapper.properties create mode 100755 hexagonaljava/mvnw create mode 100644 hexagonaljava/mvnw.cmd create mode 100644 hexagonaljava/pom.xml create mode 100644 hexagonaljava/src/main/java/com/baeldung/hexagonaljava/HexagonaljavaApplication.java create mode 100644 hexagonaljava/src/main/java/com/baeldung/hexagonaljava/controller/StudentResultController.java create mode 100644 hexagonaljava/src/main/java/com/baeldung/hexagonaljava/entity/Student.java create mode 100644 hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultJdbcRepoImpl.java create mode 100644 hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepo.java create mode 100644 hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepoImpl.java create mode 100644 hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultService.java create mode 100644 hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultServiceImpl.java create mode 100644 hexagonaljava/src/main/resources/application.properties create mode 100644 hexagonaljava/src/main/resources/schema.sql create mode 100644 hexagonaljava/src/test/java/com/baeldung/hexagonaljava/HexagonaljavaApplicationTests.java diff --git a/hexagonaljava/.gitignore b/hexagonaljava/.gitignore new file mode 100644 index 0000000000..a2a3040aa8 --- /dev/null +++ b/hexagonaljava/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ diff --git a/hexagonaljava/.mvn/wrapper/MavenWrapperDownloader.java b/hexagonaljava/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 0000000000..e76d1f3241 --- /dev/null +++ b/hexagonaljava/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,117 @@ +/* + * Copyright 2007-present the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import java.net.*; +import java.io.*; +import java.nio.channels.*; +import java.util.Properties; + +public class MavenWrapperDownloader { + + private static final String WRAPPER_VERSION = "0.5.6"; + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + String username = System.getenv("MVNW_USERNAME"); + char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + } + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/hexagonaljava/.mvn/wrapper/maven-wrapper.jar b/hexagonaljava/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..2cc7d4a55c0cd0092912bf49ae38b3a9e3fd0054 GIT binary patch literal 50710 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 EfAhh=DF6Tf literal 0 HcmV?d00001 diff --git a/hexagonaljava/.mvn/wrapper/maven-wrapper.properties b/hexagonaljava/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000000..642d572ce9 --- /dev/null +++ b/hexagonaljava/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar diff --git a/hexagonaljava/mvnw b/hexagonaljava/mvnw new file mode 100755 index 0000000000..a16b5431b4 --- /dev/null +++ b/hexagonaljava/mvnw @@ -0,0 +1,310 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/hexagonaljava/mvnw.cmd b/hexagonaljava/mvnw.cmd new file mode 100644 index 0000000000..c8d43372c9 --- /dev/null +++ b/hexagonaljava/mvnw.cmd @@ -0,0 +1,182 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/hexagonaljava/pom.xml b/hexagonaljava/pom.xml new file mode 100644 index 0000000000..d9ca173888 --- /dev/null +++ b/hexagonaljava/pom.xml @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-parent</artifactId> + <version>2.2.5.RELEASE</version> + <relativePath/> <!-- lookup parent from repository --> + </parent> + <groupId>com.baeldung.</groupId> + <artifactId>hexagonaljava</artifactId> + <version>0.0.1-SNAPSHOT</version> + <name>hexagonaljava</name> + <description>Demo project for Spring Boot</description> + + <properties> + <java.version>1.8</java.version> + </properties> + + <dependencies> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>org.junit.vintage</groupId> + <artifactId>junit-vintage-engine</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-jdbc</artifactId> + </dependency> + + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <scope>runtime</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + </plugin> + </plugins> + </build> + +</project> diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/HexagonaljavaApplication.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/HexagonaljavaApplication.java new file mode 100644 index 0000000000..603f8297d1 --- /dev/null +++ b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/HexagonaljavaApplication.java @@ -0,0 +1,13 @@ +package com.baeldung.hexagonaljava; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class HexagonaljavaApplication { + + public static void main(String[] args) { + SpringApplication.run(HexagonaljavaApplication.class, args); + } + +} diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/controller/StudentResultController.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/controller/StudentResultController.java new file mode 100644 index 0000000000..7db6117f83 --- /dev/null +++ b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/controller/StudentResultController.java @@ -0,0 +1,29 @@ +package com.baeldung.hexagonaljava.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import com.baeldung.hexagonaljava.entity.Student; +import com.baeldung.hexagonaljava.service.StudentResultService; + +@RestController +public class StudentResultController { + + @Autowired + private StudentResultService studentResultService; + + @PostMapping(value = "/save") + public void saveStudent(@RequestBody Student student) { + studentResultService.save(student); + } + + @GetMapping(value = "/getTotalMarks/{id}") + public Double getTotalMarks(@PathVariable Integer id) { + return studentResultService.getTotalMarks(id); + } + +} diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/entity/Student.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/entity/Student.java new file mode 100644 index 0000000000..ef721e6eda --- /dev/null +++ b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/entity/Student.java @@ -0,0 +1,37 @@ +package com.baeldung.hexagonaljava.entity; + +import java.util.Map; + +public class Student { + + private Integer id; + + private String name; + + private Map<String, Double> marks; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Map<String, Double> getMarks() { + return marks; + } + + public void setMarks(Map<String, Double> marks) { + this.marks = marks; + } + +} diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultJdbcRepoImpl.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultJdbcRepoImpl.java new file mode 100644 index 0000000000..1d347346a2 --- /dev/null +++ b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultJdbcRepoImpl.java @@ -0,0 +1,84 @@ +package com.baeldung.hexagonaljava.repository; + +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.HashMap; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Primary; +import org.springframework.jdbc.core.BatchPreparedStatementSetter; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowCallbackHandler; +import org.springframework.stereotype.Component; + +import com.baeldung.hexagonaljava.entity.Student; + +@Primary +@Component +public class StudentResultJdbcRepoImpl implements StudentResultRepo { + + @Autowired + JdbcTemplate jdbcTemplate; + + @Override + public void save(Student student) { + + jdbcTemplate.update("insert into student (id, name) " + "values(?, ?)", new Object[] { student.getId(), student.getName() }); + insertResult(student); + + } + + public void insertResult(Student student) { + + String insertQuery = "insert into " + "studentresult " + "(subject,marks,id) " + "values " + "(?,?,?)"; + + for (final Map.Entry<String, Double> entry : student.getMarks() + .entrySet()) { + + this.jdbcTemplate.batchUpdate(insertQuery, new BatchPreparedStatementSetter() { + + @Override + public void setValues(final PreparedStatement ps, final int i) throws SQLException { + + ps.setString(1, entry.getKey()); + ps.setDouble(2, entry.getValue()); + ps.setInt(3, student.getId()); + } + + public int getBatchSize() { + return student.getMarks() + .size(); + } + }); + } + + } + + @Override + public Student getStudent(Integer id) { + + String selectQuery = "select * from ( select * from student where id = ? ) s left join studentresult on s.id = studentresult.id"; + Student student = new Student(); + jdbcTemplate.query(selectQuery, new Object[] { id }, new RowCallbackHandler() { + public void processRow(ResultSet rs) throws SQLException { + while (rs.next()) { + + if (student.getId() == null) { + student.setId(rs.getInt("id")); + student.setName(rs.getString("name")); + student.setMarks(new HashMap<String, Double>()); + } + String subject = rs.getString("subject"); + Double marks = rs.getDouble("marks"); + student.getMarks() + .put(subject, marks); + + } + } + }); + return student; + } + +} diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepo.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepo.java new file mode 100644 index 0000000000..1ee4e2b9e5 --- /dev/null +++ b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepo.java @@ -0,0 +1,11 @@ +package com.baeldung.hexagonaljava.repository; + +import com.baeldung.hexagonaljava.entity.Student; + +public interface StudentResultRepo { + + void save(Student student); + + Student getStudent(Integer id); + +} diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepoImpl.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepoImpl.java new file mode 100644 index 0000000000..6c94aa0083 --- /dev/null +++ b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepoImpl.java @@ -0,0 +1,26 @@ +package com.baeldung.hexagonaljava.repository; + +import java.util.HashMap; +import java.util.Map; + +import org.springframework.stereotype.Repository; + +import com.baeldung.hexagonaljava.entity.Student; + +@Repository +public class StudentResultRepoImpl implements StudentResultRepo { + + private Map<Integer, Student> studentsMap = new HashMap<Integer, Student>(); + + @Override + public void save(Student student) { + studentsMap.put(student.getId(), student); + + } + + @Override + public Student getStudent(Integer id) { + return studentsMap.get(id); + } + +} diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultService.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultService.java new file mode 100644 index 0000000000..d77ac5dca8 --- /dev/null +++ b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultService.java @@ -0,0 +1,11 @@ +package com.baeldung.hexagonaljava.service; + +import com.baeldung.hexagonaljava.entity.Student; + +public interface StudentResultService { + + public void save(Student student); + + public Double getTotalMarks(Integer id); + +} diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultServiceImpl.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultServiceImpl.java new file mode 100644 index 0000000000..d0b53e79f6 --- /dev/null +++ b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultServiceImpl.java @@ -0,0 +1,32 @@ +package com.baeldung.hexagonaljava.service; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import com.baeldung.hexagonaljava.entity.Student; +import com.baeldung.hexagonaljava.repository.StudentResultRepo; + +@Component +public class StudentResultServiceImpl implements StudentResultService { + + @Autowired + private StudentResultRepo studentResultRepo; + + @Override + public void save(Student student) { + studentResultRepo.save(student); + + } + + @Override + public Double getTotalMarks(Integer id) { + Student student = studentResultRepo.getStudent(id); + double totalMarks = 0; + for (double marks : student.getMarks() + .values()) { + totalMarks += marks; + } + return totalMarks; + } + +} diff --git a/hexagonaljava/src/main/resources/application.properties b/hexagonaljava/src/main/resources/application.properties new file mode 100644 index 0000000000..5952b7eb01 --- /dev/null +++ b/hexagonaljava/src/main/resources/application.properties @@ -0,0 +1,5 @@ +spring.datasource.url=jdbc:h2:mem:testdb +spring.datasource.driverClassName=org.h2.Driver +spring.datasource.username=sa +spring.datasource.password= +spring.h2.console.enabled=false diff --git a/hexagonaljava/src/main/resources/schema.sql b/hexagonaljava/src/main/resources/schema.sql new file mode 100644 index 0000000000..4dab9fbb1f --- /dev/null +++ b/hexagonaljava/src/main/resources/schema.sql @@ -0,0 +1,11 @@ +CREATE TABLE STUDENT ( + id INT PRIMARY KEY, + name VARCHAR(250) NOT NULL +); + +CREATE TABLE STUDENTRESULT( +subject VARCHAR(250) NOT NULL, +marks NUMERIC(8,2), +id VARCHAR(250), +FOREIGN KEY (id) references STUDENT(id) +); \ No newline at end of file diff --git a/hexagonaljava/src/test/java/com/baeldung/hexagonaljava/HexagonaljavaApplicationTests.java b/hexagonaljava/src/test/java/com/baeldung/hexagonaljava/HexagonaljavaApplicationTests.java new file mode 100644 index 0000000000..c61c51f7b2 --- /dev/null +++ b/hexagonaljava/src/test/java/com/baeldung/hexagonaljava/HexagonaljavaApplicationTests.java @@ -0,0 +1,13 @@ +package com.baeldung.hexagonaljava; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class HexagonaljavaApplicationTests { + + @Test + void contextLoads() { + } + +} From 635e2ae55c1bdc3c1ec74960d76abf96f2729bca Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankur.gupta@jda.com> Date: Fri, 27 Mar 2020 00:40:04 +0530 Subject: [PATCH 002/156] removing unnecessary maven files from pull request and spaces in code --- hexagonaljava/.gitignore | 31 -- .../.mvn/wrapper/MavenWrapperDownloader.java | 117 ------- hexagonaljava/.mvn/wrapper/maven-wrapper.jar | Bin 50710 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 2 - hexagonaljava/mvnw | 310 ------------------ hexagonaljava/mvnw.cmd | 182 ---------- .../HexagonaljavaApplication.java | 1 - .../controller/StudentResultController.java | 1 - .../hexagonaljava/entity/Student.java | 1 - .../repository/StudentResultJdbcRepoImpl.java | 17 +- .../repository/StudentResultRepo.java | 1 - .../repository/StudentResultRepoImpl.java | 2 - .../service/StudentResultService.java | 5 +- .../service/StudentResultServiceImpl.java | 4 +- hexagonaljava/src/main/resources/schema.sql | 2 +- 15 files changed, 7 insertions(+), 669 deletions(-) delete mode 100644 hexagonaljava/.gitignore delete mode 100644 hexagonaljava/.mvn/wrapper/MavenWrapperDownloader.java delete mode 100644 hexagonaljava/.mvn/wrapper/maven-wrapper.jar delete mode 100644 hexagonaljava/.mvn/wrapper/maven-wrapper.properties delete mode 100755 hexagonaljava/mvnw delete mode 100644 hexagonaljava/mvnw.cmd diff --git a/hexagonaljava/.gitignore b/hexagonaljava/.gitignore deleted file mode 100644 index a2a3040aa8..0000000000 --- a/hexagonaljava/.gitignore +++ /dev/null @@ -1,31 +0,0 @@ -HELP.md -target/ -!.mvn/wrapper/maven-wrapper.jar -!**/src/main/** -!**/src/test/** - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -build/ - -### VS Code ### -.vscode/ diff --git a/hexagonaljava/.mvn/wrapper/MavenWrapperDownloader.java b/hexagonaljava/.mvn/wrapper/MavenWrapperDownloader.java deleted file mode 100644 index e76d1f3241..0000000000 --- a/hexagonaljava/.mvn/wrapper/MavenWrapperDownloader.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright 2007-present the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import java.net.*; -import java.io.*; -import java.nio.channels.*; -import java.util.Properties; - -public class MavenWrapperDownloader { - - private static final String WRAPPER_VERSION = "0.5.6"; - /** - * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. - */ - private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" - + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; - - /** - * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to - * use instead of the default one. - */ - private static final String MAVEN_WRAPPER_PROPERTIES_PATH = - ".mvn/wrapper/maven-wrapper.properties"; - - /** - * Path where the maven-wrapper.jar will be saved to. - */ - private static final String MAVEN_WRAPPER_JAR_PATH = - ".mvn/wrapper/maven-wrapper.jar"; - - /** - * Name of the property which should be used to override the default download url for the wrapper. - */ - private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; - - public static void main(String args[]) { - System.out.println("- Downloader started"); - File baseDirectory = new File(args[0]); - System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); - - // If the maven-wrapper.properties exists, read it and check if it contains a custom - // wrapperUrl parameter. - File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); - String url = DEFAULT_DOWNLOAD_URL; - if(mavenWrapperPropertyFile.exists()) { - FileInputStream mavenWrapperPropertyFileInputStream = null; - try { - mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); - Properties mavenWrapperProperties = new Properties(); - mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); - url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); - } catch (IOException e) { - System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); - } finally { - try { - if(mavenWrapperPropertyFileInputStream != null) { - mavenWrapperPropertyFileInputStream.close(); - } - } catch (IOException e) { - // Ignore ... - } - } - } - System.out.println("- Downloading from: " + url); - - File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); - if(!outputFile.getParentFile().exists()) { - if(!outputFile.getParentFile().mkdirs()) { - System.out.println( - "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); - } - } - System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); - try { - downloadFileFromURL(url, outputFile); - System.out.println("Done"); - System.exit(0); - } catch (Throwable e) { - System.out.println("- Error downloading"); - e.printStackTrace(); - System.exit(1); - } - } - - private static void downloadFileFromURL(String urlString, File destination) throws Exception { - if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { - String username = System.getenv("MVNW_USERNAME"); - char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); - Authenticator.setDefault(new Authenticator() { - @Override - protected PasswordAuthentication getPasswordAuthentication() { - return new PasswordAuthentication(username, password); - } - }); - } - URL website = new URL(urlString); - ReadableByteChannel rbc; - rbc = Channels.newChannel(website.openStream()); - FileOutputStream fos = new FileOutputStream(destination); - fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); - fos.close(); - rbc.close(); - } - -} diff --git a/hexagonaljava/.mvn/wrapper/maven-wrapper.jar b/hexagonaljava/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 2cc7d4a55c0cd0092912bf49ae38b3a9e3fd0054..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50710 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 EfAhh=DF6Tf diff --git a/hexagonaljava/.mvn/wrapper/maven-wrapper.properties b/hexagonaljava/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index 642d572ce9..0000000000 --- a/hexagonaljava/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1,2 +0,0 @@ -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip -wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar diff --git a/hexagonaljava/mvnw b/hexagonaljava/mvnw deleted file mode 100755 index a16b5431b4..0000000000 --- a/hexagonaljava/mvnw +++ /dev/null @@ -1,310 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Mingw, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -########################################################################################## -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -# This allows using the maven wrapper in projects that prohibit checking in binary data. -########################################################################################## -if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found .mvn/wrapper/maven-wrapper.jar" - fi -else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." - fi - if [ -n "$MVNW_REPOURL" ]; then - jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - else - jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - fi - while IFS="=" read key value; do - case "$key" in (wrapperUrl) jarUrl="$value"; break ;; - esac - done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" - if [ "$MVNW_VERBOSE" = true ]; then - echo "Downloading from: $jarUrl" - fi - wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" - if $cygwin; then - wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` - fi - - if command -v wget > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found wget ... using wget" - fi - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - wget "$jarUrl" -O "$wrapperJarPath" - else - wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" - fi - elif command -v curl > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found curl ... using curl" - fi - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - curl -o "$wrapperJarPath" "$jarUrl" -f - else - curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f - fi - - else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Falling back to using Java to download" - fi - javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" - # For Cygwin, switch paths to Windows format before running javac - if $cygwin; then - javaClass=`cygpath --path --windows "$javaClass"` - fi - if [ -e "$javaClass" ]; then - if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Compiling MavenWrapperDownloader.java ..." - fi - # Compiling the Java class - ("$JAVA_HOME/bin/javac" "$javaClass") - fi - if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - # Running the downloader - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Running MavenWrapperDownloader.java ..." - fi - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") - fi - fi - fi -fi -########################################################################################## -# End of extension -########################################################################################## - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -if [ "$MVNW_VERBOSE" = true ]; then - echo $MAVEN_PROJECTBASEDIR -fi -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -# Provide a "standardized" way to retrieve the CLI args that will -# work with both Windows and non-Windows executions. -MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" -export MAVEN_CMD_LINE_ARGS - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/hexagonaljava/mvnw.cmd b/hexagonaljava/mvnw.cmd deleted file mode 100644 index c8d43372c9..0000000000 --- a/hexagonaljava/mvnw.cmd +++ /dev/null @@ -1,182 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM https://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM set title of command window -title %0 -@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - -FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B -) - -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. -if exist %WRAPPER_JAR% ( - if "%MVNW_VERBOSE%" == "true" ( - echo Found %WRAPPER_JAR% - ) -) else ( - if not "%MVNW_REPOURL%" == "" ( - SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - ) - if "%MVNW_VERBOSE%" == "true" ( - echo Couldn't find %WRAPPER_JAR%, downloading it ... - echo Downloading from: %DOWNLOAD_URL% - ) - - powershell -Command "&{"^ - "$webclient = new-object System.Net.WebClient;"^ - "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ - "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ - "}"^ - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ - "}" - if "%MVNW_VERBOSE%" == "true" ( - echo Finished downloading %WRAPPER_JAR% - ) -) -@REM End of extension - -@REM Provide a "standardized" way to retrieve the CLI args that will -@REM work with both Windows and non-Windows executions. -set MAVEN_CMD_LINE_ARGS=%* - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/HexagonaljavaApplication.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/HexagonaljavaApplication.java index 603f8297d1..89bcfb6510 100644 --- a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/HexagonaljavaApplication.java +++ b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/HexagonaljavaApplication.java @@ -9,5 +9,4 @@ public class HexagonaljavaApplication { public static void main(String[] args) { SpringApplication.run(HexagonaljavaApplication.class, args); } - } diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/controller/StudentResultController.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/controller/StudentResultController.java index 7db6117f83..7a5ba70c51 100644 --- a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/controller/StudentResultController.java +++ b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/controller/StudentResultController.java @@ -25,5 +25,4 @@ public class StudentResultController { public Double getTotalMarks(@PathVariable Integer id) { return studentResultService.getTotalMarks(id); } - } diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/entity/Student.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/entity/Student.java index ef721e6eda..040faa03a7 100644 --- a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/entity/Student.java +++ b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/entity/Student.java @@ -33,5 +33,4 @@ public class Student { public void setMarks(Map<String, Double> marks) { this.marks = marks; } - } diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultJdbcRepoImpl.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultJdbcRepoImpl.java index 1d347346a2..541c70d757 100644 --- a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultJdbcRepoImpl.java +++ b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultJdbcRepoImpl.java @@ -24,21 +24,15 @@ public class StudentResultJdbcRepoImpl implements StudentResultRepo { @Override public void save(Student student) { - jdbcTemplate.update("insert into student (id, name) " + "values(?, ?)", new Object[] { student.getId(), student.getName() }); insertResult(student); - } public void insertResult(Student student) { - String insertQuery = "insert into " + "studentresult " + "(subject,marks,id) " + "values " + "(?,?,?)"; - for (final Map.Entry<String, Double> entry : student.getMarks() - .entrySet()) { - + .entrySet()) { this.jdbcTemplate.batchUpdate(insertQuery, new BatchPreparedStatementSetter() { - @Override public void setValues(final PreparedStatement ps, final int i) throws SQLException { @@ -49,22 +43,19 @@ public class StudentResultJdbcRepoImpl implements StudentResultRepo { public int getBatchSize() { return student.getMarks() - .size(); + .size(); } }); } - } @Override public Student getStudent(Integer id) { - String selectQuery = "select * from ( select * from student where id = ? ) s left join studentresult on s.id = studentresult.id"; Student student = new Student(); jdbcTemplate.query(selectQuery, new Object[] { id }, new RowCallbackHandler() { public void processRow(ResultSet rs) throws SQLException { while (rs.next()) { - if (student.getId() == null) { student.setId(rs.getInt("id")); student.setName(rs.getString("name")); @@ -73,12 +64,10 @@ public class StudentResultJdbcRepoImpl implements StudentResultRepo { String subject = rs.getString("subject"); Double marks = rs.getDouble("marks"); student.getMarks() - .put(subject, marks); - + .put(subject, marks); } } }); return student; } - } diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepo.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepo.java index 1ee4e2b9e5..96cf105600 100644 --- a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepo.java +++ b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepo.java @@ -7,5 +7,4 @@ public interface StudentResultRepo { void save(Student student); Student getStudent(Integer id); - } diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepoImpl.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepoImpl.java index 6c94aa0083..46fd37a5f2 100644 --- a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepoImpl.java +++ b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepoImpl.java @@ -15,12 +15,10 @@ public class StudentResultRepoImpl implements StudentResultRepo { @Override public void save(Student student) { studentsMap.put(student.getId(), student); - } @Override public Student getStudent(Integer id) { return studentsMap.get(id); } - } diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultService.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultService.java index d77ac5dca8..91a25f3809 100644 --- a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultService.java +++ b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultService.java @@ -4,8 +4,7 @@ import com.baeldung.hexagonaljava.entity.Student; public interface StudentResultService { - public void save(Student student); - - public Double getTotalMarks(Integer id); + void save(Student student); + Double getTotalMarks(Integer id); } diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultServiceImpl.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultServiceImpl.java index d0b53e79f6..f8c163fdf4 100644 --- a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultServiceImpl.java +++ b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultServiceImpl.java @@ -15,7 +15,6 @@ public class StudentResultServiceImpl implements StudentResultService { @Override public void save(Student student) { studentResultRepo.save(student); - } @Override @@ -23,10 +22,9 @@ public class StudentResultServiceImpl implements StudentResultService { Student student = studentResultRepo.getStudent(id); double totalMarks = 0; for (double marks : student.getMarks() - .values()) { + .values()) { totalMarks += marks; } return totalMarks; } - } diff --git a/hexagonaljava/src/main/resources/schema.sql b/hexagonaljava/src/main/resources/schema.sql index 4dab9fbb1f..40ba01ec02 100644 --- a/hexagonaljava/src/main/resources/schema.sql +++ b/hexagonaljava/src/main/resources/schema.sql @@ -8,4 +8,4 @@ subject VARCHAR(250) NOT NULL, marks NUMERIC(8,2), id VARCHAR(250), FOREIGN KEY (id) references STUDENT(id) -); \ No newline at end of file +); From 8e7655f0b8ebabfaf7e4ddba28ef9c5da611c9e9 Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankur.gupta@jda.com> Date: Fri, 27 Mar 2020 00:43:33 +0530 Subject: [PATCH 003/156] Removing unnecessary lines --- .../hexagonaljava/repository/StudentResultJdbcRepoImpl.java | 1 - .../baeldung/hexagonaljava/HexagonaljavaApplicationTests.java | 1 - 2 files changed, 2 deletions(-) diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultJdbcRepoImpl.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultJdbcRepoImpl.java index 541c70d757..7b970462e3 100644 --- a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultJdbcRepoImpl.java +++ b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultJdbcRepoImpl.java @@ -35,7 +35,6 @@ public class StudentResultJdbcRepoImpl implements StudentResultRepo { this.jdbcTemplate.batchUpdate(insertQuery, new BatchPreparedStatementSetter() { @Override public void setValues(final PreparedStatement ps, final int i) throws SQLException { - ps.setString(1, entry.getKey()); ps.setDouble(2, entry.getValue()); ps.setInt(3, student.getId()); diff --git a/hexagonaljava/src/test/java/com/baeldung/hexagonaljava/HexagonaljavaApplicationTests.java b/hexagonaljava/src/test/java/com/baeldung/hexagonaljava/HexagonaljavaApplicationTests.java index c61c51f7b2..eed2f7e6a3 100644 --- a/hexagonaljava/src/test/java/com/baeldung/hexagonaljava/HexagonaljavaApplicationTests.java +++ b/hexagonaljava/src/test/java/com/baeldung/hexagonaljava/HexagonaljavaApplicationTests.java @@ -9,5 +9,4 @@ class HexagonaljavaApplicationTests { @Test void contextLoads() { } - } From a9ab80c75ebcc997e93119a4e95626eb5e33a31a Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankur.gupta@jda.com> Date: Fri, 10 Apr 2020 03:57:55 +0530 Subject: [PATCH 004/156] Example code for using Multiple Cache Manager in SpringBoot --- .../HexagonaljavaApplication.java | 12 ---- .../controller/StudentResultController.java | 28 -------- .../hexagonaljava/entity/Student.java | 36 ---------- .../repository/StudentResultJdbcRepoImpl.java | 72 ------------------- .../repository/StudentResultRepo.java | 10 --- .../repository/StudentResultRepoImpl.java | 24 ------- .../service/StudentResultService.java | 10 --- .../service/StudentResultServiceImpl.java | 30 -------- hexagonaljava/src/main/resources/schema.sql | 11 --- .../pom.xml | 41 ++++++----- .../MultiplecachemanagerApplication.java | 45 ++++++++++++ .../bo/CustomerDetailBO.java | 28 ++++++++ .../bo/OrderDetailBO.java | 25 +++++++ .../config/MultipleCacheResolver.java | 38 ++++++++++ .../MultipleCacheManagerController.java | 43 +++++++++++ .../multiplecachemanager/entity/Customer.java | 24 +++++++ .../multiplecachemanager/entity/Item.java | 34 +++++++++ .../multiplecachemanager/entity/Order.java | 44 ++++++++++++ .../repository/CustomerDetailRepository.java | 49 +++++++++++++ .../repository/OrderDetailRepository.java | 53 ++++++++++++++ .../src/main/resources/application.properties | 7 +- .../src/main/resources/data.sql | 7 ++ .../src/main/resources/schema.sql | 19 +++++ .../MultiplecachemanagerApplicationTests.java | 5 +- 24 files changed, 443 insertions(+), 252 deletions(-) delete mode 100644 hexagonaljava/src/main/java/com/baeldung/hexagonaljava/HexagonaljavaApplication.java delete mode 100644 hexagonaljava/src/main/java/com/baeldung/hexagonaljava/controller/StudentResultController.java delete mode 100644 hexagonaljava/src/main/java/com/baeldung/hexagonaljava/entity/Student.java delete mode 100644 hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultJdbcRepoImpl.java delete mode 100644 hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepo.java delete mode 100644 hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepoImpl.java delete mode 100644 hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultService.java delete mode 100644 hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultServiceImpl.java delete mode 100644 hexagonaljava/src/main/resources/schema.sql rename {hexagonaljava => multiplecachemanager}/pom.xml (64%) create mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/MultiplecachemanagerApplication.java create mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/bo/CustomerDetailBO.java create mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/bo/OrderDetailBO.java create mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/config/MultipleCacheResolver.java create mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/controller/MultipleCacheManagerController.java create mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Customer.java create mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Item.java create mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Order.java create mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/repository/CustomerDetailRepository.java create mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/repository/OrderDetailRepository.java rename {hexagonaljava => multiplecachemanager}/src/main/resources/application.properties (56%) create mode 100644 multiplecachemanager/src/main/resources/data.sql create mode 100644 multiplecachemanager/src/main/resources/schema.sql rename hexagonaljava/src/test/java/com/baeldung/hexagonaljava/HexagonaljavaApplicationTests.java => multiplecachemanager/src/test/java/com/baeldung/multiplecachemanager/MultiplecachemanagerApplicationTests.java (62%) diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/HexagonaljavaApplication.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/HexagonaljavaApplication.java deleted file mode 100644 index 89bcfb6510..0000000000 --- a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/HexagonaljavaApplication.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.baeldung.hexagonaljava; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class HexagonaljavaApplication { - - public static void main(String[] args) { - SpringApplication.run(HexagonaljavaApplication.class, args); - } -} diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/controller/StudentResultController.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/controller/StudentResultController.java deleted file mode 100644 index 7a5ba70c51..0000000000 --- a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/controller/StudentResultController.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.baeldung.hexagonaljava.controller; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.baeldung.hexagonaljava.entity.Student; -import com.baeldung.hexagonaljava.service.StudentResultService; - -@RestController -public class StudentResultController { - - @Autowired - private StudentResultService studentResultService; - - @PostMapping(value = "/save") - public void saveStudent(@RequestBody Student student) { - studentResultService.save(student); - } - - @GetMapping(value = "/getTotalMarks/{id}") - public Double getTotalMarks(@PathVariable Integer id) { - return studentResultService.getTotalMarks(id); - } -} diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/entity/Student.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/entity/Student.java deleted file mode 100644 index 040faa03a7..0000000000 --- a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/entity/Student.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.baeldung.hexagonaljava.entity; - -import java.util.Map; - -public class Student { - - private Integer id; - - private String name; - - private Map<String, Double> marks; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Map<String, Double> getMarks() { - return marks; - } - - public void setMarks(Map<String, Double> marks) { - this.marks = marks; - } -} diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultJdbcRepoImpl.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultJdbcRepoImpl.java deleted file mode 100644 index 7b970462e3..0000000000 --- a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultJdbcRepoImpl.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.baeldung.hexagonaljava.repository; - -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.HashMap; -import java.util.Map; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Primary; -import org.springframework.jdbc.core.BatchPreparedStatementSetter; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.jdbc.core.RowCallbackHandler; -import org.springframework.stereotype.Component; - -import com.baeldung.hexagonaljava.entity.Student; - -@Primary -@Component -public class StudentResultJdbcRepoImpl implements StudentResultRepo { - - @Autowired - JdbcTemplate jdbcTemplate; - - @Override - public void save(Student student) { - jdbcTemplate.update("insert into student (id, name) " + "values(?, ?)", new Object[] { student.getId(), student.getName() }); - insertResult(student); - } - - public void insertResult(Student student) { - String insertQuery = "insert into " + "studentresult " + "(subject,marks,id) " + "values " + "(?,?,?)"; - for (final Map.Entry<String, Double> entry : student.getMarks() - .entrySet()) { - this.jdbcTemplate.batchUpdate(insertQuery, new BatchPreparedStatementSetter() { - @Override - public void setValues(final PreparedStatement ps, final int i) throws SQLException { - ps.setString(1, entry.getKey()); - ps.setDouble(2, entry.getValue()); - ps.setInt(3, student.getId()); - } - - public int getBatchSize() { - return student.getMarks() - .size(); - } - }); - } - } - - @Override - public Student getStudent(Integer id) { - String selectQuery = "select * from ( select * from student where id = ? ) s left join studentresult on s.id = studentresult.id"; - Student student = new Student(); - jdbcTemplate.query(selectQuery, new Object[] { id }, new RowCallbackHandler() { - public void processRow(ResultSet rs) throws SQLException { - while (rs.next()) { - if (student.getId() == null) { - student.setId(rs.getInt("id")); - student.setName(rs.getString("name")); - student.setMarks(new HashMap<String, Double>()); - } - String subject = rs.getString("subject"); - Double marks = rs.getDouble("marks"); - student.getMarks() - .put(subject, marks); - } - } - }); - return student; - } -} diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepo.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepo.java deleted file mode 100644 index 96cf105600..0000000000 --- a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepo.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.baeldung.hexagonaljava.repository; - -import com.baeldung.hexagonaljava.entity.Student; - -public interface StudentResultRepo { - - void save(Student student); - - Student getStudent(Integer id); -} diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepoImpl.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepoImpl.java deleted file mode 100644 index 46fd37a5f2..0000000000 --- a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/repository/StudentResultRepoImpl.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.baeldung.hexagonaljava.repository; - -import java.util.HashMap; -import java.util.Map; - -import org.springframework.stereotype.Repository; - -import com.baeldung.hexagonaljava.entity.Student; - -@Repository -public class StudentResultRepoImpl implements StudentResultRepo { - - private Map<Integer, Student> studentsMap = new HashMap<Integer, Student>(); - - @Override - public void save(Student student) { - studentsMap.put(student.getId(), student); - } - - @Override - public Student getStudent(Integer id) { - return studentsMap.get(id); - } -} diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultService.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultService.java deleted file mode 100644 index 91a25f3809..0000000000 --- a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultService.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.baeldung.hexagonaljava.service; - -import com.baeldung.hexagonaljava.entity.Student; - -public interface StudentResultService { - - void save(Student student); - - Double getTotalMarks(Integer id); -} diff --git a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultServiceImpl.java b/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultServiceImpl.java deleted file mode 100644 index f8c163fdf4..0000000000 --- a/hexagonaljava/src/main/java/com/baeldung/hexagonaljava/service/StudentResultServiceImpl.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.baeldung.hexagonaljava.service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import com.baeldung.hexagonaljava.entity.Student; -import com.baeldung.hexagonaljava.repository.StudentResultRepo; - -@Component -public class StudentResultServiceImpl implements StudentResultService { - - @Autowired - private StudentResultRepo studentResultRepo; - - @Override - public void save(Student student) { - studentResultRepo.save(student); - } - - @Override - public Double getTotalMarks(Integer id) { - Student student = studentResultRepo.getStudent(id); - double totalMarks = 0; - for (double marks : student.getMarks() - .values()) { - totalMarks += marks; - } - return totalMarks; - } -} diff --git a/hexagonaljava/src/main/resources/schema.sql b/hexagonaljava/src/main/resources/schema.sql deleted file mode 100644 index 40ba01ec02..0000000000 --- a/hexagonaljava/src/main/resources/schema.sql +++ /dev/null @@ -1,11 +0,0 @@ -CREATE TABLE STUDENT ( - id INT PRIMARY KEY, - name VARCHAR(250) NOT NULL -); - -CREATE TABLE STUDENTRESULT( -subject VARCHAR(250) NOT NULL, -marks NUMERIC(8,2), -id VARCHAR(250), -FOREIGN KEY (id) references STUDENT(id) -); diff --git a/hexagonaljava/pom.xml b/multiplecachemanager/pom.xml similarity index 64% rename from hexagonaljava/pom.xml rename to multiplecachemanager/pom.xml index d9ca173888..22daf6e87d 100644 --- a/hexagonaljava/pom.xml +++ b/multiplecachemanager/pom.xml @@ -5,25 +5,45 @@ <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> - <version>2.2.5.RELEASE</version> + <version>2.2.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> - <groupId>com.baeldung.</groupId> - <artifactId>hexagonaljava</artifactId> + <groupId>com.baeldung</groupId> + <artifactId>multiplecachemanager</artifactId> <version>0.0.1-SNAPSHOT</version> - <name>hexagonaljava</name> - <description>Demo project for Spring Boot</description> + <name>multiplecachemanager</name> + <description>sample project for configuring multiple cache managers</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-jdbc</artifactId> + </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-cache</artifactId> + </dependency> + + <dependency> + <groupId>com.github.ben-manes.caffeine</groupId> + <artifactId>caffeine</artifactId> + </dependency> + <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> @@ -35,17 +55,6 @@ </exclusion> </exclusions> </dependency> - - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-jdbc</artifactId> - </dependency> - - <dependency> - <groupId>com.h2database</groupId> - <artifactId>h2</artifactId> - <scope>runtime</scope> - </dependency> </dependencies> <build> diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/MultiplecachemanagerApplication.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/MultiplecachemanagerApplication.java new file mode 100644 index 0000000000..4c7efc98bd --- /dev/null +++ b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/MultiplecachemanagerApplication.java @@ -0,0 +1,45 @@ +package com.baeldung.multiplecachemanager; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.CacheManager; +import org.springframework.cache.annotation.CachingConfigurerSupport; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.cache.caffeine.CaffeineCacheManager; +import org.springframework.cache.concurrent.ConcurrentMapCacheManager; +import org.springframework.cache.interceptor.CacheResolver; +import org.springframework.context.annotation.Bean; + +import com.baeldung.multiplecachemanager.config.MultipleCacheResolver; +import com.github.benmanes.caffeine.cache.Caffeine; + +@SpringBootApplication +@EnableCaching +public class MultiplecachemanagerApplication extends CachingConfigurerSupport { + + public static void main(String[] args) { + SpringApplication.run(MultiplecachemanagerApplication.class, args); + } + + @Bean + // @Primary + public CacheManager cacheManager() { + CaffeineCacheManager cacheManager = new CaffeineCacheManager("customers", "orders"); + cacheManager.setCaffeine(Caffeine.newBuilder() + .initialCapacity(200) + .maximumSize(500) + .weakKeys() + .recordStats()); + return cacheManager; + } + + @Bean + public CacheManager alternateCacheManager() { + return new ConcurrentMapCacheManager("customerOrders", "orderprice"); + } + + @Bean + public CacheResolver cacheResolver() { + return new MultipleCacheResolver(alternateCacheManager(), cacheManager()); + } +} diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/bo/CustomerDetailBO.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/bo/CustomerDetailBO.java new file mode 100644 index 0000000000..3da4c23e28 --- /dev/null +++ b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/bo/CustomerDetailBO.java @@ -0,0 +1,28 @@ +package com.baeldung.multiplecachemanager.bo; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Component; + +import com.baeldung.multiplecachemanager.entity.Customer; +import com.baeldung.multiplecachemanager.entity.Order; +import com.baeldung.multiplecachemanager.repository.CustomerDetailRepository; + +@Component +public class CustomerDetailBO { + + @Autowired + private CustomerDetailRepository customerDetailRepository; + + @Cacheable(cacheNames = "customers") + public Customer getCustomerDetail(Integer customerId) { + return customerDetailRepository.getCustomerDetail(customerId); + } + + @Cacheable(cacheNames = "customerOrders", cacheManager = "alternateCacheManager") + public List<Order> getCustomerOrders(Integer customerId) { + return customerDetailRepository.getCustomerOrders(customerId); + } +} diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/bo/OrderDetailBO.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/bo/OrderDetailBO.java new file mode 100644 index 0000000000..cb9e301fcb --- /dev/null +++ b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/bo/OrderDetailBO.java @@ -0,0 +1,25 @@ +package com.baeldung.multiplecachemanager.bo; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Component; + +import com.baeldung.multiplecachemanager.entity.Order; +import com.baeldung.multiplecachemanager.repository.OrderDetailRepository; + +@Component +public class OrderDetailBO { + + @Autowired + private OrderDetailRepository orderDetailRepository; + + @Cacheable(cacheNames = "orders", cacheResolver = "cacheResolver") + public Order getOrderDetail(Integer orderId) { + return orderDetailRepository.getOrderDetail(orderId); + } + + @Cacheable(cacheNames = "orderprice", cacheResolver = "cacheResolver") + public double getOrderPrice(Integer orderId) { + return orderDetailRepository.getOrderPrice(orderId); + } +} diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/config/MultipleCacheResolver.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/config/MultipleCacheResolver.java new file mode 100644 index 0000000000..1bd869d98e --- /dev/null +++ b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/config/MultipleCacheResolver.java @@ -0,0 +1,38 @@ +package com.baeldung.multiplecachemanager.config; + +import java.util.ArrayList; +import java.util.Collection; + +import org.springframework.cache.Cache; +import org.springframework.cache.CacheManager; +import org.springframework.cache.interceptor.CacheOperationInvocationContext; +import org.springframework.cache.interceptor.CacheResolver; + +public class MultipleCacheResolver implements CacheResolver { + + private final CacheManager simpleCacheManager; + + private final CacheManager caffeineCacheManager; + + private static final String ORDER_CACHE = "orders"; + + private static final String ORDER_PRICE_CACHE = "orderprice"; + + public MultipleCacheResolver(CacheManager simpleCacheManager, CacheManager caffeineCacheManager) { + this.simpleCacheManager = simpleCacheManager; + this.caffeineCacheManager = caffeineCacheManager; + + } + + @Override + public Collection<? extends Cache> resolveCaches(CacheOperationInvocationContext<?> context) { + Collection<Cache> caches = new ArrayList<Cache>(); + if ("getOrderDetail".equals(context.getMethod() + .getName())) { + caches.add(caffeineCacheManager.getCache(ORDER_CACHE)); + } else { + caches.add(simpleCacheManager.getCache(ORDER_PRICE_CACHE)); + } + return caches; + } +} diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/controller/MultipleCacheManagerController.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/controller/MultipleCacheManagerController.java new file mode 100644 index 0000000000..17a73bb27a --- /dev/null +++ b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/controller/MultipleCacheManagerController.java @@ -0,0 +1,43 @@ +package com.baeldung.multiplecachemanager.controller; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; + +import com.baeldung.multiplecachemanager.bo.CustomerDetailBO; +import com.baeldung.multiplecachemanager.bo.OrderDetailBO; +import com.baeldung.multiplecachemanager.entity.Customer; +import com.baeldung.multiplecachemanager.entity.Order; + +@RestController +public class MultipleCacheManagerController { + + @Autowired + private CustomerDetailBO customerDetailBO; + + @Autowired + private OrderDetailBO orderDetailBO; + + @GetMapping(value = "/getCustomer/{customerid}") + public Customer getCustomer(@PathVariable Integer customerid) { + return customerDetailBO.getCustomerDetail(customerid); + } + + @GetMapping(value = "/getCustomerOrders/{customerid}") + public List<Order> getCustomerOrders(@PathVariable Integer customerid) { + return customerDetailBO.getCustomerOrders(customerid); + } + + @GetMapping(value = "/getOrder/{orderid}") + public Order getOrder(@PathVariable Integer orderid) { + return orderDetailBO.getOrderDetail(orderid); + } + + @GetMapping(value = "/getOrderPrice/{orderid}") + public double getOrderPrice(@PathVariable Integer orderid) { + return orderDetailBO.getOrderPrice(orderid); + } +} diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Customer.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Customer.java new file mode 100644 index 0000000000..cfae15f4e9 --- /dev/null +++ b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Customer.java @@ -0,0 +1,24 @@ +package com.baeldung.multiplecachemanager.entity; + +public class Customer { + + private int customerId; + + private String customerName; + + public int getCustomerId() { + return customerId; + } + + public void setCustomerId(int customerId) { + this.customerId = customerId; + } + + public String getCustomerName() { + return customerName; + } + + public void setCustomerName(String customerName) { + this.customerName = customerName; + } +} diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Item.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Item.java new file mode 100644 index 0000000000..4131464981 --- /dev/null +++ b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Item.java @@ -0,0 +1,34 @@ +package com.baeldung.multiplecachemanager.entity; + +public class Item { + + private int itemId; + + private String itemDesc; + + private double itemPrice; + + public int getItemId() { + return itemId; + } + + public void setItemId(int itemId) { + this.itemId = itemId; + } + + public String getItemDesc() { + return itemDesc; + } + + public void setItemDesc(String itemDesc) { + this.itemDesc = itemDesc; + } + + public double getItemPrice() { + return itemPrice; + } + + public void setItemPrice(double itemPrice) { + this.itemPrice = itemPrice; + } +} diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Order.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Order.java new file mode 100644 index 0000000000..15da60d6ea --- /dev/null +++ b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Order.java @@ -0,0 +1,44 @@ +package com.baeldung.multiplecachemanager.entity; + +public class Order { + + private int orderId; + + private int itemId; + + private int quantity; + + private int customerId; + + public int getOrderId() { + return orderId; + } + + public void setOrderId(int orderId) { + this.orderId = orderId; + } + + public int getItemId() { + return itemId; + } + + public void setItemId(int itemId) { + this.itemId = itemId; + } + + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + public int getCustomerId() { + return customerId; + } + + public void setCustomerId(int customerId) { + this.customerId = customerId; + } +} diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/repository/CustomerDetailRepository.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/repository/CustomerDetailRepository.java new file mode 100644 index 0000000000..aab011427d --- /dev/null +++ b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/repository/CustomerDetailRepository.java @@ -0,0 +1,49 @@ +package com.baeldung.multiplecachemanager.repository; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowCallbackHandler; +import org.springframework.stereotype.Repository; + +import com.baeldung.multiplecachemanager.entity.Customer; +import com.baeldung.multiplecachemanager.entity.Order; + +@Repository +public class CustomerDetailRepository { + + @Autowired + private JdbcTemplate jdbcTemplate; + + public Customer getCustomerDetail(Integer customerId) { + String customerQuery = "select * from customer where customerid = ? "; + Customer customer = new Customer(); + jdbcTemplate.query(customerQuery, new Object[] { customerId }, new RowCallbackHandler() { + public void processRow(ResultSet rs) throws SQLException { + customer.setCustomerId(rs.getInt("customerid")); + customer.setCustomerName(rs.getString("customername")); + } + }); + return customer; + } + + public List<Order> getCustomerOrders(Integer customerId) { + String customerOrderQuery = "select * from orderdetail where customerid = ? "; + List<Order> orders = new ArrayList<Order>(); + jdbcTemplate.query(customerOrderQuery, new Object[] { customerId }, new RowCallbackHandler() { + public void processRow(ResultSet rs) throws SQLException { + Order order = new Order(); + order.setCustomerId(rs.getInt("customerid")); + order.setItemId(rs.getInt("orderid")); + order.setOrderId(rs.getInt("orderid")); + order.setQuantity(rs.getInt("quantity")); + orders.add(order); + } + }); + return orders; + } +} diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/repository/OrderDetailRepository.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/repository/OrderDetailRepository.java new file mode 100644 index 0000000000..58c0968e48 --- /dev/null +++ b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/repository/OrderDetailRepository.java @@ -0,0 +1,53 @@ +package com.baeldung.multiplecachemanager.repository; + +import java.sql.ResultSet; +import java.sql.SQLException; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowCallbackHandler; +import org.springframework.stereotype.Repository; + +import com.baeldung.multiplecachemanager.entity.Item; +import com.baeldung.multiplecachemanager.entity.Order; + +@Repository +public class OrderDetailRepository { + + @Autowired + private JdbcTemplate jdbcTemplate; + + public Order getOrderDetail(Integer orderId) { + String orderDetailQuery = "select * from orderdetail where orderid = ? "; + Order order = new Order(); + jdbcTemplate.query(orderDetailQuery, new Object[] { orderId }, new RowCallbackHandler() { + public void processRow(ResultSet rs) throws SQLException { + order.setCustomerId(rs.getInt("customerid")); + order.setOrderId(rs.getInt("orderid")); + order.setItemId(rs.getInt("itemid")); + order.setQuantity(rs.getInt("quantity")); + } + }); + return order; + } + + public double getOrderPrice(Integer orderId) { + + String orderItemJoinQuery = "select * from ( select * from orderdetail where orderid = ? ) o left join item on o.itemid = ITEM.itemid"; + Order order = new Order(); + Item item = new Item(); + + jdbcTemplate.query(orderItemJoinQuery, new Object[] { orderId }, new RowCallbackHandler() { + public void processRow(ResultSet rs) throws SQLException { + order.setCustomerId(rs.getInt("customerid")); + order.setOrderId(rs.getInt("orderid")); + order.setItemId(rs.getInt("itemid")); + order.setQuantity(rs.getInt("quantity")); + item.setItemDesc("itemdesc"); + item.setItemId(rs.getInt("itemid")); + item.setItemPrice(rs.getDouble("price")); + } + }); + return order.getQuantity() * item.getItemPrice(); + } +} diff --git a/hexagonaljava/src/main/resources/application.properties b/multiplecachemanager/src/main/resources/application.properties similarity index 56% rename from hexagonaljava/src/main/resources/application.properties rename to multiplecachemanager/src/main/resources/application.properties index 5952b7eb01..53a3ac93b4 100644 --- a/hexagonaljava/src/main/resources/application.properties +++ b/multiplecachemanager/src/main/resources/application.properties @@ -2,4 +2,9 @@ spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= -spring.h2.console.enabled=false +#spring.h2.console.enabled=false + + +# Enabling H2 Console +spring.h2.console.enabled=true +spring.h2.console.path=/h2 diff --git a/multiplecachemanager/src/main/resources/data.sql b/multiplecachemanager/src/main/resources/data.sql new file mode 100644 index 0000000000..e4165ae71f --- /dev/null +++ b/multiplecachemanager/src/main/resources/data.sql @@ -0,0 +1,7 @@ +INSERT INTO CUSTOMER VALUES(1001,'BAELDUNG'); + +INSERT INTO ITEM VALUES(10001,'ITEM1',50.0); +INSERT INTO ITEM VALUES(10002,'ITEM2',100.0); + +INSERT INTO ORDERDETAIL VALUES(300001,1001,10001,2); +INSERT INTO ORDERDETAIL VALUES(300002,1001,10002,5); \ No newline at end of file diff --git a/multiplecachemanager/src/main/resources/schema.sql b/multiplecachemanager/src/main/resources/schema.sql new file mode 100644 index 0000000000..5862499bc0 --- /dev/null +++ b/multiplecachemanager/src/main/resources/schema.sql @@ -0,0 +1,19 @@ +CREATE TABLE CUSTOMER( + CUSTOMERID INT PRIMARY KEY, + CUSTOMERNAME VARCHAR(250) NOT NULL +); + +CREATE TABLE ITEM( +ITEMID INT PRIMARY KEY, +ITEMDESC VARCHAR(250), +PRICE DOUBLE +); + +CREATE TABLE ORDERDETAIL( +ORDERID INT PRIMARY KEY, +CUSTOMERID INT NOT NULL, +ITEMID INT NOT NULL, +QUANTITY INT, +FOREIGN KEY (customerid) references CUSTOMER(customerid), +FOREIGN KEY (itemid) references ITEM(itemid) +); \ No newline at end of file diff --git a/hexagonaljava/src/test/java/com/baeldung/hexagonaljava/HexagonaljavaApplicationTests.java b/multiplecachemanager/src/test/java/com/baeldung/multiplecachemanager/MultiplecachemanagerApplicationTests.java similarity index 62% rename from hexagonaljava/src/test/java/com/baeldung/hexagonaljava/HexagonaljavaApplicationTests.java rename to multiplecachemanager/src/test/java/com/baeldung/multiplecachemanager/MultiplecachemanagerApplicationTests.java index eed2f7e6a3..adf69309f2 100644 --- a/hexagonaljava/src/test/java/com/baeldung/hexagonaljava/HexagonaljavaApplicationTests.java +++ b/multiplecachemanager/src/test/java/com/baeldung/multiplecachemanager/MultiplecachemanagerApplicationTests.java @@ -1,12 +1,13 @@ -package com.baeldung.hexagonaljava; +package com.baeldung.multiplecachemanager; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest -class HexagonaljavaApplicationTests { +class MultiplecachemanagerApplicationTests { @Test void contextLoads() { } + } From a00e511eb3b0eb13244894f1a622782d273fe049 Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankur.gupta@jda.com> Date: Sat, 18 Apr 2020 03:47:11 +0530 Subject: [PATCH 005/156] BAEL-3963:Using multiple cache managers in Spring --- spring-caching/pom.xml | 17 +++++ .../caching/boot/CacheApplication.java | 4 ++ .../bo/CustomerDetailBO.java | 28 ++++++++ .../bo/OrderDetailBO.java | 25 ++++++++ .../config/MultipleCacheManagerConfig.java | 40 ++++++++++++ .../config/MultipleCacheResolver.java | 38 +++++++++++ .../MultipleCacheManagerController.java | 43 +++++++++++++ .../multiplecachemanager/entity/Customer.java | 24 +++++++ .../multiplecachemanager/entity/Item.java | 34 ++++++++++ .../multiplecachemanager/entity/Order.java | 44 +++++++++++++ .../repository/CustomerDetailRepository.java | 49 ++++++++++++++ .../repository/OrderDetailRepository.java | 53 +++++++++++++++ .../src/main/resources/application.properties | 10 +++ spring-caching/src/main/resources/data.sql | 7 ++ spring-caching/src/main/resources/schema.sql | 19 ++++++ ...ltipleCacheManagerIntegrationUnitTest.java | 64 +++++++++++++++++++ 16 files changed, 499 insertions(+) create mode 100644 spring-caching/src/main/java/com/baeldung/multiplecachemanager/bo/CustomerDetailBO.java create mode 100644 spring-caching/src/main/java/com/baeldung/multiplecachemanager/bo/OrderDetailBO.java create mode 100644 spring-caching/src/main/java/com/baeldung/multiplecachemanager/config/MultipleCacheManagerConfig.java create mode 100644 spring-caching/src/main/java/com/baeldung/multiplecachemanager/config/MultipleCacheResolver.java create mode 100644 spring-caching/src/main/java/com/baeldung/multiplecachemanager/controller/MultipleCacheManagerController.java create mode 100644 spring-caching/src/main/java/com/baeldung/multiplecachemanager/entity/Customer.java create mode 100644 spring-caching/src/main/java/com/baeldung/multiplecachemanager/entity/Item.java create mode 100644 spring-caching/src/main/java/com/baeldung/multiplecachemanager/entity/Order.java create mode 100644 spring-caching/src/main/java/com/baeldung/multiplecachemanager/repository/CustomerDetailRepository.java create mode 100644 spring-caching/src/main/java/com/baeldung/multiplecachemanager/repository/OrderDetailRepository.java create mode 100644 spring-caching/src/main/resources/application.properties create mode 100644 spring-caching/src/main/resources/data.sql create mode 100644 spring-caching/src/main/resources/schema.sql create mode 100644 spring-caching/src/test/java/com/baeldung/multiplecachemanager/MultipleCacheManagerIntegrationUnitTest.java diff --git a/spring-caching/pom.xml b/spring-caching/pom.xml index d33f24de1f..11dd9a8873 100644 --- a/spring-caching/pom.xml +++ b/spring-caching/pom.xml @@ -15,6 +15,10 @@ </parent> <dependencies> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> @@ -40,6 +44,19 @@ <artifactId>spring-test</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>com.github.ben-manes.caffeine</groupId> + <artifactId>caffeine</artifactId> + </dependency> + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-jdbc</artifactId> + </dependency> </dependencies> <properties> diff --git a/spring-caching/src/main/java/com/baeldung/caching/boot/CacheApplication.java b/spring-caching/src/main/java/com/baeldung/caching/boot/CacheApplication.java index 714dc443e0..afa1d0ec99 100644 --- a/spring-caching/src/main/java/com/baeldung/caching/boot/CacheApplication.java +++ b/spring-caching/src/main/java/com/baeldung/caching/boot/CacheApplication.java @@ -3,9 +3,13 @@ package com.baeldung.caching.boot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; +//import org.springframework.context.annotation.ComponentScan; @SpringBootApplication @EnableCaching +//to run any module like ehcache,caching or multiplecachemanager in local machine +//add it's package for ComponentScan like below +//@ComponentScan("com.baeldung.multiplecachemanager") public class CacheApplication { public static void main(String[] args) { diff --git a/spring-caching/src/main/java/com/baeldung/multiplecachemanager/bo/CustomerDetailBO.java b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/bo/CustomerDetailBO.java new file mode 100644 index 0000000000..3da4c23e28 --- /dev/null +++ b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/bo/CustomerDetailBO.java @@ -0,0 +1,28 @@ +package com.baeldung.multiplecachemanager.bo; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Component; + +import com.baeldung.multiplecachemanager.entity.Customer; +import com.baeldung.multiplecachemanager.entity.Order; +import com.baeldung.multiplecachemanager.repository.CustomerDetailRepository; + +@Component +public class CustomerDetailBO { + + @Autowired + private CustomerDetailRepository customerDetailRepository; + + @Cacheable(cacheNames = "customers") + public Customer getCustomerDetail(Integer customerId) { + return customerDetailRepository.getCustomerDetail(customerId); + } + + @Cacheable(cacheNames = "customerOrders", cacheManager = "alternateCacheManager") + public List<Order> getCustomerOrders(Integer customerId) { + return customerDetailRepository.getCustomerOrders(customerId); + } +} diff --git a/spring-caching/src/main/java/com/baeldung/multiplecachemanager/bo/OrderDetailBO.java b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/bo/OrderDetailBO.java new file mode 100644 index 0000000000..390881167f --- /dev/null +++ b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/bo/OrderDetailBO.java @@ -0,0 +1,25 @@ +package com.baeldung.multiplecachemanager.bo; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Component; + +import com.baeldung.multiplecachemanager.entity.Order; +import com.baeldung.multiplecachemanager.repository.OrderDetailRepository; + +@Component +public class OrderDetailBO { + + @Autowired + private OrderDetailRepository orderDetailRepository; + + @Cacheable(cacheNames = "orders", cacheResolver = "cacheResolver") + public Order getOrderDetail(Integer orderId) { + return orderDetailRepository.getOrderDetail(orderId); + } + + @Cacheable(cacheNames = "orderprice", cacheResolver = "cacheResolver") + public double getOrderPrice(Integer orderId) { + return orderDetailRepository.getOrderPrice(orderId); + } +} diff --git a/spring-caching/src/main/java/com/baeldung/multiplecachemanager/config/MultipleCacheManagerConfig.java b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/config/MultipleCacheManagerConfig.java new file mode 100644 index 0000000000..247a9b596b --- /dev/null +++ b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/config/MultipleCacheManagerConfig.java @@ -0,0 +1,40 @@ +package com.baeldung.multiplecachemanager.config; + +import org.springframework.cache.CacheManager; +import org.springframework.cache.annotation.CachingConfigurerSupport; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.cache.caffeine.CaffeineCacheManager; +import org.springframework.cache.concurrent.ConcurrentMapCacheManager; +import org.springframework.cache.interceptor.CacheResolver; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +//import org.springframework.context.annotation.Primary; + +import com.github.benmanes.caffeine.cache.Caffeine; + +@Configuration +@EnableCaching +public class MultipleCacheManagerConfig extends CachingConfigurerSupport { + + @Bean + //@Primary + public CacheManager cacheManager() { + CaffeineCacheManager cacheManager = new CaffeineCacheManager("customers", "orders"); + cacheManager.setCaffeine(Caffeine.newBuilder() + .initialCapacity(200) + .maximumSize(500) + .weakKeys() + .recordStats()); + return cacheManager; + } + + @Bean + public CacheManager alternateCacheManager() { + return new ConcurrentMapCacheManager("customerOrders", "orderprice"); + } + + @Bean + public CacheResolver cacheResolver() { + return new MultipleCacheResolver(alternateCacheManager(), cacheManager()); + } +} diff --git a/spring-caching/src/main/java/com/baeldung/multiplecachemanager/config/MultipleCacheResolver.java b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/config/MultipleCacheResolver.java new file mode 100644 index 0000000000..1bd869d98e --- /dev/null +++ b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/config/MultipleCacheResolver.java @@ -0,0 +1,38 @@ +package com.baeldung.multiplecachemanager.config; + +import java.util.ArrayList; +import java.util.Collection; + +import org.springframework.cache.Cache; +import org.springframework.cache.CacheManager; +import org.springframework.cache.interceptor.CacheOperationInvocationContext; +import org.springframework.cache.interceptor.CacheResolver; + +public class MultipleCacheResolver implements CacheResolver { + + private final CacheManager simpleCacheManager; + + private final CacheManager caffeineCacheManager; + + private static final String ORDER_CACHE = "orders"; + + private static final String ORDER_PRICE_CACHE = "orderprice"; + + public MultipleCacheResolver(CacheManager simpleCacheManager, CacheManager caffeineCacheManager) { + this.simpleCacheManager = simpleCacheManager; + this.caffeineCacheManager = caffeineCacheManager; + + } + + @Override + public Collection<? extends Cache> resolveCaches(CacheOperationInvocationContext<?> context) { + Collection<Cache> caches = new ArrayList<Cache>(); + if ("getOrderDetail".equals(context.getMethod() + .getName())) { + caches.add(caffeineCacheManager.getCache(ORDER_CACHE)); + } else { + caches.add(simpleCacheManager.getCache(ORDER_PRICE_CACHE)); + } + return caches; + } +} diff --git a/spring-caching/src/main/java/com/baeldung/multiplecachemanager/controller/MultipleCacheManagerController.java b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/controller/MultipleCacheManagerController.java new file mode 100644 index 0000000000..17a73bb27a --- /dev/null +++ b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/controller/MultipleCacheManagerController.java @@ -0,0 +1,43 @@ +package com.baeldung.multiplecachemanager.controller; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; + +import com.baeldung.multiplecachemanager.bo.CustomerDetailBO; +import com.baeldung.multiplecachemanager.bo.OrderDetailBO; +import com.baeldung.multiplecachemanager.entity.Customer; +import com.baeldung.multiplecachemanager.entity.Order; + +@RestController +public class MultipleCacheManagerController { + + @Autowired + private CustomerDetailBO customerDetailBO; + + @Autowired + private OrderDetailBO orderDetailBO; + + @GetMapping(value = "/getCustomer/{customerid}") + public Customer getCustomer(@PathVariable Integer customerid) { + return customerDetailBO.getCustomerDetail(customerid); + } + + @GetMapping(value = "/getCustomerOrders/{customerid}") + public List<Order> getCustomerOrders(@PathVariable Integer customerid) { + return customerDetailBO.getCustomerOrders(customerid); + } + + @GetMapping(value = "/getOrder/{orderid}") + public Order getOrder(@PathVariable Integer orderid) { + return orderDetailBO.getOrderDetail(orderid); + } + + @GetMapping(value = "/getOrderPrice/{orderid}") + public double getOrderPrice(@PathVariable Integer orderid) { + return orderDetailBO.getOrderPrice(orderid); + } +} diff --git a/spring-caching/src/main/java/com/baeldung/multiplecachemanager/entity/Customer.java b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/entity/Customer.java new file mode 100644 index 0000000000..cfae15f4e9 --- /dev/null +++ b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/entity/Customer.java @@ -0,0 +1,24 @@ +package com.baeldung.multiplecachemanager.entity; + +public class Customer { + + private int customerId; + + private String customerName; + + public int getCustomerId() { + return customerId; + } + + public void setCustomerId(int customerId) { + this.customerId = customerId; + } + + public String getCustomerName() { + return customerName; + } + + public void setCustomerName(String customerName) { + this.customerName = customerName; + } +} diff --git a/spring-caching/src/main/java/com/baeldung/multiplecachemanager/entity/Item.java b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/entity/Item.java new file mode 100644 index 0000000000..4131464981 --- /dev/null +++ b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/entity/Item.java @@ -0,0 +1,34 @@ +package com.baeldung.multiplecachemanager.entity; + +public class Item { + + private int itemId; + + private String itemDesc; + + private double itemPrice; + + public int getItemId() { + return itemId; + } + + public void setItemId(int itemId) { + this.itemId = itemId; + } + + public String getItemDesc() { + return itemDesc; + } + + public void setItemDesc(String itemDesc) { + this.itemDesc = itemDesc; + } + + public double getItemPrice() { + return itemPrice; + } + + public void setItemPrice(double itemPrice) { + this.itemPrice = itemPrice; + } +} diff --git a/spring-caching/src/main/java/com/baeldung/multiplecachemanager/entity/Order.java b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/entity/Order.java new file mode 100644 index 0000000000..15da60d6ea --- /dev/null +++ b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/entity/Order.java @@ -0,0 +1,44 @@ +package com.baeldung.multiplecachemanager.entity; + +public class Order { + + private int orderId; + + private int itemId; + + private int quantity; + + private int customerId; + + public int getOrderId() { + return orderId; + } + + public void setOrderId(int orderId) { + this.orderId = orderId; + } + + public int getItemId() { + return itemId; + } + + public void setItemId(int itemId) { + this.itemId = itemId; + } + + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + public int getCustomerId() { + return customerId; + } + + public void setCustomerId(int customerId) { + this.customerId = customerId; + } +} diff --git a/spring-caching/src/main/java/com/baeldung/multiplecachemanager/repository/CustomerDetailRepository.java b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/repository/CustomerDetailRepository.java new file mode 100644 index 0000000000..aab011427d --- /dev/null +++ b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/repository/CustomerDetailRepository.java @@ -0,0 +1,49 @@ +package com.baeldung.multiplecachemanager.repository; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowCallbackHandler; +import org.springframework.stereotype.Repository; + +import com.baeldung.multiplecachemanager.entity.Customer; +import com.baeldung.multiplecachemanager.entity.Order; + +@Repository +public class CustomerDetailRepository { + + @Autowired + private JdbcTemplate jdbcTemplate; + + public Customer getCustomerDetail(Integer customerId) { + String customerQuery = "select * from customer where customerid = ? "; + Customer customer = new Customer(); + jdbcTemplate.query(customerQuery, new Object[] { customerId }, new RowCallbackHandler() { + public void processRow(ResultSet rs) throws SQLException { + customer.setCustomerId(rs.getInt("customerid")); + customer.setCustomerName(rs.getString("customername")); + } + }); + return customer; + } + + public List<Order> getCustomerOrders(Integer customerId) { + String customerOrderQuery = "select * from orderdetail where customerid = ? "; + List<Order> orders = new ArrayList<Order>(); + jdbcTemplate.query(customerOrderQuery, new Object[] { customerId }, new RowCallbackHandler() { + public void processRow(ResultSet rs) throws SQLException { + Order order = new Order(); + order.setCustomerId(rs.getInt("customerid")); + order.setItemId(rs.getInt("orderid")); + order.setOrderId(rs.getInt("orderid")); + order.setQuantity(rs.getInt("quantity")); + orders.add(order); + } + }); + return orders; + } +} diff --git a/spring-caching/src/main/java/com/baeldung/multiplecachemanager/repository/OrderDetailRepository.java b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/repository/OrderDetailRepository.java new file mode 100644 index 0000000000..58c0968e48 --- /dev/null +++ b/spring-caching/src/main/java/com/baeldung/multiplecachemanager/repository/OrderDetailRepository.java @@ -0,0 +1,53 @@ +package com.baeldung.multiplecachemanager.repository; + +import java.sql.ResultSet; +import java.sql.SQLException; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowCallbackHandler; +import org.springframework.stereotype.Repository; + +import com.baeldung.multiplecachemanager.entity.Item; +import com.baeldung.multiplecachemanager.entity.Order; + +@Repository +public class OrderDetailRepository { + + @Autowired + private JdbcTemplate jdbcTemplate; + + public Order getOrderDetail(Integer orderId) { + String orderDetailQuery = "select * from orderdetail where orderid = ? "; + Order order = new Order(); + jdbcTemplate.query(orderDetailQuery, new Object[] { orderId }, new RowCallbackHandler() { + public void processRow(ResultSet rs) throws SQLException { + order.setCustomerId(rs.getInt("customerid")); + order.setOrderId(rs.getInt("orderid")); + order.setItemId(rs.getInt("itemid")); + order.setQuantity(rs.getInt("quantity")); + } + }); + return order; + } + + public double getOrderPrice(Integer orderId) { + + String orderItemJoinQuery = "select * from ( select * from orderdetail where orderid = ? ) o left join item on o.itemid = ITEM.itemid"; + Order order = new Order(); + Item item = new Item(); + + jdbcTemplate.query(orderItemJoinQuery, new Object[] { orderId }, new RowCallbackHandler() { + public void processRow(ResultSet rs) throws SQLException { + order.setCustomerId(rs.getInt("customerid")); + order.setOrderId(rs.getInt("orderid")); + order.setItemId(rs.getInt("itemid")); + order.setQuantity(rs.getInt("quantity")); + item.setItemDesc("itemdesc"); + item.setItemId(rs.getInt("itemid")); + item.setItemPrice(rs.getDouble("price")); + } + }); + return order.getQuantity() * item.getItemPrice(); + } +} diff --git a/spring-caching/src/main/resources/application.properties b/spring-caching/src/main/resources/application.properties new file mode 100644 index 0000000000..53a3ac93b4 --- /dev/null +++ b/spring-caching/src/main/resources/application.properties @@ -0,0 +1,10 @@ +spring.datasource.url=jdbc:h2:mem:testdb +spring.datasource.driverClassName=org.h2.Driver +spring.datasource.username=sa +spring.datasource.password= +#spring.h2.console.enabled=false + + +# Enabling H2 Console +spring.h2.console.enabled=true +spring.h2.console.path=/h2 diff --git a/spring-caching/src/main/resources/data.sql b/spring-caching/src/main/resources/data.sql new file mode 100644 index 0000000000..e4165ae71f --- /dev/null +++ b/spring-caching/src/main/resources/data.sql @@ -0,0 +1,7 @@ +INSERT INTO CUSTOMER VALUES(1001,'BAELDUNG'); + +INSERT INTO ITEM VALUES(10001,'ITEM1',50.0); +INSERT INTO ITEM VALUES(10002,'ITEM2',100.0); + +INSERT INTO ORDERDETAIL VALUES(300001,1001,10001,2); +INSERT INTO ORDERDETAIL VALUES(300002,1001,10002,5); \ No newline at end of file diff --git a/spring-caching/src/main/resources/schema.sql b/spring-caching/src/main/resources/schema.sql new file mode 100644 index 0000000000..5862499bc0 --- /dev/null +++ b/spring-caching/src/main/resources/schema.sql @@ -0,0 +1,19 @@ +CREATE TABLE CUSTOMER( + CUSTOMERID INT PRIMARY KEY, + CUSTOMERNAME VARCHAR(250) NOT NULL +); + +CREATE TABLE ITEM( +ITEMID INT PRIMARY KEY, +ITEMDESC VARCHAR(250), +PRICE DOUBLE +); + +CREATE TABLE ORDERDETAIL( +ORDERID INT PRIMARY KEY, +CUSTOMERID INT NOT NULL, +ITEMID INT NOT NULL, +QUANTITY INT, +FOREIGN KEY (customerid) references CUSTOMER(customerid), +FOREIGN KEY (itemid) references ITEM(itemid) +); \ No newline at end of file diff --git a/spring-caching/src/test/java/com/baeldung/multiplecachemanager/MultipleCacheManagerIntegrationUnitTest.java b/spring-caching/src/test/java/com/baeldung/multiplecachemanager/MultipleCacheManagerIntegrationUnitTest.java new file mode 100644 index 0000000000..4bcbdb4d68 --- /dev/null +++ b/spring-caching/src/test/java/com/baeldung/multiplecachemanager/MultipleCacheManagerIntegrationUnitTest.java @@ -0,0 +1,64 @@ +package com.baeldung.multiplecachemanager; + +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.cache.Cache; +import org.springframework.cache.CacheManager; +import org.springframework.cache.caffeine.CaffeineCache; +import org.springframework.util.Assert; + +import com.baeldung.multiplecachemanager.bo.OrderDetailBO; +import com.baeldung.multiplecachemanager.entity.Order; +import com.baeldung.multiplecachemanager.repository.OrderDetailRepository; + +@SpringBootApplication +@SpringBootTest +public class MultipleCacheManagerIntegrationUnitTest { + + @MockBean + private OrderDetailRepository orderDetailRepository; + + @Autowired + private OrderDetailBO orderDetailBO; + + @Autowired + private CacheManager cacheManager; + + @Autowired + private CacheManager alternateCacheManager; + + @Test + public void whenCallGetOrderDetail_thenDataShouldBeInCaffieneCacheManager() { + Integer key = 30001; + cacheManager.getCache("orders") + .evict(key); + Order order = new Order(); + order.setCustomerId(1001); + order.setItemId(10001); + order.setOrderId(30001); + order.setQuantity(2); + Mockito.when(orderDetailRepository.getOrderDetail(key)) + .thenReturn(order); + orderDetailBO.getOrderDetail(key); + org.springframework.cache.caffeine.CaffeineCache cache = (CaffeineCache) cacheManager.getCache("orders"); + Assert.notNull(cache.get(key) + .get(), "caffieneCache should have had the data"); + } + + @Test + public void whenCallGetOrderPrice_thenDataShouldBeInAlternateCacheManager() { + Integer key = 30001; + alternateCacheManager.getCache("orderprice") + .evict(key); + Mockito.when(orderDetailRepository.getOrderPrice(key)) + .thenReturn(500.0); + orderDetailBO.getOrderPrice(key); + Cache cache = alternateCacheManager.getCache("orderprice"); + Assert.notNull(cache.get(key) + .get(), "alternateCache should have had the data"); + } +} From a6dc19343777ab7b6b2ecb6496b1ee7b1f027b19 Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankur.gupta@jda.com> Date: Sat, 18 Apr 2020 03:52:29 +0530 Subject: [PATCH 006/156] removing new module created in last pull request --- multiplecachemanager/pom.xml | 69 ------------------- .../MultiplecachemanagerApplication.java | 45 ------------ .../bo/CustomerDetailBO.java | 28 -------- .../bo/OrderDetailBO.java | 25 ------- .../config/MultipleCacheResolver.java | 38 ---------- .../MultipleCacheManagerController.java | 43 ------------ .../multiplecachemanager/entity/Customer.java | 24 ------- .../multiplecachemanager/entity/Item.java | 34 --------- .../multiplecachemanager/entity/Order.java | 44 ------------ .../repository/CustomerDetailRepository.java | 49 ------------- .../repository/OrderDetailRepository.java | 53 -------------- .../src/main/resources/application.properties | 10 --- .../src/main/resources/data.sql | 7 -- .../src/main/resources/schema.sql | 19 ----- .../MultiplecachemanagerApplicationTests.java | 13 ---- 15 files changed, 501 deletions(-) delete mode 100644 multiplecachemanager/pom.xml delete mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/MultiplecachemanagerApplication.java delete mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/bo/CustomerDetailBO.java delete mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/bo/OrderDetailBO.java delete mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/config/MultipleCacheResolver.java delete mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/controller/MultipleCacheManagerController.java delete mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Customer.java delete mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Item.java delete mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Order.java delete mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/repository/CustomerDetailRepository.java delete mode 100644 multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/repository/OrderDetailRepository.java delete mode 100644 multiplecachemanager/src/main/resources/application.properties delete mode 100644 multiplecachemanager/src/main/resources/data.sql delete mode 100644 multiplecachemanager/src/main/resources/schema.sql delete mode 100644 multiplecachemanager/src/test/java/com/baeldung/multiplecachemanager/MultiplecachemanagerApplicationTests.java diff --git a/multiplecachemanager/pom.xml b/multiplecachemanager/pom.xml deleted file mode 100644 index 22daf6e87d..0000000000 --- a/multiplecachemanager/pom.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-parent</artifactId> - <version>2.2.6.RELEASE</version> - <relativePath/> <!-- lookup parent from repository --> - </parent> - <groupId>com.baeldung</groupId> - <artifactId>multiplecachemanager</artifactId> - <version>0.0.1-SNAPSHOT</version> - <name>multiplecachemanager</name> - <description>sample project for configuring multiple cache managers</description> - - <properties> - <java.version>1.8</java.version> - </properties> - - <dependencies> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-jdbc</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-web</artifactId> - </dependency> - - <dependency> - <groupId>com.h2database</groupId> - <artifactId>h2</artifactId> - <scope>runtime</scope> - </dependency> - - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-cache</artifactId> - </dependency> - - <dependency> - <groupId>com.github.ben-manes.caffeine</groupId> - <artifactId>caffeine</artifactId> - </dependency> - - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-test</artifactId> - <scope>test</scope> - <exclusions> - <exclusion> - <groupId>org.junit.vintage</groupId> - <artifactId>junit-vintage-engine</artifactId> - </exclusion> - </exclusions> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-maven-plugin</artifactId> - </plugin> - </plugins> - </build> - -</project> diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/MultiplecachemanagerApplication.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/MultiplecachemanagerApplication.java deleted file mode 100644 index 4c7efc98bd..0000000000 --- a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/MultiplecachemanagerApplication.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.baeldung.multiplecachemanager; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cache.CacheManager; -import org.springframework.cache.annotation.CachingConfigurerSupport; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.cache.caffeine.CaffeineCacheManager; -import org.springframework.cache.concurrent.ConcurrentMapCacheManager; -import org.springframework.cache.interceptor.CacheResolver; -import org.springframework.context.annotation.Bean; - -import com.baeldung.multiplecachemanager.config.MultipleCacheResolver; -import com.github.benmanes.caffeine.cache.Caffeine; - -@SpringBootApplication -@EnableCaching -public class MultiplecachemanagerApplication extends CachingConfigurerSupport { - - public static void main(String[] args) { - SpringApplication.run(MultiplecachemanagerApplication.class, args); - } - - @Bean - // @Primary - public CacheManager cacheManager() { - CaffeineCacheManager cacheManager = new CaffeineCacheManager("customers", "orders"); - cacheManager.setCaffeine(Caffeine.newBuilder() - .initialCapacity(200) - .maximumSize(500) - .weakKeys() - .recordStats()); - return cacheManager; - } - - @Bean - public CacheManager alternateCacheManager() { - return new ConcurrentMapCacheManager("customerOrders", "orderprice"); - } - - @Bean - public CacheResolver cacheResolver() { - return new MultipleCacheResolver(alternateCacheManager(), cacheManager()); - } -} diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/bo/CustomerDetailBO.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/bo/CustomerDetailBO.java deleted file mode 100644 index 3da4c23e28..0000000000 --- a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/bo/CustomerDetailBO.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.baeldung.multiplecachemanager.bo; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cache.annotation.Cacheable; -import org.springframework.stereotype.Component; - -import com.baeldung.multiplecachemanager.entity.Customer; -import com.baeldung.multiplecachemanager.entity.Order; -import com.baeldung.multiplecachemanager.repository.CustomerDetailRepository; - -@Component -public class CustomerDetailBO { - - @Autowired - private CustomerDetailRepository customerDetailRepository; - - @Cacheable(cacheNames = "customers") - public Customer getCustomerDetail(Integer customerId) { - return customerDetailRepository.getCustomerDetail(customerId); - } - - @Cacheable(cacheNames = "customerOrders", cacheManager = "alternateCacheManager") - public List<Order> getCustomerOrders(Integer customerId) { - return customerDetailRepository.getCustomerOrders(customerId); - } -} diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/bo/OrderDetailBO.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/bo/OrderDetailBO.java deleted file mode 100644 index cb9e301fcb..0000000000 --- a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/bo/OrderDetailBO.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.baeldung.multiplecachemanager.bo; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cache.annotation.Cacheable; -import org.springframework.stereotype.Component; - -import com.baeldung.multiplecachemanager.entity.Order; -import com.baeldung.multiplecachemanager.repository.OrderDetailRepository; - -@Component -public class OrderDetailBO { - - @Autowired - private OrderDetailRepository orderDetailRepository; - - @Cacheable(cacheNames = "orders", cacheResolver = "cacheResolver") - public Order getOrderDetail(Integer orderId) { - return orderDetailRepository.getOrderDetail(orderId); - } - - @Cacheable(cacheNames = "orderprice", cacheResolver = "cacheResolver") - public double getOrderPrice(Integer orderId) { - return orderDetailRepository.getOrderPrice(orderId); - } -} diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/config/MultipleCacheResolver.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/config/MultipleCacheResolver.java deleted file mode 100644 index 1bd869d98e..0000000000 --- a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/config/MultipleCacheResolver.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.baeldung.multiplecachemanager.config; - -import java.util.ArrayList; -import java.util.Collection; - -import org.springframework.cache.Cache; -import org.springframework.cache.CacheManager; -import org.springframework.cache.interceptor.CacheOperationInvocationContext; -import org.springframework.cache.interceptor.CacheResolver; - -public class MultipleCacheResolver implements CacheResolver { - - private final CacheManager simpleCacheManager; - - private final CacheManager caffeineCacheManager; - - private static final String ORDER_CACHE = "orders"; - - private static final String ORDER_PRICE_CACHE = "orderprice"; - - public MultipleCacheResolver(CacheManager simpleCacheManager, CacheManager caffeineCacheManager) { - this.simpleCacheManager = simpleCacheManager; - this.caffeineCacheManager = caffeineCacheManager; - - } - - @Override - public Collection<? extends Cache> resolveCaches(CacheOperationInvocationContext<?> context) { - Collection<Cache> caches = new ArrayList<Cache>(); - if ("getOrderDetail".equals(context.getMethod() - .getName())) { - caches.add(caffeineCacheManager.getCache(ORDER_CACHE)); - } else { - caches.add(simpleCacheManager.getCache(ORDER_PRICE_CACHE)); - } - return caches; - } -} diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/controller/MultipleCacheManagerController.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/controller/MultipleCacheManagerController.java deleted file mode 100644 index 17a73bb27a..0000000000 --- a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/controller/MultipleCacheManagerController.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.baeldung.multiplecachemanager.controller; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RestController; - -import com.baeldung.multiplecachemanager.bo.CustomerDetailBO; -import com.baeldung.multiplecachemanager.bo.OrderDetailBO; -import com.baeldung.multiplecachemanager.entity.Customer; -import com.baeldung.multiplecachemanager.entity.Order; - -@RestController -public class MultipleCacheManagerController { - - @Autowired - private CustomerDetailBO customerDetailBO; - - @Autowired - private OrderDetailBO orderDetailBO; - - @GetMapping(value = "/getCustomer/{customerid}") - public Customer getCustomer(@PathVariable Integer customerid) { - return customerDetailBO.getCustomerDetail(customerid); - } - - @GetMapping(value = "/getCustomerOrders/{customerid}") - public List<Order> getCustomerOrders(@PathVariable Integer customerid) { - return customerDetailBO.getCustomerOrders(customerid); - } - - @GetMapping(value = "/getOrder/{orderid}") - public Order getOrder(@PathVariable Integer orderid) { - return orderDetailBO.getOrderDetail(orderid); - } - - @GetMapping(value = "/getOrderPrice/{orderid}") - public double getOrderPrice(@PathVariable Integer orderid) { - return orderDetailBO.getOrderPrice(orderid); - } -} diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Customer.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Customer.java deleted file mode 100644 index cfae15f4e9..0000000000 --- a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Customer.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.baeldung.multiplecachemanager.entity; - -public class Customer { - - private int customerId; - - private String customerName; - - public int getCustomerId() { - return customerId; - } - - public void setCustomerId(int customerId) { - this.customerId = customerId; - } - - public String getCustomerName() { - return customerName; - } - - public void setCustomerName(String customerName) { - this.customerName = customerName; - } -} diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Item.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Item.java deleted file mode 100644 index 4131464981..0000000000 --- a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Item.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.baeldung.multiplecachemanager.entity; - -public class Item { - - private int itemId; - - private String itemDesc; - - private double itemPrice; - - public int getItemId() { - return itemId; - } - - public void setItemId(int itemId) { - this.itemId = itemId; - } - - public String getItemDesc() { - return itemDesc; - } - - public void setItemDesc(String itemDesc) { - this.itemDesc = itemDesc; - } - - public double getItemPrice() { - return itemPrice; - } - - public void setItemPrice(double itemPrice) { - this.itemPrice = itemPrice; - } -} diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Order.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Order.java deleted file mode 100644 index 15da60d6ea..0000000000 --- a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/entity/Order.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.baeldung.multiplecachemanager.entity; - -public class Order { - - private int orderId; - - private int itemId; - - private int quantity; - - private int customerId; - - public int getOrderId() { - return orderId; - } - - public void setOrderId(int orderId) { - this.orderId = orderId; - } - - public int getItemId() { - return itemId; - } - - public void setItemId(int itemId) { - this.itemId = itemId; - } - - public int getQuantity() { - return quantity; - } - - public void setQuantity(int quantity) { - this.quantity = quantity; - } - - public int getCustomerId() { - return customerId; - } - - public void setCustomerId(int customerId) { - this.customerId = customerId; - } -} diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/repository/CustomerDetailRepository.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/repository/CustomerDetailRepository.java deleted file mode 100644 index aab011427d..0000000000 --- a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/repository/CustomerDetailRepository.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.baeldung.multiplecachemanager.repository; - -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.jdbc.core.RowCallbackHandler; -import org.springframework.stereotype.Repository; - -import com.baeldung.multiplecachemanager.entity.Customer; -import com.baeldung.multiplecachemanager.entity.Order; - -@Repository -public class CustomerDetailRepository { - - @Autowired - private JdbcTemplate jdbcTemplate; - - public Customer getCustomerDetail(Integer customerId) { - String customerQuery = "select * from customer where customerid = ? "; - Customer customer = new Customer(); - jdbcTemplate.query(customerQuery, new Object[] { customerId }, new RowCallbackHandler() { - public void processRow(ResultSet rs) throws SQLException { - customer.setCustomerId(rs.getInt("customerid")); - customer.setCustomerName(rs.getString("customername")); - } - }); - return customer; - } - - public List<Order> getCustomerOrders(Integer customerId) { - String customerOrderQuery = "select * from orderdetail where customerid = ? "; - List<Order> orders = new ArrayList<Order>(); - jdbcTemplate.query(customerOrderQuery, new Object[] { customerId }, new RowCallbackHandler() { - public void processRow(ResultSet rs) throws SQLException { - Order order = new Order(); - order.setCustomerId(rs.getInt("customerid")); - order.setItemId(rs.getInt("orderid")); - order.setOrderId(rs.getInt("orderid")); - order.setQuantity(rs.getInt("quantity")); - orders.add(order); - } - }); - return orders; - } -} diff --git a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/repository/OrderDetailRepository.java b/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/repository/OrderDetailRepository.java deleted file mode 100644 index 58c0968e48..0000000000 --- a/multiplecachemanager/src/main/java/com/baeldung/multiplecachemanager/repository/OrderDetailRepository.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.baeldung.multiplecachemanager.repository; - -import java.sql.ResultSet; -import java.sql.SQLException; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.jdbc.core.RowCallbackHandler; -import org.springframework.stereotype.Repository; - -import com.baeldung.multiplecachemanager.entity.Item; -import com.baeldung.multiplecachemanager.entity.Order; - -@Repository -public class OrderDetailRepository { - - @Autowired - private JdbcTemplate jdbcTemplate; - - public Order getOrderDetail(Integer orderId) { - String orderDetailQuery = "select * from orderdetail where orderid = ? "; - Order order = new Order(); - jdbcTemplate.query(orderDetailQuery, new Object[] { orderId }, new RowCallbackHandler() { - public void processRow(ResultSet rs) throws SQLException { - order.setCustomerId(rs.getInt("customerid")); - order.setOrderId(rs.getInt("orderid")); - order.setItemId(rs.getInt("itemid")); - order.setQuantity(rs.getInt("quantity")); - } - }); - return order; - } - - public double getOrderPrice(Integer orderId) { - - String orderItemJoinQuery = "select * from ( select * from orderdetail where orderid = ? ) o left join item on o.itemid = ITEM.itemid"; - Order order = new Order(); - Item item = new Item(); - - jdbcTemplate.query(orderItemJoinQuery, new Object[] { orderId }, new RowCallbackHandler() { - public void processRow(ResultSet rs) throws SQLException { - order.setCustomerId(rs.getInt("customerid")); - order.setOrderId(rs.getInt("orderid")); - order.setItemId(rs.getInt("itemid")); - order.setQuantity(rs.getInt("quantity")); - item.setItemDesc("itemdesc"); - item.setItemId(rs.getInt("itemid")); - item.setItemPrice(rs.getDouble("price")); - } - }); - return order.getQuantity() * item.getItemPrice(); - } -} diff --git a/multiplecachemanager/src/main/resources/application.properties b/multiplecachemanager/src/main/resources/application.properties deleted file mode 100644 index 53a3ac93b4..0000000000 --- a/multiplecachemanager/src/main/resources/application.properties +++ /dev/null @@ -1,10 +0,0 @@ -spring.datasource.url=jdbc:h2:mem:testdb -spring.datasource.driverClassName=org.h2.Driver -spring.datasource.username=sa -spring.datasource.password= -#spring.h2.console.enabled=false - - -# Enabling H2 Console -spring.h2.console.enabled=true -spring.h2.console.path=/h2 diff --git a/multiplecachemanager/src/main/resources/data.sql b/multiplecachemanager/src/main/resources/data.sql deleted file mode 100644 index e4165ae71f..0000000000 --- a/multiplecachemanager/src/main/resources/data.sql +++ /dev/null @@ -1,7 +0,0 @@ -INSERT INTO CUSTOMER VALUES(1001,'BAELDUNG'); - -INSERT INTO ITEM VALUES(10001,'ITEM1',50.0); -INSERT INTO ITEM VALUES(10002,'ITEM2',100.0); - -INSERT INTO ORDERDETAIL VALUES(300001,1001,10001,2); -INSERT INTO ORDERDETAIL VALUES(300002,1001,10002,5); \ No newline at end of file diff --git a/multiplecachemanager/src/main/resources/schema.sql b/multiplecachemanager/src/main/resources/schema.sql deleted file mode 100644 index 5862499bc0..0000000000 --- a/multiplecachemanager/src/main/resources/schema.sql +++ /dev/null @@ -1,19 +0,0 @@ -CREATE TABLE CUSTOMER( - CUSTOMERID INT PRIMARY KEY, - CUSTOMERNAME VARCHAR(250) NOT NULL -); - -CREATE TABLE ITEM( -ITEMID INT PRIMARY KEY, -ITEMDESC VARCHAR(250), -PRICE DOUBLE -); - -CREATE TABLE ORDERDETAIL( -ORDERID INT PRIMARY KEY, -CUSTOMERID INT NOT NULL, -ITEMID INT NOT NULL, -QUANTITY INT, -FOREIGN KEY (customerid) references CUSTOMER(customerid), -FOREIGN KEY (itemid) references ITEM(itemid) -); \ No newline at end of file diff --git a/multiplecachemanager/src/test/java/com/baeldung/multiplecachemanager/MultiplecachemanagerApplicationTests.java b/multiplecachemanager/src/test/java/com/baeldung/multiplecachemanager/MultiplecachemanagerApplicationTests.java deleted file mode 100644 index adf69309f2..0000000000 --- a/multiplecachemanager/src/test/java/com/baeldung/multiplecachemanager/MultiplecachemanagerApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.baeldung.multiplecachemanager; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class MultiplecachemanagerApplicationTests { - - @Test - void contextLoads() { - } - -} From d7ee1a96991f4f2854ed388861797f1a8f4765be Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankur.gupta@jda.com> Date: Sat, 18 Apr 2020 15:52:19 +0530 Subject: [PATCH 007/156] Fixes as per editor Suggestions --- spring-caching/pom.xml | 101 +++++++++--------- .../src/main/resources/application.properties | 2 - ...ltipleCacheManagerIntegrationUnitTest.java | 4 +- 3 files changed, 53 insertions(+), 54 deletions(-) diff --git a/spring-caching/pom.xml b/spring-caching/pom.xml index 11dd9a8873..f56d3cf328 100644 --- a/spring-caching/pom.xml +++ b/spring-caching/pom.xml @@ -1,54 +1,55 @@ <?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <artifactId>spring-caching</artifactId> - <version>0.1-SNAPSHOT</version> - <name>spring-caching</name> - <packaging>war</packaging> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <artifactId>spring-caching</artifactId> + <version>0.1-SNAPSHOT</version> + <name>spring-caching</name> + <packaging>war</packaging> - <parent> - <groupId>com.baeldung</groupId> - <artifactId>parent-boot-2</artifactId> - <version>0.0.1-SNAPSHOT</version> - <relativePath>../parent-boot-2</relativePath> - </parent> + <parent> + <groupId>com.baeldung</groupId> + <artifactId>parent-boot-2</artifactId> + <version>0.0.1-SNAPSHOT</version> + <relativePath>../parent-boot-2</relativePath> + </parent> - <dependencies> - <dependency> + <dependencies> + <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-context</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-cache</artifactId> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-web</artifactId> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-webmvc</artifactId> - </dependency> - <dependency> - <groupId>org.ehcache</groupId> - <artifactId>ehcache</artifactId> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-test</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>com.github.ben-manes.caffeine</groupId> - <artifactId>caffeine</artifactId> - </dependency> - <dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-cache</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-web</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-webmvc</artifactId> + </dependency> + <dependency> + <groupId>org.ehcache</groupId> + <artifactId>ehcache</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-test</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>com.github.ben-manes.caffeine</groupId> + <artifactId>caffeine</artifactId> + </dependency> + <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> @@ -57,10 +58,10 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> - </dependencies> + </dependencies> + + <properties> + <ehcache.version>3.5.2</ehcache.version> + </properties> - <properties> - <ehcache.version>3.5.2</ehcache.version> - </properties> - </project> \ No newline at end of file diff --git a/spring-caching/src/main/resources/application.properties b/spring-caching/src/main/resources/application.properties index 53a3ac93b4..ee7b5e62c0 100644 --- a/spring-caching/src/main/resources/application.properties +++ b/spring-caching/src/main/resources/application.properties @@ -2,8 +2,6 @@ spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= -#spring.h2.console.enabled=false - # Enabling H2 Console spring.h2.console.enabled=true diff --git a/spring-caching/src/test/java/com/baeldung/multiplecachemanager/MultipleCacheManagerIntegrationUnitTest.java b/spring-caching/src/test/java/com/baeldung/multiplecachemanager/MultipleCacheManagerIntegrationUnitTest.java index 4bcbdb4d68..e02e5da246 100644 --- a/spring-caching/src/test/java/com/baeldung/multiplecachemanager/MultipleCacheManagerIntegrationUnitTest.java +++ b/spring-caching/src/test/java/com/baeldung/multiplecachemanager/MultipleCacheManagerIntegrationUnitTest.java @@ -32,7 +32,7 @@ public class MultipleCacheManagerIntegrationUnitTest { private CacheManager alternateCacheManager; @Test - public void whenCallGetOrderDetail_thenDataShouldBeInCaffieneCacheManager() { + public void givenCacheResolverIsConfigured_whenCallGetOrderDetail_thenDataShouldBeInCaffieneCacheManager() { Integer key = 30001; cacheManager.getCache("orders") .evict(key); @@ -50,7 +50,7 @@ public class MultipleCacheManagerIntegrationUnitTest { } @Test - public void whenCallGetOrderPrice_thenDataShouldBeInAlternateCacheManager() { + public void givenCacheResolverIsConfigured_whenCallGetOrderPrice_thenDataShouldBeInAlternateCacheManager() { Integer key = 30001; alternateCacheManager.getCache("orderprice") .evict(key); From 5d04769c759824fb6d39eff874eda44339337830 Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankur.gupta@jda.com> Date: Mon, 27 Apr 2020 01:54:51 +0530 Subject: [PATCH 008/156] fixing spacing issue in pom.xml --- spring-caching/pom.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spring-caching/pom.xml b/spring-caching/pom.xml index f56d3cf328..e62ebd501b 100644 --- a/spring-caching/pom.xml +++ b/spring-caching/pom.xml @@ -63,5 +63,4 @@ <properties> <ehcache.version>3.5.2</ehcache.version> </properties> - -</project> \ No newline at end of file +</project> From 4103e9a75c991125c2f919925a0c4c77dc036b32 Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankurguptajec@gmail.com> Date: Mon, 27 Apr 2020 02:10:04 +0530 Subject: [PATCH 009/156] Fixing spacing issue in pom.xml --- spring-caching/pom.xml | 116 ++++++++++++++++++++--------------------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/spring-caching/pom.xml b/spring-caching/pom.xml index e62ebd501b..3c594ee8ab 100644 --- a/spring-caching/pom.xml +++ b/spring-caching/pom.xml @@ -2,65 +2,65 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <artifactId>spring-caching</artifactId> - <version>0.1-SNAPSHOT</version> - <name>spring-caching</name> - <packaging>war</packaging> + <modelVersion>4.0.0</modelVersion> + <artifactId>spring-caching</artifactId> + <version>0.1-SNAPSHOT</version> + <name>spring-caching</name> + <packaging>war</packaging> - <parent> - <groupId>com.baeldung</groupId> - <artifactId>parent-boot-2</artifactId> - <version>0.0.1-SNAPSHOT</version> - <relativePath>../parent-boot-2</relativePath> - </parent> + <parent> + <groupId>com.baeldung</groupId> + <artifactId>parent-boot-2</artifactId> + <version>0.0.1-SNAPSHOT</version> + <relativePath>../parent-boot-2</relativePath> + </parent> - <dependencies> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-web</artifactId> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-context</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-cache</artifactId> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-web</artifactId> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-webmvc</artifactId> - </dependency> - <dependency> - <groupId>org.ehcache</groupId> - <artifactId>ehcache</artifactId> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-test</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>com.github.ben-manes.caffeine</groupId> - <artifactId>caffeine</artifactId> - </dependency> - <dependency> - <groupId>com.h2database</groupId> - <artifactId>h2</artifactId> - <scope>runtime</scope> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-jdbc</artifactId> - </dependency> - </dependencies> + <dependencies> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-cache</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-web</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-webmvc</artifactId> + </dependency> + <dependency> + <groupId>org.ehcache</groupId> + <artifactId>ehcache</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-test</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>com.github.ben-manes.caffeine</groupId> + <artifactId>caffeine</artifactId> + </dependency> + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-jdbc</artifactId> + </dependency> + </dependencies> - <properties> - <ehcache.version>3.5.2</ehcache.version> - </properties> + <properties> + <ehcache.version>3.5.2</ehcache.version> + </properties> </project> From f9a771d6952cf968f597f4bc4beb7c3575ef2d21 Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankurguptajec@gmail.com> Date: Mon, 27 Apr 2020 02:51:43 +0530 Subject: [PATCH 010/156] Fixing spacing issue 2 --- spring-caching/pom.xml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/spring-caching/pom.xml b/spring-caching/pom.xml index 3c594ee8ab..f443919b42 100644 --- a/spring-caching/pom.xml +++ b/spring-caching/pom.xml @@ -2,20 +2,20 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <artifactId>spring-caching</artifactId> - <version>0.1-SNAPSHOT</version> - <name>spring-caching</name> - <packaging>war</packaging> + <modelVersion>4.0.0</modelVersion> + <artifactId>spring-caching</artifactId> + <version>0.1-SNAPSHOT</version> + <name>spring-caching</name> + <packaging>war</packaging> - <parent> - <groupId>com.baeldung</groupId> - <artifactId>parent-boot-2</artifactId> - <version>0.0.1-SNAPSHOT</version> - <relativePath>../parent-boot-2</relativePath> - </parent> + <parent> + <groupId>com.baeldung</groupId> + <artifactId>parent-boot-2</artifactId> + <version>0.0.1-SNAPSHOT</version> + <relativePath>../parent-boot-2</relativePath> + </parent> - <dependencies> + <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> @@ -58,9 +58,9 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> - </dependencies> + </dependencies> - <properties> - <ehcache.version>3.5.2</ehcache.version> - </properties> + <properties> + <ehcache.version>3.5.2</ehcache.version> + </properties> </project> From cdc79108444d58fed34227222e9cf1a79e63a675 Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankurguptajec@gmail.com> Date: Mon, 27 Apr 2020 03:30:41 +0530 Subject: [PATCH 011/156] Formatting space issues in pom.xml --- spring-caching/pom.xml | 93 +++++++++++++++++++++--------------------- 1 file changed, 46 insertions(+), 47 deletions(-) diff --git a/spring-caching/pom.xml b/spring-caching/pom.xml index f443919b42..80644f8a5f 100644 --- a/spring-caching/pom.xml +++ b/spring-caching/pom.xml @@ -9,58 +9,57 @@ <packaging>war</packaging> <parent> - <groupId>com.baeldung</groupId> - <artifactId>parent-boot-2</artifactId> - <version>0.0.1-SNAPSHOT</version> - <relativePath>../parent-boot-2</relativePath> + <groupId>com.baeldung</groupId> + <artifactId>parent-boot-2</artifactId> + <version>0.0.1-SNAPSHOT</version> + <relativePath>../parent-boot-2</relativePath> </parent> <dependencies> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-web</artifactId> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-context</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-cache</artifactId> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-web</artifactId> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-cache</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-web</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-webmvc</artifactId> + </dependency> + <dependency> + <groupId>org.ehcache</groupId> + <artifactId>ehcache</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-test</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>com.github.ben-manes.caffeine</groupId> + <artifactId>caffeine</artifactId> + </dependency> + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-webmvc</artifactId> - </dependency> - <dependency> - <groupId>org.ehcache</groupId> - <artifactId>ehcache</artifactId> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-test</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>com.github.ben-manes.caffeine</groupId> - <artifactId>caffeine</artifactId> - </dependency> - <dependency> - <groupId>com.h2database</groupId> - <artifactId>h2</artifactId> - <scope>runtime</scope> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-jdbc</artifactId> - </dependency> </dependencies> - <properties> - <ehcache.version>3.5.2</ehcache.version> + <ehcache.version>3.5.2</ehcache.version> </properties> </project> From a11b2d812be30138e980285d2ebc76fdaa864e87 Mon Sep 17 00:00:00 2001 From: andrebrowne <42154231+andrebrowne@users.noreply.github.com> Date: Tue, 1 Oct 2019 12:56:55 -0400 Subject: [PATCH 012/156] Add architecture module with Hexagonal example --- architecture/README.md | 3 ++ architecture/pom.xml | 33 ++++++++++++ .../HexagonalArchitectureTaskApplication.java | 12 +++++ .../application/task/AddNewDailyTask.java | 29 ++++++++++ .../application/task/AddNewTask.java | 22 ++++++++ .../application/task/GetTasks.java | 22 ++++++++ .../commands/task/CreateTask.java | 7 +++ .../commands/task/GetAllTasks.java | 7 +++ .../architecture/domain/task/Task.java | 53 +++++++++++++++++++ .../domain/task/TaskRepository.java | 7 +++ .../architecture/domain/task/TaskService.java | 22 ++++++++ .../framework/cli/StartupRunner.java | 25 +++++++++ .../http/task/TaskApiController.java | 42 +++++++++++++++ .../framework/http/task/TaskRequest.java | 29 ++++++++++ 14 files changed, 313 insertions(+) create mode 100644 architecture/README.md create mode 100644 architecture/pom.xml create mode 100644 architecture/src/main/java/com/baeldung/architecture/HexagonalArchitectureTaskApplication.java create mode 100644 architecture/src/main/java/com/baeldung/architecture/application/task/AddNewDailyTask.java create mode 100644 architecture/src/main/java/com/baeldung/architecture/application/task/AddNewTask.java create mode 100644 architecture/src/main/java/com/baeldung/architecture/application/task/GetTasks.java create mode 100644 architecture/src/main/java/com/baeldung/architecture/commands/task/CreateTask.java create mode 100644 architecture/src/main/java/com/baeldung/architecture/commands/task/GetAllTasks.java create mode 100644 architecture/src/main/java/com/baeldung/architecture/domain/task/Task.java create mode 100644 architecture/src/main/java/com/baeldung/architecture/domain/task/TaskRepository.java create mode 100644 architecture/src/main/java/com/baeldung/architecture/domain/task/TaskService.java create mode 100644 architecture/src/main/java/com/baeldung/architecture/framework/cli/StartupRunner.java create mode 100644 architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskApiController.java create mode 100644 architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskRequest.java diff --git a/architecture/README.md b/architecture/README.md new file mode 100644 index 0000000000..be093f25ed --- /dev/null +++ b/architecture/README.md @@ -0,0 +1,3 @@ +### Relevant articles + +- [A Quick and Practical Example of Hexagonal Architecture in Java](https://www.baeldung.com/a-quick-and-practical-example-of-hexagonal-architecture-in-java-3/) diff --git a/architecture/pom.xml b/architecture/pom.xml new file mode 100644 index 0000000000..4ad104293e --- /dev/null +++ b/architecture/pom.xml @@ -0,0 +1,33 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>com.baeldung.architecture</groupId> + <artifactId>architecture</artifactId> + <version>0.0.1-SNAPSHOT</version> + <name>architecture</name> + <packaging>jar</packaging> + <description>A Quick and Practical Example of Hexagonal Architecture in Java</description> + + <parent> + <artifactId>parent-boot-2</artifactId> + <groupId>com.baeldung</groupId> + <version>0.0.1-SNAPSHOT</version> + <relativePath>../parent-boot-2</relativePath> + </parent> + + <dependencies> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-data-jpa</artifactId> + </dependency> + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> + </dependencies> +</project> diff --git a/architecture/src/main/java/com/baeldung/architecture/HexagonalArchitectureTaskApplication.java b/architecture/src/main/java/com/baeldung/architecture/HexagonalArchitectureTaskApplication.java new file mode 100644 index 0000000000..83e4fc4c0b --- /dev/null +++ b/architecture/src/main/java/com/baeldung/architecture/HexagonalArchitectureTaskApplication.java @@ -0,0 +1,12 @@ +package com.baeldung.architecture; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class HexagonalArchitectureTaskApplication { + public static void main(String[] args) { + SpringApplication.run(HexagonalArchitectureTaskApplication.class, args); + } + +} diff --git a/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewDailyTask.java b/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewDailyTask.java new file mode 100644 index 0000000000..208d1bfcc9 --- /dev/null +++ b/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewDailyTask.java @@ -0,0 +1,29 @@ +package com.baeldung.architecture.application.task; + +import java.time.Instant; +import java.time.temporal.ChronoUnit; + +import com.baeldung.architecture.commands.task.CreateTask; +import com.baeldung.architecture.domain.task.Task; + +import org.springframework.stereotype.Component; + +@Component +public class AddNewDailyTask implements CreateTask { + + private AddNewTask addNewTask; + + public AddNewDailyTask(AddNewTask addNewTask) { + this.addNewTask = addNewTask; + } + + @Override + public void create(Task newTask) { + Instant initialDueDate = newTask.getDueDate(); + String description = newTask.getDescription(); + for (int i = 1; i <= 5; i++) { + Task task = new Task(initialDueDate.plus(i, ChronoUnit.DAYS), description); + addNewTask.create(task); + } + } +}; diff --git a/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewTask.java b/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewTask.java new file mode 100644 index 0000000000..2e5aff4a53 --- /dev/null +++ b/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewTask.java @@ -0,0 +1,22 @@ +package com.baeldung.architecture.application.task; + +import com.baeldung.architecture.domain.task.Task; +import com.baeldung.architecture.domain.task.TaskService; +import com.baeldung.architecture.commands.task.*; + +import org.springframework.stereotype.Component; + +@Component +public class AddNewTask implements CreateTask { + + private TaskService taskService; + + public AddNewTask(TaskService taskService) { + this.taskService = taskService; + } + + @Override + public void create(Task newTask) { + taskService.createTask(newTask); + } +}; diff --git a/architecture/src/main/java/com/baeldung/architecture/application/task/GetTasks.java b/architecture/src/main/java/com/baeldung/architecture/application/task/GetTasks.java new file mode 100644 index 0000000000..54539290ba --- /dev/null +++ b/architecture/src/main/java/com/baeldung/architecture/application/task/GetTasks.java @@ -0,0 +1,22 @@ +package com.baeldung.architecture.application.task; + +import com.baeldung.architecture.domain.task.Task; +import com.baeldung.architecture.domain.task.TaskService; +import com.baeldung.architecture.commands.task.*; + +import org.springframework.stereotype.Component; + +@Component +public class GetTasks implements GetAllTasks { + + private TaskService taskService; + + public GetTasks(TaskService taskService) { + this.taskService = taskService; + } + + @Override + public Iterable<Task> getAll() { + return taskService.getAllTasks(); + } +}; diff --git a/architecture/src/main/java/com/baeldung/architecture/commands/task/CreateTask.java b/architecture/src/main/java/com/baeldung/architecture/commands/task/CreateTask.java new file mode 100644 index 0000000000..26e6da10e2 --- /dev/null +++ b/architecture/src/main/java/com/baeldung/architecture/commands/task/CreateTask.java @@ -0,0 +1,7 @@ +package com.baeldung.architecture.commands.task; + +import com.baeldung.architecture.domain.task.Task; + +public interface CreateTask { + public void create(Task newTask); +}; diff --git a/architecture/src/main/java/com/baeldung/architecture/commands/task/GetAllTasks.java b/architecture/src/main/java/com/baeldung/architecture/commands/task/GetAllTasks.java new file mode 100644 index 0000000000..d3c40db92f --- /dev/null +++ b/architecture/src/main/java/com/baeldung/architecture/commands/task/GetAllTasks.java @@ -0,0 +1,7 @@ +package com.baeldung.architecture.commands.task; + +import com.baeldung.architecture.domain.task.Task; + +public interface GetAllTasks { + public Iterable<Task> getAll(); +}; diff --git a/architecture/src/main/java/com/baeldung/architecture/domain/task/Task.java b/architecture/src/main/java/com/baeldung/architecture/domain/task/Task.java new file mode 100644 index 0000000000..240dc33571 --- /dev/null +++ b/architecture/src/main/java/com/baeldung/architecture/domain/task/Task.java @@ -0,0 +1,53 @@ +package com.baeldung.architecture.domain.task; + +import java.time.Instant; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +public class Task { + @Id + @GeneratedValue(strategy=GenerationType.AUTO) + private Long id; + private Instant dueDate = Instant.now(); + private String description; + + public Task() {} + + public Task(Instant dueDate, String description) { + this.dueDate = dueDate; + this.description = description; + } + + public Task(Long id, Instant dueDate, String description) { + this(dueDate, description); + this.id = id; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Instant getDueDate() { + return dueDate; + } + + public void setDueDate(Instant dueDate) { + this.dueDate = dueDate; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } +} diff --git a/architecture/src/main/java/com/baeldung/architecture/domain/task/TaskRepository.java b/architecture/src/main/java/com/baeldung/architecture/domain/task/TaskRepository.java new file mode 100644 index 0000000000..d896212714 --- /dev/null +++ b/architecture/src/main/java/com/baeldung/architecture/domain/task/TaskRepository.java @@ -0,0 +1,7 @@ +package com.baeldung.architecture.domain.task; + +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface TaskRepository extends CrudRepository<Task, Long> {}; diff --git a/architecture/src/main/java/com/baeldung/architecture/domain/task/TaskService.java b/architecture/src/main/java/com/baeldung/architecture/domain/task/TaskService.java new file mode 100644 index 0000000000..cace0614ad --- /dev/null +++ b/architecture/src/main/java/com/baeldung/architecture/domain/task/TaskService.java @@ -0,0 +1,22 @@ +package com.baeldung.architecture.domain.task; + +import org.springframework.stereotype.Service; + +@Service +public class TaskService { + + private TaskRepository taskRepository; + + public TaskService(TaskRepository taskRepository) { + this.taskRepository = taskRepository; + } + + public void createTask(Task task) { + taskRepository.save(task); + } + + public Iterable<Task> getAllTasks() { + return taskRepository.findAll(); + } + +}; diff --git a/architecture/src/main/java/com/baeldung/architecture/framework/cli/StartupRunner.java b/architecture/src/main/java/com/baeldung/architecture/framework/cli/StartupRunner.java new file mode 100644 index 0000000000..260c033b71 --- /dev/null +++ b/architecture/src/main/java/com/baeldung/architecture/framework/cli/StartupRunner.java @@ -0,0 +1,25 @@ +package com.baeldung.architecture.framework.cli; + +import com.baeldung.architecture.application.task.AddNewDailyTask; +import com.baeldung.architecture.domain.task.Task; + +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.stereotype.Component; + +@Component +public class StartupRunner implements ApplicationRunner { + + AddNewDailyTask addNewDailyTask; + + public StartupRunner(AddNewDailyTask addNewDailyTask) { + this.addNewDailyTask = addNewDailyTask; + } + @Override + public void run(ApplicationArguments args) throws Exception { + System.out.println("Adding daily tasks"); + Task task = new Task(); + task.setDescription("Startup Task"); + addNewDailyTask.create(task); + } +} \ No newline at end of file diff --git a/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskApiController.java b/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskApiController.java new file mode 100644 index 0000000000..c6f7bff2dd --- /dev/null +++ b/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskApiController.java @@ -0,0 +1,42 @@ +package com.baeldung.architecture.framework.http.task; + +import java.time.Instant; + +import com.baeldung.architecture.application.task.AddNewTask; +import com.baeldung.architecture.application.task.GetTasks; +import com.baeldung.architecture.domain.task.Task; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("task") +public class TaskApiController { + + private AddNewTask addNewTask; + private GetTasks getTasks; + + public TaskApiController( + AddNewTask addNewTask, + GetTasks getTasks + ) { + this.addNewTask = addNewTask; + this.getTasks = getTasks; + } + + @GetMapping + Iterable<Task> listTasks() { + return getTasks.getAll(); + } + + @PostMapping(consumes = "application/json", produces = "application/json") + void createTask(@RequestBody TaskRequest taskRequest) { + Task task = new Task(); + task.setDescription(taskRequest.getDescription()); + task.setDueDate(Instant.parse(taskRequest.getDueDate())); + addNewTask.create(task); + } +} \ No newline at end of file diff --git a/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskRequest.java b/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskRequest.java new file mode 100644 index 0000000000..2e353b079a --- /dev/null +++ b/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskRequest.java @@ -0,0 +1,29 @@ +package com.baeldung.architecture.framework.http.task; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; + +public class TaskRequest { + @JsonInclude(Include.NON_NULL) + private String description; + + @JsonInclude(Include.NON_NULL) + private String dueDate; + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getDueDate() { + return dueDate; + } + + public void setDueDate(String dueDate) { + this.dueDate = dueDate; + } + +} \ No newline at end of file From 8ed374c4b073fe83d326401bee41dca828d7d1e7 Mon Sep 17 00:00:00 2001 From: andrebrowne <42154231+andrebrowne@users.noreply.github.com> Date: Tue, 1 Oct 2019 20:15:39 -0400 Subject: [PATCH 013/156] Fixup styling --- .../architecture/HexagonalArchitectureTaskApplication.java | 6 +++--- .../baeldung/architecture/application/task/AddNewTask.java | 2 +- .../baeldung/architecture/application/task/GetTasks.java | 2 +- .../baeldung/architecture/framework/cli/StartupRunner.java | 1 - 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/architecture/src/main/java/com/baeldung/architecture/HexagonalArchitectureTaskApplication.java b/architecture/src/main/java/com/baeldung/architecture/HexagonalArchitectureTaskApplication.java index 83e4fc4c0b..69c6f4b276 100644 --- a/architecture/src/main/java/com/baeldung/architecture/HexagonalArchitectureTaskApplication.java +++ b/architecture/src/main/java/com/baeldung/architecture/HexagonalArchitectureTaskApplication.java @@ -5,8 +5,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class HexagonalArchitectureTaskApplication { - public static void main(String[] args) { - SpringApplication.run(HexagonalArchitectureTaskApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(HexagonalArchitectureTaskApplication.class, args); + } } diff --git a/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewTask.java b/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewTask.java index 2e5aff4a53..70638378f9 100644 --- a/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewTask.java +++ b/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewTask.java @@ -19,4 +19,4 @@ public class AddNewTask implements CreateTask { public void create(Task newTask) { taskService.createTask(newTask); } -}; +} diff --git a/architecture/src/main/java/com/baeldung/architecture/application/task/GetTasks.java b/architecture/src/main/java/com/baeldung/architecture/application/task/GetTasks.java index 54539290ba..c876f7de85 100644 --- a/architecture/src/main/java/com/baeldung/architecture/application/task/GetTasks.java +++ b/architecture/src/main/java/com/baeldung/architecture/application/task/GetTasks.java @@ -19,4 +19,4 @@ public class GetTasks implements GetAllTasks { public Iterable<Task> getAll() { return taskService.getAllTasks(); } -}; +} diff --git a/architecture/src/main/java/com/baeldung/architecture/framework/cli/StartupRunner.java b/architecture/src/main/java/com/baeldung/architecture/framework/cli/StartupRunner.java index 260c033b71..cf38e5ee5e 100644 --- a/architecture/src/main/java/com/baeldung/architecture/framework/cli/StartupRunner.java +++ b/architecture/src/main/java/com/baeldung/architecture/framework/cli/StartupRunner.java @@ -17,7 +17,6 @@ public class StartupRunner implements ApplicationRunner { } @Override public void run(ApplicationArguments args) throws Exception { - System.out.println("Adding daily tasks"); Task task = new Task(); task.setDescription("Startup Task"); addNewDailyTask.create(task); From f830524b20cf2dde5a8667779c39ac07ad84e095 Mon Sep 17 00:00:00 2001 From: andrebrowne <42154231+andrebrowne@users.noreply.github.com> Date: Tue, 1 Oct 2019 20:15:39 -0400 Subject: [PATCH 014/156] Fixup styling --- .../architecture/application/task/AddNewDailyTask.java | 2 +- .../com/baeldung/architecture/commands/task/CreateTask.java | 2 +- .../com/baeldung/architecture/commands/task/GetAllTasks.java | 2 +- .../com/baeldung/architecture/domain/task/TaskService.java | 2 +- .../com/baeldung/architecture/framework/cli/StartupRunner.java | 2 +- .../architecture/framework/http/task/TaskApiController.java | 2 +- .../baeldung/architecture/framework/http/task/TaskRequest.java | 3 +-- 7 files changed, 7 insertions(+), 8 deletions(-) diff --git a/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewDailyTask.java b/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewDailyTask.java index 208d1bfcc9..f9ee97542c 100644 --- a/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewDailyTask.java +++ b/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewDailyTask.java @@ -26,4 +26,4 @@ public class AddNewDailyTask implements CreateTask { addNewTask.create(task); } } -}; +} diff --git a/architecture/src/main/java/com/baeldung/architecture/commands/task/CreateTask.java b/architecture/src/main/java/com/baeldung/architecture/commands/task/CreateTask.java index 26e6da10e2..ec60868a22 100644 --- a/architecture/src/main/java/com/baeldung/architecture/commands/task/CreateTask.java +++ b/architecture/src/main/java/com/baeldung/architecture/commands/task/CreateTask.java @@ -4,4 +4,4 @@ import com.baeldung.architecture.domain.task.Task; public interface CreateTask { public void create(Task newTask); -}; +} diff --git a/architecture/src/main/java/com/baeldung/architecture/commands/task/GetAllTasks.java b/architecture/src/main/java/com/baeldung/architecture/commands/task/GetAllTasks.java index d3c40db92f..c9aa1be5f8 100644 --- a/architecture/src/main/java/com/baeldung/architecture/commands/task/GetAllTasks.java +++ b/architecture/src/main/java/com/baeldung/architecture/commands/task/GetAllTasks.java @@ -4,4 +4,4 @@ import com.baeldung.architecture.domain.task.Task; public interface GetAllTasks { public Iterable<Task> getAll(); -}; +} diff --git a/architecture/src/main/java/com/baeldung/architecture/domain/task/TaskService.java b/architecture/src/main/java/com/baeldung/architecture/domain/task/TaskService.java index cace0614ad..11ef0f3e19 100644 --- a/architecture/src/main/java/com/baeldung/architecture/domain/task/TaskService.java +++ b/architecture/src/main/java/com/baeldung/architecture/domain/task/TaskService.java @@ -19,4 +19,4 @@ public class TaskService { return taskRepository.findAll(); } -}; +} diff --git a/architecture/src/main/java/com/baeldung/architecture/framework/cli/StartupRunner.java b/architecture/src/main/java/com/baeldung/architecture/framework/cli/StartupRunner.java index cf38e5ee5e..449bc9386e 100644 --- a/architecture/src/main/java/com/baeldung/architecture/framework/cli/StartupRunner.java +++ b/architecture/src/main/java/com/baeldung/architecture/framework/cli/StartupRunner.java @@ -21,4 +21,4 @@ public class StartupRunner implements ApplicationRunner { task.setDescription("Startup Task"); addNewDailyTask.create(task); } -} \ No newline at end of file +} diff --git a/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskApiController.java b/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskApiController.java index c6f7bff2dd..87a8f5fe4b 100644 --- a/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskApiController.java +++ b/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskApiController.java @@ -39,4 +39,4 @@ public class TaskApiController { task.setDueDate(Instant.parse(taskRequest.getDueDate())); addNewTask.create(task); } -} \ No newline at end of file +} diff --git a/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskRequest.java b/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskRequest.java index 2e353b079a..70b98a32f9 100644 --- a/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskRequest.java +++ b/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskRequest.java @@ -25,5 +25,4 @@ public class TaskRequest { public void setDueDate(String dueDate) { this.dueDate = dueDate; } - -} \ No newline at end of file +} From b4be5f28a1da02c3501d43c56b8c508daf900b59 Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankur.gupta@jda.com> Date: Sun, 31 May 2020 03:00:18 +0530 Subject: [PATCH 015/156] Changing the Test class name from IntegrationUnitTest to IntegrationTest --- ...onUnitTest.java => MultipleCacheManagerIntegrationTest.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename spring-caching/src/test/java/com/baeldung/multiplecachemanager/{MultipleCacheManagerIntegrationUnitTest.java => MultipleCacheManagerIntegrationTest.java} (97%) diff --git a/spring-caching/src/test/java/com/baeldung/multiplecachemanager/MultipleCacheManagerIntegrationUnitTest.java b/spring-caching/src/test/java/com/baeldung/multiplecachemanager/MultipleCacheManagerIntegrationTest.java similarity index 97% rename from spring-caching/src/test/java/com/baeldung/multiplecachemanager/MultipleCacheManagerIntegrationUnitTest.java rename to spring-caching/src/test/java/com/baeldung/multiplecachemanager/MultipleCacheManagerIntegrationTest.java index e02e5da246..c83d4f9e96 100644 --- a/spring-caching/src/test/java/com/baeldung/multiplecachemanager/MultipleCacheManagerIntegrationUnitTest.java +++ b/spring-caching/src/test/java/com/baeldung/multiplecachemanager/MultipleCacheManagerIntegrationTest.java @@ -17,7 +17,7 @@ import com.baeldung.multiplecachemanager.repository.OrderDetailRepository; @SpringBootApplication @SpringBootTest -public class MultipleCacheManagerIntegrationUnitTest { +public class MultipleCacheManagerIntegrationTest { @MockBean private OrderDetailRepository orderDetailRepository; From e8d8dd085f0b215f5680b20ab9b3a77547c23960 Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankur.gupta@jda.com> Date: Sun, 21 Jun 2020 02:13:35 +0530 Subject: [PATCH 016/156] Fixing UT failure in build --- spring-caching/src/main/resources/schema.sql | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spring-caching/src/main/resources/schema.sql b/spring-caching/src/main/resources/schema.sql index 5862499bc0..7d5cb36d66 100644 --- a/spring-caching/src/main/resources/schema.sql +++ b/spring-caching/src/main/resources/schema.sql @@ -1,3 +1,6 @@ +DROP TABLE ORDERDETAIL IF EXISTS; +DROP TABLE ITEM IF EXISTS; +DROP TABLE CUSTOMER IF EXISTS; CREATE TABLE CUSTOMER( CUSTOMERID INT PRIMARY KEY, CUSTOMERNAME VARCHAR(250) NOT NULL From 2d37d4ce87d6c279d6a5ec0f662efa04df82161f Mon Sep 17 00:00:00 2001 From: Jonathan Cook <jcook@sciops.esa.int> Date: Mon, 29 Jun 2020 12:05:57 +0200 Subject: [PATCH 017/156] BAEL-4198 - Fix Selenium Live Tests --- testing-modules/selenium-junit-testng/pom.xml | 37 +++++-------- .../baeldung/selenium/SeleniumExample.java | 53 +++++++++++-------- .../selenium/config/SeleniumConfig.java | 22 ++++---- .../selenium/models/BaeldungAbout.java | 6 +-- .../selenium/pages/BaeldungAboutPage.java | 2 +- .../selenium/pages/BaeldungHomePage.java | 6 +-- .../selenium/pages/StartHerePage.java | 4 +- ...a => SeleniumJavaScriptClickLiveTest.java} | 22 ++++---- .../SeleniumCookiesJUnitLiveTest.java | 32 ++++++++--- .../junit/SeleniumWithJUnitLiveTest.java | 25 +++++---- .../SeleniumPageObjectLiveTest.java | 10 ++-- .../testng/SeleniumWithTestNGLiveTest.java | 13 +++-- 12 files changed, 129 insertions(+), 103 deletions(-) rename testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/clickusingjavascript/{SeleniumJavaScriptClickTest.java => SeleniumJavaScriptClickLiveTest.java} (74%) rename testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/{junit => cookies}/SeleniumCookiesJUnitLiveTest.java (80%) rename testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/{junit => pages}/SeleniumPageObjectLiveTest.java (79%) diff --git a/testing-modules/selenium-junit-testng/pom.xml b/testing-modules/selenium-junit-testng/pom.xml index 3734bf72c9..44af047bdd 100644 --- a/testing-modules/selenium-junit-testng/pom.xml +++ b/testing-modules/selenium-junit-testng/pom.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <artifactId>selenium-junit-testng</artifactId> <version>0.0.1-SNAPSHOT</version> @@ -43,32 +44,22 @@ </dependencies> <build> - <sourceDirectory>src</sourceDirectory> + <resources> + <resource> + <directory>src/main/resources</directory> + <filtering>true</filtering> + </resource> + <resource> + <directory>src/test/resources</directory> + <filtering>true</filtering> + </resource> + </resources> </build> - <profiles> - <profile> - <id>live</id> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <version>${maven-surefire-plugin.version}</version> - <configuration> - <includes> - <include>**/*LiveTest.java</include> - </includes> - </configuration> - </plugin> - </plugins> - </build> - </profile> - </profiles> - <properties> <testng.version>6.10</testng.version> <selenium-java.version>3.4.0</selenium-java.version> + <ashot.version>1.5.4</ashot.version> </properties> </project> diff --git a/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/SeleniumExample.java b/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/SeleniumExample.java index c5ad5182ff..b32e51d250 100644 --- a/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/SeleniumExample.java +++ b/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/SeleniumExample.java @@ -1,14 +1,12 @@ -package main.java.com.baeldung.selenium; - -import main.java.com.baeldung.selenium.config.SeleniumConfig; -import org.openqa.selenium.By; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; -import org.openqa.selenium.firefox.FirefoxDriver; -import org.openqa.selenium.interactions.Actions; +package com.baeldung.selenium; import java.util.List; -import java.util.concurrent.TimeUnit; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.Actions; + +import com.baeldung.selenium.config.SeleniumConfig; public class SeleniumExample { @@ -17,15 +15,18 @@ public class SeleniumExample { public SeleniumExample() { config = new SeleniumConfig(); - config.getDriver().get(url); + config.getDriver() + .get(url); } public void closeWindow() { - this.config.getDriver().close(); + this.config.getDriver() + .close(); } public String getTitle() { - return this.config.getDriver().getTitle(); + return this.config.getDriver() + .getTitle(); } public void getAboutBaeldungPage() { @@ -35,29 +36,35 @@ public class SeleniumExample { } private void closeOverlay() { - List<WebElement> webElementList = this.config.getDriver().findElements(By.tagName("a")); + List<WebElement> webElementList = this.config.getDriver() + .findElements(By.tagName("a")); if (webElementList != null) { webElementList.stream() - .filter(webElement -> "Close".equalsIgnoreCase(webElement.getAttribute("title"))) - .filter(WebElement::isDisplayed) - .findAny() - .ifPresent(WebElement::click); + .filter(webElement -> "Close".equalsIgnoreCase(webElement.getAttribute("title"))) + .filter(WebElement::isDisplayed) + .findAny() + .ifPresent(WebElement::click); } } private void clickAboutLink() { - this.config.getDriver().findElement(By.partialLinkText("About")).click(); + Actions actions = new Actions(config.getDriver()); + WebElement aboutElement = this.config.getDriver() + .findElement(By.id("menu-item-6138")); + + actions.moveToElement(aboutElement).perform(); } private void clickAboutUsLink() { - Actions builder = new Actions(config.getDriver()); - WebElement element = this.config.getDriver().findElement(By.partialLinkText("About Baeldung.")); - builder.moveToElement(element).build().perform(); + WebElement element = this.config.getDriver() + .findElement(By.partialLinkText("About Baeldung.")); + element.click(); } public boolean isAuthorInformationAvailable() { return this.config.getDriver() - .findElement(By.cssSelector("article > .row > div")) - .isDisplayed(); + .getPageSource() + .contains("Hey ! I'm Eugen"); } + } diff --git a/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/config/SeleniumConfig.java b/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/config/SeleniumConfig.java index c84283b76b..b1b7754648 100644 --- a/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/config/SeleniumConfig.java +++ b/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/config/SeleniumConfig.java @@ -1,17 +1,14 @@ -package main.java.com.baeldung.selenium.config; +package com.baeldung.selenium.config; + +import java.io.File; +import java.util.concurrent.TimeUnit; import org.openqa.selenium.Capabilities; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; -import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.remote.DesiredCapabilities; -import java.io.File; -import java.util.concurrent.TimeUnit; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - public class SeleniumConfig { private WebDriver driver; @@ -19,15 +16,17 @@ public class SeleniumConfig { public SeleniumConfig() { Capabilities capabilities = DesiredCapabilities.firefox(); driver = new FirefoxDriver(capabilities); - driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); + driver.manage() + .timeouts() + .implicitlyWait(5, TimeUnit.SECONDS); } static { System.setProperty("webdriver.gecko.driver", findFile("geckodriver.mac")); } - static private String findFile(String filename) { - String paths[] = {"", "bin/", "target/classes"}; // if you have chromedriver somewhere else on the path, then put it here. + private static String findFile(String filename) { + String[] paths = { "", "bin/", "target/classes" }; // if you have chromedriver somewhere else on the path, then put it here. for (String path : paths) { if (new File(path + filename).exists()) return path + filename; @@ -40,7 +39,8 @@ public class SeleniumConfig { } public void navigateTo(String url) { - driver.navigate().to(url); + driver.navigate() + .to(url); } public void clickElement(WebElement element) { diff --git a/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/models/BaeldungAbout.java b/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/models/BaeldungAbout.java index 838beb5326..580cbd1f2b 100644 --- a/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/models/BaeldungAbout.java +++ b/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/models/BaeldungAbout.java @@ -1,7 +1,7 @@ -package main.java.com.baeldung.selenium.models; +package com.baeldung.selenium.models; -import main.java.com.baeldung.selenium.config.SeleniumConfig; -import main.java.com.baeldung.selenium.pages.BaeldungAboutPage; +import com.baeldung.selenium.config.SeleniumConfig; +import com.baeldung.selenium.pages.BaeldungAboutPage; import org.openqa.selenium.support.PageFactory; public class BaeldungAbout { diff --git a/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/BaeldungAboutPage.java b/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/BaeldungAboutPage.java index d33cb76398..064462fc10 100644 --- a/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/BaeldungAboutPage.java +++ b/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/BaeldungAboutPage.java @@ -1,4 +1,4 @@ -package main.java.com.baeldung.selenium.pages; +package com.baeldung.selenium.pages; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; diff --git a/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/BaeldungHomePage.java b/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/BaeldungHomePage.java index 55a8044375..d901bf3c34 100644 --- a/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/BaeldungHomePage.java +++ b/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/BaeldungHomePage.java @@ -1,6 +1,6 @@ -package main.java.com.baeldung.selenium.pages; +package com.baeldung.selenium.pages; -import main.java.com.baeldung.selenium.config.SeleniumConfig; +import com.baeldung.selenium.config.SeleniumConfig; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; @@ -8,7 +8,7 @@ import org.openqa.selenium.support.PageFactory; public class BaeldungHomePage { private SeleniumConfig config; - @FindBy(css=".header--menu > a") + @FindBy(css = ".nav--logo_mobile") private WebElement title; @FindBy(css = ".menu-start-here > a") private WebElement startHere; diff --git a/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/StartHerePage.java b/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/StartHerePage.java index 4f0ee9edcd..ccc166c351 100644 --- a/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/StartHerePage.java +++ b/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/StartHerePage.java @@ -1,6 +1,6 @@ -package main.java.com.baeldung.selenium.pages; +package com.baeldung.selenium.pages; -import main.java.com.baeldung.selenium.config.SeleniumConfig; +import com.baeldung.selenium.config.SeleniumConfig; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; diff --git a/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/clickusingjavascript/SeleniumJavaScriptClickTest.java b/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/clickusingjavascript/SeleniumJavaScriptClickLiveTest.java similarity index 74% rename from testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/clickusingjavascript/SeleniumJavaScriptClickTest.java rename to testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/clickusingjavascript/SeleniumJavaScriptClickLiveTest.java index 6d2ab8ef1f..de519a44fc 100644 --- a/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/clickusingjavascript/SeleniumJavaScriptClickTest.java +++ b/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/clickusingjavascript/SeleniumJavaScriptClickLiveTest.java @@ -1,4 +1,4 @@ -package java.com.baeldung.selenium.clickusingjavascript; +package com.baeldung.selenium.clickusingjavascript; import org.junit.After; import org.junit.Before; @@ -14,16 +14,18 @@ import org.openqa.selenium.support.ui.WebDriverWait; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -public class SeleniumJavaScriptClickTest { +import java.io.File; + +public class SeleniumJavaScriptClickLiveTest { private WebDriver driver; private WebDriverWait wait; @Before public void setUp() { - System.setProperty("webdriver.chrome.driver", "chromedriver.exe"); + System.setProperty("webdriver.chrome.driver", new File("src/main/resources/chromedriver.mac").getAbsolutePath()); driver = new ChromeDriver(); - wait = new WebDriverWait(driver, 5000); + wait = new WebDriverWait(driver, 20); } @After @@ -37,19 +39,21 @@ public class SeleniumJavaScriptClickTest { String title = driver.getTitle(); assertEquals("Baeldung | Java, Spring and Web Development tutorials", title); - wait.until(ExpectedConditions.elementToBeClickable(By.className("menu-search"))); - WebElement searchButton = driver.findElement(By.className("menu-search")); + wait.until(ExpectedConditions.elementToBeClickable(By.className("nav--menu_item_anchor"))); + WebElement searchButton = driver.findElement(By.className("nav--menu_item_anchor")); clickElement(searchButton); wait.until(ExpectedConditions.elementToBeClickable(By.id("search"))); WebElement searchInput = driver.findElement(By.id("search")); searchInput.sendKeys("Selenium"); - wait.until(ExpectedConditions.elementToBeClickable(By.className("btn-search"))); - WebElement seeSearchResultsButton = driver.findElement(By.className("btn-search")); + wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector(".btn-search"))); + WebElement seeSearchResultsButton = driver.findElement(By.cssSelector(".btn-search")); clickElement(seeSearchResultsButton); - int seleniumPostsCount = driver.findElements(By.className("post")).size(); + wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.className("post"))); + int seleniumPostsCount = driver.findElements(By.className("post")) + .size(); assertTrue(seleniumPostsCount > 0); } diff --git a/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/SeleniumCookiesJUnitLiveTest.java b/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/cookies/SeleniumCookiesJUnitLiveTest.java similarity index 80% rename from testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/SeleniumCookiesJUnitLiveTest.java rename to testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/cookies/SeleniumCookiesJUnitLiveTest.java index 0cbbf52454..337e3b85fb 100644 --- a/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/SeleniumCookiesJUnitLiveTest.java +++ b/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/cookies/SeleniumCookiesJUnitLiveTest.java @@ -1,4 +1,16 @@ -package test.java.com.baeldung.selenium.junit; +package com.baeldung.selenium.cookies; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.empty; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.not; +import static org.hamcrest.Matchers.nullValue; + +import java.io.File; +import java.util.Set; +import java.util.concurrent.TimeUnit; import org.junit.After; import org.junit.Before; @@ -9,12 +21,6 @@ import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.remote.DesiredCapabilities; -import java.util.Set; -import java.util.concurrent.TimeUnit; - -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.*; - public class SeleniumCookiesJUnitLiveTest { private WebDriver driver; @@ -22,11 +28,21 @@ public class SeleniumCookiesJUnitLiveTest { @Before public void setUp() { + System.setProperty("webdriver.gecko.driver", findFile("geckodriver.mac")); + Capabilities capabilities = DesiredCapabilities.firefox(); driver = new FirefoxDriver(capabilities); navUrl = "https://baeldung.com"; driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); - System.setProperty("webdriver.gecko.driver", "geckodriver.exe"); + } + + private static String findFile(String filename) { + String[] paths = { "", "bin/", "target/classes" }; // if you have chromedriver somewhere else on the path, then put it here. + for (String path : paths) { + if (new File(path + filename).exists()) + return path + filename; + } + return ""; } @After diff --git a/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/SeleniumWithJUnitLiveTest.java b/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/SeleniumWithJUnitLiveTest.java index b1a4149358..1b1035cc6c 100644 --- a/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/SeleniumWithJUnitLiveTest.java +++ b/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/SeleniumWithJUnitLiveTest.java @@ -1,16 +1,21 @@ -package test.java.com.baeldung.selenium.junit; +package com.baeldung.selenium.junit; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import java.io.IOException; -import main.java.com.baeldung.selenium.SeleniumExample; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; -import static org.testng.Assert.*; +import com.baeldung.selenium.SeleniumExample; public class SeleniumWithJUnitLiveTest { private static SeleniumExample seleniumExample; - private String expectedTitle = "Baeldung | Java, Spring and Web Development tutorials"; + private String expectedTitle = "About Baeldung | Baeldung"; @BeforeClass public static void setUp() { @@ -18,17 +23,17 @@ public class SeleniumWithJUnitLiveTest { } @AfterClass - public static void tearDown() { + public static void tearDown() throws IOException { seleniumExample.closeWindow(); } @Test public void whenAboutBaeldungIsLoaded_thenAboutEugenIsMentionedOnPage() { - seleniumExample.getAboutBaeldungPage(); - String actualTitle = seleniumExample.getTitle(); - assertNotNull(actualTitle); - assertEquals(expectedTitle, actualTitle); - assertTrue(seleniumExample.isAuthorInformationAvailable()); + seleniumExample.getAboutBaeldungPage(); + String actualTitle = seleniumExample.getTitle(); + assertNotNull(actualTitle); + assertEquals(expectedTitle, actualTitle); + assertTrue(seleniumExample.isAuthorInformationAvailable()); } } diff --git a/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/SeleniumPageObjectLiveTest.java b/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/pages/SeleniumPageObjectLiveTest.java similarity index 79% rename from testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/SeleniumPageObjectLiveTest.java rename to testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/pages/SeleniumPageObjectLiveTest.java index 8493122414..96772821a9 100644 --- a/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/SeleniumPageObjectLiveTest.java +++ b/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/pages/SeleniumPageObjectLiveTest.java @@ -1,9 +1,9 @@ -package test.java.com.baeldung.selenium.junit; +package com.baeldung.selenium.pages; -import main.java.com.baeldung.selenium.config.SeleniumConfig; -import main.java.com.baeldung.selenium.models.BaeldungAbout; -import main.java.com.baeldung.selenium.pages.BaeldungHomePage; -import main.java.com.baeldung.selenium.pages.StartHerePage; +import com.baeldung.selenium.config.SeleniumConfig; +import com.baeldung.selenium.models.BaeldungAbout; +import com.baeldung.selenium.pages.BaeldungHomePage; +import com.baeldung.selenium.pages.StartHerePage; import org.junit.After; import org.junit.Before; import org.junit.Test; diff --git a/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/testng/SeleniumWithTestNGLiveTest.java b/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/testng/SeleniumWithTestNGLiveTest.java index 94426edc6d..85fa00c0ab 100644 --- a/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/testng/SeleniumWithTestNGLiveTest.java +++ b/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/testng/SeleniumWithTestNGLiveTest.java @@ -1,16 +1,19 @@ -package test.java.com.baeldung.selenium.testng; +package com.baeldung.selenium.testng; + +import com.baeldung.selenium.SeleniumExample; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; -import main.java.com.baeldung.selenium.SeleniumExample; import org.testng.annotations.AfterSuite; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test; -import static org.testng.Assert.*; - public class SeleniumWithTestNGLiveTest { private SeleniumExample seleniumExample; - private String expectedTitle = "Baeldung | Java, Spring and Web Development tutorials"; + private String expectedTitle = "About Baeldung | Baeldung"; @BeforeSuite public void setUp() { From 35e88cd1c57be5eb25da73f48e9c7e1b6f1cef36 Mon Sep 17 00:00:00 2001 From: Jonathan Cook <jcook@sciops.esa.int> Date: Mon, 29 Jun 2020 15:56:23 +0200 Subject: [PATCH 018/156] BAEL-4198 --- testing-modules/selenium-junit-testng/pom.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/testing-modules/selenium-junit-testng/pom.xml b/testing-modules/selenium-junit-testng/pom.xml index 44af047bdd..210c2051da 100644 --- a/testing-modules/selenium-junit-testng/pom.xml +++ b/testing-modules/selenium-junit-testng/pom.xml @@ -59,7 +59,6 @@ <properties> <testng.version>6.10</testng.version> <selenium-java.version>3.4.0</selenium-java.version> - <ashot.version>1.5.4</ashot.version> </properties> </project> From a97a87735a6a95f98bb4b88dc750a577447a2e73 Mon Sep 17 00:00:00 2001 From: Jonathan Cook <jcook@sciops.esa.int> Date: Tue, 30 Jun 2020 15:24:38 +0200 Subject: [PATCH 019/156] BAEL-4024 - Taking Screenshots with Selenium WebDriver --- testing-modules/selenium-junit-testng/pom.xml | 6 ++ .../TakeScreenShotSeleniumLiveTest.java | 85 +++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/screenshot/TakeScreenShotSeleniumLiveTest.java diff --git a/testing-modules/selenium-junit-testng/pom.xml b/testing-modules/selenium-junit-testng/pom.xml index 210c2051da..8d661997f8 100644 --- a/testing-modules/selenium-junit-testng/pom.xml +++ b/testing-modules/selenium-junit-testng/pom.xml @@ -41,6 +41,11 @@ <artifactId>hamcrest-all</artifactId> <version>${hamcrest-all.version}</version> </dependency> + <dependency> + <groupId>ru.yandex.qatools.ashot</groupId> + <artifactId>ashot</artifactId> + <version>${ashot.version}</version> + </dependency> </dependencies> <build> @@ -59,6 +64,7 @@ <properties> <testng.version>6.10</testng.version> <selenium-java.version>3.4.0</selenium-java.version> + <ashot.version>1.5.4</ashot.version> </properties> </project> diff --git a/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/screenshot/TakeScreenShotSeleniumLiveTest.java b/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/screenshot/TakeScreenShotSeleniumLiveTest.java new file mode 100644 index 0000000000..cf705bb81f --- /dev/null +++ b/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/screenshot/TakeScreenShotSeleniumLiveTest.java @@ -0,0 +1,85 @@ +package com.baeldung.selenium.screenshot; + +import static org.junit.Assert.assertTrue; + +import java.io.File; +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import javax.imageio.ImageIO; + +import org.apache.commons.io.FileUtils; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openqa.selenium.By; +import org.openqa.selenium.Capabilities; +import org.openqa.selenium.OutputType; +import org.openqa.selenium.TakesScreenshot; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.remote.DesiredCapabilities; + +import ru.yandex.qatools.ashot.AShot; +import ru.yandex.qatools.ashot.Screenshot; +import ru.yandex.qatools.ashot.coordinates.WebDriverCoordsProvider; +import ru.yandex.qatools.ashot.shooting.ShootingStrategies; + +public class TakeScreenShotSeleniumLiveTest { + + private static ChromeDriver driver; + + @BeforeClass + public static void setUp() { + System.setProperty("webdriver.chrome.driver", resolveResourcePath("chromedriver.mac")); + + Capabilities capabilities = DesiredCapabilities.chrome(); + driver = new ChromeDriver(capabilities); + driver.manage() + .timeouts() + .implicitlyWait(5, TimeUnit.SECONDS); + + driver.get("http://www.google.com/"); + } + + @AfterClass + public static void tearDown() throws IOException { + driver.close(); + + System.clearProperty("webdriver.chrome.driver"); + } + + @Test + public void whenGoogleIsLoaded_thenCaptureScreenshot() throws IOException { + takeScreenshot(resolveTestResourcePath("google-home.png")); + + assertTrue(new File(resolveTestResourcePath("google-home.png")).exists()); + } + + @Test + public void whenGoogleIsLoaded_thenCaptureLogo() throws IOException { + WebElement logo = driver.findElement(By.id("hplogo")); + + Screenshot screenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(1000)) + .coordsProvider(new WebDriverCoordsProvider()) + .takeScreenshot(driver, logo); + + ImageIO.write(screenshot.getImage(), "jpg", new File(resolveTestResourcePath("google-logo.png"))); + assertTrue(new File(resolveTestResourcePath("google-logo.png")).exists()); + } + + public void takeScreenshot(String pathname) throws IOException { + File src = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); + FileUtils.copyFile(src, new File(pathname)); + } + + private static String resolveResourcePath(String filename) { + File file = new File("src/main/resources/" + filename); + return file.getAbsolutePath(); + } + + private static String resolveTestResourcePath(String filename) { + File file = new File("src/test/resources/" + filename); + return file.getAbsolutePath(); + } +} From 48cdcb20fb46d3a8d48ad94e598851ff7ce9f556 Mon Sep 17 00:00:00 2001 From: luvarqpp <lubomir.varga@qpp.sk> Date: Wed, 1 Jul 2020 15:39:19 +0200 Subject: [PATCH 020/156] Fix exception when receiving POISON_PILL POISON_PILL is causing writing to closed client due to logic in code. --- .../src/main/java/com/baeldung/selector/EchoServer.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core-java-modules/core-java-nio-2/src/main/java/com/baeldung/selector/EchoServer.java b/core-java-modules/core-java-nio-2/src/main/java/com/baeldung/selector/EchoServer.java index 8cf2e941fe..9e9edcd0ba 100644 --- a/core-java-modules/core-java-nio-2/src/main/java/com/baeldung/selector/EchoServer.java +++ b/core-java-modules/core-java-nio-2/src/main/java/com/baeldung/selector/EchoServer.java @@ -49,11 +49,11 @@ public class EchoServer { if (new String(buffer.array()).trim().equals(POISON_PILL)) { client.close(); System.out.println("Not accepting client messages anymore"); + } else { + buffer.flip(); + client.write(buffer); + buffer.clear(); } - - buffer.flip(); - client.write(buffer); - buffer.clear(); } private static void register(Selector selector, ServerSocketChannel serverSocket) throws IOException { From b2a0fcd76bcf6eaa70c99d530b383c6711239ec6 Mon Sep 17 00:00:00 2001 From: root <anmoldeep0123@gmail.com> Date: Mon, 6 Jul 2020 16:10:46 +0000 Subject: [PATCH 021/156] BAEL-4302 : How can I list all classes loaded in a specific class loader --- .../loadedclasslisting/ClassLoaderType.java | 6 +++ .../baeldung/loadedclasslisting/Launcher.java | 51 +++++++++++++++++++ .../ListLoadedClassesAgent.java | 46 +++++++++++++++++ .../baeldung/loadedclasslisting/MANIFEST.MF | 1 + .../customLoader/ClassLoaderInfo.java | 12 +++++ .../customLoader/CustomClassLoader.java | 32 ++++++++++++ 6 files changed, 148 insertions(+) create mode 100644 core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ClassLoaderType.java create mode 100644 core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/Launcher.java create mode 100644 core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ListLoadedClassesAgent.java create mode 100644 core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/MANIFEST.MF create mode 100644 core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/ClassLoaderInfo.java create mode 100644 core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/CustomClassLoader.java diff --git a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ClassLoaderType.java b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ClassLoaderType.java new file mode 100644 index 0000000000..1111fc21fe --- /dev/null +++ b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ClassLoaderType.java @@ -0,0 +1,6 @@ +package com.baeldung.loadedclasslisting; + +public enum ClassLoaderType { + + SYSTEM, EXTENSION, BOOTSTRAP, CUSTOM +} diff --git a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/Launcher.java b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/Launcher.java new file mode 100644 index 0000000000..19c42dfd8d --- /dev/null +++ b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/Launcher.java @@ -0,0 +1,51 @@ +package com.baeldung.loadedclasslisting; + +import java.lang.reflect.Method; +import java.util.Arrays; + +import com.baeldung.loadedclasslisting.customLoader.ClassLoaderInfo; +import com.baeldung.loadedclasslisting.customLoader.CustomClassLoader; + +public class Launcher { + + private static ClassLoader customClassLoader; + + public static void main(String[] args) { + + printClassesLoadedBy(ClassLoaderType.BOOTSTRAP); + + printClassesLoadedBy(ClassLoaderType.SYSTEM); + + printClassesLoadedBy(ClassLoaderType.EXTENSION); + + printClassesLoadedBy(ClassLoaderType.CUSTOM); + } + + private static void printClassesLoadedBy(ClassLoaderType classLoaderType) { + Class<?>[] classes; + if (classLoaderType.equals(ClassLoaderType.CUSTOM)) { + customClassLoader = customClassLoading(); + classes = ListLoadedClassesAgent.listLoadedClasses(customClassLoader); + } else { + classes = ListLoadedClassesAgent.listLoadedClasses(classLoaderType); + } + Arrays.asList(classes) + .forEach(clazz -> System.out.println( + classLoaderType + " ClassLoader : " + clazz.getCanonicalName())); + } + + private static CustomClassLoader customClassLoading() { + CustomClassLoader customClassLoader = new CustomClassLoader(); + Class<?> c; + try { + c = customClassLoader.findClass(ClassLoaderInfo.class.getName()); + Object ob = c.getDeclaredConstructor() + .newInstance(); + Method md = c.getMethod("printClassLoaders"); + md.invoke(ob); + } catch (Exception e) { + e.printStackTrace(); + } + return customClassLoader; + } +} diff --git a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ListLoadedClassesAgent.java b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ListLoadedClassesAgent.java new file mode 100644 index 0000000000..03907f8b04 --- /dev/null +++ b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ListLoadedClassesAgent.java @@ -0,0 +1,46 @@ +package com.baeldung.loadedclasslisting; + +import java.lang.instrument.Instrumentation; + +public class ListLoadedClassesAgent { + + private static Instrumentation instrumentation; + + public static void premain(String agentArgs, Instrumentation instrumentation) { + ListLoadedClassesAgent.instrumentation = instrumentation; + } + + public static Class<?>[] listLoadedClasses(ClassLoaderType classLoaderType) { + if (instrumentation == null) { + throw new IllegalStateException( + "ListLoadedClassesAgent is not initialized."); + } + return instrumentation.getInitiatedClasses( + getClassLoader(classLoaderType)); + } + + public static Class<?>[] listLoadedClasses(ClassLoader classLoader) { + if (instrumentation == null) { + throw new IllegalStateException( + "ListLoadedClassesAgent is not initialized."); + } + return instrumentation.getInitiatedClasses(classLoader); + } + + private static ClassLoader getClassLoader(ClassLoaderType classLoaderType) { + ClassLoader classLoader = null; + switch (classLoaderType) { + case SYSTEM: + classLoader = ClassLoader.getSystemClassLoader(); + break; + case EXTENSION: + classLoader = ClassLoader.getSystemClassLoader().getParent(); + break; + case BOOTSTRAP: + break; + default: + break; + } + return classLoader; + } +} diff --git a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/MANIFEST.MF b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/MANIFEST.MF new file mode 100644 index 0000000000..4a60bda0b7 --- /dev/null +++ b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/MANIFEST.MF @@ -0,0 +1 @@ +Premain-Class: com.baeldung.loadedclasslisting.ListLoadedClassesAgent \ No newline at end of file diff --git a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/ClassLoaderInfo.java b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/ClassLoaderInfo.java new file mode 100644 index 0000000000..a787b062d5 --- /dev/null +++ b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/ClassLoaderInfo.java @@ -0,0 +1,12 @@ +package com.baeldung.loadedclasslisting.customLoader; + +import java.util.ArrayList; + +public class ClassLoaderInfo { + + public void printClassLoaders() throws ClassNotFoundException { + + System.out.println("Classloader of this class:" + ClassLoaderInfo.class.getClassLoader()); + System.out.println("Classloader of ArrayList:" + ArrayList.class.getClassLoader()); + } +} diff --git a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/CustomClassLoader.java b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/CustomClassLoader.java new file mode 100644 index 0000000000..a5f293f605 --- /dev/null +++ b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/CustomClassLoader.java @@ -0,0 +1,32 @@ +package com.baeldung.loadedclasslisting.customLoader; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; + +public class CustomClassLoader extends ClassLoader { + + @Override + public Class<?> findClass(String name) throws ClassNotFoundException { + byte[] b = loadClassFromFile(name); + return defineClass(name, b, 0, b.length); + } + + private byte[] loadClassFromFile(String fileName) { + InputStream inputStream = getClass().getClassLoader() + .getResourceAsStream(fileName.replace('.', File.separatorChar) + ".class"); + byte[] buffer; + ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); + int nextValue = 0; + try { + while ((nextValue = inputStream.read()) != -1) { + byteStream.write(nextValue); + } + } catch (IOException e) { + e.printStackTrace(); + } + buffer = byteStream.toByteArray(); + return buffer; + } +} From 23dbbb579dd55ed73b47f15ea8bc8d45b9c386ba Mon Sep 17 00:00:00 2001 From: Jonathan Cook <jcook@sciops.esa.int> Date: Mon, 13 Jul 2020 15:02:13 +0200 Subject: [PATCH 022/156] BAEL-4341 - JUnit test for System.out.println() --- testing-modules/testing-libraries/pom.xml | 15 +++++- .../systemout/SystemOutPrintlnUnitTest.java | 49 +++++++++++++++++++ .../SystemOutPrintlnWithRuleUnitTest.java | 27 ++++++++++ 3 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 testing-modules/testing-libraries/src/test/java/com/baeldung/systemout/SystemOutPrintlnUnitTest.java create mode 100644 testing-modules/testing-libraries/src/test/java/com/baeldung/systemout/SystemOutPrintlnWithRuleUnitTest.java diff --git a/testing-modules/testing-libraries/pom.xml b/testing-modules/testing-libraries/pom.xml index 53b58cee17..aa22a5253e 100644 --- a/testing-modules/testing-libraries/pom.xml +++ b/testing-modules/testing-libraries/pom.xml @@ -42,7 +42,18 @@ <artifactId>spring-boot-starter-web</artifactId> <version>2.2.0.RELEASE</version> </dependency> - + <dependency> + <groupId>com.github.stefanbirkner</groupId> + <artifactId>system-rules</artifactId> + <version>${system-rules.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>com.github.stefanbirkner</groupId> + <artifactId>system-lambda</artifactId> + <version>${system-lambda.version}</version> + <scope>test</scope> + </dependency> </dependencies> <build> @@ -90,6 +101,8 @@ <lambda-behave.version>0.4</lambda-behave.version> <cucumber.version>4.8.0</cucumber.version> <checkstyle-maven-plugin.version>3.0.0</checkstyle-maven-plugin.version> + <system-rules.version>1.19.0</system-rules.version> + <system-lambda.version>1.0.0</system-lambda.version> </properties> </project> diff --git a/testing-modules/testing-libraries/src/test/java/com/baeldung/systemout/SystemOutPrintlnUnitTest.java b/testing-modules/testing-libraries/src/test/java/com/baeldung/systemout/SystemOutPrintlnUnitTest.java new file mode 100644 index 0000000000..3ffc508fa5 --- /dev/null +++ b/testing-modules/testing-libraries/src/test/java/com/baeldung/systemout/SystemOutPrintlnUnitTest.java @@ -0,0 +1,49 @@ +package com.baeldung.systemout; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; + +import org.junit.Assert; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static com.github.stefanbirkner.systemlambda.SystemLambda.tapSystemOut; + +class SystemOutPrintlnUnitTest { + + private final ByteArrayOutputStream outputStreamCaptor = new ByteArrayOutputStream(); + private final PrintStream standardOut = System.out; + + @BeforeEach + public void setUp() { + System.setOut(new PrintStream(outputStreamCaptor)); + } + + @BeforeEach + public void tearDown() { + System.setOut(standardOut); + } + + @Test + void givenSystemOutRedirection_whenInvokePrintln_thenOutputCaptorSuccess() { + print("Hello Baeldung Readers!!"); + + Assert.assertEquals("Hello Baeldung Readers!!", outputStreamCaptor.toString() + .trim()); + } + + @Test + void givenTapSystemOut_whenInvokePrintln_thenOutputIsReturnedSuccessfully() throws Exception { + + String text = tapSystemOut(() -> { + print("Hello Baeldung Readers!!"); + }); + + Assert.assertEquals("Hello Baeldung Readers!!", text.trim()); + } + + private void print(String output) { + System.out.println(output); + } + +} diff --git a/testing-modules/testing-libraries/src/test/java/com/baeldung/systemout/SystemOutPrintlnWithRuleUnitTest.java b/testing-modules/testing-libraries/src/test/java/com/baeldung/systemout/SystemOutPrintlnWithRuleUnitTest.java new file mode 100644 index 0000000000..f15b71999e --- /dev/null +++ b/testing-modules/testing-libraries/src/test/java/com/baeldung/systemout/SystemOutPrintlnWithRuleUnitTest.java @@ -0,0 +1,27 @@ +package com.baeldung.systemout; + +import org.junit.Assert; +import org.junit.Rule; +import org.junit.Test; +import org.junit.contrib.java.lang.system.SystemOutRule; + +public class SystemOutPrintlnWithRuleUnitTest { + + @Rule + public final SystemOutRule systemOutRule = new SystemOutRule().enableLog(); + + @Test + public void givenSystemOutRule_whenInvokePrintln_thenLogSuccess() { + print("Hello Baeldung Readers!!"); + + Assert.assertEquals("Hello Baeldung Readers!!", systemOutRule.getLog() + .trim()); + + Assert.assertEquals("Hello Baeldung Readers!!\n", systemOutRule.getLogWithNormalizedLineSeparator()); + } + + private void print(String output) { + System.out.println(output); + } + +} From c5c128033deee4fe152b550d062007c3411915cc Mon Sep 17 00:00:00 2001 From: root <anmoldeep0123@gmail.com> Date: Tue, 14 Jul 2020 18:59:16 +0000 Subject: [PATCH 023/156] Code Review BAEL-4302 --- .../com/baeldung/loadedclasslisting/ClassLoaderType.java | 6 ------ .../main/java/com/baeldung/loadedclasslisting/Launcher.java | 5 +---- .../baeldung/loadedclasslisting/ListLoadedClassesAgent.java | 4 ++++ .../loadedclasslisting/customLoader/ClassLoaderInfo.java | 1 - 4 files changed, 5 insertions(+), 11 deletions(-) delete mode 100644 core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ClassLoaderType.java diff --git a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ClassLoaderType.java b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ClassLoaderType.java deleted file mode 100644 index 1111fc21fe..0000000000 --- a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ClassLoaderType.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.baeldung.loadedclasslisting; - -public enum ClassLoaderType { - - SYSTEM, EXTENSION, BOOTSTRAP, CUSTOM -} diff --git a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/Launcher.java b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/Launcher.java index 19c42dfd8d..e1851275c9 100644 --- a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/Launcher.java +++ b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/Launcher.java @@ -3,6 +3,7 @@ package com.baeldung.loadedclasslisting; import java.lang.reflect.Method; import java.util.Arrays; +import com.baeldung.loadedclasslisting.ListLoadedClassesAgent.ClassLoaderType; import com.baeldung.loadedclasslisting.customLoader.ClassLoaderInfo; import com.baeldung.loadedclasslisting.customLoader.CustomClassLoader; @@ -11,13 +12,9 @@ public class Launcher { private static ClassLoader customClassLoader; public static void main(String[] args) { - printClassesLoadedBy(ClassLoaderType.BOOTSTRAP); - printClassesLoadedBy(ClassLoaderType.SYSTEM); - printClassesLoadedBy(ClassLoaderType.EXTENSION); - printClassesLoadedBy(ClassLoaderType.CUSTOM); } diff --git a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ListLoadedClassesAgent.java b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ListLoadedClassesAgent.java index 03907f8b04..8f4b8ebd41 100644 --- a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ListLoadedClassesAgent.java +++ b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ListLoadedClassesAgent.java @@ -4,6 +4,10 @@ import java.lang.instrument.Instrumentation; public class ListLoadedClassesAgent { + public enum ClassLoaderType { + SYSTEM, EXTENSION, BOOTSTRAP, CUSTOM , PLATFORM + } + private static Instrumentation instrumentation; public static void premain(String agentArgs, Instrumentation instrumentation) { diff --git a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/ClassLoaderInfo.java b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/ClassLoaderInfo.java index a787b062d5..2574394c13 100644 --- a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/ClassLoaderInfo.java +++ b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/ClassLoaderInfo.java @@ -5,7 +5,6 @@ import java.util.ArrayList; public class ClassLoaderInfo { public void printClassLoaders() throws ClassNotFoundException { - System.out.println("Classloader of this class:" + ClassLoaderInfo.class.getClassLoader()); System.out.println("Classloader of ArrayList:" + ArrayList.class.getClassLoader()); } From 9e03b89e699d9dc567af844157dc9307fe3f8329 Mon Sep 17 00:00:00 2001 From: andrebrowne <42154231+andrebrowne@users.noreply.github.com> Date: Wed, 15 Jul 2020 20:53:23 -0400 Subject: [PATCH 024/156] BAEL-4007 Add jpa data equality unit test specs --- persistence-modules/java-jpa-3/README.md | 3 + persistence-modules/java-jpa-3/pom.xml | 139 ++++++++++++++++++ .../jpa/equality/EqualByBusinessKey.java | 54 +++++++ .../com/baeldung/jpa/equality/EqualById.java | 54 +++++++ .../jpa/equality/EqualByJavaDefault.java | 38 +++++ .../main/resources/META-INF/persistence.xml | 25 ++++ .../java-jpa-3/src/main/resources/logback.xml | 15 ++ .../jpa/equality/EqualityUnitTest.java | 74 ++++++++++ 8 files changed, 402 insertions(+) create mode 100644 persistence-modules/java-jpa-3/README.md create mode 100644 persistence-modules/java-jpa-3/pom.xml create mode 100644 persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByBusinessKey.java create mode 100644 persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualById.java create mode 100644 persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByJavaDefault.java create mode 100644 persistence-modules/java-jpa-3/src/main/resources/META-INF/persistence.xml create mode 100644 persistence-modules/java-jpa-3/src/main/resources/logback.xml create mode 100644 persistence-modules/java-jpa-3/src/test/java/com/baeldung/jpa/equality/EqualityUnitTest.java diff --git a/persistence-modules/java-jpa-3/README.md b/persistence-modules/java-jpa-3/README.md new file mode 100644 index 0000000000..01fdf05b53 --- /dev/null +++ b/persistence-modules/java-jpa-3/README.md @@ -0,0 +1,3 @@ +## JPA in Java + +This module contains articles about the Java Persistence API (JPA) in Java. diff --git a/persistence-modules/java-jpa-3/pom.xml b/persistence-modules/java-jpa-3/pom.xml new file mode 100644 index 0000000000..562f337215 --- /dev/null +++ b/persistence-modules/java-jpa-3/pom.xml @@ -0,0 +1,139 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <artifactId>java-jpa-3</artifactId> + <name>java-jpa-3</name> + + <parent> + <groupId>com.baeldung</groupId> + <artifactId>persistence-modules</artifactId> + <version>1.0.0-SNAPSHOT</version> + </parent> + + <dependencies> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-core</artifactId> + <version>${hibernate.version}</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-jpamodelgen</artifactId> + <version>${hibernate.version}</version> + </dependency> + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <version>${h2.version}</version> + </dependency> + + <!--Compile time JPA API --> + <dependency> + <groupId>javax.persistence</groupId> + <artifactId>javax.persistence-api</artifactId> + <version>${javax.persistence-api.version}</version> + </dependency> + + <!--Runtime JPA implementation --> + <dependency> + <groupId>org.eclipse.persistence</groupId> + <artifactId>eclipselink</artifactId> + <version>${eclipselink.version}</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.postgresql</groupId> + <artifactId>postgresql</artifactId> + <version>${postgres.version}</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> + <version>${assertj.version}</version> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>${maven-compiler-plugin.version}</version> + <configuration> + <compilerArgument>-proc:none</compilerArgument> + </configuration> + </plugin> + <plugin> + <groupId>org.bsc.maven</groupId> + <artifactId>maven-processor-plugin</artifactId> + <version>${maven-processor-plugin.version}</version> + <executions> + <execution> + <id>process</id> + <goals> + <goal>process</goal> + </goals> + <phase>generate-sources</phase> + <configuration> + <outputDirectory>target/metamodel</outputDirectory> + <processors> + <processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor> + </processors> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <version>${build-helper-maven-plugin.version}</version> + <executions> + <execution> + <id>add-source</id> + <phase>generate-sources</phase> + <goals> + <goal>add-source</goal> + </goals> + <configuration> + <sources> + <source>target/metamodel</source> + <source>${project.build.directory}/generated-sources/java/</source> + </sources> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>com.mysema.maven</groupId> + <artifactId>apt-maven-plugin</artifactId> + <version>1.1.3</version> + <executions> + <execution> + <goals> + <goal>process</goal> + </goals> + <configuration> + <outputDirectory>target/generated-sources/java</outputDirectory> + <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + + <properties> + <hibernate.version>5.4.14.Final</hibernate.version> + <eclipselink.version>2.7.4</eclipselink.version> + <postgres.version>42.2.5</postgres.version> + <javax.persistence-api.version>2.2</javax.persistence-api.version> + <assertj.version>3.11.1</assertj.version> + <maven-compiler-plugin.version>3.5.1</maven-compiler-plugin.version> + <maven-processor-plugin.version>3.3.3</maven-processor-plugin.version> + <build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version> + </properties> + +</project> diff --git a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByBusinessKey.java b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByBusinessKey.java new file mode 100644 index 0000000000..3e34f97d77 --- /dev/null +++ b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByBusinessKey.java @@ -0,0 +1,54 @@ +package com.baeldung.jpa.equality; + +import javax.persistence.*; + +@Entity +public class EqualByBusinessKey { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + + private String email; + + public EqualByBusinessKey() { + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((email == null) ? 0 : email.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (obj instanceof EqualByBusinessKey) + if (((EqualByBusinessKey) obj).getEmail() == getEmail()) + return true; + + return false; + } + +} diff --git a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualById.java b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualById.java new file mode 100644 index 0000000000..f29a152f3e --- /dev/null +++ b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualById.java @@ -0,0 +1,54 @@ +package com.baeldung.jpa.equality; + +import javax.persistence.*; + +@Entity +public class EqualById { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + + private String email; + + public EqualById() { + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((id == null) ? 0 : id.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (obj instanceof EqualById) + return ((EqualById) obj).getId() == getId(); + + return false; + } + +} diff --git a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByJavaDefault.java b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByJavaDefault.java new file mode 100644 index 0000000000..04a81865c6 --- /dev/null +++ b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByJavaDefault.java @@ -0,0 +1,38 @@ +package com.baeldung.jpa.equality; + +import javax.persistence.*; + +@Entity +public class EqualByJavaDefault implements Cloneable{ + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + + private String email; + + public EqualByJavaDefault() { + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Object clone() throws + CloneNotSupportedException + { + return super.clone(); + } +} diff --git a/persistence-modules/java-jpa-3/src/main/resources/META-INF/persistence.xml b/persistence-modules/java-jpa-3/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000000..28a929f912 --- /dev/null +++ b/persistence-modules/java-jpa-3/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence + http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd" + version="2.2"> + <persistence-unit name="jpa-h2-equality"> + <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> + <class>com.baeldung.jpa.equality.EqualByJavaDefault</class> + <class>com.baeldung.jpa.equality.EqualById</class> + <class>com.baeldung.jpa.equality.EqualByBusinessKey</class> + <exclude-unlisted-classes>true</exclude-unlisted-classes> + <properties> + <property name="javax.persistence.jdbc.driver" value="org.h2.Driver" /> + <property name="javax.persistence.jdbc.url" value="jdbc:h2:mem:test" /> + <property name="javax.persistence.jdbc.user" value="sa" /> + <property name="javax.persistence.jdbc.password" value="" /> + <property name="javax.persistence.jdbc.driver" value="org.h2.Driver" /> + <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" /> + <property name="hibernate.hbm2ddl.auto" value="create-drop" /> + <property name="show_sql" value="false" /> + <property name="hibernate.temp.use_jdbc_metadata_defaults" value="false" /> + </properties> + </persistence-unit> +</persistence> diff --git a/persistence-modules/java-jpa-3/src/main/resources/logback.xml b/persistence-modules/java-jpa-3/src/main/resources/logback.xml new file mode 100644 index 0000000000..2527fea245 --- /dev/null +++ b/persistence-modules/java-jpa-3/src/main/resources/logback.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configuration> + <appender name="STDOUT" + class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - + %msg%n + </pattern> + </encoder> + </appender> + + <root level="INFO"> + <appender-ref ref="STDOUT" /> + </root> +</configuration> \ No newline at end of file diff --git a/persistence-modules/java-jpa-3/src/test/java/com/baeldung/jpa/equality/EqualityUnitTest.java b/persistence-modules/java-jpa-3/src/test/java/com/baeldung/jpa/equality/EqualityUnitTest.java new file mode 100644 index 0000000000..c672c9e460 --- /dev/null +++ b/persistence-modules/java-jpa-3/src/test/java/com/baeldung/jpa/equality/EqualityUnitTest.java @@ -0,0 +1,74 @@ +package com.baeldung.jpa.equality; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; + +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +public class EqualityUnitTest { + + private static EntityManagerFactory factory; + private static EntityManager entityManager; + + @BeforeClass + public static void setup() { + factory = Persistence.createEntityManagerFactory("jpa-h2-equality"); + entityManager = factory.createEntityManager(); + } + + @Test + public void givenObjectBasedEquality_whenUsingEquals_thenEqualIsBasedOnInstance() throws CloneNotSupportedException { + EqualByJavaDefault object1 = new EqualByJavaDefault(); + EqualByJavaDefault object2 = new EqualByJavaDefault(); + + object1.setEmail("test.user@domain.com"); + + entityManager.getTransaction().begin(); + entityManager.persist(object1); + entityManager.getTransaction().commit(); + + object2 = (EqualByJavaDefault) object1.clone(); + + Assert.assertNotEquals(object1, object2); + Assert.assertEquals(object1.getId(), object2.getId()); + Assert.assertEquals(object1.getEmail(), object2.getEmail()); + } + + @Test + public void givenIdBasedEquality_whenUsingEquals_thenEqualIsBasedOnId() { + EqualById object1 = new EqualById(); + EqualById object2 = new EqualById(); + + object1.setEmail("test.user.1@domain.com"); + object2.setEmail("test.user.2@domain.com"); + + entityManager.getTransaction().begin(); + entityManager.persist(object1); + entityManager.getTransaction().commit(); + + object2.setId(object1.getId()); + + Assert.assertEquals(object1, object2); + Assert.assertEquals(object1.getId(), object2.getId()); + Assert.assertNotEquals(object1.getEmail(), object2.getEmail()); + } + + @Test + public void givenBusinessKeyBasedEquality_whenUsingEquals_thenEqualIsBasedOnBusinessKey() { + EqualByBusinessKey object1 = new EqualByBusinessKey(); + EqualByBusinessKey object2 = new EqualByBusinessKey(); + + object1.setEmail("test.user@test-domain.com"); + object2.setEmail("test.user@test-domain.com"); + + entityManager.getTransaction().begin(); + entityManager.persist(object1); + entityManager.getTransaction().commit(); + + Assert.assertEquals(object1, object2); + Assert.assertNotEquals(object1.getId(), object2.getId()); + } +} \ No newline at end of file From 1ba39d1b95e0d6984903a2f8755d2c1026e1fa7b Mon Sep 17 00:00:00 2001 From: andrebrowne <42154231+andrebrowne@users.noreply.github.com> Date: Wed, 15 Jul 2020 21:16:31 -0400 Subject: [PATCH 025/156] Remove heagonal architecture --- architecture/README.md | 3 -- architecture/pom.xml | 33 ------------ .../HexagonalArchitectureTaskApplication.java | 12 ----- .../application/task/AddNewDailyTask.java | 29 ---------- .../application/task/AddNewTask.java | 22 -------- .../application/task/GetTasks.java | 22 -------- .../commands/task/CreateTask.java | 7 --- .../commands/task/GetAllTasks.java | 7 --- .../architecture/domain/task/Task.java | 53 ------------------- .../domain/task/TaskRepository.java | 7 --- .../architecture/domain/task/TaskService.java | 22 -------- .../framework/cli/StartupRunner.java | 24 --------- .../http/task/TaskApiController.java | 42 --------------- .../framework/http/task/TaskRequest.java | 28 ---------- 14 files changed, 311 deletions(-) delete mode 100644 architecture/README.md delete mode 100644 architecture/pom.xml delete mode 100644 architecture/src/main/java/com/baeldung/architecture/HexagonalArchitectureTaskApplication.java delete mode 100644 architecture/src/main/java/com/baeldung/architecture/application/task/AddNewDailyTask.java delete mode 100644 architecture/src/main/java/com/baeldung/architecture/application/task/AddNewTask.java delete mode 100644 architecture/src/main/java/com/baeldung/architecture/application/task/GetTasks.java delete mode 100644 architecture/src/main/java/com/baeldung/architecture/commands/task/CreateTask.java delete mode 100644 architecture/src/main/java/com/baeldung/architecture/commands/task/GetAllTasks.java delete mode 100644 architecture/src/main/java/com/baeldung/architecture/domain/task/Task.java delete mode 100644 architecture/src/main/java/com/baeldung/architecture/domain/task/TaskRepository.java delete mode 100644 architecture/src/main/java/com/baeldung/architecture/domain/task/TaskService.java delete mode 100644 architecture/src/main/java/com/baeldung/architecture/framework/cli/StartupRunner.java delete mode 100644 architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskApiController.java delete mode 100644 architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskRequest.java diff --git a/architecture/README.md b/architecture/README.md deleted file mode 100644 index be093f25ed..0000000000 --- a/architecture/README.md +++ /dev/null @@ -1,3 +0,0 @@ -### Relevant articles - -- [A Quick and Practical Example of Hexagonal Architecture in Java](https://www.baeldung.com/a-quick-and-practical-example-of-hexagonal-architecture-in-java-3/) diff --git a/architecture/pom.xml b/architecture/pom.xml deleted file mode 100644 index 4ad104293e..0000000000 --- a/architecture/pom.xml +++ /dev/null @@ -1,33 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>com.baeldung.architecture</groupId> - <artifactId>architecture</artifactId> - <version>0.0.1-SNAPSHOT</version> - <name>architecture</name> - <packaging>jar</packaging> - <description>A Quick and Practical Example of Hexagonal Architecture in Java</description> - - <parent> - <artifactId>parent-boot-2</artifactId> - <groupId>com.baeldung</groupId> - <version>0.0.1-SNAPSHOT</version> - <relativePath>../parent-boot-2</relativePath> - </parent> - - <dependencies> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-data-jpa</artifactId> - </dependency> - <dependency> - <groupId>com.h2database</groupId> - <artifactId>h2</artifactId> - <scope>runtime</scope> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-web</artifactId> - </dependency> - </dependencies> -</project> diff --git a/architecture/src/main/java/com/baeldung/architecture/HexagonalArchitectureTaskApplication.java b/architecture/src/main/java/com/baeldung/architecture/HexagonalArchitectureTaskApplication.java deleted file mode 100644 index 69c6f4b276..0000000000 --- a/architecture/src/main/java/com/baeldung/architecture/HexagonalArchitectureTaskApplication.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.baeldung.architecture; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class HexagonalArchitectureTaskApplication { - public static void main(String[] args) { - SpringApplication.run(HexagonalArchitectureTaskApplication.class, args); - } - -} diff --git a/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewDailyTask.java b/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewDailyTask.java deleted file mode 100644 index f9ee97542c..0000000000 --- a/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewDailyTask.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.baeldung.architecture.application.task; - -import java.time.Instant; -import java.time.temporal.ChronoUnit; - -import com.baeldung.architecture.commands.task.CreateTask; -import com.baeldung.architecture.domain.task.Task; - -import org.springframework.stereotype.Component; - -@Component -public class AddNewDailyTask implements CreateTask { - - private AddNewTask addNewTask; - - public AddNewDailyTask(AddNewTask addNewTask) { - this.addNewTask = addNewTask; - } - - @Override - public void create(Task newTask) { - Instant initialDueDate = newTask.getDueDate(); - String description = newTask.getDescription(); - for (int i = 1; i <= 5; i++) { - Task task = new Task(initialDueDate.plus(i, ChronoUnit.DAYS), description); - addNewTask.create(task); - } - } -} diff --git a/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewTask.java b/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewTask.java deleted file mode 100644 index 70638378f9..0000000000 --- a/architecture/src/main/java/com/baeldung/architecture/application/task/AddNewTask.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.baeldung.architecture.application.task; - -import com.baeldung.architecture.domain.task.Task; -import com.baeldung.architecture.domain.task.TaskService; -import com.baeldung.architecture.commands.task.*; - -import org.springframework.stereotype.Component; - -@Component -public class AddNewTask implements CreateTask { - - private TaskService taskService; - - public AddNewTask(TaskService taskService) { - this.taskService = taskService; - } - - @Override - public void create(Task newTask) { - taskService.createTask(newTask); - } -} diff --git a/architecture/src/main/java/com/baeldung/architecture/application/task/GetTasks.java b/architecture/src/main/java/com/baeldung/architecture/application/task/GetTasks.java deleted file mode 100644 index c876f7de85..0000000000 --- a/architecture/src/main/java/com/baeldung/architecture/application/task/GetTasks.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.baeldung.architecture.application.task; - -import com.baeldung.architecture.domain.task.Task; -import com.baeldung.architecture.domain.task.TaskService; -import com.baeldung.architecture.commands.task.*; - -import org.springframework.stereotype.Component; - -@Component -public class GetTasks implements GetAllTasks { - - private TaskService taskService; - - public GetTasks(TaskService taskService) { - this.taskService = taskService; - } - - @Override - public Iterable<Task> getAll() { - return taskService.getAllTasks(); - } -} diff --git a/architecture/src/main/java/com/baeldung/architecture/commands/task/CreateTask.java b/architecture/src/main/java/com/baeldung/architecture/commands/task/CreateTask.java deleted file mode 100644 index ec60868a22..0000000000 --- a/architecture/src/main/java/com/baeldung/architecture/commands/task/CreateTask.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.baeldung.architecture.commands.task; - -import com.baeldung.architecture.domain.task.Task; - -public interface CreateTask { - public void create(Task newTask); -} diff --git a/architecture/src/main/java/com/baeldung/architecture/commands/task/GetAllTasks.java b/architecture/src/main/java/com/baeldung/architecture/commands/task/GetAllTasks.java deleted file mode 100644 index c9aa1be5f8..0000000000 --- a/architecture/src/main/java/com/baeldung/architecture/commands/task/GetAllTasks.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.baeldung.architecture.commands.task; - -import com.baeldung.architecture.domain.task.Task; - -public interface GetAllTasks { - public Iterable<Task> getAll(); -} diff --git a/architecture/src/main/java/com/baeldung/architecture/domain/task/Task.java b/architecture/src/main/java/com/baeldung/architecture/domain/task/Task.java deleted file mode 100644 index 240dc33571..0000000000 --- a/architecture/src/main/java/com/baeldung/architecture/domain/task/Task.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.baeldung.architecture.domain.task; - -import java.time.Instant; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; - -@Entity -public class Task { - @Id - @GeneratedValue(strategy=GenerationType.AUTO) - private Long id; - private Instant dueDate = Instant.now(); - private String description; - - public Task() {} - - public Task(Instant dueDate, String description) { - this.dueDate = dueDate; - this.description = description; - } - - public Task(Long id, Instant dueDate, String description) { - this(dueDate, description); - this.id = id; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Instant getDueDate() { - return dueDate; - } - - public void setDueDate(Instant dueDate) { - this.dueDate = dueDate; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } -} diff --git a/architecture/src/main/java/com/baeldung/architecture/domain/task/TaskRepository.java b/architecture/src/main/java/com/baeldung/architecture/domain/task/TaskRepository.java deleted file mode 100644 index d896212714..0000000000 --- a/architecture/src/main/java/com/baeldung/architecture/domain/task/TaskRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.baeldung.architecture.domain.task; - -import org.springframework.data.repository.CrudRepository; -import org.springframework.stereotype.Repository; - -@Repository -public interface TaskRepository extends CrudRepository<Task, Long> {}; diff --git a/architecture/src/main/java/com/baeldung/architecture/domain/task/TaskService.java b/architecture/src/main/java/com/baeldung/architecture/domain/task/TaskService.java deleted file mode 100644 index 11ef0f3e19..0000000000 --- a/architecture/src/main/java/com/baeldung/architecture/domain/task/TaskService.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.baeldung.architecture.domain.task; - -import org.springframework.stereotype.Service; - -@Service -public class TaskService { - - private TaskRepository taskRepository; - - public TaskService(TaskRepository taskRepository) { - this.taskRepository = taskRepository; - } - - public void createTask(Task task) { - taskRepository.save(task); - } - - public Iterable<Task> getAllTasks() { - return taskRepository.findAll(); - } - -} diff --git a/architecture/src/main/java/com/baeldung/architecture/framework/cli/StartupRunner.java b/architecture/src/main/java/com/baeldung/architecture/framework/cli/StartupRunner.java deleted file mode 100644 index 449bc9386e..0000000000 --- a/architecture/src/main/java/com/baeldung/architecture/framework/cli/StartupRunner.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.baeldung.architecture.framework.cli; - -import com.baeldung.architecture.application.task.AddNewDailyTask; -import com.baeldung.architecture.domain.task.Task; - -import org.springframework.boot.ApplicationArguments; -import org.springframework.boot.ApplicationRunner; -import org.springframework.stereotype.Component; - -@Component -public class StartupRunner implements ApplicationRunner { - - AddNewDailyTask addNewDailyTask; - - public StartupRunner(AddNewDailyTask addNewDailyTask) { - this.addNewDailyTask = addNewDailyTask; - } - @Override - public void run(ApplicationArguments args) throws Exception { - Task task = new Task(); - task.setDescription("Startup Task"); - addNewDailyTask.create(task); - } -} diff --git a/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskApiController.java b/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskApiController.java deleted file mode 100644 index 87a8f5fe4b..0000000000 --- a/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskApiController.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.baeldung.architecture.framework.http.task; - -import java.time.Instant; - -import com.baeldung.architecture.application.task.AddNewTask; -import com.baeldung.architecture.application.task.GetTasks; -import com.baeldung.architecture.domain.task.Task; - -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("task") -public class TaskApiController { - - private AddNewTask addNewTask; - private GetTasks getTasks; - - public TaskApiController( - AddNewTask addNewTask, - GetTasks getTasks - ) { - this.addNewTask = addNewTask; - this.getTasks = getTasks; - } - - @GetMapping - Iterable<Task> listTasks() { - return getTasks.getAll(); - } - - @PostMapping(consumes = "application/json", produces = "application/json") - void createTask(@RequestBody TaskRequest taskRequest) { - Task task = new Task(); - task.setDescription(taskRequest.getDescription()); - task.setDueDate(Instant.parse(taskRequest.getDueDate())); - addNewTask.create(task); - } -} diff --git a/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskRequest.java b/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskRequest.java deleted file mode 100644 index 70b98a32f9..0000000000 --- a/architecture/src/main/java/com/baeldung/architecture/framework/http/task/TaskRequest.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.baeldung.architecture.framework.http.task; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; - -public class TaskRequest { - @JsonInclude(Include.NON_NULL) - private String description; - - @JsonInclude(Include.NON_NULL) - private String dueDate; - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getDueDate() { - return dueDate; - } - - public void setDueDate(String dueDate) { - this.dueDate = dueDate; - } -} From c1a9c42194d7945b8c5162de41d6c92410437247 Mon Sep 17 00:00:00 2001 From: root <anmoldeep0123@gmail.com> Date: Sat, 25 Jul 2020 18:23:39 +0000 Subject: [PATCH 026/156] Review - II Kevin Gilmore --- .../customLoader/ClassLoaderInfo.java | 11 ------- .../customLoader/CustomClassLoader.java | 32 ------------------- 2 files changed, 43 deletions(-) delete mode 100644 core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/ClassLoaderInfo.java delete mode 100644 core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/CustomClassLoader.java diff --git a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/ClassLoaderInfo.java b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/ClassLoaderInfo.java deleted file mode 100644 index 2574394c13..0000000000 --- a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/ClassLoaderInfo.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.baeldung.loadedclasslisting.customLoader; - -import java.util.ArrayList; - -public class ClassLoaderInfo { - - public void printClassLoaders() throws ClassNotFoundException { - System.out.println("Classloader of this class:" + ClassLoaderInfo.class.getClassLoader()); - System.out.println("Classloader of ArrayList:" + ArrayList.class.getClassLoader()); - } -} diff --git a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/CustomClassLoader.java b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/CustomClassLoader.java deleted file mode 100644 index a5f293f605..0000000000 --- a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/customLoader/CustomClassLoader.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.baeldung.loadedclasslisting.customLoader; - -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; - -public class CustomClassLoader extends ClassLoader { - - @Override - public Class<?> findClass(String name) throws ClassNotFoundException { - byte[] b = loadClassFromFile(name); - return defineClass(name, b, 0, b.length); - } - - private byte[] loadClassFromFile(String fileName) { - InputStream inputStream = getClass().getClassLoader() - .getResourceAsStream(fileName.replace('.', File.separatorChar) + ".class"); - byte[] buffer; - ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); - int nextValue = 0; - try { - while ((nextValue = inputStream.read()) != -1) { - byteStream.write(nextValue); - } - } catch (IOException e) { - e.printStackTrace(); - } - buffer = byteStream.toByteArray(); - return buffer; - } -} From 1299a22eb52b302b9585e369e5109d552a11ef44 Mon Sep 17 00:00:00 2001 From: root <anmoldeep0123@gmail.com> Date: Sat, 25 Jul 2020 18:28:28 +0000 Subject: [PATCH 027/156] Review - II Kevin Gilmore Changes --- .../baeldung/loadedclasslisting/Launcher.java | 39 +++---------------- .../ListLoadedClassesAgent.java | 24 ++++-------- 2 files changed, 12 insertions(+), 51 deletions(-) diff --git a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/Launcher.java b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/Launcher.java index e1851275c9..30db6b0bb7 100644 --- a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/Launcher.java +++ b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/Launcher.java @@ -1,48 +1,19 @@ package com.baeldung.loadedclasslisting; -import java.lang.reflect.Method; import java.util.Arrays; -import com.baeldung.loadedclasslisting.ListLoadedClassesAgent.ClassLoaderType; -import com.baeldung.loadedclasslisting.customLoader.ClassLoaderInfo; -import com.baeldung.loadedclasslisting.customLoader.CustomClassLoader; - public class Launcher { - private static ClassLoader customClassLoader; - public static void main(String[] args) { - printClassesLoadedBy(ClassLoaderType.BOOTSTRAP); - printClassesLoadedBy(ClassLoaderType.SYSTEM); - printClassesLoadedBy(ClassLoaderType.EXTENSION); - printClassesLoadedBy(ClassLoaderType.CUSTOM); + printClassesLoadedBy("BOOTSTRAP"); + printClassesLoadedBy("SYSTEM"); + printClassesLoadedBy("EXTENSION"); } - private static void printClassesLoadedBy(ClassLoaderType classLoaderType) { - Class<?>[] classes; - if (classLoaderType.equals(ClassLoaderType.CUSTOM)) { - customClassLoader = customClassLoading(); - classes = ListLoadedClassesAgent.listLoadedClasses(customClassLoader); - } else { - classes = ListLoadedClassesAgent.listLoadedClasses(classLoaderType); - } + private static void printClassesLoadedBy(String classLoaderType) { + Class<?>[] classes = ListLoadedClassesAgent.listLoadedClasses(classLoaderType); Arrays.asList(classes) .forEach(clazz -> System.out.println( classLoaderType + " ClassLoader : " + clazz.getCanonicalName())); } - - private static CustomClassLoader customClassLoading() { - CustomClassLoader customClassLoader = new CustomClassLoader(); - Class<?> c; - try { - c = customClassLoader.findClass(ClassLoaderInfo.class.getName()); - Object ob = c.getDeclaredConstructor() - .newInstance(); - Method md = c.getMethod("printClassLoaders"); - md.invoke(ob); - } catch (Exception e) { - e.printStackTrace(); - } - return customClassLoader; - } } diff --git a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ListLoadedClassesAgent.java b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ListLoadedClassesAgent.java index 8f4b8ebd41..337214a664 100644 --- a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ListLoadedClassesAgent.java +++ b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/ListLoadedClassesAgent.java @@ -4,17 +4,13 @@ import java.lang.instrument.Instrumentation; public class ListLoadedClassesAgent { - public enum ClassLoaderType { - SYSTEM, EXTENSION, BOOTSTRAP, CUSTOM , PLATFORM - } - private static Instrumentation instrumentation; public static void premain(String agentArgs, Instrumentation instrumentation) { ListLoadedClassesAgent.instrumentation = instrumentation; } - public static Class<?>[] listLoadedClasses(ClassLoaderType classLoaderType) { + public static Class<?>[] listLoadedClasses(String classLoaderType) { if (instrumentation == null) { throw new IllegalStateException( "ListLoadedClassesAgent is not initialized."); @@ -23,24 +19,18 @@ public class ListLoadedClassesAgent { getClassLoader(classLoaderType)); } - public static Class<?>[] listLoadedClasses(ClassLoader classLoader) { - if (instrumentation == null) { - throw new IllegalStateException( - "ListLoadedClassesAgent is not initialized."); - } - return instrumentation.getInitiatedClasses(classLoader); - } - - private static ClassLoader getClassLoader(ClassLoaderType classLoaderType) { + private static ClassLoader getClassLoader(String classLoaderType) { ClassLoader classLoader = null; switch (classLoaderType) { - case SYSTEM: + case "SYSTEM": classLoader = ClassLoader.getSystemClassLoader(); break; - case EXTENSION: + case "EXTENSION": classLoader = ClassLoader.getSystemClassLoader().getParent(); break; - case BOOTSTRAP: + // passing a null value to the Instrumentation : getInitiatedClasses method + // defaults to the bootstrap class loader + case "BOOTSTRAP": break; default: break; From c95dbf8135c7eb1cd42a3f28d13be22978a0a5c7 Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankur.gupta@jda.com> Date: Sun, 26 Jul 2020 16:51:40 +0530 Subject: [PATCH 028/156] BAEL-4025:Spring Data Azure Cosmos DB --- .../spring-data-cosmosdb/pom.xml | 48 +++++++++++++++ .../cosmosdb/AzurecosmodbApplication.java | 44 ++++++++++++++ .../controller/ProductController.java | 54 +++++++++++++++++ .../spring/data/cosmosdb/entity/Product.java | 58 +++++++++++++++++++ .../repository/ProductRepository.java | 15 +++++ .../data/cosmosdb/service/ProductService.java | 39 +++++++++++++ .../src/main/resources/application.properties | 4 ++ ...zurecosmodbApplicationIntegrationTest.java | 40 +++++++++++++ 8 files changed, 302 insertions(+) create mode 100644 persistence-modules/spring-data-cosmosdb/pom.xml create mode 100644 persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplication.java create mode 100644 persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/controller/ProductController.java create mode 100644 persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/entity/Product.java create mode 100644 persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/repository/ProductRepository.java create mode 100644 persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/service/ProductService.java create mode 100644 persistence-modules/spring-data-cosmosdb/src/main/resources/application.properties create mode 100644 persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationIntegrationTest.java diff --git a/persistence-modules/spring-data-cosmosdb/pom.xml b/persistence-modules/spring-data-cosmosdb/pom.xml new file mode 100644 index 0000000000..8bb103879d --- /dev/null +++ b/persistence-modules/spring-data-cosmosdb/pom.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <artifactId>spring-data-cosmosdb</artifactId> + <name>spring-data-cosmos-db</name> + <description>tutorial for spring-data-cosmosdb</description> + + <parent> + <groupId>com.baeldung</groupId> + <artifactId>parent-boot-2</artifactId> + <version>0.0.1-SNAPSHOT</version> + <relativePath>../../parent-boot-2</relativePath> + </parent> + + <properties> + <java.version>1.8</java.version> + </properties> + + <dependencies> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> + <dependency> + <groupId>com.microsoft.azure</groupId> + <artifactId>spring-data-cosmosdb</artifactId> + <version>2.3.0</version> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + </plugin> + </plugins> + </build> + +</project> diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplication.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplication.java new file mode 100644 index 0000000000..2b145d14cd --- /dev/null +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplication.java @@ -0,0 +1,44 @@ +package com.baeldung.spring.data.cosmosdb; + +import com.azure.data.cosmos.CosmosKeyCredential; +import com.baeldung.spring.data.cosmosdb.repository.ProductRepository; +import com.microsoft.azure.spring.data.cosmosdb.config.AbstractCosmosConfiguration; +import com.microsoft.azure.spring.data.cosmosdb.config.CosmosDBConfig; +import com.microsoft.azure.spring.data.cosmosdb.repository.config.EnableCosmosRepositories; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; + +@SpringBootApplication +@EnableCosmosRepositories(basePackageClasses = ProductRepository.class) +public class AzurecosmodbApplication extends AbstractCosmosConfiguration { + + public static void main(String[] args) { + SpringApplication.run(AzurecosmodbApplication.class, args); + } + + @Value("${azure.cosmosdb.uri}") + private String uri; + + @Value("${azure.cosmosdb.key}") + private String key; + + @Value("${azure.cosmosdb.secondaryKey}") + private String secondaryKey; + + @Value("${azure.cosmosdb.database}") + private String dbName; + + private CosmosKeyCredential cosmosKeyCredential; + + @Bean + public CosmosDBConfig getConfig() { + this.cosmosKeyCredential = new CosmosKeyCredential(key); + CosmosDBConfig cosmosdbConfig = CosmosDBConfig.builder(uri, this.cosmosKeyCredential, dbName) + .build(); + return cosmosdbConfig; + } + +} diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/controller/ProductController.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/controller/ProductController.java new file mode 100644 index 0000000000..c1e38c9601 --- /dev/null +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/controller/ProductController.java @@ -0,0 +1,54 @@ +package com.baeldung.spring.data.cosmosdb.controller; + +import com.baeldung.spring.data.cosmosdb.entity.Product; +import com.baeldung.spring.data.cosmosdb.service.ProductService; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Optional; + +@RestController +@RequestMapping("/products") +public class ProductController { + + @Autowired + private ProductService productService; + + @PostMapping + @ResponseStatus(HttpStatus.CREATED) + public void create(@RequestBody Product product) { + productService.saveProduct(product); + } + + @GetMapping(value = "/{id}/category/{category}") + public Optional<Product> get(@PathVariable String id, @PathVariable String category) { + return productService.findById(id, category); + } + + @DeleteMapping(value = "/{id}/category/{category}") + public void delete(@PathVariable String id, @PathVariable String category) { + productService.delete(id, category); + } + + @GetMapping + public List<Product> getByName(@RequestParam String name) { + return productService.findProductByName(name); + } + + @GetMapping(value = "/category/{category}") + public List<Product> getByCategory(@PathVariable String category) { + return productService.getProductsOfCategory(category); + } + +} diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/entity/Product.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/entity/Product.java new file mode 100644 index 0000000000..07bb8889f5 --- /dev/null +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/entity/Product.java @@ -0,0 +1,58 @@ +package com.baeldung.spring.data.cosmosdb.entity; + +import com.microsoft.azure.spring.data.cosmosdb.core.mapping.Document; +import com.microsoft.azure.spring.data.cosmosdb.core.mapping.PartitionKey; + +import org.springframework.data.annotation.Id; + +@Document(collection = "products") +public class Product { + + @Id + private String productid; + + private String productName; + + private double price; + + @PartitionKey + private String productCategory; + + public String getProductid() { + return productid; + } + + public void setProductid(String productid) { + this.productid = productid; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductCategory() { + return productCategory; + } + + public void setProductCategory(String productCategory) { + this.productCategory = productCategory; + } + + public double getPrice() { + return price; + } + + public void setPrice(double price) { + this.price = price; + } + + @Override + public String toString() { + return "Product [productid=" + productid + ", productName=" + productName + ", price=" + price + ", productCategory=" + productCategory + "]"; + } + +} diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/repository/ProductRepository.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/repository/ProductRepository.java new file mode 100644 index 0000000000..29dc85a2cf --- /dev/null +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/repository/ProductRepository.java @@ -0,0 +1,15 @@ +package com.baeldung.spring.data.cosmosdb.repository; + +import com.baeldung.spring.data.cosmosdb.entity.Product; +import com.microsoft.azure.spring.data.cosmosdb.repository.CosmosRepository; + +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface ProductRepository extends CosmosRepository<Product, String> { + List<Product> findByProductName(String productName); + + List<Product> findByProductCategory(String category); +} diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/service/ProductService.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/service/ProductService.java new file mode 100644 index 0000000000..6846d5205c --- /dev/null +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/service/ProductService.java @@ -0,0 +1,39 @@ +package com.baeldung.spring.data.cosmosdb.service; + +import com.azure.data.cosmos.PartitionKey; +import com.baeldung.spring.data.cosmosdb.entity.Product; +import com.baeldung.spring.data.cosmosdb.repository.ProductRepository; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Optional; + +@Component +public class ProductService { + + @Autowired + private ProductRepository repository; + + public List<Product> findProductByName(String productName) { + return repository.findByProductName(productName); + } + + public Optional<Product> findById(String productId, String category) { + return repository.findById(productId, new PartitionKey(category)); + } + + public List<Product> getProductsOfCategory(String category) { + List<Product> products = repository.findByProductCategory(category); + return products; + } + + public void saveProduct(Product product) { + repository.save(product); + } + + public void delete(String productId, String category) { + repository.deleteById(productId, new PartitionKey(category)); + } +} diff --git a/persistence-modules/spring-data-cosmosdb/src/main/resources/application.properties b/persistence-modules/spring-data-cosmosdb/src/main/resources/application.properties new file mode 100644 index 0000000000..ba99ea2e6e --- /dev/null +++ b/persistence-modules/spring-data-cosmosdb/src/main/resources/application.properties @@ -0,0 +1,4 @@ +azure.cosmosdb.uri=cosmodb-uri +azure.cosmosdb.key=cosmodb-primary-key +azure.cosmosdb.secondaryKey=cosmodb-second-key +azure.cosmosdb.database=cosmodb-name \ No newline at end of file diff --git a/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationIntegrationTest.java b/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationIntegrationTest.java new file mode 100644 index 0000000000..0ef6af15e1 --- /dev/null +++ b/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationIntegrationTest.java @@ -0,0 +1,40 @@ +package com.baeldung.spring.data.cosmosdb; + +import com.azure.data.cosmos.PartitionKey; +import com.baeldung.spring.data.cosmosdb.entity.Product; +import com.baeldung.spring.data.cosmosdb.repository.ProductRepository; + +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.util.Assert; + +import java.util.Optional; + +//Uncomment this when configured URI and keys for Azure Cosmos DB in application.properties +//to run the integration test +//@SpringBootTest +public class AzurecosmodbApplicationIntegrationTest { + + @Autowired + ProductRepository productRepository; + + // Uncomment this when configured URI and keys for Azure Cosmos DB in application.properties + // to run the integration test + // @Test + public void givenProductIsCreated_whenCallFindById_thenProductIsFound() { + Product product = new Product(); + product.setProductid("1001"); + product.setProductCategory("Shirt"); + product.setPrice(110.0); + product.setProductName("Blue Shirt"); + + // Uncomment these lines when configured URI and keys for Azure Cosmos DB in application.properties + // to run the integration test + // productRepository.save(product); + // Optional<Product> retrievedProduct = productRepository.findById("1001", new PartitionKey("Shirt")); + // Assert.notNull(retrievedProduct, "Retrieved Product is Null"); + + } + +} From b5eef05476b6c946c9f4c97fe9b8eef9dfb5f28b Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankur.gupta@jda.com> Date: Sun, 26 Jul 2020 16:59:27 +0530 Subject: [PATCH 029/156] cleaning up unnecessary changes --- spring-caching/src/main/resources/schema.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-caching/src/main/resources/schema.sql b/spring-caching/src/main/resources/schema.sql index 7d5cb36d66..35d02bb916 100644 --- a/spring-caching/src/main/resources/schema.sql +++ b/spring-caching/src/main/resources/schema.sql @@ -1,6 +1,7 @@ DROP TABLE ORDERDETAIL IF EXISTS; DROP TABLE ITEM IF EXISTS; DROP TABLE CUSTOMER IF EXISTS; + CREATE TABLE CUSTOMER( CUSTOMERID INT PRIMARY KEY, CUSTOMERNAME VARCHAR(250) NOT NULL From 2dbb667128e3f370bc68b5d1dd4269d8cc6861ef Mon Sep 17 00:00:00 2001 From: Loredana <lore.crusoveanu@gmail.com> Date: Mon, 27 Jul 2020 12:01:55 +0300 Subject: [PATCH 030/156] article was moved to mockito-2; remove duplicate methods from mockito module --- testing-modules/mockito-2/README.md | 3 +- testing-modules/mockito/README.md | 1 - .../mockito/MockitoAnnotationUnitTest.java | 46 ------------------- 3 files changed, 2 insertions(+), 48 deletions(-) diff --git a/testing-modules/mockito-2/README.md b/testing-modules/mockito-2/README.md index 1a013f5de3..bb7235c2cc 100644 --- a/testing-modules/mockito-2/README.md +++ b/testing-modules/mockito-2/README.md @@ -5,4 +5,5 @@ - [Mockito Strict Stubbing and The UnnecessaryStubbingException](https://www.baeldung.com/mockito-unnecessary-stubbing-exception) - [Mockito and Fluent APIs](https://www.baeldung.com/mockito-fluent-apis) - [Mocking the ObjectMapper readValue() Method](https://www.baeldung.com/mockito-mock-jackson-read-value) -- [Introduction to Mockito’s AdditionalAnswers](https://www.baeldung.com/mockito-additionalanswers) \ No newline at end of file +- [Introduction to Mockito’s AdditionalAnswers](https://www.baeldung.com/mockito-additionalanswers) +- [Mockito – Using Spies](https://www.baeldung.com/mockito-spy) diff --git a/testing-modules/mockito/README.md b/testing-modules/mockito/README.md index 5f307c2f0b..38fb8225a6 100644 --- a/testing-modules/mockito/README.md +++ b/testing-modules/mockito/README.md @@ -12,5 +12,4 @@ - [Mocking Void Methods with Mockito](https://www.baeldung.com/mockito-void-methods) - [Mock Final Classes and Methods with Mockito](https://www.baeldung.com/mockito-final) - [Testing Callbacks with Mockito](https://www.baeldung.com/mockito-callbacks) -- [Mockito – Using Spies](https://www.baeldung.com/mockito-spy) - [Quick Guide to BDDMockito](https://www.baeldung.com/bdd-mockito) diff --git a/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoAnnotationUnitTest.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoAnnotationUnitTest.java index 27e3258efb..1d3d6b1428 100644 --- a/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoAnnotationUnitTest.java +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoAnnotationUnitTest.java @@ -76,52 +76,6 @@ public class MockitoAnnotationUnitTest { assertEquals(100, spiedList.size()); } - @Test - public void whenSpyingOnList_thenCorrect() { - List<String> list = new ArrayList<String>(); - List<String> spyList = Mockito.spy(list); - - spyList.add("one"); - spyList.add("two"); - - Mockito.verify(spyList).add("one"); - Mockito.verify(spyList).add("two"); - - assertEquals(2, spyList.size()); - } - - @Test - public void whenUsingTheSpyAnnotation_thenObjectIsSpied() { - spiedList.add("one"); - spiedList.add("two"); - - Mockito.verify(spiedList).add("one"); - Mockito.verify(spiedList).add("two"); - - assertEquals(2, spiedList.size()); - } - - @Test - public void whenStubASpy_thenStubbed() { - List<String> list = new ArrayList<String>(); - List<String> spyList = Mockito.spy(list); - - assertEquals(0, spyList.size()); - - Mockito.doReturn(100).when(spyList).size(); - assertEquals(100, spyList.size()); - } - - @Test - public void whenCreateSpy_thenCreate() { - List<String> spyList = Mockito.spy(new ArrayList<>()); - - spyList.add("one"); - Mockito.verify(spyList).add("one"); - - assertEquals(1, spyList.size()); - } - @Test public void whenNotUseCaptorAnnotation_thenCorrect() { final List<String> mockList = Mockito.mock(List.class); From 29112018323dc0d52ab616490979bd8fdde9641f Mon Sep 17 00:00:00 2001 From: Philippe <phil@lighthouse.com.br> Date: Tue, 28 Jul 2020 10:26:00 -0300 Subject: [PATCH 031/156] [BAEL-4381] Intro to ArchUnit --- .../article-resources/archunit/figure1.drawio | 1 + .../article-resources/archunit/figure1.png | Bin 0 -> 15103 bytes libraries-testing/pom.xml | 14 ++- .../smurfs/persistence/SmurfsRepository.java | 49 ++++++++++ .../smurfs/persistence/domain/Smurf.java | 64 ++++++++++++ .../smurfs/presentation/SmurfsController.java | 27 +++++ .../smurfs/service/SmurfsService.java | 41 ++++++++ .../archunit/smurfs/service/dto/SmurfDTO.java | 64 ++++++++++++ .../archunit/smurfs/SmurfsArchUnitTest.java | 92 ++++++++++++++++++ 9 files changed, 349 insertions(+), 3 deletions(-) create mode 100644 libraries-testing/article-resources/archunit/figure1.drawio create mode 100644 libraries-testing/article-resources/archunit/figure1.png create mode 100644 libraries-testing/src/main/java/com/baldung/archunit/smurfs/persistence/SmurfsRepository.java create mode 100644 libraries-testing/src/main/java/com/baldung/archunit/smurfs/persistence/domain/Smurf.java create mode 100644 libraries-testing/src/main/java/com/baldung/archunit/smurfs/presentation/SmurfsController.java create mode 100644 libraries-testing/src/main/java/com/baldung/archunit/smurfs/service/SmurfsService.java create mode 100644 libraries-testing/src/main/java/com/baldung/archunit/smurfs/service/dto/SmurfDTO.java create mode 100644 libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java diff --git a/libraries-testing/article-resources/archunit/figure1.drawio b/libraries-testing/article-resources/archunit/figure1.drawio new file mode 100644 index 0000000000..859d9946a1 --- /dev/null +++ b/libraries-testing/article-resources/archunit/figure1.drawio @@ -0,0 +1 @@ +<mxfile host="Electron" modified="2020-07-26T17:57:12.410Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.5.1 Chrome/83.0.4103.122 Electron/9.1.1 Safari/537.36" etag="taZU8w0iOhZ7shLjO8K-" version="13.5.1" type="device"><diagram name="Page-1" id="b5b7bab2-c9e2-2cf4-8b2a-24fd1a2a6d21">7VjbctowEP0aP9LBNgb3sSa3BzJNJ+2kk5eMsBdbrax1ZUEgX1/Jlm84YWgbKL3wwFhHa3l99pyVwHKn6fpSkCy5xgiY5QyjteWeWY7jj331rYFNCXjOsARiQaMSshvglj6BAauwJY0g7wRKRCZp1gVD5BxC2cGIEPjYDVsg6z41IzH0gNuQsD56RyOZGNQev20mroDGiXm070zKiTkJv8YCl9w8jyOHciYl1TLmHfOERPjYgtxzy50KRFlepespMM1qxVh538ULs3XKArjc54YrsrkffLj+Bp8ePr+/GTw409XdwKyyImxpqEg3JMsYDYmkyE3mclMRpV4i05eaYRCWGyyQy1szb6txnpGQ8vgjZhoYKkSSecXpyIxrKu1RCdxgTovnuWcMFmomSGTKzJIrEFLlw94xGusIqdcOiBmZeJ3HBUkp0wqcLUMaEZX5FHmOOreAkTmwoK7WFBmK4pXcRfHRS1DGWvhF8VF4n+iKNZUYrFuQIf4SMAUpNiqkmvWMCIw/7EoUj43aJr7BkpbQRq4BiVF4XK/dlFpdmGr/QOUnvcpbzpikmlomi7dujyLIgEd5DcadEDPa0gpEymNmiEImGCMn7LxBg6IUoLPUwmhiZljKR4FfQMqNaRhkKbErjYjkSXG//ToSeLHUOS5FCDvodE3XIiIGuSPOK+M0NzuFI4ApB666/enVReD2RJCDWNEQTsL4bUMWjbXn+udbwyGFsL/nPX/L837f8874Gc/bB/P8+N/26GhPj7on5VH/KI16ponvFq7yWqiILiy/7baURlGpEcjpE5kX62mVZEi5LHjwAss7O1Tdd2m859P68Gjy7JzCnvPvYPhG7dOmX+9darPcjWagtf9POq1gYHvdFXCxyJUkt6VSJ/Xz6hn11JOpaikKT+d892e3eXuyR5v3jtrmvX7NQeQ0l8BPZGc/Vn0PeKTf3t5Hw9++vVe/pk/Z7P+d/UsV7v9eP6UD+19o64Oe2tWw+f+n3PGbv9fc8+8=</diagram></mxfile> \ No newline at end of file diff --git a/libraries-testing/article-resources/archunit/figure1.png b/libraries-testing/article-resources/archunit/figure1.png new file mode 100644 index 0000000000000000000000000000000000000000..8bd8e9647b07a46e7d8e363ba750fa838c07debb GIT binary patch literal 15103 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 JmKeML@n88<TTB1| literal 0 HcmV?d00001 diff --git a/libraries-testing/pom.xml b/libraries-testing/pom.xml index 5a5cb99238..8052680ea5 100644 --- a/libraries-testing/pom.xml +++ b/libraries-testing/pom.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <artifactId>libraries-testing</artifactId> <name>libraries-testing</name> @@ -158,6 +158,13 @@ <scope>test</scope> </dependency> + <dependency> + <groupId>com.tngtech.archunit</groupId> + <artifactId>archunit-junit5</artifactId> + <version>${archunit.version}</version> + <scope>test</scope> + </dependency> + </dependencies> <build> @@ -193,7 +200,7 @@ <properties> <asciidoctor.version>1.5.7.1</asciidoctor.version> - <serenity.version>1.9.9</serenity.version> + <serenity.version>1.9.9</serenity.version> <serenity.jbehave.version>1.9.0</serenity.jbehave.version> <serenity.jira.version>1.9.0</serenity.jira.version> <serenity.plugin.version>1.9.27</serenity.plugin.version> @@ -210,6 +217,7 @@ <maven-compiler-plugin.target>1.8</maven-compiler-plugin.target> <maven-compiler-plugin.source>1.8</maven-compiler-plugin.source> <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version> + <archunit.version>0.14.1</archunit.version> </properties> </project> diff --git a/libraries-testing/src/main/java/com/baldung/archunit/smurfs/persistence/SmurfsRepository.java b/libraries-testing/src/main/java/com/baldung/archunit/smurfs/persistence/SmurfsRepository.java new file mode 100644 index 0000000000..8107e6317a --- /dev/null +++ b/libraries-testing/src/main/java/com/baldung/archunit/smurfs/persistence/SmurfsRepository.java @@ -0,0 +1,49 @@ +/** + * + */ +package com.baldung.archunit.smurfs.persistence; + +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.TreeMap; + +import com.baldung.archunit.smurfs.persistence.domain.Smurf; + +import static java.util.stream.Collectors.toList; + +/** + * @author Philippe + * + */ +public class SmurfsRepository { + + private static Map<String,Smurf> smurfs = Collections.synchronizedMap(new TreeMap<>()); + + static { + // Just a few here. A full list can be found + // at https://smurfs.fandom.com/wiki/List_of_Smurf_characters + smurfs.put("Papa", new Smurf("Papa", true, true)); + smurfs.put("Actor", new Smurf("Actor", true, true)); + smurfs.put("Alchemist", new Smurf("Alchemist", true, true)); + smurfs.put("Archeologist", new Smurf("Archeologist", true, true)); + smurfs.put("Architect", new Smurf("Architect", true, true)); + smurfs.put("Baby", new Smurf("Baby", true, true)); + smurfs.put("Baker", new Smurf("Baker", true, true)); + smurfs.put("Baker", new Smurf("Baker", true, true)); + } + + public SmurfsRepository() { + + } + + public List<Smurf> findAll() { + return Collections.unmodifiableList(smurfs.values().stream().collect(toList())); + } + + public Optional<Smurf> findByName(String name) { + return Optional.of(smurfs.get(name)); + } + +} diff --git a/libraries-testing/src/main/java/com/baldung/archunit/smurfs/persistence/domain/Smurf.java b/libraries-testing/src/main/java/com/baldung/archunit/smurfs/persistence/domain/Smurf.java new file mode 100644 index 0000000000..468266cf9a --- /dev/null +++ b/libraries-testing/src/main/java/com/baldung/archunit/smurfs/persistence/domain/Smurf.java @@ -0,0 +1,64 @@ +/** + * + */ +package com.baldung.archunit.smurfs.persistence.domain; + +/** + * @author Philippe + * + */ +public class Smurf { + private String name; + private boolean comic; + private boolean cartoon; + + public Smurf() {} + + public Smurf(String name, boolean comic, boolean cartoon) { + this.name = name; + this.comic = comic; + this.cartoon = cartoon; + } + + /** + * @return the name + */ + public String getName() { + return name; + } + + /** + * @param name the name to set + */ + public void setName(String name) { + this.name = name; + } + + /** + * @return the commic + */ + public boolean isComic() { + return comic; + } + + /** + * @param commic the commic to set + */ + public void setCommic(boolean comic) { + this.comic = comic; + } + + /** + * @return the cartoon + */ + public boolean isCartoon() { + return cartoon; + } + + /** + * @param cartoon the cartoon to set + */ + public void setCartoon(boolean cartoon) { + this.cartoon = cartoon; + } +} diff --git a/libraries-testing/src/main/java/com/baldung/archunit/smurfs/presentation/SmurfsController.java b/libraries-testing/src/main/java/com/baldung/archunit/smurfs/presentation/SmurfsController.java new file mode 100644 index 0000000000..c0aff4ec03 --- /dev/null +++ b/libraries-testing/src/main/java/com/baldung/archunit/smurfs/presentation/SmurfsController.java @@ -0,0 +1,27 @@ +package com.baldung.archunit.smurfs.presentation; + +import java.util.List; + +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.baldung.archunit.smurfs.service.SmurfsService; +import com.baldung.archunit.smurfs.service.dto.SmurfDTO; + +@RequestMapping(value = "/smurfs", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) +@RestController +public class SmurfsController { + + private SmurfsService smurfs; + + public SmurfsController(SmurfsService smurfs) { + this.smurfs = smurfs; + } + + @GetMapping + public List<SmurfDTO> getSmurfs() { + return smurfs.findAll(); + } +} diff --git a/libraries-testing/src/main/java/com/baldung/archunit/smurfs/service/SmurfsService.java b/libraries-testing/src/main/java/com/baldung/archunit/smurfs/service/SmurfsService.java new file mode 100644 index 0000000000..40ffcc955c --- /dev/null +++ b/libraries-testing/src/main/java/com/baldung/archunit/smurfs/service/SmurfsService.java @@ -0,0 +1,41 @@ +/** + * + */ +package com.baldung.archunit.smurfs.service; + +import java.util.List; +import java.util.stream.Collectors; + +import org.springframework.stereotype.Component; + +import com.baldung.archunit.smurfs.persistence.SmurfsRepository; +import com.baldung.archunit.smurfs.persistence.domain.Smurf; +import com.baldung.archunit.smurfs.service.dto.SmurfDTO; + +/** + * @author Philippe + * + */ +@Component +public class SmurfsService { + + private SmurfsRepository repository; + + public SmurfsService(SmurfsRepository repository) { + this.repository = repository; + } + + public List<SmurfDTO> findAll() { + + return repository.findAll() + .stream() + .map(SmurfsService::toDTO) + .collect(Collectors.toList()); + } + + + public static SmurfDTO toDTO(Smurf smurf) { + return new SmurfDTO(smurf.getName(),smurf.isComic(), smurf.isCartoon()); + } + +} diff --git a/libraries-testing/src/main/java/com/baldung/archunit/smurfs/service/dto/SmurfDTO.java b/libraries-testing/src/main/java/com/baldung/archunit/smurfs/service/dto/SmurfDTO.java new file mode 100644 index 0000000000..3c49262f9d --- /dev/null +++ b/libraries-testing/src/main/java/com/baldung/archunit/smurfs/service/dto/SmurfDTO.java @@ -0,0 +1,64 @@ +/** + * + */ +package com.baldung.archunit.smurfs.service.dto; + +import com.baldung.archunit.smurfs.persistence.domain.Smurf; + +/** + * @author Philippe + * + */ +public class SmurfDTO { + private String name; + private boolean comic; + private boolean cartoon; + + public SmurfDTO() {} + + public SmurfDTO(String name, boolean comic, boolean cartoon) { + this.name = name; + this.comic = comic; + this.cartoon = cartoon; + } + + + /** + * @return the name + */ + public String getName() { + return name; + } + /** + * @param name the name to set + */ + public void setName(String name) { + this.name = name; + } + /** + * @return the commic + */ + public boolean isComic() { + return comic; + } + /** + * @param commic the commic to set + */ + public void setCommic(boolean comic) { + this.comic = comic; + } + /** + * @return the cartoon + */ + public boolean isCartoon() { + return cartoon; + } + /** + * @param cartoon the cartoon to set + */ + public void setCartoon(boolean cartoon) { + this.cartoon = cartoon; + } + + +} diff --git a/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java b/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java new file mode 100644 index 0000000000..b0c4397794 --- /dev/null +++ b/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java @@ -0,0 +1,92 @@ +/** + * + */ +package com.baeldung.archunit.smurfs; + + +import com.tngtech.archunit.core.domain.JavaClasses; +import com.tngtech.archunit.core.importer.ClassFileImporter; +import com.tngtech.archunit.lang.ArchRule; +import com.tngtech.archunit.library.Architectures.LayeredArchitecture; + +import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; +import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.noClasses; +import static com.tngtech.archunit.library.Architectures.layeredArchitecture; + +import static org.junit.jupiter.api.Assertions.assertThrows; + +import org.junit.jupiter.api.Test; + +/** + * @author Philippe + * + */ +public class SmurfsArchUnitTest { + + @Test + public void givenPresentationLayerClasses_thenWrongCheckFails() { + JavaClasses jc = new ClassFileImporter().importPackages("com.baldung.archunit.smurfs"); + + ArchRule r1 = classes() + .that() + .resideInAPackage("..presentation..") + .should() + .onlyDependOnClassesThat() + .resideInAPackage("..service.."); + + assertThrows(AssertionError.class, ()-> r1.check(jc)) ; + } + + + @Test + public void givenPresentationLayerClasses_thenCheckWithFrameworkDependenciesSuccess() { + JavaClasses jc = new ClassFileImporter().importPackages("com.baldung.archunit.smurfs"); + + ArchRule r1 = classes() + .that() + .resideInAPackage("..presentation..") + .should() + .onlyDependOnClassesThat() + .resideInAnyPackage("..service..", "java..", "javax..", "org.springframework.."); + + r1.check(jc); + } + + @Test + public void givenPresentationLayerClasses_thenNoPersistenceLayerAccess() { + JavaClasses jc = new ClassFileImporter().importPackages("com.baldung.archunit.smurfs"); + + ArchRule r1 = noClasses() + .that() + .resideInAPackage("..presentation..") + .should() + .dependOnClassesThat() + .resideInAPackage("..persistence.."); + + + r1.check(jc); + } + + @Test + public void givenApplicationClasses_thenNoLayerViolationsShouldExist() { + + JavaClasses jc = new ClassFileImporter().importPackages("com.baldung.archunit.smurfs"); + + LayeredArchitecture arch = layeredArchitecture() + // Define layers + .layer("Presentation").definedBy("..presentation..") + .layer("Service").definedBy("..service..") + .layer("Persistence").definedBy("..persistence..") + // Add constraints + .whereLayer("Presentation").mayNotBeAccessedByAnyLayer() + .whereLayer("Service").mayOnlyBeAccessedByLayers("Presentation") + .whereLayer("Persistence").mayOnlyBeAccessedByLayers("Service"); + + + arch.check(jc); + + } + + + +} From 4dcdc5964600b721eddc4947ec0190197a9ae50b Mon Sep 17 00:00:00 2001 From: Philippe <phil@lighthouse.com.br> Date: Tue, 28 Jul 2020 10:30:33 -0300 Subject: [PATCH 032/156] [BAEL-4381] Intro to ArchUnit Code formatting --- .../java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java b/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java index b0c4397794..a89716fe9c 100644 --- a/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java +++ b/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java @@ -62,7 +62,6 @@ public class SmurfsArchUnitTest { .should() .dependOnClassesThat() .resideInAPackage("..persistence.."); - r1.check(jc); } @@ -81,10 +80,8 @@ public class SmurfsArchUnitTest { .whereLayer("Presentation").mayNotBeAccessedByAnyLayer() .whereLayer("Service").mayOnlyBeAccessedByLayers("Presentation") .whereLayer("Persistence").mayOnlyBeAccessedByLayers("Service"); - arch.check(jc); - } From 2355ccfb5e8bb4f7a886b7a8c12fe7b9fa37177a Mon Sep 17 00:00:00 2001 From: Philippe <phil@lighthouse.com.br> Date: Tue, 28 Jul 2020 10:31:18 -0300 Subject: [PATCH 033/156] [BAEL-4381] Intro to ArchUnit Code formatting --- .../java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java b/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java index a89716fe9c..fa4428e599 100644 --- a/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java +++ b/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java @@ -83,7 +83,4 @@ public class SmurfsArchUnitTest { arch.check(jc); } - - - } From 751c60fb71266be15120d45871f7b00efac8e53f Mon Sep 17 00:00:00 2001 From: Philippe <phil@lighthouse.com.br> Date: Tue, 28 Jul 2020 10:44:32 -0300 Subject: [PATCH 034/156] [BAEL-4381] Intro to ArchUnit Package typo --- .../archunit/smurfs/persistence/SmurfsRepository.java | 4 ++-- .../archunit/smurfs/persistence/domain/Smurf.java | 2 +- .../archunit/smurfs/presentation/SmurfsController.java | 6 +++--- .../archunit/smurfs/service/SmurfsService.java | 8 ++++---- .../archunit/smurfs/service/dto/SmurfDTO.java | 4 ++-- .../com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java | 8 ++++---- 6 files changed, 16 insertions(+), 16 deletions(-) rename libraries-testing/src/main/java/com/{baldung => baeldung}/archunit/smurfs/persistence/SmurfsRepository.java (92%) rename libraries-testing/src/main/java/com/{baldung => baeldung}/archunit/smurfs/persistence/domain/Smurf.java (94%) rename libraries-testing/src/main/java/com/{baldung => baeldung}/archunit/smurfs/presentation/SmurfsController.java (78%) rename libraries-testing/src/main/java/com/{baldung => baeldung}/archunit/smurfs/service/SmurfsService.java (74%) rename libraries-testing/src/main/java/com/{baldung => baeldung}/archunit/smurfs/service/dto/SmurfDTO.java (90%) diff --git a/libraries-testing/src/main/java/com/baldung/archunit/smurfs/persistence/SmurfsRepository.java b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/SmurfsRepository.java similarity index 92% rename from libraries-testing/src/main/java/com/baldung/archunit/smurfs/persistence/SmurfsRepository.java rename to libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/SmurfsRepository.java index 8107e6317a..1dee45087a 100644 --- a/libraries-testing/src/main/java/com/baldung/archunit/smurfs/persistence/SmurfsRepository.java +++ b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/SmurfsRepository.java @@ -1,7 +1,7 @@ /** * */ -package com.baldung.archunit.smurfs.persistence; +package com.baeldung.archunit.smurfs.persistence; import java.util.Collections; import java.util.List; @@ -9,7 +9,7 @@ import java.util.Map; import java.util.Optional; import java.util.TreeMap; -import com.baldung.archunit.smurfs.persistence.domain.Smurf; +import com.baeldung.archunit.smurfs.persistence.domain.Smurf; import static java.util.stream.Collectors.toList; diff --git a/libraries-testing/src/main/java/com/baldung/archunit/smurfs/persistence/domain/Smurf.java b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/domain/Smurf.java similarity index 94% rename from libraries-testing/src/main/java/com/baldung/archunit/smurfs/persistence/domain/Smurf.java rename to libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/domain/Smurf.java index 468266cf9a..6e0f586a5b 100644 --- a/libraries-testing/src/main/java/com/baldung/archunit/smurfs/persistence/domain/Smurf.java +++ b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/domain/Smurf.java @@ -1,7 +1,7 @@ /** * */ -package com.baldung.archunit.smurfs.persistence.domain; +package com.baeldung.archunit.smurfs.persistence.domain; /** * @author Philippe diff --git a/libraries-testing/src/main/java/com/baldung/archunit/smurfs/presentation/SmurfsController.java b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/presentation/SmurfsController.java similarity index 78% rename from libraries-testing/src/main/java/com/baldung/archunit/smurfs/presentation/SmurfsController.java rename to libraries-testing/src/main/java/com/baeldung/archunit/smurfs/presentation/SmurfsController.java index c0aff4ec03..7e31980d89 100644 --- a/libraries-testing/src/main/java/com/baldung/archunit/smurfs/presentation/SmurfsController.java +++ b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/presentation/SmurfsController.java @@ -1,4 +1,4 @@ -package com.baldung.archunit.smurfs.presentation; +package com.baeldung.archunit.smurfs.presentation; import java.util.List; @@ -7,8 +7,8 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.baldung.archunit.smurfs.service.SmurfsService; -import com.baldung.archunit.smurfs.service.dto.SmurfDTO; +import com.baeldung.archunit.smurfs.service.SmurfsService; +import com.baeldung.archunit.smurfs.service.dto.SmurfDTO; @RequestMapping(value = "/smurfs", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @RestController diff --git a/libraries-testing/src/main/java/com/baldung/archunit/smurfs/service/SmurfsService.java b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/service/SmurfsService.java similarity index 74% rename from libraries-testing/src/main/java/com/baldung/archunit/smurfs/service/SmurfsService.java rename to libraries-testing/src/main/java/com/baeldung/archunit/smurfs/service/SmurfsService.java index 40ffcc955c..e2c73ef77e 100644 --- a/libraries-testing/src/main/java/com/baldung/archunit/smurfs/service/SmurfsService.java +++ b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/service/SmurfsService.java @@ -1,16 +1,16 @@ /** * */ -package com.baldung.archunit.smurfs.service; +package com.baeldung.archunit.smurfs.service; import java.util.List; import java.util.stream.Collectors; import org.springframework.stereotype.Component; -import com.baldung.archunit.smurfs.persistence.SmurfsRepository; -import com.baldung.archunit.smurfs.persistence.domain.Smurf; -import com.baldung.archunit.smurfs.service.dto.SmurfDTO; +import com.baeldung.archunit.smurfs.persistence.SmurfsRepository; +import com.baeldung.archunit.smurfs.persistence.domain.Smurf; +import com.baeldung.archunit.smurfs.service.dto.SmurfDTO; /** * @author Philippe diff --git a/libraries-testing/src/main/java/com/baldung/archunit/smurfs/service/dto/SmurfDTO.java b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/service/dto/SmurfDTO.java similarity index 90% rename from libraries-testing/src/main/java/com/baldung/archunit/smurfs/service/dto/SmurfDTO.java rename to libraries-testing/src/main/java/com/baeldung/archunit/smurfs/service/dto/SmurfDTO.java index 3c49262f9d..948d0b349a 100644 --- a/libraries-testing/src/main/java/com/baldung/archunit/smurfs/service/dto/SmurfDTO.java +++ b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/service/dto/SmurfDTO.java @@ -1,9 +1,9 @@ /** * */ -package com.baldung.archunit.smurfs.service.dto; +package com.baeldung.archunit.smurfs.service.dto; -import com.baldung.archunit.smurfs.persistence.domain.Smurf; +import com.baeldung.archunit.smurfs.persistence.domain.Smurf; /** * @author Philippe diff --git a/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java b/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java index fa4428e599..0231a2c51a 100644 --- a/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java +++ b/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java @@ -25,7 +25,7 @@ public class SmurfsArchUnitTest { @Test public void givenPresentationLayerClasses_thenWrongCheckFails() { - JavaClasses jc = new ClassFileImporter().importPackages("com.baldung.archunit.smurfs"); + JavaClasses jc = new ClassFileImporter().importPackages("com.baeldung.archunit.smurfs"); ArchRule r1 = classes() .that() @@ -40,7 +40,7 @@ public class SmurfsArchUnitTest { @Test public void givenPresentationLayerClasses_thenCheckWithFrameworkDependenciesSuccess() { - JavaClasses jc = new ClassFileImporter().importPackages("com.baldung.archunit.smurfs"); + JavaClasses jc = new ClassFileImporter().importPackages("com.baeldung.archunit.smurfs"); ArchRule r1 = classes() .that() @@ -54,7 +54,7 @@ public class SmurfsArchUnitTest { @Test public void givenPresentationLayerClasses_thenNoPersistenceLayerAccess() { - JavaClasses jc = new ClassFileImporter().importPackages("com.baldung.archunit.smurfs"); + JavaClasses jc = new ClassFileImporter().importPackages("com.baeldung.archunit.smurfs"); ArchRule r1 = noClasses() .that() @@ -69,7 +69,7 @@ public class SmurfsArchUnitTest { @Test public void givenApplicationClasses_thenNoLayerViolationsShouldExist() { - JavaClasses jc = new ClassFileImporter().importPackages("com.baldung.archunit.smurfs"); + JavaClasses jc = new ClassFileImporter().importPackages("com.baeldung.archunit.smurfs"); LayeredArchitecture arch = layeredArchitecture() // Define layers From eadd24ad5de2567d7dca6365715340b8c5258b05 Mon Sep 17 00:00:00 2001 From: andrebrowne <42154231+andrebrowne@users.noreply.github.com> Date: Tue, 28 Jul 2020 18:03:57 -0400 Subject: [PATCH 035/156] Simplify hashcode example --- .../java/com/baeldung/jpa/equality/EqualByBusinessKey.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByBusinessKey.java b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByBusinessKey.java index 3e34f97d77..78ba1ad1e9 100644 --- a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByBusinessKey.java +++ b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByBusinessKey.java @@ -32,10 +32,7 @@ public class EqualByBusinessKey { @Override public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((email == null) ? 0 : email.hashCode()); - return result; + return java.util.Objects.hashCode(email); } @Override From da07a30a00cf92b2b251714f56684dd4a94d57fa Mon Sep 17 00:00:00 2001 From: andrebrowne <42154231+andrebrowne@users.noreply.github.com> Date: Tue, 28 Jul 2020 18:40:29 -0400 Subject: [PATCH 036/156] Remove metamodel plugin --- persistence-modules/java-jpa-3/pom.xml | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/persistence-modules/java-jpa-3/pom.xml b/persistence-modules/java-jpa-3/pom.xml index 562f337215..57791f474e 100644 --- a/persistence-modules/java-jpa-3/pom.xml +++ b/persistence-modules/java-jpa-3/pom.xml @@ -66,26 +66,6 @@ <compilerArgument>-proc:none</compilerArgument> </configuration> </plugin> - <plugin> - <groupId>org.bsc.maven</groupId> - <artifactId>maven-processor-plugin</artifactId> - <version>${maven-processor-plugin.version}</version> - <executions> - <execution> - <id>process</id> - <goals> - <goal>process</goal> - </goals> - <phase>generate-sources</phase> - <configuration> - <outputDirectory>target/metamodel</outputDirectory> - <processors> - <processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor> - </processors> - </configuration> - </execution> - </executions> - </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> From 23f1333aaaca15c8bc662ef873c5b5f494284b9f Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankur.gupta@jda.com> Date: Thu, 30 Jul 2020 01:43:57 +0530 Subject: [PATCH 037/156] Implementing Code Review comments --- .../spring-data-cosmosdb/pom.xml | 84 ++++++++++--------- .../controller/ProductController.java | 10 ++- .../spring/data/cosmosdb/entity/Product.java | 42 ++-------- .../data/cosmosdb/service/ProductService.java | 3 +- ...=> AzurecosmodbApplicationManualTest.java} | 12 ++- 5 files changed, 62 insertions(+), 89 deletions(-) rename persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/{AzurecosmodbApplicationIntegrationTest.java => AzurecosmodbApplicationManualTest.java} (70%) diff --git a/persistence-modules/spring-data-cosmosdb/pom.xml b/persistence-modules/spring-data-cosmosdb/pom.xml index 8bb103879d..7de135cdb6 100644 --- a/persistence-modules/spring-data-cosmosdb/pom.xml +++ b/persistence-modules/spring-data-cosmosdb/pom.xml @@ -1,48 +1,52 @@ <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <artifactId>spring-data-cosmosdb</artifactId> - <name>spring-data-cosmos-db</name> - <description>tutorial for spring-data-cosmosdb</description> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <artifactId>spring-data-cosmosdb</artifactId> + <name>spring-data-cosmos-db</name> + <description>tutorial for spring-data-cosmosdb</description> - <parent> - <groupId>com.baeldung</groupId> - <artifactId>parent-boot-2</artifactId> - <version>0.0.1-SNAPSHOT</version> - <relativePath>../../parent-boot-2</relativePath> - </parent> + <parent> + <groupId>com.baeldung</groupId> + <artifactId>parent-boot-2</artifactId> + <version>0.0.1-SNAPSHOT</version> + <relativePath>../../parent-boot-2</relativePath> + </parent> - <properties> - <java.version>1.8</java.version> - </properties> + <properties> + <java.version>1.8</java.version> + <cosmodb.version>2.3.0</cosmodb.version> + </properties> - <dependencies> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-web</artifactId> - </dependency> - <dependency> - <groupId>com.microsoft.azure</groupId> - <artifactId>spring-data-cosmosdb</artifactId> - <version>2.3.0</version> - </dependency> + <dependencies> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> + <dependency> + <groupId>com.microsoft.azure</groupId> + <artifactId>spring-data-cosmosdb</artifactId> + <version>${cosmodb.version}</version> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + </dependency> + </dependencies> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-test</artifactId> - <scope>test</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-maven-plugin</artifactId> - </plugin> - </plugins> - </build> + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + </plugin> + </plugins> + </build> </project> diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/controller/ProductController.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/controller/ProductController.java index c1e38c9601..fe02be88ff 100644 --- a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/controller/ProductController.java +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/controller/ProductController.java @@ -22,9 +22,13 @@ import java.util.Optional; @RequestMapping("/products") public class ProductController { - @Autowired private ProductService productService; + @Autowired + public ProductController(ProductService productService) { + this.productService = productService; + } + @PostMapping @ResponseStatus(HttpStatus.CREATED) public void create(@RequestBody Product product) { @@ -46,8 +50,8 @@ public class ProductController { return productService.findProductByName(name); } - @GetMapping(value = "/category/{category}") - public List<Product> getByCategory(@PathVariable String category) { + @GetMapping(value = "/category") + public List<Product> getByCategory(@RequestParam String category) { return productService.getProductsOfCategory(category); } diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/entity/Product.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/entity/Product.java index 07bb8889f5..10bbe1b9ae 100644 --- a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/entity/Product.java +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/entity/Product.java @@ -5,6 +5,11 @@ import com.microsoft.azure.spring.data.cosmosdb.core.mapping.PartitionKey; import org.springframework.data.annotation.Id; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter @Document(collection = "products") public class Product { @@ -18,41 +23,4 @@ public class Product { @PartitionKey private String productCategory; - public String getProductid() { - return productid; - } - - public void setProductid(String productid) { - this.productid = productid; - } - - public String getProductName() { - return productName; - } - - public void setProductName(String productName) { - this.productName = productName; - } - - public String getProductCategory() { - return productCategory; - } - - public void setProductCategory(String productCategory) { - this.productCategory = productCategory; - } - - public double getPrice() { - return price; - } - - public void setPrice(double price) { - this.price = price; - } - - @Override - public String toString() { - return "Product [productid=" + productid + ", productName=" + productName + ", price=" + price + ", productCategory=" + productCategory + "]"; - } - } diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/service/ProductService.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/service/ProductService.java index 6846d5205c..03f3ba39cd 100644 --- a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/service/ProductService.java +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/service/ProductService.java @@ -25,8 +25,7 @@ public class ProductService { } public List<Product> getProductsOfCategory(String category) { - List<Product> products = repository.findByProductCategory(category); - return products; + return repository.findByProductCategory(category); } public void saveProduct(Product product) { diff --git a/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationIntegrationTest.java b/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationManualTest.java similarity index 70% rename from persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationIntegrationTest.java rename to persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationManualTest.java index 0ef6af15e1..80cf17284a 100644 --- a/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationIntegrationTest.java +++ b/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationManualTest.java @@ -14,14 +14,14 @@ import java.util.Optional; //Uncomment this when configured URI and keys for Azure Cosmos DB in application.properties //to run the integration test //@SpringBootTest -public class AzurecosmodbApplicationIntegrationTest { +public class AzurecosmodbApplicationManualTest { @Autowired ProductRepository productRepository; // Uncomment this when configured URI and keys for Azure Cosmos DB in application.properties // to run the integration test - // @Test + //@Test public void givenProductIsCreated_whenCallFindById_thenProductIsFound() { Product product = new Product(); product.setProductid("1001"); @@ -29,11 +29,9 @@ public class AzurecosmodbApplicationIntegrationTest { product.setPrice(110.0); product.setProductName("Blue Shirt"); - // Uncomment these lines when configured URI and keys for Azure Cosmos DB in application.properties - // to run the integration test - // productRepository.save(product); - // Optional<Product> retrievedProduct = productRepository.findById("1001", new PartitionKey("Shirt")); - // Assert.notNull(retrievedProduct, "Retrieved Product is Null"); + productRepository.save(product); + Optional<Product> retrievedProduct = productRepository.findById("1001", new PartitionKey("Shirt")); + Assert.notNull(retrievedProduct, "Retrieved Product is Null"); } From bb391a389f9fe800f76d94ddc3c13f2c4716b819 Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankur.gupta@jda.com> Date: Thu, 30 Jul 2020 01:49:05 +0530 Subject: [PATCH 038/156] Implementing Code Review comments-2 --- .../spring/data/cosmosdb/service/ProductService.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/service/ProductService.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/service/ProductService.java index 03f3ba39cd..49d07ca5a2 100644 --- a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/service/ProductService.java +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/service/ProductService.java @@ -13,8 +13,12 @@ import java.util.Optional; @Component public class ProductService { - @Autowired private ProductRepository repository; + + @Autowired + public ProductService(ProductRepository repository) { + this.repository = repository; + } public List<Product> findProductByName(String productName) { return repository.findByProductName(productName); From 7693cbd8fe05a8c365e52c3cfa93c6d9a2f5a009 Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankurguptajec@gmail.com> Date: Thu, 30 Jul 2020 01:54:23 +0530 Subject: [PATCH 039/156] Fixing indentation Issue in pom.xml --- .../spring-data-cosmosdb/pom.xml | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/persistence-modules/spring-data-cosmosdb/pom.xml b/persistence-modules/spring-data-cosmosdb/pom.xml index 7de135cdb6..3bf19575dd 100644 --- a/persistence-modules/spring-data-cosmosdb/pom.xml +++ b/persistence-modules/spring-data-cosmosdb/pom.xml @@ -1,52 +1,52 @@ <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <artifactId>spring-data-cosmosdb</artifactId> - <name>spring-data-cosmos-db</name> - <description>tutorial for spring-data-cosmosdb</description> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <artifactId>spring-data-cosmosdb</artifactId> + <name>spring-data-cosmos-db</name> + <description>tutorial for spring-data-cosmosdb</description> - <parent> - <groupId>com.baeldung</groupId> + <parent> + <groupId>com.baeldung</groupId> <artifactId>parent-boot-2</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../../parent-boot-2</relativePath> - </parent> + </parent> - <properties> + <properties> <java.version>1.8</java.version> <cosmodb.version>2.3.0</cosmodb.version> - </properties> + </properties> - <dependencies> + <dependencies> <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-web</artifactId> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> - <groupId>com.microsoft.azure</groupId> - <artifactId>spring-data-cosmosdb</artifactId> - <version>${cosmodb.version}</version> + <groupId>com.microsoft.azure</groupId> + <artifactId>spring-data-cosmosdb</artifactId> + <version>${cosmodb.version}</version> </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-test</artifactId> - <scope>test</scope> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> </dependency> <dependency> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> </dependency> - </dependencies> + </dependencies> - <build> + <build> <plugins> - <plugin> + <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> - </plugin> + </plugin> </plugins> - </build> + </build> </project> From 251466b0a6a5b154b6e0f62ea42ec9a65eb927e1 Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankurguptajec@gmail.com> Date: Thu, 30 Jul 2020 02:03:32 +0530 Subject: [PATCH 040/156] Fixing indentation issues --- .../spring-data-cosmosdb/pom.xml | 58 +++++++++---------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/persistence-modules/spring-data-cosmosdb/pom.xml b/persistence-modules/spring-data-cosmosdb/pom.xml index 3bf19575dd..91fb53286a 100644 --- a/persistence-modules/spring-data-cosmosdb/pom.xml +++ b/persistence-modules/spring-data-cosmosdb/pom.xml @@ -6,47 +6,47 @@ <artifactId>spring-data-cosmosdb</artifactId> <name>spring-data-cosmos-db</name> <description>tutorial for spring-data-cosmosdb</description> - + <parent> <groupId>com.baeldung</groupId> - <artifactId>parent-boot-2</artifactId> - <version>0.0.1-SNAPSHOT</version> - <relativePath>../../parent-boot-2</relativePath> + <artifactId>parent-boot-2</artifactId> + <version>0.0.1-SNAPSHOT</version> + <relativePath>../../parent-boot-2</relativePath> </parent> <properties> - <java.version>1.8</java.version> - <cosmodb.version>2.3.0</cosmodb.version> + <java.version>1.8</java.version> + <cosmodb.version>2.3.0</cosmodb.version> </properties> <dependencies> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-web</artifactId> - </dependency> - <dependency> - <groupId>com.microsoft.azure</groupId> - <artifactId>spring-data-cosmosdb</artifactId> - <version>${cosmodb.version}</version> - </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> + <dependency> + <groupId>com.microsoft.azure</groupId> + <artifactId>spring-data-cosmosdb</artifactId> + <version>${cosmodb.version}</version> + </dependency> <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-test</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - </dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + </dependency> </dependencies> <build> - <plugins> - <plugin> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-maven-plugin</artifactId> - </plugin> - </plugins> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + </plugin> + </plugins> </build> </project> From 929ec03e4b603119b47df93ef1924aeabff16053 Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankurguptajec@gmail.com> Date: Thu, 30 Jul 2020 02:09:15 +0530 Subject: [PATCH 041/156] Fixing Indentation Issues - 2 --- .../spring-data-cosmosdb/pom.xml | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/persistence-modules/spring-data-cosmosdb/pom.xml b/persistence-modules/spring-data-cosmosdb/pom.xml index 91fb53286a..1b21c6dd71 100644 --- a/persistence-modules/spring-data-cosmosdb/pom.xml +++ b/persistence-modules/spring-data-cosmosdb/pom.xml @@ -9,35 +9,35 @@ <parent> <groupId>com.baeldung</groupId> - <artifactId>parent-boot-2</artifactId> - <version>0.0.1-SNAPSHOT</version> - <relativePath>../../parent-boot-2</relativePath> + <artifactId>parent-boot-2</artifactId> + <version>0.0.1-SNAPSHOT</version> + <relativePath>../../parent-boot-2</relativePath> </parent> <properties> - <java.version>1.8</java.version> - <cosmodb.version>2.3.0</cosmodb.version> + <java.version>1.8</java.version> + <cosmodb.version>2.3.0</cosmodb.version> </properties> <dependencies> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-web</artifactId> - </dependency> - <dependency> - <groupId>com.microsoft.azure</groupId> - <artifactId>spring-data-cosmosdb</artifactId> - <version>${cosmodb.version}</version> - </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> + <dependency> + <groupId>com.microsoft.azure</groupId> + <artifactId>spring-data-cosmosdb</artifactId> + <version>${cosmodb.version}</version> + </dependency> <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-test</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - </dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + </dependency> </dependencies> <build> From 36279b05b48e78f50a8735adf38b458fa3b6ef16 Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankurguptajec@gmail.com> Date: Thu, 30 Jul 2020 02:14:27 +0530 Subject: [PATCH 042/156] Fixing Indentation Issue -3 --- .../spring-data-cosmosdb/pom.xml | 51 +++++++++---------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/persistence-modules/spring-data-cosmosdb/pom.xml b/persistence-modules/spring-data-cosmosdb/pom.xml index 1b21c6dd71..75cc830578 100644 --- a/persistence-modules/spring-data-cosmosdb/pom.xml +++ b/persistence-modules/spring-data-cosmosdb/pom.xml @@ -6,40 +6,39 @@ <artifactId>spring-data-cosmosdb</artifactId> <name>spring-data-cosmos-db</name> <description>tutorial for spring-data-cosmosdb</description> - <parent> <groupId>com.baeldung</groupId> - <artifactId>parent-boot-2</artifactId> - <version>0.0.1-SNAPSHOT</version> - <relativePath>../../parent-boot-2</relativePath> + <artifactId>parent-boot-2</artifactId> + <version>0.0.1-SNAPSHOT</version> + <relativePath>../../parent-boot-2</relativePath> </parent> - + <properties> - <java.version>1.8</java.version> - <cosmodb.version>2.3.0</cosmodb.version> + <java.version>1.8</java.version> + <cosmodb.version>2.3.0</cosmodb.version> </properties> - + <dependencies> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-web</artifactId> - </dependency> - <dependency> - <groupId>com.microsoft.azure</groupId> - <artifactId>spring-data-cosmosdb</artifactId> - <version>${cosmodb.version}</version> - </dependency> <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-test</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - </dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> + <dependency> + <groupId>com.microsoft.azure</groupId> + <artifactId>spring-data-cosmosdb</artifactId> + <version>${cosmodb.version}</version> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + </dependency> </dependencies> - + <build> <plugins> <plugin> From 204caa3219e220245475d699d89fd03a2200ea38 Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankur.gupta@jda.com> Date: Thu, 30 Jul 2020 02:44:25 +0530 Subject: [PATCH 043/156] uncommenting the @SpringBootTest and @Test annotation --- .../data/cosmosdb/AzurecosmodbApplicationManualTest.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationManualTest.java b/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationManualTest.java index 80cf17284a..0f42aadc6f 100644 --- a/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationManualTest.java +++ b/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationManualTest.java @@ -11,17 +11,13 @@ import org.springframework.util.Assert; import java.util.Optional; -//Uncomment this when configured URI and keys for Azure Cosmos DB in application.properties -//to run the integration test -//@SpringBootTest +@SpringBootTest public class AzurecosmodbApplicationManualTest { @Autowired ProductRepository productRepository; - // Uncomment this when configured URI and keys for Azure Cosmos DB in application.properties - // to run the integration test - //@Test + @Test public void givenProductIsCreated_whenCallFindById_thenProductIsFound() { Product product = new Product(); product.setProductid("1001"); From 75df0b0778cdfd6e13c6ef34290d22c41a2c42ac Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankur.gupta@jda.com> Date: Thu, 30 Jul 2020 03:05:16 +0530 Subject: [PATCH 044/156] retrieving the object from optional object --- .../spring/data/cosmosdb/AzurecosmodbApplicationManualTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationManualTest.java b/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationManualTest.java index 0f42aadc6f..786b578501 100644 --- a/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationManualTest.java +++ b/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationManualTest.java @@ -27,7 +27,7 @@ public class AzurecosmodbApplicationManualTest { productRepository.save(product); Optional<Product> retrievedProduct = productRepository.findById("1001", new PartitionKey("Shirt")); - Assert.notNull(retrievedProduct, "Retrieved Product is Null"); + Assert.notNull(retrievedProduct.get(), "Retrieved Product is Null"); } From 6092afb60a41d696ce0b838de7493269093ba58a Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankur.gupta@jda.com> Date: Sat, 1 Aug 2020 22:41:28 +0530 Subject: [PATCH 045/156] Implementing Code Review comments -3 --- .../spring/data/cosmosdb/controller/ProductController.java | 5 ----- .../spring/data/cosmosdb/repository/ProductRepository.java | 1 - .../spring/data/cosmosdb/service/ProductService.java | 6 +----- .../data/cosmosdb/AzurecosmodbApplicationManualTest.java | 7 +++---- 4 files changed, 4 insertions(+), 15 deletions(-) diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/controller/ProductController.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/controller/ProductController.java index fe02be88ff..25f88bac72 100644 --- a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/controller/ProductController.java +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/controller/ProductController.java @@ -50,9 +50,4 @@ public class ProductController { return productService.findProductByName(name); } - @GetMapping(value = "/category") - public List<Product> getByCategory(@RequestParam String category) { - return productService.getProductsOfCategory(category); - } - } diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/repository/ProductRepository.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/repository/ProductRepository.java index 29dc85a2cf..1e4a2987a1 100644 --- a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/repository/ProductRepository.java +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/repository/ProductRepository.java @@ -11,5 +11,4 @@ import java.util.List; public interface ProductRepository extends CosmosRepository<Product, String> { List<Product> findByProductName(String productName); - List<Product> findByProductCategory(String category); } diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/service/ProductService.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/service/ProductService.java index 49d07ca5a2..0d1cf7c6a6 100644 --- a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/service/ProductService.java +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/service/ProductService.java @@ -14,7 +14,7 @@ import java.util.Optional; public class ProductService { private ProductRepository repository; - + @Autowired public ProductService(ProductRepository repository) { this.repository = repository; @@ -28,10 +28,6 @@ public class ProductService { return repository.findById(productId, new PartitionKey(category)); } - public List<Product> getProductsOfCategory(String category) { - return repository.findByProductCategory(category); - } - public void saveProduct(Product product) { repository.save(product); } diff --git a/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationManualTest.java b/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationManualTest.java index 786b578501..7ebdce279b 100644 --- a/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationManualTest.java +++ b/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationManualTest.java @@ -9,8 +9,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.util.Assert; -import java.util.Optional; - @SpringBootTest public class AzurecosmodbApplicationManualTest { @@ -26,8 +24,9 @@ public class AzurecosmodbApplicationManualTest { product.setProductName("Blue Shirt"); productRepository.save(product); - Optional<Product> retrievedProduct = productRepository.findById("1001", new PartitionKey("Shirt")); - Assert.notNull(retrievedProduct.get(), "Retrieved Product is Null"); + Product retrievedProduct = productRepository.findById("1001", new PartitionKey("Shirt")) + .orElse(null); + Assert.notNull(retrievedProduct, "Retrieved Product is Null"); } From 8c0fc4830c736ba3300f42d2b71d0b943fb84ff4 Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankur.gupta@jda.com> Date: Mon, 3 Aug 2020 01:00:01 +0530 Subject: [PATCH 046/156] Fixing Capitalization Issue in class names --- ...ecosmodbApplication.java => AzureCosmosDbApplication.java} | 4 ++-- ...anualTest.java => AzureCosmosDbApplicationManualTest.java} | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/{AzurecosmodbApplication.java => AzureCosmosDbApplication.java} (90%) rename persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/{AzurecosmodbApplicationManualTest.java => AzureCosmosDbApplicationManualTest.java} (95%) diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplication.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/AzureCosmosDbApplication.java similarity index 90% rename from persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplication.java rename to persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/AzureCosmosDbApplication.java index 2b145d14cd..7a91cd7d33 100644 --- a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplication.java +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/AzureCosmosDbApplication.java @@ -13,10 +13,10 @@ import org.springframework.context.annotation.Bean; @SpringBootApplication @EnableCosmosRepositories(basePackageClasses = ProductRepository.class) -public class AzurecosmodbApplication extends AbstractCosmosConfiguration { +public class AzureCosmosDbApplication extends AbstractCosmosConfiguration { public static void main(String[] args) { - SpringApplication.run(AzurecosmodbApplication.class, args); + SpringApplication.run(AzureCosmosDbApplication.class, args); } @Value("${azure.cosmosdb.uri}") diff --git a/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationManualTest.java b/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzureCosmosDbApplicationManualTest.java similarity index 95% rename from persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationManualTest.java rename to persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzureCosmosDbApplicationManualTest.java index 7ebdce279b..9170068173 100644 --- a/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzurecosmodbApplicationManualTest.java +++ b/persistence-modules/spring-data-cosmosdb/src/test/java/com/baeldung/spring/data/cosmosdb/AzureCosmosDbApplicationManualTest.java @@ -10,7 +10,7 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.util.Assert; @SpringBootTest -public class AzurecosmodbApplicationManualTest { +public class AzureCosmosDbApplicationManualTest { @Autowired ProductRepository productRepository; From 3ac4049caee949f692185dd9b33245a4b8938e9a Mon Sep 17 00:00:00 2001 From: mikr <michael.krimgen@ximedes.com> Date: Tue, 4 Aug 2020 22:39:30 +0200 Subject: [PATCH 047/156] Java-65 split persistence-modules/spring-jpa --- persistence-modules/spring-jpa-2/.gitignore | 13 ++ persistence-modules/spring-jpa-2/README.md | 19 +++ persistence-modules/spring-jpa-2/pom.xml | 152 ++++++++++++++++++ .../baeldung/config/PersistenceJPAConfig.java | 85 ++++++++++ .../config/PersistenceJPAConfigXml.java | 17 ++ .../com/baeldung/config/SpringWebConfig.java | 24 +++ .../com/baeldung/config/StudentJpaConfig.java | 67 ++++++++ .../com/baeldung/config/WebInitializer.java | 20 +++ .../com/baeldung/manytomany/model/Course.java | 0 .../manytomany/model/CourseRating.java | 0 .../manytomany/model/CourseRatingKey.java | 0 .../manytomany/model/CourseRegistration.java | 0 .../baeldung/manytomany/model/Student.java | 0 .../src/main/resources/context.xml | 1 + .../src/main/resources/logback.xml | 19 +++ .../main/resources/persistence-h2.properties | 10 ++ .../resources/persistence-student.properties | 11 ++ .../src/main/resources/persistence.xml | 42 +++++ .../src/main/resources/server.xml | 6 + .../src/main/resources/sqlfiles.properties | 1 + .../src/test/java/META-INF/persistence.xml | 20 +++ .../java/com/baeldung/SpringContextTest.java | 21 +++ .../manytomany/ManyToManyIntegrationTest.java | 0 .../ManyToManyTestConfiguration.java | 2 +- .../src/test/resources/.gitignore | 13 ++ .../src/test/resources/manytomany/db.sql | 0 .../test/resources/manytomany/test.properties | 0 .../resources/persistence-student.properties | 9 ++ persistence-modules/spring-jpa/README.md | 4 +- 29 files changed, 552 insertions(+), 4 deletions(-) create mode 100644 persistence-modules/spring-jpa-2/.gitignore create mode 100644 persistence-modules/spring-jpa-2/README.md create mode 100644 persistence-modules/spring-jpa-2/pom.xml create mode 100644 persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/PersistenceJPAConfig.java create mode 100644 persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/PersistenceJPAConfigXml.java create mode 100644 persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/SpringWebConfig.java create mode 100644 persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/StudentJpaConfig.java create mode 100644 persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/WebInitializer.java rename persistence-modules/{spring-jpa => spring-jpa-2}/src/main/java/com/baeldung/manytomany/model/Course.java (100%) rename persistence-modules/{spring-jpa => spring-jpa-2}/src/main/java/com/baeldung/manytomany/model/CourseRating.java (100%) rename persistence-modules/{spring-jpa => spring-jpa-2}/src/main/java/com/baeldung/manytomany/model/CourseRatingKey.java (100%) rename persistence-modules/{spring-jpa => spring-jpa-2}/src/main/java/com/baeldung/manytomany/model/CourseRegistration.java (100%) rename persistence-modules/{spring-jpa => spring-jpa-2}/src/main/java/com/baeldung/manytomany/model/Student.java (100%) create mode 100644 persistence-modules/spring-jpa-2/src/main/resources/context.xml create mode 100644 persistence-modules/spring-jpa-2/src/main/resources/logback.xml create mode 100644 persistence-modules/spring-jpa-2/src/main/resources/persistence-h2.properties create mode 100644 persistence-modules/spring-jpa-2/src/main/resources/persistence-student.properties create mode 100644 persistence-modules/spring-jpa-2/src/main/resources/persistence.xml create mode 100644 persistence-modules/spring-jpa-2/src/main/resources/server.xml create mode 100644 persistence-modules/spring-jpa-2/src/main/resources/sqlfiles.properties create mode 100644 persistence-modules/spring-jpa-2/src/test/java/META-INF/persistence.xml create mode 100644 persistence-modules/spring-jpa-2/src/test/java/com/baeldung/SpringContextTest.java rename persistence-modules/{spring-jpa => spring-jpa-2}/src/test/java/com/baeldung/manytomany/ManyToManyIntegrationTest.java (100%) rename persistence-modules/{spring-jpa => spring-jpa-2}/src/test/java/com/baeldung/manytomany/ManyToManyTestConfiguration.java (97%) create mode 100644 persistence-modules/spring-jpa-2/src/test/resources/.gitignore rename persistence-modules/{spring-jpa => spring-jpa-2}/src/test/resources/manytomany/db.sql (100%) rename persistence-modules/{spring-jpa => spring-jpa-2}/src/test/resources/manytomany/test.properties (100%) create mode 100644 persistence-modules/spring-jpa-2/src/test/resources/persistence-student.properties diff --git a/persistence-modules/spring-jpa-2/.gitignore b/persistence-modules/spring-jpa-2/.gitignore new file mode 100644 index 0000000000..83c05e60c8 --- /dev/null +++ b/persistence-modules/spring-jpa-2/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/README.md b/persistence-modules/spring-jpa-2/README.md new file mode 100644 index 0000000000..71b368b44a --- /dev/null +++ b/persistence-modules/spring-jpa-2/README.md @@ -0,0 +1,19 @@ +========= + +## Spring JPA Example Project + + +### Relevant Articles: +- [Many-To-Many Relationship in JPA](https://www.baeldung.com/jpa-many-to-many) +- More articles: [[<-- prev]](/spring-jpa) + + +### Eclipse Config +After importing the project into Eclipse, you may see the following error: +"No persistence xml file found in project" + +This can be ignored: +- Project -> Properties -> Java Persistance -> JPA -> Error/Warnings -> Select Ignore on "No persistence xml file found in project" +Or: +- Eclipse -> Preferences - Validation - disable the "Build" execution of the JPA Validator + diff --git a/persistence-modules/spring-jpa-2/pom.xml b/persistence-modules/spring-jpa-2/pom.xml new file mode 100644 index 0000000000..410ed592b0 --- /dev/null +++ b/persistence-modules/spring-jpa-2/pom.xml @@ -0,0 +1,152 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <artifactId>spring-jpa</artifactId> + <version>0.1-SNAPSHOT</version> + <name>spring-jpa</name> + <packaging>war</packaging> + + <parent> + <groupId>com.baeldung</groupId> + <artifactId>persistence-modules</artifactId> + <version>1.0.0-SNAPSHOT</version> + </parent> + + <dependencies> + <!-- Spring --> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-orm</artifactId> + <version>${org.springframework.version}</version> + <exclusions> + <exclusion> + <artifactId>commons-logging</artifactId> + <groupId>commons-logging</groupId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + <version>${org.springframework.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-webmvc</artifactId> + <version>${org.springframework.version}</version> + </dependency> + + <!-- persistence --> + + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-entitymanager</artifactId> + <version>${hibernate.version}</version> + </dependency> + <dependency> + <groupId>xml-apis</groupId> + <artifactId>xml-apis</artifactId> + <version>${xml-apis.version}</version> + </dependency> + <dependency> + <groupId>org.javassist</groupId> + <artifactId>javassist</artifactId> + <version>${javassist.version}</version> + </dependency> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>${mysql-connector-java.version}</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.springframework.data</groupId> + <artifactId>spring-data-jpa</artifactId> + <version>${spring-data-jpa.version}</version> + </dependency> + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <version>${h2.version}</version> + </dependency> + + <!-- validation --> + + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-validator</artifactId> + <version>${hibernate-validator.version}</version> + </dependency> + <dependency> + <groupId>javax.el</groupId> + <artifactId>javax.el-api</artifactId> + <version>${javax.el-api.version}</version> + </dependency> + + <!-- web --> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>jstl</artifactId> + <version>${jstl.version}</version> + </dependency> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + <scope>provided</scope> + <version>${javax.servlet.servlet-api.version}</version> + </dependency> + + <!-- utils --> + + <dependency> + <groupId>com.google.guava</groupId> + <artifactId>guava</artifactId> + <version>${guava.version}</version> + </dependency> + <dependency> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> + <version>${assertj.version}</version> + </dependency> + + <!-- test scoped --> + + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-lang3</artifactId> + <version>${commons-lang3.version}</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-test</artifactId> + <version>${org.springframework.version}</version> + <scope>test</scope> + </dependency> + + </dependencies> + + <properties> + <!-- Spring --> + <org.springframework.version>5.1.5.RELEASE</org.springframework.version> + <javassist.version>3.21.0-GA</javassist.version> + + <mysql-connector-java.version>6.0.6</mysql-connector-java.version> + <spring-data-jpa.version>2.1.5.RELEASE</spring-data-jpa.version> + + <!-- web --> + <javax.servlet.servlet-api.version>2.5</javax.servlet.servlet-api.version> + + <!-- various --> + <hibernate-validator.version>6.0.15.Final</hibernate-validator.version> + <xml-apis.version>1.4.01</xml-apis.version> + <javax.el-api.version>2.2.5</javax.el-api.version> + + <!-- util --> + <guava.version>21.0</guava.version> + <assertj.version>3.8.0</assertj.version> + </properties> + +</project> \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/PersistenceJPAConfig.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/PersistenceJPAConfig.java new file mode 100644 index 0000000000..c489321122 --- /dev/null +++ b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/PersistenceJPAConfig.java @@ -0,0 +1,85 @@ +package com.baeldung.config; + +import com.google.common.base.Preconditions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.core.env.Environment; +import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.jdbc.datasource.DriverManagerDataSource; +import org.springframework.orm.jpa.JpaTransactionManager; +import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; +import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +import javax.persistence.EntityManagerFactory; +import javax.sql.DataSource; +import java.util.Properties; + +@Configuration +@EnableTransactionManagement +@PropertySource({ "classpath:persistence-h2.properties" }) +@ComponentScan({ "com.baeldung.persistence" }) +@EnableJpaRepositories(basePackages = "com.baeldung.persistence.dao") +public class PersistenceJPAConfig { + + @Autowired + private Environment env; + + public PersistenceJPAConfig() { + super(); + } + + // beans + + @Bean + public LocalContainerEntityManagerFactoryBean entityManagerFactory() { + final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); + em.setDataSource(dataSource()); + em.setPackagesToScan(new String[] { "com.baeldung.persistence.model" }); + + final HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); + em.setJpaVendorAdapter(vendorAdapter); + em.setJpaProperties(additionalProperties()); + + return em; + } + + @Bean + public DataSource dataSource() { + final DriverManagerDataSource dataSource = new DriverManagerDataSource(); + dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName"))); + dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url"))); + dataSource.setUsername(Preconditions.checkNotNull(env.getProperty("jdbc.user"))); + dataSource.setPassword(Preconditions.checkNotNull(env.getProperty("jdbc.pass"))); + + return dataSource; + } + + @Bean + public PlatformTransactionManager transactionManager(final EntityManagerFactory emf) { + final JpaTransactionManager transactionManager = new JpaTransactionManager(); + transactionManager.setEntityManagerFactory(emf); + return transactionManager; + } + + @Bean + public PersistenceExceptionTranslationPostProcessor exceptionTranslation() { + return new PersistenceExceptionTranslationPostProcessor(); + } + + final Properties additionalProperties() { + final Properties hibernateProperties = new Properties(); + hibernateProperties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); + hibernateProperties.setProperty("hibernate.dialect", env.getProperty("hibernate.dialect")); + hibernateProperties.setProperty("hibernate.cache.use_second_level_cache", "false"); + + + return hibernateProperties; + } + +} \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/PersistenceJPAConfigXml.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/PersistenceJPAConfigXml.java new file mode 100644 index 0000000000..95224a4662 --- /dev/null +++ b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/PersistenceJPAConfigXml.java @@ -0,0 +1,17 @@ +package com.baeldung.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.ImportResource; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +// @Configuration +@EnableTransactionManagement +@ComponentScan({ "com.baeldung.persistence" }) +@ImportResource({ "classpath:jpaConfig.xml" }) +public class PersistenceJPAConfigXml { + + public PersistenceJPAConfigXml() { + super(); + } + +} \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/SpringWebConfig.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/SpringWebConfig.java new file mode 100644 index 0000000000..475970d1f0 --- /dev/null +++ b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/SpringWebConfig.java @@ -0,0 +1,24 @@ +package com.baeldung.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.view.InternalResourceViewResolver; +import org.springframework.web.servlet.view.JstlView; + +@EnableWebMvc +@Configuration +@ComponentScan({ "com.baeldung.web" }) +public class SpringWebConfig extends WebMvcConfigurerAdapter { + + @Bean + public InternalResourceViewResolver viewResolver() { + InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); + viewResolver.setViewClass(JstlView.class); + viewResolver.setPrefix("/WEB-INF/views/jsp/"); + viewResolver.setSuffix(".jsp"); + return viewResolver; + } +} diff --git a/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/StudentJpaConfig.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/StudentJpaConfig.java new file mode 100644 index 0000000000..54ced72dd1 --- /dev/null +++ b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/StudentJpaConfig.java @@ -0,0 +1,67 @@ +package com.baeldung.config; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.core.env.Environment; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.jdbc.datasource.DriverManagerDataSource; +import org.springframework.orm.jpa.JpaTransactionManager; +import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; +import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +import javax.persistence.EntityManagerFactory; +import javax.sql.DataSource; +import java.util.Properties; + +@Configuration +@EnableJpaRepositories(basePackages = "com.baeldung.inmemory.persistence.dao") +@PropertySource("persistence-student.properties") +@EnableTransactionManagement +public class StudentJpaConfig { + + @Autowired + private Environment env; + + @Bean + public DataSource dataSource() { + final DriverManagerDataSource dataSource = new DriverManagerDataSource(); + dataSource.setDriverClassName(env.getProperty("jdbc.driverClassName")); + dataSource.setUrl(env.getProperty("jdbc.url")); + dataSource.setUsername(env.getProperty("jdbc.user")); + dataSource.setPassword(env.getProperty("jdbc.pass")); + + return dataSource; + } + + @Bean + public LocalContainerEntityManagerFactoryBean entityManagerFactory() { + final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); + em.setDataSource(dataSource()); + em.setPackagesToScan(new String[] { "com.baeldung.inmemory.persistence.model" }); + em.setJpaVendorAdapter(new HibernateJpaVendorAdapter()); + em.setJpaProperties(additionalProperties()); + return em; + } + + @Bean + JpaTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) { + JpaTransactionManager transactionManager = new JpaTransactionManager(); + transactionManager.setEntityManagerFactory(entityManagerFactory); + return transactionManager; + } + + final Properties additionalProperties() { + final Properties hibernateProperties = new Properties(); + + hibernateProperties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); + hibernateProperties.setProperty("hibernate.dialect", env.getProperty("hibernate.dialect")); + hibernateProperties.setProperty("hibernate.show_sql", env.getProperty("hibernate.show_sql")); + hibernateProperties.setProperty("hibernate.cache.use_second_level_cache", env.getProperty("hibernate.cache.use_second_level_cache")); + hibernateProperties.setProperty("hibernate.cache.use_query_cache", env.getProperty("hibernate.cache.use_query_cache")); + + return hibernateProperties; + } +} diff --git a/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/WebInitializer.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/WebInitializer.java new file mode 100644 index 0000000000..be81cca76b --- /dev/null +++ b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/WebInitializer.java @@ -0,0 +1,20 @@ +package com.baeldung.config; + +import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; + +public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { + @Override + protected Class<?>[] getRootConfigClasses() { + return new Class[] { PersistenceJPAConfig.class }; + } + + @Override + protected Class<?>[] getServletConfigClasses() { + return new Class[] { SpringWebConfig.class }; + } + + @Override + protected String[] getServletMappings() { + return new String[] { "/" }; + } +} diff --git a/persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/Course.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/Course.java similarity index 100% rename from persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/Course.java rename to persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/Course.java diff --git a/persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/CourseRating.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/CourseRating.java similarity index 100% rename from persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/CourseRating.java rename to persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/CourseRating.java diff --git a/persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/CourseRatingKey.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/CourseRatingKey.java similarity index 100% rename from persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/CourseRatingKey.java rename to persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/CourseRatingKey.java diff --git a/persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/CourseRegistration.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/CourseRegistration.java similarity index 100% rename from persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/CourseRegistration.java rename to persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/CourseRegistration.java diff --git a/persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/Student.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/Student.java similarity index 100% rename from persistence-modules/spring-jpa/src/main/java/com/baeldung/manytomany/model/Student.java rename to persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/Student.java diff --git a/persistence-modules/spring-jpa-2/src/main/resources/context.xml b/persistence-modules/spring-jpa-2/src/main/resources/context.xml new file mode 100644 index 0000000000..a64dfe9a61 --- /dev/null +++ b/persistence-modules/spring-jpa-2/src/main/resources/context.xml @@ -0,0 +1 @@ + <ResourceLink name="jdbc/BaeldungDatabase" global="jdbc/BaeldungDatabase" type="javax.sql.DataSource"/> \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/main/resources/logback.xml b/persistence-modules/spring-jpa-2/src/main/resources/logback.xml new file mode 100644 index 0000000000..ec0dc2469a --- /dev/null +++ b/persistence-modules/spring-jpa-2/src/main/resources/logback.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configuration> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern>web - %date [%thread] %-5level %logger{36} - %message%n + </pattern> + </encoder> + </appender> + + <logger name="org.springframework" level="WARN" /> + <logger name="org.springframework.transaction" level="WARN" /> + + <!-- in order to debug some marshalling issues, this needs to be TRACE --> + <logger name="org.springframework.web.servlet.mvc" level="WARN" /> + + <root level="INFO"> + <appender-ref ref="STDOUT" /> + </root> +</configuration> \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/main/resources/persistence-h2.properties b/persistence-modules/spring-jpa-2/src/main/resources/persistence-h2.properties new file mode 100644 index 0000000000..a3060cc796 --- /dev/null +++ b/persistence-modules/spring-jpa-2/src/main/resources/persistence-h2.properties @@ -0,0 +1,10 @@ +# jdbc.X +jdbc.driverClassName=org.h2.Driver +jdbc.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1 +jdbc.user=sa +jdbc.pass= + +# hibernate.X +hibernate.dialect=org.hibernate.dialect.H2Dialect +hibernate.show_sql=true +hibernate.hbm2ddl.auto=create-drop \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/main/resources/persistence-student.properties b/persistence-modules/spring-jpa-2/src/main/resources/persistence-student.properties new file mode 100644 index 0000000000..d4c82420de --- /dev/null +++ b/persistence-modules/spring-jpa-2/src/main/resources/persistence-student.properties @@ -0,0 +1,11 @@ +jdbc.driverClassName=com.mysql.cj.jdbc.Driver +jdbc.url=jdbc:mysql://localhost:3306/myDb +jdbc.user=tutorialuser +jdbc.pass=tutorialpass + +hibernate.dialect=org.hibernate.dialect.MySQL5Dialect +hibernate.show_sql=true +hibernate.hbm2ddl.auto=create-drop + +hibernate.cache.use_second_level_cache=false +hibernate.cache.use_query_cache=false \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/main/resources/persistence.xml b/persistence-modules/spring-jpa-2/src/main/resources/persistence.xml new file mode 100644 index 0000000000..57687c306d --- /dev/null +++ b/persistence-modules/spring-jpa-2/src/main/resources/persistence.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" + xmlns:tx="http://www.springframework.org/schema/tx" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd + http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd" +> + + <context:property-placeholder location="classpath:persistence-h2.properties"/> + + <bean id="myEmf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> + <property name="dataSource" ref="dataSource"/> + <property name="packagesToScan" value="com.baeldung.persistence.model"/> + <property name="jpaVendorAdapter"> + <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/> + <!-- <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" /> <property name="generateDdl" value="${jpa.generateDdl}" /> <property name="databasePlatform" + value="${persistence.dialect}" /> </bean> --> + </property> + <property name="jpaProperties"> + <props> + <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> + <prop key="hibernate.dialect">${hibernate.dialect}</prop> + </props> + </property> + </bean> + + <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> + <property name="driverClassName" value="${jdbc.driverClassName}"/> + <property name="url" value="${jdbc.url}"/> + <property name="username" value="${jdbc.user}"/> + <property name="password" value="${jdbc.pass}"/> + </bean> + + <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> + <property name="entityManagerFactory" ref="myEmf"/> + </bean> + <tx:annotation-driven/> + + <bean id="persistenceExceptionTranslationPostProcessor" class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/> + +</beans> \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/main/resources/server.xml b/persistence-modules/spring-jpa-2/src/main/resources/server.xml new file mode 100644 index 0000000000..5c61659018 --- /dev/null +++ b/persistence-modules/spring-jpa-2/src/main/resources/server.xml @@ -0,0 +1,6 @@ + + + <Resource name="jdbc/BaeldungDatabase" auth="Container" + type="javax.sql.DataSource" driverClassName="org.postgresql.Driver" + url="jdbc:postgresql://localhost:5432/postgres" + username="baeldung" password="pass1234" maxActive="20" maxIdle="10" maxWait="-1"/> \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/main/resources/sqlfiles.properties b/persistence-modules/spring-jpa-2/src/main/resources/sqlfiles.properties new file mode 100644 index 0000000000..0bea6adad1 --- /dev/null +++ b/persistence-modules/spring-jpa-2/src/main/resources/sqlfiles.properties @@ -0,0 +1 @@ +spring.jpa.hibernate.ddl-auto=none \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/test/java/META-INF/persistence.xml b/persistence-modules/spring-jpa-2/src/test/java/META-INF/persistence.xml new file mode 100644 index 0000000000..495f076fef --- /dev/null +++ b/persistence-modules/spring-jpa-2/src/test/java/META-INF/persistence.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> + <persistence-unit name="punit"> + <class>com.baeldung.persistence.model.Foo</class> + <class>com.baeldung.persistence.model.Bar</class> + <properties> + <property name="javax.persistence.jdbc.user" value="root"/> + <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> + <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/HIBERTEST"/> + <property name="javax.persistence.ddl-generation" value="drop-and-create-tables"/> + <property name="javax.persistence.logging.level" value="INFO"/> + <property name="hibernate.show_sql" value="true"/> + <property name="hibernate.cache.use_second_level_cache" value="false"/> + <property name="hibernate.cache.use_query_cache" value="false"/> + </properties> + + </persistence-unit> +</persistence> diff --git a/persistence-modules/spring-jpa-2/src/test/java/com/baeldung/SpringContextTest.java b/persistence-modules/spring-jpa-2/src/test/java/com/baeldung/SpringContextTest.java new file mode 100644 index 0000000000..abc73e250d --- /dev/null +++ b/persistence-modules/spring-jpa-2/src/test/java/com/baeldung/SpringContextTest.java @@ -0,0 +1,21 @@ +package com.baeldung; + +import com.baeldung.config.PersistenceJPAConfig; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; +import org.springframework.test.context.web.WebAppConfiguration; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { PersistenceJPAConfig.class }, loader = AnnotationConfigContextLoader.class) +@WebAppConfiguration +@DirtiesContext +public class SpringContextTest { + + @Test + public void whenSpringContextIsBootstrapped_thenNoExceptions() { + } +} diff --git a/persistence-modules/spring-jpa/src/test/java/com/baeldung/manytomany/ManyToManyIntegrationTest.java b/persistence-modules/spring-jpa-2/src/test/java/com/baeldung/manytomany/ManyToManyIntegrationTest.java similarity index 100% rename from persistence-modules/spring-jpa/src/test/java/com/baeldung/manytomany/ManyToManyIntegrationTest.java rename to persistence-modules/spring-jpa-2/src/test/java/com/baeldung/manytomany/ManyToManyIntegrationTest.java diff --git a/persistence-modules/spring-jpa/src/test/java/com/baeldung/manytomany/ManyToManyTestConfiguration.java b/persistence-modules/spring-jpa-2/src/test/java/com/baeldung/manytomany/ManyToManyTestConfiguration.java similarity index 97% rename from persistence-modules/spring-jpa/src/test/java/com/baeldung/manytomany/ManyToManyTestConfiguration.java rename to persistence-modules/spring-jpa-2/src/test/java/com/baeldung/manytomany/ManyToManyTestConfiguration.java index f4635b563a..1cc3621f0d 100644 --- a/persistence-modules/spring-jpa/src/test/java/com/baeldung/manytomany/ManyToManyTestConfiguration.java +++ b/persistence-modules/spring-jpa-2/src/test/java/com/baeldung/manytomany/ManyToManyTestConfiguration.java @@ -16,7 +16,7 @@ import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; @Configuration -@PropertySource("classpath:/manytomany/test.properties") +@PropertySource("manytomany/test.properties") public class ManyToManyTestConfiguration { @Bean diff --git a/persistence-modules/spring-jpa-2/src/test/resources/.gitignore b/persistence-modules/spring-jpa-2/src/test/resources/.gitignore new file mode 100644 index 0000000000..83c05e60c8 --- /dev/null +++ b/persistence-modules/spring-jpa-2/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/persistence-modules/spring-jpa/src/test/resources/manytomany/db.sql b/persistence-modules/spring-jpa-2/src/test/resources/manytomany/db.sql similarity index 100% rename from persistence-modules/spring-jpa/src/test/resources/manytomany/db.sql rename to persistence-modules/spring-jpa-2/src/test/resources/manytomany/db.sql diff --git a/persistence-modules/spring-jpa/src/test/resources/manytomany/test.properties b/persistence-modules/spring-jpa-2/src/test/resources/manytomany/test.properties similarity index 100% rename from persistence-modules/spring-jpa/src/test/resources/manytomany/test.properties rename to persistence-modules/spring-jpa-2/src/test/resources/manytomany/test.properties diff --git a/persistence-modules/spring-jpa-2/src/test/resources/persistence-student.properties b/persistence-modules/spring-jpa-2/src/test/resources/persistence-student.properties new file mode 100644 index 0000000000..3b6b580630 --- /dev/null +++ b/persistence-modules/spring-jpa-2/src/test/resources/persistence-student.properties @@ -0,0 +1,9 @@ +jdbc.driverClassName=org.h2.Driver +jdbc.url=jdbc:h2:mem:myDb;DB_CLOSE_DELAY=-1 + +hibernate.dialect=org.hibernate.dialect.H2Dialect +hibernate.show_sql=true +hibernate.hbm2ddl.auto=create + +hibernate.cache.use_second_level_cache=false +hibernate.cache.use_query_cache=false \ No newline at end of file diff --git a/persistence-modules/spring-jpa/README.md b/persistence-modules/spring-jpa/README.md index 94a1e1f575..3eb8ae8d55 100644 --- a/persistence-modules/spring-jpa/README.md +++ b/persistence-modules/spring-jpa/README.md @@ -11,9 +11,7 @@ - [A Guide to Spring AbstractRoutingDatasource](https://www.baeldung.com/spring-abstract-routing-data-source) - [Obtaining Auto-generated Keys in Spring JDBC](https://www.baeldung.com/spring-jdbc-autogenerated-keys) - [Use Criteria Queries in a Spring Data Application](https://www.baeldung.com/spring-data-criteria-queries) -- [Many-To-Many Relationship in JPA](https://www.baeldung.com/jpa-many-to-many) -- [Spring Persistence (Hibernate and JPA) with a JNDI datasource](https://www.baeldung.com/spring-persistence-hibernate-and-jpa-with-a-jndi-datasource-2) - +- More articles: [[next -->]](/spring-jpa-2) ### Eclipse Config After importing the project into Eclipse, you may see the following error: From e176cc2d4226943d8c132fe3ca4f462bd5283747 Mon Sep 17 00:00:00 2001 From: Krzysiek <krzysztofwoyke@gmail.com> Date: Tue, 4 Aug 2020 23:06:05 +0200 Subject: [PATCH 048/156] JAVA-1652: Get rid of the overriden spring-boot.version property --- spring-cloud/spring-cloud-zuul/pom.xml | 3 +-- .../spring-cloud-zuul/spring-zuul-post-filter/pom.xml | 4 ---- .../spring-cloud-zuul/spring-zuul-rate-limiting/pom.xml | 2 -- 3 files changed, 1 insertion(+), 8 deletions(-) diff --git a/spring-cloud/spring-cloud-zuul/pom.xml b/spring-cloud/spring-cloud-zuul/pom.xml index 140a1337b3..b3c66dd1c6 100644 --- a/spring-cloud/spring-cloud-zuul/pom.xml +++ b/spring-cloud/spring-cloud-zuul/pom.xml @@ -72,8 +72,7 @@ </build> <properties> - <spring-cloud.version>Hoxton.RELEASE</spring-cloud.version> - <spring-boot.version>2.2.2.RELEASE</spring-boot.version> + <spring-cloud.version>Hoxton.SR4</spring-cloud.version> </properties> </project> diff --git a/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/pom.xml b/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/pom.xml index 8643309645..0ca9f0d050 100644 --- a/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/pom.xml +++ b/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/pom.xml @@ -18,8 +18,4 @@ </dependency> </dependencies> - <properties> - <spring-cloud.version>Hoxton.SR1</spring-cloud.version> - </properties> - </project> \ No newline at end of file diff --git a/spring-cloud/spring-cloud-zuul/spring-zuul-rate-limiting/pom.xml b/spring-cloud/spring-cloud-zuul/spring-zuul-rate-limiting/pom.xml index fd6d18fc09..8873282d1e 100644 --- a/spring-cloud/spring-cloud-zuul/spring-zuul-rate-limiting/pom.xml +++ b/spring-cloud/spring-cloud-zuul/spring-zuul-rate-limiting/pom.xml @@ -48,8 +48,6 @@ </build> <properties> - <spring-cloud.version>Finchley.SR1</spring-cloud.version> - <spring-boot.version>2.0.6.RELEASE</spring-boot.version> <rate.limit.version>2.2.0.RELEASE</rate.limit.version> </properties> From 5db4e332b91e64a967fd7042021a225ce6df3f3a Mon Sep 17 00:00:00 2001 From: Rutuja Joshi <67615932+rutujavjoshi@users.noreply.github.com> Date: Wed, 5 Aug 2020 15:07:34 +0530 Subject: [PATCH 049/156] Added New Classes BAEL-4193 NoSuchMethodError --- .../nosuchmethoderror/MainMenu.java | 20 +++++++++++++++++++ .../nosuchmethoderror/SpecialToday.java | 14 +++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/MainMenu.java create mode 100644 core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/SpecialToday.java diff --git a/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/MainMenu.java b/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/MainMenu.java new file mode 100644 index 0000000000..aec70cb843 --- /dev/null +++ b/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/MainMenu.java @@ -0,0 +1,20 @@ +package com.baeldung.exceptions.nosuchmethoderror; + +import java.util.StringJoiner; + +public class MainMenu { + public static void main(String[] args) { + System.out.println("Today's Specials: " + getSpecials()); + } + + public static StringJoiner getSpecials() { + StringJoiner specials = new StringJoiner(", "); + try { + specials.add(SpecialToday.getStarter()); + specials.add(SpecialToday.getDesert()); + } catch (Exception e) { + e.printStackTrace(); + } + return specials; + } +} diff --git a/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/SpecialToday.java b/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/SpecialToday.java new file mode 100644 index 0000000000..1f47a8934e --- /dev/null +++ b/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/SpecialToday.java @@ -0,0 +1,14 @@ +package com.baeldung.exceptions.nosuchmethoderror; + +public class SpecialToday { + private static String desert = "Chocolate Cake"; + private static String starter = "Caesar Salad"; + + public static String getDesert() { + return desert; + } + + public static String getStarter() { + return starter; + } +} From 4c4cafde1eb732837f86fbb68581795cee758ac2 Mon Sep 17 00:00:00 2001 From: Rutuja Joshi <67615932+rutujavjoshi@users.noreply.github.com> Date: Wed, 5 Aug 2020 15:16:51 +0530 Subject: [PATCH 050/156] Added New File(s) - BAEL-4193 NoSuchMethodError --- .../nosuchmethoderror/MainMenuUnitTest.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 core-java-modules/core-java-exceptions/src/test/java/com/baeldung/exceptions/nosuchmethoderror/MainMenuUnitTest.java diff --git a/core-java-modules/core-java-exceptions/src/test/java/com/baeldung/exceptions/nosuchmethoderror/MainMenuUnitTest.java b/core-java-modules/core-java-exceptions/src/test/java/com/baeldung/exceptions/nosuchmethoderror/MainMenuUnitTest.java new file mode 100644 index 0000000000..e9aef1b484 --- /dev/null +++ b/core-java-modules/core-java-exceptions/src/test/java/com/baeldung/exceptions/nosuchmethoderror/MainMenuUnitTest.java @@ -0,0 +1,14 @@ +package com.baeldung.exceptions.nosuchmethoderror; + +import static org.junit.Assert.assertNotNull; + +import org.junit.jupiter.api.Test; + +class MainMenuUnitTest { + + @Test + void testgetSpecials() { + assertNotNull(MainMenu.getSpecials()); + } + +} From d50a83197279a0fda143ac3f1bc66025c5873b42 Mon Sep 17 00:00:00 2001 From: andrebrowne <42154231+andrebrowne@users.noreply.github.com> Date: Sat, 8 Aug 2020 21:05:32 -0400 Subject: [PATCH 051/156] BAEL-4077 Fixup styling --- .../baeldung/jpa/equality/EqualByBusinessKey.java | 14 ++++++++------ .../java/com/baeldung/jpa/equality/EqualById.java | 13 +++++++------ .../baeldung/jpa/equality/EqualByJavaDefault.java | 4 +--- .../baeldung/jpa/equality/EqualityUnitTest.java | 2 +- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByBusinessKey.java b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByBusinessKey.java index 3e34f97d77..655db4e575 100644 --- a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByBusinessKey.java +++ b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByBusinessKey.java @@ -40,15 +40,17 @@ public class EqualByBusinessKey { @Override public boolean equals(Object obj) { - if (this == obj) + if (this == obj) { return true; - if (obj == null) + } + if (obj == null) { return false; - if (obj instanceof EqualByBusinessKey) - if (((EqualByBusinessKey) obj).getEmail() == getEmail()) + } + if (obj instanceof EqualByBusinessKey) { + if (((EqualByBusinessKey) obj).getEmail() == getEmail()) { return true; - + } + } return false; } - } diff --git a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualById.java b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualById.java index f29a152f3e..cebfb5fcec 100644 --- a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualById.java +++ b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualById.java @@ -41,14 +41,15 @@ public class EqualById { @Override public boolean equals(Object obj) { - if (this == obj) + if (this == obj) { return true; - if (obj == null) + } + if (obj == null) { return false; - if (obj instanceof EqualById) - return ((EqualById) obj).getId() == getId(); - + } + if (obj instanceof EqualById) { + return ((EqualById) obj).getId().equals(getId()); + } return false; } - } diff --git a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByJavaDefault.java b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByJavaDefault.java index 04a81865c6..b312845b61 100644 --- a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByJavaDefault.java +++ b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByJavaDefault.java @@ -30,9 +30,7 @@ public class EqualByJavaDefault implements Cloneable{ this.email = email; } - public Object clone() throws - CloneNotSupportedException - { + public Object clone() throws CloneNotSupportedException { return super.clone(); } } diff --git a/persistence-modules/java-jpa-3/src/test/java/com/baeldung/jpa/equality/EqualityUnitTest.java b/persistence-modules/java-jpa-3/src/test/java/com/baeldung/jpa/equality/EqualityUnitTest.java index c672c9e460..03ac11b6fd 100644 --- a/persistence-modules/java-jpa-3/src/test/java/com/baeldung/jpa/equality/EqualityUnitTest.java +++ b/persistence-modules/java-jpa-3/src/test/java/com/baeldung/jpa/equality/EqualityUnitTest.java @@ -71,4 +71,4 @@ public class EqualityUnitTest { Assert.assertEquals(object1, object2); Assert.assertNotEquals(object1.getId(), object2.getId()); } -} \ No newline at end of file +} From 18d7fc0bdc5b9b6b7f3de538a0a91485008df700 Mon Sep 17 00:00:00 2001 From: andrebrowne <42154231+andrebrowne@users.noreply.github.com> Date: Sat, 8 Aug 2020 21:05:32 -0400 Subject: [PATCH 052/156] BAEL-4077 Fixup styling --- persistence-modules/java-jpa-3/pom.xml | 56 ------------------- .../jpa/equality/EqualByBusinessKey.java | 14 +++-- .../com/baeldung/jpa/equality/EqualById.java | 13 +++-- .../jpa/equality/EqualByJavaDefault.java | 4 +- .../jpa/equality/EqualityUnitTest.java | 2 +- 5 files changed, 17 insertions(+), 72 deletions(-) diff --git a/persistence-modules/java-jpa-3/pom.xml b/persistence-modules/java-jpa-3/pom.xml index 562f337215..da18ae3046 100644 --- a/persistence-modules/java-jpa-3/pom.xml +++ b/persistence-modules/java-jpa-3/pom.xml @@ -66,62 +66,6 @@ <compilerArgument>-proc:none</compilerArgument> </configuration> </plugin> - <plugin> - <groupId>org.bsc.maven</groupId> - <artifactId>maven-processor-plugin</artifactId> - <version>${maven-processor-plugin.version}</version> - <executions> - <execution> - <id>process</id> - <goals> - <goal>process</goal> - </goals> - <phase>generate-sources</phase> - <configuration> - <outputDirectory>target/metamodel</outputDirectory> - <processors> - <processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor> - </processors> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>build-helper-maven-plugin</artifactId> - <version>${build-helper-maven-plugin.version}</version> - <executions> - <execution> - <id>add-source</id> - <phase>generate-sources</phase> - <goals> - <goal>add-source</goal> - </goals> - <configuration> - <sources> - <source>target/metamodel</source> - <source>${project.build.directory}/generated-sources/java/</source> - </sources> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>com.mysema.maven</groupId> - <artifactId>apt-maven-plugin</artifactId> - <version>1.1.3</version> - <executions> - <execution> - <goals> - <goal>process</goal> - </goals> - <configuration> - <outputDirectory>target/generated-sources/java</outputDirectory> - <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor> - </configuration> - </execution> - </executions> - </plugin> </plugins> </build> diff --git a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByBusinessKey.java b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByBusinessKey.java index 3e34f97d77..655db4e575 100644 --- a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByBusinessKey.java +++ b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByBusinessKey.java @@ -40,15 +40,17 @@ public class EqualByBusinessKey { @Override public boolean equals(Object obj) { - if (this == obj) + if (this == obj) { return true; - if (obj == null) + } + if (obj == null) { return false; - if (obj instanceof EqualByBusinessKey) - if (((EqualByBusinessKey) obj).getEmail() == getEmail()) + } + if (obj instanceof EqualByBusinessKey) { + if (((EqualByBusinessKey) obj).getEmail() == getEmail()) { return true; - + } + } return false; } - } diff --git a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualById.java b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualById.java index f29a152f3e..cebfb5fcec 100644 --- a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualById.java +++ b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualById.java @@ -41,14 +41,15 @@ public class EqualById { @Override public boolean equals(Object obj) { - if (this == obj) + if (this == obj) { return true; - if (obj == null) + } + if (obj == null) { return false; - if (obj instanceof EqualById) - return ((EqualById) obj).getId() == getId(); - + } + if (obj instanceof EqualById) { + return ((EqualById) obj).getId().equals(getId()); + } return false; } - } diff --git a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByJavaDefault.java b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByJavaDefault.java index 04a81865c6..b312845b61 100644 --- a/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByJavaDefault.java +++ b/persistence-modules/java-jpa-3/src/main/java/com/baeldung/jpa/equality/EqualByJavaDefault.java @@ -30,9 +30,7 @@ public class EqualByJavaDefault implements Cloneable{ this.email = email; } - public Object clone() throws - CloneNotSupportedException - { + public Object clone() throws CloneNotSupportedException { return super.clone(); } } diff --git a/persistence-modules/java-jpa-3/src/test/java/com/baeldung/jpa/equality/EqualityUnitTest.java b/persistence-modules/java-jpa-3/src/test/java/com/baeldung/jpa/equality/EqualityUnitTest.java index c672c9e460..03ac11b6fd 100644 --- a/persistence-modules/java-jpa-3/src/test/java/com/baeldung/jpa/equality/EqualityUnitTest.java +++ b/persistence-modules/java-jpa-3/src/test/java/com/baeldung/jpa/equality/EqualityUnitTest.java @@ -71,4 +71,4 @@ public class EqualityUnitTest { Assert.assertEquals(object1, object2); Assert.assertNotEquals(object1.getId(), object2.getId()); } -} \ No newline at end of file +} From 164957ad0ab5baf72a686ef26851b15f6aaeb161 Mon Sep 17 00:00:00 2001 From: Ali Dehghani <ali.dehghani.g@gmail.com> Date: Sun, 9 Aug 2020 11:38:50 +0430 Subject: [PATCH 053/156] Improvement for Spring Boot Exit Codes --- ...ExceptionExitCodeGeneratorApplication.java | 21 +++++++++++++++++++ .../FailedToStartException.java | 11 ++++++++++ 2 files changed, 32 insertions(+) create mode 100644 spring-boot-modules/spring-boot-basic-customization/src/main/java/com/baeldung/exitcode/exceptionexitgen/ExceptionExitCodeGeneratorApplication.java create mode 100644 spring-boot-modules/spring-boot-basic-customization/src/main/java/com/baeldung/exitcode/exceptionexitgen/FailedToStartException.java diff --git a/spring-boot-modules/spring-boot-basic-customization/src/main/java/com/baeldung/exitcode/exceptionexitgen/ExceptionExitCodeGeneratorApplication.java b/spring-boot-modules/spring-boot-basic-customization/src/main/java/com/baeldung/exitcode/exceptionexitgen/ExceptionExitCodeGeneratorApplication.java new file mode 100644 index 0000000000..a4ccb61dbb --- /dev/null +++ b/spring-boot-modules/spring-boot-basic-customization/src/main/java/com/baeldung/exitcode/exceptionexitgen/ExceptionExitCodeGeneratorApplication.java @@ -0,0 +1,21 @@ +package com.baeldung.exitcode.exceptionexitgen; + +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; + +@SpringBootApplication +public class ExceptionExitCodeGeneratorApplication { + + public static void main(String[] args) { + SpringApplication.run(ExceptionExitCodeGeneratorApplication.class, args); + } + + @Bean + CommandLineRunner failApplication() { + return args -> { + throw new FailedToStartException(); + }; + } +} diff --git a/spring-boot-modules/spring-boot-basic-customization/src/main/java/com/baeldung/exitcode/exceptionexitgen/FailedToStartException.java b/spring-boot-modules/spring-boot-basic-customization/src/main/java/com/baeldung/exitcode/exceptionexitgen/FailedToStartException.java new file mode 100644 index 0000000000..04ac553153 --- /dev/null +++ b/spring-boot-modules/spring-boot-basic-customization/src/main/java/com/baeldung/exitcode/exceptionexitgen/FailedToStartException.java @@ -0,0 +1,11 @@ +package com.baeldung.exitcode.exceptionexitgen; + +import org.springframework.boot.ExitCodeGenerator; + +public class FailedToStartException extends RuntimeException implements ExitCodeGenerator { + + @Override + public int getExitCode() { + return 127; + } +} From 2453a731ca25192bb116554faf1d3cb133f33760 Mon Sep 17 00:00:00 2001 From: "amit.pandey" <amit.pandey2103@gmail.com> Date: Sun, 9 Aug 2020 19:35:21 +0530 Subject: [PATCH 054/156] make folder name and artifactId same --- jhipster-5/bookstore-monolith/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jhipster-5/bookstore-monolith/pom.xml b/jhipster-5/bookstore-monolith/pom.xml index 03395e47ed..c965fd962d 100644 --- a/jhipster-5/bookstore-monolith/pom.xml +++ b/jhipster-5/bookstore-monolith/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.baeldung.jhipster5</groupId> - <artifactId>bookstore</artifactId> + <artifactId>bookstore-monolith</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>Bookstore</name> From e23d7f8efb72c694509d3f05c6114bce2b784ba7 Mon Sep 17 00:00:00 2001 From: Trixi Turny <writetotrixi@gmail.com> Date: Sun, 9 Aug 2020 18:46:32 +0100 Subject: [PATCH 055/156] BAEL-4321 demo app for yaml to pojo --- configuration/yaml-to-pojo/README.md | 9 ++++ configuration/yaml-to-pojo/pom.xml | 54 +++++++++++++++++++ .../java/yamltopojo/demo/DemoApplication.java | 16 ++++++ .../demo/config/TshirtSizeConfig.java | 27 ++++++++++ .../demo/controller/TshirtSizeController.java | 22 ++++++++ .../demo/service/SizeConverterImpl.java | 22 ++++++++ .../demo/service/SizeConverterService.java | 8 +++ .../src/main/resources/application.yml | 30 +++++++++++ .../yamltopojo/demo/DemoApplicationTests.java | 13 +++++ .../controller/TshirtSizeControllerTest.java | 38 +++++++++++++ 10 files changed, 239 insertions(+) create mode 100644 configuration/yaml-to-pojo/README.md create mode 100644 configuration/yaml-to-pojo/pom.xml create mode 100644 configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/DemoApplication.java create mode 100644 configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/config/TshirtSizeConfig.java create mode 100644 configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/controller/TshirtSizeController.java create mode 100644 configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/service/SizeConverterImpl.java create mode 100644 configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/service/SizeConverterService.java create mode 100644 configuration/yaml-to-pojo/src/main/resources/application.yml create mode 100644 configuration/yaml-to-pojo/src/test/java/yamltopojo/demo/DemoApplicationTests.java create mode 100644 configuration/yaml-to-pojo/src/test/java/yamltopojo/demo/controller/TshirtSizeControllerTest.java diff --git a/configuration/yaml-to-pojo/README.md b/configuration/yaml-to-pojo/README.md new file mode 100644 index 0000000000..9dba74a7e5 --- /dev/null +++ b/configuration/yaml-to-pojo/README.md @@ -0,0 +1,9 @@ +This is a demo application for using YAML configuration for defining values in a POJO class. + +The application has an endpoint to provide T-shirt size conversion for label and countrycode. + +If you run this service locally you can call this endpoint on: + +`localhost:8080/convertSize?label=M&countryCode=fr` + +It should return the size as int. \ No newline at end of file diff --git a/configuration/yaml-to-pojo/pom.xml b/configuration/yaml-to-pojo/pom.xml new file mode 100644 index 0000000000..f6b55718be --- /dev/null +++ b/configuration/yaml-to-pojo/pom.xml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-parent</artifactId> + <version>2.3.2.RELEASE</version> + <relativePath/> <!-- lookup parent from repository --> + </parent> + <groupId>yaml-to-pojo</groupId> + <artifactId>demo</artifactId> + <version>0.0.1-SNAPSHOT</version> + <name>demo</name> + <description>Demo project for YAML into POJO</description> + + <properties> + <java.version>1.8</java.version> + </properties> + + <dependencies> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter</artifactId> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>org.junit.vintage</groupId> + <artifactId>junit-vintage-engine</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + <version>RELEASE</version> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + </plugin> + </plugins> + </build> + +</project> diff --git a/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/DemoApplication.java b/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/DemoApplication.java new file mode 100644 index 0000000000..ec8df793c2 --- /dev/null +++ b/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/DemoApplication.java @@ -0,0 +1,16 @@ +package yamltopojo.demo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import yamltopojo.demo.config.TshirtSizeConfig; + +@SpringBootApplication +@EnableConfigurationProperties(TshirtSizeConfig.class) +public class DemoApplication { + + public static void main(String[] args) { + SpringApplication.run(DemoApplication.class, args); + } + +} diff --git a/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/config/TshirtSizeConfig.java b/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/config/TshirtSizeConfig.java new file mode 100644 index 0000000000..8f8d2e5b39 --- /dev/null +++ b/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/config/TshirtSizeConfig.java @@ -0,0 +1,27 @@ +package yamltopojo.demo.config; + +import org.springframework.boot.context.properties.ConfigurationProperties; + +import java.util.Map; + +@ConfigurationProperties(prefix = "t-shirt-size") +public class TshirtSizeConfig { + + private final Map<String, Integer> simpleMapping; + + private final Map<String, Map<String, Integer>> complexMapping; + + + public TshirtSizeConfig(Map<String, Integer> simpleMapping, Map<String, Map<String, Integer>> complexMapping) { + this.simpleMapping = simpleMapping; + this.complexMapping = complexMapping; + } + + public Map<String, Integer> getSimpleMapping() { + return simpleMapping; + } + + public Map<String, Map<String, Integer>> getComplexMapping() { + return complexMapping; + } +} diff --git a/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/controller/TshirtSizeController.java b/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/controller/TshirtSizeController.java new file mode 100644 index 0000000000..d555549bd4 --- /dev/null +++ b/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/controller/TshirtSizeController.java @@ -0,0 +1,22 @@ +package yamltopojo.demo.controller; + +import org.springframework.web.bind.annotation.*; +import yamltopojo.demo.service.SizeConverterService; + +@RestController +@RequestMapping(value = "/") +public class TshirtSizeController { + + private SizeConverterService service; + + public TshirtSizeController(SizeConverterService service) { + this.service = service; + } + + @RequestMapping(value ="convertSize", method = RequestMethod.GET) + public int convertSize(@RequestParam(value = "label") final String label, + @RequestParam(value = "countryCode", required = false) final String countryCode) { + return service.convertSize(label, countryCode); + } + +} diff --git a/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/service/SizeConverterImpl.java b/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/service/SizeConverterImpl.java new file mode 100644 index 0000000000..8f95e4253b --- /dev/null +++ b/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/service/SizeConverterImpl.java @@ -0,0 +1,22 @@ +package yamltopojo.demo.service; + +import org.springframework.stereotype.Service; +import yamltopojo.demo.config.TshirtSizeConfig; + + +@Service +public class SizeConverterImpl implements SizeConverterService { + + private TshirtSizeConfig tshirtSizeConfig; + + public SizeConverterImpl(TshirtSizeConfig tshirtSizeConfig) { + this.tshirtSizeConfig = tshirtSizeConfig; + } + + public int convertSize(String label, String countryCode) { + if(countryCode == null) { + return tshirtSizeConfig.getSimpleMapping().get(label); + } + return tshirtSizeConfig.getComplexMapping().get(label).get(countryCode); + } +} diff --git a/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/service/SizeConverterService.java b/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/service/SizeConverterService.java new file mode 100644 index 0000000000..3e24681cbe --- /dev/null +++ b/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/service/SizeConverterService.java @@ -0,0 +1,8 @@ +package yamltopojo.demo.service; + + +public interface SizeConverterService { + + int convertSize(String label, String countryCode); + +} diff --git a/configuration/yaml-to-pojo/src/main/resources/application.yml b/configuration/yaml-to-pojo/src/main/resources/application.yml new file mode 100644 index 0000000000..edd200389e --- /dev/null +++ b/configuration/yaml-to-pojo/src/main/resources/application.yml @@ -0,0 +1,30 @@ +t-shirt-size: + simple-mapping: + XS: 6 + S: 8 + M: 10 + L: 12 + XL: 14 + + + complex-mapping: + XS: + uk: 6 + fr: 34 + us: 2 + S: + uk: 8 + fr: 36 + us: 4 + M: + uk: 10 + fr: 38 + us: 6 + L: + uk: 12 + fr: 40 + us: 8 + XL: + uk: 14 + fr: 42 + us: 10 diff --git a/configuration/yaml-to-pojo/src/test/java/yamltopojo/demo/DemoApplicationTests.java b/configuration/yaml-to-pojo/src/test/java/yamltopojo/demo/DemoApplicationTests.java new file mode 100644 index 0000000000..dfe980c05c --- /dev/null +++ b/configuration/yaml-to-pojo/src/test/java/yamltopojo/demo/DemoApplicationTests.java @@ -0,0 +1,13 @@ +package yamltopojo.demo; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class DemoApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/configuration/yaml-to-pojo/src/test/java/yamltopojo/demo/controller/TshirtSizeControllerTest.java b/configuration/yaml-to-pojo/src/test/java/yamltopojo/demo/controller/TshirtSizeControllerTest.java new file mode 100644 index 0000000000..3c1ef6dff5 --- /dev/null +++ b/configuration/yaml-to-pojo/src/test/java/yamltopojo/demo/controller/TshirtSizeControllerTest.java @@ -0,0 +1,38 @@ +package yamltopojo.demo.controller; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import yamltopojo.demo.service.SizeConverterService; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.when; + +@ExtendWith(MockitoExtension.class) +class TshirtSizeControllerTest { + + @Mock + private SizeConverterService service; + + @InjectMocks + private TshirtSizeController tested; + + @Test + void convertSize() { + + // Given + String label = "S"; + String countryCode = "fr"; + int result = 36; + + // + when(service.convertSize(label, countryCode)).thenReturn(result); + int actual = tested.convertSize(label, countryCode); + + // Then + assertEquals(actual, result); + + } +} \ No newline at end of file From e7d193055062b58f5ac91235d79b91042dd652eb Mon Sep 17 00:00:00 2001 From: johnA1331 <53036378+johnA1331@users.noreply.github.com> Date: Tue, 11 Aug 2020 11:19:00 +0800 Subject: [PATCH 056/156] Update README.md --- java-numbers-3/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java-numbers-3/README.md b/java-numbers-3/README.md index ab0bbd995d..2cec5d52cd 100644 --- a/java-numbers-3/README.md +++ b/java-numbers-3/README.md @@ -4,7 +4,7 @@ This module contains articles about numbers in Java. ### Relevant Articles: -- [Generating Random Numbers](https://www.baeldung.com/java-generating-random-numbers) +- [Generating Random Numbers in Java](https://www.baeldung.com/java-generating-random-numbers) - [Convert Double to Long in Java](https://www.baeldung.com/java-convert-double-long) - [Check for null Before Calling Parse in Double.parseDouble](https://www.baeldung.com/java-check-null-parse-double) - [Generating Random Numbers in a Range in Java](https://www.baeldung.com/java-generating-random-numbers-in-range) From fffbcfc2c082b6f7b1469864b47c9316ca185ab5 Mon Sep 17 00:00:00 2001 From: johnA1331 <53036378+johnA1331@users.noreply.github.com> Date: Tue, 11 Aug 2020 11:24:33 +0800 Subject: [PATCH 057/156] Update README.md --- core-java-modules/core-java-9-new-features/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/core-java-modules/core-java-9-new-features/README.md b/core-java-modules/core-java-9-new-features/README.md index d10d0aad2d..5af069c6f0 100644 --- a/core-java-modules/core-java-9-new-features/README.md +++ b/core-java-modules/core-java-9-new-features/README.md @@ -14,3 +14,4 @@ This module contains articles about core Java features that have been introduced - [Java 9 Reactive Streams](https://www.baeldung.com/java-9-reactive-streams) - [Multi-Release JAR Files with Maven](https://www.baeldung.com/maven-multi-release-jars) - [The Difference between RxJava API and the Java 9 Flow API](https://www.baeldung.com/rxjava-vs-java-flow-api) +- [How to Get a Name of a Method Being Executed?](https://www.baeldung.com/java-name-of-executing-method) From 03229bced14a817ff5f865143a9c7673fbbdadf4 Mon Sep 17 00:00:00 2001 From: johnA1331 <53036378+johnA1331@users.noreply.github.com> Date: Tue, 11 Aug 2020 11:40:49 +0800 Subject: [PATCH 058/156] Update README.md --- spring-boot-modules/spring-boot-mvc-2/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-boot-modules/spring-boot-mvc-2/README.md b/spring-boot-modules/spring-boot-mvc-2/README.md index c42730f9cc..f9becb721f 100644 --- a/spring-boot-modules/spring-boot-mvc-2/README.md +++ b/spring-boot-modules/spring-boot-mvc-2/README.md @@ -11,4 +11,5 @@ This module contains articles about Spring Web MVC in Spring Boot projects. - [Testing REST with multiple MIME types](https://www.baeldung.com/testing-rest-api-with-multiple-media-types) - [Testing Web APIs with Postman Collections](https://www.baeldung.com/postman-testing-collections) - [Spring Boot Consuming and Producing JSON](https://www.baeldung.com/spring-boot-json) +- [Serve Static Resources with Spring](https://www.baeldung.com/spring-mvc-static-resources) - More articles: [[prev -->]](/spring-boot-modules/spring-boot-mvc) From ccaeb55319f22eb457a5450fccb07cc5c9f58c28 Mon Sep 17 00:00:00 2001 From: johnA1331 <53036378+johnA1331@users.noreply.github.com> Date: Tue, 11 Aug 2020 12:32:27 +0800 Subject: [PATCH 059/156] Update README.md --- reactive-systems/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reactive-systems/README.md b/reactive-systems/README.md index 0558dd141e..b23f4e4dc4 100644 --- a/reactive-systems/README.md +++ b/reactive-systems/README.md @@ -4,4 +4,4 @@ This module contains services for article about reactive systems in Java. Please ### Relevant Articles -- [Reactive Systems in Java](https://www.baeldung.com/) +- [Reactive Systems in Java](https://www.baeldung.com/java-reactive-systems) From bb267b5d64eef65c5fa6adf789c70a32f1d8d05e Mon Sep 17 00:00:00 2001 From: johnA1331 <53036378+johnA1331@users.noreply.github.com> Date: Tue, 11 Aug 2020 12:45:54 +0800 Subject: [PATCH 060/156] Update README.md --- algorithms-searching/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/algorithms-searching/README.md b/algorithms-searching/README.md index aed3c7d21f..260a4ea714 100644 --- a/algorithms-searching/README.md +++ b/algorithms-searching/README.md @@ -11,3 +11,4 @@ This module contains articles about searching algorithms. - [Monte Carlo Tree Search for Tic-Tac-Toe Game](https://www.baeldung.com/java-monte-carlo-tree-search) - [Range Search Algorithm in Java](https://www.baeldung.com/java-range-search) - [Fast Pattern Matching of Strings Using Suffix Tree](https://www.baeldung.com/java-pattern-matching-suffix-tree) +- [Topological Sort of Directed Acyclic Graph](https://www.baeldung.com/cs/dag-topological-sort) From 009308131f46a10537245afc853eafb10b3603cc Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Tue, 11 Aug 2020 12:17:02 +0530 Subject: [PATCH 061/156] JAVA-2344: Update "Dockerizing with Jib" article --- jib/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jib/pom.xml b/jib/pom.xml index 1d7413cc18..15e7e44e7c 100644 --- a/jib/pom.xml +++ b/jib/pom.xml @@ -40,6 +40,6 @@ </build> <properties> - <jib-maven-plugin.version>0.9.10</jib-maven-plugin.version> + <jib-maven-plugin.version>2.5.0</jib-maven-plugin.version> </properties> </project> From b09abfc0bf564d74a10ba11be2e25bc5080da630 Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Tue, 11 Aug 2020 13:05:01 +0530 Subject: [PATCH 062/156] JAVA-1089: Move the OAuth related lesson code from spring-boot-modules/spring-boot-security --- .../SpringBootOAuth2ResourceApplication.java | 30 ------- ...ingBootAuthorizationServerApplication.java | 47 ---------- .../config/AuthenticationMananagerConfig.java | 18 ---- .../config/AuthorizationServerConfig.java | 46 ---------- .../config/WebSecurityConfiguration.java | 17 ---- .../SpringBootOAuth2SsoApplication.java | 19 ---- ...figAuthorizationServerIntegrationTest.java | 89 ------------------- ...figAuthorizationServerIntegrationTest.java | 32 ------- .../OAuth2IntegrationTestSupport.java | 53 ----------- 9 files changed, 351 deletions(-) delete mode 100644 spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2resource/SpringBootOAuth2ResourceApplication.java delete mode 100644 spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/SpringBootAuthorizationServerApplication.java delete mode 100644 spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/AuthenticationMananagerConfig.java delete mode 100644 spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/AuthorizationServerConfig.java delete mode 100644 spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/WebSecurityConfiguration.java delete mode 100644 spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2sso/SpringBootOAuth2SsoApplication.java delete mode 100644 spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/CustomConfigAuthorizationServerIntegrationTest.java delete mode 100644 spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/DefaultConfigAuthorizationServerIntegrationTest.java delete mode 100644 spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/OAuth2IntegrationTestSupport.java diff --git a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2resource/SpringBootOAuth2ResourceApplication.java b/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2resource/SpringBootOAuth2ResourceApplication.java deleted file mode 100644 index 56231a28bd..0000000000 --- a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2resource/SpringBootOAuth2ResourceApplication.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.baeldung.springbootsecurity.oauth2resource; - -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -@EnableResourceServer -@SpringBootApplication(scanBasePackages = "com.baeldung.springbootsecurity.oauth2resource") -public class SpringBootOAuth2ResourceApplication { - - public static void main(String[] args) { - new SpringApplicationBuilder() - .profiles("resource") - .sources(SpringBootOAuth2ResourceApplication.class) - .build() - .run(args); - } - - @RestController - class SecuredResourceController { - - @GetMapping("/securedResource") - public String securedResource() { - return "Baeldung Secured Resource OK"; - } - - } -} diff --git a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/SpringBootAuthorizationServerApplication.java b/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/SpringBootAuthorizationServerApplication.java deleted file mode 100644 index 04f046ff78..0000000000 --- a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/SpringBootAuthorizationServerApplication.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.baeldung.springbootsecurity.oauth2server; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.annotation.CurrentSecurityContext; -import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer; -import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.security.Principal; - -@EnableResourceServer -@EnableAuthorizationServer -@SpringBootApplication(scanBasePackages = "com.baeldung.springbootsecurity.oauth2server") -public class SpringBootAuthorizationServerApplication { - - private static final Logger logger = LoggerFactory.getLogger(SpringBootAuthorizationServerApplication.class); - - public static void main(String[] args) { - SpringApplication.run(SpringBootAuthorizationServerApplication.class, args); - } - - @RestController - class UserController { - - @GetMapping("/user") - public Principal user(Principal user) { - return user; - } - - @GetMapping("/authentication") - public Object getAuthentication(@CurrentSecurityContext(expression = "authentication") Authentication authentication) { - logger.info("authentication -> {}", authentication); - return authentication.getDetails(); - } - - @GetMapping("/principal") - public String getPrincipal(@CurrentSecurityContext(expression = "authentication.principal") Principal principal) { - logger.info("principal -> {}", principal); - return principal.getName(); - } - } -} diff --git a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/AuthenticationMananagerConfig.java b/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/AuthenticationMananagerConfig.java deleted file mode 100644 index 2b4135f36d..0000000000 --- a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/AuthenticationMananagerConfig.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.baeldung.springbootsecurity.oauth2server.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; - -@Configuration -@Profile("authz") -public class AuthenticationMananagerConfig extends WebSecurityConfigurerAdapter { - - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } -} \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/AuthorizationServerConfig.java b/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/AuthorizationServerConfig.java deleted file mode 100644 index 6e21987a89..0000000000 --- a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/AuthorizationServerConfig.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.baeldung.springbootsecurity.oauth2server.config; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer; -import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter; -import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer; - -@Configuration -@Profile("authz") -public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter { - - @Autowired - private AuthenticationManager authenticationManager; - - @Override - public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception { - endpoints.authenticationManager(authenticationManager); - } - - @Override - public void configure(ClientDetailsServiceConfigurer clients) throws Exception { - clients - .inMemory() - .withClient("baeldung") - .secret(passwordEncoder().encode("baeldung")) - .authorizedGrantTypes("client_credentials", "password", "authorization_code") - .scopes("openid", "read") - .autoApprove(true) - .and() - .withClient("baeldung-admin") - .secret(passwordEncoder().encode("baeldung")) - .authorizedGrantTypes("authorization_code", "client_credentials", "refresh_token") - .scopes("read", "write") - .autoApprove(true); - } - - @Bean - public BCryptPasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(); - } -} diff --git a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/WebSecurityConfiguration.java b/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/WebSecurityConfiguration.java deleted file mode 100644 index 3a8c073870..0000000000 --- a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2server/config/WebSecurityConfiguration.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.baeldung.springbootsecurity.oauth2server.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; - -@Configuration -@Profile("!authz") -public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter { - - @Bean - public AuthenticationManager customAuthenticationManager() throws Exception { - return authenticationManager(); - } -} diff --git a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2sso/SpringBootOAuth2SsoApplication.java b/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2sso/SpringBootOAuth2SsoApplication.java deleted file mode 100644 index 342c246e66..0000000000 --- a/spring-boot-modules/spring-boot-security/src/main/java/com/baeldung/springbootsecurity/oauth2sso/SpringBootOAuth2SsoApplication.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.baeldung.springbootsecurity.oauth2sso; - -import org.springframework.boot.autoconfigure.SpringBootApplication; - -import org.springframework.boot.autoconfigure.security.oauth2.client.EnableOAuth2Sso; -import org.springframework.boot.builder.SpringApplicationBuilder; - -@EnableOAuth2Sso -@SpringBootApplication(scanBasePackages = "com.baeldung.springbootsecurity.oauth2sso") -public class SpringBootOAuth2SsoApplication { - - public static void main(String[] args) { - new SpringApplicationBuilder() - .profiles("sso") - .sources(SpringBootOAuth2SsoApplication.class) - .build() - .run(args); - } -} diff --git a/spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/CustomConfigAuthorizationServerIntegrationTest.java b/spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/CustomConfigAuthorizationServerIntegrationTest.java deleted file mode 100644 index 104e115b18..0000000000 --- a/spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/CustomConfigAuthorizationServerIntegrationTest.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.baeldung.springbootsecurity.oauth2server; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.web.server.LocalServerPort; -import org.springframework.security.oauth2.client.OAuth2RestTemplate; -import org.springframework.security.oauth2.client.resource.OAuth2AccessDeniedException; -import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsResourceDetails; -import org.springframework.security.oauth2.common.OAuth2AccessToken; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.junit4.SpringRunner; - -import java.net.URL; -import java.util.regex.Pattern; - -import static java.util.Collections.singletonList; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; - -@RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = RANDOM_PORT, classes = SpringBootAuthorizationServerApplication.class) -@ActiveProfiles("authz") -public class CustomConfigAuthorizationServerIntegrationTest extends OAuth2IntegrationTestSupport { - - @LocalServerPort - private int port; - - @Before - public void setUp() throws Exception { - base = new URL("http://localhost:" + port); - } - - @Test - public void givenOAuth2Context_whenAccessTokenIsRequested_ThenAccessTokenValueIsNotNull() { - ClientCredentialsResourceDetails resourceDetails = getClientCredentialsResourceDetails("baeldung", singletonList("read")); - OAuth2RestTemplate restTemplate = getOAuth2RestTemplate(resourceDetails); - - OAuth2AccessToken accessToken = restTemplate.getAccessToken(); - - assertNotNull(accessToken); - } - - @Test - public void givenOAuth2Context_whenAccessingAuthentication_ThenRespondTokenDetails() { - ClientCredentialsResourceDetails resourceDetails = getClientCredentialsResourceDetails("baeldung", singletonList("read")); - OAuth2RestTemplate restTemplate = getOAuth2RestTemplate(resourceDetails); - - String authentication = executeGetRequest(restTemplate, "/authentication"); - - Pattern pattern = Pattern.compile("\\{\"remoteAddress\":\".*" + - "\",\"sessionId\":null,\"tokenValue\":\".*" + - "\",\"tokenType\":\"Bearer\",\"decodedDetails\":null}"); - assertTrue("authentication", pattern.matcher(authentication).matches()); - } - - @Test - public void givenOAuth2Context_whenAccessingPrincipal_ThenRespondBaeldung() { - ClientCredentialsResourceDetails resourceDetails = getClientCredentialsResourceDetails("baeldung", singletonList("read")); - OAuth2RestTemplate restTemplate = getOAuth2RestTemplate(resourceDetails); - - String principal = executeGetRequest(restTemplate, "/principal"); - - assertEquals("baeldung", principal); - } - - @Test(expected = OAuth2AccessDeniedException.class) - public void givenOAuth2Context_whenAccessTokenIsRequestedWithInvalidException_ThenExceptionIsThrown() { - ClientCredentialsResourceDetails resourceDetails = getClientCredentialsResourceDetails("baeldung", singletonList("write")); - OAuth2RestTemplate restTemplate = getOAuth2RestTemplate(resourceDetails); - - restTemplate.getAccessToken(); - } - - @Test - public void givenOAuth2Context_whenAccessTokenIsRequestedByClientWithWriteScope_ThenAccessTokenIsNotNull() { - ClientCredentialsResourceDetails resourceDetails = getClientCredentialsResourceDetails("baeldung-admin", singletonList("write")); - OAuth2RestTemplate restTemplate = getOAuth2RestTemplate(resourceDetails); - - OAuth2AccessToken accessToken = restTemplate.getAccessToken(); - - assertNotNull(accessToken); - } - -} - diff --git a/spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/DefaultConfigAuthorizationServerIntegrationTest.java b/spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/DefaultConfigAuthorizationServerIntegrationTest.java deleted file mode 100644 index 4d7b449380..0000000000 --- a/spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/DefaultConfigAuthorizationServerIntegrationTest.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.baeldung.springbootsecurity.oauth2server; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.security.oauth2.client.OAuth2RestTemplate; -import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsResourceDetails; -import org.springframework.security.oauth2.common.OAuth2AccessToken; -import org.springframework.test.context.junit4.SpringRunner; - -import static java.util.Arrays.asList; -import static org.junit.Assert.assertNotNull; -import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; - -@RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = RANDOM_PORT, classes = SpringBootAuthorizationServerApplication.class, - properties = { "security.oauth2.client.client-id=client", "security.oauth2.client.client-secret=baeldung" }) -public class DefaultConfigAuthorizationServerIntegrationTest extends OAuth2IntegrationTestSupport { - - @Test - public void givenOAuth2Context_whenAccessTokenIsRequested_ThenAccessTokenValueIsNotNull() { - ClientCredentialsResourceDetails resourceDetails = getClientCredentialsResourceDetails("client", asList("read", "write")); - OAuth2RestTemplate restTemplate = getOAuth2RestTemplate(resourceDetails); - - OAuth2AccessToken accessToken = restTemplate.getAccessToken(); - - assertNotNull(accessToken); - - } - -} - diff --git a/spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/OAuth2IntegrationTestSupport.java b/spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/OAuth2IntegrationTestSupport.java deleted file mode 100644 index a005965998..0000000000 --- a/spring-boot-modules/spring-boot-security/src/test/java/com/baeldung/springbootsecurity/oauth2server/OAuth2IntegrationTestSupport.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.baeldung.springbootsecurity.oauth2server; - -import org.apache.commons.io.IOUtils; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.security.oauth2.client.DefaultOAuth2ClientContext; -import org.springframework.security.oauth2.client.OAuth2RestTemplate; -import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsResourceDetails; -import org.springframework.web.client.RequestCallback; -import org.springframework.web.client.ResponseExtractor; - -import java.net.URL; -import java.nio.charset.Charset; -import java.util.List; - -import static java.lang.String.format; -import static java.util.Collections.singletonList; -import static org.springframework.http.HttpMethod.GET; - -public class OAuth2IntegrationTestSupport { - - public static final ResponseExtractor<String> EXTRACT_BODY_AS_STRING = clientHttpResponse -> - IOUtils.toString(clientHttpResponse.getBody(), Charset.defaultCharset()); - private static final RequestCallback DO_NOTHING_CALLBACK = request -> { - }; - - @Value("${local.server.port}") - protected int port; - - protected URL base; - - protected ClientCredentialsResourceDetails getClientCredentialsResourceDetails(final String clientId, final List<String> scopes) { - ClientCredentialsResourceDetails resourceDetails = new ClientCredentialsResourceDetails(); - resourceDetails.setAccessTokenUri(format("http://localhost:%d/oauth/token", port)); - resourceDetails.setClientId(clientId); - resourceDetails.setClientSecret("baeldung"); - resourceDetails.setScope(scopes); - resourceDetails.setGrantType("client_credentials"); - return resourceDetails; - } - - protected OAuth2RestTemplate getOAuth2RestTemplate(final ClientCredentialsResourceDetails resourceDetails) { - DefaultOAuth2ClientContext clientContext = new DefaultOAuth2ClientContext(); - OAuth2RestTemplate restTemplate = new OAuth2RestTemplate(resourceDetails, clientContext); - restTemplate.setMessageConverters(singletonList(new MappingJackson2HttpMessageConverter())); - return restTemplate; - } - - protected String executeGetRequest(OAuth2RestTemplate restTemplate, String path) { - return restTemplate.execute(base.toString() + path, GET, DO_NOTHING_CALLBACK, EXTRACT_BODY_AS_STRING); - } - -} From 972db91cd9b8ceecc45da5044c8273df82e5cc7b Mon Sep 17 00:00:00 2001 From: johnA1331 <53036378+johnA1331@users.noreply.github.com> Date: Tue, 11 Aug 2020 18:38:42 +0800 Subject: [PATCH 063/156] Delete README.md --- maven-modules/maven-plugins/maven-enforcer/README.md | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 maven-modules/maven-plugins/maven-enforcer/README.md diff --git a/maven-modules/maven-plugins/maven-enforcer/README.md b/maven-modules/maven-plugins/maven-enforcer/README.md deleted file mode 100644 index 44d43050e7..0000000000 --- a/maven-modules/maven-plugins/maven-enforcer/README.md +++ /dev/null @@ -1,3 +0,0 @@ -### Relevant Articles: - -- [Maven Enforcer Plugin](https://www.baeldung.com/maven-enforcer-plugin) From 9e17f8f8a587884630e83d80ffdaab0232ed5739 Mon Sep 17 00:00:00 2001 From: johnA1331 <53036378+johnA1331@users.noreply.github.com> Date: Tue, 11 Aug 2020 19:09:19 +0800 Subject: [PATCH 064/156] Update README.md --- apache-cxf/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/apache-cxf/README.md b/apache-cxf/README.md index bedd19a91a..88edaf4e13 100644 --- a/apache-cxf/README.md +++ b/apache-cxf/README.md @@ -7,4 +7,3 @@ This module contains articles about Apache CXF - [Apache CXF Support for RESTful Web Services](https://www.baeldung.com/apache-cxf-rest-api) - [A Guide to Apache CXF with Spring](https://www.baeldung.com/apache-cxf-with-spring) - [Introduction to Apache CXF](https://www.baeldung.com/introduction-to-apache-cxf) -- [Server-Sent Events (SSE) In JAX-RS](https://www.baeldung.com/java-ee-jax-rs-sse) From be2e853fd3437caeb99b2a24ef66bf81d2e90b74 Mon Sep 17 00:00:00 2001 From: johnA1331 <53036378+johnA1331@users.noreply.github.com> Date: Tue, 11 Aug 2020 19:11:30 +0800 Subject: [PATCH 065/156] Create README.md --- apache-cxf/sse-jaxrs/README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 apache-cxf/sse-jaxrs/README.md diff --git a/apache-cxf/sse-jaxrs/README.md b/apache-cxf/sse-jaxrs/README.md new file mode 100644 index 0000000000..4d39560b46 --- /dev/null +++ b/apache-cxf/sse-jaxrs/README.md @@ -0,0 +1,3 @@ +### Relevant Articles: + +- [Server-Sent Events (SSE) In JAX-RS](https://www.baeldung.com/java-ee-jax-rs-sse) From f130f7fcbfd97272afd4362536d8b0d65d1ac255 Mon Sep 17 00:00:00 2001 From: johnA1331 <53036378+johnA1331@users.noreply.github.com> Date: Tue, 11 Aug 2020 19:34:04 +0800 Subject: [PATCH 066/156] Update README.md --- persistence-modules/spring-data-elasticsearch/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/persistence-modules/spring-data-elasticsearch/README.md b/persistence-modules/spring-data-elasticsearch/README.md index 9f68a25243..22126c2f00 100644 --- a/persistence-modules/spring-data-elasticsearch/README.md +++ b/persistence-modules/spring-data-elasticsearch/README.md @@ -6,7 +6,6 @@ - [Guide to Elasticsearch in Java](https://www.baeldung.com/elasticsearch-java) - [Geospatial Support in ElasticSearch](https://www.baeldung.com/elasticsearch-geo-spatial) - [A Simple Tagging Implementation with Elasticsearch](https://www.baeldung.com/elasticsearch-tagging) -- [Introduction to Spring Data Elasticsearch (evaluation)](https://www.baeldung.com/spring-data-elasticsearch-test-2) ### Build the Project with Tests Running ``` From 90feaa94ecb838a371571c228bfffb7bdc8b2367 Mon Sep 17 00:00:00 2001 From: johnA1331 <53036378+johnA1331@users.noreply.github.com> Date: Tue, 11 Aug 2020 19:40:24 +0800 Subject: [PATCH 067/156] Update README.md --- excelformula/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/excelformula/README.md b/excelformula/README.md index 86ddaba413..90826cabee 100644 --- a/excelformula/README.md +++ b/excelformula/README.md @@ -3,6 +3,6 @@ This module contains articles about Apache POI ### Relevant Articles: -- [Working with Microsoft Excel in Java](https://www.baeldung.com/java-microsoft-excel) + - [Read Excel Cell Value Rather Than Formula With Apache POI](https://www.baeldung.com/apache-poi-read-cell-value-formula) - [Upload and Display Excel Files with Spring MVC](https://www.baeldung.com/spring-mvc-excel-files) From 0ec048cf985e1eddad03107cbb8ca7b58451bdfc Mon Sep 17 00:00:00 2001 From: johnA1331 <53036378+johnA1331@users.noreply.github.com> Date: Tue, 11 Aug 2020 19:43:49 +0800 Subject: [PATCH 068/156] Update README.md --- excelformula/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/excelformula/README.md b/excelformula/README.md index 90826cabee..a43b3148be 100644 --- a/excelformula/README.md +++ b/excelformula/README.md @@ -4,5 +4,4 @@ This module contains articles about Apache POI ### Relevant Articles: -- [Read Excel Cell Value Rather Than Formula With Apache POI](https://www.baeldung.com/apache-poi-read-cell-value-formula) - [Upload and Display Excel Files with Spring MVC](https://www.baeldung.com/spring-mvc-excel-files) From fae529d8544070adfa0da731d8a80f8767d6bb9a Mon Sep 17 00:00:00 2001 From: johnA1331 <53036378+johnA1331@users.noreply.github.com> Date: Tue, 11 Aug 2020 19:45:09 +0800 Subject: [PATCH 069/156] Update README.md --- excelformula/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/excelformula/README.md b/excelformula/README.md index a43b3148be..24560525cd 100644 --- a/excelformula/README.md +++ b/excelformula/README.md @@ -3,5 +3,3 @@ This module contains articles about Apache POI ### Relevant Articles: - -- [Upload and Display Excel Files with Spring MVC](https://www.baeldung.com/spring-mvc-excel-files) From 6a662c10dfc573bbd38dbc26eda0710b70c05f8a Mon Sep 17 00:00:00 2001 From: johnA1331 <53036378+johnA1331@users.noreply.github.com> Date: Tue, 11 Aug 2020 19:49:05 +0800 Subject: [PATCH 070/156] Create README.md --- docker/docker-spring-boot/README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 docker/docker-spring-boot/README.md diff --git a/docker/docker-spring-boot/README.md b/docker/docker-spring-boot/README.md new file mode 100644 index 0000000000..78f13a3652 --- /dev/null +++ b/docker/docker-spring-boot/README.md @@ -0,0 +1,3 @@ +### Relevant Article: + +- [Creating Docker Images with Spring Boot](https://www.baeldung.com/spring-boot-docker-images) From 96502d8626ad700c89927e3e4efa896d4b332b12 Mon Sep 17 00:00:00 2001 From: Krzysztof Woyke <krzysztofwoyke@gmail.com> Date: Tue, 11 Aug 2020 15:09:34 +0200 Subject: [PATCH 071/156] JAVA-2380: Fix failing integration tests in the spring-data-jpa-enterprise --- .../src/main/java/com/baeldung/boot/Application.java | 4 ++-- .../src/main/java/com/baeldung/osiv/model/BasicUser.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/Application.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/Application.java index aaca760499..d9da2c53b6 100644 --- a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/Application.java +++ b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/boot/Application.java @@ -6,8 +6,8 @@ import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; @SpringBootApplication -@EnableJpaRepositories("com.baeldung") -@EntityScan("com.baeldung") +@EnableJpaRepositories("com.baeldung.boot") +@EntityScan("com.baeldung.boot") public class Application { public static void main(String[] args) { diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/osiv/model/BasicUser.java b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/osiv/model/BasicUser.java index 98f4e379d4..a4f8e4e5f2 100644 --- a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/osiv/model/BasicUser.java +++ b/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/osiv/model/BasicUser.java @@ -4,7 +4,7 @@ import javax.persistence.*; import java.util.Set; @Entity -@Table(name = "users") +@Table(name = "basic_users") public class BasicUser { @Id From ded13f14b22653a8448b62b731a28ce22110d912 Mon Sep 17 00:00:00 2001 From: Daniel Strmecki <daniel.strmecki@gmail.com> Date: Tue, 11 Aug 2020 19:29:46 +0200 Subject: [PATCH 072/156] Feature/bael 4280 diff between lists (#9600) * BAEL-4280: Initial commit for finding diff between lists * BAEL-4280: Format * BAEL-4280: Refactor * BAEL-4280: Refactor not to use private methods * BAEL-4280: Refactor based on editor comments * BAEL-4280: Review round 2 * BAEL-4280: Use assertj * BAEL-4280: Use assertj * BAEL-4280: Shorter names for tests * BAEL-4280: Remove HashSet as its not used anymore * BAEL-4280: Use containsExactlyInAnyOrder for Set example * BAEL-4280: Remove distinct method call * BAEL-4280: Move impl to test * BAEL-4280: Use containsExactlyInAnyOrder * BAEL-4280: Rename test methods --- .../core-java-collections-list-3/pom.xml | 6 ++ .../FindDifferencesBetweenListsUnitTest.java | 96 +++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 core-java-modules/core-java-collections-list-3/src/test/java/com/baeldung/list/difference/FindDifferencesBetweenListsUnitTest.java diff --git a/core-java-modules/core-java-collections-list-3/pom.xml b/core-java-modules/core-java-collections-list-3/pom.xml index 373190a130..e1cf645c8a 100644 --- a/core-java-modules/core-java-collections-list-3/pom.xml +++ b/core-java-modules/core-java-collections-list-3/pom.xml @@ -21,6 +21,12 @@ <artifactId>commons-collections4</artifactId> <version>${commons-collections4.version}</version> </dependency> + <dependency> + <groupId>com.google.guava</groupId> + <artifactId>guava</artifactId> + <version>${guava.version}</version> + <scope>compile</scope> + </dependency> <dependency> <groupId>org.assertj</groupId> <artifactId>assertj-core</artifactId> diff --git a/core-java-modules/core-java-collections-list-3/src/test/java/com/baeldung/list/difference/FindDifferencesBetweenListsUnitTest.java b/core-java-modules/core-java-collections-list-3/src/test/java/com/baeldung/list/difference/FindDifferencesBetweenListsUnitTest.java new file mode 100644 index 0000000000..ceeff5e442 --- /dev/null +++ b/core-java-modules/core-java-collections-list-3/src/test/java/com/baeldung/list/difference/FindDifferencesBetweenListsUnitTest.java @@ -0,0 +1,96 @@ +package com.baeldung.list.difference; + +import com.google.common.collect.Sets; +import org.apache.commons.collections4.CollectionUtils; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +import static org.junit.jupiter.api.Assertions.*; +import static org.assertj.core.api.Assertions.*; + +public class FindDifferencesBetweenListsUnitTest { + + private static final List<String> listOne = Arrays.asList("Jack", "Tom", "Sam", "John", "James", "Jack"); + private static final List<String> listTwo = Arrays.asList("Jack", "Daniel", "Sam", "Alan", "James", "George"); + + @Test + public void givenLists_whenUsingPlainJavaImpl_thenDifferencesAreFound() { + List<String> differences = new ArrayList<>(listOne); + differences.removeAll(listTwo); + assertEquals(2, differences.size()); + assertThat(differences).containsExactly("Tom", "John"); + } + + @Test + public void givenReverseLists_whenUsingPlainJavaImpl_thenDifferencesAreFound() { + List<String> differences = new ArrayList<>(listTwo); + differences.removeAll(listOne); + assertEquals(3, differences.size()); + assertThat(differences).containsExactly("Daniel", "Alan", "George"); + } + + @Test + public void givenLists_whenUsingJavaStreams_thenDifferencesAreFound() { + List<String> differences = listOne.stream() + .filter(element -> !listTwo.contains(element)) + .collect(Collectors.toList()); + assertEquals(2, differences.size()); + assertThat(differences).containsExactly("Tom", "John"); + } + + @Test + public void givenReverseLists_whenUsingJavaStreams_thenDifferencesAreFound() { + List<String> differences = listTwo.stream() + .filter(element -> !listOne.contains(element)) + .collect(Collectors.toList()); + assertEquals(3, differences.size()); + assertThat(differences).containsExactly("Daniel", "Alan", "George"); + } + + @Test + public void givenLists_whenUsingGoogleGuava_thenDifferencesAreFound() { + List<String> differences = new ArrayList<>(Sets.difference(Sets.newHashSet(listOne), Sets.newHashSet(listTwo))); + assertEquals(2, differences.size()); + assertThat(differences).containsExactlyInAnyOrder("Tom", "John"); + } + + @Test + public void givenReverseLists_whenUsingGoogleGuava_thenDifferencesAreFound() { + List<String> differences = new ArrayList<>(Sets.difference(Sets.newHashSet(listTwo), Sets.newHashSet(listOne))); + assertEquals(3, differences.size()); + assertThat(differences).containsExactlyInAnyOrder("Daniel", "Alan", "George"); + } + + @Test + public void givenLists_whenUsingApacheCommons_thenDifferencesAreFound() { + List<String> differences = new ArrayList<>((CollectionUtils.removeAll(listOne, listTwo))); + assertEquals(2, differences.size()); + assertThat(differences).containsExactly("Tom", "John"); + } + + @Test + public void givenReverseLists_whenUsingApacheCommons_thenDifferencesAreFound() { + List<String> differences = new ArrayList<>((CollectionUtils.removeAll(listTwo, listOne))); + assertEquals(3, differences.size()); + assertThat(differences).containsExactly("Daniel", "Alan", "George"); + } + + @Test + public void givenLists_whenUsingPlainJavaImpl_thenDifferencesWithDuplicatesAreFound() { + List<String> differences = new ArrayList<>(listOne); + listTwo.forEach(differences::remove); + assertThat(differences).containsExactly("Tom", "John", "Jack"); + } + + @Test + public void givenLists_whenUsingApacheCommons_thenDifferencesWithDuplicatesAreFound() { + List<String> differences = new ArrayList<>(CollectionUtils.subtract(listOne, listTwo)); + assertEquals(3, differences.size()); + assertThat(differences).containsExactly("Tom", "John", "Jack"); + } + +} From 94f50e785ee122b1f31310a5b6f518990841fda6 Mon Sep 17 00:00:00 2001 From: Mona Mohamadinia <mona.mohamadinia@gmail.com> Date: Tue, 11 Aug 2020 22:50:22 +0430 Subject: [PATCH 073/156] ThreadLocals and Thread Pools (#9592) --- .../ThreadLocalAwareThreadPool.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/threadlocal/ThreadLocalAwareThreadPool.java diff --git a/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/threadlocal/ThreadLocalAwareThreadPool.java b/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/threadlocal/ThreadLocalAwareThreadPool.java new file mode 100644 index 0000000000..5a41cd9dbf --- /dev/null +++ b/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/threadlocal/ThreadLocalAwareThreadPool.java @@ -0,0 +1,25 @@ +package com.baeldung.threadlocal; + +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.RejectedExecutionHandler; +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +public class ThreadLocalAwareThreadPool extends ThreadPoolExecutor { + + public ThreadLocalAwareThreadPool(int corePoolSize, + int maximumPoolSize, + long keepAliveTime, + TimeUnit unit, + BlockingQueue<Runnable> workQueue, + ThreadFactory threadFactory, + RejectedExecutionHandler handler) { + super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler); + } + + @Override + protected void afterExecute(Runnable r, Throwable t) { + // Call remove on each ThreadLocal + } +} From e52c8269680c821a2aa612dee9ab9f67de119588 Mon Sep 17 00:00:00 2001 From: Krzysiek <krzysztofwoyke@gmail.com> Date: Tue, 11 Aug 2020 22:14:45 +0200 Subject: [PATCH 074/156] JAVA-1648: Get rid of the overriden spring-boot.version property in spring-5-security --- spring-5-security/pom.xml | 3 --- 1 file changed, 3 deletions(-) diff --git a/spring-5-security/pom.xml b/spring-5-security/pom.xml index 3fd31c8bc5..c486d5346b 100644 --- a/spring-5-security/pom.xml +++ b/spring-5-security/pom.xml @@ -60,8 +60,5 @@ </plugin> </plugins> </build> - <properties> - <spring-boot.version>2.2.1.RELEASE</spring-boot.version> - </properties> </project> From 41964ef72e4a54bff1e79ff10592b92838af5f41 Mon Sep 17 00:00:00 2001 From: Ali Dehghani <ali.dehghani.g@gmail.com> Date: Wed, 12 Aug 2020 00:58:10 +0430 Subject: [PATCH 075/156] Fixed the "Comparator and Comparable in Java" Article --- .../java/com/baeldung/comparable/Player.java | 2 +- .../comparator/PlayerAgeComparator.java | 2 +- .../comparator/PlayerRankingComparator.java | 2 +- .../AvoidingSubtractionUnitTest.java | 26 +++++++++++++++++++ .../comparator/Java8ComparatorUnitTest.java | 8 +++--- 5 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 core-java-modules/core-java-lang/src/test/java/com/baeldung/comparator/AvoidingSubtractionUnitTest.java diff --git a/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparable/Player.java b/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparable/Player.java index 68a78980f3..74d9a7577e 100644 --- a/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparable/Player.java +++ b/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparable/Player.java @@ -45,7 +45,7 @@ public class Player implements Comparable<Player> { @Override public int compareTo(Player otherPlayer) { - return (this.getRanking() - otherPlayer.getRanking()); + return Integer.compare(getRanking(), otherPlayer.getRanking()); } } diff --git a/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparator/PlayerAgeComparator.java b/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparator/PlayerAgeComparator.java index d2e7ca1f42..56e2163f3c 100644 --- a/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparator/PlayerAgeComparator.java +++ b/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparator/PlayerAgeComparator.java @@ -6,7 +6,7 @@ public class PlayerAgeComparator implements Comparator<Player> { @Override public int compare(Player firstPlayer, Player secondPlayer) { - return (firstPlayer.getAge() - secondPlayer.getAge()); + return Integer.compare(firstPlayer.getAge(), secondPlayer.getAge()); } } diff --git a/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparator/PlayerRankingComparator.java b/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparator/PlayerRankingComparator.java index 2d42698843..56aa38d11a 100644 --- a/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparator/PlayerRankingComparator.java +++ b/core-java-modules/core-java-lang/src/main/java/com/baeldung/comparator/PlayerRankingComparator.java @@ -6,7 +6,7 @@ public class PlayerRankingComparator implements Comparator<Player> { @Override public int compare(Player firstPlayer, Player secondPlayer) { - return (firstPlayer.getRanking() - secondPlayer.getRanking()); + return Integer.compare(firstPlayer.getRanking(), secondPlayer.getRanking()); } } diff --git a/core-java-modules/core-java-lang/src/test/java/com/baeldung/comparator/AvoidingSubtractionUnitTest.java b/core-java-modules/core-java-lang/src/test/java/com/baeldung/comparator/AvoidingSubtractionUnitTest.java new file mode 100644 index 0000000000..fcca743ca1 --- /dev/null +++ b/core-java-modules/core-java-lang/src/test/java/com/baeldung/comparator/AvoidingSubtractionUnitTest.java @@ -0,0 +1,26 @@ +package com.baeldung.comparator; + +import org.junit.Test; + +import java.util.Arrays; +import java.util.Comparator; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +public class AvoidingSubtractionUnitTest { + + @Test + public void givenTwoPlayers_whenUsingSubtraction_thenOverflow() { + Comparator<Player> comparator = (p1, p2) -> p1.getRanking() - p2.getRanking(); + Player player1 = new Player(59, "John", Integer.MAX_VALUE); + Player player2 = new Player(67, "Roger", -1); + + List<Player> players = Arrays.asList(player1, player2); + players.sort(comparator); + System.out.println(players); + + assertEquals("John", players.get(0).getName()); + assertEquals("Roger", players.get(1).getName()); + } +} diff --git a/core-java-modules/core-java-lang/src/test/java/com/baeldung/comparator/Java8ComparatorUnitTest.java b/core-java-modules/core-java-lang/src/test/java/com/baeldung/comparator/Java8ComparatorUnitTest.java index 49c8749309..dac05a85b1 100644 --- a/core-java-modules/core-java-lang/src/test/java/com/baeldung/comparator/Java8ComparatorUnitTest.java +++ b/core-java-modules/core-java-lang/src/test/java/com/baeldung/comparator/Java8ComparatorUnitTest.java @@ -1,14 +1,14 @@ package com.baeldung.comparator; -import static org.junit.Assert.assertEquals; +import org.junit.Before; +import org.junit.Test; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; -import org.junit.Before; -import org.junit.Test; +import static org.junit.Assert.assertEquals; public class Java8ComparatorUnitTest { @@ -28,7 +28,7 @@ public class Java8ComparatorUnitTest { @Test public void whenComparing_UsingLambda_thenSorted() { System.out.println("************** Java 8 Comaparator **************"); - Comparator<Player> byRanking = (Player player1, Player player2) -> player1.getRanking() - player2.getRanking(); + Comparator<Player> byRanking = (Player player1, Player player2) -> Integer.compare(player1.getRanking(), player2.getRanking()); System.out.println("Before Sorting : " + footballTeam); Collections.sort(footballTeam, byRanking); From e7d3347960fc47ee8e3ceb6ada579aec57d1064c Mon Sep 17 00:00:00 2001 From: Ali Dehghani <ali.dehghani.g@gmail.com> Date: Wed, 12 Aug 2020 01:41:12 +0430 Subject: [PATCH 076/156] Fixed the "Sorting in Java" Article --- .../collections/sorting/JavaSortingUnitTest.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/sorting/JavaSortingUnitTest.java b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/sorting/JavaSortingUnitTest.java index 2505adcea7..d474e95cb2 100644 --- a/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/sorting/JavaSortingUnitTest.java +++ b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/sorting/JavaSortingUnitTest.java @@ -5,7 +5,16 @@ import org.apache.commons.lang3.ArrayUtils; import org.junit.Before; import org.junit.Test; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; import static org.junit.Assert.assertTrue; @@ -138,7 +147,7 @@ public class JavaSortingUnitTest { HashSet<Integer> descSortedIntegersSet = new LinkedHashSet<>(Arrays.asList(255, 200, 123, 89, 88, 66, 7, 5, 1)); ArrayList<Integer> list = new ArrayList<>(integersSet); - list.sort((i1, i2) -> i2 - i1); + list.sort(Comparator.reverseOrder()); integersSet = new LinkedHashSet<>(list); assertTrue(Arrays.equals(integersSet.toArray(), descSortedIntegersSet.toArray())); From 1945c8a3124f5d7c7d8a27f976453a934595e015 Mon Sep 17 00:00:00 2001 From: Ali Dehghani <ali.dehghani.g@gmail.com> Date: Wed, 12 Aug 2020 01:50:52 +0430 Subject: [PATCH 077/156] Fixed the "Lambda Sort" Article --- .../src/main/java/com/baeldung/java8/entity/Human.java | 2 +- .../src/test/java/com/baeldung/java8/Java8SortUnitTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core-java-modules/core-java-lambdas/src/main/java/com/baeldung/java8/entity/Human.java b/core-java-modules/core-java-lambdas/src/main/java/com/baeldung/java8/entity/Human.java index cab8546129..98e35d0af2 100644 --- a/core-java-modules/core-java-lambdas/src/main/java/com/baeldung/java8/entity/Human.java +++ b/core-java-modules/core-java-lambdas/src/main/java/com/baeldung/java8/entity/Human.java @@ -37,7 +37,7 @@ public class Human { public static int compareByNameThenAge(final Human lhs, final Human rhs) { if (lhs.name.equals(rhs.name)) { - return lhs.age - rhs.age; + return Integer.compare(lhs.age, rhs.age); } else { return lhs.name.compareTo(rhs.name); } diff --git a/core-java-modules/core-java-lambdas/src/test/java/com/baeldung/java8/Java8SortUnitTest.java b/core-java-modules/core-java-lambdas/src/test/java/com/baeldung/java8/Java8SortUnitTest.java index 9e510575fc..e5f876c84b 100644 --- a/core-java-modules/core-java-lambdas/src/test/java/com/baeldung/java8/Java8SortUnitTest.java +++ b/core-java-modules/core-java-lambdas/src/test/java/com/baeldung/java8/Java8SortUnitTest.java @@ -54,7 +54,7 @@ public class Java8SortUnitTest { final List<Human> humans = Lists.newArrayList(new Human("Sarah", 12), new Human("Sarah", 10), new Human("Zack", 12)); humans.sort((lhs, rhs) -> { if (lhs.getName().equals(rhs.getName())) { - return lhs.getAge() - rhs.getAge(); + return Integer.compare(lhs.getAge(), rhs.getAge()); } else { return lhs.getName().compareTo(rhs.getName()); } From ea9c64147ba4734719ee3ae4bddbcff904fa5514 Mon Sep 17 00:00:00 2001 From: Rutuja Joshi <67615932+rutujavjoshi@users.noreply.github.com> Date: Wed, 12 Aug 2020 07:24:44 +0530 Subject: [PATCH 078/156] BAEL-4193 (updated files) - removed not needed fields --- .../nosuchmethoderror/MainMenu.java | 21 ++++++------------- .../nosuchmethoderror/SpecialToday.java | 14 ++++--------- 2 files changed, 10 insertions(+), 25 deletions(-) diff --git a/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/MainMenu.java b/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/MainMenu.java index aec70cb843..f12cbe1897 100644 --- a/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/MainMenu.java +++ b/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/MainMenu.java @@ -1,20 +1,11 @@ package com.baeldung.exceptions.nosuchmethoderror; -import java.util.StringJoiner; - public class MainMenu { - public static void main(String[] args) { - System.out.println("Today's Specials: " + getSpecials()); - } + public static void main(String[] args) { + System.out.println("Today's Specials: " + getSpecials()); + } - public static StringJoiner getSpecials() { - StringJoiner specials = new StringJoiner(", "); - try { - specials.add(SpecialToday.getStarter()); - specials.add(SpecialToday.getDesert()); - } catch (Exception e) { - e.printStackTrace(); - } - return specials; - } + public static String getSpecials() { + return SpecialToday.getDesert(); + } } diff --git a/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/SpecialToday.java b/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/SpecialToday.java index 1f47a8934e..1b0dea9784 100644 --- a/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/SpecialToday.java +++ b/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/SpecialToday.java @@ -1,14 +1,8 @@ package com.baeldung.exceptions.nosuchmethoderror; - public class SpecialToday { - private static String desert = "Chocolate Cake"; - private static String starter = "Caesar Salad"; + private static String desert = "Chocolate Cake"; - public static String getDesert() { - return desert; - } - - public static String getStarter() { - return starter; - } + public static String getDesert() { + return desert; + } } From b532f998db741ffe7200cfee2fdf467bbb4eef57 Mon Sep 17 00:00:00 2001 From: Loredana <lore.crusoveanu@gmail.com> Date: Wed, 12 Aug 2020 19:32:27 +0300 Subject: [PATCH 079/156] BAEL-4395 fix test --- .../com/baeldung/copydirectory/ApacheCommonsUnitTest.java | 4 ++-- .../test/java/com/baeldung/copydirectory/CoreOldUnitTest.java | 4 ++-- .../test/java/com/baeldung/copydirectory/JavaNioUnitTest.java | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/ApacheCommonsUnitTest.java b/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/ApacheCommonsUnitTest.java index 3486a9af9d..eee49a37d7 100644 --- a/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/ApacheCommonsUnitTest.java +++ b/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/ApacheCommonsUnitTest.java @@ -16,10 +16,10 @@ import org.junit.jupiter.api.Test; public class ApacheCommonsUnitTest { - private final String sourceDirectoryLocation = "src/test/resources/sourceDirectory"; + private final String sourceDirectoryLocation = "src/test/resources/sourceDirectory3"; private final String subDirectoryName = "/childDirectory"; private final String fileName = "/file.txt"; - private final String destinationDirectoryLocation = "src/test/resources/destinationDirectory"; + private final String destinationDirectoryLocation = "src/test/resources/destinationDirectory3"; @BeforeEach public void createDirectoryWithSubdirectoryAndFile() throws IOException { diff --git a/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/CoreOldUnitTest.java b/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/CoreOldUnitTest.java index 53ae216399..1aaca066a0 100644 --- a/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/CoreOldUnitTest.java +++ b/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/CoreOldUnitTest.java @@ -16,10 +16,10 @@ import org.junit.jupiter.api.Test; public class CoreOldUnitTest { - private final String sourceDirectoryLocation = "src/test/resources/sourceDirectory"; + private final String sourceDirectoryLocation = "src/test/resources/sourceDirectory1"; private final String subDirectoryName = "/childDirectory"; private final String fileName = "/file.txt"; - private final String destinationDirectoryLocation = "src/test/resources/destinationDirectory"; + private final String destinationDirectoryLocation = "src/test/resources/destinationDirectory1"; @BeforeEach public void createDirectoryWithSubdirectoryAndFile() throws IOException { diff --git a/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/JavaNioUnitTest.java b/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/JavaNioUnitTest.java index 8d1eea53c9..3293e90c0c 100644 --- a/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/JavaNioUnitTest.java +++ b/core-java-modules/core-java-io-3/src/test/java/com/baeldung/copydirectory/JavaNioUnitTest.java @@ -16,10 +16,10 @@ import org.junit.jupiter.api.Test; public class JavaNioUnitTest { - private final String sourceDirectoryLocation = "src/test/resources/sourceDirectory"; + private final String sourceDirectoryLocation = "src/test/resources/sourceDirectory2"; private final String subDirectoryName = "/childDirectory"; private final String fileName = "/file.txt"; - private final String destinationDirectoryLocation = "src/test/resources/destinationDirectory"; + private final String destinationDirectoryLocation = "src/test/resources/destinationDirectory2"; @BeforeEach public void createDirectoryWithSubdirectoryAndFile() throws IOException { From dbe203e40aaab48257567e017d664bcda8ff6e5e Mon Sep 17 00:00:00 2001 From: Trixi Turny <writetotrixi@gmail.com> Date: Wed, 12 Aug 2020 19:22:31 +0100 Subject: [PATCH 080/156] BAEL-4321 move to new module and use BDD for test names --- .../java/yamltopojo/demo/DemoApplicationTests.java | 13 ------------- .../spring-boot-data-2}/README.md | 0 .../spring-boot-data-2}/pom.xml | 0 .../main/java/yamltopojo/demo/DemoApplication.java | 0 .../yamltopojo/demo/config/TshirtSizeConfig.java | 0 .../demo/controller/TshirtSizeController.java | 2 +- .../yamltopojo/demo/service/SizeConverterImpl.java | 4 ++-- .../demo/service/SizeConverterService.java | 0 .../src/main/resources/application.yml | 0 .../demo/controller/TshirtSizeControllerTest.java | 4 ++-- 10 files changed, 5 insertions(+), 18 deletions(-) delete mode 100644 configuration/yaml-to-pojo/src/test/java/yamltopojo/demo/DemoApplicationTests.java rename {configuration/yaml-to-pojo => spring-boot-modules/spring-boot-data-2}/README.md (100%) rename {configuration/yaml-to-pojo => spring-boot-modules/spring-boot-data-2}/pom.xml (100%) rename {configuration/yaml-to-pojo => spring-boot-modules/spring-boot-data-2}/src/main/java/yamltopojo/demo/DemoApplication.java (100%) rename {configuration/yaml-to-pojo => spring-boot-modules/spring-boot-data-2}/src/main/java/yamltopojo/demo/config/TshirtSizeConfig.java (100%) rename {configuration/yaml-to-pojo => spring-boot-modules/spring-boot-data-2}/src/main/java/yamltopojo/demo/controller/TshirtSizeController.java (93%) rename {configuration/yaml-to-pojo => spring-boot-modules/spring-boot-data-2}/src/main/java/yamltopojo/demo/service/SizeConverterImpl.java (87%) rename {configuration/yaml-to-pojo => spring-boot-modules/spring-boot-data-2}/src/main/java/yamltopojo/demo/service/SizeConverterService.java (100%) rename {configuration/yaml-to-pojo => spring-boot-modules/spring-boot-data-2}/src/main/resources/application.yml (100%) rename {configuration/yaml-to-pojo => spring-boot-modules/spring-boot-data-2}/src/test/java/yamltopojo/demo/controller/TshirtSizeControllerTest.java (89%) diff --git a/configuration/yaml-to-pojo/src/test/java/yamltopojo/demo/DemoApplicationTests.java b/configuration/yaml-to-pojo/src/test/java/yamltopojo/demo/DemoApplicationTests.java deleted file mode 100644 index dfe980c05c..0000000000 --- a/configuration/yaml-to-pojo/src/test/java/yamltopojo/demo/DemoApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package yamltopojo.demo; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class DemoApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git a/configuration/yaml-to-pojo/README.md b/spring-boot-modules/spring-boot-data-2/README.md similarity index 100% rename from configuration/yaml-to-pojo/README.md rename to spring-boot-modules/spring-boot-data-2/README.md diff --git a/configuration/yaml-to-pojo/pom.xml b/spring-boot-modules/spring-boot-data-2/pom.xml similarity index 100% rename from configuration/yaml-to-pojo/pom.xml rename to spring-boot-modules/spring-boot-data-2/pom.xml diff --git a/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/DemoApplication.java b/spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/DemoApplication.java similarity index 100% rename from configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/DemoApplication.java rename to spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/DemoApplication.java diff --git a/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/config/TshirtSizeConfig.java b/spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/config/TshirtSizeConfig.java similarity index 100% rename from configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/config/TshirtSizeConfig.java rename to spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/config/TshirtSizeConfig.java diff --git a/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/controller/TshirtSizeController.java b/spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/controller/TshirtSizeController.java similarity index 93% rename from configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/controller/TshirtSizeController.java rename to spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/controller/TshirtSizeController.java index d555549bd4..3504579504 100644 --- a/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/controller/TshirtSizeController.java +++ b/spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/controller/TshirtSizeController.java @@ -7,7 +7,7 @@ import yamltopojo.demo.service.SizeConverterService; @RequestMapping(value = "/") public class TshirtSizeController { - private SizeConverterService service; + private final SizeConverterService service; public TshirtSizeController(SizeConverterService service) { this.service = service; diff --git a/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/service/SizeConverterImpl.java b/spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/service/SizeConverterImpl.java similarity index 87% rename from configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/service/SizeConverterImpl.java rename to spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/service/SizeConverterImpl.java index 8f95e4253b..829950433e 100644 --- a/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/service/SizeConverterImpl.java +++ b/spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/service/SizeConverterImpl.java @@ -7,7 +7,7 @@ import yamltopojo.demo.config.TshirtSizeConfig; @Service public class SizeConverterImpl implements SizeConverterService { - private TshirtSizeConfig tshirtSizeConfig; + private final TshirtSizeConfig tshirtSizeConfig; public SizeConverterImpl(TshirtSizeConfig tshirtSizeConfig) { this.tshirtSizeConfig = tshirtSizeConfig; @@ -17,6 +17,6 @@ public class SizeConverterImpl implements SizeConverterService { if(countryCode == null) { return tshirtSizeConfig.getSimpleMapping().get(label); } - return tshirtSizeConfig.getComplexMapping().get(label).get(countryCode); + return tshirtSizeConfig.getComplexMapping().get(label).get(countryCode.toLowerCase()); } } diff --git a/configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/service/SizeConverterService.java b/spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/service/SizeConverterService.java similarity index 100% rename from configuration/yaml-to-pojo/src/main/java/yamltopojo/demo/service/SizeConverterService.java rename to spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/service/SizeConverterService.java diff --git a/configuration/yaml-to-pojo/src/main/resources/application.yml b/spring-boot-modules/spring-boot-data-2/src/main/resources/application.yml similarity index 100% rename from configuration/yaml-to-pojo/src/main/resources/application.yml rename to spring-boot-modules/spring-boot-data-2/src/main/resources/application.yml diff --git a/configuration/yaml-to-pojo/src/test/java/yamltopojo/demo/controller/TshirtSizeControllerTest.java b/spring-boot-modules/spring-boot-data-2/src/test/java/yamltopojo/demo/controller/TshirtSizeControllerTest.java similarity index 89% rename from configuration/yaml-to-pojo/src/test/java/yamltopojo/demo/controller/TshirtSizeControllerTest.java rename to spring-boot-modules/spring-boot-data-2/src/test/java/yamltopojo/demo/controller/TshirtSizeControllerTest.java index 3c1ef6dff5..ae92d7d57f 100644 --- a/configuration/yaml-to-pojo/src/test/java/yamltopojo/demo/controller/TshirtSizeControllerTest.java +++ b/spring-boot-modules/spring-boot-data-2/src/test/java/yamltopojo/demo/controller/TshirtSizeControllerTest.java @@ -20,14 +20,14 @@ class TshirtSizeControllerTest { private TshirtSizeController tested; @Test - void convertSize() { + void givenSizeConverter_whenLabelIsSandCountryCodeIsFr_thenReturnCorrectSize() { // Given String label = "S"; String countryCode = "fr"; int result = 36; - // + // When when(service.convertSize(label, countryCode)).thenReturn(result); int actual = tested.convertSize(label, countryCode); From 986566727c3d4ee908271c5978de246140525e83 Mon Sep 17 00:00:00 2001 From: Krzysiek <krzysztofwoyke@gmail.com> Date: Wed, 12 Aug 2020 21:40:45 +0200 Subject: [PATCH 081/156] JAVA-1640: Get rid of the overriden spring-boot.version property --- spring-5-security-oauth/pom.xml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/spring-5-security-oauth/pom.xml b/spring-5-security-oauth/pom.xml index 40d54bf668..325aacea86 100644 --- a/spring-5-security-oauth/pom.xml +++ b/spring-5-security-oauth/pom.xml @@ -37,7 +37,7 @@ <dependency> <groupId>org.springframework.security.oauth.boot</groupId> <artifactId>spring-security-oauth2-autoconfigure</artifactId> - <version>${oauth-auto.version}</version> + <version>${spring-boot.version}</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> @@ -65,8 +65,6 @@ </dependencies> <properties> - <spring-boot.version>2.1.0.RELEASE</spring-boot.version> - <oauth-auto.version>2.1.0.RELEASE</oauth-auto.version> <start-class>com.baeldung.oauth2.SpringOAuthApplication</start-class> </properties> From 5b3ffa4424ac1af6df151dc6ff77cc6a64dfa4ef Mon Sep 17 00:00:00 2001 From: Trixi Turny <writetotrixi@gmail.com> Date: Wed, 12 Aug 2020 21:16:32 +0100 Subject: [PATCH 082/156] BAEL-4321 correct parent in pom and follow test naming convention --- spring-boot-modules/spring-boot-data-2/pom.xml | 16 ++++++++-------- .../controller/TshirtSizeControllerTest.java | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/spring-boot-modules/spring-boot-data-2/pom.xml b/spring-boot-modules/spring-boot-data-2/pom.xml index f6b55718be..0baaf292e8 100644 --- a/spring-boot-modules/spring-boot-data-2/pom.xml +++ b/spring-boot-modules/spring-boot-data-2/pom.xml @@ -3,16 +3,16 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-parent</artifactId> - <version>2.3.2.RELEASE</version> - <relativePath/> <!-- lookup parent from repository --> + <groupId>com.baeldung.spring-boot-modules</groupId> + <artifactId>spring-boot-modules</artifactId> + <version>1.0.0-SNAPSHOT</version> + <relativePath>../</relativePath> </parent> - <groupId>yaml-to-pojo</groupId> - <artifactId>demo</artifactId> + + <artifactId>spring-boot-data-2</artifactId> <version>0.0.1-SNAPSHOT</version> - <name>demo</name> - <description>Demo project for YAML into POJO</description> + <name>spring-boot-data-2</name> + <description>Spring Boot Data Module</description> <properties> <java.version>1.8</java.version> diff --git a/spring-boot-modules/spring-boot-data-2/src/test/java/yamltopojo/demo/controller/TshirtSizeControllerTest.java b/spring-boot-modules/spring-boot-data-2/src/test/java/yamltopojo/demo/controller/TshirtSizeControllerTest.java index ae92d7d57f..eb6f896be9 100644 --- a/spring-boot-modules/spring-boot-data-2/src/test/java/yamltopojo/demo/controller/TshirtSizeControllerTest.java +++ b/spring-boot-modules/spring-boot-data-2/src/test/java/yamltopojo/demo/controller/TshirtSizeControllerTest.java @@ -11,7 +11,7 @@ import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.when; @ExtendWith(MockitoExtension.class) -class TshirtSizeControllerTest { +class TshirtSizeControllerUnitTest { @Mock private SizeConverterService service; @@ -20,7 +20,7 @@ class TshirtSizeControllerTest { private TshirtSizeController tested; @Test - void givenSizeConverter_whenLabelIsSandCountryCodeIsFr_thenReturnCorrectSize() { + void whenConvertSize_thenOK() { // Given String label = "S"; From 7e1461c40a650964af58464acb27d2b48da11b7c Mon Sep 17 00:00:00 2001 From: Trixi Turny <writetotrixi@gmail.com> Date: Wed, 12 Aug 2020 22:00:11 +0100 Subject: [PATCH 083/156] BAEL-4321 fix package name --- .../demo => com/baeldung/boot/data}/DemoApplication.java | 0 .../demo => com/baeldung/boot/data}/config/TshirtSizeConfig.java | 0 .../baeldung/boot/data}/controller/TshirtSizeController.java | 0 .../baeldung/boot/data}/service/SizeConverterImpl.java | 0 .../baeldung/boot/data}/service/SizeConverterService.java | 0 .../baeldung/boot/data}/controller/TshirtSizeControllerTest.java | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename spring-boot-modules/spring-boot-data-2/src/main/java/{yamltopojo/demo => com/baeldung/boot/data}/DemoApplication.java (100%) rename spring-boot-modules/spring-boot-data-2/src/main/java/{yamltopojo/demo => com/baeldung/boot/data}/config/TshirtSizeConfig.java (100%) rename spring-boot-modules/spring-boot-data-2/src/main/java/{yamltopojo/demo => com/baeldung/boot/data}/controller/TshirtSizeController.java (100%) rename spring-boot-modules/spring-boot-data-2/src/main/java/{yamltopojo/demo => com/baeldung/boot/data}/service/SizeConverterImpl.java (100%) rename spring-boot-modules/spring-boot-data-2/src/main/java/{yamltopojo/demo => com/baeldung/boot/data}/service/SizeConverterService.java (100%) rename spring-boot-modules/spring-boot-data-2/src/test/java/{yamltopojo/demo => com/baeldung/boot/data}/controller/TshirtSizeControllerTest.java (100%) diff --git a/spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/DemoApplication.java b/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/DemoApplication.java similarity index 100% rename from spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/DemoApplication.java rename to spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/DemoApplication.java diff --git a/spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/config/TshirtSizeConfig.java b/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/config/TshirtSizeConfig.java similarity index 100% rename from spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/config/TshirtSizeConfig.java rename to spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/config/TshirtSizeConfig.java diff --git a/spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/controller/TshirtSizeController.java b/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/controller/TshirtSizeController.java similarity index 100% rename from spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/controller/TshirtSizeController.java rename to spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/controller/TshirtSizeController.java diff --git a/spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/service/SizeConverterImpl.java b/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/service/SizeConverterImpl.java similarity index 100% rename from spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/service/SizeConverterImpl.java rename to spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/service/SizeConverterImpl.java diff --git a/spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/service/SizeConverterService.java b/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/service/SizeConverterService.java similarity index 100% rename from spring-boot-modules/spring-boot-data-2/src/main/java/yamltopojo/demo/service/SizeConverterService.java rename to spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/service/SizeConverterService.java diff --git a/spring-boot-modules/spring-boot-data-2/src/test/java/yamltopojo/demo/controller/TshirtSizeControllerTest.java b/spring-boot-modules/spring-boot-data-2/src/test/java/com/baeldung/boot/data/controller/TshirtSizeControllerTest.java similarity index 100% rename from spring-boot-modules/spring-boot-data-2/src/test/java/yamltopojo/demo/controller/TshirtSizeControllerTest.java rename to spring-boot-modules/spring-boot-data-2/src/test/java/com/baeldung/boot/data/controller/TshirtSizeControllerTest.java From eb4ce37f31a2925791f02d3e810bcd1103586d43 Mon Sep 17 00:00:00 2001 From: Rutuja Joshi <67615932+rutujavjoshi@users.noreply.github.com> Date: Thu, 13 Aug 2020 08:31:19 +0530 Subject: [PATCH 084/156] Update MainMenuUnitTest.java Updated the method name to follow BDD conventions --- .../baeldung/exceptions/nosuchmethoderror/MainMenuUnitTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-java-modules/core-java-exceptions/src/test/java/com/baeldung/exceptions/nosuchmethoderror/MainMenuUnitTest.java b/core-java-modules/core-java-exceptions/src/test/java/com/baeldung/exceptions/nosuchmethoderror/MainMenuUnitTest.java index e9aef1b484..7e53fa9c0e 100644 --- a/core-java-modules/core-java-exceptions/src/test/java/com/baeldung/exceptions/nosuchmethoderror/MainMenuUnitTest.java +++ b/core-java-modules/core-java-exceptions/src/test/java/com/baeldung/exceptions/nosuchmethoderror/MainMenuUnitTest.java @@ -7,7 +7,7 @@ import org.junit.jupiter.api.Test; class MainMenuUnitTest { @Test - void testgetSpecials() { + void whenGetSpecials_thenNotNull() { assertNotNull(MainMenu.getSpecials()); } From b94d29a1cc57ada0d4ee3fc0ce31aaa70359c3aa Mon Sep 17 00:00:00 2001 From: Trixi Turny <writetotrixi@gmail.com> Date: Thu, 13 Aug 2020 07:19:44 +0100 Subject: [PATCH 085/156] BAEL-4321 fix package name everywhere --- .../src/main/java/com/baeldung/boot/data/DemoApplication.java | 4 ++-- .../java/com/baeldung/boot/data/config/TshirtSizeConfig.java | 2 +- .../baeldung/boot/data/controller/TshirtSizeController.java | 4 ++-- .../com/baeldung/boot/data/service/SizeConverterImpl.java | 4 ++-- .../com/baeldung/boot/data/service/SizeConverterService.java | 2 +- .../boot/data/controller/TshirtSizeControllerTest.java | 4 ++-- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/DemoApplication.java b/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/DemoApplication.java index ec8df793c2..125cba6283 100644 --- a/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/DemoApplication.java +++ b/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/DemoApplication.java @@ -1,9 +1,9 @@ -package yamltopojo.demo; +package com.baeldung.boot.data; +import com.baeldung.boot.data.config.TshirtSizeConfig; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.properties.EnableConfigurationProperties; -import yamltopojo.demo.config.TshirtSizeConfig; @SpringBootApplication @EnableConfigurationProperties(TshirtSizeConfig.class) diff --git a/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/config/TshirtSizeConfig.java b/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/config/TshirtSizeConfig.java index 8f8d2e5b39..000f5b6826 100644 --- a/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/config/TshirtSizeConfig.java +++ b/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/config/TshirtSizeConfig.java @@ -1,4 +1,4 @@ -package yamltopojo.demo.config; +package com.baeldung.boot.data.config; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/controller/TshirtSizeController.java b/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/controller/TshirtSizeController.java index 3504579504..6446a17317 100644 --- a/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/controller/TshirtSizeController.java +++ b/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/controller/TshirtSizeController.java @@ -1,7 +1,7 @@ -package yamltopojo.demo.controller; +package com.baeldung.boot.data.controller; import org.springframework.web.bind.annotation.*; -import yamltopojo.demo.service.SizeConverterService; +import com.baeldung.boot.data.service.SizeConverterService; @RestController @RequestMapping(value = "/") diff --git a/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/service/SizeConverterImpl.java b/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/service/SizeConverterImpl.java index 829950433e..ccb5a06da4 100644 --- a/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/service/SizeConverterImpl.java +++ b/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/service/SizeConverterImpl.java @@ -1,7 +1,7 @@ -package yamltopojo.demo.service; +package com.baeldung.boot.data.service; import org.springframework.stereotype.Service; -import yamltopojo.demo.config.TshirtSizeConfig; +import com.baeldung.boot.data.config.TshirtSizeConfig; @Service diff --git a/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/service/SizeConverterService.java b/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/service/SizeConverterService.java index 3e24681cbe..91cf2bf0b4 100644 --- a/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/service/SizeConverterService.java +++ b/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/service/SizeConverterService.java @@ -1,4 +1,4 @@ -package yamltopojo.demo.service; +package com.baeldung.boot.data.service; public interface SizeConverterService { diff --git a/spring-boot-modules/spring-boot-data-2/src/test/java/com/baeldung/boot/data/controller/TshirtSizeControllerTest.java b/spring-boot-modules/spring-boot-data-2/src/test/java/com/baeldung/boot/data/controller/TshirtSizeControllerTest.java index eb6f896be9..1d60eb41c0 100644 --- a/spring-boot-modules/spring-boot-data-2/src/test/java/com/baeldung/boot/data/controller/TshirtSizeControllerTest.java +++ b/spring-boot-modules/spring-boot-data-2/src/test/java/com/baeldung/boot/data/controller/TshirtSizeControllerTest.java @@ -1,11 +1,11 @@ -package yamltopojo.demo.controller; +package com.baeldung.boot.data.controller; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import yamltopojo.demo.service.SizeConverterService; +import com.baeldung.boot.data.service.SizeConverterService; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.when; From 01b61a6bf01dce1fbba137dc77641745919cb0ec Mon Sep 17 00:00:00 2001 From: CHANDRAKANT Kumar <kumar.chandrakant@soprabanking.com> Date: Thu, 13 Aug 2020 11:56:49 +0530 Subject: [PATCH 086/156] Adding source code for article tracked under BAEL-4109. --- pom.xml | 2 + spring-webflux-threads/.gitignore | 25 ++++ spring-webflux-threads/README.md | 7 + spring-webflux-threads/pom.xml | 87 ++++++++++++ .../com/baeldung/webflux/Application.java | 13 ++ .../java/com/baeldung/webflux/Controller.java | 128 ++++++++++++++++++ .../java/com/baeldung/webflux/Person.java | 27 ++++ .../baeldung/webflux/PersonRepository.java | 6 + .../src/main/resources/application.yml | 7 + .../src/main/resources/logback.xml | 13 ++ 10 files changed, 315 insertions(+) create mode 100644 spring-webflux-threads/.gitignore create mode 100644 spring-webflux-threads/README.md create mode 100644 spring-webflux-threads/pom.xml create mode 100644 spring-webflux-threads/src/main/java/com/baeldung/webflux/Application.java create mode 100644 spring-webflux-threads/src/main/java/com/baeldung/webflux/Controller.java create mode 100644 spring-webflux-threads/src/main/java/com/baeldung/webflux/Person.java create mode 100644 spring-webflux-threads/src/main/java/com/baeldung/webflux/PersonRepository.java create mode 100644 spring-webflux-threads/src/main/resources/application.yml create mode 100644 spring-webflux-threads/src/main/resources/logback.xml diff --git a/pom.xml b/pom.xml index a69ffa2798..3565c2dc4b 100644 --- a/pom.xml +++ b/pom.xml @@ -556,6 +556,7 @@ <module>atomikos</module> <module>reactive-systems</module> <module>slack</module> + <module>spring-webflux-threads</module> </modules> </profile> @@ -1067,6 +1068,7 @@ <module>atomikos</module> <module>reactive-systems</module> <module>slack</module> + <module>spring-webflux-threads</module> </modules> </profile> diff --git a/spring-webflux-threads/.gitignore b/spring-webflux-threads/.gitignore new file mode 100644 index 0000000000..82eca336e3 --- /dev/null +++ b/spring-webflux-threads/.gitignore @@ -0,0 +1,25 @@ +/target/ +!.mvn/wrapper/maven-wrapper.jar + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/build/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ \ No newline at end of file diff --git a/spring-webflux-threads/README.md b/spring-webflux-threads/README.md new file mode 100644 index 0000000000..ab64d897cc --- /dev/null +++ b/spring-webflux-threads/README.md @@ -0,0 +1,7 @@ +## Spring WebFlux Concurrency + +This module contains articles about consurrency model in Spring WebFlux + +### Relevant Articles: + +- [Concurrency in Spring WebFlux]() diff --git a/spring-webflux-threads/pom.xml b/spring-webflux-threads/pom.xml new file mode 100644 index 0000000000..e5b5bafd3b --- /dev/null +++ b/spring-webflux-threads/pom.xml @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>com.baeldung.spring</groupId> + <artifactId>spring-webflux-threads</artifactId> + <version>1.0.0-SNAPSHOT</version> + <name>spring-webflux-threads</name> + <packaging>jar</packaging> + <description>Spring WebFlux AMQP Sample</description> + + <parent> + <groupId>com.baeldung</groupId> + <artifactId>parent-boot-2</artifactId> + <version>0.0.1-SNAPSHOT</version> + <relativePath>../parent-boot-2</relativePath> + </parent> + + <dependencies> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-webflux</artifactId> + <!-- + <exclusions> + <exclusion> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-reactor-netty</artifactId> + </exclusion> + </exclusions> + --> + </dependency> + <!-- + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-tomcat</artifactId> + </dependency> + --> + <!-- + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-jetty</artifactId> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-reactive-httpclient</artifactId> + </dependency> + --> + <dependency> + <groupId>io.reactivex.rxjava2</groupId> + <artifactId>rxjava</artifactId> + <version>2.2.19</version> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-data-mongodb-reactive</artifactId> + </dependency> + <dependency> + <groupId>io.projectreactor.kafka</groupId> + <artifactId>reactor-kafka</artifactId> + <version>1.2.2.RELEASE</version> + </dependency> + <dependency> + <groupId>com.fasterxml.jackson.core</groupId> + <artifactId>jackson-databind</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>io.projectreactor</groupId> + <artifactId>reactor-test</artifactId> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + </plugin> + </plugins> + </build> + +</project> diff --git a/spring-webflux-threads/src/main/java/com/baeldung/webflux/Application.java b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Application.java new file mode 100644 index 0000000000..1dfa00eae0 --- /dev/null +++ b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Application.java @@ -0,0 +1,13 @@ +package com.baeldung.webflux; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + +} diff --git a/spring-webflux-threads/src/main/java/com/baeldung/webflux/Controller.java b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Controller.java new file mode 100644 index 0000000000..7036deb998 --- /dev/null +++ b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Controller.java @@ -0,0 +1,128 @@ +package com.baeldung.webflux; + +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.apache.kafka.clients.consumer.ConsumerConfig; +import org.apache.kafka.clients.producer.ProducerConfig; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.apache.kafka.common.serialization.IntegerDeserializer; +import org.apache.kafka.common.serialization.IntegerSerializer; +import org.apache.kafka.common.serialization.StringDeserializer; +import org.apache.kafka.common.serialization.StringSerializer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.reactive.function.client.WebClient; + +import io.reactivex.Observable; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; +import reactor.core.scheduler.Scheduler; +import reactor.core.scheduler.Schedulers; +import reactor.kafka.receiver.KafkaReceiver; +import reactor.kafka.receiver.ReceiverOptions; +import reactor.kafka.receiver.ReceiverRecord; +import reactor.kafka.sender.KafkaSender; +import reactor.kafka.sender.SenderOptions; +import reactor.kafka.sender.SenderRecord; + +@RestController +@RequestMapping("/") +public class Controller { + + @Autowired + private PersonRepository personRepository; + + private Scheduler scheduler = Schedulers.newBoundedElastic(5, 10, "MyThreadGroup"); + + private Logger logger = LoggerFactory.getLogger(Controller.class); + + @GetMapping("/threads/webflux") + public Flux<String> getThreadsWebflux() { + return Flux.fromIterable(getThreads()); + } + + @GetMapping("/threads/webclient") + public Flux<String> getThreadsWebClient() { + WebClient.create("http://localhost:8080/index") + .get() + .retrieve() + .bodyToMono(String.class) + .subscribeOn(scheduler) + .publishOn(scheduler) + .doOnNext(s -> logger.info("Response: {}", s)) + .subscribe(); + return Flux.fromIterable(getThreads()); + } + + @GetMapping("/threads/rxjava") + public Observable<String> getIndexRxJava() { + Observable.fromIterable(Arrays.asList("Hello", "World")) + .map(s -> s.toUpperCase()) + .observeOn(io.reactivex.schedulers.Schedulers.trampoline()) + .doOnNext(s -> logger.info("String: {}", s)) + .subscribe(); + return Observable.fromIterable(getThreads()); + } + + @GetMapping("/threads/mongodb") + public Flux<String> getIndexMongo() { + personRepository.findAll() + .doOnNext(p -> logger.info("Person: {}", p)) + .subscribe(); + return Flux.fromIterable(getThreads()); + } + + @GetMapping("/thareds/reactor-kafka") + public Flux<String> getIndexKafka() { + Map<String, Object> producerProps = new HashMap<>(); + producerProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092"); + producerProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, IntegerSerializer.class); + producerProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class); + SenderOptions<Integer, String> senderOptions = SenderOptions.create(producerProps); + KafkaSender<Integer, String> sender = KafkaSender.create(senderOptions); + Flux<SenderRecord<Integer, String, Integer>> outboundFlux = Flux.range(1, 10) + .map(i -> SenderRecord.create(new ProducerRecord<>("reactive-test", i, "Message_" + i), i)); + sender.send(outboundFlux) + .subscribe(); + + Map<String, Object> consumerProps = new HashMap<>(); + consumerProps.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092"); + consumerProps.put(ConsumerConfig.CLIENT_ID_CONFIG, "my-consumer"); + consumerProps.put(ConsumerConfig.GROUP_ID_CONFIG, "my-group"); + consumerProps.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, IntegerDeserializer.class); + consumerProps.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class); + consumerProps.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest"); + ReceiverOptions<Integer, String> receiverOptions = ReceiverOptions.create(consumerProps); + receiverOptions.subscription(Collections.singleton("reactive-test")); + KafkaReceiver<Integer, String> receiver = KafkaReceiver.create(receiverOptions); + Flux<ReceiverRecord<Integer, String>> inboundFlux = receiver.receive(); + inboundFlux.subscribe(r -> { + logger.info("Received message: {}", r.value()); + r.receiverOffset() + .acknowledge(); + }); + return Flux.fromIterable(getThreads()); + } + + @GetMapping("/index") + public Mono<String> getIndex() { + return Mono.just("Hello world!"); + } + + private List<String> getThreads() { + return Thread.getAllStackTraces() + .keySet() + .stream() + .map(t -> String.format("%-20s \t %s \t %d \t %s\n", t.getName(), t.getState(), t.getPriority(), t.isDaemon() ? "Daemon" : "Normal")) + .collect(Collectors.toList()); + } +} diff --git a/spring-webflux-threads/src/main/java/com/baeldung/webflux/Person.java b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Person.java new file mode 100644 index 0000000000..4c6bd5f585 --- /dev/null +++ b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Person.java @@ -0,0 +1,27 @@ +package com.baeldung.webflux; + +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; + +@Document +public class Person { + @Id + String id; + + public Person(String id) { + this.id = id; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + @Override + public String toString() { + return "Person{" + "id='" + id + '\'' + '}'; + } +} diff --git a/spring-webflux-threads/src/main/java/com/baeldung/webflux/PersonRepository.java b/spring-webflux-threads/src/main/java/com/baeldung/webflux/PersonRepository.java new file mode 100644 index 0000000000..38fbd3d431 --- /dev/null +++ b/spring-webflux-threads/src/main/java/com/baeldung/webflux/PersonRepository.java @@ -0,0 +1,6 @@ +package com.baeldung.webflux; + +import org.springframework.data.mongodb.repository.ReactiveMongoRepository; + +public interface PersonRepository extends ReactiveMongoRepository<Person, String> { +} diff --git a/spring-webflux-threads/src/main/resources/application.yml b/spring-webflux-threads/src/main/resources/application.yml new file mode 100644 index 0000000000..5addcff6c2 --- /dev/null +++ b/spring-webflux-threads/src/main/resources/application.yml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/spring-webflux-threads/src/main/resources/logback.xml b/spring-webflux-threads/src/main/resources/logback.xml new file mode 100644 index 0000000000..7d900d8ea8 --- /dev/null +++ b/spring-webflux-threads/src/main/resources/logback.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configuration> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + </pattern> + </encoder> + </appender> + + <root level="INFO"> + <appender-ref ref="STDOUT" /> + </root> +</configuration> \ No newline at end of file From bc2352684ac2aef229726f35a8a70e22175522c7 Mon Sep 17 00:00:00 2001 From: Jonathan Cook <jcook@sciops.esa.int> Date: Thu, 13 Aug 2020 09:12:53 +0200 Subject: [PATCH 087/156] BAEL-4341 - Add AfterEach annotation instead of BeforeEach on tearDown method --- .../java/com/baeldung/systemout/SystemOutPrintlnUnitTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/testing-modules/testing-libraries/src/test/java/com/baeldung/systemout/SystemOutPrintlnUnitTest.java b/testing-modules/testing-libraries/src/test/java/com/baeldung/systemout/SystemOutPrintlnUnitTest.java index 3ffc508fa5..549f0ee7b9 100644 --- a/testing-modules/testing-libraries/src/test/java/com/baeldung/systemout/SystemOutPrintlnUnitTest.java +++ b/testing-modules/testing-libraries/src/test/java/com/baeldung/systemout/SystemOutPrintlnUnitTest.java @@ -4,6 +4,7 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import org.junit.Assert; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -19,7 +20,7 @@ class SystemOutPrintlnUnitTest { System.setOut(new PrintStream(outputStreamCaptor)); } - @BeforeEach + @AfterEach public void tearDown() { System.setOut(standardOut); } From 103d36000f726710fea3272164ca2280f8943bc7 Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Thu, 13 Aug 2020 12:49:18 +0530 Subject: [PATCH 088/156] JAVA-67: renamed spring-security-angular to spring-security-web-angular --- .../README.md | 0 .../client/anguarjs/app.js | 0 .../client/anguarjs/home/home.controller.js | 0 .../client/anguarjs/home/home.view.html | 0 .../client/anguarjs/index.html | 0 .../client/anguarjs/login/login.controller.js | 0 .../client/anguarjs/login/login.view.html | 0 .../client/angular2/app.css | 0 .../client/angular2/app/app.component.html | 0 .../client/angular2/app/app.component.ts | 0 .../client/angular2/app/app.module.ts | 0 .../client/angular2/app/app.routing.ts | 0 .../client/angular2/app/home/home.component.html | 0 .../client/angular2/app/home/home.component.ts | 0 .../client/angular2/app/login/login.component.html | 0 .../client/angular2/app/login/login.component.ts | 0 .../client/angular2/app/main.ts | 0 .../client/angular2/index.html | 0 .../client/angular2/package.json | 0 .../client/angular2/systemjs.config.js | 0 .../client/angular2/tsconfig.json | 0 .../client/angular4/.angular-cli.json | 0 .../client/angular4/package.json | 0 .../client/angular4/src/app/app.component.html | 0 .../client/angular4/src/app/app.component.ts | 0 .../client/angular4/src/app/app.module.ts | 0 .../client/angular4/src/app/app.routing.ts | 0 .../client/angular4/src/app/home/home.component.html | 0 .../client/angular4/src/app/home/home.component.ts | 0 .../client/angular4/src/app/login/login.component.html | 0 .../client/angular4/src/app/login/login.component.ts | 0 .../client/angular4/src/index.html | 0 .../client/angular4/src/main.ts | 0 .../client/angular4/src/polyfills.ts | 0 .../client/angular4/src/styles.css | 0 .../client/angular4/src/tsconfig.app.json | 0 .../client/angular4/tsconfig.json | 0 .../client/angular4/tslint.json | 0 .../client/angular5/.angular-cli.json | 0 .../client/angular5/package.json | 0 .../client/angular5/src/app/app.component.html | 0 .../client/angular5/src/app/app.component.ts | 0 .../client/angular5/src/app/app.module.ts | 0 .../client/angular5/src/app/app.routing.ts | 0 .../client/angular5/src/app/home/home.component.html | 0 .../client/angular5/src/app/home/home.component.ts | 0 .../client/angular5/src/app/login/login.component.html | 0 .../client/angular5/src/app/login/login.component.ts | 0 .../client/angular5/src/index.html | 0 .../client/angular5/src/main.ts | 0 .../client/angular5/src/polyfills.ts | 0 .../client/angular5/src/styles.css | 0 .../client/angular5/src/tsconfig.app.json | 0 .../client/angular5/tsconfig.json | 0 .../client/angular5/tslint.json | 0 .../client/angular6/angular.json | 0 .../client/angular6/package.json | 0 .../client/angular6/src/app/app.component.html | 0 .../client/angular6/src/app/app.component.ts | 0 .../client/angular6/src/app/app.module.ts | 0 .../client/angular6/src/app/app.routing.ts | 0 .../client/angular6/src/app/home/home.component.html | 0 .../client/angular6/src/app/home/home.component.ts | 0 .../client/angular6/src/app/login/login.component.html | 0 .../client/angular6/src/app/login/login.component.ts | 0 .../client/angular6/src/index.html | 0 .../client/angular6/src/main.ts | 0 .../client/angular6/src/polyfills.ts | 0 .../client/angular6/src/styles.css | 0 .../client/angular6/src/tsconfig.app.json | 0 .../client/angular6/tsconfig.json | 0 .../client/angular6/tslint.json | 0 .../server/pom.xml | 0 .../basicauth/SpringBootSecurityApplication.java | 0 .../basicauth/config/BasicAuthConfiguration.java | 0 .../springbootsecurityrest/controller/UserController.java | 0 .../main/java/com/baeldung/springbootsecurityrest/vo/User.java | 0 .../server/src/main/resources/application.properties | 0 .../server/src/main/resources/logback.xml | 0 .../server/src/test/java/com/baeldung/SpringContextTest.java | 0 .../BasicAuthConfigurationIntegrationTest.java | 0 81 files changed, 0 insertions(+), 0 deletions(-) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/README.md (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/anguarjs/app.js (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/anguarjs/home/home.controller.js (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/anguarjs/home/home.view.html (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/anguarjs/index.html (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/anguarjs/login/login.controller.js (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/anguarjs/login/login.view.html (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular2/app.css (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular2/app/app.component.html (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular2/app/app.component.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular2/app/app.module.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular2/app/app.routing.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular2/app/home/home.component.html (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular2/app/home/home.component.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular2/app/login/login.component.html (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular2/app/login/login.component.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular2/app/main.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular2/index.html (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular2/package.json (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular2/systemjs.config.js (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular2/tsconfig.json (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular4/.angular-cli.json (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular4/package.json (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular4/src/app/app.component.html (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular4/src/app/app.component.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular4/src/app/app.module.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular4/src/app/app.routing.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular4/src/app/home/home.component.html (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular4/src/app/home/home.component.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular4/src/app/login/login.component.html (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular4/src/app/login/login.component.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular4/src/index.html (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular4/src/main.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular4/src/polyfills.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular4/src/styles.css (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular4/src/tsconfig.app.json (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular4/tsconfig.json (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular4/tslint.json (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular5/.angular-cli.json (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular5/package.json (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular5/src/app/app.component.html (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular5/src/app/app.component.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular5/src/app/app.module.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular5/src/app/app.routing.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular5/src/app/home/home.component.html (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular5/src/app/home/home.component.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular5/src/app/login/login.component.html (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular5/src/app/login/login.component.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular5/src/index.html (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular5/src/main.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular5/src/polyfills.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular5/src/styles.css (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular5/src/tsconfig.app.json (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular5/tsconfig.json (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular5/tslint.json (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular6/angular.json (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular6/package.json (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular6/src/app/app.component.html (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular6/src/app/app.component.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular6/src/app/app.module.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular6/src/app/app.routing.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular6/src/app/home/home.component.html (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular6/src/app/home/home.component.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular6/src/app/login/login.component.html (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular6/src/app/login/login.component.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular6/src/index.html (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular6/src/main.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular6/src/polyfills.ts (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular6/src/styles.css (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular6/src/tsconfig.app.json (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular6/tsconfig.json (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/client/angular6/tslint.json (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/server/pom.xml (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/server/src/main/java/com/baeldung/springbootsecurityrest/basicauth/SpringBootSecurityApplication.java (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/server/src/main/java/com/baeldung/springbootsecurityrest/basicauth/config/BasicAuthConfiguration.java (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/server/src/main/java/com/baeldung/springbootsecurityrest/controller/UserController.java (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/server/src/main/java/com/baeldung/springbootsecurityrest/vo/User.java (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/server/src/main/resources/application.properties (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/server/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/server/src/test/java/com/baeldung/SpringContextTest.java (100%) rename spring-security-modules/{spring-security-angular => spring-security-web-angular}/server/src/test/java/com/baeldung/springbootsecurityrest/BasicAuthConfigurationIntegrationTest.java (100%) diff --git a/spring-security-modules/spring-security-angular/README.md b/spring-security-modules/spring-security-web-angular/README.md similarity index 100% rename from spring-security-modules/spring-security-angular/README.md rename to spring-security-modules/spring-security-web-angular/README.md diff --git a/spring-security-modules/spring-security-angular/client/anguarjs/app.js b/spring-security-modules/spring-security-web-angular/client/anguarjs/app.js similarity index 100% rename from spring-security-modules/spring-security-angular/client/anguarjs/app.js rename to spring-security-modules/spring-security-web-angular/client/anguarjs/app.js diff --git a/spring-security-modules/spring-security-angular/client/anguarjs/home/home.controller.js b/spring-security-modules/spring-security-web-angular/client/anguarjs/home/home.controller.js similarity index 100% rename from spring-security-modules/spring-security-angular/client/anguarjs/home/home.controller.js rename to spring-security-modules/spring-security-web-angular/client/anguarjs/home/home.controller.js diff --git a/spring-security-modules/spring-security-angular/client/anguarjs/home/home.view.html b/spring-security-modules/spring-security-web-angular/client/anguarjs/home/home.view.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/anguarjs/home/home.view.html rename to spring-security-modules/spring-security-web-angular/client/anguarjs/home/home.view.html diff --git a/spring-security-modules/spring-security-angular/client/anguarjs/index.html b/spring-security-modules/spring-security-web-angular/client/anguarjs/index.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/anguarjs/index.html rename to spring-security-modules/spring-security-web-angular/client/anguarjs/index.html diff --git a/spring-security-modules/spring-security-angular/client/anguarjs/login/login.controller.js b/spring-security-modules/spring-security-web-angular/client/anguarjs/login/login.controller.js similarity index 100% rename from spring-security-modules/spring-security-angular/client/anguarjs/login/login.controller.js rename to spring-security-modules/spring-security-web-angular/client/anguarjs/login/login.controller.js diff --git a/spring-security-modules/spring-security-angular/client/anguarjs/login/login.view.html b/spring-security-modules/spring-security-web-angular/client/anguarjs/login/login.view.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/anguarjs/login/login.view.html rename to spring-security-modules/spring-security-web-angular/client/anguarjs/login/login.view.html diff --git a/spring-security-modules/spring-security-angular/client/angular2/app.css b/spring-security-modules/spring-security-web-angular/client/angular2/app.css similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app.css rename to spring-security-modules/spring-security-web-angular/client/angular2/app.css diff --git a/spring-security-modules/spring-security-angular/client/angular2/app/app.component.html b/spring-security-modules/spring-security-web-angular/client/angular2/app/app.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app/app.component.html rename to spring-security-modules/spring-security-web-angular/client/angular2/app/app.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular2/app/app.component.ts b/spring-security-modules/spring-security-web-angular/client/angular2/app/app.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app/app.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular2/app/app.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular2/app/app.module.ts b/spring-security-modules/spring-security-web-angular/client/angular2/app/app.module.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app/app.module.ts rename to spring-security-modules/spring-security-web-angular/client/angular2/app/app.module.ts diff --git a/spring-security-modules/spring-security-angular/client/angular2/app/app.routing.ts b/spring-security-modules/spring-security-web-angular/client/angular2/app/app.routing.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app/app.routing.ts rename to spring-security-modules/spring-security-web-angular/client/angular2/app/app.routing.ts diff --git a/spring-security-modules/spring-security-angular/client/angular2/app/home/home.component.html b/spring-security-modules/spring-security-web-angular/client/angular2/app/home/home.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app/home/home.component.html rename to spring-security-modules/spring-security-web-angular/client/angular2/app/home/home.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular2/app/home/home.component.ts b/spring-security-modules/spring-security-web-angular/client/angular2/app/home/home.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app/home/home.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular2/app/home/home.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular2/app/login/login.component.html b/spring-security-modules/spring-security-web-angular/client/angular2/app/login/login.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app/login/login.component.html rename to spring-security-modules/spring-security-web-angular/client/angular2/app/login/login.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular2/app/login/login.component.ts b/spring-security-modules/spring-security-web-angular/client/angular2/app/login/login.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app/login/login.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular2/app/login/login.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular2/app/main.ts b/spring-security-modules/spring-security-web-angular/client/angular2/app/main.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/app/main.ts rename to spring-security-modules/spring-security-web-angular/client/angular2/app/main.ts diff --git a/spring-security-modules/spring-security-angular/client/angular2/index.html b/spring-security-modules/spring-security-web-angular/client/angular2/index.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/index.html rename to spring-security-modules/spring-security-web-angular/client/angular2/index.html diff --git a/spring-security-modules/spring-security-angular/client/angular2/package.json b/spring-security-modules/spring-security-web-angular/client/angular2/package.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/package.json rename to spring-security-modules/spring-security-web-angular/client/angular2/package.json diff --git a/spring-security-modules/spring-security-angular/client/angular2/systemjs.config.js b/spring-security-modules/spring-security-web-angular/client/angular2/systemjs.config.js similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/systemjs.config.js rename to spring-security-modules/spring-security-web-angular/client/angular2/systemjs.config.js diff --git a/spring-security-modules/spring-security-angular/client/angular2/tsconfig.json b/spring-security-modules/spring-security-web-angular/client/angular2/tsconfig.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular2/tsconfig.json rename to spring-security-modules/spring-security-web-angular/client/angular2/tsconfig.json diff --git a/spring-security-modules/spring-security-angular/client/angular4/.angular-cli.json b/spring-security-modules/spring-security-web-angular/client/angular4/.angular-cli.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/.angular-cli.json rename to spring-security-modules/spring-security-web-angular/client/angular4/.angular-cli.json diff --git a/spring-security-modules/spring-security-angular/client/angular4/package.json b/spring-security-modules/spring-security-web-angular/client/angular4/package.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/package.json rename to spring-security-modules/spring-security-web-angular/client/angular4/package.json diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/app/app.component.html b/spring-security-modules/spring-security-web-angular/client/angular4/src/app/app.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/app/app.component.html rename to spring-security-modules/spring-security-web-angular/client/angular4/src/app/app.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/app/app.component.ts b/spring-security-modules/spring-security-web-angular/client/angular4/src/app/app.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/app/app.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular4/src/app/app.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/app/app.module.ts b/spring-security-modules/spring-security-web-angular/client/angular4/src/app/app.module.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/app/app.module.ts rename to spring-security-modules/spring-security-web-angular/client/angular4/src/app/app.module.ts diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/app/app.routing.ts b/spring-security-modules/spring-security-web-angular/client/angular4/src/app/app.routing.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/app/app.routing.ts rename to spring-security-modules/spring-security-web-angular/client/angular4/src/app/app.routing.ts diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/app/home/home.component.html b/spring-security-modules/spring-security-web-angular/client/angular4/src/app/home/home.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/app/home/home.component.html rename to spring-security-modules/spring-security-web-angular/client/angular4/src/app/home/home.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/app/home/home.component.ts b/spring-security-modules/spring-security-web-angular/client/angular4/src/app/home/home.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/app/home/home.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular4/src/app/home/home.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/app/login/login.component.html b/spring-security-modules/spring-security-web-angular/client/angular4/src/app/login/login.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/app/login/login.component.html rename to spring-security-modules/spring-security-web-angular/client/angular4/src/app/login/login.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/app/login/login.component.ts b/spring-security-modules/spring-security-web-angular/client/angular4/src/app/login/login.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/app/login/login.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular4/src/app/login/login.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/index.html b/spring-security-modules/spring-security-web-angular/client/angular4/src/index.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/index.html rename to spring-security-modules/spring-security-web-angular/client/angular4/src/index.html diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/main.ts b/spring-security-modules/spring-security-web-angular/client/angular4/src/main.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/main.ts rename to spring-security-modules/spring-security-web-angular/client/angular4/src/main.ts diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/polyfills.ts b/spring-security-modules/spring-security-web-angular/client/angular4/src/polyfills.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/polyfills.ts rename to spring-security-modules/spring-security-web-angular/client/angular4/src/polyfills.ts diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/styles.css b/spring-security-modules/spring-security-web-angular/client/angular4/src/styles.css similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/styles.css rename to spring-security-modules/spring-security-web-angular/client/angular4/src/styles.css diff --git a/spring-security-modules/spring-security-angular/client/angular4/src/tsconfig.app.json b/spring-security-modules/spring-security-web-angular/client/angular4/src/tsconfig.app.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/src/tsconfig.app.json rename to spring-security-modules/spring-security-web-angular/client/angular4/src/tsconfig.app.json diff --git a/spring-security-modules/spring-security-angular/client/angular4/tsconfig.json b/spring-security-modules/spring-security-web-angular/client/angular4/tsconfig.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/tsconfig.json rename to spring-security-modules/spring-security-web-angular/client/angular4/tsconfig.json diff --git a/spring-security-modules/spring-security-angular/client/angular4/tslint.json b/spring-security-modules/spring-security-web-angular/client/angular4/tslint.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular4/tslint.json rename to spring-security-modules/spring-security-web-angular/client/angular4/tslint.json diff --git a/spring-security-modules/spring-security-angular/client/angular5/.angular-cli.json b/spring-security-modules/spring-security-web-angular/client/angular5/.angular-cli.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/.angular-cli.json rename to spring-security-modules/spring-security-web-angular/client/angular5/.angular-cli.json diff --git a/spring-security-modules/spring-security-angular/client/angular5/package.json b/spring-security-modules/spring-security-web-angular/client/angular5/package.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/package.json rename to spring-security-modules/spring-security-web-angular/client/angular5/package.json diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/app/app.component.html b/spring-security-modules/spring-security-web-angular/client/angular5/src/app/app.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/app/app.component.html rename to spring-security-modules/spring-security-web-angular/client/angular5/src/app/app.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/app/app.component.ts b/spring-security-modules/spring-security-web-angular/client/angular5/src/app/app.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/app/app.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular5/src/app/app.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/app/app.module.ts b/spring-security-modules/spring-security-web-angular/client/angular5/src/app/app.module.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/app/app.module.ts rename to spring-security-modules/spring-security-web-angular/client/angular5/src/app/app.module.ts diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/app/app.routing.ts b/spring-security-modules/spring-security-web-angular/client/angular5/src/app/app.routing.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/app/app.routing.ts rename to spring-security-modules/spring-security-web-angular/client/angular5/src/app/app.routing.ts diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/app/home/home.component.html b/spring-security-modules/spring-security-web-angular/client/angular5/src/app/home/home.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/app/home/home.component.html rename to spring-security-modules/spring-security-web-angular/client/angular5/src/app/home/home.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/app/home/home.component.ts b/spring-security-modules/spring-security-web-angular/client/angular5/src/app/home/home.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/app/home/home.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular5/src/app/home/home.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/app/login/login.component.html b/spring-security-modules/spring-security-web-angular/client/angular5/src/app/login/login.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/app/login/login.component.html rename to spring-security-modules/spring-security-web-angular/client/angular5/src/app/login/login.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/app/login/login.component.ts b/spring-security-modules/spring-security-web-angular/client/angular5/src/app/login/login.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/app/login/login.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular5/src/app/login/login.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/index.html b/spring-security-modules/spring-security-web-angular/client/angular5/src/index.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/index.html rename to spring-security-modules/spring-security-web-angular/client/angular5/src/index.html diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/main.ts b/spring-security-modules/spring-security-web-angular/client/angular5/src/main.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/main.ts rename to spring-security-modules/spring-security-web-angular/client/angular5/src/main.ts diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/polyfills.ts b/spring-security-modules/spring-security-web-angular/client/angular5/src/polyfills.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/polyfills.ts rename to spring-security-modules/spring-security-web-angular/client/angular5/src/polyfills.ts diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/styles.css b/spring-security-modules/spring-security-web-angular/client/angular5/src/styles.css similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/styles.css rename to spring-security-modules/spring-security-web-angular/client/angular5/src/styles.css diff --git a/spring-security-modules/spring-security-angular/client/angular5/src/tsconfig.app.json b/spring-security-modules/spring-security-web-angular/client/angular5/src/tsconfig.app.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/src/tsconfig.app.json rename to spring-security-modules/spring-security-web-angular/client/angular5/src/tsconfig.app.json diff --git a/spring-security-modules/spring-security-angular/client/angular5/tsconfig.json b/spring-security-modules/spring-security-web-angular/client/angular5/tsconfig.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/tsconfig.json rename to spring-security-modules/spring-security-web-angular/client/angular5/tsconfig.json diff --git a/spring-security-modules/spring-security-angular/client/angular5/tslint.json b/spring-security-modules/spring-security-web-angular/client/angular5/tslint.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular5/tslint.json rename to spring-security-modules/spring-security-web-angular/client/angular5/tslint.json diff --git a/spring-security-modules/spring-security-angular/client/angular6/angular.json b/spring-security-modules/spring-security-web-angular/client/angular6/angular.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/angular.json rename to spring-security-modules/spring-security-web-angular/client/angular6/angular.json diff --git a/spring-security-modules/spring-security-angular/client/angular6/package.json b/spring-security-modules/spring-security-web-angular/client/angular6/package.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/package.json rename to spring-security-modules/spring-security-web-angular/client/angular6/package.json diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/app/app.component.html b/spring-security-modules/spring-security-web-angular/client/angular6/src/app/app.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/app/app.component.html rename to spring-security-modules/spring-security-web-angular/client/angular6/src/app/app.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/app/app.component.ts b/spring-security-modules/spring-security-web-angular/client/angular6/src/app/app.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/app/app.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular6/src/app/app.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/app/app.module.ts b/spring-security-modules/spring-security-web-angular/client/angular6/src/app/app.module.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/app/app.module.ts rename to spring-security-modules/spring-security-web-angular/client/angular6/src/app/app.module.ts diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/app/app.routing.ts b/spring-security-modules/spring-security-web-angular/client/angular6/src/app/app.routing.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/app/app.routing.ts rename to spring-security-modules/spring-security-web-angular/client/angular6/src/app/app.routing.ts diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/app/home/home.component.html b/spring-security-modules/spring-security-web-angular/client/angular6/src/app/home/home.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/app/home/home.component.html rename to spring-security-modules/spring-security-web-angular/client/angular6/src/app/home/home.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/app/home/home.component.ts b/spring-security-modules/spring-security-web-angular/client/angular6/src/app/home/home.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/app/home/home.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular6/src/app/home/home.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/app/login/login.component.html b/spring-security-modules/spring-security-web-angular/client/angular6/src/app/login/login.component.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/app/login/login.component.html rename to spring-security-modules/spring-security-web-angular/client/angular6/src/app/login/login.component.html diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/app/login/login.component.ts b/spring-security-modules/spring-security-web-angular/client/angular6/src/app/login/login.component.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/app/login/login.component.ts rename to spring-security-modules/spring-security-web-angular/client/angular6/src/app/login/login.component.ts diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/index.html b/spring-security-modules/spring-security-web-angular/client/angular6/src/index.html similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/index.html rename to spring-security-modules/spring-security-web-angular/client/angular6/src/index.html diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/main.ts b/spring-security-modules/spring-security-web-angular/client/angular6/src/main.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/main.ts rename to spring-security-modules/spring-security-web-angular/client/angular6/src/main.ts diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/polyfills.ts b/spring-security-modules/spring-security-web-angular/client/angular6/src/polyfills.ts similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/polyfills.ts rename to spring-security-modules/spring-security-web-angular/client/angular6/src/polyfills.ts diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/styles.css b/spring-security-modules/spring-security-web-angular/client/angular6/src/styles.css similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/styles.css rename to spring-security-modules/spring-security-web-angular/client/angular6/src/styles.css diff --git a/spring-security-modules/spring-security-angular/client/angular6/src/tsconfig.app.json b/spring-security-modules/spring-security-web-angular/client/angular6/src/tsconfig.app.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/src/tsconfig.app.json rename to spring-security-modules/spring-security-web-angular/client/angular6/src/tsconfig.app.json diff --git a/spring-security-modules/spring-security-angular/client/angular6/tsconfig.json b/spring-security-modules/spring-security-web-angular/client/angular6/tsconfig.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/tsconfig.json rename to spring-security-modules/spring-security-web-angular/client/angular6/tsconfig.json diff --git a/spring-security-modules/spring-security-angular/client/angular6/tslint.json b/spring-security-modules/spring-security-web-angular/client/angular6/tslint.json similarity index 100% rename from spring-security-modules/spring-security-angular/client/angular6/tslint.json rename to spring-security-modules/spring-security-web-angular/client/angular6/tslint.json diff --git a/spring-security-modules/spring-security-angular/server/pom.xml b/spring-security-modules/spring-security-web-angular/server/pom.xml similarity index 100% rename from spring-security-modules/spring-security-angular/server/pom.xml rename to spring-security-modules/spring-security-web-angular/server/pom.xml diff --git a/spring-security-modules/spring-security-angular/server/src/main/java/com/baeldung/springbootsecurityrest/basicauth/SpringBootSecurityApplication.java b/spring-security-modules/spring-security-web-angular/server/src/main/java/com/baeldung/springbootsecurityrest/basicauth/SpringBootSecurityApplication.java similarity index 100% rename from spring-security-modules/spring-security-angular/server/src/main/java/com/baeldung/springbootsecurityrest/basicauth/SpringBootSecurityApplication.java rename to spring-security-modules/spring-security-web-angular/server/src/main/java/com/baeldung/springbootsecurityrest/basicauth/SpringBootSecurityApplication.java diff --git a/spring-security-modules/spring-security-angular/server/src/main/java/com/baeldung/springbootsecurityrest/basicauth/config/BasicAuthConfiguration.java b/spring-security-modules/spring-security-web-angular/server/src/main/java/com/baeldung/springbootsecurityrest/basicauth/config/BasicAuthConfiguration.java similarity index 100% rename from spring-security-modules/spring-security-angular/server/src/main/java/com/baeldung/springbootsecurityrest/basicauth/config/BasicAuthConfiguration.java rename to spring-security-modules/spring-security-web-angular/server/src/main/java/com/baeldung/springbootsecurityrest/basicauth/config/BasicAuthConfiguration.java diff --git a/spring-security-modules/spring-security-angular/server/src/main/java/com/baeldung/springbootsecurityrest/controller/UserController.java b/spring-security-modules/spring-security-web-angular/server/src/main/java/com/baeldung/springbootsecurityrest/controller/UserController.java similarity index 100% rename from spring-security-modules/spring-security-angular/server/src/main/java/com/baeldung/springbootsecurityrest/controller/UserController.java rename to spring-security-modules/spring-security-web-angular/server/src/main/java/com/baeldung/springbootsecurityrest/controller/UserController.java diff --git a/spring-security-modules/spring-security-angular/server/src/main/java/com/baeldung/springbootsecurityrest/vo/User.java b/spring-security-modules/spring-security-web-angular/server/src/main/java/com/baeldung/springbootsecurityrest/vo/User.java similarity index 100% rename from spring-security-modules/spring-security-angular/server/src/main/java/com/baeldung/springbootsecurityrest/vo/User.java rename to spring-security-modules/spring-security-web-angular/server/src/main/java/com/baeldung/springbootsecurityrest/vo/User.java diff --git a/spring-security-modules/spring-security-angular/server/src/main/resources/application.properties b/spring-security-modules/spring-security-web-angular/server/src/main/resources/application.properties similarity index 100% rename from spring-security-modules/spring-security-angular/server/src/main/resources/application.properties rename to spring-security-modules/spring-security-web-angular/server/src/main/resources/application.properties diff --git a/spring-security-modules/spring-security-angular/server/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-angular/server/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-angular/server/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-angular/server/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-angular/server/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-angular/server/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-angular/server/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-angular/server/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-angular/server/src/test/java/com/baeldung/springbootsecurityrest/BasicAuthConfigurationIntegrationTest.java b/spring-security-modules/spring-security-web-angular/server/src/test/java/com/baeldung/springbootsecurityrest/BasicAuthConfigurationIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-angular/server/src/test/java/com/baeldung/springbootsecurityrest/BasicAuthConfigurationIntegrationTest.java rename to spring-security-modules/spring-security-web-angular/server/src/test/java/com/baeldung/springbootsecurityrest/BasicAuthConfigurationIntegrationTest.java From 36a2c6edb1ac65222ee6c1fded19c34357f6f57c Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Thu, 13 Aug 2020 12:51:16 +0530 Subject: [PATCH 089/156] JAVA-67: renamed spring-security-mvc to spring-security-web-mvc --- .../.gitignore | 0 .../README.md | 0 .../{spring-security-mvc => spring-security-web-mvc}/pom.xml | 4 ++-- .../baeldung/clearsitedata/LogoutClearSiteDataController.java | 0 .../java/com/baeldung/clearsitedata/SpringSecurityConfig.java | 0 .../src/main/java/com/baeldung/clearsitedata/WebConfig.java | 0 .../java/com/baeldung/monitoring/MetricRegistrySingleton.java | 0 .../security/MySimpleUrlAuthenticationSuccessHandler.java | 0 .../java/com/baeldung/session/SpringSessionApplication.java | 0 .../src/main/java/com/baeldung/session/bean/Constants.java | 0 .../src/main/java/com/baeldung/session/bean/Foo.java | 0 .../main/java/com/baeldung/session/filter/SessionFilter.java | 0 .../baeldung/session/security/config/SecSecurityConfig.java | 0 .../src/main/java/com/baeldung/session/web/FooController.java | 0 .../java/com/baeldung/session/web/SessionRestController.java | 0 .../baeldung/session/web/config/MainWebAppInitializer.java | 0 .../main/java/com/baeldung/session/web/config/MvcConfig.java | 0 .../java/com/baeldung/web/SessionListenerWithMetrics.java | 0 .../src/main/resources/application.properties | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/webSecurityConfig.xml | 0 .../src/main/webapp/WEB-INF/mvc-servlet.xml | 0 .../src/main/webapp/WEB-INF/view/anonymous.jsp | 0 .../src/main/webapp/WEB-INF/view/console.jsp | 0 .../src/main/webapp/WEB-INF/view/homepage.jsp | 0 .../src/main/webapp/WEB-INF/view/invalidSession.jsp | 0 .../src/main/webapp/WEB-INF/view/login.jsp | 0 .../src/main/webapp/WEB-INF/view/sessionExpired.jsp | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../src/test/java/com/baeldung/SpringContextTest.java | 0 .../clearsitedata/LogoutClearSiteDataControllerUnitTest.java | 0 .../com/baeldung/session/SessionConfigurationLiveTest.java | 0 .../src/test/resources/.gitignore | 0 33 files changed, 2 insertions(+), 2 deletions(-) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/.gitignore (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/README.md (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/pom.xml (97%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/java/com/baeldung/clearsitedata/LogoutClearSiteDataController.java (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/java/com/baeldung/clearsitedata/SpringSecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/java/com/baeldung/clearsitedata/WebConfig.java (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/java/com/baeldung/monitoring/MetricRegistrySingleton.java (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/java/com/baeldung/session/SpringSessionApplication.java (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/java/com/baeldung/session/bean/Constants.java (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/java/com/baeldung/session/bean/Foo.java (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/java/com/baeldung/session/filter/SessionFilter.java (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/java/com/baeldung/session/security/config/SecSecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/java/com/baeldung/session/web/FooController.java (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/java/com/baeldung/session/web/SessionRestController.java (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/java/com/baeldung/session/web/config/MainWebAppInitializer.java (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/java/com/baeldung/session/web/config/MvcConfig.java (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/java/com/baeldung/web/SessionListenerWithMetrics.java (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/resources/application.properties (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/resources/webSecurityConfig.xml (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/webapp/WEB-INF/mvc-servlet.xml (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/webapp/WEB-INF/view/anonymous.jsp (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/webapp/WEB-INF/view/console.jsp (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/webapp/WEB-INF/view/homepage.jsp (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/webapp/WEB-INF/view/invalidSession.jsp (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/webapp/WEB-INF/view/login.jsp (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/webapp/WEB-INF/view/sessionExpired.jsp (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/main/webapp/WEB-INF/web.xml (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/test/java/com/baeldung/SpringContextTest.java (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/test/java/com/baeldung/clearsitedata/LogoutClearSiteDataControllerUnitTest.java (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/test/java/com/baeldung/session/SessionConfigurationLiveTest.java (100%) rename spring-security-modules/{spring-security-mvc => spring-security-web-mvc}/src/test/resources/.gitignore (100%) diff --git a/spring-security-modules/spring-security-mvc/.gitignore b/spring-security-modules/spring-security-web-mvc/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc/.gitignore rename to spring-security-modules/spring-security-web-mvc/.gitignore diff --git a/spring-security-modules/spring-security-mvc/README.md b/spring-security-modules/spring-security-web-mvc/README.md similarity index 100% rename from spring-security-modules/spring-security-mvc/README.md rename to spring-security-modules/spring-security-web-mvc/README.md diff --git a/spring-security-modules/spring-security-mvc/pom.xml b/spring-security-modules/spring-security-web-mvc/pom.xml similarity index 97% rename from spring-security-modules/spring-security-mvc/pom.xml rename to spring-security-modules/spring-security-web-mvc/pom.xml index d97825975f..2651b3a0f2 100644 --- a/spring-security-modules/spring-security-mvc/pom.xml +++ b/spring-security-modules/spring-security-web-mvc/pom.xml @@ -3,9 +3,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <artifactId>spring-security-mvc</artifactId> + <artifactId>spring-security-web-mvc</artifactId> <version>0.1-SNAPSHOT</version> - <name>spring-security-mvc</name> + <name>spring-security-web-mvc</name> <packaging>jar</packaging> <parent> diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/clearsitedata/LogoutClearSiteDataController.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/clearsitedata/LogoutClearSiteDataController.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/clearsitedata/LogoutClearSiteDataController.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/clearsitedata/LogoutClearSiteDataController.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/clearsitedata/SpringSecurityConfig.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/clearsitedata/SpringSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/clearsitedata/SpringSecurityConfig.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/clearsitedata/SpringSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/clearsitedata/WebConfig.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/clearsitedata/WebConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/clearsitedata/WebConfig.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/clearsitedata/WebConfig.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/monitoring/MetricRegistrySingleton.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/monitoring/MetricRegistrySingleton.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/monitoring/MetricRegistrySingleton.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/monitoring/MetricRegistrySingleton.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/SpringSessionApplication.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/SpringSessionApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/SpringSessionApplication.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/SpringSessionApplication.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/bean/Constants.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/bean/Constants.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/bean/Constants.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/bean/Constants.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/bean/Foo.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/bean/Foo.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/bean/Foo.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/bean/Foo.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/filter/SessionFilter.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/filter/SessionFilter.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/filter/SessionFilter.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/filter/SessionFilter.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/security/config/SecSecurityConfig.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/security/config/SecSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/security/config/SecSecurityConfig.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/security/config/SecSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/web/FooController.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/web/FooController.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/web/FooController.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/web/FooController.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/web/SessionRestController.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/web/SessionRestController.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/web/SessionRestController.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/web/SessionRestController.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/web/config/MainWebAppInitializer.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/web/config/MainWebAppInitializer.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/web/config/MainWebAppInitializer.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/web/config/MainWebAppInitializer.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/web/config/MvcConfig.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/web/config/MvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/session/web/config/MvcConfig.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/session/web/config/MvcConfig.java diff --git a/spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/web/SessionListenerWithMetrics.java b/spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/web/SessionListenerWithMetrics.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/java/com/baeldung/web/SessionListenerWithMetrics.java rename to spring-security-modules/spring-security-web-mvc/src/main/java/com/baeldung/web/SessionListenerWithMetrics.java diff --git a/spring-security-modules/spring-security-mvc/src/main/resources/application.properties b/spring-security-modules/spring-security-web-mvc/src/main/resources/application.properties similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/resources/application.properties rename to spring-security-modules/spring-security-web-mvc/src/main/resources/application.properties diff --git a/spring-security-modules/spring-security-mvc/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-mvc/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-mvc/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-mvc/src/main/resources/webSecurityConfig.xml b/spring-security-modules/spring-security-web-mvc/src/main/resources/webSecurityConfig.xml similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/resources/webSecurityConfig.xml rename to spring-security-modules/spring-security-web-mvc/src/main/resources/webSecurityConfig.xml diff --git a/spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/anonymous.jsp b/spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/anonymous.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/anonymous.jsp rename to spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/anonymous.jsp diff --git a/spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/console.jsp b/spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/console.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/console.jsp rename to spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/console.jsp diff --git a/spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/homepage.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/homepage.jsp rename to spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/homepage.jsp diff --git a/spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/invalidSession.jsp b/spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/invalidSession.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/invalidSession.jsp rename to spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/invalidSession.jsp diff --git a/spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/login.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/login.jsp rename to spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/login.jsp diff --git a/spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/sessionExpired.jsp b/spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/sessionExpired.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/view/sessionExpired.jsp rename to spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/view/sessionExpired.jsp diff --git a/spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/web.xml b/spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-security-modules/spring-security-mvc/src/main/webapp/WEB-INF/web.xml rename to spring-security-modules/spring-security-web-mvc/src/main/webapp/WEB-INF/web.xml diff --git a/spring-security-modules/spring-security-mvc/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-mvc/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-mvc/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-mvc/src/test/java/com/baeldung/clearsitedata/LogoutClearSiteDataControllerUnitTest.java b/spring-security-modules/spring-security-web-mvc/src/test/java/com/baeldung/clearsitedata/LogoutClearSiteDataControllerUnitTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/test/java/com/baeldung/clearsitedata/LogoutClearSiteDataControllerUnitTest.java rename to spring-security-modules/spring-security-web-mvc/src/test/java/com/baeldung/clearsitedata/LogoutClearSiteDataControllerUnitTest.java diff --git a/spring-security-modules/spring-security-mvc/src/test/java/com/baeldung/session/SessionConfigurationLiveTest.java b/spring-security-modules/spring-security-web-mvc/src/test/java/com/baeldung/session/SessionConfigurationLiveTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc/src/test/java/com/baeldung/session/SessionConfigurationLiveTest.java rename to spring-security-modules/spring-security-web-mvc/src/test/java/com/baeldung/session/SessionConfigurationLiveTest.java diff --git a/spring-security-modules/spring-security-mvc/src/test/resources/.gitignore b/spring-security-modules/spring-security-web-mvc/src/test/resources/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc/src/test/resources/.gitignore rename to spring-security-modules/spring-security-web-mvc/src/test/resources/.gitignore From 787bbd4f2c5e6d2213ca276a7c95d31c80cef48f Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Thu, 13 Aug 2020 12:52:53 +0530 Subject: [PATCH 090/156] JAVA-67:renamed spring-security-mvc-boot-1 to spring-security-web-boot-1 --- .../README.md | 0 .../WebContent/META-INF/MANIFEST.MF | 0 .../pom.xml | 4 ++-- .../src/main/java/com/baeldung/relationships/AppConfig.java | 0 .../java/com/baeldung/relationships/SpringSecurityConfig.java | 0 .../main/java/com/baeldung/relationships/models/AppUser.java | 0 .../main/java/com/baeldung/relationships/models/Tweet.java | 0 .../baeldung/relationships/repositories/TweetRepository.java | 0 .../baeldung/relationships/repositories/UserRepository.java | 0 .../com/baeldung/relationships/security/AppUserPrincipal.java | 0 .../security/AuthenticationSuccessHandlerImpl.java | 0 .../relationships/security/CustomUserDetailsService.java | 0 .../com/baeldung/relationships/util/DummyContentUtil.java | 0 .../src/main/java/com/baeldung/roles/custom/Application.java | 0 .../baeldung/roles/custom/config/MethodSecurityConfig.java | 0 .../main/java/com/baeldung/roles/custom/config/MvcConfig.java | 0 .../java/com/baeldung/roles/custom/config/SecurityConfig.java | 0 .../java/com/baeldung/roles/custom/persistence/SetupData.java | 0 .../roles/custom/persistence/dao/OrganizationRepository.java | 0 .../roles/custom/persistence/dao/PrivilegeRepository.java | 0 .../baeldung/roles/custom/persistence/dao/UserRepository.java | 0 .../java/com/baeldung/roles/custom/persistence/model/Foo.java | 0 .../baeldung/roles/custom/persistence/model/Organization.java | 0 .../baeldung/roles/custom/persistence/model/Privilege.java | 0 .../com/baeldung/roles/custom/persistence/model/User.java | 0 .../security/CustomMethodSecurityExpressionHandler.java | 0 .../custom/security/CustomMethodSecurityExpressionRoot.java | 0 .../roles/custom/security/CustomPermissionEvaluator.java | 0 .../roles/custom/security/MySecurityExpressionRoot.java | 0 .../baeldung/roles/custom/security/MyUserDetailsService.java | 0 .../com/baeldung/roles/custom/security/MyUserPrincipal.java | 0 .../java/com/baeldung/roles/custom/web/MainController.java | 0 .../src/main/java/com/baeldung/roles/ip/IpApplication.java | 0 .../roles/ip/config/CustomIpAuthenticationProvider.java | 0 .../java/com/baeldung/roles/ip/config/SecurityConfig.java | 0 .../java/com/baeldung/roles/ip/config/SecurityXmlConfig.java | 0 .../main/java/com/baeldung/roles/ip/web/MainController.java | 0 .../roles/rolesauthorities/CustomAuthenticationProvider.java | 0 .../roles/rolesauthorities/MyLogoutSuccessHandler.java | 0 .../baeldung/roles/rolesauthorities/MyUserDetailsService.java | 0 .../roles/rolesauthorities/RolesAuthoritiesApplication.java | 0 .../com/baeldung/roles/rolesauthorities/config/MvcConfig.java | 0 .../roles/rolesauthorities/config/SecurityConfig.java | 0 .../com/baeldung/roles/rolesauthorities/model/Privilege.java | 0 .../java/com/baeldung/roles/rolesauthorities/model/Role.java | 0 .../java/com/baeldung/roles/rolesauthorities/model/User.java | 0 .../roles/rolesauthorities/persistence/IUserService.java | 0 .../rolesauthorities/persistence/PrivilegeRepository.java | 0 .../roles/rolesauthorities/persistence/RoleRepository.java | 0 .../roles/rolesauthorities/persistence/SetupDataLoader.java | 0 .../roles/rolesauthorities/persistence/UserRepository.java | 0 .../roles/rolesauthorities/persistence/UserService.java | 0 .../main/java/com/baeldung/roles/voter/MinuteBasedVoter.java | 0 .../main/java/com/baeldung/roles/voter/VoterApplication.java | 0 .../main/java/com/baeldung/roles/voter/VoterMvcConfig.java | 0 .../main/java/com/baeldung/roles/voter/WebSecurityConfig.java | 0 .../main/java/com/baeldung/roles/voter/XmlSecurityConfig.java | 0 .../src/main/resources/application-defaults.properties | 0 .../src/main/resources/application.properties | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/persistence-h2.properties | 0 .../src/main/resources/spring-security-custom-voter.xml | 0 .../src/main/resources/spring-security-ip.xml | 0 .../src/main/resources/templates/403.html | 0 .../src/main/resources/templates/index.html | 0 .../src/main/resources/templates/login.html | 0 .../src/main/resources/templates/loginAdmin.html | 0 .../src/main/resources/templates/loginUser.html | 0 .../src/main/resources/templates/multipleHttpElems/login.html | 0 .../templates/multipleHttpElems/loginWithWarning.html | 0 .../templates/multipleHttpElems/multipleHttpLinks.html | 0 .../resources/templates/multipleHttpElems/myAdminPage.html | 0 .../resources/templates/multipleHttpElems/myGuestPage.html | 0 .../templates/multipleHttpElems/myPrivateUserPage.html | 0 .../resources/templates/multipleHttpElems/myUserPage.html | 0 .../src/main/resources/templates/private.html | 0 .../src/main/resources/templates/rolesauthorities/home.html | 0 .../src/main/resources/templates/rolesauthorities/login.html | 0 .../templates/rolesauthorities/protectedbyauthority.html | 0 .../templates/rolesauthorities/protectedbynothing.html | 0 .../resources/templates/rolesauthorities/protectedbyrole.html | 0 .../src/main/resources/templates/ssl/welcome.html | 0 .../relationships/SpringDataWithSecurityIntegrationTest.java | 0 .../src/test/java/com/baeldung/roles/SpringContextTest.java | 0 .../test/java/com/baeldung/roles/web/ApplicationLiveTest.java | 0 .../roles/web/CustomUserDetailsServiceIntegrationTest.java | 0 .../src/test/java/com/baeldung/roles/web/IpLiveTest.java | 0 87 files changed, 2 insertions(+), 2 deletions(-) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/README.md (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/WebContent/META-INF/MANIFEST.MF (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/pom.xml (98%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/relationships/AppConfig.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/relationships/SpringSecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/relationships/models/AppUser.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/relationships/models/Tweet.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/relationships/repositories/TweetRepository.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/relationships/repositories/UserRepository.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/relationships/security/AppUserPrincipal.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/relationships/security/AuthenticationSuccessHandlerImpl.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/relationships/security/CustomUserDetailsService.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/relationships/util/DummyContentUtil.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/custom/Application.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/custom/config/MethodSecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/custom/config/MvcConfig.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/custom/config/SecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/custom/persistence/SetupData.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/custom/persistence/dao/OrganizationRepository.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/custom/persistence/dao/PrivilegeRepository.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/custom/persistence/dao/UserRepository.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/custom/persistence/model/Foo.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/custom/persistence/model/Organization.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/custom/persistence/model/Privilege.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/custom/persistence/model/User.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/custom/security/CustomMethodSecurityExpressionHandler.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/custom/security/CustomMethodSecurityExpressionRoot.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/custom/security/CustomPermissionEvaluator.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/custom/security/MySecurityExpressionRoot.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/custom/security/MyUserDetailsService.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/custom/security/MyUserPrincipal.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/custom/web/MainController.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/ip/IpApplication.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/ip/config/CustomIpAuthenticationProvider.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/ip/config/SecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/ip/config/SecurityXmlConfig.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/ip/web/MainController.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/rolesauthorities/CustomAuthenticationProvider.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/rolesauthorities/MyLogoutSuccessHandler.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/rolesauthorities/MyUserDetailsService.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/rolesauthorities/RolesAuthoritiesApplication.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/rolesauthorities/config/MvcConfig.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/rolesauthorities/config/SecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/rolesauthorities/model/Privilege.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/rolesauthorities/model/Role.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/rolesauthorities/model/User.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/rolesauthorities/persistence/IUserService.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/rolesauthorities/persistence/PrivilegeRepository.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/rolesauthorities/persistence/RoleRepository.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/rolesauthorities/persistence/SetupDataLoader.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/rolesauthorities/persistence/UserRepository.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/rolesauthorities/persistence/UserService.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/voter/MinuteBasedVoter.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/voter/VoterApplication.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/voter/VoterMvcConfig.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/voter/WebSecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/java/com/baeldung/roles/voter/XmlSecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/application-defaults.properties (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/application.properties (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/persistence-h2.properties (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/spring-security-custom-voter.xml (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/spring-security-ip.xml (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/templates/403.html (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/templates/index.html (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/templates/login.html (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/templates/loginAdmin.html (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/templates/loginUser.html (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/templates/multipleHttpElems/login.html (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/templates/multipleHttpElems/loginWithWarning.html (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/templates/multipleHttpElems/myAdminPage.html (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/templates/multipleHttpElems/myGuestPage.html (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/templates/multipleHttpElems/myUserPage.html (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/templates/private.html (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/templates/rolesauthorities/home.html (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/templates/rolesauthorities/login.html (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/templates/rolesauthorities/protectedbyauthority.html (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/templates/rolesauthorities/protectedbynothing.html (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/templates/rolesauthorities/protectedbyrole.html (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/main/resources/templates/ssl/welcome.html (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/test/java/com/baeldung/relationships/SpringDataWithSecurityIntegrationTest.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/test/java/com/baeldung/roles/SpringContextTest.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/test/java/com/baeldung/roles/web/ApplicationLiveTest.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/test/java/com/baeldung/roles/web/CustomUserDetailsServiceIntegrationTest.java (100%) rename spring-security-modules/{spring-security-mvc-boot-1 => spring-security-web-boot-1}/src/test/java/com/baeldung/roles/web/IpLiveTest.java (100%) diff --git a/spring-security-modules/spring-security-mvc-boot-1/README.md b/spring-security-modules/spring-security-web-boot-1/README.md similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/README.md rename to spring-security-modules/spring-security-web-boot-1/README.md diff --git a/spring-security-modules/spring-security-mvc-boot-1/WebContent/META-INF/MANIFEST.MF b/spring-security-modules/spring-security-web-boot-1/WebContent/META-INF/MANIFEST.MF similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/WebContent/META-INF/MANIFEST.MF rename to spring-security-modules/spring-security-web-boot-1/WebContent/META-INF/MANIFEST.MF diff --git a/spring-security-modules/spring-security-mvc-boot-1/pom.xml b/spring-security-modules/spring-security-web-boot-1/pom.xml similarity index 98% rename from spring-security-modules/spring-security-mvc-boot-1/pom.xml rename to spring-security-modules/spring-security-web-boot-1/pom.xml index 7ad18376ec..1f80b62765 100644 --- a/spring-security-modules/spring-security-mvc-boot-1/pom.xml +++ b/spring-security-modules/spring-security-web-boot-1/pom.xml @@ -3,9 +3,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <artifactId>spring-security-mvc-boot-1</artifactId> + <artifactId>spring-security-web-boot-1</artifactId> <version>0.0.1-SNAPSHOT</version> - <name>spring-security-mvc-boot-1</name> + <name>spring-security-web-boot-1</name> <packaging>war</packaging> <description>Spring Security MVC Boot - 1</description> diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/AppConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/AppConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/AppConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/AppConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/SpringSecurityConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/SpringSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/SpringSecurityConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/SpringSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/models/AppUser.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/models/AppUser.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/models/AppUser.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/models/AppUser.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/models/Tweet.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/models/Tweet.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/models/Tweet.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/models/Tweet.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/repositories/TweetRepository.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/repositories/TweetRepository.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/repositories/TweetRepository.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/repositories/TweetRepository.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/repositories/UserRepository.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/repositories/UserRepository.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/repositories/UserRepository.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/repositories/UserRepository.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/security/AppUserPrincipal.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/security/AppUserPrincipal.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/security/AppUserPrincipal.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/security/AppUserPrincipal.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/security/AuthenticationSuccessHandlerImpl.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/security/AuthenticationSuccessHandlerImpl.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/security/AuthenticationSuccessHandlerImpl.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/security/AuthenticationSuccessHandlerImpl.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/security/CustomUserDetailsService.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/security/CustomUserDetailsService.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/security/CustomUserDetailsService.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/security/CustomUserDetailsService.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/util/DummyContentUtil.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/util/DummyContentUtil.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/relationships/util/DummyContentUtil.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/relationships/util/DummyContentUtil.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/Application.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/Application.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/Application.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/Application.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/config/MethodSecurityConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/config/MethodSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/config/MethodSecurityConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/config/MethodSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/config/MvcConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/config/MvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/config/MvcConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/config/MvcConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/config/SecurityConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/config/SecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/config/SecurityConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/config/SecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/SetupData.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/SetupData.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/SetupData.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/SetupData.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/OrganizationRepository.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/OrganizationRepository.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/OrganizationRepository.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/OrganizationRepository.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/PrivilegeRepository.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/PrivilegeRepository.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/PrivilegeRepository.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/PrivilegeRepository.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/UserRepository.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/UserRepository.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/UserRepository.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/dao/UserRepository.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Foo.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Foo.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Foo.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Foo.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Organization.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Organization.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Organization.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Organization.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Privilege.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Privilege.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Privilege.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/Privilege.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/User.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/User.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/User.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/persistence/model/User.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomMethodSecurityExpressionHandler.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomMethodSecurityExpressionHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomMethodSecurityExpressionHandler.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomMethodSecurityExpressionHandler.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomMethodSecurityExpressionRoot.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomMethodSecurityExpressionRoot.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomMethodSecurityExpressionRoot.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomMethodSecurityExpressionRoot.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomPermissionEvaluator.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomPermissionEvaluator.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomPermissionEvaluator.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/CustomPermissionEvaluator.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/MySecurityExpressionRoot.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/MySecurityExpressionRoot.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/MySecurityExpressionRoot.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/MySecurityExpressionRoot.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/MyUserDetailsService.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/MyUserDetailsService.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/MyUserDetailsService.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/MyUserDetailsService.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/MyUserPrincipal.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/MyUserPrincipal.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/security/MyUserPrincipal.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/security/MyUserPrincipal.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/web/MainController.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/web/MainController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/custom/web/MainController.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/custom/web/MainController.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/IpApplication.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/IpApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/IpApplication.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/IpApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/config/CustomIpAuthenticationProvider.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/config/CustomIpAuthenticationProvider.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/config/CustomIpAuthenticationProvider.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/config/CustomIpAuthenticationProvider.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/config/SecurityConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/config/SecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/config/SecurityConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/config/SecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/config/SecurityXmlConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/config/SecurityXmlConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/config/SecurityXmlConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/config/SecurityXmlConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/web/MainController.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/web/MainController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/ip/web/MainController.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/ip/web/MainController.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/CustomAuthenticationProvider.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/CustomAuthenticationProvider.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/CustomAuthenticationProvider.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/CustomAuthenticationProvider.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/MyLogoutSuccessHandler.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/MyLogoutSuccessHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/MyLogoutSuccessHandler.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/MyLogoutSuccessHandler.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/MyUserDetailsService.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/MyUserDetailsService.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/MyUserDetailsService.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/MyUserDetailsService.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/RolesAuthoritiesApplication.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/RolesAuthoritiesApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/RolesAuthoritiesApplication.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/RolesAuthoritiesApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/config/MvcConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/config/MvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/config/MvcConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/config/MvcConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/config/SecurityConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/config/SecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/config/SecurityConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/config/SecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/Privilege.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/Privilege.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/Privilege.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/Privilege.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/Role.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/Role.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/Role.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/Role.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/User.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/User.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/User.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/model/User.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/IUserService.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/IUserService.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/IUserService.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/IUserService.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/PrivilegeRepository.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/PrivilegeRepository.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/PrivilegeRepository.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/PrivilegeRepository.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/RoleRepository.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/RoleRepository.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/RoleRepository.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/RoleRepository.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/SetupDataLoader.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/SetupDataLoader.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/SetupDataLoader.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/SetupDataLoader.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/UserRepository.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/UserRepository.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/UserRepository.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/UserRepository.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/UserService.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/UserService.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/UserService.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/rolesauthorities/persistence/UserService.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/MinuteBasedVoter.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/MinuteBasedVoter.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/MinuteBasedVoter.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/MinuteBasedVoter.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/VoterApplication.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/VoterApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/VoterApplication.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/VoterApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/VoterMvcConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/VoterMvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/VoterMvcConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/VoterMvcConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/WebSecurityConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/WebSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/WebSecurityConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/WebSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/XmlSecurityConfig.java b/spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/XmlSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/roles/voter/XmlSecurityConfig.java rename to spring-security-modules/spring-security-web-boot-1/src/main/java/com/baeldung/roles/voter/XmlSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/application-defaults.properties b/spring-security-modules/spring-security-web-boot-1/src/main/resources/application-defaults.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/application-defaults.properties rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/application-defaults.properties diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/application.properties b/spring-security-modules/spring-security-web-boot-1/src/main/resources/application.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/application.properties rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/application.properties diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-boot-1/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/persistence-h2.properties b/spring-security-modules/spring-security-web-boot-1/src/main/resources/persistence-h2.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/persistence-h2.properties rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/persistence-h2.properties diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/spring-security-custom-voter.xml b/spring-security-modules/spring-security-web-boot-1/src/main/resources/spring-security-custom-voter.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/spring-security-custom-voter.xml rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/spring-security-custom-voter.xml diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/spring-security-ip.xml b/spring-security-modules/spring-security-web-boot-1/src/main/resources/spring-security-ip.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/spring-security-ip.xml rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/spring-security-ip.xml diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/403.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/403.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/403.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/403.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/index.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/index.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/index.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/index.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/login.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/login.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/login.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/login.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/loginAdmin.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/loginAdmin.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/loginAdmin.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/loginAdmin.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/loginUser.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/loginUser.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/loginUser.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/loginUser.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/login.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/login.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/login.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/login.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/loginWithWarning.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/loginWithWarning.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/loginWithWarning.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/loginWithWarning.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myAdminPage.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/myAdminPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myAdminPage.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/myAdminPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myGuestPage.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/myGuestPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myGuestPage.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/myGuestPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myUserPage.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/myUserPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myUserPage.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/multipleHttpElems/myUserPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/private.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/private.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/private.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/private.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/home.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/home.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/home.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/home.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/login.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/login.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/login.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/login.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/protectedbyauthority.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/protectedbyauthority.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/protectedbyauthority.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/protectedbyauthority.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/protectedbynothing.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/protectedbynothing.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/protectedbynothing.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/protectedbynothing.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/protectedbyrole.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/protectedbyrole.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/protectedbyrole.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/rolesauthorities/protectedbyrole.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/ssl/welcome.html b/spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/ssl/welcome.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/ssl/welcome.html rename to spring-security-modules/spring-security-web-boot-1/src/main/resources/templates/ssl/welcome.html diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/relationships/SpringDataWithSecurityIntegrationTest.java b/spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/relationships/SpringDataWithSecurityIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/relationships/SpringDataWithSecurityIntegrationTest.java rename to spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/relationships/SpringDataWithSecurityIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/roles/SpringContextTest.java b/spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/roles/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/roles/SpringContextTest.java rename to spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/roles/SpringContextTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/roles/web/ApplicationLiveTest.java b/spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/roles/web/ApplicationLiveTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/roles/web/ApplicationLiveTest.java rename to spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/roles/web/ApplicationLiveTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/roles/web/CustomUserDetailsServiceIntegrationTest.java b/spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/roles/web/CustomUserDetailsServiceIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/roles/web/CustomUserDetailsServiceIntegrationTest.java rename to spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/roles/web/CustomUserDetailsServiceIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/roles/web/IpLiveTest.java b/spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/roles/web/IpLiveTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/roles/web/IpLiveTest.java rename to spring-security-modules/spring-security-web-boot-1/src/test/java/com/baeldung/roles/web/IpLiveTest.java From 8eede4e9f239ef347ce1ff3a8079955f757a5386 Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Thu, 13 Aug 2020 12:54:12 +0530 Subject: [PATCH 091/156] JAVA-67:renamed spring-security-mvc-boot-2 to spring-security-web-boot-2 --- .../README.md | 0 .../WebContent/META-INF/MANIFEST.MF | 0 .../pom.xml | 4 ++-- .../CustomLogoutApplication.java | 0 .../customlogouthandler/MvcConfiguration.java | 0 .../customlogouthandler/services/UserCache.java | 0 .../com/baeldung/customlogouthandler/user/User.java | 0 .../customlogouthandler/user/UserUtils.java | 0 .../web/CustomLogoutHandler.java | 0 .../customlogouthandler/web/UserController.java | 0 .../h2/H2JdbcAuthenticationApplication.java | 0 .../h2/config/SecurityConfiguration.java | 0 .../jdbcauthentication/h2/web/UserController.java | 0 .../mysql/MySqlJdbcAuthenticationApplication.java | 0 .../mysql/config/SecurityConfiguration.java | 0 .../mysql/web/UserController.java | 0 .../PostgreJdbcAuthenticationApplication.java | 0 .../postgre/config/SecurityConfiguration.java | 0 .../postgre/web/UserController.java | 0 .../com/baeldung/loginredirect/LoginPageFilter.java | 0 .../loginredirect/LoginPageInterceptor.java | 0 .../loginredirect/LoginRedirectApplication.java | 0 .../loginredirect/LoginRedirectMvcConfig.java | 0 .../loginredirect/LoginRedirectSecurityConfig.java | 0 .../com/baeldung/loginredirect/UsersController.java | 0 .../CustomAuthenticationProvider.java | 0 .../MultipleAuthController.java | 0 .../MultipleAuthProvidersApplication.java | 0 .../MultipleAuthProvidersSecurityConfig.java | 0 .../MultipleEntryPointsApplication.java | 0 .../MultipleEntryPointsSecurityConfig.java | 0 .../multipleentrypoints/PagesController.java | 0 .../multiplelogin/MultipleLoginApplication.java | 0 .../multiplelogin/MultipleLoginMvcConfig.java | 0 .../multiplelogin/MultipleLoginSecurityConfig.java | 0 .../com/baeldung/multiplelogin/UsersController.java | 0 .../com/baeldung/ssl/HttpsEnabledApplication.java | 0 .../main/java/com/baeldung/ssl/SecurityConfig.java | 0 .../java/com/baeldung/ssl/WelcomeController.java | 0 .../application-customlogouthandler.properties | 0 .../main/resources/application-defaults.properties | 0 .../src/main/resources/application-mysql.properties | 0 .../main/resources/application-postgre.properties | 0 .../src/main/resources/application-ssl.properties | 0 .../src/main/resources/application.properties | 0 .../src/main/resources/data-mysql.sql | 0 .../src/main/resources/data-postgre.sql | 0 .../src/main/resources/keystore/baeldung.p12 | Bin .../src/main/resources/logback.xml | 0 .../src/main/resources/persistence-h2.properties | 0 .../src/main/resources/schema-mysql.sql | 0 .../src/main/resources/schema-postgre.sql | 0 .../resources/spring-security-login-redirect.xml | 0 .../spring-security-multiple-auth-providers.xml | 0 .../resources/spring-security-multiple-entry.xml | 0 .../src/main/resources/templates/403.html | 0 .../src/main/resources/templates/adminPage.html | 0 .../src/main/resources/templates/index.html | 0 .../src/main/resources/templates/login.html | 0 .../src/main/resources/templates/loginAdmin.html | 0 .../src/main/resources/templates/loginUser.html | 0 .../templates/multipleHttpElems/login.html | 0 .../multipleHttpElems/loginWithWarning.html | 0 .../multipleHttpElems/multipleHttpLinks.html | 0 .../templates/multipleHttpElems/myAdminPage.html | 0 .../templates/multipleHttpElems/myGuestPage.html | 0 .../multipleHttpElems/myPrivateUserPage.html | 0 .../templates/multipleHttpElems/myUserPage.html | 0 .../src/main/resources/templates/private.html | 0 .../main/resources/templates/protectedLinks.html | 0 .../src/main/resources/templates/ssl/welcome.html | 0 .../src/main/resources/templates/userMainPage.html | 0 .../src/main/resources/templates/userPage.html | 0 .../CustomLogoutHandlerIntegrationTest.java | 0 .../jdbcauthentication/h2/SpringContextTest.java | 0 .../h2/web/UserControllerLiveTest.java | 0 .../mysql/web/UserControllerLiveTest.java | 0 .../postgre/web/UserControllerLiveTest.java | 0 .../web/HttpsApplicationIntegrationTest.java | 0 ...ipleAuthProvidersApplicationIntegrationTest.java | 0 .../web/MultipleEntryPointsIntegrationTest.java | 0 .../test/resources/customlogouthandler/after.sql | 0 .../customlogouthandler/application.properties | 0 .../test/resources/customlogouthandler/before.sql | 0 84 files changed, 2 insertions(+), 2 deletions(-) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/README.md (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/WebContent/META-INF/MANIFEST.MF (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/pom.xml (99%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/customlogouthandler/CustomLogoutApplication.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/customlogouthandler/MvcConfiguration.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/customlogouthandler/services/UserCache.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/customlogouthandler/user/User.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/customlogouthandler/user/UserUtils.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/customlogouthandler/web/CustomLogoutHandler.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/customlogouthandler/web/UserController.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/jdbcauthentication/h2/H2JdbcAuthenticationApplication.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/jdbcauthentication/h2/config/SecurityConfiguration.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/jdbcauthentication/h2/web/UserController.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/jdbcauthentication/mysql/MySqlJdbcAuthenticationApplication.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/jdbcauthentication/mysql/config/SecurityConfiguration.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/jdbcauthentication/mysql/web/UserController.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/jdbcauthentication/postgre/PostgreJdbcAuthenticationApplication.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/jdbcauthentication/postgre/config/SecurityConfiguration.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/jdbcauthentication/postgre/web/UserController.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/loginredirect/LoginPageFilter.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/loginredirect/LoginPageInterceptor.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/loginredirect/LoginRedirectApplication.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/loginredirect/LoginRedirectMvcConfig.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/loginredirect/LoginRedirectSecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/loginredirect/UsersController.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/multipleauthproviders/CustomAuthenticationProvider.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthController.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthProvidersApplication.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthProvidersSecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/multipleentrypoints/MultipleEntryPointsApplication.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/multipleentrypoints/MultipleEntryPointsSecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/multipleentrypoints/PagesController.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/multiplelogin/MultipleLoginApplication.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/multiplelogin/MultipleLoginMvcConfig.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/multiplelogin/MultipleLoginSecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/multiplelogin/UsersController.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/ssl/HttpsEnabledApplication.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/ssl/SecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/java/com/baeldung/ssl/WelcomeController.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/application-customlogouthandler.properties (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/application-defaults.properties (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/application-mysql.properties (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/application-postgre.properties (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/application-ssl.properties (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/application.properties (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/data-mysql.sql (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/data-postgre.sql (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/keystore/baeldung.p12 (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/persistence-h2.properties (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/schema-mysql.sql (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/schema-postgre.sql (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/spring-security-login-redirect.xml (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/spring-security-multiple-auth-providers.xml (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/spring-security-multiple-entry.xml (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/templates/403.html (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/templates/adminPage.html (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/templates/index.html (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/templates/login.html (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/templates/loginAdmin.html (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/templates/loginUser.html (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/templates/multipleHttpElems/login.html (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/templates/multipleHttpElems/loginWithWarning.html (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/templates/multipleHttpElems/myAdminPage.html (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/templates/multipleHttpElems/myGuestPage.html (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/templates/multipleHttpElems/myUserPage.html (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/templates/private.html (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/templates/protectedLinks.html (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/templates/ssl/welcome.html (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/templates/userMainPage.html (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/main/resources/templates/userPage.html (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/test/java/com/baeldung/customlogouthandler/CustomLogoutHandlerIntegrationTest.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/test/java/com/baeldung/jdbcauthentication/h2/SpringContextTest.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/test/java/com/baeldung/jdbcauthentication/h2/web/UserControllerLiveTest.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/test/java/com/baeldung/jdbcauthentication/mysql/web/UserControllerLiveTest.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/test/java/com/baeldung/jdbcauthentication/postgre/web/UserControllerLiveTest.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/test/java/com/baeldung/web/HttpsApplicationIntegrationTest.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/test/java/com/baeldung/web/MultipleAuthProvidersApplicationIntegrationTest.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/test/java/com/baeldung/web/MultipleEntryPointsIntegrationTest.java (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/test/resources/customlogouthandler/after.sql (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/test/resources/customlogouthandler/application.properties (100%) rename spring-security-modules/{spring-security-mvc-boot-2 => spring-security-web-boot-2}/src/test/resources/customlogouthandler/before.sql (100%) diff --git a/spring-security-modules/spring-security-mvc-boot-2/README.md b/spring-security-modules/spring-security-web-boot-2/README.md similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/README.md rename to spring-security-modules/spring-security-web-boot-2/README.md diff --git a/spring-security-modules/spring-security-mvc-boot-2/WebContent/META-INF/MANIFEST.MF b/spring-security-modules/spring-security-web-boot-2/WebContent/META-INF/MANIFEST.MF similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/WebContent/META-INF/MANIFEST.MF rename to spring-security-modules/spring-security-web-boot-2/WebContent/META-INF/MANIFEST.MF diff --git a/spring-security-modules/spring-security-mvc-boot-2/pom.xml b/spring-security-modules/spring-security-web-boot-2/pom.xml similarity index 99% rename from spring-security-modules/spring-security-mvc-boot-2/pom.xml rename to spring-security-modules/spring-security-web-boot-2/pom.xml index 668eb04cd9..ca357509a3 100644 --- a/spring-security-modules/spring-security-mvc-boot-2/pom.xml +++ b/spring-security-modules/spring-security-web-boot-2/pom.xml @@ -3,9 +3,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <artifactId>spring-security-mvc-boot-2</artifactId> + <artifactId>spring-security-web-boot-2</artifactId> <version>0.0.1-SNAPSHOT</version> - <name>spring-security-mvc-boot-2</name> + <name>spring-security-web-boot-2</name> <packaging>war</packaging> <description>Spring Security MVC Boot - 2</description> diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/CustomLogoutApplication.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/CustomLogoutApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/CustomLogoutApplication.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/CustomLogoutApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/MvcConfiguration.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/MvcConfiguration.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/MvcConfiguration.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/MvcConfiguration.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/services/UserCache.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/services/UserCache.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/services/UserCache.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/services/UserCache.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/user/User.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/user/User.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/user/User.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/user/User.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/user/UserUtils.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/user/UserUtils.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/user/UserUtils.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/user/UserUtils.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/web/CustomLogoutHandler.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/web/CustomLogoutHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/web/CustomLogoutHandler.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/web/CustomLogoutHandler.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/web/UserController.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/web/UserController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/customlogouthandler/web/UserController.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/customlogouthandler/web/UserController.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/H2JdbcAuthenticationApplication.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/H2JdbcAuthenticationApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/H2JdbcAuthenticationApplication.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/H2JdbcAuthenticationApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/config/SecurityConfiguration.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/config/SecurityConfiguration.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/config/SecurityConfiguration.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/config/SecurityConfiguration.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/web/UserController.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/web/UserController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/web/UserController.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/h2/web/UserController.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/MySqlJdbcAuthenticationApplication.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/MySqlJdbcAuthenticationApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/MySqlJdbcAuthenticationApplication.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/MySqlJdbcAuthenticationApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/config/SecurityConfiguration.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/config/SecurityConfiguration.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/config/SecurityConfiguration.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/config/SecurityConfiguration.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/web/UserController.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/web/UserController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/web/UserController.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/mysql/web/UserController.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/PostgreJdbcAuthenticationApplication.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/PostgreJdbcAuthenticationApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/PostgreJdbcAuthenticationApplication.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/PostgreJdbcAuthenticationApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/config/SecurityConfiguration.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/config/SecurityConfiguration.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/config/SecurityConfiguration.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/config/SecurityConfiguration.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/web/UserController.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/web/UserController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/web/UserController.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/jdbcauthentication/postgre/web/UserController.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginPageFilter.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginPageFilter.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginPageFilter.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginPageFilter.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginPageInterceptor.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginPageInterceptor.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginPageInterceptor.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginPageInterceptor.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectApplication.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectApplication.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectMvcConfig.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectMvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectMvcConfig.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectMvcConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectSecurityConfig.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectSecurityConfig.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/LoginRedirectSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/UsersController.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/UsersController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/loginredirect/UsersController.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/loginredirect/UsersController.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleauthproviders/CustomAuthenticationProvider.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleauthproviders/CustomAuthenticationProvider.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleauthproviders/CustomAuthenticationProvider.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleauthproviders/CustomAuthenticationProvider.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthController.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthController.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthController.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthProvidersApplication.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthProvidersApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthProvidersApplication.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthProvidersApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthProvidersSecurityConfig.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthProvidersSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthProvidersSecurityConfig.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleauthproviders/MultipleAuthProvidersSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleentrypoints/MultipleEntryPointsApplication.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleentrypoints/MultipleEntryPointsApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleentrypoints/MultipleEntryPointsApplication.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleentrypoints/MultipleEntryPointsApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleentrypoints/MultipleEntryPointsSecurityConfig.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleentrypoints/MultipleEntryPointsSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleentrypoints/MultipleEntryPointsSecurityConfig.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleentrypoints/MultipleEntryPointsSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleentrypoints/PagesController.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleentrypoints/PagesController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multipleentrypoints/PagesController.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multipleentrypoints/PagesController.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginApplication.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginApplication.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginMvcConfig.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginMvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginMvcConfig.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginMvcConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginSecurityConfig.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginSecurityConfig.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multiplelogin/MultipleLoginSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multiplelogin/UsersController.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multiplelogin/UsersController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/multiplelogin/UsersController.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/multiplelogin/UsersController.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/ssl/HttpsEnabledApplication.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/ssl/HttpsEnabledApplication.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/ssl/HttpsEnabledApplication.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/ssl/HttpsEnabledApplication.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/ssl/SecurityConfig.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/ssl/SecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/ssl/SecurityConfig.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/ssl/SecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/ssl/WelcomeController.java b/spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/ssl/WelcomeController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/java/com/baeldung/ssl/WelcomeController.java rename to spring-security-modules/spring-security-web-boot-2/src/main/java/com/baeldung/ssl/WelcomeController.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-customlogouthandler.properties b/spring-security-modules/spring-security-web-boot-2/src/main/resources/application-customlogouthandler.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-customlogouthandler.properties rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/application-customlogouthandler.properties diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-defaults.properties b/spring-security-modules/spring-security-web-boot-2/src/main/resources/application-defaults.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-defaults.properties rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/application-defaults.properties diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-mysql.properties b/spring-security-modules/spring-security-web-boot-2/src/main/resources/application-mysql.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-mysql.properties rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/application-mysql.properties diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-postgre.properties b/spring-security-modules/spring-security-web-boot-2/src/main/resources/application-postgre.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-postgre.properties rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/application-postgre.properties diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-ssl.properties b/spring-security-modules/spring-security-web-boot-2/src/main/resources/application-ssl.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-ssl.properties rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/application-ssl.properties diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application.properties b/spring-security-modules/spring-security-web-boot-2/src/main/resources/application.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application.properties rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/application.properties diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/data-mysql.sql b/spring-security-modules/spring-security-web-boot-2/src/main/resources/data-mysql.sql similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/data-mysql.sql rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/data-mysql.sql diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/data-postgre.sql b/spring-security-modules/spring-security-web-boot-2/src/main/resources/data-postgre.sql similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/data-postgre.sql rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/data-postgre.sql diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/keystore/baeldung.p12 b/spring-security-modules/spring-security-web-boot-2/src/main/resources/keystore/baeldung.p12 similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/keystore/baeldung.p12 rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/keystore/baeldung.p12 diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-boot-2/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/persistence-h2.properties b/spring-security-modules/spring-security-web-boot-2/src/main/resources/persistence-h2.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/persistence-h2.properties rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/persistence-h2.properties diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/schema-mysql.sql b/spring-security-modules/spring-security-web-boot-2/src/main/resources/schema-mysql.sql similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/schema-mysql.sql rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/schema-mysql.sql diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/schema-postgre.sql b/spring-security-modules/spring-security-web-boot-2/src/main/resources/schema-postgre.sql similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/schema-postgre.sql rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/schema-postgre.sql diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/spring-security-login-redirect.xml b/spring-security-modules/spring-security-web-boot-2/src/main/resources/spring-security-login-redirect.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/spring-security-login-redirect.xml rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/spring-security-login-redirect.xml diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/spring-security-multiple-auth-providers.xml b/spring-security-modules/spring-security-web-boot-2/src/main/resources/spring-security-multiple-auth-providers.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/spring-security-multiple-auth-providers.xml rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/spring-security-multiple-auth-providers.xml diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/spring-security-multiple-entry.xml b/spring-security-modules/spring-security-web-boot-2/src/main/resources/spring-security-multiple-entry.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/spring-security-multiple-entry.xml rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/spring-security-multiple-entry.xml diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/403.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/403.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/403.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/403.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/adminPage.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/adminPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/adminPage.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/adminPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/index.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/index.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/index.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/index.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/login.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/login.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/login.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/login.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/loginAdmin.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/loginAdmin.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/loginAdmin.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/loginAdmin.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/loginUser.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/loginUser.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/loginUser.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/loginUser.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/login.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/login.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/login.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/login.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/loginWithWarning.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/loginWithWarning.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/loginWithWarning.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/loginWithWarning.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myAdminPage.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/myAdminPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myAdminPage.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/myAdminPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myGuestPage.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/myGuestPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myGuestPage.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/myGuestPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myUserPage.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/myUserPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myUserPage.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/multipleHttpElems/myUserPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/private.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/private.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/private.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/private.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/protectedLinks.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/protectedLinks.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/protectedLinks.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/protectedLinks.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/ssl/welcome.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/ssl/welcome.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/ssl/welcome.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/ssl/welcome.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/userMainPage.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/userMainPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/userMainPage.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/userMainPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/userPage.html b/spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/userPage.html similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/userPage.html rename to spring-security-modules/spring-security-web-boot-2/src/main/resources/templates/userPage.html diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/customlogouthandler/CustomLogoutHandlerIntegrationTest.java b/spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/customlogouthandler/CustomLogoutHandlerIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/customlogouthandler/CustomLogoutHandlerIntegrationTest.java rename to spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/customlogouthandler/CustomLogoutHandlerIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/jdbcauthentication/h2/SpringContextTest.java b/spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/jdbcauthentication/h2/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/jdbcauthentication/h2/SpringContextTest.java rename to spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/jdbcauthentication/h2/SpringContextTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/jdbcauthentication/h2/web/UserControllerLiveTest.java b/spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/jdbcauthentication/h2/web/UserControllerLiveTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/jdbcauthentication/h2/web/UserControllerLiveTest.java rename to spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/jdbcauthentication/h2/web/UserControllerLiveTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/jdbcauthentication/mysql/web/UserControllerLiveTest.java b/spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/jdbcauthentication/mysql/web/UserControllerLiveTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/jdbcauthentication/mysql/web/UserControllerLiveTest.java rename to spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/jdbcauthentication/mysql/web/UserControllerLiveTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/jdbcauthentication/postgre/web/UserControllerLiveTest.java b/spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/jdbcauthentication/postgre/web/UserControllerLiveTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/jdbcauthentication/postgre/web/UserControllerLiveTest.java rename to spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/jdbcauthentication/postgre/web/UserControllerLiveTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/web/HttpsApplicationIntegrationTest.java b/spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/web/HttpsApplicationIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/web/HttpsApplicationIntegrationTest.java rename to spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/web/HttpsApplicationIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/web/MultipleAuthProvidersApplicationIntegrationTest.java b/spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/web/MultipleAuthProvidersApplicationIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/web/MultipleAuthProvidersApplicationIntegrationTest.java rename to spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/web/MultipleAuthProvidersApplicationIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/web/MultipleEntryPointsIntegrationTest.java b/spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/web/MultipleEntryPointsIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/java/com/baeldung/web/MultipleEntryPointsIntegrationTest.java rename to spring-security-modules/spring-security-web-boot-2/src/test/java/com/baeldung/web/MultipleEntryPointsIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/resources/customlogouthandler/after.sql b/spring-security-modules/spring-security-web-boot-2/src/test/resources/customlogouthandler/after.sql similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/resources/customlogouthandler/after.sql rename to spring-security-modules/spring-security-web-boot-2/src/test/resources/customlogouthandler/after.sql diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/resources/customlogouthandler/application.properties b/spring-security-modules/spring-security-web-boot-2/src/test/resources/customlogouthandler/application.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/resources/customlogouthandler/application.properties rename to spring-security-modules/spring-security-web-boot-2/src/test/resources/customlogouthandler/application.properties diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/test/resources/customlogouthandler/before.sql b/spring-security-modules/spring-security-web-boot-2/src/test/resources/customlogouthandler/before.sql similarity index 100% rename from spring-security-modules/spring-security-mvc-boot-2/src/test/resources/customlogouthandler/before.sql rename to spring-security-modules/spring-security-web-boot-2/src/test/resources/customlogouthandler/before.sql From fe7894fae0257be7e962513a7917d69f5f218695 Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Thu, 13 Aug 2020 12:55:25 +0530 Subject: [PATCH 092/156] JAVA-67:renamed spring-security-mvc-custom to spring-security-web-mvc-custom --- .../.gitignore | 0 .../README.md | 0 .../pom.xml | 4 ++-- .../security/MySimpleUrlAuthenticationSuccessHandler.java | 0 .../src/main/java/com/baeldung/spring/MvcConfig.java | 0 .../main/java/com/baeldung/spring/MyUserDetailsService.java | 0 .../src/main/java/com/baeldung/spring/SecSecurityConfig.java | 0 .../main/java/com/baeldung/web/controller/BankController.java | 0 .../main/java/com/baeldung/web/controller/FooController.java | 0 .../java/com/baeldung/web/controller/LoginController.java | 0 .../java/com/baeldung/web/controller/PrintUserController.java | 0 .../src/main/java/com/baeldung/web/dto/Foo.java | 0 .../java/com/baeldung/web/interceptor/LoggerInterceptor.java | 0 .../com/baeldung/web/interceptor/SessionTimerInterceptor.java | 0 .../java/com/baeldung/web/interceptor/UserInterceptor.java | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/webSecurityConfig.xml | 0 .../src/main/webapp/WEB-INF/mvc-servlet.xml | 0 .../src/main/webapp/WEB-INF/view/anonymous.jsp | 0 .../src/main/webapp/WEB-INF/view/console.jsp | 0 .../src/main/webapp/WEB-INF/view/csrfHome.jsp | 0 .../src/main/webapp/WEB-INF/view/homepage.jsp | 0 .../src/main/webapp/WEB-INF/view/login.jsp | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../src/test/java/com/baeldung/SpringContextTest.java | 0 .../baeldung/security/csrf/CsrfAbstractIntegrationTest.java | 0 .../baeldung/security/csrf/CsrfDisabledIntegrationTest.java | 0 .../baeldung/security/csrf/CsrfEnabledIntegrationTest.java | 0 .../com/baeldung/security/spring/ManualSecurityConfig.java | 0 .../security/spring/ManualSecurityIntegrationTest.java | 0 .../com/baeldung/security/spring/SecurityWithCsrfConfig.java | 0 .../baeldung/security/spring/SecurityWithoutCsrfConfig.java | 0 .../web/interceptor/LoggerInterceptorIntegrationTest.java | 0 .../interceptor/SessionTimerInterceptorIntegrationTest.java | 0 .../web/interceptor/UserInterceptorIntegrationTest.java | 0 .../src/test/resources/.gitignore | 0 36 files changed, 2 insertions(+), 2 deletions(-) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/.gitignore (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/README.md (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/pom.xml (98%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/java/com/baeldung/spring/MvcConfig.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/java/com/baeldung/spring/MyUserDetailsService.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/java/com/baeldung/spring/SecSecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/java/com/baeldung/web/controller/BankController.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/java/com/baeldung/web/controller/FooController.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/java/com/baeldung/web/controller/LoginController.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/java/com/baeldung/web/controller/PrintUserController.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/java/com/baeldung/web/dto/Foo.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/java/com/baeldung/web/interceptor/LoggerInterceptor.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/java/com/baeldung/web/interceptor/SessionTimerInterceptor.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/java/com/baeldung/web/interceptor/UserInterceptor.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/resources/webSecurityConfig.xml (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/webapp/WEB-INF/mvc-servlet.xml (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/webapp/WEB-INF/view/anonymous.jsp (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/webapp/WEB-INF/view/console.jsp (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/webapp/WEB-INF/view/csrfHome.jsp (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/webapp/WEB-INF/view/homepage.jsp (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/webapp/WEB-INF/view/login.jsp (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/main/webapp/WEB-INF/web.xml (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/test/java/com/baeldung/SpringContextTest.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/test/java/com/baeldung/security/csrf/CsrfAbstractIntegrationTest.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/test/java/com/baeldung/security/csrf/CsrfDisabledIntegrationTest.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/test/java/com/baeldung/security/csrf/CsrfEnabledIntegrationTest.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/test/java/com/baeldung/security/spring/ManualSecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/test/java/com/baeldung/security/spring/ManualSecurityIntegrationTest.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/test/java/com/baeldung/security/spring/SecurityWithCsrfConfig.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/test/java/com/baeldung/security/spring/SecurityWithoutCsrfConfig.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/test/java/com/baeldung/web/interceptor/LoggerInterceptorIntegrationTest.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/test/java/com/baeldung/web/interceptor/SessionTimerInterceptorIntegrationTest.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/test/java/com/baeldung/web/interceptor/UserInterceptorIntegrationTest.java (100%) rename spring-security-modules/{spring-security-mvc-custom => spring-security-web-mvc-custom}/src/test/resources/.gitignore (100%) diff --git a/spring-security-modules/spring-security-mvc-custom/.gitignore b/spring-security-modules/spring-security-web-mvc-custom/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/.gitignore rename to spring-security-modules/spring-security-web-mvc-custom/.gitignore diff --git a/spring-security-modules/spring-security-mvc-custom/README.md b/spring-security-modules/spring-security-web-mvc-custom/README.md similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/README.md rename to spring-security-modules/spring-security-web-mvc-custom/README.md diff --git a/spring-security-modules/spring-security-mvc-custom/pom.xml b/spring-security-modules/spring-security-web-mvc-custom/pom.xml similarity index 98% rename from spring-security-modules/spring-security-mvc-custom/pom.xml rename to spring-security-modules/spring-security-web-mvc-custom/pom.xml index fe8c749c59..bd4a800bc5 100644 --- a/spring-security-modules/spring-security-mvc-custom/pom.xml +++ b/spring-security-modules/spring-security-web-mvc-custom/pom.xml @@ -2,9 +2,9 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <artifactId>spring-security-mvc-custom</artifactId> + <artifactId>spring-security-web-mvc-custom</artifactId> <version>0.1-SNAPSHOT</version> - <name>spring-security-mvc-custom</name> + <name>spring-security-web-mvc-custom</name> <packaging>war</packaging> <parent> diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/spring/MvcConfig.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/spring/MvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/spring/MvcConfig.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/spring/MvcConfig.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/spring/MyUserDetailsService.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/spring/MyUserDetailsService.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/spring/MyUserDetailsService.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/spring/MyUserDetailsService.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/spring/SecSecurityConfig.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/spring/SecSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/spring/SecSecurityConfig.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/spring/SecSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/controller/BankController.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/controller/BankController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/controller/BankController.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/controller/BankController.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/controller/FooController.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/controller/FooController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/controller/FooController.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/controller/FooController.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/controller/LoginController.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/controller/LoginController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/controller/LoginController.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/controller/LoginController.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/controller/PrintUserController.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/controller/PrintUserController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/controller/PrintUserController.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/controller/PrintUserController.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/dto/Foo.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/dto/Foo.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/dto/Foo.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/dto/Foo.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/interceptor/LoggerInterceptor.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/interceptor/LoggerInterceptor.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/interceptor/LoggerInterceptor.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/interceptor/LoggerInterceptor.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/interceptor/SessionTimerInterceptor.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/interceptor/SessionTimerInterceptor.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/interceptor/SessionTimerInterceptor.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/interceptor/SessionTimerInterceptor.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/interceptor/UserInterceptor.java b/spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/interceptor/UserInterceptor.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/java/com/baeldung/web/interceptor/UserInterceptor.java rename to spring-security-modules/spring-security-web-mvc-custom/src/main/java/com/baeldung/web/interceptor/UserInterceptor.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-mvc-custom/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-mvc-custom/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml b/spring-security-modules/spring-security-web-mvc-custom/src/main/resources/webSecurityConfig.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml rename to spring-security-modules/spring-security-web-mvc-custom/src/main/resources/webSecurityConfig.xml diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/anonymous.jsp b/spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/anonymous.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/anonymous.jsp rename to spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/anonymous.jsp diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp b/spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp rename to spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/csrfHome.jsp b/spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/csrfHome.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/csrfHome.jsp rename to spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/csrfHome.jsp diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp rename to spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/login.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/login.jsp rename to spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/view/login.jsp diff --git a/spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/web.xml b/spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/main/webapp/WEB-INF/web.xml rename to spring-security-modules/spring-security-web-mvc-custom/src/main/webapp/WEB-INF/web.xml diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfAbstractIntegrationTest.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfAbstractIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfAbstractIntegrationTest.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfAbstractIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfDisabledIntegrationTest.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfDisabledIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfDisabledIntegrationTest.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfDisabledIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfEnabledIntegrationTest.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfEnabledIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfEnabledIntegrationTest.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/csrf/CsrfEnabledIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/spring/ManualSecurityConfig.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/spring/ManualSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/spring/ManualSecurityConfig.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/spring/ManualSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/spring/ManualSecurityIntegrationTest.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/spring/ManualSecurityIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/spring/ManualSecurityIntegrationTest.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/spring/ManualSecurityIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/spring/SecurityWithCsrfConfig.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/spring/SecurityWithCsrfConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/spring/SecurityWithCsrfConfig.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/spring/SecurityWithCsrfConfig.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/spring/SecurityWithoutCsrfConfig.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/spring/SecurityWithoutCsrfConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/security/spring/SecurityWithoutCsrfConfig.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/security/spring/SecurityWithoutCsrfConfig.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/web/interceptor/LoggerInterceptorIntegrationTest.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/web/interceptor/LoggerInterceptorIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/web/interceptor/LoggerInterceptorIntegrationTest.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/web/interceptor/LoggerInterceptorIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/web/interceptor/SessionTimerInterceptorIntegrationTest.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/web/interceptor/SessionTimerInterceptorIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/web/interceptor/SessionTimerInterceptorIntegrationTest.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/web/interceptor/SessionTimerInterceptorIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/web/interceptor/UserInterceptorIntegrationTest.java b/spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/web/interceptor/UserInterceptorIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/java/com/baeldung/web/interceptor/UserInterceptorIntegrationTest.java rename to spring-security-modules/spring-security-web-mvc-custom/src/test/java/com/baeldung/web/interceptor/UserInterceptorIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-custom/src/test/resources/.gitignore b/spring-security-modules/spring-security-web-mvc-custom/src/test/resources/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-custom/src/test/resources/.gitignore rename to spring-security-modules/spring-security-web-mvc-custom/src/test/resources/.gitignore From ab84d1c6d04ca9d16d256e62e8815f17fd25ce57 Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Thu, 13 Aug 2020 12:56:26 +0530 Subject: [PATCH 093/156] JAVA-67:renamed spring-security-mvc-digest-auth to spring-security-web-digest-auth --- .../.gitignore | 0 .../README.md | 0 .../pom.xml | 4 ++-- .../com/baeldung/basic/MyBasicAuthenticationEntryPoint.java | 0 .../HttpComponentsClientHttpRequestFactoryDigestAuth.java | 0 .../src/main/java/com/baeldung/spring/ClientConfig.java | 0 .../src/main/java/com/baeldung/spring/MvcConfig.java | 0 .../src/main/java/com/baeldung/spring/SecSecurityConfig.java | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/webSecurityConfig.xml | 0 .../src/main/webapp/WEB-INF/mvc-servlet.xml | 0 .../src/main/webapp/WEB-INF/view/homepage.jsp | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../src/test/java/com/baeldung/SpringContextTest.java | 0 .../src/test/java/com/baeldung/client/RawClientLiveTest.java | 0 .../src/test/resources/.gitignore | 0 16 files changed, 2 insertions(+), 2 deletions(-) rename spring-security-modules/{spring-security-mvc-digest-auth => spring-security-web-digest-auth}/.gitignore (100%) rename spring-security-modules/{spring-security-mvc-digest-auth => spring-security-web-digest-auth}/README.md (100%) rename spring-security-modules/{spring-security-mvc-digest-auth => spring-security-web-digest-auth}/pom.xml (98%) rename spring-security-modules/{spring-security-mvc-digest-auth => spring-security-web-digest-auth}/src/main/java/com/baeldung/basic/MyBasicAuthenticationEntryPoint.java (100%) rename spring-security-modules/{spring-security-mvc-digest-auth => spring-security-web-digest-auth}/src/main/java/com/baeldung/client/HttpComponentsClientHttpRequestFactoryDigestAuth.java (100%) rename spring-security-modules/{spring-security-mvc-digest-auth => spring-security-web-digest-auth}/src/main/java/com/baeldung/spring/ClientConfig.java (100%) rename spring-security-modules/{spring-security-mvc-digest-auth => spring-security-web-digest-auth}/src/main/java/com/baeldung/spring/MvcConfig.java (100%) rename spring-security-modules/{spring-security-mvc-digest-auth => spring-security-web-digest-auth}/src/main/java/com/baeldung/spring/SecSecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-digest-auth => spring-security-web-digest-auth}/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-mvc-digest-auth => spring-security-web-digest-auth}/src/main/resources/webSecurityConfig.xml (100%) rename spring-security-modules/{spring-security-mvc-digest-auth => spring-security-web-digest-auth}/src/main/webapp/WEB-INF/mvc-servlet.xml (100%) rename spring-security-modules/{spring-security-mvc-digest-auth => spring-security-web-digest-auth}/src/main/webapp/WEB-INF/view/homepage.jsp (100%) rename spring-security-modules/{spring-security-mvc-digest-auth => spring-security-web-digest-auth}/src/main/webapp/WEB-INF/web.xml (100%) rename spring-security-modules/{spring-security-mvc-digest-auth => spring-security-web-digest-auth}/src/test/java/com/baeldung/SpringContextTest.java (100%) rename spring-security-modules/{spring-security-mvc-digest-auth => spring-security-web-digest-auth}/src/test/java/com/baeldung/client/RawClientLiveTest.java (100%) rename spring-security-modules/{spring-security-mvc-digest-auth => spring-security-web-digest-auth}/src/test/resources/.gitignore (100%) diff --git a/spring-security-modules/spring-security-mvc-digest-auth/.gitignore b/spring-security-modules/spring-security-web-digest-auth/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/.gitignore rename to spring-security-modules/spring-security-web-digest-auth/.gitignore diff --git a/spring-security-modules/spring-security-mvc-digest-auth/README.md b/spring-security-modules/spring-security-web-digest-auth/README.md similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/README.md rename to spring-security-modules/spring-security-web-digest-auth/README.md diff --git a/spring-security-modules/spring-security-mvc-digest-auth/pom.xml b/spring-security-modules/spring-security-web-digest-auth/pom.xml similarity index 98% rename from spring-security-modules/spring-security-mvc-digest-auth/pom.xml rename to spring-security-modules/spring-security-web-digest-auth/pom.xml index 8061235c71..2579a11f97 100644 --- a/spring-security-modules/spring-security-mvc-digest-auth/pom.xml +++ b/spring-security-modules/spring-security-web-digest-auth/pom.xml @@ -2,9 +2,9 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <artifactId>spring-security-mvc-digest-auth</artifactId> + <artifactId>spring-security-web-digest-auth</artifactId> <version>0.1-SNAPSHOT</version> - <name>spring-security-mvc-digest-auth</name> + <name>spring-security-web-digest-auth</name> <packaging>war</packaging> <parent> diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/basic/MyBasicAuthenticationEntryPoint.java b/spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/basic/MyBasicAuthenticationEntryPoint.java similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/basic/MyBasicAuthenticationEntryPoint.java rename to spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/basic/MyBasicAuthenticationEntryPoint.java diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/client/HttpComponentsClientHttpRequestFactoryDigestAuth.java b/spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/client/HttpComponentsClientHttpRequestFactoryDigestAuth.java similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/client/HttpComponentsClientHttpRequestFactoryDigestAuth.java rename to spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/client/HttpComponentsClientHttpRequestFactoryDigestAuth.java diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/spring/ClientConfig.java b/spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/spring/ClientConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/spring/ClientConfig.java rename to spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/spring/ClientConfig.java diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/spring/MvcConfig.java b/spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/spring/MvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/spring/MvcConfig.java rename to spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/spring/MvcConfig.java diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/spring/SecSecurityConfig.java b/spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/spring/SecSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/main/java/com/baeldung/spring/SecSecurityConfig.java rename to spring-security-modules/spring-security-web-digest-auth/src/main/java/com/baeldung/spring/SecSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-digest-auth/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-digest-auth/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/main/resources/webSecurityConfig.xml b/spring-security-modules/spring-security-web-digest-auth/src/main/resources/webSecurityConfig.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/main/resources/webSecurityConfig.xml rename to spring-security-modules/spring-security-web-digest-auth/src/main/resources/webSecurityConfig.xml diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-modules/spring-security-web-digest-auth/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-security-modules/spring-security-web-digest-auth/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-modules/spring-security-web-digest-auth/src/main/webapp/WEB-INF/view/homepage.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/main/webapp/WEB-INF/view/homepage.jsp rename to spring-security-modules/spring-security-web-digest-auth/src/main/webapp/WEB-INF/view/homepage.jsp diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/main/webapp/WEB-INF/web.xml b/spring-security-modules/spring-security-web-digest-auth/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/main/webapp/WEB-INF/web.xml rename to spring-security-modules/spring-security-web-digest-auth/src/main/webapp/WEB-INF/web.xml diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-digest-auth/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-digest-auth/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/test/java/com/baeldung/client/RawClientLiveTest.java b/spring-security-modules/spring-security-web-digest-auth/src/test/java/com/baeldung/client/RawClientLiveTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/test/java/com/baeldung/client/RawClientLiveTest.java rename to spring-security-modules/spring-security-web-digest-auth/src/test/java/com/baeldung/client/RawClientLiveTest.java diff --git a/spring-security-modules/spring-security-mvc-digest-auth/src/test/resources/.gitignore b/spring-security-modules/spring-security-web-digest-auth/src/test/resources/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-digest-auth/src/test/resources/.gitignore rename to spring-security-modules/spring-security-web-digest-auth/src/test/resources/.gitignore From daed0a310a4adc5b711fd84210a360ac0d3957f6 Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Thu, 13 Aug 2020 12:57:25 +0530 Subject: [PATCH 094/156] JAVA-67: module pom changes as per renamed modules --- spring-security-modules/pom.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/spring-security-modules/pom.xml b/spring-security-modules/pom.xml index 472c6b6e0d..d7b5844e6f 100644 --- a/spring-security-modules/pom.xml +++ b/spring-security-modules/pom.xml @@ -16,14 +16,14 @@ <modules> <module>spring-security-acl</module> <module>spring-security-auth0</module> - <module>spring-security-angular/server</module> + <module>spring-security-web-angular/server</module> <module>spring-security-config</module> <module>spring-security-core</module> - <module>spring-security-mvc</module> - <module>spring-security-mvc-boot-1</module> - <module>spring-security-mvc-boot-2</module> - <module>spring-security-mvc-custom</module> - <module>spring-security-mvc-digest-auth</module> + <module>spring-security-web-mvc</module> + <module>spring-security-web-boot-1</module> + <module>spring-security-web-boot-2</module> + <module>spring-security-web-mvc-custom</module> + <module>spring-security-web-digest-auth</module> <module>spring-security-mvc-jsonview</module> <module>spring-security-ldap</module> <module>spring-security-mvc-login</module> From 6ce7fee3ffca103d84bba26f1dce438a5718b321 Mon Sep 17 00:00:00 2001 From: kwoyke <krzysztofwoyke@gmail.com> Date: Thu, 13 Aug 2020 11:38:50 +0200 Subject: [PATCH 095/156] BAEL-4541: Fix typos in the spring-kafka module (#9857) --- .../spring/kafka/KafkaApplication.java | 30 +++++++++---------- .../spring/kafka/KafkaTopicConfig.java | 4 +-- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java index fde56bebc0..9b79f716e9 100644 --- a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java +++ b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java @@ -30,23 +30,23 @@ public class KafkaApplication { MessageListener listener = context.getBean(MessageListener.class); /* * Sending a Hello World message to topic 'baeldung'. - * Must be recieved by both listeners with group foo + * Must be received by both listeners with group foo * and bar with containerFactory fooKafkaListenerContainerFactory * and barKafkaListenerContainerFactory respectively. - * It will also be recieved by the listener with - * headersKafkaListenerContainerFactory as container factory + * It will also be received by the listener with + * headersKafkaListenerContainerFactory as container factory. */ producer.sendMessage("Hello, World!"); listener.latch.await(10, TimeUnit.SECONDS); /* - * Sending message to a topic with 5 partition, + * Sending message to a topic with 5 partitions, * each message to a different partition. But as per * listener configuration, only the messages from * partition 0 and 3 will be consumed. */ for (int i = 0; i < 5; i++) { - producer.sendMessageToPartion("Hello To Partioned Topic!", i); + producer.sendMessageToPartition("Hello To Partitioned Topic!", i); } listener.partitionLatch.await(10, TimeUnit.SECONDS); @@ -61,7 +61,7 @@ public class KafkaApplication { /* * Sending message to 'greeting' topic. This will send - * and recieved a java object with the help of + * and received a java object with the help of * greetingKafkaListenerContainerFactory. */ producer.sendGreetingMessage(new Greeting("Greetings", "World!")); @@ -92,7 +92,7 @@ public class KafkaApplication { private String topicName; @Value(value = "${partitioned.topic.name}") - private String partionedTopicName; + private String partitionedTopicName; @Value(value = "${filtered.topic.name}") private String filteredTopicName; @@ -119,8 +119,8 @@ public class KafkaApplication { }); } - public void sendMessageToPartion(String message, int partition) { - kafkaTemplate.send(partionedTopicName, partition, null, message); + public void sendMessageToPartition(String message, int partition) { + kafkaTemplate.send(partitionedTopicName, partition, null, message); } public void sendMessageToFiltered(String message) { @@ -144,37 +144,37 @@ public class KafkaApplication { @KafkaListener(topics = "${message.topic.name}", groupId = "foo", containerFactory = "fooKafkaListenerContainerFactory") public void listenGroupFoo(String message) { - System.out.println("Received Messasge in group 'foo': " + message); + System.out.println("Received Message in group 'foo': " + message); latch.countDown(); } @KafkaListener(topics = "${message.topic.name}", groupId = "bar", containerFactory = "barKafkaListenerContainerFactory") public void listenGroupBar(String message) { - System.out.println("Received Messasge in group 'bar': " + message); + System.out.println("Received Message in group 'bar': " + message); latch.countDown(); } @KafkaListener(topics = "${message.topic.name}", containerFactory = "headersKafkaListenerContainerFactory") public void listenWithHeaders(@Payload String message, @Header(KafkaHeaders.RECEIVED_PARTITION_ID) int partition) { - System.out.println("Received Messasge: " + message + " from partition: " + partition); + System.out.println("Received Message: " + message + " from partition: " + partition); latch.countDown(); } @KafkaListener(topicPartitions = @TopicPartition(topic = "${partitioned.topic.name}", partitions = { "0", "3" }), containerFactory = "partitionsKafkaListenerContainerFactory") - public void listenToParition(@Payload String message, @Header(KafkaHeaders.RECEIVED_PARTITION_ID) int partition) { + public void listenToPartition(@Payload String message, @Header(KafkaHeaders.RECEIVED_PARTITION_ID) int partition) { System.out.println("Received Message: " + message + " from partition: " + partition); this.partitionLatch.countDown(); } @KafkaListener(topics = "${filtered.topic.name}", containerFactory = "filterKafkaListenerContainerFactory") public void listenWithFilter(String message) { - System.out.println("Recieved Message in filtered listener: " + message); + System.out.println("Received Message in filtered listener: " + message); this.filterLatch.countDown(); } @KafkaListener(topics = "${greeting.topic.name}", containerFactory = "greetingKafkaListenerContainerFactory") public void greetingListener(Greeting greeting) { - System.out.println("Recieved greeting message: " + greeting); + System.out.println("Received greeting message: " + greeting); this.greetingLatch.countDown(); } diff --git a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaTopicConfig.java b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaTopicConfig.java index fb60fadde4..00e4147cd0 100644 --- a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaTopicConfig.java +++ b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaTopicConfig.java @@ -20,7 +20,7 @@ public class KafkaTopicConfig { private String topicName; @Value(value = "${partitioned.topic.name}") - private String partionedTopicName; + private String partitionedTopicName; @Value(value = "${filtered.topic.name}") private String filteredTopicName; @@ -42,7 +42,7 @@ public class KafkaTopicConfig { @Bean public NewTopic topic2() { - return new NewTopic(partionedTopicName, 6, (short) 1); + return new NewTopic(partitionedTopicName, 6, (short) 1); } @Bean From ee2eae1056be8334bff0c83a119c778d5374557d Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Thu, 13 Aug 2020 16:07:42 +0530 Subject: [PATCH 096/156] JAVA-67: README updated for next-prev links --- spring-security-modules/spring-security-web-boot-1/README.md | 2 +- spring-security-modules/spring-security-web-boot-2/README.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/spring-security-modules/spring-security-web-boot-1/README.md b/spring-security-modules/spring-security-web-boot-1/README.md index f2c161d387..042fedf62b 100644 --- a/spring-security-modules/spring-security-web-boot-1/README.md +++ b/spring-security-modules/spring-security-web-boot-1/README.md @@ -13,5 +13,5 @@ The "REST With Spring" Classes: http://github.learnspringsecurity.com - [Granted Authority Versus Role in Spring Security](https://www.baeldung.com/spring-security-granted-authority-vs-role) - [Spring Security – Whitelist IP Range](https://www.baeldung.com/spring-security-whitelist-ip-range) - [Find the Registered Spring Security Filters](https://www.baeldung.com/spring-security-registered-filters) -- More articles: [[next -->]](/../spring-security-mvc-boot-2) +- More articles: [[next -->]](/spring-security-modules/spring-security-web-boot-2) diff --git a/spring-security-modules/spring-security-web-boot-2/README.md b/spring-security-modules/spring-security-web-boot-2/README.md index bbbf514c90..f5fc3a890d 100644 --- a/spring-security-modules/spring-security-web-boot-2/README.md +++ b/spring-security-modules/spring-security-web-boot-2/README.md @@ -14,3 +14,4 @@ The "REST With Spring" Classes: http://github.learnspringsecurity.com - [Spring Security: Exploring JDBC Authentication](https://www.baeldung.com/spring-security-jdbc-authentication) - [Spring Security Custom Logout Handler](https://www.baeldung.com/spring-security-custom-logout-handler) - [Redirecting Logged-in Users with Spring Security](https://www.baeldung.com/spring-security-redirect-logged-in) +- More articles: [[<-- prev]](/spring-security-modules/spring-security-web-boot-1) From a0ee1712e6645250e83153f6b7787daed718af8b Mon Sep 17 00:00:00 2001 From: sahilsingla112 <sahilsingla112@gmail.com> Date: Thu, 13 Aug 2020 19:07:46 +0530 Subject: [PATCH 097/156] BAEL-4431-jdbcmetadata: Article about extracting metadata using JDBC (#9815) * BAEL-4431-jdbcmetadata: Article about extracting metadata using JDBC * BAEL-4431-jdbcmetadata: Review comments, fixed formatting issues by using the recommended intelij formatter Co-authored-by: sahil.singla <sahil.singla@99acres.com> --- .../baeldung/jdbcmetadata/DatabaseConfig.java | 49 ++++++++ .../jdbcmetadata/JdbcMetadataApplication.java | 30 +++++ .../jdbcmetadata/MetadataExtractor.java | 113 ++++++++++++++++++ 3 files changed, 192 insertions(+) create mode 100644 persistence-modules/core-java-persistence/src/main/java/com/baeldung/jdbcmetadata/DatabaseConfig.java create mode 100644 persistence-modules/core-java-persistence/src/main/java/com/baeldung/jdbcmetadata/JdbcMetadataApplication.java create mode 100644 persistence-modules/core-java-persistence/src/main/java/com/baeldung/jdbcmetadata/MetadataExtractor.java diff --git a/persistence-modules/core-java-persistence/src/main/java/com/baeldung/jdbcmetadata/DatabaseConfig.java b/persistence-modules/core-java-persistence/src/main/java/com/baeldung/jdbcmetadata/DatabaseConfig.java new file mode 100644 index 0000000000..8ad689041e --- /dev/null +++ b/persistence-modules/core-java-persistence/src/main/java/com/baeldung/jdbcmetadata/DatabaseConfig.java @@ -0,0 +1,49 @@ +package com.baeldung.jdbcmetadata; + +import org.apache.log4j.Logger; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +public class DatabaseConfig { + private static final Logger LOG = Logger.getLogger(DatabaseConfig.class); + + private Connection connection; + + public DatabaseConfig() { + try { + Class.forName("org.h2.Driver"); + String url = "jdbc:h2:mem:testdb"; + connection = DriverManager.getConnection(url, "sa", ""); + } catch (ClassNotFoundException | SQLException e) { + LOG.error(e); + } + } + + public Connection getConnection() { + return connection; + } + + public void init() { + createTables(); + createViews(); + } + + private void createTables() { + try { + connection.createStatement().executeUpdate("create table CUSTOMER (ID int primary key auto_increment, NAME VARCHAR(45))"); + connection.createStatement().executeUpdate("create table CUST_ADDRESS (ID VARCHAR(36), CUST_ID int, ADDRESS VARCHAR(45), FOREIGN KEY (CUST_ID) REFERENCES CUSTOMER(ID))"); + } catch (SQLException e) { + LOG.error(e); + } + } + + private void createViews() { + try { + connection.createStatement().executeUpdate("CREATE VIEW CUSTOMER_VIEW AS SELECT * FROM CUSTOMER"); + } catch (SQLException e) { + LOG.error(e); + } + } +} diff --git a/persistence-modules/core-java-persistence/src/main/java/com/baeldung/jdbcmetadata/JdbcMetadataApplication.java b/persistence-modules/core-java-persistence/src/main/java/com/baeldung/jdbcmetadata/JdbcMetadataApplication.java new file mode 100644 index 0000000000..591a14f3b5 --- /dev/null +++ b/persistence-modules/core-java-persistence/src/main/java/com/baeldung/jdbcmetadata/JdbcMetadataApplication.java @@ -0,0 +1,30 @@ +package com.baeldung.jdbcmetadata; + +import org.apache.log4j.Logger; + +import java.sql.SQLException; + +public class JdbcMetadataApplication { + + private static final Logger LOG = Logger.getLogger(JdbcMetadataApplication.class); + + public static void main(String[] args) { + DatabaseConfig databaseConfig = new DatabaseConfig(); + databaseConfig.init(); + try { + MetadataExtractor metadataExtractor = new MetadataExtractor(databaseConfig.getConnection()); + metadataExtractor.extractTableInfo(); + metadataExtractor.extractSystemTables(); + metadataExtractor.extractViews(); + String tableName = "CUSTOMER"; + metadataExtractor.extractColumnInfo(tableName); + metadataExtractor.extractPrimaryKeys(tableName); + metadataExtractor.extractForeignKeys("CUST_ADDRESS"); + metadataExtractor.extractDatabaseInfo(); + metadataExtractor.extractUserName(); + metadataExtractor.extractSupportedFeatures(); + } catch (SQLException e) { + LOG.error("Error while executing SQL statements", e); + } + } +} diff --git a/persistence-modules/core-java-persistence/src/main/java/com/baeldung/jdbcmetadata/MetadataExtractor.java b/persistence-modules/core-java-persistence/src/main/java/com/baeldung/jdbcmetadata/MetadataExtractor.java new file mode 100644 index 0000000000..27c615aebc --- /dev/null +++ b/persistence-modules/core-java-persistence/src/main/java/com/baeldung/jdbcmetadata/MetadataExtractor.java @@ -0,0 +1,113 @@ +package com.baeldung.jdbcmetadata; + +import java.sql.Connection; +import java.sql.DatabaseMetaData; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class MetadataExtractor { + private final DatabaseMetaData databaseMetaData; + + public MetadataExtractor(Connection connection) throws SQLException { + this.databaseMetaData = connection.getMetaData(); + DatabaseMetaData databaseMetaData = connection.getMetaData(); + } + + public void extractTableInfo() throws SQLException { + ResultSet resultSet = databaseMetaData.getTables(null, null, "CUST%", new String[] { "TABLE" }); + while (resultSet.next()) { + // Print the names of existing tables + System.out.println(resultSet.getString("TABLE_NAME")); + System.out.println(resultSet.getString("REMARKS")); + } + } + + public void extractSystemTables() throws SQLException { + ResultSet resultSet = databaseMetaData.getTables(null, null, null, new String[] { "SYSTEM TABLE" }); + while (resultSet.next()) { + // Print the names of system tables + System.out.println(resultSet.getString("TABLE_NAME")); + } + } + + public void extractViews() throws SQLException { + ResultSet resultSet = databaseMetaData.getTables(null, null, null, new String[] { "VIEW" }); + while (resultSet.next()) { + // Print the names of existing views + System.out.println(resultSet.getString("TABLE_NAME")); + } + } + + public void extractColumnInfo(String tableName) throws SQLException { + ResultSet columns = databaseMetaData.getColumns(null, null, tableName, null); + + while (columns.next()) { + String columnName = columns.getString("COLUMN_NAME"); + String columnSize = columns.getString("COLUMN_SIZE"); + String datatype = columns.getString("DATA_TYPE"); + String isNullable = columns.getString("IS_NULLABLE"); + String isAutoIncrement = columns.getString("IS_AUTOINCREMENT"); + System.out.println(String.format("ColumnName: %s, columnSize: %s, datatype: %s, isColumnNullable: %s, isAutoIncrementEnabled: %s", columnName, columnSize, datatype, isNullable, isAutoIncrement)); + } + } + + public void extractPrimaryKeys(String tableName) throws SQLException { + ResultSet primaryKeys = databaseMetaData.getPrimaryKeys(null, null, tableName); + while (primaryKeys.next()) { + String primaryKeyColumnName = primaryKeys.getString("COLUMN_NAME"); + String primaryKeyName = primaryKeys.getString("PK_NAME"); + System.out.println(String.format("columnName:%s, pkName:%s", primaryKeyColumnName, primaryKeyName)); + } + } + + public void fun() throws SQLException { + + } + + public void extractForeignKeys(String tableName) throws SQLException { + ResultSet foreignKeys = databaseMetaData.getImportedKeys(null, null, tableName); + while (foreignKeys.next()) { + String pkTableName = foreignKeys.getString("PKTABLE_NAME"); + String fkTableName = foreignKeys.getString("FKTABLE_NAME"); + String pkColumnName = foreignKeys.getString("PKCOLUMN_NAME"); + String fkColumnName = foreignKeys.getString("FKCOLUMN_NAME"); + System.out.println(String.format("pkTableName:%s, fkTableName:%s, pkColumnName:%s, fkColumnName:%s", pkTableName, fkTableName, pkColumnName, fkColumnName)); + } + } + + public void extractDatabaseInfo() throws SQLException { + String productName = databaseMetaData.getDatabaseProductName(); + String productVersion = databaseMetaData.getDatabaseProductVersion(); + + String driverName = databaseMetaData.getDriverName(); + String driverVersion = databaseMetaData.getDriverVersion(); + + System.out.println(String.format("Product name:%s, Product version:%s", productName, productVersion)); + System.out.println(String.format("Driver name:%s, Driver Version:%s", driverName, driverVersion)); + } + + public void extractUserName() throws SQLException { + String userName = databaseMetaData.getUserName(); + System.out.println(userName); + ResultSet schemas = databaseMetaData.getSchemas(); + while (schemas.next()) { + String table_schem = schemas.getString("TABLE_SCHEM"); + String table_catalog = schemas.getString("TABLE_CATALOG"); + System.out.println(String.format("Table_schema:%s, Table_catalog:%s", table_schem, table_catalog)); + } + } + + public void extractSupportedFeatures() throws SQLException { + System.out.println("Supports scrollable & Updatable Result Set: " + databaseMetaData.supportsResultSetConcurrency(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE)); + System.out.println("Supports Full Outer Joins: " + databaseMetaData.supportsFullOuterJoins()); + System.out.println("Supports Stored Procedures: " + databaseMetaData.supportsStoredProcedures()); + System.out.println("Supports Subqueries in 'EXISTS': " + databaseMetaData.supportsSubqueriesInExists()); + System.out.println("Supports Transactions: " + databaseMetaData.supportsTransactions()); + System.out.println("Supports Core SQL Grammar: " + databaseMetaData.supportsCoreSQLGrammar()); + System.out.println("Supports Batch Updates: " + databaseMetaData.supportsBatchUpdates()); + System.out.println("Supports Column Aliasing: " + databaseMetaData.supportsColumnAliasing()); + System.out.println("Supports Savepoints: " + databaseMetaData.supportsSavepoints()); + System.out.println("Supports Union All: " + databaseMetaData.supportsUnionAll()); + System.out.println("Supports Union: " + databaseMetaData.supportsUnion()); + } +} From ad7f2cbefa6146205cc9d9bfcd1d30a65b1ac832 Mon Sep 17 00:00:00 2001 From: Loredana Crusoveanu <lore.crusoveanu@gmail.com> Date: Thu, 13 Aug 2020 17:09:19 +0300 Subject: [PATCH 098/156] Update README.md --- algorithms-searching/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/algorithms-searching/README.md b/algorithms-searching/README.md index 260a4ea714..aed3c7d21f 100644 --- a/algorithms-searching/README.md +++ b/algorithms-searching/README.md @@ -11,4 +11,3 @@ This module contains articles about searching algorithms. - [Monte Carlo Tree Search for Tic-Tac-Toe Game](https://www.baeldung.com/java-monte-carlo-tree-search) - [Range Search Algorithm in Java](https://www.baeldung.com/java-range-search) - [Fast Pattern Matching of Strings Using Suffix Tree](https://www.baeldung.com/java-pattern-matching-suffix-tree) -- [Topological Sort of Directed Acyclic Graph](https://www.baeldung.com/cs/dag-topological-sort) From 2fe9016a23b0e6860a0b17e5a5c63c1ce11d5d3a Mon Sep 17 00:00:00 2001 From: root <anmoldeep0123@gmail.com> Date: Thu, 13 Aug 2020 16:10:01 +0000 Subject: [PATCH 099/156] final comments --- .../main/java/com/baeldung/loadedclasslisting/Launcher.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/Launcher.java b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/Launcher.java index 30db6b0bb7..bd9573d6b5 100644 --- a/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/Launcher.java +++ b/core-java-modules/core-java-jvm-2/src/main/java/com/baeldung/loadedclasslisting/Launcher.java @@ -11,9 +11,9 @@ public class Launcher { } private static void printClassesLoadedBy(String classLoaderType) { + System.out.println(classLoaderType + " ClassLoader : "); Class<?>[] classes = ListLoadedClassesAgent.listLoadedClasses(classLoaderType); Arrays.asList(classes) - .forEach(clazz -> System.out.println( - classLoaderType + " ClassLoader : " + clazz.getCanonicalName())); + .forEach(clazz -> System.out.println(clazz.getCanonicalName())); } } From 2addd74680639e4864a45ea35d2a02280bfa0dbe Mon Sep 17 00:00:00 2001 From: Krzysiek <krzysztofwoyke@gmail.com> Date: Thu, 13 Aug 2020 22:07:42 +0200 Subject: [PATCH 100/156] JAVA-1638: Get rid of the overriden spring-boot.version property --- spring-5-reactive-oauth/pom.xml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/spring-5-reactive-oauth/pom.xml b/spring-5-reactive-oauth/pom.xml index e9882a6d32..15f5dcacaa 100644 --- a/spring-5-reactive-oauth/pom.xml +++ b/spring-5-reactive-oauth/pom.xml @@ -7,7 +7,7 @@ <version>1.0.0-SNAPSHOT</version> <name>spring-5-reactive-oauth</name> <packaging>jar</packaging> - <description>WebFluc and Spring Security OAuth</description> + <description>WebFlux and Spring Security OAuth</description> <parent> <groupId>com.baeldung</groupId> @@ -64,8 +64,4 @@ </plugins> </build> - <properties> - <spring-boot.version>2.1.0.RELEASE</spring-boot.version> - </properties> - </project> From 925c5655b7093c65ef690224f0713d5ed1abb48e Mon Sep 17 00:00:00 2001 From: CHANDRAKANT Kumar <kumar.chandrakant@soprabanking.com> Date: Fri, 14 Aug 2020 12:46:33 +0530 Subject: [PATCH 101/156] Incorporated review comments on the pull request. --- spring-webflux-threads/pom.xml | 5 ++++- .../src/main/java/com/baeldung/webflux/Controller.java | 2 +- spring-webflux-threads/src/main/resources/application.yml | 7 ------- 3 files changed, 5 insertions(+), 9 deletions(-) delete mode 100644 spring-webflux-threads/src/main/resources/application.yml diff --git a/spring-webflux-threads/pom.xml b/spring-webflux-threads/pom.xml index e5b5bafd3b..15224fcd14 100644 --- a/spring-webflux-threads/pom.xml +++ b/spring-webflux-threads/pom.xml @@ -7,7 +7,7 @@ <version>1.0.0-SNAPSHOT</version> <name>spring-webflux-threads</name> <packaging>jar</packaging> - <description>Spring WebFlux AMQP Sample</description> + <description>Spring WebFlux Threads Sample</description> <parent> <groupId>com.baeldung</groupId> @@ -20,6 +20,7 @@ <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> + <!-- Uncomment the following to switch from Netty to Tomcat/Jetty --> <!-- <exclusions> <exclusion> @@ -29,12 +30,14 @@ </exclusions> --> </dependency> + <!-- Uncomment the following to switch from Netty to Tomcat --> <!-- <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </dependency> --> + <!-- Uncomment the following to switch from Netty to Jetty --> <!-- <dependency> <groupId>org.springframework.boot</groupId> diff --git a/spring-webflux-threads/src/main/java/com/baeldung/webflux/Controller.java b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Controller.java index 7036deb998..ec6d7a596b 100644 --- a/spring-webflux-threads/src/main/java/com/baeldung/webflux/Controller.java +++ b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Controller.java @@ -81,7 +81,7 @@ public class Controller { return Flux.fromIterable(getThreads()); } - @GetMapping("/thareds/reactor-kafka") + @GetMapping("/threads/reactor-kafka") public Flux<String> getIndexKafka() { Map<String, Object> producerProps = new HashMap<>(); producerProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092"); diff --git a/spring-webflux-threads/src/main/resources/application.yml b/spring-webflux-threads/src/main/resources/application.yml deleted file mode 100644 index 5addcff6c2..0000000000 --- a/spring-webflux-threads/src/main/resources/application.yml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - From 4daecbbc89397f082b8962a5ed815ce1ecbb2694 Mon Sep 17 00:00:00 2001 From: CHANDRAKANT Kumar <kumar.chandrakant@soprabanking.com> Date: Fri, 14 Aug 2020 12:49:30 +0530 Subject: [PATCH 102/156] Added comments in README regarding Mongo and Kafka processes. --- spring-webflux-threads/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spring-webflux-threads/README.md b/spring-webflux-threads/README.md index ab64d897cc..26013d73e1 100644 --- a/spring-webflux-threads/README.md +++ b/spring-webflux-threads/README.md @@ -1,6 +1,7 @@ ## Spring WebFlux Concurrency -This module contains articles about consurrency model in Spring WebFlux +This module contains articles about concurrency model in Spring WebFlux. +Please note that this assumes Mongo and Kafka to be running on the local machine on default configurations. ### Relevant Articles: From f7915d9f62817abd4d9d8095befdfd2a25b28484 Mon Sep 17 00:00:00 2001 From: Philippe <phil@lighthouse.com.br> Date: Fri, 14 Aug 2020 09:29:27 -0300 Subject: [PATCH 103/156] [BAEL-4381] Fix formatting --- .../smurfs/persistence/SmurfsRepository.java | 7 ------ .../smurfs/persistence/domain/Smurf.java | 7 ------ .../smurfs/service/SmurfsService.java | 8 +----- .../archunit/smurfs/service/dto/SmurfDTO.java | 10 +------- .../archunit/smurfs/SmurfsArchUnitTest.java | 25 +++++++------------ 5 files changed, 11 insertions(+), 46 deletions(-) diff --git a/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/SmurfsRepository.java b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/SmurfsRepository.java index 1dee45087a..c18fcbc839 100644 --- a/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/SmurfsRepository.java +++ b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/SmurfsRepository.java @@ -1,6 +1,3 @@ -/** - * - */ package com.baeldung.archunit.smurfs.persistence; import java.util.Collections; @@ -13,10 +10,6 @@ import com.baeldung.archunit.smurfs.persistence.domain.Smurf; import static java.util.stream.Collectors.toList; -/** - * @author Philippe - * - */ public class SmurfsRepository { private static Map<String,Smurf> smurfs = Collections.synchronizedMap(new TreeMap<>()); diff --git a/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/domain/Smurf.java b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/domain/Smurf.java index 6e0f586a5b..04427a8037 100644 --- a/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/domain/Smurf.java +++ b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/domain/Smurf.java @@ -1,12 +1,5 @@ -/** - * - */ package com.baeldung.archunit.smurfs.persistence.domain; -/** - * @author Philippe - * - */ public class Smurf { private String name; private boolean comic; diff --git a/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/service/SmurfsService.java b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/service/SmurfsService.java index e2c73ef77e..4034b33b39 100644 --- a/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/service/SmurfsService.java +++ b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/service/SmurfsService.java @@ -1,6 +1,4 @@ -/** - * - */ + package com.baeldung.archunit.smurfs.service; import java.util.List; @@ -12,10 +10,6 @@ import com.baeldung.archunit.smurfs.persistence.SmurfsRepository; import com.baeldung.archunit.smurfs.persistence.domain.Smurf; import com.baeldung.archunit.smurfs.service.dto.SmurfDTO; -/** - * @author Philippe - * - */ @Component public class SmurfsService { diff --git a/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/service/dto/SmurfDTO.java b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/service/dto/SmurfDTO.java index 948d0b349a..ac87b2137c 100644 --- a/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/service/dto/SmurfDTO.java +++ b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/service/dto/SmurfDTO.java @@ -1,14 +1,6 @@ -/** - * - */ + package com.baeldung.archunit.smurfs.service.dto; -import com.baeldung.archunit.smurfs.persistence.domain.Smurf; - -/** - * @author Philippe - * - */ public class SmurfDTO { private String name; private boolean comic; diff --git a/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java b/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java index 0231a2c51a..68a33be69b 100644 --- a/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java +++ b/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java @@ -17,10 +17,6 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import org.junit.jupiter.api.Test; -/** - * @author Philippe - * - */ public class SmurfsArchUnitTest { @Test @@ -29,10 +25,9 @@ public class SmurfsArchUnitTest { ArchRule r1 = classes() .that() - .resideInAPackage("..presentation..") - .should() - .onlyDependOnClassesThat() - .resideInAPackage("..service.."); + .resideInAPackage("..presentation..") + .should().onlyDependOnClassesThat() + .resideInAPackage("..service.."); assertThrows(AssertionError.class, ()-> r1.check(jc)) ; } @@ -44,10 +39,9 @@ public class SmurfsArchUnitTest { ArchRule r1 = classes() .that() - .resideInAPackage("..presentation..") - .should() - .onlyDependOnClassesThat() - .resideInAnyPackage("..service..", "java..", "javax..", "org.springframework.."); + .resideInAPackage("..presentation..") + .should().onlyDependOnClassesThat() + .resideInAnyPackage("..service..", "java..", "javax..", "org.springframework.."); r1.check(jc); } @@ -58,10 +52,9 @@ public class SmurfsArchUnitTest { ArchRule r1 = noClasses() .that() - .resideInAPackage("..presentation..") - .should() - .dependOnClassesThat() - .resideInAPackage("..persistence.."); + .resideInAPackage("..presentation..") + .should().dependOnClassesThat() + .resideInAPackage("..persistence.."); r1.check(jc); } From 29316a01f3c79f13b4f8455ca24aeb4fa07e071f Mon Sep 17 00:00:00 2001 From: Philippe <phil@lighthouse.com.br> Date: Fri, 14 Aug 2020 11:41:36 -0300 Subject: [PATCH 104/156] [BAEL-4381] Fix formatting --- .../smurfs/persistence/domain/Smurf.java | 18 ------------- .../archunit/smurfs/service/dto/SmurfDTO.java | 25 ++++--------------- 2 files changed, 5 insertions(+), 38 deletions(-) diff --git a/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/domain/Smurf.java b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/domain/Smurf.java index 04427a8037..255a024cdc 100644 --- a/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/domain/Smurf.java +++ b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/domain/Smurf.java @@ -13,44 +13,26 @@ public class Smurf { this.cartoon = cartoon; } - /** - * @return the name - */ public String getName() { return name; } - /** - * @param name the name to set - */ public void setName(String name) { this.name = name; } - /** - * @return the commic - */ public boolean isComic() { return comic; } - /** - * @param commic the commic to set - */ public void setCommic(boolean comic) { this.comic = comic; } - /** - * @return the cartoon - */ public boolean isCartoon() { return cartoon; } - /** - * @param cartoon the cartoon to set - */ public void setCartoon(boolean cartoon) { this.cartoon = cartoon; } diff --git a/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/service/dto/SmurfDTO.java b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/service/dto/SmurfDTO.java index ac87b2137c..523c639c41 100644 --- a/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/service/dto/SmurfDTO.java +++ b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/service/dto/SmurfDTO.java @@ -14,43 +14,28 @@ public class SmurfDTO { this.cartoon = cartoon; } - - /** - * @return the name - */ public String getName() { return name; } - /** - * @param name the name to set - */ + public void setName(String name) { this.name = name; } - /** - * @return the commic - */ + public boolean isComic() { return comic; } - /** - * @param commic the commic to set - */ + public void setCommic(boolean comic) { this.comic = comic; } - /** - * @return the cartoon - */ + public boolean isCartoon() { return cartoon; } - /** - * @param cartoon the cartoon to set - */ + public void setCartoon(boolean cartoon) { this.cartoon = cartoon; } - } From 37df085e419fa20d18b1bb63e610280f2d770d65 Mon Sep 17 00:00:00 2001 From: bfontana <bruno.fontana@gmail.com> Date: Fri, 14 Aug 2020 11:47:02 -0300 Subject: [PATCH 105/156] Update README.md --- spring-webflux-threads/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spring-webflux-threads/README.md b/spring-webflux-threads/README.md index 26013d73e1..204b1f0081 100644 --- a/spring-webflux-threads/README.md +++ b/spring-webflux-threads/README.md @@ -1,7 +1,8 @@ ## Spring WebFlux Concurrency This module contains articles about concurrency model in Spring WebFlux. -Please note that this assumes Mongo and Kafka to be running on the local machine on default configurations. +Please note that some of the code assumes Mongo and Kafka are running on the local machine on default configurations. +If you want to experiment with Tomcat/Jetty instead of Netty, just uncomment the lines in pom.xml and rebuild. ### Relevant Articles: From c1d934e8a4d3c010c55f406bda284d973624ca88 Mon Sep 17 00:00:00 2001 From: kwoyke <krzysztofwoyke@gmail.com> Date: Fri, 14 Aug 2020 17:36:47 +0200 Subject: [PATCH 106/156] BAEL-3975: Fix the PactVerification test (#9870) --- libraries-5/pom.xml | 14 +++-------- .../PactConsumerDrivenContractUnitTest.java | 25 ++++++++++++++----- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/libraries-5/pom.xml b/libraries-5/pom.xml index 63296d4a89..63347dd60d 100644 --- a/libraries-5/pom.xml +++ b/libraries-5/pom.xml @@ -32,12 +32,6 @@ <artifactId>pact-jvm-consumer-junit_2.11</artifactId> <version>${pact.version}</version> <scope>test</scope> - <exclusions> - <exclusion> - <groupId>org.codehaus.groovy</groupId> - <artifactId>groovy-all</artifactId> - </exclusion> - </exclusions> </dependency> <!-- https://mvnrepository.com/artifact/com.typesafe.akka/akka-actor --> @@ -53,10 +47,10 @@ <scope>test</scope> </dependency> - <dependency> - <groupId>one.util</groupId> - <artifactId>streamex</artifactId> - <version>${streamex.version}</version> + <dependency> + <groupId>one.util</groupId> + <artifactId>streamex</artifactId> + <version>${streamex.version}</version> </dependency> <dependency> <groupId>net.bytebuddy</groupId> diff --git a/libraries-5/src/test/java/com/baeldung/pact/PactConsumerDrivenContractUnitTest.java b/libraries-5/src/test/java/com/baeldung/pact/PactConsumerDrivenContractUnitTest.java index d8bc46985d..e4ac8a3a95 100644 --- a/libraries-5/src/test/java/com/baeldung/pact/PactConsumerDrivenContractUnitTest.java +++ b/libraries-5/src/test/java/com/baeldung/pact/PactConsumerDrivenContractUnitTest.java @@ -5,8 +5,6 @@ import au.com.dius.pact.consumer.PactProviderRuleMk2; import au.com.dius.pact.consumer.PactVerification; import au.com.dius.pact.consumer.dsl.PactDslWithProvider; import au.com.dius.pact.model.RequestResponsePact; - -import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.springframework.http.HttpEntity; @@ -28,15 +26,30 @@ public class PactConsumerDrivenContractUnitTest { @Pact(consumer = "test_consumer") public RequestResponsePact createPact(PactDslWithProvider builder) { - Map<String, String> headers = new HashMap<String, String>(); + Map<String, String> headers = new HashMap<>(); headers.put("Content-Type", "application/json"); - return builder.given("test GET").uponReceiving("GET REQUEST").path("/pact").method("GET").willRespondWith().status(200).headers(headers).body("{\"condition\": true, \"name\": \"tom\"}").given("test POST").uponReceiving("POST REQUEST").method("POST") - .headers(headers).body("{\"name\": \"Michael\"}").path("/pact").willRespondWith().status(201).toPact(); + return builder + .given("test GET") + .uponReceiving("GET REQUEST") + .path("/pact") + .method("GET") + .willRespondWith() + .status(200) + .headers(headers) + .body("{\"condition\": true, \"name\": \"tom\"}") + .given("test POST") + .uponReceiving("POST REQUEST") + .method("POST") + .headers(headers) + .body("{\"name\": \"Michael\"}") + .path("/pact") + .willRespondWith() + .status(201) + .toPact(); } @Test - @Ignore @PactVerification() public void givenGet_whenSendRequest_shouldReturn200WithProperHeaderAndBody() { // when From 459662daf6bd4df19e8275664796708dff9c8dd2 Mon Sep 17 00:00:00 2001 From: kwoyke <krzysztofwoyke@gmail.com> Date: Fri, 14 Aug 2020 17:36:57 +0200 Subject: [PATCH 107/156] BAEL-4543: Use the prefered toArray() approach (#9869) --- .../java/collections/JavaCollectionConversionUnitTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java-collections-conversions/src/test/java/com/baeldung/java/collections/JavaCollectionConversionUnitTest.java b/java-collections-conversions/src/test/java/com/baeldung/java/collections/JavaCollectionConversionUnitTest.java index ba640f3fb2..7b856309f1 100644 --- a/java-collections-conversions/src/test/java/com/baeldung/java/collections/JavaCollectionConversionUnitTest.java +++ b/java-collections-conversions/src/test/java/com/baeldung/java/collections/JavaCollectionConversionUnitTest.java @@ -144,7 +144,7 @@ public class JavaCollectionConversionUnitTest { final Map<Integer, String> sourceMap = createMap(); final Collection<String> values = sourceMap.values(); - final String[] targetArray = values.toArray(new String[values.size()]); + final String[] targetArray = values.toArray(new String[0]); } @Test From 9ca1a0064a74209d83a784811883a13e013c6430 Mon Sep 17 00:00:00 2001 From: Maiklins <kruemel@quantentunnel.de> Date: Fri, 14 Aug 2020 17:41:36 +0200 Subject: [PATCH 108/156] CS-378 Find kth smallest element in union of two sorted arrays (#9812) * CS-378 Find the Kth Smallest Element in the Union of Two Sorted Arrays * CS-378 Fix name of unit test * CS-378 Update merge algorithm to operate only on two input arrays Co-authored-by: mikr <michael.krimgen@ximedes.com> --- .../algorithms/kthsmallest/KthSmallest.java | 126 ++++++++ .../kthsmallest/KthSmallestUnitTest.java | 288 ++++++++++++++++++ 2 files changed, 414 insertions(+) create mode 100644 algorithms-searching/src/main/java/com/baeldung/algorithms/kthsmallest/KthSmallest.java create mode 100644 algorithms-searching/src/test/java/com/baeldung/algorithms/kthsmallest/KthSmallestUnitTest.java diff --git a/algorithms-searching/src/main/java/com/baeldung/algorithms/kthsmallest/KthSmallest.java b/algorithms-searching/src/main/java/com/baeldung/algorithms/kthsmallest/KthSmallest.java new file mode 100644 index 0000000000..2bd1a20ce0 --- /dev/null +++ b/algorithms-searching/src/main/java/com/baeldung/algorithms/kthsmallest/KthSmallest.java @@ -0,0 +1,126 @@ +package com.baeldung.algorithms.kthsmallest; + +import java.util.Arrays; +import java.util.NoSuchElementException; + +import static java.lang.Math.max; +import static java.lang.Math.min; + +public class KthSmallest { + + public static int findKthSmallestElement(int k, int[] list1, int[] list2) throws NoSuchElementException, IllegalArgumentException { + + checkInput(k, list1, list2); + + // we are looking for the minimum value + if(k == 1) { + return min(list1[0], list2[0]); + } + + // we are looking for the maximum value + if(list1.length + list2.length == k) { + return max(list1[list1.length-1], list2[list2.length-1]); + } + + // swap lists if needed to make sure we take at least one element from list1 + if(k <= list2.length && list2[k-1] < list1[0]) { + int[] list1_ = list1; + list1 = list2; + list2 = list1_; + } + + // correct left boundary if k is bigger than the size of list2 + int left = k < list2.length ? 0 : k - list2.length - 1; + + // the inital right boundary cannot exceed the list1 + int right = min(k-1, list1.length - 1); + + int nElementsList1, nElementsList2; + + // binary search + do { + nElementsList1 = ((left + right) / 2) + 1; + nElementsList2 = k - nElementsList1; + + if(nElementsList2 > 0) { + if (list1[nElementsList1 - 1] > list2[nElementsList2 - 1]) { + right = nElementsList1 - 2; + } else { + left = nElementsList1; + } + } + } while(!kthSmallesElementFound(list1, list2, nElementsList1, nElementsList2)); + + return nElementsList2 == 0 ? list1[nElementsList1-1] : max(list1[nElementsList1-1], list2[nElementsList2-1]); + } + + private static boolean kthSmallesElementFound(int[] list1, int[] list2, int nElementsList1, int nElementsList2) { + + // we do not take any element from the second list + if(nElementsList2 < 1) { + return true; + } + + if(list1[nElementsList1-1] == list2[nElementsList2-1]) { + return true; + } + + if(nElementsList1 == list1.length) { + return list1[nElementsList1-1] <= list2[nElementsList2]; + } + + if(nElementsList2 == list2.length) { + return list2[nElementsList2-1] <= list1[nElementsList1]; + } + + return list1[nElementsList1-1] <= list2[nElementsList2] && list2[nElementsList2-1] <= list1[nElementsList1]; + } + + + private static void checkInput(int k, int[] list1, int[] list2) throws NoSuchElementException, IllegalArgumentException { + + if(list1 == null || list2 == null || k < 1) { + throw new IllegalArgumentException(); + } + + if(list1.length == 0 || list2.length == 0) { + throw new IllegalArgumentException(); + } + + if(k > list1.length + list2.length) { + throw new NoSuchElementException(); + } + } + + public static int getKthElementSorted(int[] list1, int[] list2, int k) { + + int length1 = list1.length, length2 = list2.length; + int[] combinedArray = new int[length1 + length2]; + System.arraycopy(list1, 0, combinedArray, 0, list1.length); + System.arraycopy(list2, 0, combinedArray, list1.length, list2.length); + Arrays.sort(combinedArray); + + return combinedArray[k-1]; + } + + public static int getKthElementMerge(int[] list1, int[] list2, int k) { + + int i1 = 0, i2 = 0; + + while(i1 < list1.length && i2 < list2.length && (i1 + i2) < k) { + if(list1[i1] < list2[i2]) { + i1++; + } else { + i2++; + } + } + + if((i1 + i2) < k) { + return i1 < list1.length ? list1[k - i2 - 1] : list2[k - i1 - 1]; + } else if(i1 > 0 && i2 > 0) { + return Math.max(list1[i1-1], list2[i2-1]); + } else { + return i1 == 0 ? list2[i2-1] : list1[i1-1]; + } + } +} diff --git a/algorithms-searching/src/test/java/com/baeldung/algorithms/kthsmallest/KthSmallestUnitTest.java b/algorithms-searching/src/test/java/com/baeldung/algorithms/kthsmallest/KthSmallestUnitTest.java new file mode 100644 index 0000000000..740e89d8e7 --- /dev/null +++ b/algorithms-searching/src/test/java/com/baeldung/algorithms/kthsmallest/KthSmallestUnitTest.java @@ -0,0 +1,288 @@ +package com.baeldung.algorithms.kthsmallest; + +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.function.Executable; + +import java.util.*; + +import static com.baeldung.algorithms.kthsmallest.KthSmallest.*; +import static org.junit.jupiter.api.Assertions.*; + +public class KthSmallestUnitTest { + + @Nested + class Exceptions { + + @Test + public void when_at_least_one_list_is_null_then_an_exception_is_thrown() { + + Executable executable1 = () -> findKthSmallestElement(1, null, null); + Executable executable2 = () -> findKthSmallestElement(1, new int[]{2}, null); + Executable executable3 = () -> findKthSmallestElement(1, null, new int[]{2}); + + assertThrows(IllegalArgumentException.class, executable1); + assertThrows(IllegalArgumentException.class, executable2); + assertThrows(IllegalArgumentException.class, executable3); + } + + @Test + public void when_at_least_one_list_is_empty_then_an_exception_is_thrown() { + + Executable executable1 = () -> findKthSmallestElement(1, new int[]{}, new int[]{2}); + Executable executable2 = () -> findKthSmallestElement(1, new int[]{2}, new int[]{}); + Executable executable3 = () -> findKthSmallestElement(1, new int[]{}, new int[]{}); + + assertThrows(IllegalArgumentException.class, executable1); + assertThrows(IllegalArgumentException.class, executable2); + assertThrows(IllegalArgumentException.class, executable3); + } + + @Test + public void when_k_is_smaller_than_0_then_an_exception_is_thrown() { + Executable executable1 = () -> findKthSmallestElement(-1, new int[]{2}, new int[]{2}); + assertThrows(IllegalArgumentException.class, executable1); + } + + @Test + public void when_k_is_smaller_than_1_then_an_exception_is_thrown() { + Executable executable1 = () -> findKthSmallestElement(0, new int[]{2}, new int[]{2}); + assertThrows(IllegalArgumentException.class, executable1); + } + + @Test + public void when_k_bigger_then_the_two_lists_then_an_exception_is_thrown() { + Executable executable1 = () -> findKthSmallestElement(6, new int[]{1, 5, 6}, new int[]{2, 5}); + assertThrows(NoSuchElementException.class, executable1); + } + + } + + @Nested + class K_is_smaller_than_the_size_of_list1_and_the_size_of_list2 { + + @Test + public void when_k_is_1_then_the_smallest_element_is_returned_from_list1() { + int result = findKthSmallestElement(1, new int[]{2, 7}, new int[]{3, 5}); + assertEquals(2, result); + } + + @Test + public void when_k_is_1_then_the_smallest_element_is_returned_list2() { + int result = findKthSmallestElement(1, new int[]{3, 5}, new int[]{2, 7}); + assertEquals(2, result); + } + + @Test + public void when_kth_element_is_smallest_element_and_occurs_in_both_lists() { + int[] list1 = new int[]{1, 2, 3}; + int[] list2 = new int[]{1, 2, 3}; + int result = findKthSmallestElement(1, list1, list2); + assertEquals(1, result); + } + + @Test + public void when_kth_element_is_smallest_element_and_occurs_in_both_lists2() { + int[] list1 = new int[]{1, 2, 3}; + int[] list2 = new int[]{1, 2, 3}; + int result = findKthSmallestElement(2, list1, list2); + assertEquals(1, result); + } + + @Test + public void when_kth_element_is_largest_element_and_occurs_in_both_lists_1() { + int[] list1 = new int[]{1, 2, 3}; + int[] list2 = new int[]{1, 2, 3}; + int result = findKthSmallestElement(5, list1, list2); + assertEquals(3, result); + } + + @Test + public void when_kth_element_is_largest_element_and_occurs_in_both_lists_2() { + int[] list1 = new int[]{1, 2, 3}; + int[] list2 = new int[]{1, 2, 3}; + int result = findKthSmallestElement(6, list1, list2); + assertEquals(3, result); + } + + @Test + public void when_kth_element_and_occurs_in_both_lists() { + int[] list1 = new int[]{1, 2, 3}; + int[] list2 = new int[]{0, 2, 3}; + int result = findKthSmallestElement(3, list1, list2); + assertEquals(2, result); + } + + @Test + public void and_kth_element_is_in_first_list() { + int[] list1 = new int[]{1,2,3,4}; + int[] list2 = new int[]{1,3,4,5}; + int result = findKthSmallestElement(3, list1, list2); + assertEquals(2, result); + } + + @Test + public void and_kth_is_in_second_list() { + int[] list1 = new int[]{1,3,4,4}; + int[] list2 = new int[]{1,2,4,5}; + int result = findKthSmallestElement(3, list1, list2); + assertEquals(2, result); + } + + @Test + public void and_elements_in_first_list_are_all_smaller_than_second_list() { + int[] list1 = new int[]{1,3,7,9}; + int[] list2 = new int[]{11,12,14,15}; + int result = findKthSmallestElement(3, list1, list2); + assertEquals(7, result); + } + + @Test + public void and_elements_in_first_list_are_all_smaller_than_second_list2() { + int[] list1 = new int[]{1,3,7,9}; + int[] list2 = new int[]{11,12,14,15}; + int result = findKthSmallestElement(4, list1, list2); + assertEquals(9, result); + } + + @Test + public void and_only_elements_from_second_list_are_part_of_result() { + int[] list1 = new int[]{11,12,14,15}; + int[] list2 = new int[]{1,3,7,9}; + int result = findKthSmallestElement(3, list1, list2); + assertEquals(7, result); + } + + @Test + public void and_only_elements_from_second_list_are_part_of_result2() { + int[] list1 = new int[]{11,12,14,15}; + int[] list2 = new int[]{1,3,7,9}; + int result = findKthSmallestElement(4, list1, list2); + assertEquals(9, result); + } + } + + @Nested + class K_is_bigger_than_the_size_of_at_least_one_of_the_lists { + + @Test + public void k_is_smaller_than_list1_and_bigger_than_list2() { + int[] list1 = new int[]{1, 2, 3, 4, 7, 9}; + int[] list2 = new int[]{1, 2, 3}; + int result = findKthSmallestElement(5, list1, list2); + assertEquals(3, result); + } + + @Test + public void k_is_bigger_than_list1_and_smaller_than_list2() { + int[] list1 = new int[]{1, 2, 3}; + int[] list2 = new int[]{1, 2, 3, 4, 7, 9}; + int result = findKthSmallestElement(5, list1, list2); + assertEquals(3, result); + } + + @Test + public void when_k_is_bigger_than_the_size_of_both_lists_and_elements_in_second_list_are_all_smaller_than_first_list() { + int[] list1 = new int[]{9, 11, 13, 55}; + int[] list2 = new int[]{1, 2, 3, 7}; + int result = findKthSmallestElement(6, list1, list2); + assertEquals(11, result); + } + + @Test + public void when_k_is_bigger_than_the_size_of_both_lists_and_elements_in_second_list_are_all_bigger_than_first_list() { + int[] list1 = new int[]{1, 2, 3, 7}; + int[] list2 = new int[]{9, 11, 13, 55}; + int result = findKthSmallestElement(6, list1, list2); + assertEquals(11, result); + } + + @Test + public void when_k_is_bigger_than_the_size_of_both_lists() { + int[] list1 = new int[]{3, 7, 9, 11, 55}; + int[] list2 = new int[]{1, 2, 3, 7, 13}; + int result = findKthSmallestElement(7, list1, list2); + assertEquals(9, result); + } + + @Test + public void when_k_is_bigger_than_the_size_of_both_lists_and_list1_has_more_elements_than_list2() { + int[] list1 = new int[]{3, 7, 9, 11, 55, 77, 100, 200}; + int[] list2 = new int[]{1, 2, 3, 7, 13}; + int result = findKthSmallestElement(11, list1, list2); + assertEquals(77, result); + } + + @Test + public void max_test() { + int[] list1 = new int[]{100, 200}; + int[] list2 = new int[]{1, 2, 3}; + int result = findKthSmallestElement(4, list1, list2); + assertEquals(100, result); + } + + @Test + public void max_test2() { + int[] list1 = new int[]{100, 200}; + int[] list2 = new int[]{1, 2, 3}; + int result = findKthSmallestElement(5, list1, list2); + assertEquals(200, result); + } + + @Test + public void when_k_is_smaller_than_the_size_of_both_lists_and_kth_element_in_list2() { + int[] list1 = new int[]{1, 2, 5}; + int[] list2 = new int[]{1, 3, 4, 7}; + int result = findKthSmallestElement(4, list1, list2); + assertEquals(3, result); + } + + @Test + public void when_k_is_smaller_than_the_size_of_both_lists_and_kth_element_is_smallest_in_list2() { + int[] list1 = new int[]{1, 2, 5}; + int[] list2 = new int[]{3, 4, 7}; + int result = findKthSmallestElement(3, list1, list2); + assertEquals(3, result); + } + + @Test + public void when_k_is_smaller_than_the_size_of_both_lists_and_kth_element_is_smallest_in_list23() { + int[] list1 = new int[]{3, 11, 27, 53, 90}; + int[] list2 = new int[]{4, 20, 21, 100}; + int result = findKthSmallestElement(5, list1, list2); + assertEquals(21, result); + } + } + +// @Test +// public void randomTests() { +// IntStream.range(1, 100000).forEach(i -> random()); +// } + + private void random() { + + Random random = new Random(); + int length1 = (Math.abs(random.nextInt())) % 1000 + 1; + int length2 = (Math.abs(random.nextInt())) % 1000 + 1; + + int[] list1 = sortedRandomIntArrayOfLength(length1); + int[] list2 = sortedRandomIntArrayOfLength(length2); + + int k = (Math.abs(random.nextInt()) % (length1 + length2)) + 1 ; + + int result = findKthSmallestElement(k, list1, list2); + + int result2 = getKthElementSorted(list1, list2, k); + + int result3 = getKthElementMerge(list1, list2, k); + + assertEquals(result2, result); + assertEquals(result2, result3); + } + + private int[] sortedRandomIntArrayOfLength(int length) { + int[] intArray = new Random().ints(length).toArray(); + Arrays.sort(intArray); + return intArray; + } +} \ No newline at end of file From 8d97b0cb37a0e76767c3241bf6cfb9c5e0ca60a5 Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Fri, 14 Aug 2020 22:07:40 +0530 Subject: [PATCH 109/156] JAVA-1639: Upgrade spring-5-security-cognito to use latest Spring Boot version --- spring-5-security-cognito/pom.xml | 9 +---- .../cognito/CognitoWebConfiguration.java | 2 -- .../cognito/SecurityConfiguration.java | 23 ++++++++++++ .../cognito/SpringCognitoApplication.java | 2 -- .../src/main/resources/application.yml | 15 ++++++++ .../resources/cognito/application-cognito.yml | 15 -------- .../src/main/resources/cognito/home.html | 32 ----------------- .../src/main/resources/cognito/style.css | 9 ----- .../src/main/resources/templates/home.html | 35 +++++++++++++++++++ 9 files changed, 74 insertions(+), 68 deletions(-) create mode 100644 spring-5-security-cognito/src/main/java/com/baeldung/cognito/SecurityConfiguration.java create mode 100644 spring-5-security-cognito/src/main/resources/application.yml delete mode 100644 spring-5-security-cognito/src/main/resources/cognito/application-cognito.yml delete mode 100644 spring-5-security-cognito/src/main/resources/cognito/home.html delete mode 100644 spring-5-security-cognito/src/main/resources/cognito/style.css create mode 100644 spring-5-security-cognito/src/main/resources/templates/home.html diff --git a/spring-5-security-cognito/pom.xml b/spring-5-security-cognito/pom.xml index 8d03b91ce0..5f8f328086 100644 --- a/spring-5-security-cognito/pom.xml +++ b/spring-5-security-cognito/pom.xml @@ -34,11 +34,6 @@ </dependency> <!-- oauth2 --> - <dependency> - <groupId>org.springframework.security.oauth.boot</groupId> - <artifactId>spring-security-oauth2-autoconfigure</artifactId> - <version>${oauth-auto.version}</version> - </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-oauth2-client</artifactId> @@ -62,10 +57,8 @@ <scope>test</scope> </dependency> </dependencies> - + <properties> - <spring-boot.version>2.1.0.RELEASE</spring-boot.version> - <oauth-auto.version>2.1.0.RELEASE</oauth-auto.version> <start-class>com.baeldung.cognito.SpringCognitoApplication</start-class> </properties> diff --git a/spring-5-security-cognito/src/main/java/com/baeldung/cognito/CognitoWebConfiguration.java b/spring-5-security-cognito/src/main/java/com/baeldung/cognito/CognitoWebConfiguration.java index 6841fa7a65..df35a46ef3 100644 --- a/spring-5-security-cognito/src/main/java/com/baeldung/cognito/CognitoWebConfiguration.java +++ b/spring-5-security-cognito/src/main/java/com/baeldung/cognito/CognitoWebConfiguration.java @@ -1,12 +1,10 @@ package com.baeldung.cognito; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration -@PropertySource("cognito/application-cognito.yml") public class CognitoWebConfiguration implements WebMvcConfigurer { @Override diff --git a/spring-5-security-cognito/src/main/java/com/baeldung/cognito/SecurityConfiguration.java b/spring-5-security-cognito/src/main/java/com/baeldung/cognito/SecurityConfiguration.java new file mode 100644 index 0000000000..ba0436d20d --- /dev/null +++ b/spring-5-security-cognito/src/main/java/com/baeldung/cognito/SecurityConfiguration.java @@ -0,0 +1,23 @@ +package com.baeldung.cognito; + +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; + +@Configuration +public class SecurityConfiguration extends WebSecurityConfigurerAdapter { + + @Override + protected void configure(HttpSecurity http) throws Exception { + http.csrf() + .and() + .authorizeRequests(authz -> authz.mvcMatchers("/") + .permitAll() + .anyRequest() + .authenticated()) + .oauth2Login() + .and() + .logout() + .logoutSuccessUrl("/"); + } +} \ No newline at end of file diff --git a/spring-5-security-cognito/src/main/java/com/baeldung/cognito/SpringCognitoApplication.java b/spring-5-security-cognito/src/main/java/com/baeldung/cognito/SpringCognitoApplication.java index eebe6d8f45..fc55de590c 100644 --- a/spring-5-security-cognito/src/main/java/com/baeldung/cognito/SpringCognitoApplication.java +++ b/spring-5-security-cognito/src/main/java/com/baeldung/cognito/SpringCognitoApplication.java @@ -2,10 +2,8 @@ package com.baeldung.cognito; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.PropertySource; @SpringBootApplication -@PropertySource("cognito/application-cognito.yml") public class SpringCognitoApplication { public static void main(String[] args) { diff --git a/spring-5-security-cognito/src/main/resources/application.yml b/spring-5-security-cognito/src/main/resources/application.yml new file mode 100644 index 0000000000..e53a2642e0 --- /dev/null +++ b/spring-5-security-cognito/src/main/resources/application.yml @@ -0,0 +1,15 @@ +spring: + security: + oauth2: + client: + registration: + cognito: + client-id: your_clientId + client-secret: your_clientSecret + scope: openid + redirect-uri: http://localhost:8080/login/oauth2/code/cognito + clientName: your_clientName + provider: + cognito: + issuerUri: https://cognito-idp.{region}.amazonaws.com/{poolId} + user-name-attribute: cognito:username diff --git a/spring-5-security-cognito/src/main/resources/cognito/application-cognito.yml b/spring-5-security-cognito/src/main/resources/cognito/application-cognito.yml deleted file mode 100644 index 0a28dbccb4..0000000000 --- a/spring-5-security-cognito/src/main/resources/cognito/application-cognito.yml +++ /dev/null @@ -1,15 +0,0 @@ -spring: - security: - oauth2: - client: - registration: - cognito: - client-id: clientId - client-secret: clientSecret - scope: openid - redirectUriTemplate: "http://localhost:8080/login/oauth2/code/cognito" - clientName: cognito-client-name - provider: - cognito: - issuerUri: https://cognito-idp.{region}.amazonaws.com/{poolId} - usernameAttribute: cognito:username diff --git a/spring-5-security-cognito/src/main/resources/cognito/home.html b/spring-5-security-cognito/src/main/resources/cognito/home.html deleted file mode 100644 index f0bd9e52a8..0000000000 --- a/spring-5-security-cognito/src/main/resources/cognito/home.html +++ /dev/null @@ -1,32 +0,0 @@ -<!DOCTYPE html> -<html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/extras/spring-security"> -<head> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - <title>OAuth2 Cognito Demo</title> - - <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.4/css/bulma.min.css"> - <link rel="stylesheet" th:href="@{/cognito/style.css}"> -</head> -<body> -<section class="section"> - <div class="container has-text-centered"> - <div> - <h1 class="title">OAuth2 Spring Security Cognito Demo</h1> - - <div sec:authorize="isAuthenticated()"> - <div class="box"> - Hello, <strong th:text="${#authentication.name}"></strong>! - </div> - </div> - - <div sec:authorize="isAnonymous()"> - <div class="box"> - <a class="button login is-primary" th:href="@{/oauth2/authorization/cognito}">Log in with Amazon Cognito</a> - </div> - </div> - </div> - </div> -</section> -</body> -</html> diff --git a/spring-5-security-cognito/src/main/resources/cognito/style.css b/spring-5-security-cognito/src/main/resources/cognito/style.css deleted file mode 100644 index 45190d6d70..0000000000 --- a/spring-5-security-cognito/src/main/resources/cognito/style.css +++ /dev/null @@ -1,9 +0,0 @@ -.login { - background-color: #7289da; - color: #fff; -} - -.login:hover { - background-color: #697ec4; - color: #fff; -} diff --git a/spring-5-security-cognito/src/main/resources/templates/home.html b/spring-5-security-cognito/src/main/resources/templates/home.html new file mode 100644 index 0000000000..df3c86fe2a --- /dev/null +++ b/spring-5-security-cognito/src/main/resources/templates/home.html @@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html xmlns:th="http://www.thymeleaf.org" + xmlns:sec="http://www.thymeleaf.org/extras/spring-security"> +<head> +<meta charset="utf-8"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<title>OAuth2 Cognito Demo</title> + +<link rel="stylesheet" + href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.4/css/bulma.min.css"> +</head> +<body> + <section class="section"> + <div class="container has-text-centered"> + <div> + <h1 class="title">OAuth2 Spring Security Cognito Demo</h1> + + <div sec:authorize="isAuthenticated()"> + <div class="box"> + Hello, <strong th:text="${#authentication.name}"></strong>! + </div> + </div> + + <div sec:authorize="isAnonymous()"> + <div class="box"> + <a class="button login is-primary" + th:href="@{/oauth2/authorization/cognito}">Log in with Amazon + Cognito</a> + </div> + </div> + </div> + </div> + </section> +</body> +</html> From 9c846f0e842799543be23dc71b0c54bbb697b474 Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankur.gupta@jda.com> Date: Sat, 15 Aug 2020 03:21:29 +0530 Subject: [PATCH 110/156] keeping Configuration in Separate class --- .../cosmosdb/AzureCosmosDbApplication.java | 34 +---------------- .../config/AzureCosmosDbConfiguration.java | 37 +++++++++++++++++++ 2 files changed, 38 insertions(+), 33 deletions(-) create mode 100644 persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/config/AzureCosmosDbConfiguration.java diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/AzureCosmosDbApplication.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/AzureCosmosDbApplication.java index 7a91cd7d33..5a1764adc6 100644 --- a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/AzureCosmosDbApplication.java +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/AzureCosmosDbApplication.java @@ -1,44 +1,12 @@ package com.baeldung.spring.data.cosmosdb; -import com.azure.data.cosmos.CosmosKeyCredential; -import com.baeldung.spring.data.cosmosdb.repository.ProductRepository; -import com.microsoft.azure.spring.data.cosmosdb.config.AbstractCosmosConfiguration; -import com.microsoft.azure.spring.data.cosmosdb.config.CosmosDBConfig; -import com.microsoft.azure.spring.data.cosmosdb.repository.config.EnableCosmosRepositories; - -import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.Bean; @SpringBootApplication -@EnableCosmosRepositories(basePackageClasses = ProductRepository.class) -public class AzureCosmosDbApplication extends AbstractCosmosConfiguration { +public class AzureCosmosDbApplication { public static void main(String[] args) { SpringApplication.run(AzureCosmosDbApplication.class, args); } - - @Value("${azure.cosmosdb.uri}") - private String uri; - - @Value("${azure.cosmosdb.key}") - private String key; - - @Value("${azure.cosmosdb.secondaryKey}") - private String secondaryKey; - - @Value("${azure.cosmosdb.database}") - private String dbName; - - private CosmosKeyCredential cosmosKeyCredential; - - @Bean - public CosmosDBConfig getConfig() { - this.cosmosKeyCredential = new CosmosKeyCredential(key); - CosmosDBConfig cosmosdbConfig = CosmosDBConfig.builder(uri, this.cosmosKeyCredential, dbName) - .build(); - return cosmosdbConfig; - } - } diff --git a/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/config/AzureCosmosDbConfiguration.java b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/config/AzureCosmosDbConfiguration.java new file mode 100644 index 0000000000..7d3322faf6 --- /dev/null +++ b/persistence-modules/spring-data-cosmosdb/src/main/java/com/baeldung/spring/data/cosmosdb/config/AzureCosmosDbConfiguration.java @@ -0,0 +1,37 @@ +package com.baeldung.spring.data.cosmosdb.config; + +import com.azure.data.cosmos.CosmosKeyCredential; +import com.microsoft.azure.spring.data.cosmosdb.config.AbstractCosmosConfiguration; +import com.microsoft.azure.spring.data.cosmosdb.config.CosmosDBConfig; +import com.microsoft.azure.spring.data.cosmosdb.repository.config.EnableCosmosRepositories; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +@EnableCosmosRepositories(basePackages = "com.baeldung.spring.data.cosmosdb.repository") +public class AzureCosmosDbConfiguration extends AbstractCosmosConfiguration { + + @Value("${azure.cosmosdb.uri}") + private String uri; + + @Value("${azure.cosmosdb.key}") + private String key; + + @Value("${azure.cosmosdb.secondaryKey}") + private String secondaryKey; + + @Value("${azure.cosmosdb.database}") + private String dbName; + + private CosmosKeyCredential cosmosKeyCredential; + + @Bean + public CosmosDBConfig getConfig() { + this.cosmosKeyCredential = new CosmosKeyCredential(key); + CosmosDBConfig cosmosdbConfig = CosmosDBConfig.builder(uri, this.cosmosKeyCredential, dbName) + .build(); + return cosmosdbConfig; + } +} From 10349f5185f16f53487c88c10bf623a3a3698292 Mon Sep 17 00:00:00 2001 From: Philippe <phil@lighthouse.com.br> Date: Fri, 14 Aug 2020 22:58:58 -0300 Subject: [PATCH 111/156] [BAEL-4381] Fix formatting --- .../article-resources/archunit/figure1.drawio | 1 - .../article-resources/archunit/figure1.png | Bin 15103 -> 0 bytes 2 files changed, 1 deletion(-) delete mode 100644 libraries-testing/article-resources/archunit/figure1.drawio delete mode 100644 libraries-testing/article-resources/archunit/figure1.png diff --git a/libraries-testing/article-resources/archunit/figure1.drawio b/libraries-testing/article-resources/archunit/figure1.drawio deleted file mode 100644 index 859d9946a1..0000000000 --- a/libraries-testing/article-resources/archunit/figure1.drawio +++ /dev/null @@ -1 +0,0 @@ -<mxfile host="Electron" modified="2020-07-26T17:57:12.410Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.5.1 Chrome/83.0.4103.122 Electron/9.1.1 Safari/537.36" etag="taZU8w0iOhZ7shLjO8K-" version="13.5.1" type="device"><diagram name="Page-1" id="b5b7bab2-c9e2-2cf4-8b2a-24fd1a2a6d21">7VjbctowEP0aP9LBNgb3sSa3BzJNJ+2kk5eMsBdbrax1ZUEgX1/Jlm84YWgbKL3wwFhHa3l99pyVwHKn6fpSkCy5xgiY5QyjteWeWY7jj331rYFNCXjOsARiQaMSshvglj6BAauwJY0g7wRKRCZp1gVD5BxC2cGIEPjYDVsg6z41IzH0gNuQsD56RyOZGNQev20mroDGiXm070zKiTkJv8YCl9w8jyOHciYl1TLmHfOERPjYgtxzy50KRFlepespMM1qxVh538ULs3XKArjc54YrsrkffLj+Bp8ePr+/GTw409XdwKyyImxpqEg3JMsYDYmkyE3mclMRpV4i05eaYRCWGyyQy1szb6txnpGQ8vgjZhoYKkSSecXpyIxrKu1RCdxgTovnuWcMFmomSGTKzJIrEFLlw94xGusIqdcOiBmZeJ3HBUkp0wqcLUMaEZX5FHmOOreAkTmwoK7WFBmK4pXcRfHRS1DGWvhF8VF4n+iKNZUYrFuQIf4SMAUpNiqkmvWMCIw/7EoUj43aJr7BkpbQRq4BiVF4XK/dlFpdmGr/QOUnvcpbzpikmlomi7dujyLIgEd5DcadEDPa0gpEymNmiEImGCMn7LxBg6IUoLPUwmhiZljKR4FfQMqNaRhkKbErjYjkSXG//ToSeLHUOS5FCDvodE3XIiIGuSPOK+M0NzuFI4ApB666/enVReD2RJCDWNEQTsL4bUMWjbXn+udbwyGFsL/nPX/L837f8874Gc/bB/P8+N/26GhPj7on5VH/KI16ponvFq7yWqiILiy/7baURlGpEcjpE5kX62mVZEi5LHjwAss7O1Tdd2m859P68Gjy7JzCnvPvYPhG7dOmX+9darPcjWagtf9POq1gYHvdFXCxyJUkt6VSJ/Xz6hn11JOpaikKT+d892e3eXuyR5v3jtrmvX7NQeQ0l8BPZGc/Vn0PeKTf3t5Hw9++vVe/pk/Z7P+d/UsV7v9eP6UD+19o64Oe2tWw+f+n3PGbv9fc8+8=</diagram></mxfile> \ No newline at end of file diff --git a/libraries-testing/article-resources/archunit/figure1.png b/libraries-testing/article-resources/archunit/figure1.png deleted file mode 100644 index 8bd8e9647b07a46e7d8e363ba750fa838c07debb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15103 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 JmKeML@n88<TTB1| From 223944628593984ee2c663e9dfb317de09b45ec8 Mon Sep 17 00:00:00 2001 From: Trixi Turny <writetotrixi@gmail.com> Date: Sat, 15 Aug 2020 15:01:37 +0100 Subject: [PATCH 112/156] BAEL-4321 use properties module and delete ReadMe --- spring-boot-modules/spring-boot-data-2/README.md | 9 --------- .../pom.xml | 6 +++--- .../com/baeldung/boot/properties}/DemoApplication.java | 0 .../boot/properties}/config/TshirtSizeConfig.java | 0 .../properties}/controller/TshirtSizeController.java | 0 .../boot/properties}/service/SizeConverterImpl.java | 0 .../boot/properties}/service/SizeConverterService.java | 0 .../src/main/resources/application.yml | 0 .../properties}/controller/TshirtSizeControllerTest.java | 0 9 files changed, 3 insertions(+), 12 deletions(-) delete mode 100644 spring-boot-modules/spring-boot-data-2/README.md rename spring-boot-modules/{spring-boot-data-2 => spring-boot-properties-3}/pom.xml (90%) rename spring-boot-modules/{spring-boot-data-2/src/main/java/com/baeldung/boot/data => spring-boot-properties-3/src/main/java/com/baeldung/boot/properties}/DemoApplication.java (100%) rename spring-boot-modules/{spring-boot-data-2/src/main/java/com/baeldung/boot/data => spring-boot-properties-3/src/main/java/com/baeldung/boot/properties}/config/TshirtSizeConfig.java (100%) rename spring-boot-modules/{spring-boot-data-2/src/main/java/com/baeldung/boot/data => spring-boot-properties-3/src/main/java/com/baeldung/boot/properties}/controller/TshirtSizeController.java (100%) rename spring-boot-modules/{spring-boot-data-2/src/main/java/com/baeldung/boot/data => spring-boot-properties-3/src/main/java/com/baeldung/boot/properties}/service/SizeConverterImpl.java (100%) rename spring-boot-modules/{spring-boot-data-2/src/main/java/com/baeldung/boot/data => spring-boot-properties-3/src/main/java/com/baeldung/boot/properties}/service/SizeConverterService.java (100%) rename spring-boot-modules/{spring-boot-data-2 => spring-boot-properties-3}/src/main/resources/application.yml (100%) rename spring-boot-modules/{spring-boot-data-2/src/test/java/com/baeldung/boot/data => spring-boot-properties-3/src/test/java/com/baeldung/boot/properties}/controller/TshirtSizeControllerTest.java (100%) diff --git a/spring-boot-modules/spring-boot-data-2/README.md b/spring-boot-modules/spring-boot-data-2/README.md deleted file mode 100644 index 9dba74a7e5..0000000000 --- a/spring-boot-modules/spring-boot-data-2/README.md +++ /dev/null @@ -1,9 +0,0 @@ -This is a demo application for using YAML configuration for defining values in a POJO class. - -The application has an endpoint to provide T-shirt size conversion for label and countrycode. - -If you run this service locally you can call this endpoint on: - -`localhost:8080/convertSize?label=M&countryCode=fr` - -It should return the size as int. \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-data-2/pom.xml b/spring-boot-modules/spring-boot-properties-3/pom.xml similarity index 90% rename from spring-boot-modules/spring-boot-data-2/pom.xml rename to spring-boot-modules/spring-boot-properties-3/pom.xml index 0baaf292e8..1e3d627b19 100644 --- a/spring-boot-modules/spring-boot-data-2/pom.xml +++ b/spring-boot-modules/spring-boot-properties-3/pom.xml @@ -9,10 +9,10 @@ <relativePath>../</relativePath> </parent> - <artifactId>spring-boot-data-2</artifactId> + <artifactId>spring-boot-properties-3</artifactId> <version>0.0.1-SNAPSHOT</version> - <name>spring-boot-data-2</name> - <description>Spring Boot Data Module</description> + <name>spring-boot-properties-3</name> + <description>Spring Boot Properties Module</description> <properties> <java.version>1.8</java.version> diff --git a/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/DemoApplication.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/DemoApplication.java similarity index 100% rename from spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/DemoApplication.java rename to spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/DemoApplication.java diff --git a/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/config/TshirtSizeConfig.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/config/TshirtSizeConfig.java similarity index 100% rename from spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/config/TshirtSizeConfig.java rename to spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/config/TshirtSizeConfig.java diff --git a/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/controller/TshirtSizeController.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java similarity index 100% rename from spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/controller/TshirtSizeController.java rename to spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java diff --git a/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/service/SizeConverterImpl.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterImpl.java similarity index 100% rename from spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/service/SizeConverterImpl.java rename to spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterImpl.java diff --git a/spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/service/SizeConverterService.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterService.java similarity index 100% rename from spring-boot-modules/spring-boot-data-2/src/main/java/com/baeldung/boot/data/service/SizeConverterService.java rename to spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterService.java diff --git a/spring-boot-modules/spring-boot-data-2/src/main/resources/application.yml b/spring-boot-modules/spring-boot-properties-3/src/main/resources/application.yml similarity index 100% rename from spring-boot-modules/spring-boot-data-2/src/main/resources/application.yml rename to spring-boot-modules/spring-boot-properties-3/src/main/resources/application.yml diff --git a/spring-boot-modules/spring-boot-data-2/src/test/java/com/baeldung/boot/data/controller/TshirtSizeControllerTest.java b/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/controller/TshirtSizeControllerTest.java similarity index 100% rename from spring-boot-modules/spring-boot-data-2/src/test/java/com/baeldung/boot/data/controller/TshirtSizeControllerTest.java rename to spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/controller/TshirtSizeControllerTest.java From 3c44e7af209b2f93838d2503f673ff6d4330c5e7 Mon Sep 17 00:00:00 2001 From: Trixi Turny <writetotrixi@gmail.com> Date: Sat, 15 Aug 2020 15:04:10 +0100 Subject: [PATCH 113/156] BAEL-4321 fix indentation --- .../boot/properties/controller/TshirtSizeController.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java index 6446a17317..82263eaeed 100644 --- a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java +++ b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java @@ -14,8 +14,7 @@ public class TshirtSizeController { } @RequestMapping(value ="convertSize", method = RequestMethod.GET) - public int convertSize(@RequestParam(value = "label") final String label, - @RequestParam(value = "countryCode", required = false) final String countryCode) { + public int convertSize(@RequestParam(value = "label") final String label, @RequestParam(value = "countryCode", required = false) final String countryCode) { return service.convertSize(label, countryCode); } From e399a6a8bc9c79d96a27a62eb960e7e6c209620e Mon Sep 17 00:00:00 2001 From: Trixi Turny <writetotrixi@gmail.com> Date: Sat, 15 Aug 2020 15:34:56 +0100 Subject: [PATCH 114/156] BAEL-4321 fix package name in imports and convert tabs to spaces --- .../baeldung/boot/properties/DemoApplication.java | 8 ++++---- .../boot/properties/config/TshirtSizeConfig.java | 2 +- .../controller/TshirtSizeController.java | 2 +- .../boot/properties/service/SizeConverterImpl.java | 2 +- .../properties/service/SizeConverterService.java | 2 +- .../src/main/resources/application.yml | 14 +++++++------- .../controller/TshirtSizeControllerTest.java | 2 +- 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/DemoApplication.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/DemoApplication.java index 125cba6283..634cb211b2 100644 --- a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/DemoApplication.java +++ b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/DemoApplication.java @@ -1,4 +1,4 @@ -package com.baeldung.boot.data; +package com.baeldung.boot.properties; import com.baeldung.boot.data.config.TshirtSizeConfig; import org.springframework.boot.SpringApplication; @@ -9,8 +9,8 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties @EnableConfigurationProperties(TshirtSizeConfig.class) public class DemoApplication { - public static void main(String[] args) { - SpringApplication.run(DemoApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(DemoApplication.class, args); + } } diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/config/TshirtSizeConfig.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/config/TshirtSizeConfig.java index 000f5b6826..690763ab7b 100644 --- a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/config/TshirtSizeConfig.java +++ b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/config/TshirtSizeConfig.java @@ -1,4 +1,4 @@ -package com.baeldung.boot.data.config; +package com.baeldung.boot.properties.config; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java index 82263eaeed..2f5c523c2e 100644 --- a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java +++ b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java @@ -1,4 +1,4 @@ -package com.baeldung.boot.data.controller; +package com.baeldung.boot.properties.controller; import org.springframework.web.bind.annotation.*; import com.baeldung.boot.data.service.SizeConverterService; diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterImpl.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterImpl.java index ccb5a06da4..8554783493 100644 --- a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterImpl.java +++ b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterImpl.java @@ -1,4 +1,4 @@ -package com.baeldung.boot.data.service; +package com.baeldung.boot.properties.service; import org.springframework.stereotype.Service; import com.baeldung.boot.data.config.TshirtSizeConfig; diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterService.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterService.java index 91cf2bf0b4..412199b176 100644 --- a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterService.java +++ b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterService.java @@ -1,4 +1,4 @@ -package com.baeldung.boot.data.service; +package com.baeldung.boot.properties.service; public interface SizeConverterService { diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/resources/application.yml b/spring-boot-modules/spring-boot-properties-3/src/main/resources/application.yml index edd200389e..8779cb6b0c 100644 --- a/spring-boot-modules/spring-boot-properties-3/src/main/resources/application.yml +++ b/spring-boot-modules/spring-boot-properties-3/src/main/resources/application.yml @@ -1,10 +1,10 @@ -t-shirt-size: - simple-mapping: - XS: 6 - S: 8 - M: 10 - L: 12 - XL: 14 + t-shirt-size: + simple-mapping: + XS: 6 + S: 8 + M: 10 + L: 12 + XL: 14 complex-mapping: diff --git a/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/controller/TshirtSizeControllerTest.java b/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/controller/TshirtSizeControllerTest.java index 1d60eb41c0..96584d6077 100644 --- a/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/controller/TshirtSizeControllerTest.java +++ b/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/controller/TshirtSizeControllerTest.java @@ -1,4 +1,4 @@ -package com.baeldung.boot.data.controller; +package com.baeldung.boot.properties.controller; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; From 130133d73bf1a2ba4ca4c25394bb92755602240d Mon Sep 17 00:00:00 2001 From: Trixi Turny <writetotrixi@gmail.com> Date: Sat, 15 Aug 2020 15:39:01 +0100 Subject: [PATCH 115/156] BAEL-4321 fix leftover data package names --- .../main/java/com/baeldung/boot/properties/DemoApplication.java | 2 +- .../boot/properties/controller/TshirtSizeController.java | 2 +- .../com/baeldung/boot/properties/service/SizeConverterImpl.java | 2 +- .../boot/properties/controller/TshirtSizeControllerTest.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/DemoApplication.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/DemoApplication.java index 634cb211b2..cf2fb7f981 100644 --- a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/DemoApplication.java +++ b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/DemoApplication.java @@ -1,6 +1,6 @@ package com.baeldung.boot.properties; -import com.baeldung.boot.data.config.TshirtSizeConfig; +import com.baeldung.boot.properties.config.TshirtSizeConfig; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.properties.EnableConfigurationProperties; diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java index 2f5c523c2e..6b713c5be8 100644 --- a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java +++ b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java @@ -1,7 +1,7 @@ package com.baeldung.boot.properties.controller; import org.springframework.web.bind.annotation.*; -import com.baeldung.boot.data.service.SizeConverterService; +import com.baeldung.boot.properties.service.SizeConverterService; @RestController @RequestMapping(value = "/") diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterImpl.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterImpl.java index 8554783493..34f7fe2ded 100644 --- a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterImpl.java +++ b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterImpl.java @@ -1,7 +1,7 @@ package com.baeldung.boot.properties.service; import org.springframework.stereotype.Service; -import com.baeldung.boot.data.config.TshirtSizeConfig; +import com.baeldung.boot.properties.config.TshirtSizeConfig; @Service diff --git a/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/controller/TshirtSizeControllerTest.java b/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/controller/TshirtSizeControllerTest.java index 96584d6077..0b70ed8622 100644 --- a/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/controller/TshirtSizeControllerTest.java +++ b/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/controller/TshirtSizeControllerTest.java @@ -5,7 +5,7 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import com.baeldung.boot.data.service.SizeConverterService; +import com.baeldung.boot.properties.service.SizeConverterService; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.when; From ab056706ac911db736de01b41aa257d2220f6881 Mon Sep 17 00:00:00 2001 From: mikr <michael.krimgen@ximedes.com> Date: Sat, 15 Aug 2020 20:02:21 +0200 Subject: [PATCH 116/156] Java-70 Remove unnecessary files from spring-jpa-2 + include in main persistence pom file --- persistence-modules/pom.xml | 1 + persistence-modules/spring-jpa-2/README.md | 18 +--- persistence-modules/spring-jpa-2/pom.xml | 94 +------------------ .../baeldung/config/PersistenceJPAConfig.java | 85 ----------------- .../config/PersistenceJPAConfigXml.java | 17 ---- .../com/baeldung/config/SpringWebConfig.java | 24 ----- .../com/baeldung/config/StudentJpaConfig.java | 67 ------------- .../com/baeldung/config/WebInitializer.java | 20 ---- .../src/main/resources/context.xml | 1 - .../src/main/resources/logback.xml | 19 ---- .../main/resources/persistence-h2.properties | 10 -- .../resources/persistence-student.properties | 11 --- .../src/main/resources/persistence.xml | 42 --------- .../src/main/resources/server.xml | 6 -- .../src/main/resources/sqlfiles.properties | 1 - .../src/test/java/META-INF/persistence.xml | 20 ---- .../java/com/baeldung/SpringContextTest.java | 21 ----- .../resources/persistence-student.properties | 9 -- persistence-modules/spring-jpa/README.md | 5 +- 19 files changed, 6 insertions(+), 465 deletions(-) delete mode 100644 persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/PersistenceJPAConfig.java delete mode 100644 persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/PersistenceJPAConfigXml.java delete mode 100644 persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/SpringWebConfig.java delete mode 100644 persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/StudentJpaConfig.java delete mode 100644 persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/WebInitializer.java delete mode 100644 persistence-modules/spring-jpa-2/src/main/resources/context.xml delete mode 100644 persistence-modules/spring-jpa-2/src/main/resources/logback.xml delete mode 100644 persistence-modules/spring-jpa-2/src/main/resources/persistence-h2.properties delete mode 100644 persistence-modules/spring-jpa-2/src/main/resources/persistence-student.properties delete mode 100644 persistence-modules/spring-jpa-2/src/main/resources/persistence.xml delete mode 100644 persistence-modules/spring-jpa-2/src/main/resources/server.xml delete mode 100644 persistence-modules/spring-jpa-2/src/main/resources/sqlfiles.properties delete mode 100644 persistence-modules/spring-jpa-2/src/test/java/META-INF/persistence.xml delete mode 100644 persistence-modules/spring-jpa-2/src/test/java/com/baeldung/SpringContextTest.java delete mode 100644 persistence-modules/spring-jpa-2/src/test/resources/persistence-student.properties diff --git a/persistence-modules/pom.xml b/persistence-modules/pom.xml index 78f1afd39a..6186900a6e 100644 --- a/persistence-modules/pom.xml +++ b/persistence-modules/pom.xml @@ -78,6 +78,7 @@ <module>spring-hibernate-5</module> <!-- long running --> <module>spring-hibernate4</module> <module>spring-jpa</module> + <module>spring-jpa-2</module> <!-- <module>spring-mybatis</module> --> <!-- needs fixing in BAEL-9021 --> <module>spring-persistence-simple</module> <module>spring-persistence-simple-2</module> diff --git a/persistence-modules/spring-jpa-2/README.md b/persistence-modules/spring-jpa-2/README.md index 71b368b44a..b1786f49bd 100644 --- a/persistence-modules/spring-jpa-2/README.md +++ b/persistence-modules/spring-jpa-2/README.md @@ -1,19 +1,5 @@ -========= - -## Spring JPA Example Project - +## Spring JPA (2) ### Relevant Articles: - [Many-To-Many Relationship in JPA](https://www.baeldung.com/jpa-many-to-many) -- More articles: [[<-- prev]](/spring-jpa) - - -### Eclipse Config -After importing the project into Eclipse, you may see the following error: -"No persistence xml file found in project" - -This can be ignored: -- Project -> Properties -> Java Persistance -> JPA -> Error/Warnings -> Select Ignore on "No persistence xml file found in project" -Or: -- Eclipse -> Preferences - Validation - disable the "Build" execution of the JPA Validator - +- More articles: [[<-- prev]](/spring-jpa) \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/pom.xml b/persistence-modules/spring-jpa-2/pom.xml index 410ed592b0..08a1f0c6a3 100644 --- a/persistence-modules/spring-jpa-2/pom.xml +++ b/persistence-modules/spring-jpa-2/pom.xml @@ -2,9 +2,9 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <artifactId>spring-jpa</artifactId> + <artifactId>spring-jpa-2</artifactId> <version>0.1-SNAPSHOT</version> - <name>spring-jpa</name> + <name>spring-jpa-2</name> <packaging>war</packaging> <parent> @@ -31,94 +31,20 @@ <artifactId>spring-context</artifactId> <version>${org.springframework.version}</version> </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-webmvc</artifactId> - <version>${org.springframework.version}</version> - </dependency> <!-- persistence --> - <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>${hibernate.version}</version> </dependency> - <dependency> - <groupId>xml-apis</groupId> - <artifactId>xml-apis</artifactId> - <version>${xml-apis.version}</version> - </dependency> - <dependency> - <groupId>org.javassist</groupId> - <artifactId>javassist</artifactId> - <version>${javassist.version}</version> - </dependency> - <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - <version>${mysql-connector-java.version}</version> - <scope>runtime</scope> - </dependency> - <dependency> - <groupId>org.springframework.data</groupId> - <artifactId>spring-data-jpa</artifactId> - <version>${spring-data-jpa.version}</version> - </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>${h2.version}</version> </dependency> - <!-- validation --> - - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-validator</artifactId> - <version>${hibernate-validator.version}</version> - </dependency> - <dependency> - <groupId>javax.el</groupId> - <artifactId>javax.el-api</artifactId> - <version>${javax.el-api.version}</version> - </dependency> - - <!-- web --> - <dependency> - <groupId>javax.servlet</groupId> - <artifactId>jstl</artifactId> - <version>${jstl.version}</version> - </dependency> - <dependency> - <groupId>javax.servlet</groupId> - <artifactId>servlet-api</artifactId> - <scope>provided</scope> - <version>${javax.servlet.servlet-api.version}</version> - </dependency> - - <!-- utils --> - - <dependency> - <groupId>com.google.guava</groupId> - <artifactId>guava</artifactId> - <version>${guava.version}</version> - </dependency> - <dependency> - <groupId>org.assertj</groupId> - <artifactId>assertj-core</artifactId> - <version>${assertj.version}</version> - </dependency> - <!-- test scoped --> - - <dependency> - <groupId>org.apache.commons</groupId> - <artifactId>commons-lang3</artifactId> - <version>${commons-lang3.version}</version> - <scope>test</scope> - </dependency> - <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> @@ -131,22 +57,6 @@ <properties> <!-- Spring --> <org.springframework.version>5.1.5.RELEASE</org.springframework.version> - <javassist.version>3.21.0-GA</javassist.version> - - <mysql-connector-java.version>6.0.6</mysql-connector-java.version> - <spring-data-jpa.version>2.1.5.RELEASE</spring-data-jpa.version> - - <!-- web --> - <javax.servlet.servlet-api.version>2.5</javax.servlet.servlet-api.version> - - <!-- various --> - <hibernate-validator.version>6.0.15.Final</hibernate-validator.version> - <xml-apis.version>1.4.01</xml-apis.version> - <javax.el-api.version>2.2.5</javax.el-api.version> - - <!-- util --> - <guava.version>21.0</guava.version> - <assertj.version>3.8.0</assertj.version> </properties> </project> \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/PersistenceJPAConfig.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/PersistenceJPAConfig.java deleted file mode 100644 index c489321122..0000000000 --- a/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/PersistenceJPAConfig.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.baeldung.config; - -import com.google.common.base.Preconditions; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; -import org.springframework.core.env.Environment; -import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; -import org.springframework.data.jpa.repository.config.EnableJpaRepositories; -import org.springframework.jdbc.datasource.DriverManagerDataSource; -import org.springframework.orm.jpa.JpaTransactionManager; -import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; -import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; -import org.springframework.transaction.PlatformTransactionManager; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -import javax.persistence.EntityManagerFactory; -import javax.sql.DataSource; -import java.util.Properties; - -@Configuration -@EnableTransactionManagement -@PropertySource({ "classpath:persistence-h2.properties" }) -@ComponentScan({ "com.baeldung.persistence" }) -@EnableJpaRepositories(basePackages = "com.baeldung.persistence.dao") -public class PersistenceJPAConfig { - - @Autowired - private Environment env; - - public PersistenceJPAConfig() { - super(); - } - - // beans - - @Bean - public LocalContainerEntityManagerFactoryBean entityManagerFactory() { - final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); - em.setDataSource(dataSource()); - em.setPackagesToScan(new String[] { "com.baeldung.persistence.model" }); - - final HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); - em.setJpaVendorAdapter(vendorAdapter); - em.setJpaProperties(additionalProperties()); - - return em; - } - - @Bean - public DataSource dataSource() { - final DriverManagerDataSource dataSource = new DriverManagerDataSource(); - dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName"))); - dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url"))); - dataSource.setUsername(Preconditions.checkNotNull(env.getProperty("jdbc.user"))); - dataSource.setPassword(Preconditions.checkNotNull(env.getProperty("jdbc.pass"))); - - return dataSource; - } - - @Bean - public PlatformTransactionManager transactionManager(final EntityManagerFactory emf) { - final JpaTransactionManager transactionManager = new JpaTransactionManager(); - transactionManager.setEntityManagerFactory(emf); - return transactionManager; - } - - @Bean - public PersistenceExceptionTranslationPostProcessor exceptionTranslation() { - return new PersistenceExceptionTranslationPostProcessor(); - } - - final Properties additionalProperties() { - final Properties hibernateProperties = new Properties(); - hibernateProperties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); - hibernateProperties.setProperty("hibernate.dialect", env.getProperty("hibernate.dialect")); - hibernateProperties.setProperty("hibernate.cache.use_second_level_cache", "false"); - - - return hibernateProperties; - } - -} \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/PersistenceJPAConfigXml.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/PersistenceJPAConfigXml.java deleted file mode 100644 index 95224a4662..0000000000 --- a/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/PersistenceJPAConfigXml.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.baeldung.config; - -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.ImportResource; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -// @Configuration -@EnableTransactionManagement -@ComponentScan({ "com.baeldung.persistence" }) -@ImportResource({ "classpath:jpaConfig.xml" }) -public class PersistenceJPAConfigXml { - - public PersistenceJPAConfigXml() { - super(); - } - -} \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/SpringWebConfig.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/SpringWebConfig.java deleted file mode 100644 index 475970d1f0..0000000000 --- a/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/SpringWebConfig.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.baeldung.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; -import org.springframework.web.servlet.view.InternalResourceViewResolver; -import org.springframework.web.servlet.view.JstlView; - -@EnableWebMvc -@Configuration -@ComponentScan({ "com.baeldung.web" }) -public class SpringWebConfig extends WebMvcConfigurerAdapter { - - @Bean - public InternalResourceViewResolver viewResolver() { - InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); - viewResolver.setViewClass(JstlView.class); - viewResolver.setPrefix("/WEB-INF/views/jsp/"); - viewResolver.setSuffix(".jsp"); - return viewResolver; - } -} diff --git a/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/StudentJpaConfig.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/StudentJpaConfig.java deleted file mode 100644 index 54ced72dd1..0000000000 --- a/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/StudentJpaConfig.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.baeldung.config; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; -import org.springframework.core.env.Environment; -import org.springframework.data.jpa.repository.config.EnableJpaRepositories; -import org.springframework.jdbc.datasource.DriverManagerDataSource; -import org.springframework.orm.jpa.JpaTransactionManager; -import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; -import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -import javax.persistence.EntityManagerFactory; -import javax.sql.DataSource; -import java.util.Properties; - -@Configuration -@EnableJpaRepositories(basePackages = "com.baeldung.inmemory.persistence.dao") -@PropertySource("persistence-student.properties") -@EnableTransactionManagement -public class StudentJpaConfig { - - @Autowired - private Environment env; - - @Bean - public DataSource dataSource() { - final DriverManagerDataSource dataSource = new DriverManagerDataSource(); - dataSource.setDriverClassName(env.getProperty("jdbc.driverClassName")); - dataSource.setUrl(env.getProperty("jdbc.url")); - dataSource.setUsername(env.getProperty("jdbc.user")); - dataSource.setPassword(env.getProperty("jdbc.pass")); - - return dataSource; - } - - @Bean - public LocalContainerEntityManagerFactoryBean entityManagerFactory() { - final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); - em.setDataSource(dataSource()); - em.setPackagesToScan(new String[] { "com.baeldung.inmemory.persistence.model" }); - em.setJpaVendorAdapter(new HibernateJpaVendorAdapter()); - em.setJpaProperties(additionalProperties()); - return em; - } - - @Bean - JpaTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) { - JpaTransactionManager transactionManager = new JpaTransactionManager(); - transactionManager.setEntityManagerFactory(entityManagerFactory); - return transactionManager; - } - - final Properties additionalProperties() { - final Properties hibernateProperties = new Properties(); - - hibernateProperties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); - hibernateProperties.setProperty("hibernate.dialect", env.getProperty("hibernate.dialect")); - hibernateProperties.setProperty("hibernate.show_sql", env.getProperty("hibernate.show_sql")); - hibernateProperties.setProperty("hibernate.cache.use_second_level_cache", env.getProperty("hibernate.cache.use_second_level_cache")); - hibernateProperties.setProperty("hibernate.cache.use_query_cache", env.getProperty("hibernate.cache.use_query_cache")); - - return hibernateProperties; - } -} diff --git a/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/WebInitializer.java b/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/WebInitializer.java deleted file mode 100644 index be81cca76b..0000000000 --- a/persistence-modules/spring-jpa-2/src/main/java/com/baeldung/config/WebInitializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.baeldung.config; - -import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; - -public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { - @Override - protected Class<?>[] getRootConfigClasses() { - return new Class[] { PersistenceJPAConfig.class }; - } - - @Override - protected Class<?>[] getServletConfigClasses() { - return new Class[] { SpringWebConfig.class }; - } - - @Override - protected String[] getServletMappings() { - return new String[] { "/" }; - } -} diff --git a/persistence-modules/spring-jpa-2/src/main/resources/context.xml b/persistence-modules/spring-jpa-2/src/main/resources/context.xml deleted file mode 100644 index a64dfe9a61..0000000000 --- a/persistence-modules/spring-jpa-2/src/main/resources/context.xml +++ /dev/null @@ -1 +0,0 @@ - <ResourceLink name="jdbc/BaeldungDatabase" global="jdbc/BaeldungDatabase" type="javax.sql.DataSource"/> \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/main/resources/logback.xml b/persistence-modules/spring-jpa-2/src/main/resources/logback.xml deleted file mode 100644 index ec0dc2469a..0000000000 --- a/persistence-modules/spring-jpa-2/src/main/resources/logback.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<configuration> - <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> - <encoder> - <pattern>web - %date [%thread] %-5level %logger{36} - %message%n - </pattern> - </encoder> - </appender> - - <logger name="org.springframework" level="WARN" /> - <logger name="org.springframework.transaction" level="WARN" /> - - <!-- in order to debug some marshalling issues, this needs to be TRACE --> - <logger name="org.springframework.web.servlet.mvc" level="WARN" /> - - <root level="INFO"> - <appender-ref ref="STDOUT" /> - </root> -</configuration> \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/main/resources/persistence-h2.properties b/persistence-modules/spring-jpa-2/src/main/resources/persistence-h2.properties deleted file mode 100644 index a3060cc796..0000000000 --- a/persistence-modules/spring-jpa-2/src/main/resources/persistence-h2.properties +++ /dev/null @@ -1,10 +0,0 @@ -# jdbc.X -jdbc.driverClassName=org.h2.Driver -jdbc.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1 -jdbc.user=sa -jdbc.pass= - -# hibernate.X -hibernate.dialect=org.hibernate.dialect.H2Dialect -hibernate.show_sql=true -hibernate.hbm2ddl.auto=create-drop \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/main/resources/persistence-student.properties b/persistence-modules/spring-jpa-2/src/main/resources/persistence-student.properties deleted file mode 100644 index d4c82420de..0000000000 --- a/persistence-modules/spring-jpa-2/src/main/resources/persistence-student.properties +++ /dev/null @@ -1,11 +0,0 @@ -jdbc.driverClassName=com.mysql.cj.jdbc.Driver -jdbc.url=jdbc:mysql://localhost:3306/myDb -jdbc.user=tutorialuser -jdbc.pass=tutorialpass - -hibernate.dialect=org.hibernate.dialect.MySQL5Dialect -hibernate.show_sql=true -hibernate.hbm2ddl.auto=create-drop - -hibernate.cache.use_second_level_cache=false -hibernate.cache.use_query_cache=false \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/main/resources/persistence.xml b/persistence-modules/spring-jpa-2/src/main/resources/persistence.xml deleted file mode 100644 index 57687c306d..0000000000 --- a/persistence-modules/spring-jpa-2/src/main/resources/persistence.xml +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" - xmlns:tx="http://www.springframework.org/schema/tx" - xsi:schemaLocation=" - http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd - http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd - http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd" -> - - <context:property-placeholder location="classpath:persistence-h2.properties"/> - - <bean id="myEmf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> - <property name="dataSource" ref="dataSource"/> - <property name="packagesToScan" value="com.baeldung.persistence.model"/> - <property name="jpaVendorAdapter"> - <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/> - <!-- <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" /> <property name="generateDdl" value="${jpa.generateDdl}" /> <property name="databasePlatform" - value="${persistence.dialect}" /> </bean> --> - </property> - <property name="jpaProperties"> - <props> - <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> - <prop key="hibernate.dialect">${hibernate.dialect}</prop> - </props> - </property> - </bean> - - <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> - <property name="driverClassName" value="${jdbc.driverClassName}"/> - <property name="url" value="${jdbc.url}"/> - <property name="username" value="${jdbc.user}"/> - <property name="password" value="${jdbc.pass}"/> - </bean> - - <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> - <property name="entityManagerFactory" ref="myEmf"/> - </bean> - <tx:annotation-driven/> - - <bean id="persistenceExceptionTranslationPostProcessor" class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/> - -</beans> \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/main/resources/server.xml b/persistence-modules/spring-jpa-2/src/main/resources/server.xml deleted file mode 100644 index 5c61659018..0000000000 --- a/persistence-modules/spring-jpa-2/src/main/resources/server.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - <Resource name="jdbc/BaeldungDatabase" auth="Container" - type="javax.sql.DataSource" driverClassName="org.postgresql.Driver" - url="jdbc:postgresql://localhost:5432/postgres" - username="baeldung" password="pass1234" maxActive="20" maxIdle="10" maxWait="-1"/> \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/main/resources/sqlfiles.properties b/persistence-modules/spring-jpa-2/src/main/resources/sqlfiles.properties deleted file mode 100644 index 0bea6adad1..0000000000 --- a/persistence-modules/spring-jpa-2/src/main/resources/sqlfiles.properties +++ /dev/null @@ -1 +0,0 @@ -spring.jpa.hibernate.ddl-auto=none \ No newline at end of file diff --git a/persistence-modules/spring-jpa-2/src/test/java/META-INF/persistence.xml b/persistence-modules/spring-jpa-2/src/test/java/META-INF/persistence.xml deleted file mode 100644 index 495f076fef..0000000000 --- a/persistence-modules/spring-jpa-2/src/test/java/META-INF/persistence.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> - <persistence-unit name="punit"> - <class>com.baeldung.persistence.model.Foo</class> - <class>com.baeldung.persistence.model.Bar</class> - <properties> - <property name="javax.persistence.jdbc.user" value="root"/> - <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> - <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/HIBERTEST"/> - <property name="javax.persistence.ddl-generation" value="drop-and-create-tables"/> - <property name="javax.persistence.logging.level" value="INFO"/> - <property name="hibernate.show_sql" value="true"/> - <property name="hibernate.cache.use_second_level_cache" value="false"/> - <property name="hibernate.cache.use_query_cache" value="false"/> - </properties> - - </persistence-unit> -</persistence> diff --git a/persistence-modules/spring-jpa-2/src/test/java/com/baeldung/SpringContextTest.java b/persistence-modules/spring-jpa-2/src/test/java/com/baeldung/SpringContextTest.java deleted file mode 100644 index abc73e250d..0000000000 --- a/persistence-modules/spring-jpa-2/src/test/java/com/baeldung/SpringContextTest.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.baeldung; - -import com.baeldung.config.PersistenceJPAConfig; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.springframework.test.context.support.AnnotationConfigContextLoader; -import org.springframework.test.context.web.WebAppConfiguration; - -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = { PersistenceJPAConfig.class }, loader = AnnotationConfigContextLoader.class) -@WebAppConfiguration -@DirtiesContext -public class SpringContextTest { - - @Test - public void whenSpringContextIsBootstrapped_thenNoExceptions() { - } -} diff --git a/persistence-modules/spring-jpa-2/src/test/resources/persistence-student.properties b/persistence-modules/spring-jpa-2/src/test/resources/persistence-student.properties deleted file mode 100644 index 3b6b580630..0000000000 --- a/persistence-modules/spring-jpa-2/src/test/resources/persistence-student.properties +++ /dev/null @@ -1,9 +0,0 @@ -jdbc.driverClassName=org.h2.Driver -jdbc.url=jdbc:h2:mem:myDb;DB_CLOSE_DELAY=-1 - -hibernate.dialect=org.hibernate.dialect.H2Dialect -hibernate.show_sql=true -hibernate.hbm2ddl.auto=create - -hibernate.cache.use_second_level_cache=false -hibernate.cache.use_query_cache=false \ No newline at end of file diff --git a/persistence-modules/spring-jpa/README.md b/persistence-modules/spring-jpa/README.md index 3eb8ae8d55..d260913635 100644 --- a/persistence-modules/spring-jpa/README.md +++ b/persistence-modules/spring-jpa/README.md @@ -1,7 +1,4 @@ -========= - -## Spring JPA Example Project - +## Spring JPA (1) ### Relevant Articles: - [The DAO with JPA and Spring](https://www.baeldung.com/spring-dao-jpa) From 1d0488b5761a1591602a374c5594298f02429b17 Mon Sep 17 00:00:00 2001 From: mikr <michael.krimgen@ximedes.com> Date: Sat, 15 Aug 2020 20:25:37 +0200 Subject: [PATCH 117/156] Java-70 Rename modules in Spring Security modules --- spring-security-modules/pom.xml | 3 +- .../README.md | 0 .../pom.xml | 4 +- .../spring-security-sso-auth-server/pom.xml | 0 .../com/baeldung/config/AuthServerConfig.java | 0 .../AuthorizationServerApplication.java | 0 .../com/baeldung/config/SecurityConfig.java | 0 .../com/baeldung/config/UserController.java | 0 .../src/main/resources/application.properties | 0 .../src/main/resources/logback.xml | 0 .../java/com/baeldung/SpringContextTest.java | 0 .../baeldung/UserInfoEndpointLiveTest.java | 0 .../spring-security-sso-kerberos/.gitignore | 0 .../spring-security-sso-kerberos/README.md | 0 .../spring-security-sso-kerberos/pom.xml | 0 .../java/com/baeldung/intro/Application.java | 0 .../intro/config/WebSecurityConfig.java | 0 .../security/DummyUserDetailsService.java | 0 .../kerberos/client/KerberosClientApp.java | 0 .../java/kerberos/client/SampleClient.java | 0 .../kerberos/client/config/AppConfig.java | 0 .../client/config/KerberosConfig.java | 0 .../java/kerberos/kdc/KerberosMiniKdc.java | 0 .../kerberos/kdc/MiniKdcConfigBuilder.java | 0 .../kerberos/server/KerberizedServerApp.java | 0 .../kerberos/server/config/MvcConfig.java | 0 .../server/config/WebSecurityConfig.java | 0 .../server/controller/SampleController.java | 0 .../service/DummyUserDetailsService.java | 0 .../src/main/resources/application.properties | 0 .../src/main/resources/minikdc-krb5.conf | 0 .../src/main/resources/minikdc.ldiff | 0 .../src/main/resources/templates/hello.html | 0 .../src/main/resources/templates/home.html | 0 .../src/main/resources/templates/login.html | 0 .../client/SampleClientManualTest.java | 0 .../spring-security-sso-ui-2/pom.xml | 0 .../com/baeldung/config/UiApplication.java | 0 .../com/baeldung/config/UiSecurityConfig.java | 0 .../java/com/baeldung/config/UiWebConfig.java | 0 .../src/main/resources/application.yml | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/templates/index.html | 0 .../main/resources/templates/securedPage.html | 0 .../java/com/baeldung/SpringContextTest.java | 0 .../spring-security-sso-ui/pom.xml | 0 .../com/baeldung/config/UiApplication.java | 0 .../com/baeldung/config/UiSecurityConfig.java | 0 .../java/com/baeldung/config/UiWebConfig.java | 0 .../src/main/resources/application.yml | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/templates/index.html | 0 .../main/resources/templates/securedPage.html | 0 .../java/com/baeldung/SpringContextTest.java | 0 .../spring-security-stormpath/README.md | 7 -- .../spring-security-stormpath/pom.xml | 68 ------------------- .../main/java/com/baeldung/Application.java | 25 ------- .../security/SecurityConfiguration.java | 24 ------- .../src/main/resources/application.properties | 6 -- .../src/main/resources/logback.xml | 13 ---- 60 files changed, 3 insertions(+), 147 deletions(-) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/README.md (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/pom.xml (92%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-auth-server/pom.xml (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-auth-server/src/main/java/com/baeldung/config/AuthServerConfig.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-auth-server/src/main/java/com/baeldung/config/AuthorizationServerApplication.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-auth-server/src/main/java/com/baeldung/config/SecurityConfig.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-auth-server/src/main/java/com/baeldung/config/UserController.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-auth-server/src/main/resources/application.properties (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-auth-server/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-auth-server/src/test/java/com/baeldung/SpringContextTest.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-auth-server/src/test/java/com/baeldung/UserInfoEndpointLiveTest.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/.gitignore (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/README.md (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/pom.xml (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/Application.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/config/WebSecurityConfig.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/security/DummyUserDetailsService.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/java/kerberos/client/KerberosClientApp.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/java/kerberos/client/SampleClient.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/java/kerberos/client/config/AppConfig.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/java/kerberos/client/config/KerberosConfig.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/java/kerberos/kdc/KerberosMiniKdc.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/java/kerberos/kdc/MiniKdcConfigBuilder.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/java/kerberos/server/KerberizedServerApp.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/java/kerberos/server/config/MvcConfig.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/java/kerberos/server/config/WebSecurityConfig.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/java/kerberos/server/controller/SampleController.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/java/kerberos/server/service/DummyUserDetailsService.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/resources/application.properties (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/resources/minikdc-krb5.conf (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/resources/minikdc.ldiff (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/resources/templates/hello.html (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/resources/templates/home.html (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/main/resources/templates/login.html (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-kerberos/src/test/java/kerberos/client/SampleClientManualTest.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-ui-2/pom.xml (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiApplication.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiSecurityConfig.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiWebConfig.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-ui-2/src/main/resources/application.yml (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-ui-2/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-ui-2/src/main/resources/templates/index.html (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-ui-2/src/main/resources/templates/securedPage.html (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-ui-2/src/test/java/com/baeldung/SpringContextTest.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-ui/pom.xml (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-ui/src/main/java/com/baeldung/config/UiApplication.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-ui/src/main/java/com/baeldung/config/UiSecurityConfig.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-ui/src/main/java/com/baeldung/config/UiWebConfig.java (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-ui/src/main/resources/application.yml (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-ui/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-ui/src/main/resources/templates/index.html (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-ui/src/main/resources/templates/securedPage.html (100%) rename spring-security-modules/{spring-security-sso => spring-security-oauth2-sso}/spring-security-sso-ui/src/test/java/com/baeldung/SpringContextTest.java (100%) delete mode 100644 spring-security-modules/spring-security-stormpath/README.md delete mode 100644 spring-security-modules/spring-security-stormpath/pom.xml delete mode 100644 spring-security-modules/spring-security-stormpath/src/main/java/com/baeldung/Application.java delete mode 100644 spring-security-modules/spring-security-stormpath/src/main/java/com/baeldung/security/SecurityConfiguration.java delete mode 100644 spring-security-modules/spring-security-stormpath/src/main/resources/application.properties delete mode 100644 spring-security-modules/spring-security-stormpath/src/main/resources/logback.xml diff --git a/spring-security-modules/pom.xml b/spring-security-modules/pom.xml index d7b5844e6f..f050b48ac5 100644 --- a/spring-security-modules/pom.xml +++ b/spring-security-modules/pom.xml @@ -35,8 +35,7 @@ <module>spring-security-rest</module> <module>spring-security-rest-basic-auth</module> <module>spring-security-rest-custom</module> - <module>spring-security-sso</module> - <module>spring-security-stormpath</module> + <module>spring-security-oauth2-sso</module> <module>spring-security-thymeleaf</module> <module>spring-security-x509</module> <module>spring-security-kotlin-dsl</module> diff --git a/spring-security-modules/spring-security-sso/README.md b/spring-security-modules/spring-security-oauth2-sso/README.md similarity index 100% rename from spring-security-modules/spring-security-sso/README.md rename to spring-security-modules/spring-security-oauth2-sso/README.md diff --git a/spring-security-modules/spring-security-sso/pom.xml b/spring-security-modules/spring-security-oauth2-sso/pom.xml similarity index 92% rename from spring-security-modules/spring-security-sso/pom.xml rename to spring-security-modules/spring-security-oauth2-sso/pom.xml index 4e5bb49aa3..ed4b1d64ba 100644 --- a/spring-security-modules/spring-security-sso/pom.xml +++ b/spring-security-modules/spring-security-oauth2-sso/pom.xml @@ -3,9 +3,9 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.baeldung</groupId> - <artifactId>spring-security-sso</artifactId> + <artifactId>spring-security-oauth2-sso</artifactId> <version>1.0.0-SNAPSHOT</version> - <name>spring-security-sso</name> + <name>spring-security-oauth2-sso</name> <packaging>pom</packaging> <parent> diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-auth-server/pom.xml b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/pom.xml similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-auth-server/pom.xml rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/pom.xml diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/AuthServerConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/AuthServerConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/AuthServerConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/AuthServerConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/AuthorizationServerApplication.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/AuthorizationServerApplication.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/AuthorizationServerApplication.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/AuthorizationServerApplication.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/SecurityConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/SecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/SecurityConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/SecurityConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/UserController.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/UserController.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/UserController.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/java/com/baeldung/config/UserController.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/resources/application.properties b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/resources/application.properties similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/resources/application.properties rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/resources/application.properties diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/resources/logback.xml b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/main/resources/logback.xml rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/test/java/com/baeldung/UserInfoEndpointLiveTest.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/test/java/com/baeldung/UserInfoEndpointLiveTest.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-auth-server/src/test/java/com/baeldung/UserInfoEndpointLiveTest.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-auth-server/src/test/java/com/baeldung/UserInfoEndpointLiveTest.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/.gitignore b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/.gitignore similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/.gitignore rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/.gitignore diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/README.md b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/README.md similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/README.md rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/README.md diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/pom.xml b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/pom.xml similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/pom.xml rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/pom.xml diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/Application.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/Application.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/Application.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/Application.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/config/WebSecurityConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/config/WebSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/config/WebSecurityConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/config/WebSecurityConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/security/DummyUserDetailsService.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/security/DummyUserDetailsService.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/security/DummyUserDetailsService.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/com/baeldung/intro/security/DummyUserDetailsService.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/KerberosClientApp.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/KerberosClientApp.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/KerberosClientApp.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/KerberosClientApp.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/SampleClient.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/SampleClient.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/SampleClient.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/SampleClient.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/config/AppConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/config/AppConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/config/AppConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/config/AppConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/config/KerberosConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/config/KerberosConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/config/KerberosConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/client/config/KerberosConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/kdc/KerberosMiniKdc.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/kdc/KerberosMiniKdc.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/kdc/KerberosMiniKdc.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/kdc/KerberosMiniKdc.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/kdc/MiniKdcConfigBuilder.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/kdc/MiniKdcConfigBuilder.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/kdc/MiniKdcConfigBuilder.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/kdc/MiniKdcConfigBuilder.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/KerberizedServerApp.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/KerberizedServerApp.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/KerberizedServerApp.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/KerberizedServerApp.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/config/MvcConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/config/MvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/config/MvcConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/config/MvcConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/config/WebSecurityConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/config/WebSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/config/WebSecurityConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/config/WebSecurityConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/controller/SampleController.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/controller/SampleController.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/controller/SampleController.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/controller/SampleController.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/service/DummyUserDetailsService.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/service/DummyUserDetailsService.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/service/DummyUserDetailsService.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/java/kerberos/server/service/DummyUserDetailsService.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/application.properties b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/application.properties similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/application.properties rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/application.properties diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/minikdc-krb5.conf b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/minikdc-krb5.conf similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/minikdc-krb5.conf rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/minikdc-krb5.conf diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/minikdc.ldiff b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/minikdc.ldiff similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/minikdc.ldiff rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/minikdc.ldiff diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/templates/hello.html b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/templates/hello.html similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/templates/hello.html rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/templates/hello.html diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/templates/home.html b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/templates/home.html similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/templates/home.html rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/templates/home.html diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/templates/login.html b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/templates/login.html similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/main/resources/templates/login.html rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/main/resources/templates/login.html diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/test/java/kerberos/client/SampleClientManualTest.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/test/java/kerberos/client/SampleClientManualTest.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-kerberos/src/test/java/kerberos/client/SampleClientManualTest.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-kerberos/src/test/java/kerberos/client/SampleClientManualTest.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui-2/pom.xml b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/pom.xml similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui-2/pom.xml rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/pom.xml diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiApplication.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiApplication.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiApplication.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiApplication.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiSecurityConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiSecurityConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiSecurityConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiWebConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiWebConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiWebConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/java/com/baeldung/config/UiWebConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/resources/application.yml b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/resources/application.yml similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/resources/application.yml rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/resources/application.yml diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/resources/logback.xml b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/resources/logback.xml rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/resources/templates/index.html b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/resources/templates/index.html similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/resources/templates/index.html rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/resources/templates/index.html diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/resources/templates/securedPage.html b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/resources/templates/securedPage.html similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/main/resources/templates/securedPage.html rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/main/resources/templates/securedPage.html diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui-2/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui-2/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui/pom.xml b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/pom.xml similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui/pom.xml rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/pom.xml diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiApplication.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiApplication.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiApplication.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiApplication.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiSecurityConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiSecurityConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiSecurityConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiWebConfig.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiWebConfig.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiWebConfig.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/java/com/baeldung/config/UiWebConfig.java diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/resources/application.yml b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/resources/application.yml similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/resources/application.yml rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/resources/application.yml diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/resources/logback.xml b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/resources/logback.xml rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/resources/templates/index.html b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/resources/templates/index.html similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/resources/templates/index.html rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/resources/templates/index.html diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/resources/templates/securedPage.html b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/resources/templates/securedPage.html similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui/src/main/resources/templates/securedPage.html rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/main/resources/templates/securedPage.html diff --git a/spring-security-modules/spring-security-sso/spring-security-sso-ui/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-sso/spring-security-sso-ui/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-oauth2-sso/spring-security-sso-ui/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-stormpath/README.md b/spring-security-modules/spring-security-stormpath/README.md deleted file mode 100644 index 971d4cc858..0000000000 --- a/spring-security-modules/spring-security-stormpath/README.md +++ /dev/null @@ -1,7 +0,0 @@ -## Spring Security Stormpath - -This module contains articles about Spring Security with Stormpath - -### Relevant articles - -- [Spring Security with Stormpath](https://www.baeldung.com/spring-security-stormpath) diff --git a/spring-security-modules/spring-security-stormpath/pom.xml b/spring-security-modules/spring-security-stormpath/pom.xml deleted file mode 100644 index 81a7c40aef..0000000000 --- a/spring-security-modules/spring-security-stormpath/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <artifactId>spring-security-stormpath</artifactId> - <version>1.0-SNAPSHOT</version> - <name>spring-security-stormpath</name> - <packaging>war</packaging> - <url>http://maven.apache.org</url> - - <developers> - <developer> - <email>abhinabkanrar@gmail.com</email> - <name>Abhinab Kanrar</name> - <url>https://github.com/AbhinabKanrar</url> - <id>abhinabkanrar</id> - </developer> - </developers> - - <parent> - <groupId>com.baeldung</groupId> - <artifactId>parent-boot-1</artifactId> - <version>0.0.1-SNAPSHOT</version> - <relativePath>../../parent-boot-1</relativePath> - </parent> - - <dependencies> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-web</artifactId> - </dependency> - <dependency> - <groupId>com.stormpath.spring</groupId> - <artifactId>stormpath-default-spring-boot-starter</artifactId> - <version>${stormpath-spring.version}</version> - </dependency> - </dependencies> - - <build> - <finalName>spring-security-stormpath</finalName> - <resources> - <resource> - <directory>src/main/resources</directory> - </resource> - </resources> - <plugins> - <plugin> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-maven-plugin</artifactId> - <configuration> - <addResources>true</addResources> - </configuration> - <executions> - <execution> - <goals> - <goal>repackage</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> - - <properties> - <stormpath-spring.version>1.5.4</stormpath-spring.version> - </properties> - -</project> diff --git a/spring-security-modules/spring-security-stormpath/src/main/java/com/baeldung/Application.java b/spring-security-modules/spring-security-stormpath/src/main/java/com/baeldung/Application.java deleted file mode 100644 index 3d1409eaeb..0000000000 --- a/spring-security-modules/spring-security-stormpath/src/main/java/com/baeldung/Application.java +++ /dev/null @@ -1,25 +0,0 @@ -/** - * - */ -package com.baeldung; - -import org.springframework.boot.CommandLineRunner; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -/** - * @author abhinab - * - */ -@SpringBootApplication -public class Application implements CommandLineRunner { - - @Override - public void run(String... args) throws Exception { - } - - public static void main(String[] args) { - SpringApplication.run(Application.class, args); - } - -} diff --git a/spring-security-modules/spring-security-stormpath/src/main/java/com/baeldung/security/SecurityConfiguration.java b/spring-security-modules/spring-security-stormpath/src/main/java/com/baeldung/security/SecurityConfiguration.java deleted file mode 100644 index 5d75ecea8a..0000000000 --- a/spring-security-modules/spring-security-stormpath/src/main/java/com/baeldung/security/SecurityConfiguration.java +++ /dev/null @@ -1,24 +0,0 @@ -/** - * - */ -package com.baeldung.security; - -import org.springframework.context.annotation.Configuration; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; - -import static com.stormpath.spring.config.StormpathWebSecurityConfigurer.stormpath; - -/** - * @author abhinab - * - */ -@Configuration -public class SecurityConfiguration extends WebSecurityConfigurerAdapter { - - @Override - protected void configure(HttpSecurity http) throws Exception { - http.apply(stormpath()); - } - -} diff --git a/spring-security-modules/spring-security-stormpath/src/main/resources/application.properties b/spring-security-modules/spring-security-stormpath/src/main/resources/application.properties deleted file mode 100644 index 64a9ca456c..0000000000 --- a/spring-security-modules/spring-security-stormpath/src/main/resources/application.properties +++ /dev/null @@ -1,6 +0,0 @@ -security.basic.enabled = false - -stormpath.web.stormpathFilter.order = 0 - -stormpath.client.apiKey.id = 668HU0EOZQ7F4MT53ND2HSGBA -stormpath.client.apiKey.secret = RPTaYX07csTJR0AMKjM462KRdiP6q037kBWoDrBC3DI diff --git a/spring-security-modules/spring-security-stormpath/src/main/resources/logback.xml b/spring-security-modules/spring-security-stormpath/src/main/resources/logback.xml deleted file mode 100644 index 7d900d8ea8..0000000000 --- a/spring-security-modules/spring-security-stormpath/src/main/resources/logback.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<configuration> - <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> - <encoder> - <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - </pattern> - </encoder> - </appender> - - <root level="INFO"> - <appender-ref ref="STDOUT" /> - </root> -</configuration> \ No newline at end of file From 3e2ce28afbdeb558d8007a308ea3e6960430800c Mon Sep 17 00:00:00 2001 From: CHANDRAKANT Kumar <kumar.chandrakant@soprabanking.com> Date: Sun, 16 Aug 2020 01:15:24 +0530 Subject: [PATCH 118/156] Incorporated the review comments on the pull request. --- spring-webflux-threads/.gitignore | 25 ------------ spring-webflux-threads/README.md | 2 +- .../com/baeldung/webflux/Application.java | 3 ++ .../java/com/baeldung/webflux/Controller.java | 40 +++++++++---------- 4 files changed, 24 insertions(+), 46 deletions(-) delete mode 100644 spring-webflux-threads/.gitignore diff --git a/spring-webflux-threads/.gitignore b/spring-webflux-threads/.gitignore deleted file mode 100644 index 82eca336e3..0000000000 --- a/spring-webflux-threads/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/spring-webflux-threads/README.md b/spring-webflux-threads/README.md index 26013d73e1..279b831a6d 100644 --- a/spring-webflux-threads/README.md +++ b/spring-webflux-threads/README.md @@ -1,7 +1,7 @@ ## Spring WebFlux Concurrency This module contains articles about concurrency model in Spring WebFlux. -Please note that this assumes Mongo and Kafka to be running on the local machine on default configurations. + ### Relevant Articles: diff --git a/spring-webflux-threads/src/main/java/com/baeldung/webflux/Application.java b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Application.java index 1dfa00eae0..6cba90c0f4 100644 --- a/spring-webflux-threads/src/main/java/com/baeldung/webflux/Application.java +++ b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Application.java @@ -3,6 +3,9 @@ package com.baeldung.webflux; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +/** +* Please note that this assumes Mongo and Kafka to be running on the local machine on default configurations. +*/ @SpringBootApplication public class Application { diff --git a/spring-webflux-threads/src/main/java/com/baeldung/webflux/Controller.java b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Controller.java index ec6d7a596b..3c7e4e41ca 100644 --- a/spring-webflux-threads/src/main/java/com/baeldung/webflux/Controller.java +++ b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Controller.java @@ -53,31 +53,31 @@ public class Controller { @GetMapping("/threads/webclient") public Flux<String> getThreadsWebClient() { WebClient.create("http://localhost:8080/index") - .get() - .retrieve() - .bodyToMono(String.class) - .subscribeOn(scheduler) - .publishOn(scheduler) - .doOnNext(s -> logger.info("Response: {}", s)) - .subscribe(); + .get() + .retrieve() + .bodyToMono(String.class) + .subscribeOn(scheduler) + .publishOn(scheduler) + .doOnNext(s -> logger.info("Response: {}", s)) + .subscribe(); return Flux.fromIterable(getThreads()); } @GetMapping("/threads/rxjava") public Observable<String> getIndexRxJava() { Observable.fromIterable(Arrays.asList("Hello", "World")) - .map(s -> s.toUpperCase()) - .observeOn(io.reactivex.schedulers.Schedulers.trampoline()) - .doOnNext(s -> logger.info("String: {}", s)) - .subscribe(); + .map(s -> s.toUpperCase()) + .observeOn(io.reactivex.schedulers.Schedulers.trampoline()) + .doOnNext(s -> logger.info("String: {}", s)) + .subscribe(); return Observable.fromIterable(getThreads()); } @GetMapping("/threads/mongodb") public Flux<String> getIndexMongo() { personRepository.findAll() - .doOnNext(p -> logger.info("Person: {}", p)) - .subscribe(); + .doOnNext(p -> logger.info("Person: {}", p)) + .subscribe(); return Flux.fromIterable(getThreads()); } @@ -90,9 +90,9 @@ public class Controller { SenderOptions<Integer, String> senderOptions = SenderOptions.create(producerProps); KafkaSender<Integer, String> sender = KafkaSender.create(senderOptions); Flux<SenderRecord<Integer, String, Integer>> outboundFlux = Flux.range(1, 10) - .map(i -> SenderRecord.create(new ProducerRecord<>("reactive-test", i, "Message_" + i), i)); + .map(i -> SenderRecord.create(new ProducerRecord<>("reactive-test", i, "Message_" + i), i)); sender.send(outboundFlux) - .subscribe(); + .subscribe(); Map<String, Object> consumerProps = new HashMap<>(); consumerProps.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092"); @@ -108,7 +108,7 @@ public class Controller { inboundFlux.subscribe(r -> { logger.info("Received message: {}", r.value()); r.receiverOffset() - .acknowledge(); + .acknowledge(); }); return Flux.fromIterable(getThreads()); } @@ -120,9 +120,9 @@ public class Controller { private List<String> getThreads() { return Thread.getAllStackTraces() - .keySet() - .stream() - .map(t -> String.format("%-20s \t %s \t %d \t %s\n", t.getName(), t.getState(), t.getPriority(), t.isDaemon() ? "Daemon" : "Normal")) - .collect(Collectors.toList()); + .keySet() + .stream() + .map(t -> String.format("%-20s \t %s \t %d \t %s\n", t.getName(), t.getState(), t.getPriority(), t.isDaemon() ? "Daemon" : "Normal")) + .collect(Collectors.toList()); } } From 1ba940679a4a324aa976d2070848f2e8ed8eaaf9 Mon Sep 17 00:00:00 2001 From: mikr <michael.krimgen@ximedes.com> Date: Sat, 15 Aug 2020 22:18:01 +0200 Subject: [PATCH 119/156] Java-1460 Reduce logging created by the maven-help plugin --- maven-modules/maven-profiles/pom.xml | 40 +++++++++++++++------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/maven-modules/maven-profiles/pom.xml b/maven-modules/maven-profiles/pom.xml index 4937bc7c5d..f3aeb9d549 100644 --- a/maven-modules/maven-profiles/pom.xml +++ b/maven-modules/maven-profiles/pom.xml @@ -66,27 +66,29 @@ </file> </activation> </profile> + <profile> + <id>show-active-profiles</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-help-plugin</artifactId> + <version>${help.plugin.version}</version> + <executions> + <execution> + <id>show-profiles</id> + <phase>compile</phase> + <goals> + <goal>active-profiles</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> </profiles> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-help-plugin</artifactId> - <version>${help.plugin.version}</version> - <executions> - <execution> - <id>show-profiles</id> - <phase>compile</phase> - <goals> - <goal>active-profiles</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> - <properties> <help.plugin.version>3.2.0</help.plugin.version> </properties> From bb34174aeb777da69ef019aefeb9b102d374f35f Mon Sep 17 00:00:00 2001 From: Carlos Grappa <cgrappa@gmail.com> Date: Sat, 15 Aug 2020 17:59:34 -0300 Subject: [PATCH 120/156] BAEL 2881 (#9639) * BAEL-4154 IOException Too many open files * Add comment to explain GC dependency * Add HPPC, remove Colt & Trove * Add inplace iterators for fastutil and extra maps for HPPC Co-authored-by: Carlos Grappa <carlos.grappa@mercadolibre.com> --- .../core-java-collections-maps-2/pom.xml | 14 +--- .../map/primitives/PrimitiveMaps.java | 81 +++++++++++++------ 2 files changed, 61 insertions(+), 34 deletions(-) diff --git a/core-java-modules/core-java-collections-maps-2/pom.xml b/core-java-modules/core-java-collections-maps-2/pom.xml index a64a11c6ea..7c4ab19945 100644 --- a/core-java-modules/core-java-collections-maps-2/pom.xml +++ b/core-java-modules/core-java-collections-maps-2/pom.xml @@ -21,20 +21,15 @@ <version>${eclipse-collections.version}</version> </dependency> <dependency> - <groupId>net.sf.trove4j</groupId> - <artifactId>trove4j</artifactId> - <version>${trove4j.version}</version> + <groupId>com.carrotsearch</groupId> + <artifactId>hppc</artifactId> + <version>${hppc.version}</version> </dependency> <dependency> <groupId>it.unimi.dsi</groupId> <artifactId>fastutil</artifactId> <version>${fastutil.version}</version> </dependency> - <dependency> - <groupId>colt</groupId> - <artifactId>colt</artifactId> - <version>${colt.version}</version> - </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> @@ -69,9 +64,8 @@ <commons-collections4.version>4.1</commons-collections4.version> <avaitility.version>1.7.0</avaitility.version> <eclipse-collections.version>8.2.0</eclipse-collections.version> - <trove4j.version>3.0.2</trove4j.version> + <hppc.version>0.7.2</hppc.version> <fastutil.version>8.1.0</fastutil.version> - <colt.version>1.2.0</colt.version> <assertj.version>3.11.1</assertj.version> </properties> diff --git a/core-java-modules/core-java-collections-maps-2/src/main/java/com/baeldung/map/primitives/PrimitiveMaps.java b/core-java-modules/core-java-collections-maps-2/src/main/java/com/baeldung/map/primitives/PrimitiveMaps.java index 30bec12ccc..e53290f93a 100644 --- a/core-java-modules/core-java-collections-maps-2/src/main/java/com/baeldung/map/primitives/PrimitiveMaps.java +++ b/core-java-modules/core-java-collections-maps-2/src/main/java/com/baeldung/map/primitives/PrimitiveMaps.java @@ -1,29 +1,68 @@ package com.baeldung.map.primitives; -import cern.colt.map.AbstractIntDoubleMap; -import cern.colt.map.OpenIntDoubleHashMap; -import gnu.trove.map.TDoubleIntMap; -import gnu.trove.map.hash.TDoubleIntHashMap; +import com.carrotsearch.hppc.IntLongHashMap; +import com.carrotsearch.hppc.IntLongScatterMap; +import com.carrotsearch.hppc.IntObjectHashMap; +import com.carrotsearch.hppc.IntObjectMap; +import com.carrotsearch.hppc.IntObjectScatterMap; + import it.unimi.dsi.fastutil.ints.Int2BooleanMap; +import it.unimi.dsi.fastutil.ints.Int2BooleanMaps; import it.unimi.dsi.fastutil.ints.Int2BooleanOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2BooleanSortedMap; import it.unimi.dsi.fastutil.ints.Int2BooleanSortedMaps; +import it.unimi.dsi.fastutil.objects.ObjectIterator; + import org.eclipse.collections.api.map.primitive.ImmutableIntIntMap; import org.eclipse.collections.api.map.primitive.MutableIntIntMap; import org.eclipse.collections.api.map.primitive.MutableObjectDoubleMap; import org.eclipse.collections.impl.factory.primitive.IntIntMaps; import org.eclipse.collections.impl.factory.primitive.ObjectDoubleMaps; +import static java.lang.String.format; + +import java.math.BigDecimal; + public class PrimitiveMaps { public static void main(String[] args) { + hppcMap(); eclipseCollectionsMap(); - troveMap(); - coltMap(); fastutilMap(); } + private static void hppcMap() { + //Regular maps + IntLongHashMap intLongHashMap = new IntLongHashMap(); + intLongHashMap.put(25,1L); + intLongHashMap.put(150,Long.MAX_VALUE); + intLongHashMap.put(1,0L); + + intLongHashMap.get(150); + + IntObjectMap<BigDecimal> intObjectMap = new IntObjectHashMap<BigDecimal>(); + intObjectMap.put(1, BigDecimal.valueOf(1)); + intObjectMap.put(2, BigDecimal.valueOf(2500)); + + BigDecimal value = intObjectMap.get(2); + + //Scatter maps + IntLongScatterMap intLongScatterMap = new IntLongScatterMap(); + intLongScatterMap.put(1, 1L); + intLongScatterMap.put(2, -2L); + intLongScatterMap.put(1000,0L); + + intLongScatterMap.get(1000); + + IntObjectScatterMap<BigDecimal> intObjectScatterMap = new IntObjectScatterMap<BigDecimal>(); + intObjectScatterMap.put(1, BigDecimal.valueOf(1)); + intObjectScatterMap.put(2, BigDecimal.valueOf(2500)); + + value = intObjectScatterMap.get(2); + } + + private static void fastutilMap() { Int2BooleanMap int2BooleanMap = new Int2BooleanOpenHashMap(); int2BooleanMap.put(1, true); @@ -32,13 +71,19 @@ public class PrimitiveMaps { boolean value = int2BooleanMap.get(1); - Int2BooleanSortedMap int2BooleanSorted = Int2BooleanSortedMaps.EMPTY_MAP; - } + //Lambda style iteration + Int2BooleanMaps.fastForEach(int2BooleanMap, entry -> { + System.out.println(String.format("Key: %d, Value: %b",entry.getIntKey(),entry.getBooleanValue())); + }); + + //Iterator based loop + ObjectIterator<Int2BooleanMap.Entry> iterator = Int2BooleanMaps.fastIterator(int2BooleanMap); + while(iterator.hasNext()) { + Int2BooleanMap.Entry entry = iterator.next(); + System.out.println(String.format("Key: %d, Value: %b",entry.getIntKey(),entry.getBooleanValue())); + + } - private static void coltMap() { - AbstractIntDoubleMap map = new OpenIntDoubleHashMap(); - map.put(1, 4.5); - double value = map.get(1); } private static void eclipseCollectionsMap() { @@ -53,17 +98,5 @@ public class PrimitiveMaps { dObject.addToValue("stability", 0.8); } - private static void troveMap() { - double[] doubles = new double[] {1.2, 4.5, 0.3}; - int[] ints = new int[] {1, 4, 0}; - TDoubleIntMap doubleIntMap = new TDoubleIntHashMap(doubles, ints); - - doubleIntMap.put(1.2, 22); - doubleIntMap.put(4.5, 16); - - doubleIntMap.adjustValue(1.2, 1); - doubleIntMap.adjustValue(4.5, 4); - doubleIntMap.adjustValue(0.3, 7); - } } From 44afb00d224caffb9259e1b714dde051a49ae06b Mon Sep 17 00:00:00 2001 From: Dhawal Kapil <dhawalkapil@gmail.com> Date: Sun, 16 Aug 2020 08:46:46 +0530 Subject: [PATCH 121/156] Update README.md --- core-java-modules/core-java/README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/core-java-modules/core-java/README.md b/core-java-modules/core-java/README.md index 7781382ae5..b0e740e3b5 100644 --- a/core-java-modules/core-java/README.md +++ b/core-java-modules/core-java/README.md @@ -1,13 +1,13 @@ ## Core Java Cookbooks and Examples ### Relevant Articles: -[Getting Started with Java Properties](http://www.baeldung.com/java-properties) -[Java Money and the Currency API](http://www.baeldung.com/java-money-and-currency) -[Introduction to Java Serialization](http://www.baeldung.com/java-serialization) -[Guide to UUID in Java](http://www.baeldung.com/java-uuid) -[Compiling Java *.class Files with javac](http://www.baeldung.com/javac) -[Introduction to Javadoc](http://www.baeldung.com/javadoc) -[Guide to the Externalizable Interface in Java](http://www.baeldung.com/java-externalizable) -[What is the serialVersionUID?](http://www.baeldung.com/java-serial-version-uid) -[A Guide to the ResourceBundle](http://www.baeldung.com/java-resourcebundle) -[Merging java.util.Properties Objects](https://www.baeldung.com/java-merging-properties) +- [Getting Started with Java Properties](http://www.baeldung.com/java-properties) +- [Java Money and the Currency API](http://www.baeldung.com/java-money-and-currency) +- [Introduction to Java Serialization](http://www.baeldung.com/java-serialization) +- [Guide to UUID in Java](http://www.baeldung.com/java-uuid) +- [Compiling Java *.class Files with javac](http://www.baeldung.com/javac) +- [Introduction to Javadoc](http://www.baeldung.com/javadoc) +- [Guide to the Externalizable Interface in Java](http://www.baeldung.com/java-externalizable) +- [What is the serialVersionUID?](http://www.baeldung.com/java-serial-version-uid) +- [A Guide to the ResourceBundle](http://www.baeldung.com/java-resourcebundle) +- [Merging java.util.Properties Objects](https://www.baeldung.com/java-merging-properties) From 1e96de4b6417fb73b1413807bcb2a99584ab19cd Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankurguptajec@gmail.com> Date: Sun, 16 Aug 2020 13:35:04 +0530 Subject: [PATCH 122/156] Update pom.xml Adding spring-data-cosmosdb module in the persistence module --- persistence-modules/pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/persistence-modules/pom.xml b/persistence-modules/pom.xml index f1154f203b..8544a5cef4 100644 --- a/persistence-modules/pom.xml +++ b/persistence-modules/pom.xml @@ -53,6 +53,7 @@ <module>spring-boot-persistence-mongodb</module> <module>spring-data-cassandra</module> <module>spring-data-cassandra-reactive</module> + <module>spring-data-cosmosdb</module> <module>spring-data-couchbase-2</module> <module>spring-data-dynamodb</module> <module>spring-data-eclipselink</module> From 5eefa6b148b318378552ab24d4134cd97b84591c Mon Sep 17 00:00:00 2001 From: Ankur Gupta <ankurguptajec@gmail.com> Date: Sun, 16 Aug 2020 13:36:23 +0530 Subject: [PATCH 123/156] Update pom.xml removing extra spaces --- persistence-modules/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence-modules/pom.xml b/persistence-modules/pom.xml index 8544a5cef4..a9d3c89604 100644 --- a/persistence-modules/pom.xml +++ b/persistence-modules/pom.xml @@ -53,7 +53,7 @@ <module>spring-boot-persistence-mongodb</module> <module>spring-data-cassandra</module> <module>spring-data-cassandra-reactive</module> - <module>spring-data-cosmosdb</module> + <module>spring-data-cosmosdb</module> <module>spring-data-couchbase-2</module> <module>spring-data-dynamodb</module> <module>spring-data-eclipselink</module> From ecaa8db1421fc0af794b983c309b35fe16adf6b4 Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Sun, 16 Aug 2020 16:30:53 +0530 Subject: [PATCH 124/156] JAVA-68: Renamed spring-security-mvc-jsonview to spring-security-web-jsonview --- .../.gitignore | 0 .../README.md | 0 .../pom.xml | 4 ++-- .../src/main/java/com/baeldung/AppInitializer.java | 0 .../main/java/com/baeldung/controller/ItemsController.java | 0 .../src/main/java/com/baeldung/controller/View.java | 0 .../src/main/java/com/baeldung/model/Item.java | 0 .../src/main/java/com/baeldung/spring/AppConfig.java | 0 .../com/baeldung/spring/SecurityJsonViewControllerAdvice.java | 0 .../src/main/resources/logback.xml | 0 .../src/test/java/com/baeldung/SpringContextTest.java | 0 .../security/SpringSecurityJsonViewIntegrationTest.java | 0 12 files changed, 2 insertions(+), 2 deletions(-) rename spring-security-modules/{spring-security-mvc-jsonview => spring-security-web-jsonview}/.gitignore (100%) rename spring-security-modules/{spring-security-mvc-jsonview => spring-security-web-jsonview}/README.md (100%) rename spring-security-modules/{spring-security-mvc-jsonview => spring-security-web-jsonview}/pom.xml (98%) rename spring-security-modules/{spring-security-mvc-jsonview => spring-security-web-jsonview}/src/main/java/com/baeldung/AppInitializer.java (100%) rename spring-security-modules/{spring-security-mvc-jsonview => spring-security-web-jsonview}/src/main/java/com/baeldung/controller/ItemsController.java (100%) rename spring-security-modules/{spring-security-mvc-jsonview => spring-security-web-jsonview}/src/main/java/com/baeldung/controller/View.java (100%) rename spring-security-modules/{spring-security-mvc-jsonview => spring-security-web-jsonview}/src/main/java/com/baeldung/model/Item.java (100%) rename spring-security-modules/{spring-security-mvc-jsonview => spring-security-web-jsonview}/src/main/java/com/baeldung/spring/AppConfig.java (100%) rename spring-security-modules/{spring-security-mvc-jsonview => spring-security-web-jsonview}/src/main/java/com/baeldung/spring/SecurityJsonViewControllerAdvice.java (100%) rename spring-security-modules/{spring-security-mvc-jsonview => spring-security-web-jsonview}/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-mvc-jsonview => spring-security-web-jsonview}/src/test/java/com/baeldung/SpringContextTest.java (100%) rename spring-security-modules/{spring-security-mvc-jsonview => spring-security-web-jsonview}/src/test/java/com/baeldung/security/SpringSecurityJsonViewIntegrationTest.java (100%) diff --git a/spring-security-modules/spring-security-mvc-jsonview/.gitignore b/spring-security-modules/spring-security-web-jsonview/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/.gitignore rename to spring-security-modules/spring-security-web-jsonview/.gitignore diff --git a/spring-security-modules/spring-security-mvc-jsonview/README.md b/spring-security-modules/spring-security-web-jsonview/README.md similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/README.md rename to spring-security-modules/spring-security-web-jsonview/README.md diff --git a/spring-security-modules/spring-security-mvc-jsonview/pom.xml b/spring-security-modules/spring-security-web-jsonview/pom.xml similarity index 98% rename from spring-security-modules/spring-security-mvc-jsonview/pom.xml rename to spring-security-modules/spring-security-web-jsonview/pom.xml index f6ba997c62..0d1b0b09db 100644 --- a/spring-security-modules/spring-security-mvc-jsonview/pom.xml +++ b/spring-security-modules/spring-security-web-jsonview/pom.xml @@ -2,9 +2,9 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <artifactId>spring-security-mvc-jsonview</artifactId> + <artifactId>spring-security-web-jsonview</artifactId> <version>0.1-SNAPSHOT</version> - <name>spring-security-mvc-jsonview</name> + <name>spring-security-web-jsonview</name> <packaging>war</packaging> <parent> diff --git a/spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/AppInitializer.java b/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/AppInitializer.java similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/AppInitializer.java rename to spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/AppInitializer.java diff --git a/spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/controller/ItemsController.java b/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/controller/ItemsController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/controller/ItemsController.java rename to spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/controller/ItemsController.java diff --git a/spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/controller/View.java b/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/controller/View.java similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/controller/View.java rename to spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/controller/View.java diff --git a/spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/model/Item.java b/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/model/Item.java similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/model/Item.java rename to spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/model/Item.java diff --git a/spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/spring/AppConfig.java b/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/spring/AppConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/spring/AppConfig.java rename to spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/spring/AppConfig.java diff --git a/spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/spring/SecurityJsonViewControllerAdvice.java b/spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/spring/SecurityJsonViewControllerAdvice.java similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/src/main/java/com/baeldung/spring/SecurityJsonViewControllerAdvice.java rename to spring-security-modules/spring-security-web-jsonview/src/main/java/com/baeldung/spring/SecurityJsonViewControllerAdvice.java diff --git a/spring-security-modules/spring-security-mvc-jsonview/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-jsonview/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-jsonview/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-mvc-jsonview/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-jsonview/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-jsonview/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-mvc-jsonview/src/test/java/com/baeldung/security/SpringSecurityJsonViewIntegrationTest.java b/spring-security-modules/spring-security-web-jsonview/src/test/java/com/baeldung/security/SpringSecurityJsonViewIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-jsonview/src/test/java/com/baeldung/security/SpringSecurityJsonViewIntegrationTest.java rename to spring-security-modules/spring-security-web-jsonview/src/test/java/com/baeldung/security/SpringSecurityJsonViewIntegrationTest.java From 3e193877e67b849c8c7c587e86e1916d925b1fb9 Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Sun, 16 Aug 2020 16:31:42 +0530 Subject: [PATCH 125/156] JAVA-68: Renamed spring-security-mvc-login to spring-security-web-login --- .../.gitignore | 0 .../README.md | 0 .../pom.xml | 4 ++-- .../src/main/java/com/baeldung/AppInitializer.java | 0 .../com/baeldung/controller/SecuredResourceController.java | 0 .../java/com/baeldung/security/CustomAccessDeniedHandler.java | 0 .../baeldung/security/CustomAuthenticationFailureHandler.java | 0 .../com/baeldung/security/CustomLogoutSuccessHandler.java | 0 .../security/RefererAuthenticationSuccessHandler.java | 0 .../java/com/baeldung/security/config/SecSecurityConfig.java | 0 .../java/com/baeldung/spring/ChannelSecSecurityConfig.java | 0 .../src/main/java/com/baeldung/spring/MvcConfig.java | 0 .../java/com/baeldung/spring/RedirectionSecurityConfig.java | 0 .../src/main/resources/RedirectionWebSecurityConfig.xml | 0 .../src/main/resources/channelWebSecurityConfig.xml | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/webSecurityConfig.xml | 0 .../src/main/webapp/WEB-INF/mvc-servlet.xml | 0 .../src/main/webapp/WEB-INF/view/accessDenied.jsp | 0 .../src/main/webapp/WEB-INF/view/admin/adminpage.jsp | 0 .../src/main/webapp/WEB-INF/view/anonymous.jsp | 0 .../src/main/webapp/WEB-INF/view/homepage.jsp | 0 .../src/main/webapp/WEB-INF/view/login.jsp | 0 .../src/main/webapp/WEB-INF/web-old.xml | 0 .../src/test/java/com/baeldung/SpringContextTest.java | 0 .../test/java/com/baeldung/security/FormLoginUnitTest.java | 0 .../baeldung/security/RedirectionSecurityIntegrationTest.java | 0 .../src/test/resources/.gitignore | 0 28 files changed, 2 insertions(+), 2 deletions(-) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/.gitignore (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/README.md (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/pom.xml (98%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/java/com/baeldung/AppInitializer.java (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/java/com/baeldung/controller/SecuredResourceController.java (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/java/com/baeldung/security/CustomAccessDeniedHandler.java (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/java/com/baeldung/security/CustomAuthenticationFailureHandler.java (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/java/com/baeldung/security/CustomLogoutSuccessHandler.java (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/java/com/baeldung/security/RefererAuthenticationSuccessHandler.java (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/java/com/baeldung/security/config/SecSecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/java/com/baeldung/spring/ChannelSecSecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/java/com/baeldung/spring/MvcConfig.java (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/java/com/baeldung/spring/RedirectionSecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/resources/RedirectionWebSecurityConfig.xml (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/resources/channelWebSecurityConfig.xml (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/resources/webSecurityConfig.xml (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/webapp/WEB-INF/mvc-servlet.xml (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/webapp/WEB-INF/view/accessDenied.jsp (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/webapp/WEB-INF/view/admin/adminpage.jsp (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/webapp/WEB-INF/view/anonymous.jsp (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/webapp/WEB-INF/view/homepage.jsp (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/webapp/WEB-INF/view/login.jsp (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/main/webapp/WEB-INF/web-old.xml (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/test/java/com/baeldung/SpringContextTest.java (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/test/java/com/baeldung/security/FormLoginUnitTest.java (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/test/java/com/baeldung/security/RedirectionSecurityIntegrationTest.java (100%) rename spring-security-modules/{spring-security-mvc-login => spring-security-web-login}/src/test/resources/.gitignore (100%) diff --git a/spring-security-modules/spring-security-mvc-login/.gitignore b/spring-security-modules/spring-security-web-login/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-login/.gitignore rename to spring-security-modules/spring-security-web-login/.gitignore diff --git a/spring-security-modules/spring-security-mvc-login/README.md b/spring-security-modules/spring-security-web-login/README.md similarity index 100% rename from spring-security-modules/spring-security-mvc-login/README.md rename to spring-security-modules/spring-security-web-login/README.md diff --git a/spring-security-modules/spring-security-mvc-login/pom.xml b/spring-security-modules/spring-security-web-login/pom.xml similarity index 98% rename from spring-security-modules/spring-security-mvc-login/pom.xml rename to spring-security-modules/spring-security-web-login/pom.xml index 4e0fe00176..2b64d157d3 100644 --- a/spring-security-modules/spring-security-mvc-login/pom.xml +++ b/spring-security-modules/spring-security-web-login/pom.xml @@ -2,9 +2,9 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <artifactId>spring-security-mvc-login</artifactId> + <artifactId>spring-security-web-login</artifactId> <version>0.1-SNAPSHOT</version> - <name>spring-security-mvc-login</name> + <name>spring-security-web-login</name> <packaging>war</packaging> <parent> diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/AppInitializer.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/AppInitializer.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/AppInitializer.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/AppInitializer.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/controller/SecuredResourceController.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/controller/SecuredResourceController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/controller/SecuredResourceController.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/controller/SecuredResourceController.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/CustomAccessDeniedHandler.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/CustomAccessDeniedHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/CustomAccessDeniedHandler.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/CustomAccessDeniedHandler.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/CustomAuthenticationFailureHandler.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/CustomAuthenticationFailureHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/CustomAuthenticationFailureHandler.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/CustomAuthenticationFailureHandler.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/CustomLogoutSuccessHandler.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/CustomLogoutSuccessHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/CustomLogoutSuccessHandler.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/CustomLogoutSuccessHandler.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/RefererAuthenticationSuccessHandler.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/RefererAuthenticationSuccessHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/RefererAuthenticationSuccessHandler.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/RefererAuthenticationSuccessHandler.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/config/SecSecurityConfig.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/config/SecSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/security/config/SecSecurityConfig.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/security/config/SecSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/spring/ChannelSecSecurityConfig.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/spring/ChannelSecSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/spring/ChannelSecSecurityConfig.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/spring/ChannelSecSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/spring/MvcConfig.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/spring/MvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/spring/MvcConfig.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/spring/MvcConfig.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/spring/RedirectionSecurityConfig.java b/spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/spring/RedirectionSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/java/com/baeldung/spring/RedirectionSecurityConfig.java rename to spring-security-modules/spring-security-web-login/src/main/java/com/baeldung/spring/RedirectionSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-login/src/main/resources/RedirectionWebSecurityConfig.xml b/spring-security-modules/spring-security-web-login/src/main/resources/RedirectionWebSecurityConfig.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/resources/RedirectionWebSecurityConfig.xml rename to spring-security-modules/spring-security-web-login/src/main/resources/RedirectionWebSecurityConfig.xml diff --git a/spring-security-modules/spring-security-mvc-login/src/main/resources/channelWebSecurityConfig.xml b/spring-security-modules/spring-security-web-login/src/main/resources/channelWebSecurityConfig.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/resources/channelWebSecurityConfig.xml rename to spring-security-modules/spring-security-web-login/src/main/resources/channelWebSecurityConfig.xml diff --git a/spring-security-modules/spring-security-mvc-login/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-login/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-login/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-mvc-login/src/main/resources/webSecurityConfig.xml b/spring-security-modules/spring-security-web-login/src/main/resources/webSecurityConfig.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/resources/webSecurityConfig.xml rename to spring-security-modules/spring-security-web-login/src/main/resources/webSecurityConfig.xml diff --git a/spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/accessDenied.jsp b/spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/accessDenied.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/accessDenied.jsp rename to spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/accessDenied.jsp diff --git a/spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/admin/adminpage.jsp b/spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/admin/adminpage.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/admin/adminpage.jsp rename to spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/admin/adminpage.jsp diff --git a/spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/anonymous.jsp b/spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/anonymous.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/anonymous.jsp rename to spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/anonymous.jsp diff --git a/spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/homepage.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/homepage.jsp rename to spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/homepage.jsp diff --git a/spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/login.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/view/login.jsp rename to spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/view/login.jsp diff --git a/spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/web-old.xml b/spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/web-old.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/main/webapp/WEB-INF/web-old.xml rename to spring-security-modules/spring-security-web-login/src/main/webapp/WEB-INF/web-old.xml diff --git a/spring-security-modules/spring-security-mvc-login/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-login/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-login/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-mvc-login/src/test/java/com/baeldung/security/FormLoginUnitTest.java b/spring-security-modules/spring-security-web-login/src/test/java/com/baeldung/security/FormLoginUnitTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/test/java/com/baeldung/security/FormLoginUnitTest.java rename to spring-security-modules/spring-security-web-login/src/test/java/com/baeldung/security/FormLoginUnitTest.java diff --git a/spring-security-modules/spring-security-mvc-login/src/test/java/com/baeldung/security/RedirectionSecurityIntegrationTest.java b/spring-security-modules/spring-security-web-login/src/test/java/com/baeldung/security/RedirectionSecurityIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/test/java/com/baeldung/security/RedirectionSecurityIntegrationTest.java rename to spring-security-modules/spring-security-web-login/src/test/java/com/baeldung/security/RedirectionSecurityIntegrationTest.java diff --git a/spring-security-modules/spring-security-mvc-login/src/test/resources/.gitignore b/spring-security-modules/spring-security-web-login/src/test/resources/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-login/src/test/resources/.gitignore rename to spring-security-modules/spring-security-web-login/src/test/resources/.gitignore From f645cac5d6b05d52a8feb61b3a487abe689819fa Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Sun, 16 Aug 2020 16:32:25 +0530 Subject: [PATCH 126/156] JAVA-68: Renamed spring-security-mvc-persisted-remember-me to spring-security-web-persisted-remember-me --- .../.gitignore | 0 .../README.md | 0 .../pom.xml | 4 ++-- .../src/main/java/com/baeldung/controller/MyController.java | 0 .../security/MySimpleUrlAuthenticationSuccessHandler.java | 0 .../src/main/java/com/baeldung/security/SecurityRole.java | 0 .../baeldung/security/SecurityWebApplicationInitializer.java | 0 .../main/java/com/baeldung/service/MyUserDetailsService.java | 0 .../src/main/java/com/baeldung/spring/MvcConfig.java | 0 .../src/main/java/com/baeldung/spring/PersistenceConfig.java | 0 .../src/main/java/com/baeldung/spring/SecurityConfig.java | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/persisted_logins_create_table.sql | 0 .../src/main/resources/persistence-h2.properties | 0 .../src/main/resources/persistence-postgres.properties | 0 .../src/main/resources/webSecurityConfig.xml | 0 .../src/main/webapp/WEB-INF/mvc-servlet.xml | 0 .../src/main/webapp/WEB-INF/view/anonymous.jsp | 0 .../src/main/webapp/WEB-INF/view/console.jsp | 0 .../src/main/webapp/WEB-INF/view/homepage.jsp | 0 .../src/main/webapp/WEB-INF/view/login.jsp | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../src/test/java/com/baeldung/SpringContextTest.java | 0 .../src/test/resources/.gitignore | 0 24 files changed, 2 insertions(+), 2 deletions(-) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/.gitignore (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/README.md (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/pom.xml (98%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/main/java/com/baeldung/controller/MyController.java (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/main/java/com/baeldung/security/SecurityRole.java (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/main/java/com/baeldung/security/SecurityWebApplicationInitializer.java (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/main/java/com/baeldung/service/MyUserDetailsService.java (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/main/java/com/baeldung/spring/MvcConfig.java (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/main/java/com/baeldung/spring/PersistenceConfig.java (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/main/java/com/baeldung/spring/SecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/main/resources/persisted_logins_create_table.sql (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/main/resources/persistence-h2.properties (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/main/resources/persistence-postgres.properties (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/main/resources/webSecurityConfig.xml (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/main/webapp/WEB-INF/mvc-servlet.xml (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/main/webapp/WEB-INF/view/anonymous.jsp (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/main/webapp/WEB-INF/view/console.jsp (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/main/webapp/WEB-INF/view/homepage.jsp (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/main/webapp/WEB-INF/view/login.jsp (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/main/webapp/WEB-INF/web.xml (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/test/java/com/baeldung/SpringContextTest.java (100%) rename spring-security-modules/{spring-security-mvc-persisted-remember-me => spring-security-web-persisted-remember-me}/src/test/resources/.gitignore (100%) diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/.gitignore b/spring-security-modules/spring-security-web-persisted-remember-me/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/.gitignore rename to spring-security-modules/spring-security-web-persisted-remember-me/.gitignore diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/README.md b/spring-security-modules/spring-security-web-persisted-remember-me/README.md similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/README.md rename to spring-security-modules/spring-security-web-persisted-remember-me/README.md diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/pom.xml b/spring-security-modules/spring-security-web-persisted-remember-me/pom.xml similarity index 98% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/pom.xml rename to spring-security-modules/spring-security-web-persisted-remember-me/pom.xml index 9410793222..25c5ddd9d0 100644 --- a/spring-security-modules/spring-security-mvc-persisted-remember-me/pom.xml +++ b/spring-security-modules/spring-security-web-persisted-remember-me/pom.xml @@ -2,9 +2,9 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <artifactId>spring-security-mvc-persisted-remember-me</artifactId> + <artifactId>spring-security-web-persisted-remember-me</artifactId> <version>0.1-SNAPSHOT</version> - <name>spring-security-mvc-persisted-remember-me</name> + <name>spring-security-web-persisted-remember-me</name> <packaging>war</packaging> <parent> diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/controller/MyController.java b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/controller/MyController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/controller/MyController.java rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/controller/MyController.java diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/security/SecurityRole.java b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/security/SecurityRole.java similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/security/SecurityRole.java rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/security/SecurityRole.java diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/security/SecurityWebApplicationInitializer.java b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/security/SecurityWebApplicationInitializer.java similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/security/SecurityWebApplicationInitializer.java rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/security/SecurityWebApplicationInitializer.java diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/service/MyUserDetailsService.java b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/service/MyUserDetailsService.java similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/service/MyUserDetailsService.java rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/service/MyUserDetailsService.java diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/spring/MvcConfig.java b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/spring/MvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/spring/MvcConfig.java rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/spring/MvcConfig.java diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/spring/PersistenceConfig.java b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/spring/PersistenceConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/spring/PersistenceConfig.java rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/spring/PersistenceConfig.java diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/spring/SecurityConfig.java b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/spring/SecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/java/com/baeldung/spring/SecurityConfig.java rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/java/com/baeldung/spring/SecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/persisted_logins_create_table.sql b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/persisted_logins_create_table.sql similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/persisted_logins_create_table.sql rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/persisted_logins_create_table.sql diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/persistence-h2.properties b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/persistence-h2.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/persistence-h2.properties rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/persistence-h2.properties diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/persistence-postgres.properties b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/persistence-postgres.properties similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/persistence-postgres.properties rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/persistence-postgres.properties diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/webSecurityConfig.xml b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/webSecurityConfig.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/resources/webSecurityConfig.xml rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/resources/webSecurityConfig.xml diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/view/anonymous.jsp b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/view/anonymous.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/view/anonymous.jsp rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/view/anonymous.jsp diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/view/console.jsp b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/view/console.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/view/console.jsp rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/view/console.jsp diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/view/homepage.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/view/homepage.jsp rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/view/homepage.jsp diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/view/login.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/view/login.jsp rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/view/login.jsp diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/web.xml b/spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/main/webapp/WEB-INF/web.xml rename to spring-security-modules/spring-security-web-persisted-remember-me/src/main/webapp/WEB-INF/web.xml diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-persisted-remember-me/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-persisted-remember-me/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-mvc-persisted-remember-me/src/test/resources/.gitignore b/spring-security-modules/spring-security-web-persisted-remember-me/src/test/resources/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-persisted-remember-me/src/test/resources/.gitignore rename to spring-security-modules/spring-security-web-persisted-remember-me/src/test/resources/.gitignore From d35dfb6ba9fa6b97a7440a2f2ec82aa77d2581ac Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Sun, 16 Aug 2020 16:32:56 +0530 Subject: [PATCH 127/156] JAVA-68: Renamed spring-security-mvc-socket to spring-security-web-sockets --- .../.gitignore | 0 .../README.md | 0 .../pom.xml | 4 ++-- .../java/com/baeldung/springsecuredsockets/Constants.java | 0 .../com/baeldung/springsecuredsockets/config/AppConfig.java | 0 .../baeldung/springsecuredsockets/config/DataStoreConfig.java | 0 .../baeldung/springsecuredsockets/config/SecurityConfig.java | 0 .../springsecuredsockets/config/SocketBrokerConfig.java | 0 .../springsecuredsockets/config/SocketSecurityConfig.java | 0 .../springsecuredsockets/config/WebAppInitializer.java | 0 .../springsecuredsockets/controllers/CsrfTokenController.java | 0 .../springsecuredsockets/controllers/SocketController.java | 0 .../java/com/baeldung/springsecuredsockets/domain/Role.java | 0 .../java/com/baeldung/springsecuredsockets/domain/User.java | 0 .../springsecuredsockets/repositories/UserRepository.java | 0 .../security/CustomAccessDeniedHandler.java | 0 .../security/CustomDaoAuthenticationProvider.java | 0 .../security/CustomLoginSuccessHandler.java | 0 .../security/CustomLogoutSuccessHandler.java | 0 .../security/CustomUserDetailsService.java | 0 .../security/SecurityWebApplicationInitializer.java | 0 .../springsecuredsockets/transfer/socket/Message.java | 0 .../springsecuredsockets/transfer/socket/OutputMessage.java | 0 .../springsecuredsockets/transfer/user/CustomUserDetails.java | 0 .../springsockets/config/WebSocketMessageBrokerConfig.java | 0 .../baeldung/springsockets/controllers/RestAPIController.java | 0 .../springsockets/controllers/WebSocketController.java | 0 .../main/java/com/baeldung/springsockets/models/Greeting.java | 0 .../main/java/com/baeldung/springsockets/models/Message.java | 0 .../src/main/resources/data.sql | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/schema.sql | 0 .../src/main/resources/static/rest.html | 0 .../src/main/resources/static/rest.js | 0 .../src/main/resources/static/ws.html | 0 .../src/main/resources/static/ws.js | 0 .../src/main/webapp/WEB-INF/jsp/denied.jsp | 0 .../src/main/webapp/WEB-INF/jsp/index.jsp | 0 .../src/main/webapp/WEB-INF/jsp/login.jsp | 0 .../src/main/webapp/WEB-INF/jsp/socket.jsp | 0 .../src/main/webapp/WEB-INF/jsp/success.jsp | 0 .../src/main/webapp/resources/scripts/app.js | 0 .../webapp/resources/scripts/controllers/indexController.js | 0 .../webapp/resources/scripts/controllers/socketController.js | 0 .../webapp/resources/scripts/controllers/successController.js | 0 .../src/main/webapp/resources/scripts/routes/router.js | 0 .../main/webapp/resources/scripts/services/SocketService.js | 0 .../src/main/webapp/resources/styles/app.css | 0 .../src/main/webapp/resources/styles/denied.css | 0 .../src/main/webapp/resources/styles/index.css | 0 .../src/main/webapp/resources/styles/login.css | 0 .../src/main/webapp/resources/styles/socket.css | 0 .../src/main/webapp/resources/styles/success.css | 0 .../main/webapp/resources/vendor/angular/angular-route.min.js | 0 .../webapp/resources/vendor/angular/angular-route.min.js.map | 0 .../src/main/webapp/resources/vendor/angular/angular.min.js | 0 .../main/webapp/resources/vendor/angular/angular.min.js.map | 0 .../src/main/webapp/resources/vendor/jquery/jquery.min.js | 0 .../src/main/webapp/resources/vendor/sockjs/sockjs.min.js | 0 .../src/main/webapp/resources/vendor/sockjs/sockjs.min.js.map | 0 .../src/main/webapp/resources/vendor/stomp/stomp.min.js | 0 .../src/test/java/com/baeldung/SpringContextTest.java | 0 62 files changed, 2 insertions(+), 2 deletions(-) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/.gitignore (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/README.md (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/pom.xml (98%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/Constants.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/config/AppConfig.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/config/DataStoreConfig.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/config/SecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/config/SocketBrokerConfig.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/config/SocketSecurityConfig.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/config/WebAppInitializer.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/controllers/CsrfTokenController.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/controllers/SocketController.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/domain/Role.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/domain/User.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/repositories/UserRepository.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/security/CustomAccessDeniedHandler.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/security/CustomDaoAuthenticationProvider.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/security/CustomLoginSuccessHandler.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/security/CustomLogoutSuccessHandler.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/security/CustomUserDetailsService.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/security/SecurityWebApplicationInitializer.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/transfer/socket/Message.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/transfer/socket/OutputMessage.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsecuredsockets/transfer/user/CustomUserDetails.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsockets/config/WebSocketMessageBrokerConfig.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsockets/controllers/RestAPIController.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsockets/controllers/WebSocketController.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsockets/models/Greeting.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/java/com/baeldung/springsockets/models/Message.java (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/resources/data.sql (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/resources/schema.sql (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/resources/static/rest.html (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/resources/static/rest.js (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/resources/static/ws.html (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/resources/static/ws.js (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/WEB-INF/jsp/denied.jsp (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/WEB-INF/jsp/index.jsp (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/WEB-INF/jsp/login.jsp (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/WEB-INF/jsp/socket.jsp (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/WEB-INF/jsp/success.jsp (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/scripts/app.js (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/scripts/controllers/indexController.js (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/scripts/controllers/socketController.js (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/scripts/controllers/successController.js (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/scripts/routes/router.js (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/scripts/services/SocketService.js (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/styles/app.css (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/styles/denied.css (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/styles/index.css (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/styles/login.css (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/styles/socket.css (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/styles/success.css (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/vendor/angular/angular-route.min.js (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/vendor/angular/angular-route.min.js.map (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/vendor/angular/angular.min.js (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/vendor/angular/angular.min.js.map (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/vendor/jquery/jquery.min.js (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/vendor/sockjs/sockjs.min.js (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/vendor/sockjs/sockjs.min.js.map (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/main/webapp/resources/vendor/stomp/stomp.min.js (100%) rename spring-security-modules/{spring-security-mvc-socket => spring-security-web-sockets}/src/test/java/com/baeldung/SpringContextTest.java (100%) diff --git a/spring-security-modules/spring-security-mvc-socket/.gitignore b/spring-security-modules/spring-security-web-sockets/.gitignore similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/.gitignore rename to spring-security-modules/spring-security-web-sockets/.gitignore diff --git a/spring-security-modules/spring-security-mvc-socket/README.md b/spring-security-modules/spring-security-web-sockets/README.md similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/README.md rename to spring-security-modules/spring-security-web-sockets/README.md diff --git a/spring-security-modules/spring-security-mvc-socket/pom.xml b/spring-security-modules/spring-security-web-sockets/pom.xml similarity index 98% rename from spring-security-modules/spring-security-mvc-socket/pom.xml rename to spring-security-modules/spring-security-web-sockets/pom.xml index 6515121f9f..3a3ec47af5 100644 --- a/spring-security-modules/spring-security-mvc-socket/pom.xml +++ b/spring-security-modules/spring-security-web-sockets/pom.xml @@ -3,9 +3,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <groupId>com.baeldung.springsecuredsockets</groupId> - <artifactId>spring-security-mvc-socket</artifactId> + <artifactId>spring-security-web-sockets</artifactId> <version>1.0.0</version> - <name>spring-security-mvc-socket</name> + <name>spring-security-web-sockets</name> <packaging>war</packaging> <parent> diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/Constants.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/Constants.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/Constants.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/Constants.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/AppConfig.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/AppConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/AppConfig.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/AppConfig.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/DataStoreConfig.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/DataStoreConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/DataStoreConfig.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/DataStoreConfig.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/SecurityConfig.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/SecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/SecurityConfig.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/SecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/SocketBrokerConfig.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/SocketBrokerConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/SocketBrokerConfig.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/SocketBrokerConfig.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/SocketSecurityConfig.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/SocketSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/SocketSecurityConfig.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/SocketSecurityConfig.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/WebAppInitializer.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/WebAppInitializer.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/config/WebAppInitializer.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/config/WebAppInitializer.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/controllers/CsrfTokenController.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/controllers/CsrfTokenController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/controllers/CsrfTokenController.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/controllers/CsrfTokenController.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/controllers/SocketController.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/controllers/SocketController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/controllers/SocketController.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/controllers/SocketController.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/domain/Role.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/domain/Role.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/domain/Role.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/domain/Role.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/domain/User.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/domain/User.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/domain/User.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/domain/User.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/repositories/UserRepository.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/repositories/UserRepository.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/repositories/UserRepository.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/repositories/UserRepository.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomAccessDeniedHandler.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomAccessDeniedHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomAccessDeniedHandler.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomAccessDeniedHandler.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomDaoAuthenticationProvider.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomDaoAuthenticationProvider.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomDaoAuthenticationProvider.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomDaoAuthenticationProvider.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomLoginSuccessHandler.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomLoginSuccessHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomLoginSuccessHandler.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomLoginSuccessHandler.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomLogoutSuccessHandler.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomLogoutSuccessHandler.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomLogoutSuccessHandler.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomLogoutSuccessHandler.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomUserDetailsService.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomUserDetailsService.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/CustomUserDetailsService.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/CustomUserDetailsService.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/SecurityWebApplicationInitializer.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/SecurityWebApplicationInitializer.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/security/SecurityWebApplicationInitializer.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/security/SecurityWebApplicationInitializer.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/transfer/socket/Message.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/transfer/socket/Message.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/transfer/socket/Message.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/transfer/socket/Message.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/transfer/socket/OutputMessage.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/transfer/socket/OutputMessage.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/transfer/socket/OutputMessage.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/transfer/socket/OutputMessage.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/transfer/user/CustomUserDetails.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/transfer/user/CustomUserDetails.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsecuredsockets/transfer/user/CustomUserDetails.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsecuredsockets/transfer/user/CustomUserDetails.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/config/WebSocketMessageBrokerConfig.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/config/WebSocketMessageBrokerConfig.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/config/WebSocketMessageBrokerConfig.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/config/WebSocketMessageBrokerConfig.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/controllers/RestAPIController.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/controllers/RestAPIController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/controllers/RestAPIController.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/controllers/RestAPIController.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/controllers/WebSocketController.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/controllers/WebSocketController.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/controllers/WebSocketController.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/controllers/WebSocketController.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/models/Greeting.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/models/Greeting.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/models/Greeting.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/models/Greeting.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/models/Message.java b/spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/models/Message.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/java/com/baeldung/springsockets/models/Message.java rename to spring-security-modules/spring-security-web-sockets/src/main/java/com/baeldung/springsockets/models/Message.java diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/resources/data.sql b/spring-security-modules/spring-security-web-sockets/src/main/resources/data.sql similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/resources/data.sql rename to spring-security-modules/spring-security-web-sockets/src/main/resources/data.sql diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-sockets/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-sockets/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/resources/schema.sql b/spring-security-modules/spring-security-web-sockets/src/main/resources/schema.sql similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/resources/schema.sql rename to spring-security-modules/spring-security-web-sockets/src/main/resources/schema.sql diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/resources/static/rest.html b/spring-security-modules/spring-security-web-sockets/src/main/resources/static/rest.html similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/resources/static/rest.html rename to spring-security-modules/spring-security-web-sockets/src/main/resources/static/rest.html diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/resources/static/rest.js b/spring-security-modules/spring-security-web-sockets/src/main/resources/static/rest.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/resources/static/rest.js rename to spring-security-modules/spring-security-web-sockets/src/main/resources/static/rest.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/resources/static/ws.html b/spring-security-modules/spring-security-web-sockets/src/main/resources/static/ws.html similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/resources/static/ws.html rename to spring-security-modules/spring-security-web-sockets/src/main/resources/static/ws.html diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/resources/static/ws.js b/spring-security-modules/spring-security-web-sockets/src/main/resources/static/ws.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/resources/static/ws.js rename to spring-security-modules/spring-security-web-sockets/src/main/resources/static/ws.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/denied.jsp b/spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/denied.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/denied.jsp rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/denied.jsp diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/index.jsp b/spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/index.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/index.jsp rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/index.jsp diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/login.jsp b/spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/login.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/login.jsp rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/login.jsp diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/socket.jsp b/spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/socket.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/socket.jsp rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/socket.jsp diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/success.jsp b/spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/success.jsp similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/WEB-INF/jsp/success.jsp rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/WEB-INF/jsp/success.jsp diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/app.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/app.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/app.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/app.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/controllers/indexController.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/controllers/indexController.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/controllers/indexController.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/controllers/indexController.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/controllers/socketController.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/controllers/socketController.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/controllers/socketController.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/controllers/socketController.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/controllers/successController.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/controllers/successController.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/controllers/successController.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/controllers/successController.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/routes/router.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/routes/router.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/routes/router.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/routes/router.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/services/SocketService.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/services/SocketService.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/scripts/services/SocketService.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/scripts/services/SocketService.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/app.css b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/app.css similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/app.css rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/app.css diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/denied.css b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/denied.css similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/denied.css rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/denied.css diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/index.css b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/index.css similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/index.css rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/index.css diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/login.css b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/login.css similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/login.css rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/login.css diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/socket.css b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/socket.css similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/socket.css rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/socket.css diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/success.css b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/success.css similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/styles/success.css rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/styles/success.css diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/angular/angular-route.min.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/angular/angular-route.min.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/angular/angular-route.min.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/angular/angular-route.min.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/angular/angular-route.min.js.map b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/angular/angular-route.min.js.map similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/angular/angular-route.min.js.map rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/angular/angular-route.min.js.map diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/angular/angular.min.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/angular/angular.min.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/angular/angular.min.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/angular/angular.min.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/angular/angular.min.js.map b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/angular/angular.min.js.map similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/angular/angular.min.js.map rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/angular/angular.min.js.map diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/jquery/jquery.min.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/jquery/jquery.min.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/jquery/jquery.min.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/jquery/jquery.min.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/sockjs/sockjs.min.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/sockjs/sockjs.min.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/sockjs/sockjs.min.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/sockjs/sockjs.min.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/sockjs/sockjs.min.js.map b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/sockjs/sockjs.min.js.map similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/sockjs/sockjs.min.js.map rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/sockjs/sockjs.min.js.map diff --git a/spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/stomp/stomp.min.js b/spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/stomp/stomp.min.js similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/main/webapp/resources/vendor/stomp/stomp.min.js rename to spring-security-modules/spring-security-web-sockets/src/main/webapp/resources/vendor/stomp/stomp.min.js diff --git a/spring-security-modules/spring-security-mvc-socket/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-sockets/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-mvc-socket/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-sockets/src/test/java/com/baeldung/SpringContextTest.java From 10e9f147ee2a0e28c8a89741a97a41ad4f23194f Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Sun, 16 Aug 2020 16:33:28 +0530 Subject: [PATCH 128/156] JAVA-68: Renamed spring-security-react to spring-security-web-react --- .../.gitignore | 0 .../README.md | 0 .../pom.xml | 4 ++-- .../main/java/com/baeldung/spring/MvcConfig.java | 0 .../java/com/baeldung/spring/SecSecurityConfig.java | 0 .../src/main/resources/logback.xml | 0 .../src/main/webapp/WEB-INF/mvc-servlet.xml | 0 .../src/main/webapp/WEB-INF/view/accessDenied.jsp | 0 .../main/webapp/WEB-INF/view/admin/adminpage.jsp | 0 .../src/main/webapp/WEB-INF/view/anonymous.jsp | 0 .../src/main/webapp/WEB-INF/view/homepage.jsp | 0 .../src/main/webapp/WEB-INF/view/react/.babelrc | 0 .../main/webapp/WEB-INF/view/react/.eslintignore | 0 .../src/main/webapp/WEB-INF/view/react/.eslintrc | 0 .../src/main/webapp/WEB-INF/view/react/.gitignore | 0 .../webapp/WEB-INF/view/react/package-lock.json | 0 .../src/main/webapp/WEB-INF/view/react/package.json | 0 .../webapp/WEB-INF/view/react/public/favicon.ico | Bin .../webapp/WEB-INF/view/react/public/index.html | 0 .../webapp/WEB-INF/view/react/public/manifest.json | 0 .../src/main/webapp/WEB-INF/view/react/src/Form.js | 0 .../src/main/webapp/WEB-INF/view/react/src/Input.js | 0 .../main/webapp/WEB-INF/view/react/src/index.css | 0 .../src/main/webapp/WEB-INF/view/react/src/index.js | 0 .../WEB-INF/view/react/src/registerServiceWorker.js | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../test/java/com/baeldung/SpringContextTest.java | 0 27 files changed, 2 insertions(+), 2 deletions(-) rename spring-security-modules/{spring-security-react => spring-security-web-react}/.gitignore (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/README.md (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/pom.xml (98%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/java/com/baeldung/spring/MvcConfig.java (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/java/com/baeldung/spring/SecSecurityConfig.java (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/mvc-servlet.xml (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/view/accessDenied.jsp (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/view/admin/adminpage.jsp (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/view/anonymous.jsp (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/view/homepage.jsp (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/view/react/.babelrc (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/view/react/.eslintignore (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/view/react/.eslintrc (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/view/react/.gitignore (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/view/react/package-lock.json (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/view/react/package.json (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/view/react/public/favicon.ico (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/view/react/public/index.html (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/view/react/public/manifest.json (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/view/react/src/Form.js (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/view/react/src/Input.js (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/view/react/src/index.css (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/view/react/src/index.js (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/view/react/src/registerServiceWorker.js (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/main/webapp/WEB-INF/web.xml (100%) rename spring-security-modules/{spring-security-react => spring-security-web-react}/src/test/java/com/baeldung/SpringContextTest.java (100%) diff --git a/spring-security-modules/spring-security-react/.gitignore b/spring-security-modules/spring-security-web-react/.gitignore similarity index 100% rename from spring-security-modules/spring-security-react/.gitignore rename to spring-security-modules/spring-security-web-react/.gitignore diff --git a/spring-security-modules/spring-security-react/README.md b/spring-security-modules/spring-security-web-react/README.md similarity index 100% rename from spring-security-modules/spring-security-react/README.md rename to spring-security-modules/spring-security-web-react/README.md diff --git a/spring-security-modules/spring-security-react/pom.xml b/spring-security-modules/spring-security-web-react/pom.xml similarity index 98% rename from spring-security-modules/spring-security-react/pom.xml rename to spring-security-modules/spring-security-web-react/pom.xml index 19240fe88c..d0ca6f8c8d 100644 --- a/spring-security-modules/spring-security-react/pom.xml +++ b/spring-security-modules/spring-security-web-react/pom.xml @@ -2,9 +2,9 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <artifactId>spring-security-react</artifactId> + <artifactId>spring-security-web-react</artifactId> <version>0.1-SNAPSHOT</version> - <name>spring-security-react</name> + <name>spring-security-web-react</name> <packaging>war</packaging> <parent> diff --git a/spring-security-modules/spring-security-react/src/main/java/com/baeldung/spring/MvcConfig.java b/spring-security-modules/spring-security-web-react/src/main/java/com/baeldung/spring/MvcConfig.java similarity index 100% rename from spring-security-modules/spring-security-react/src/main/java/com/baeldung/spring/MvcConfig.java rename to spring-security-modules/spring-security-web-react/src/main/java/com/baeldung/spring/MvcConfig.java diff --git a/spring-security-modules/spring-security-react/src/main/java/com/baeldung/spring/SecSecurityConfig.java b/spring-security-modules/spring-security-web-react/src/main/java/com/baeldung/spring/SecSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-react/src/main/java/com/baeldung/spring/SecSecurityConfig.java rename to spring-security-modules/spring-security-web-react/src/main/java/com/baeldung/spring/SecSecurityConfig.java diff --git a/spring-security-modules/spring-security-react/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-react/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-react/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-react/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/accessDenied.jsp b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/accessDenied.jsp similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/accessDenied.jsp rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/accessDenied.jsp diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/admin/adminpage.jsp b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/admin/adminpage.jsp similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/admin/adminpage.jsp rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/admin/adminpage.jsp diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/anonymous.jsp b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/anonymous.jsp similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/anonymous.jsp rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/anonymous.jsp diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/homepage.jsp similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/homepage.jsp rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/homepage.jsp diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/.babelrc b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/.babelrc similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/.babelrc rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/.babelrc diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/.eslintignore b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/.eslintignore similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/.eslintignore rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/.eslintignore diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/.eslintrc b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/.eslintrc similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/.eslintrc rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/.eslintrc diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/.gitignore b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/.gitignore similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/.gitignore rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/.gitignore diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/package-lock.json b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/package-lock.json similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/package-lock.json rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/package-lock.json diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/package.json b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/package.json similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/package.json rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/package.json diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/public/favicon.ico b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/public/favicon.ico similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/public/favicon.ico rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/public/favicon.ico diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/public/index.html b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/public/index.html similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/public/index.html rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/public/index.html diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/public/manifest.json b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/public/manifest.json similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/public/manifest.json rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/public/manifest.json diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/Form.js b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/Form.js similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/Form.js rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/Form.js diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/Input.js b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/Input.js similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/Input.js rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/Input.js diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/index.css b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/index.css similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/index.css rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/index.css diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/index.js b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/index.js similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/index.js rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/index.js diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/registerServiceWorker.js b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/registerServiceWorker.js similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/view/react/src/registerServiceWorker.js rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/view/react/src/registerServiceWorker.js diff --git a/spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/web.xml b/spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-security-modules/spring-security-react/src/main/webapp/WEB-INF/web.xml rename to spring-security-modules/spring-security-web-react/src/main/webapp/WEB-INF/web.xml diff --git a/spring-security-modules/spring-security-react/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-react/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-react/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-react/src/test/java/com/baeldung/SpringContextTest.java From 12d16d9c850ebecc7cbc0c1a7fc4340730695234 Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Sun, 16 Aug 2020 16:34:03 +0530 Subject: [PATCH 129/156] JAVA-68: parent module pom changes as per child module renaming --- spring-security-modules/pom.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/spring-security-modules/pom.xml b/spring-security-modules/pom.xml index f050b48ac5..815b84d448 100644 --- a/spring-security-modules/pom.xml +++ b/spring-security-modules/pom.xml @@ -24,14 +24,14 @@ <module>spring-security-web-boot-2</module> <module>spring-security-web-mvc-custom</module> <module>spring-security-web-digest-auth</module> - <module>spring-security-mvc-jsonview</module> + <module>spring-security-web-jsonview</module> <module>spring-security-ldap</module> - <module>spring-security-mvc-login</module> - <module>spring-security-mvc-persisted-remember-me</module> - <module>spring-security-mvc-socket</module> + <module>spring-security-web-login</module> + <module>spring-security-web-persisted-remember-me</module> + <module>spring-security-web-sockets</module> <module>spring-security-oidc</module> <module>spring-security-okta</module> - <module>spring-security-react</module> + <module>spring-security-web-react</module> <module>spring-security-rest</module> <module>spring-security-rest-basic-auth</module> <module>spring-security-rest-custom</module> From 00d8cdc2524cac8c1a3dd3cff243b81ca24e8a53 Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Sun, 16 Aug 2020 16:37:06 +0530 Subject: [PATCH 130/156] JAVA-68: README changes --- spring-security-modules/spring-security-web-jsonview/README.md | 2 +- spring-security-modules/spring-security-web-sockets/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-security-modules/spring-security-web-jsonview/README.md b/spring-security-modules/spring-security-web-jsonview/README.md index 0e28d4c292..83f8106df9 100644 --- a/spring-security-modules/spring-security-web-jsonview/README.md +++ b/spring-security-modules/spring-security-web-jsonview/README.md @@ -1,4 +1,4 @@ -## Spring Security MVC Json View +## Spring Security Web Json View This module contains articles about Spring Security with JSON diff --git a/spring-security-modules/spring-security-web-sockets/README.md b/spring-security-modules/spring-security-web-sockets/README.md index d134d19c84..14ef0c8b99 100644 --- a/spring-security-modules/spring-security-web-sockets/README.md +++ b/spring-security-modules/spring-security-web-sockets/README.md @@ -1,4 +1,4 @@ -## Spring Security MVC Socket +## Spring Security Web Sockets This module contains articles about WebSockets with Spring Security From a32ecbeb8a75329707d4f9c899fe39a8737f7e7d Mon Sep 17 00:00:00 2001 From: bfontana <bruno.fontana@gmail.com> Date: Sun, 16 Aug 2020 18:32:19 -0300 Subject: [PATCH 131/156] Delete README.md File will be added after the article is published. --- spring-webflux-threads/README.md | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 spring-webflux-threads/README.md diff --git a/spring-webflux-threads/README.md b/spring-webflux-threads/README.md deleted file mode 100644 index b69ba958c1..0000000000 --- a/spring-webflux-threads/README.md +++ /dev/null @@ -1,7 +0,0 @@ -## Spring WebFlux Concurrency - -This module contains articles about concurrency model in Spring WebFlux. - -### Relevant Articles: - -- [Concurrency in Spring WebFlux]() From 1c432896ca36bded5196933a5c804d1cc986f5f4 Mon Sep 17 00:00:00 2001 From: bfontana <bruno.fontana@gmail.com> Date: Sun, 16 Aug 2020 19:21:54 -0300 Subject: [PATCH 132/156] Update Application.java Minor Javadoc fixings. --- .../src/main/java/com/baeldung/webflux/Application.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-webflux-threads/src/main/java/com/baeldung/webflux/Application.java b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Application.java index a0cd7d6a27..06a148a77f 100644 --- a/spring-webflux-threads/src/main/java/com/baeldung/webflux/Application.java +++ b/spring-webflux-threads/src/main/java/com/baeldung/webflux/Application.java @@ -4,8 +4,8 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** -* Please note that this assumes Mongo and Kafka to be running on the local machine on default configurations. -* If you want to experiment with Tomcat/Jetty instead of Netty, just uncomment the lines in pom.xml and rebuild. +* Please note we assume Mongo and Kafka are running in the local machine and on default configuration. +* Additionally, if you want to experiment with Tomcat/Jetty instead of Netty, just uncomment the lines in pom.xml and rebuild. */ @SpringBootApplication public class Application { From 62432a25320d7caec51e6ad6573968fbed6d83e5 Mon Sep 17 00:00:00 2001 From: Amit Pandey <amit2103@users.noreply.github.com> Date: Mon, 17 Aug 2020 10:30:19 +0530 Subject: [PATCH 133/156] Java 2387 (#9882) * fix junit test cases * added module in parent build --- .../com/baeldung/datetime/UseDateTimeFormatterUnitTest.java | 2 +- .../java/com/baeldung/datetime/UseToInstantUnitTest.java | 6 ++++-- .../com/baeldung/datetime/UseZonedDateTimeUnitTest.java | 2 +- core-java-modules/pom.xml | 1 + 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseDateTimeFormatterUnitTest.java b/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseDateTimeFormatterUnitTest.java index 797e0b954a..8ca0066a0d 100644 --- a/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseDateTimeFormatterUnitTest.java +++ b/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseDateTimeFormatterUnitTest.java @@ -31,6 +31,6 @@ public class UseDateTimeFormatterUnitTest { public void givenALocalDate_whenFormattingWithStyleAndLocale_thenPass() { String result = subject.formatWithStyleAndLocale(localDateTime, FormatStyle.MEDIUM, Locale.UK); - assertThat(result).isEqualTo("25 Jan 2015, 06:30:00"); + assertThat(result).isEqualTo("25-Jan-2015 06:30:00"); } } \ No newline at end of file diff --git a/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseToInstantUnitTest.java b/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseToInstantUnitTest.java index 78d9a647fe..cb6e804284 100644 --- a/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseToInstantUnitTest.java +++ b/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseToInstantUnitTest.java @@ -3,6 +3,7 @@ package com.baeldung.datetime; import static org.assertj.core.api.Assertions.assertThat; import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; @@ -24,10 +25,11 @@ public class UseToInstantUnitTest { @Test public void givenADate_whenConvertingToLocalDate_thenAsExpected() { - Date givenDate = new Date(1465817690000L); + LocalDateTime currentDateTime = LocalDateTime.now(); + Date givenDate = Date.from(currentDateTime.atZone(ZoneId.systemDefault()).toInstant()); LocalDateTime localDateTime = subject.convertDateToLocalDate(givenDate); - assertThat(localDateTime).isEqualTo("2016-06-13T13:34:50"); + assertThat(localDateTime).isEqualTo(currentDateTime); } } \ No newline at end of file diff --git a/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseZonedDateTimeUnitTest.java b/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseZonedDateTimeUnitTest.java index 4a39f6056e..0ee0f72d78 100644 --- a/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseZonedDateTimeUnitTest.java +++ b/core-java-modules/core-java-8-datetime/src/test/java/com/baeldung/datetime/UseZonedDateTimeUnitTest.java @@ -54,7 +54,7 @@ public class UseZonedDateTimeUnitTest { @Test public void givenAStringWithTimeZone_whenParsing_thenEqualsExpected() { ZonedDateTime resultFromString = zonedDateTime.getZonedDateTimeUsingParseMethod("2015-05-03T10:15:30+01:00[Europe/Paris]"); - ZonedDateTime resultFromLocalDateTime = ZonedDateTime.of(2015, 5, 3, 11, 15, 30, 0, ZoneId.of("Europe/Paris")); + ZonedDateTime resultFromLocalDateTime = ZonedDateTime.of(2015, 5, 3, 10, 15, 30, 0, ZoneId.of("Europe/Paris")); assertThat(resultFromString.getZone()).isEqualTo(ZoneId.of("Europe/Paris")); assertThat(resultFromLocalDateTime.getZone()).isEqualTo(ZoneId.of("Europe/Paris")); diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml index 589097cf48..e6fd449c87 100644 --- a/core-java-modules/pom.xml +++ b/core-java-modules/pom.xml @@ -64,6 +64,7 @@ <module>core-java-date-operations-2</module> <!-- We haven't upgraded to java 9. --> <!-- <module>core-java-datetime-computations</module> <module>core-java-datetime-conversion</module> <module>core-java-datetime-java8</module> <module>core-java-datetime-string</module> --> + <module>core-java-8-datetime</module> <module>core-java-exceptions</module> <module>core-java-exceptions-2</module> From 2bad67ff3831f2fd4b907983d3e726fa00c8b3d7 Mon Sep 17 00:00:00 2001 From: Amit Pandey <amit2103@users.noreply.github.com> Date: Mon, 17 Aug 2020 10:33:20 +0530 Subject: [PATCH 134/156] added modules in parent (#9842) * added modules in parent * commented failed modules in pom --- core-java-modules/pom.xml | 5 +++++ patterns/pom.xml | 1 + persistence-modules/pom.xml | 2 ++ spring-boot-modules/spring-boot-custom-starter/pom.xml | 1 + spring-cloud/pom.xml | 2 ++ spring-cloud/spring-cloud-stream/pom.xml | 2 ++ 6 files changed, 13 insertions(+) diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml index e6fd449c87..0b832223f4 100644 --- a/core-java-modules/pom.xml +++ b/core-java-modules/pom.xml @@ -22,6 +22,7 @@ <!-- <module>core-java-11</module> --> <!-- We haven't upgraded to java 11. Fixing in BAEL-10841 --> <!-- <module>core-java-12</module> --> <!-- We haven't upgraded to java 12. Fixing in BAEL-10841 --> <!-- <module>core-java-13</module> --> <!-- We haven't upgraded to java 12. Fixing in BAEL-10841 --> + <!-- <module>core-java-14</module> --> <!-- We haven't upgraded to java 14.--> <module>core-java-8</module> <module>core-java-8-2</module> @@ -59,7 +60,11 @@ <module>core-java-concurrency-basic</module> <module>core-java-concurrency-basic-2</module> <module>core-java-concurrency-collections</module> + <module>core-java-concurrency-collections-2</module> + <module>core-java-console</module> + <!--<module>core-java-8-datetime</module>--> <!-- unit test case failure --> + <module>core-java-8-datetime-2</module> <!-- <module>core-java-date-operations-1</module> --> <!-- We haven't upgraded to java 9. Fixing in BAEL-10841 --> <module>core-java-date-operations-2</module> <!-- We haven't upgraded to java 9. --> diff --git a/patterns/pom.xml b/patterns/pom.xml index e1753aba56..a179d75ffe 100644 --- a/patterns/pom.xml +++ b/patterns/pom.xml @@ -21,6 +21,7 @@ <module>dip</module> <module>cqrs-es</module> <module>front-controller</module> + <module>hexagonal-architecture</module> <module>intercepting-filter</module> <module>solid</module> </modules> diff --git a/persistence-modules/pom.xml b/persistence-modules/pom.xml index 6186900a6e..3e1a90b737 100644 --- a/persistence-modules/pom.xml +++ b/persistence-modules/pom.xml @@ -19,12 +19,14 @@ <module>core-java-persistence</module> <module>deltaspike</module> <module>elasticsearch</module> + <module>flyway</module> <module>flyway-repair</module> <module>hbase</module> <module>hibernate5</module> <module>hibernate-mapping</module> <!-- long running --> <module>hibernate-ogm</module> <module>hibernate-annotations</module> + <module>hibernate-exceptions</module> <module>hibernate-libraries</module> <module>hibernate-jpa</module> <module>hibernate-queries</module> diff --git a/spring-boot-modules/spring-boot-custom-starter/pom.xml b/spring-boot-modules/spring-boot-custom-starter/pom.xml index 17f9fdc2cc..338bf22f46 100644 --- a/spring-boot-modules/spring-boot-custom-starter/pom.xml +++ b/spring-boot-modules/spring-boot-custom-starter/pom.xml @@ -18,6 +18,7 @@ <modules> <module>greeter-library</module> + <module>greeter</module> <module>greeter-spring-boot-autoconfigure</module> <module>greeter-spring-boot-starter</module> <module>greeter-spring-boot-sample-app</module> diff --git a/spring-cloud/pom.xml b/spring-cloud/pom.xml index 0e2cac1ff9..99fde0daf4 100644 --- a/spring-cloud/pom.xml +++ b/spring-cloud/pom.xml @@ -41,6 +41,8 @@ <module>spring-cloud-zuul</module> <module>spring-cloud-zuul-fallback</module> <module>spring-cloud-ribbon-retry</module> + <module>spring-cloud-circuit-breaker</module> + <module>spring-cloud-eureka-self-preservation</module> </modules> <build> diff --git a/spring-cloud/spring-cloud-stream/pom.xml b/spring-cloud/spring-cloud-stream/pom.xml index ebaaab0801..17c788c000 100644 --- a/spring-cloud/spring-cloud-stream/pom.xml +++ b/spring-cloud/spring-cloud-stream/pom.xml @@ -14,7 +14,9 @@ </parent> <modules> + <module>spring-cloud-stream-kafka</module> <module>spring-cloud-stream-rabbit</module> + <module>spring-cloud-stream-kinesis</module> </modules> <dependencyManagement> From b6e9fa3848f96fdd6628bf5919f2b6604f324485 Mon Sep 17 00:00:00 2001 From: Rutuja Joshi <67615932+rutujavjoshi@users.noreply.github.com> Date: Mon, 17 Aug 2020 16:48:47 +0530 Subject: [PATCH 135/156] Delete MainMenuUnitTest.java Moving code to a new module - core-java-exceptions-3 --- .../nosuchmethoderror/MainMenuUnitTest.java | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 core-java-modules/core-java-exceptions/src/test/java/com/baeldung/exceptions/nosuchmethoderror/MainMenuUnitTest.java diff --git a/core-java-modules/core-java-exceptions/src/test/java/com/baeldung/exceptions/nosuchmethoderror/MainMenuUnitTest.java b/core-java-modules/core-java-exceptions/src/test/java/com/baeldung/exceptions/nosuchmethoderror/MainMenuUnitTest.java deleted file mode 100644 index 7e53fa9c0e..0000000000 --- a/core-java-modules/core-java-exceptions/src/test/java/com/baeldung/exceptions/nosuchmethoderror/MainMenuUnitTest.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.baeldung.exceptions.nosuchmethoderror; - -import static org.junit.Assert.assertNotNull; - -import org.junit.jupiter.api.Test; - -class MainMenuUnitTest { - - @Test - void whenGetSpecials_thenNotNull() { - assertNotNull(MainMenu.getSpecials()); - } - -} From 02fb2aee854d7e11f3a39cdb8c2abcf86451c5f7 Mon Sep 17 00:00:00 2001 From: Rutuja Joshi <67615932+rutujavjoshi@users.noreply.github.com> Date: Mon, 17 Aug 2020 16:50:59 +0530 Subject: [PATCH 136/156] Delete MainMenu.java Moving code to a new module - core-java-exceptions-3 --- .../exceptions/nosuchmethoderror/MainMenu.java | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/MainMenu.java diff --git a/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/MainMenu.java b/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/MainMenu.java deleted file mode 100644 index f12cbe1897..0000000000 --- a/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/MainMenu.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.baeldung.exceptions.nosuchmethoderror; - -public class MainMenu { - public static void main(String[] args) { - System.out.println("Today's Specials: " + getSpecials()); - } - - public static String getSpecials() { - return SpecialToday.getDesert(); - } -} From ccad8d217f11a0d99b0e2853b4bed93076fe7099 Mon Sep 17 00:00:00 2001 From: Rutuja Joshi <67615932+rutujavjoshi@users.noreply.github.com> Date: Mon, 17 Aug 2020 16:51:16 +0530 Subject: [PATCH 137/156] Delete SpecialToday.java Moving code to a new module - core-java-exceptions-3 --- .../exceptions/nosuchmethoderror/SpecialToday.java | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/SpecialToday.java diff --git a/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/SpecialToday.java b/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/SpecialToday.java deleted file mode 100644 index 1b0dea9784..0000000000 --- a/core-java-modules/core-java-exceptions/src/main/java/com/baeldung/exceptions/nosuchmethoderror/SpecialToday.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.baeldung.exceptions.nosuchmethoderror; -public class SpecialToday { - private static String desert = "Chocolate Cake"; - - public static String getDesert() { - return desert; - } -} From 3233bd6adc5e5485d9af8573c200291bd95c3beb Mon Sep 17 00:00:00 2001 From: Trixi Turny <writetotrixi@gmail.com> Date: Mon, 17 Aug 2020 12:41:09 +0100 Subject: [PATCH 138/156] BAEL-4321 add new module to pom --- spring-boot-modules/pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-boot-modules/pom.xml b/spring-boot-modules/pom.xml index 84f1f0e86c..f4e3e534c8 100644 --- a/spring-boot-modules/pom.xml +++ b/spring-boot-modules/pom.xml @@ -56,6 +56,7 @@ <module>spring-boot-performance</module> <module>spring-boot-properties</module> <module>spring-boot-properties-2</module> + <module>spring-boot-properties-3</module> <module>spring-boot-property-exp</module> <module>spring-boot-runtime</module> <module>spring-boot-security</module> From 5c46488ac82f826873f7214efd6dc0cb848dc0ea Mon Sep 17 00:00:00 2001 From: Amit Pandey <amit2103@users.noreply.github.com> Date: Mon, 17 Aug 2020 18:21:42 +0530 Subject: [PATCH 139/156] used standard parent pom (#9885) --- .../spring-boot-basic-customization/pom.xml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/spring-boot-modules/spring-boot-basic-customization/pom.xml b/spring-boot-modules/spring-boot-basic-customization/pom.xml index 2a4b321c5f..fc34994a85 100644 --- a/spring-boot-modules/spring-boot-basic-customization/pom.xml +++ b/spring-boot-modules/spring-boot-basic-customization/pom.xml @@ -4,13 +4,11 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <!-- an article in the module requires 2.3.x version, hence we are overriding it here. - After the parent is upgraded, the explicit version mapping should be removed, and the module should inherit from its parent: spring-boot-modules --> <parent> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-parent</artifactId> - <version>2.3.2.RELEASE</version> - <relativePath /> + <groupId>com.baeldung.spring-boot-modules</groupId> + <artifactId>spring-boot-modules</artifactId> + <version>1.0.0-SNAPSHOT</version> + <relativePath>../</relativePath> </parent> <artifactId>spring-boot-basic-customization</artifactId> From f00adab98c004db720aeee3a94db6ed27350ad20 Mon Sep 17 00:00:00 2001 From: Rutuja Joshi <67615932+rutujavjoshi@users.noreply.github.com> Date: Mon, 17 Aug 2020 19:33:14 +0530 Subject: [PATCH 140/156] BAEL-4193 - initial commit initial commit in new module core-java-exceptions-3 --- .../core-java-exceptions-3/README.md | 6 ++++ .../core-java-exceptions-3/pom.xml | 34 +++++++++++++++++++ .../nosuchmethoderror/MainMenu.java | 11 ++++++ .../nosuchmethoderror/SpecialToday.java | 8 +++++ .../nosuchmethoderror/MainMenuUnitTest.java | 13 +++++++ 5 files changed, 72 insertions(+) create mode 100644 core-java-modules/core-java-exceptions-3/README.md create mode 100644 core-java-modules/core-java-exceptions-3/pom.xml create mode 100644 core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/nosuchmethoderror/MainMenu.java create mode 100644 core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/nosuchmethoderror/SpecialToday.java create mode 100644 core-java-modules/core-java-exceptions-3/src/test/java/com/baeldung/exceptions/nosuchmethoderror/MainMenuUnitTest.java diff --git a/core-java-modules/core-java-exceptions-3/README.md b/core-java-modules/core-java-exceptions-3/README.md new file mode 100644 index 0000000000..52fca27486 --- /dev/null +++ b/core-java-modules/core-java-exceptions-3/README.md @@ -0,0 +1,6 @@ +## Core Java Exceptions + +This module contains articles about core java exceptions + +### Relevant articles: +- [NoSuchMethodError in Java](https://www.baeldung.com/java-chained-exceptions) diff --git a/core-java-modules/core-java-exceptions-3/pom.xml b/core-java-modules/core-java-exceptions-3/pom.xml new file mode 100644 index 0000000000..32c522dab5 --- /dev/null +++ b/core-java-modules/core-java-exceptions-3/pom.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project + xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>com.baeldung.exceptions</groupId> + <artifactId>core-java-exceptions-3</artifactId> + <version>0.1.0-SNAPSHOT</version> + <name>core-java-exceptions-3</name> + <packaging>jar</packaging> + <parent> + <groupId>com.baeldung.core-java-modules</groupId> + <artifactId>core-java-modules</artifactId> + <version>0.0.1-SNAPSHOT</version> + <relativePath>../</relativePath> + </parent> + + <dependencies> + <!-- test scoped --> + <dependency> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> + <version>${assertj-core.version}</version> + <scope>test</scope> + </dependency> + </dependencies> + + <properties> + <!-- testing --> + <assertj-core.version>3.10.0</assertj-core.version> + </properties> + +</project> \ No newline at end of file diff --git a/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/nosuchmethoderror/MainMenu.java b/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/nosuchmethoderror/MainMenu.java new file mode 100644 index 0000000000..f12cbe1897 --- /dev/null +++ b/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/nosuchmethoderror/MainMenu.java @@ -0,0 +1,11 @@ +package com.baeldung.exceptions.nosuchmethoderror; + +public class MainMenu { + public static void main(String[] args) { + System.out.println("Today's Specials: " + getSpecials()); + } + + public static String getSpecials() { + return SpecialToday.getDesert(); + } +} diff --git a/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/nosuchmethoderror/SpecialToday.java b/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/nosuchmethoderror/SpecialToday.java new file mode 100644 index 0000000000..1b0dea9784 --- /dev/null +++ b/core-java-modules/core-java-exceptions-3/src/main/java/com/baeldung/exceptions/nosuchmethoderror/SpecialToday.java @@ -0,0 +1,8 @@ +package com.baeldung.exceptions.nosuchmethoderror; +public class SpecialToday { + private static String desert = "Chocolate Cake"; + + public static String getDesert() { + return desert; + } +} diff --git a/core-java-modules/core-java-exceptions-3/src/test/java/com/baeldung/exceptions/nosuchmethoderror/MainMenuUnitTest.java b/core-java-modules/core-java-exceptions-3/src/test/java/com/baeldung/exceptions/nosuchmethoderror/MainMenuUnitTest.java new file mode 100644 index 0000000000..ce4374a9ba --- /dev/null +++ b/core-java-modules/core-java-exceptions-3/src/test/java/com/baeldung/exceptions/nosuchmethoderror/MainMenuUnitTest.java @@ -0,0 +1,13 @@ +package com.baeldung.exceptions.nosuchmethoderror; + +import static org.junit.Assert.assertNotNull; + +import org.junit.jupiter.api.Test; + +class MainMenuUnitTest { + + @Test + void whenGetSpecials_thenNotNull() { + assertNotNull(MainMenu.getSpecials()); + } +} From 10d571fd1d93b89f337ce4c87e4b6bf0df8285fd Mon Sep 17 00:00:00 2001 From: Rutuja Joshi <67615932+rutujavjoshi@users.noreply.github.com> Date: Mon, 17 Aug 2020 19:37:28 +0530 Subject: [PATCH 141/156] pom : added new module core-java-exceptions-3 added new module core-java-exceptions-3 --- core-java-modules/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml index 589097cf48..29f849ecf7 100644 --- a/core-java-modules/pom.xml +++ b/core-java-modules/pom.xml @@ -67,7 +67,7 @@ <module>core-java-exceptions</module> <module>core-java-exceptions-2</module> - + <module>core-java-exceptions-3</module> <module>core-java-function</module> <module>core-java-io</module> From 0d2ae486e100cb5e94c8598670579e8393b690ce Mon Sep 17 00:00:00 2001 From: davidmartinezbarua <davmb5@gmail.com> Date: Mon, 17 Aug 2020 11:52:28 -0300 Subject: [PATCH 142/156] Revert "BAEL-4321 demo app for yaml to pojo" --- spring-boot-modules/pom.xml | 1 - .../spring-boot-properties-3/pom.xml | 54 ------------------- .../boot/properties/DemoApplication.java | 16 ------ .../properties/config/TshirtSizeConfig.java | 27 ---------- .../controller/TshirtSizeController.java | 21 -------- .../properties/service/SizeConverterImpl.java | 22 -------- .../service/SizeConverterService.java | 8 --- .../src/main/resources/application.yml | 30 ----------- .../controller/TshirtSizeControllerTest.java | 38 ------------- 9 files changed, 217 deletions(-) delete mode 100644 spring-boot-modules/spring-boot-properties-3/pom.xml delete mode 100644 spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/DemoApplication.java delete mode 100644 spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/config/TshirtSizeConfig.java delete mode 100644 spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java delete mode 100644 spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterImpl.java delete mode 100644 spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterService.java delete mode 100644 spring-boot-modules/spring-boot-properties-3/src/main/resources/application.yml delete mode 100644 spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/controller/TshirtSizeControllerTest.java diff --git a/spring-boot-modules/pom.xml b/spring-boot-modules/pom.xml index b4cabaaedf..3a2f14f5df 100644 --- a/spring-boot-modules/pom.xml +++ b/spring-boot-modules/pom.xml @@ -56,7 +56,6 @@ <module>spring-boot-performance</module> <module>spring-boot-properties</module> <module>spring-boot-properties-2</module> - <module>spring-boot-properties-3</module> <module>spring-boot-property-exp</module> <module>spring-boot-runtime</module> <module>spring-boot-security</module> diff --git a/spring-boot-modules/spring-boot-properties-3/pom.xml b/spring-boot-modules/spring-boot-properties-3/pom.xml deleted file mode 100644 index 1e3d627b19..0000000000 --- a/spring-boot-modules/spring-boot-properties-3/pom.xml +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>com.baeldung.spring-boot-modules</groupId> - <artifactId>spring-boot-modules</artifactId> - <version>1.0.0-SNAPSHOT</version> - <relativePath>../</relativePath> - </parent> - - <artifactId>spring-boot-properties-3</artifactId> - <version>0.0.1-SNAPSHOT</version> - <name>spring-boot-properties-3</name> - <description>Spring Boot Properties Module</description> - - <properties> - <java.version>1.8</java.version> - </properties> - - <dependencies> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter</artifactId> - </dependency> - - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-test</artifactId> - <scope>test</scope> - <exclusions> - <exclusion> - <groupId>org.junit.vintage</groupId> - <artifactId>junit-vintage-engine</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-web</artifactId> - <version>RELEASE</version> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-maven-plugin</artifactId> - </plugin> - </plugins> - </build> - -</project> diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/DemoApplication.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/DemoApplication.java deleted file mode 100644 index cf2fb7f981..0000000000 --- a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/DemoApplication.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.baeldung.boot.properties; - -import com.baeldung.boot.properties.config.TshirtSizeConfig; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.context.properties.EnableConfigurationProperties; - -@SpringBootApplication -@EnableConfigurationProperties(TshirtSizeConfig.class) -public class DemoApplication { - - public static void main(String[] args) { - SpringApplication.run(DemoApplication.class, args); - } - -} diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/config/TshirtSizeConfig.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/config/TshirtSizeConfig.java deleted file mode 100644 index 690763ab7b..0000000000 --- a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/config/TshirtSizeConfig.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.baeldung.boot.properties.config; - -import org.springframework.boot.context.properties.ConfigurationProperties; - -import java.util.Map; - -@ConfigurationProperties(prefix = "t-shirt-size") -public class TshirtSizeConfig { - - private final Map<String, Integer> simpleMapping; - - private final Map<String, Map<String, Integer>> complexMapping; - - - public TshirtSizeConfig(Map<String, Integer> simpleMapping, Map<String, Map<String, Integer>> complexMapping) { - this.simpleMapping = simpleMapping; - this.complexMapping = complexMapping; - } - - public Map<String, Integer> getSimpleMapping() { - return simpleMapping; - } - - public Map<String, Map<String, Integer>> getComplexMapping() { - return complexMapping; - } -} diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java deleted file mode 100644 index 6b713c5be8..0000000000 --- a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.baeldung.boot.properties.controller; - -import org.springframework.web.bind.annotation.*; -import com.baeldung.boot.properties.service.SizeConverterService; - -@RestController -@RequestMapping(value = "/") -public class TshirtSizeController { - - private final SizeConverterService service; - - public TshirtSizeController(SizeConverterService service) { - this.service = service; - } - - @RequestMapping(value ="convertSize", method = RequestMethod.GET) - public int convertSize(@RequestParam(value = "label") final String label, @RequestParam(value = "countryCode", required = false) final String countryCode) { - return service.convertSize(label, countryCode); - } - -} diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterImpl.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterImpl.java deleted file mode 100644 index 34f7fe2ded..0000000000 --- a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterImpl.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.baeldung.boot.properties.service; - -import org.springframework.stereotype.Service; -import com.baeldung.boot.properties.config.TshirtSizeConfig; - - -@Service -public class SizeConverterImpl implements SizeConverterService { - - private final TshirtSizeConfig tshirtSizeConfig; - - public SizeConverterImpl(TshirtSizeConfig tshirtSizeConfig) { - this.tshirtSizeConfig = tshirtSizeConfig; - } - - public int convertSize(String label, String countryCode) { - if(countryCode == null) { - return tshirtSizeConfig.getSimpleMapping().get(label); - } - return tshirtSizeConfig.getComplexMapping().get(label).get(countryCode.toLowerCase()); - } -} diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterService.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterService.java deleted file mode 100644 index 412199b176..0000000000 --- a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterService.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.baeldung.boot.properties.service; - - -public interface SizeConverterService { - - int convertSize(String label, String countryCode); - -} diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/resources/application.yml b/spring-boot-modules/spring-boot-properties-3/src/main/resources/application.yml deleted file mode 100644 index 8779cb6b0c..0000000000 --- a/spring-boot-modules/spring-boot-properties-3/src/main/resources/application.yml +++ /dev/null @@ -1,30 +0,0 @@ - t-shirt-size: - simple-mapping: - XS: 6 - S: 8 - M: 10 - L: 12 - XL: 14 - - - complex-mapping: - XS: - uk: 6 - fr: 34 - us: 2 - S: - uk: 8 - fr: 36 - us: 4 - M: - uk: 10 - fr: 38 - us: 6 - L: - uk: 12 - fr: 40 - us: 8 - XL: - uk: 14 - fr: 42 - us: 10 diff --git a/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/controller/TshirtSizeControllerTest.java b/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/controller/TshirtSizeControllerTest.java deleted file mode 100644 index 0b70ed8622..0000000000 --- a/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/controller/TshirtSizeControllerTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.baeldung.boot.properties.controller; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.junit.jupiter.MockitoExtension; -import com.baeldung.boot.properties.service.SizeConverterService; - -import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.when; - -@ExtendWith(MockitoExtension.class) -class TshirtSizeControllerUnitTest { - - @Mock - private SizeConverterService service; - - @InjectMocks - private TshirtSizeController tested; - - @Test - void whenConvertSize_thenOK() { - - // Given - String label = "S"; - String countryCode = "fr"; - int result = 36; - - // When - when(service.convertSize(label, countryCode)).thenReturn(result); - int actual = tested.convertSize(label, countryCode); - - // Then - assertEquals(actual, result); - - } -} \ No newline at end of file From f3c4e3e36df8ac3a92b4d50da27278cf76ea663a Mon Sep 17 00:00:00 2001 From: Philippe <phil@lighthouse.com.br> Date: Mon, 17 Aug 2020 11:58:25 -0300 Subject: [PATCH 143/156] [BAEL-4381] Fix formatting --- .../archunit/smurfs/persistence/SmurfsRepository.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/SmurfsRepository.java b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/SmurfsRepository.java index c18fcbc839..5d90d0f288 100644 --- a/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/SmurfsRepository.java +++ b/libraries-testing/src/main/java/com/baeldung/archunit/smurfs/persistence/SmurfsRepository.java @@ -26,11 +26,7 @@ public class SmurfsRepository { smurfs.put("Baker", new Smurf("Baker", true, true)); smurfs.put("Baker", new Smurf("Baker", true, true)); } - - public SmurfsRepository() { - - } - + public List<Smurf> findAll() { return Collections.unmodifiableList(smurfs.values().stream().collect(toList())); } From 39ba03a48843d668ee8d0852df5f8386b35c65d3 Mon Sep 17 00:00:00 2001 From: Rutuja Joshi <67615932+rutujavjoshi@users.noreply.github.com> Date: Mon, 17 Aug 2020 21:11:50 +0530 Subject: [PATCH 144/156] Delete README.md --- core-java-modules/core-java-exceptions-3/README.md | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 core-java-modules/core-java-exceptions-3/README.md diff --git a/core-java-modules/core-java-exceptions-3/README.md b/core-java-modules/core-java-exceptions-3/README.md deleted file mode 100644 index 52fca27486..0000000000 --- a/core-java-modules/core-java-exceptions-3/README.md +++ /dev/null @@ -1,6 +0,0 @@ -## Core Java Exceptions - -This module contains articles about core java exceptions - -### Relevant articles: -- [NoSuchMethodError in Java](https://www.baeldung.com/java-chained-exceptions) From e4f034795d1e4cb5aef5c3a12f81a9d1c268f03f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20G=C5=82=C3=B3wka?= <maciejglowka.pl@gmail.com> Date: Mon, 17 Aug 2020 19:11:57 +0200 Subject: [PATCH 145/156] BAEL-4057: Hibernate Hi/Lo algorithm example (#9802) * BAEL-4057: Hibernate Hi/Lo algorithm example * BAEL-4057: fixed code indentation --- .../hibernate/hilo/RestaurantOrder.java | 34 +++++++ .../hibernate/hilo/HibernateHiloUnitTest.java | 99 +++++++++++++++++++ .../test/resources/hibernate-hilo.properties | 10 ++ 3 files changed, 143 insertions(+) create mode 100644 persistence-modules/hibernate5/src/main/java/com/baeldung/hibernate/hilo/RestaurantOrder.java create mode 100644 persistence-modules/hibernate5/src/test/java/com/baeldung/hibernate/hilo/HibernateHiloUnitTest.java create mode 100644 persistence-modules/hibernate5/src/test/resources/hibernate-hilo.properties diff --git a/persistence-modules/hibernate5/src/main/java/com/baeldung/hibernate/hilo/RestaurantOrder.java b/persistence-modules/hibernate5/src/main/java/com/baeldung/hibernate/hilo/RestaurantOrder.java new file mode 100644 index 0000000000..03d7edeae9 --- /dev/null +++ b/persistence-modules/hibernate5/src/main/java/com/baeldung/hibernate/hilo/RestaurantOrder.java @@ -0,0 +1,34 @@ +package com.baeldung.hibernate.hilo; + +import org.hibernate.annotations.GenericGenerator; +import org.hibernate.annotations.Parameter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +public class RestaurantOrder { + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "hilo_sequence_generator") + @GenericGenerator( + name = "hilo_sequence_generator", + strategy = "sequence", + parameters = { + @Parameter(name = "sequence_name", value = "hilo_seqeunce"), + @Parameter(name = "initial_value", value = "1"), + @Parameter(name = "increment_size", value = "3"), + @Parameter(name = "optimizer", value = "hilo") + } + ) + private Long id; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } +} diff --git a/persistence-modules/hibernate5/src/test/java/com/baeldung/hibernate/hilo/HibernateHiloUnitTest.java b/persistence-modules/hibernate5/src/test/java/com/baeldung/hibernate/hilo/HibernateHiloUnitTest.java new file mode 100644 index 0000000000..9285c30af5 --- /dev/null +++ b/persistence-modules/hibernate5/src/test/java/com/baeldung/hibernate/hilo/HibernateHiloUnitTest.java @@ -0,0 +1,99 @@ +package com.baeldung.hibernate.hilo; + +import org.apache.log4j.BasicConfigurator; +import org.apache.log4j.Level; +import org.apache.log4j.LogManager; +import org.hibernate.HibernateException; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.boot.Metadata; +import org.hibernate.boot.MetadataSources; +import org.hibernate.boot.SessionFactoryBuilder; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; +import org.hibernate.service.ServiceRegistry; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import java.io.FileInputStream; +import java.io.IOException; +import java.net.URL; +import java.util.Properties; + +import static org.junit.Assert.fail; + +public class HibernateHiloUnitTest { + private Session session; + + @Before + public void init() { + try { + configureLogger(); + + ServiceRegistry serviceRegistry = configureServiceRegistry(); + SessionFactory factory = getSessionFactoryBuilder(serviceRegistry).build(); + session = factory.openSession(); + } catch (HibernateException | IOException e) { + fail("Failed to initiate Hibernate Session [Exception:" + e.toString() + "]"); + } + } + + private void configureLogger() { + BasicConfigurator.configure(); + LogManager.getLogger("org.hibernate").setLevel(Level.ERROR); + LogManager.getLogger("org.hibernate.id.enhanced.SequenceStructure").setLevel(Level.DEBUG); + LogManager.getLogger("org.hibernate.event.internal.AbstractSaveEventListener").setLevel(Level.DEBUG); + LogManager.getLogger("org.hibernate.SQL").setLevel(Level.DEBUG); + } + + + private static SessionFactoryBuilder getSessionFactoryBuilder(ServiceRegistry serviceRegistry) { + MetadataSources metadataSources = new MetadataSources(serviceRegistry); + metadataSources.addAnnotatedClass(RestaurantOrder.class); + Metadata metadata = metadataSources.buildMetadata(); + + return metadata.getSessionFactoryBuilder(); + } + + private static ServiceRegistry configureServiceRegistry() throws IOException { + Properties properties = getProperties(); + + return new StandardServiceRegistryBuilder().applySettings(properties) + .build(); + } + + private static Properties getProperties() throws IOException { + Properties properties = new Properties(); + URL propertiesURL = getPropertiesURL(); + + try (FileInputStream inputStream = new FileInputStream(propertiesURL.getFile())) { + properties.load(inputStream); + } + + return properties; + } + + private static URL getPropertiesURL() { + return Thread.currentThread() + .getContextClassLoader() + .getResource("hibernate-hilo.properties"); + } + + @Test + public void givenHiLoAlgorithm_when9EntitiesArePersisted_Then3callsToDBForNextValueShouldBeMade() { + Transaction transaction = session.beginTransaction(); + + for (int i = 0; i < 9; i++) { + session.persist(new RestaurantOrder()); + session.flush(); + } + + transaction.commit(); + } + + @After + public void cleanup() { + session.close(); + } +} diff --git a/persistence-modules/hibernate5/src/test/resources/hibernate-hilo.properties b/persistence-modules/hibernate5/src/test/resources/hibernate-hilo.properties new file mode 100644 index 0000000000..60d487c1bd --- /dev/null +++ b/persistence-modules/hibernate5/src/test/resources/hibernate-hilo.properties @@ -0,0 +1,10 @@ +hibernate.connection.driver_class=org.h2.Driver +hibernate.connection.url=jdbc:h2:mem:hilo_db;DB_CLOSE_DELAY=-1 +hibernate.connection.username=sa +hibernate.dialect=org.hibernate.dialect.H2Dialect +hibernate.show_sql=true +hibernate.hbm2ddl.auto=create-drop +hibernate.c3p0.min_size=5 +hibernate.c3p0.max_size=20 +hibernate.c3p0.acquire_increment=5 +hibernate.c3p0.timeout=1800 From 29a7bbe857d9e2240781b1910276c924c778bfe7 Mon Sep 17 00:00:00 2001 From: bfontana <bruno.fontana@gmail.com> Date: Mon, 17 Aug 2020 21:49:49 -0300 Subject: [PATCH 146/156] Update SmurfsArchUnitTest.java --- .../java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java b/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java index 68a33be69b..9724c2bcae 100644 --- a/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java +++ b/libraries-testing/src/test/java/com/baeldung/archunit/smurfs/SmurfsArchUnitTest.java @@ -1,6 +1,3 @@ -/** - * - */ package com.baeldung.archunit.smurfs; From 4e9ce6e4ccbbf269b87409260c310bab9e6b8bdb Mon Sep 17 00:00:00 2001 From: Trixi Turny <writetotrixi@gmail.com> Date: Tue, 18 Aug 2020 09:32:12 +0100 Subject: [PATCH 147/156] BAEL-4321 yaml config to map in pojo demo --- spring-boot-modules/pom.xml | 1 + .../spring-boot-properties-3/pom.xml | 54 +++++++++++++++++++ .../boot/properties/DemoApplication.java | 16 ++++++ .../properties/config/TshirtSizeConfig.java | 27 ++++++++++ .../controller/TshirtSizeController.java | 21 ++++++++ .../properties/service/SizeConverterImpl.java | 22 ++++++++ .../service/SizeConverterService.java | 8 +++ .../src/main/resources/application.yml | 30 +++++++++++ .../controller/TshirtSizeControllerTest.java | 38 +++++++++++++ 9 files changed, 217 insertions(+) create mode 100644 spring-boot-modules/spring-boot-properties-3/pom.xml create mode 100644 spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/DemoApplication.java create mode 100644 spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/config/TshirtSizeConfig.java create mode 100644 spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java create mode 100644 spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterImpl.java create mode 100644 spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterService.java create mode 100644 spring-boot-modules/spring-boot-properties-3/src/main/resources/application.yml create mode 100644 spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/controller/TshirtSizeControllerTest.java diff --git a/spring-boot-modules/pom.xml b/spring-boot-modules/pom.xml index 84f1f0e86c..f4e3e534c8 100644 --- a/spring-boot-modules/pom.xml +++ b/spring-boot-modules/pom.xml @@ -56,6 +56,7 @@ <module>spring-boot-performance</module> <module>spring-boot-properties</module> <module>spring-boot-properties-2</module> + <module>spring-boot-properties-3</module> <module>spring-boot-property-exp</module> <module>spring-boot-runtime</module> <module>spring-boot-security</module> diff --git a/spring-boot-modules/spring-boot-properties-3/pom.xml b/spring-boot-modules/spring-boot-properties-3/pom.xml new file mode 100644 index 0000000000..cf94e1fc1d --- /dev/null +++ b/spring-boot-modules/spring-boot-properties-3/pom.xml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>com.baeldung.spring-boot-modules</groupId> + <artifactId>spring-boot-modules</artifactId> + <version>1.0.0-SNAPSHOT</version> + <relativePath>../</relativePath> + </parent> + + <artifactId>spring-boot-properties-3</artifactId> + <version>0.0.1-SNAPSHOT</version> + <name>spring-boot-properties-3</name> + <description>Spring Boot Properties Module</description> + + <properties> + <java.version>1.8</java.version> + </properties> + + <dependencies> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter</artifactId> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>org.junit.vintage</groupId> + <artifactId>junit-vintage-engine</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + <version>RELEASE</version> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + </plugin> + </plugins> + </build> + +</project> diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/DemoApplication.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/DemoApplication.java new file mode 100644 index 0000000000..cf2fb7f981 --- /dev/null +++ b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/DemoApplication.java @@ -0,0 +1,16 @@ +package com.baeldung.boot.properties; + +import com.baeldung.boot.properties.config.TshirtSizeConfig; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.context.properties.EnableConfigurationProperties; + +@SpringBootApplication +@EnableConfigurationProperties(TshirtSizeConfig.class) +public class DemoApplication { + + public static void main(String[] args) { + SpringApplication.run(DemoApplication.class, args); + } + +} diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/config/TshirtSizeConfig.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/config/TshirtSizeConfig.java new file mode 100644 index 0000000000..690763ab7b --- /dev/null +++ b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/config/TshirtSizeConfig.java @@ -0,0 +1,27 @@ +package com.baeldung.boot.properties.config; + +import org.springframework.boot.context.properties.ConfigurationProperties; + +import java.util.Map; + +@ConfigurationProperties(prefix = "t-shirt-size") +public class TshirtSizeConfig { + + private final Map<String, Integer> simpleMapping; + + private final Map<String, Map<String, Integer>> complexMapping; + + + public TshirtSizeConfig(Map<String, Integer> simpleMapping, Map<String, Map<String, Integer>> complexMapping) { + this.simpleMapping = simpleMapping; + this.complexMapping = complexMapping; + } + + public Map<String, Integer> getSimpleMapping() { + return simpleMapping; + } + + public Map<String, Map<String, Integer>> getComplexMapping() { + return complexMapping; + } +} diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java new file mode 100644 index 0000000000..6b713c5be8 --- /dev/null +++ b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/controller/TshirtSizeController.java @@ -0,0 +1,21 @@ +package com.baeldung.boot.properties.controller; + +import org.springframework.web.bind.annotation.*; +import com.baeldung.boot.properties.service.SizeConverterService; + +@RestController +@RequestMapping(value = "/") +public class TshirtSizeController { + + private final SizeConverterService service; + + public TshirtSizeController(SizeConverterService service) { + this.service = service; + } + + @RequestMapping(value ="convertSize", method = RequestMethod.GET) + public int convertSize(@RequestParam(value = "label") final String label, @RequestParam(value = "countryCode", required = false) final String countryCode) { + return service.convertSize(label, countryCode); + } + +} diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterImpl.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterImpl.java new file mode 100644 index 0000000000..34f7fe2ded --- /dev/null +++ b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterImpl.java @@ -0,0 +1,22 @@ +package com.baeldung.boot.properties.service; + +import org.springframework.stereotype.Service; +import com.baeldung.boot.properties.config.TshirtSizeConfig; + + +@Service +public class SizeConverterImpl implements SizeConverterService { + + private final TshirtSizeConfig tshirtSizeConfig; + + public SizeConverterImpl(TshirtSizeConfig tshirtSizeConfig) { + this.tshirtSizeConfig = tshirtSizeConfig; + } + + public int convertSize(String label, String countryCode) { + if(countryCode == null) { + return tshirtSizeConfig.getSimpleMapping().get(label); + } + return tshirtSizeConfig.getComplexMapping().get(label).get(countryCode.toLowerCase()); + } +} diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterService.java b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterService.java new file mode 100644 index 0000000000..412199b176 --- /dev/null +++ b/spring-boot-modules/spring-boot-properties-3/src/main/java/com/baeldung/boot/properties/service/SizeConverterService.java @@ -0,0 +1,8 @@ +package com.baeldung.boot.properties.service; + + +public interface SizeConverterService { + + int convertSize(String label, String countryCode); + +} diff --git a/spring-boot-modules/spring-boot-properties-3/src/main/resources/application.yml b/spring-boot-modules/spring-boot-properties-3/src/main/resources/application.yml new file mode 100644 index 0000000000..8779cb6b0c --- /dev/null +++ b/spring-boot-modules/spring-boot-properties-3/src/main/resources/application.yml @@ -0,0 +1,30 @@ + t-shirt-size: + simple-mapping: + XS: 6 + S: 8 + M: 10 + L: 12 + XL: 14 + + + complex-mapping: + XS: + uk: 6 + fr: 34 + us: 2 + S: + uk: 8 + fr: 36 + us: 4 + M: + uk: 10 + fr: 38 + us: 6 + L: + uk: 12 + fr: 40 + us: 8 + XL: + uk: 14 + fr: 42 + us: 10 diff --git a/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/controller/TshirtSizeControllerTest.java b/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/controller/TshirtSizeControllerTest.java new file mode 100644 index 0000000000..0b70ed8622 --- /dev/null +++ b/spring-boot-modules/spring-boot-properties-3/src/test/java/com/baeldung/boot/properties/controller/TshirtSizeControllerTest.java @@ -0,0 +1,38 @@ +package com.baeldung.boot.properties.controller; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import com.baeldung.boot.properties.service.SizeConverterService; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.when; + +@ExtendWith(MockitoExtension.class) +class TshirtSizeControllerUnitTest { + + @Mock + private SizeConverterService service; + + @InjectMocks + private TshirtSizeController tested; + + @Test + void whenConvertSize_thenOK() { + + // Given + String label = "S"; + String countryCode = "fr"; + int result = 36; + + // When + when(service.convertSize(label, countryCode)).thenReturn(result); + int actual = tested.convertSize(label, countryCode); + + // Then + assertEquals(actual, result); + + } +} \ No newline at end of file From 90e80fd32bb4e20c9db324619d83b9633334394b Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Tue, 18 Aug 2020 15:37:27 +0530 Subject: [PATCH 148/156] JAVA-69: Renamed spring-security-rest to spring-security-web-rest --- .../.gitignore | 0 .../README.md | 0 .../pom.xml | 4 ++-- .../src/main/java/com/baeldung/errorhandling/ApiError.java | 0 .../baeldung/errorhandling/CustomRestExceptionHandler.java | 0 .../src/main/java/com/baeldung/persistence/model/Foo.java | 0 .../main/java/com/baeldung/security/SecurityJavaConfig.java | 0 .../baeldung/security/SecurityWebApplicationInitializer.java | 0 .../web/MySavedRequestAwareAuthenticationSuccessHandler.java | 0 .../baeldung/security/web/RestAuthenticationEntryPoint.java | 0 .../src/main/java/com/baeldung/spring/ClientWebConfig.java | 0 .../src/main/java/com/baeldung/spring/SecurityXmlConfig.java | 0 .../src/main/java/com/baeldung/spring/WebConfig.java | 0 .../src/main/java/com/baeldung/swagger2/SwaggerConfig.java | 0 .../java/com/baeldung/web/controller/AsyncController.java | 0 .../java/com/baeldung/web/controller/CustomController.java | 0 .../main/java/com/baeldung/web/controller/FooController.java | 0 .../main/java/com/baeldung/web/controller/RootController.java | 0 .../com/baeldung/web/error/CustomAccessDeniedHandler.java | 0 .../web/error/RestResponseEntityExceptionHandler.java | 0 .../baeldung/web/exception/MyResourceNotFoundException.java | 0 .../src/main/java/com/baeldung/web/service/AsyncService.java | 0 .../main/java/com/baeldung/web/service/AsyncServiceImpl.java | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/webSecurityConfig.xml | 0 .../src/main/webapp/WEB-INF/api-servlet.xml | 0 .../src/main/webapp/WEB-INF/view/csrfAttacker.jsp | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../src/test/java/com/baeldung/SpringContextTest.java | 0 .../src/test/java/com/baeldung/errorhandling/FooLiveTest.java | 0 .../java/com/baeldung/web/AsyncControllerIntegrationTest.java | 0 .../src/test/java/com/baeldung/web/SwaggerLiveTest.java | 0 .../src/test/java/com/baeldung/web/TestConfig.java | 0 .../src/test/resources/.gitignore | 0 34 files changed, 2 insertions(+), 2 deletions(-) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/.gitignore (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/README.md (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/pom.xml (99%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/errorhandling/ApiError.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/errorhandling/CustomRestExceptionHandler.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/persistence/model/Foo.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/security/SecurityJavaConfig.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/security/SecurityWebApplicationInitializer.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/security/web/MySavedRequestAwareAuthenticationSuccessHandler.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/security/web/RestAuthenticationEntryPoint.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/spring/ClientWebConfig.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/spring/SecurityXmlConfig.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/spring/WebConfig.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/swagger2/SwaggerConfig.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/web/controller/AsyncController.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/web/controller/CustomController.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/web/controller/FooController.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/web/controller/RootController.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/web/error/CustomAccessDeniedHandler.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/web/error/RestResponseEntityExceptionHandler.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/web/exception/MyResourceNotFoundException.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/web/service/AsyncService.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/java/com/baeldung/web/service/AsyncServiceImpl.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/resources/webSecurityConfig.xml (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/webapp/WEB-INF/api-servlet.xml (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/webapp/WEB-INF/view/csrfAttacker.jsp (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/main/webapp/WEB-INF/web.xml (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/test/java/com/baeldung/SpringContextTest.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/test/java/com/baeldung/errorhandling/FooLiveTest.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/test/java/com/baeldung/web/AsyncControllerIntegrationTest.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/test/java/com/baeldung/web/SwaggerLiveTest.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/test/java/com/baeldung/web/TestConfig.java (100%) rename spring-security-modules/{spring-security-rest => spring-security-web-rest}/src/test/resources/.gitignore (100%) diff --git a/spring-security-modules/spring-security-rest/.gitignore b/spring-security-modules/spring-security-web-rest/.gitignore similarity index 100% rename from spring-security-modules/spring-security-rest/.gitignore rename to spring-security-modules/spring-security-web-rest/.gitignore diff --git a/spring-security-modules/spring-security-rest/README.md b/spring-security-modules/spring-security-web-rest/README.md similarity index 100% rename from spring-security-modules/spring-security-rest/README.md rename to spring-security-modules/spring-security-web-rest/README.md diff --git a/spring-security-modules/spring-security-rest/pom.xml b/spring-security-modules/spring-security-web-rest/pom.xml similarity index 99% rename from spring-security-modules/spring-security-rest/pom.xml rename to spring-security-modules/spring-security-web-rest/pom.xml index 9410f08378..d2468152da 100644 --- a/spring-security-modules/spring-security-rest/pom.xml +++ b/spring-security-modules/spring-security-web-rest/pom.xml @@ -2,9 +2,9 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <artifactId>spring-security-rest</artifactId> + <artifactId>spring-security-web-rest</artifactId> <version>0.1-SNAPSHOT</version> - <name>spring-security-rest</name> + <name>spring-security-web-rest</name> <packaging>war</packaging> <parent> diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/errorhandling/ApiError.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/errorhandling/ApiError.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/errorhandling/ApiError.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/errorhandling/ApiError.java diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/errorhandling/CustomRestExceptionHandler.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/errorhandling/CustomRestExceptionHandler.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/errorhandling/CustomRestExceptionHandler.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/errorhandling/CustomRestExceptionHandler.java diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/persistence/model/Foo.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/persistence/model/Foo.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/persistence/model/Foo.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/persistence/model/Foo.java diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/security/SecurityJavaConfig.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/security/SecurityJavaConfig.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/security/SecurityJavaConfig.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/security/SecurityJavaConfig.java diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/security/SecurityWebApplicationInitializer.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/security/SecurityWebApplicationInitializer.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/security/SecurityWebApplicationInitializer.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/security/SecurityWebApplicationInitializer.java diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/security/web/MySavedRequestAwareAuthenticationSuccessHandler.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/security/web/MySavedRequestAwareAuthenticationSuccessHandler.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/security/web/MySavedRequestAwareAuthenticationSuccessHandler.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/security/web/MySavedRequestAwareAuthenticationSuccessHandler.java diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/security/web/RestAuthenticationEntryPoint.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/security/web/RestAuthenticationEntryPoint.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/security/web/RestAuthenticationEntryPoint.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/security/web/RestAuthenticationEntryPoint.java diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/spring/ClientWebConfig.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/spring/ClientWebConfig.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/spring/ClientWebConfig.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/spring/ClientWebConfig.java diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/spring/SecurityXmlConfig.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/spring/SecurityXmlConfig.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/spring/SecurityXmlConfig.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/spring/SecurityXmlConfig.java diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/spring/WebConfig.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/spring/WebConfig.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/spring/WebConfig.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/spring/WebConfig.java diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/swagger2/SwaggerConfig.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/swagger2/SwaggerConfig.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/swagger2/SwaggerConfig.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/swagger2/SwaggerConfig.java diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/web/controller/AsyncController.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/web/controller/AsyncController.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/web/controller/AsyncController.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/web/controller/AsyncController.java diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/web/controller/CustomController.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/web/controller/CustomController.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/web/controller/CustomController.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/web/controller/CustomController.java diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/web/controller/FooController.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/web/controller/FooController.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/web/controller/FooController.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/web/controller/FooController.java diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/web/controller/RootController.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/web/controller/RootController.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/web/controller/RootController.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/web/controller/RootController.java diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/web/error/CustomAccessDeniedHandler.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/web/error/CustomAccessDeniedHandler.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/web/error/CustomAccessDeniedHandler.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/web/error/CustomAccessDeniedHandler.java diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/web/error/RestResponseEntityExceptionHandler.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/web/error/RestResponseEntityExceptionHandler.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/web/error/RestResponseEntityExceptionHandler.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/web/error/RestResponseEntityExceptionHandler.java diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/web/exception/MyResourceNotFoundException.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/web/exception/MyResourceNotFoundException.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/web/exception/MyResourceNotFoundException.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/web/exception/MyResourceNotFoundException.java diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/web/service/AsyncService.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/web/service/AsyncService.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/web/service/AsyncService.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/web/service/AsyncService.java diff --git a/spring-security-modules/spring-security-rest/src/main/java/com/baeldung/web/service/AsyncServiceImpl.java b/spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/web/service/AsyncServiceImpl.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/java/com/baeldung/web/service/AsyncServiceImpl.java rename to spring-security-modules/spring-security-web-rest/src/main/java/com/baeldung/web/service/AsyncServiceImpl.java diff --git a/spring-security-modules/spring-security-rest/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-rest/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-rest/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-rest/src/main/resources/webSecurityConfig.xml b/spring-security-modules/spring-security-web-rest/src/main/resources/webSecurityConfig.xml similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/resources/webSecurityConfig.xml rename to spring-security-modules/spring-security-web-rest/src/main/resources/webSecurityConfig.xml diff --git a/spring-security-modules/spring-security-rest/src/main/webapp/WEB-INF/api-servlet.xml b/spring-security-modules/spring-security-web-rest/src/main/webapp/WEB-INF/api-servlet.xml similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/webapp/WEB-INF/api-servlet.xml rename to spring-security-modules/spring-security-web-rest/src/main/webapp/WEB-INF/api-servlet.xml diff --git a/spring-security-modules/spring-security-rest/src/main/webapp/WEB-INF/view/csrfAttacker.jsp b/spring-security-modules/spring-security-web-rest/src/main/webapp/WEB-INF/view/csrfAttacker.jsp similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/webapp/WEB-INF/view/csrfAttacker.jsp rename to spring-security-modules/spring-security-web-rest/src/main/webapp/WEB-INF/view/csrfAttacker.jsp diff --git a/spring-security-modules/spring-security-rest/src/main/webapp/WEB-INF/web.xml b/spring-security-modules/spring-security-web-rest/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-security-modules/spring-security-rest/src/main/webapp/WEB-INF/web.xml rename to spring-security-modules/spring-security-web-rest/src/main/webapp/WEB-INF/web.xml diff --git a/spring-security-modules/spring-security-rest/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-rest/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-rest/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-rest/src/test/java/com/baeldung/errorhandling/FooLiveTest.java b/spring-security-modules/spring-security-web-rest/src/test/java/com/baeldung/errorhandling/FooLiveTest.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/test/java/com/baeldung/errorhandling/FooLiveTest.java rename to spring-security-modules/spring-security-web-rest/src/test/java/com/baeldung/errorhandling/FooLiveTest.java diff --git a/spring-security-modules/spring-security-rest/src/test/java/com/baeldung/web/AsyncControllerIntegrationTest.java b/spring-security-modules/spring-security-web-rest/src/test/java/com/baeldung/web/AsyncControllerIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/test/java/com/baeldung/web/AsyncControllerIntegrationTest.java rename to spring-security-modules/spring-security-web-rest/src/test/java/com/baeldung/web/AsyncControllerIntegrationTest.java diff --git a/spring-security-modules/spring-security-rest/src/test/java/com/baeldung/web/SwaggerLiveTest.java b/spring-security-modules/spring-security-web-rest/src/test/java/com/baeldung/web/SwaggerLiveTest.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/test/java/com/baeldung/web/SwaggerLiveTest.java rename to spring-security-modules/spring-security-web-rest/src/test/java/com/baeldung/web/SwaggerLiveTest.java diff --git a/spring-security-modules/spring-security-rest/src/test/java/com/baeldung/web/TestConfig.java b/spring-security-modules/spring-security-web-rest/src/test/java/com/baeldung/web/TestConfig.java similarity index 100% rename from spring-security-modules/spring-security-rest/src/test/java/com/baeldung/web/TestConfig.java rename to spring-security-modules/spring-security-web-rest/src/test/java/com/baeldung/web/TestConfig.java diff --git a/spring-security-modules/spring-security-rest/src/test/resources/.gitignore b/spring-security-modules/spring-security-web-rest/src/test/resources/.gitignore similarity index 100% rename from spring-security-modules/spring-security-rest/src/test/resources/.gitignore rename to spring-security-modules/spring-security-web-rest/src/test/resources/.gitignore From 526d66067f50eb52d6c8cac5056e00f98b9b4944 Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Tue, 18 Aug 2020 15:37:55 +0530 Subject: [PATCH 149/156] JAVA-69: Renamed spring-security-rest-basic-auth to spring-security-web-rest-basic-auth --- .../.gitignore | 0 .../README.md | 0 .../pom.xml | 4 ++-- .../com/baeldung/basic/MyBasicAuthenticationEntryPoint.java | 0 .../HttpComponentsClientHttpRequestFactoryBasicAuth.java | 0 .../main/java/com/baeldung/client/RestTemplateFactory.java | 0 .../main/java/com/baeldung/client/spring/ClientConfig.java | 0 .../src/main/java/com/baeldung/filter/CustomFilter.java | 0 .../baeldung/filter/CustomWebSecurityConfigurerAdapter.java | 0 .../MySavedRequestAwareAuthenticationSuccessHandler.java | 0 .../com/baeldung/security/RestAuthenticationEntryPoint.java | 0 .../src/main/java/com/baeldung/spring/SecSecurityConfig.java | 0 .../src/main/java/com/baeldung/spring/WebConfig.java | 0 .../main/java/com/baeldung/web/controller/BarController.java | 0 .../main/java/com/baeldung/web/controller/FooController.java | 0 .../src/main/java/com/baeldung/web/dto/Bar.java | 0 .../src/main/java/com/baeldung/web/dto/Foo.java | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/webSecurityConfig.xml | 0 .../src/main/webapp/WEB-INF/api-servlet.xml | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../src/test/java/com/baeldung/SpringContextTest.java | 0 .../src/test/resources/.gitignore | 0 23 files changed, 2 insertions(+), 2 deletions(-) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/.gitignore (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/README.md (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/pom.xml (98%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/main/java/com/baeldung/basic/MyBasicAuthenticationEntryPoint.java (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/main/java/com/baeldung/client/HttpComponentsClientHttpRequestFactoryBasicAuth.java (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/main/java/com/baeldung/client/RestTemplateFactory.java (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/main/java/com/baeldung/client/spring/ClientConfig.java (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/main/java/com/baeldung/filter/CustomFilter.java (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/main/java/com/baeldung/filter/CustomWebSecurityConfigurerAdapter.java (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/main/java/com/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/main/java/com/baeldung/security/RestAuthenticationEntryPoint.java (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/main/java/com/baeldung/spring/SecSecurityConfig.java (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/main/java/com/baeldung/spring/WebConfig.java (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/main/java/com/baeldung/web/controller/BarController.java (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/main/java/com/baeldung/web/controller/FooController.java (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/main/java/com/baeldung/web/dto/Bar.java (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/main/java/com/baeldung/web/dto/Foo.java (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/main/resources/webSecurityConfig.xml (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/main/webapp/WEB-INF/api-servlet.xml (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/main/webapp/WEB-INF/web.xml (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/test/java/com/baeldung/SpringContextTest.java (100%) rename spring-security-modules/{spring-security-rest-basic-auth => spring-security-web-rest-basic-auth}/src/test/resources/.gitignore (100%) diff --git a/spring-security-modules/spring-security-rest-basic-auth/.gitignore b/spring-security-modules/spring-security-web-rest-basic-auth/.gitignore similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/.gitignore rename to spring-security-modules/spring-security-web-rest-basic-auth/.gitignore diff --git a/spring-security-modules/spring-security-rest-basic-auth/README.md b/spring-security-modules/spring-security-web-rest-basic-auth/README.md similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/README.md rename to spring-security-modules/spring-security-web-rest-basic-auth/README.md diff --git a/spring-security-modules/spring-security-rest-basic-auth/pom.xml b/spring-security-modules/spring-security-web-rest-basic-auth/pom.xml similarity index 98% rename from spring-security-modules/spring-security-rest-basic-auth/pom.xml rename to spring-security-modules/spring-security-web-rest-basic-auth/pom.xml index 416882b3d4..0dc0b9cc42 100644 --- a/spring-security-modules/spring-security-rest-basic-auth/pom.xml +++ b/spring-security-modules/spring-security-web-rest-basic-auth/pom.xml @@ -2,9 +2,9 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <artifactId>spring-security-rest-basic-auth</artifactId> + <artifactId>spring-security-web-rest-basic-auth</artifactId> <version>0.2-SNAPSHOT</version> - <name>spring-security-rest-basic-auth</name> + <name>spring-security-web-rest-basic-auth</name> <packaging>war</packaging> <parent> diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/basic/MyBasicAuthenticationEntryPoint.java b/spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/basic/MyBasicAuthenticationEntryPoint.java similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/basic/MyBasicAuthenticationEntryPoint.java rename to spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/basic/MyBasicAuthenticationEntryPoint.java diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/client/HttpComponentsClientHttpRequestFactoryBasicAuth.java b/spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/client/HttpComponentsClientHttpRequestFactoryBasicAuth.java similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/client/HttpComponentsClientHttpRequestFactoryBasicAuth.java rename to spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/client/HttpComponentsClientHttpRequestFactoryBasicAuth.java diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/client/RestTemplateFactory.java b/spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/client/RestTemplateFactory.java similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/client/RestTemplateFactory.java rename to spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/client/RestTemplateFactory.java diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/client/spring/ClientConfig.java b/spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/client/spring/ClientConfig.java similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/client/spring/ClientConfig.java rename to spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/client/spring/ClientConfig.java diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/filter/CustomFilter.java b/spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/filter/CustomFilter.java similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/filter/CustomFilter.java rename to spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/filter/CustomFilter.java diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/filter/CustomWebSecurityConfigurerAdapter.java b/spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/filter/CustomWebSecurityConfigurerAdapter.java similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/filter/CustomWebSecurityConfigurerAdapter.java rename to spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/filter/CustomWebSecurityConfigurerAdapter.java diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java b/spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java rename to spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/security/RestAuthenticationEntryPoint.java b/spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/security/RestAuthenticationEntryPoint.java similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/security/RestAuthenticationEntryPoint.java rename to spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/security/RestAuthenticationEntryPoint.java diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/spring/SecSecurityConfig.java b/spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/spring/SecSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/spring/SecSecurityConfig.java rename to spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/spring/SecSecurityConfig.java diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/spring/WebConfig.java b/spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/spring/WebConfig.java similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/spring/WebConfig.java rename to spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/spring/WebConfig.java diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/web/controller/BarController.java b/spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/web/controller/BarController.java similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/web/controller/BarController.java rename to spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/web/controller/BarController.java diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/web/controller/FooController.java b/spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/web/controller/FooController.java similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/web/controller/FooController.java rename to spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/web/controller/FooController.java diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/web/dto/Bar.java b/spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/web/dto/Bar.java similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/web/dto/Bar.java rename to spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/web/dto/Bar.java diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/web/dto/Foo.java b/spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/web/dto/Foo.java similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/main/java/com/baeldung/web/dto/Foo.java rename to spring-security-modules/spring-security-web-rest-basic-auth/src/main/java/com/baeldung/web/dto/Foo.java diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-rest-basic-auth/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-rest-basic-auth/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/main/resources/webSecurityConfig.xml b/spring-security-modules/spring-security-web-rest-basic-auth/src/main/resources/webSecurityConfig.xml similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/main/resources/webSecurityConfig.xml rename to spring-security-modules/spring-security-web-rest-basic-auth/src/main/resources/webSecurityConfig.xml diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/main/webapp/WEB-INF/api-servlet.xml b/spring-security-modules/spring-security-web-rest-basic-auth/src/main/webapp/WEB-INF/api-servlet.xml similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/main/webapp/WEB-INF/api-servlet.xml rename to spring-security-modules/spring-security-web-rest-basic-auth/src/main/webapp/WEB-INF/api-servlet.xml diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/main/webapp/WEB-INF/web.xml b/spring-security-modules/spring-security-web-rest-basic-auth/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/main/webapp/WEB-INF/web.xml rename to spring-security-modules/spring-security-web-rest-basic-auth/src/main/webapp/WEB-INF/web.xml diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-rest-basic-auth/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-rest-basic-auth/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-rest-basic-auth/src/test/resources/.gitignore b/spring-security-modules/spring-security-web-rest-basic-auth/src/test/resources/.gitignore similarity index 100% rename from spring-security-modules/spring-security-rest-basic-auth/src/test/resources/.gitignore rename to spring-security-modules/spring-security-web-rest-basic-auth/src/test/resources/.gitignore From 61dd35dc835df05d441ec84669142b4535b1978c Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Tue, 18 Aug 2020 15:38:21 +0530 Subject: [PATCH 150/156] JAVA-69: Renamed spring-security-rest-custom to spring-security-web-rest-custom --- .../README.md | 0 .../pom.xml | 4 ++-- .../main/java/com/baeldung/config/MainWebAppInitializer.java | 0 .../java/com/baeldung/config/child/MethodSecurityConfig.java | 0 .../src/main/java/com/baeldung/config/child/WebConfig.java | 0 .../main/java/com/baeldung/config/parent/SecurityConfig.java | 0 .../main/java/com/baeldung/config/parent/ServiceConfig.java | 0 .../main/java/com/baeldung/security/AuthenticationFacade.java | 0 .../com/baeldung/security/CustomAuthenticationProvider.java | 0 .../java/com/baeldung/security/IAuthenticationFacade.java | 0 .../MySavedRequestAwareAuthenticationSuccessHandler.java | 0 .../com/baeldung/security/RestAuthenticationEntryPoint.java | 0 .../src/main/java/com/baeldung/service/FooService.java | 0 .../src/main/java/com/baeldung/service/IFooService.java | 0 .../src/main/java/com/baeldung/service/RunAsService.java | 0 .../main/java/com/baeldung/web/controller/FooController.java | 0 .../web/controller/GetUserWithCustomInterfaceController.java | 0 .../controller/GetUserWithHTTPServletRequestController.java | 0 .../java/com/baeldung/web/controller/RunAsController.java | 0 .../java/com/baeldung/web/controller/SecurityController.java | 0 .../java/com/baeldung/web/controller/SecurityController1.java | 0 .../java/com/baeldung/web/controller/SecurityController3.java | 0 .../main/java/com/baeldung/web/controller/ViewController.java | 0 .../src/main/java/com/baeldung/web/dto/Foo.java | 0 .../src/main/resources/foo.properties | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/prop.xml | 0 .../src/main/resources/webSecurityConfig.xml | 0 .../src/main/webapp/WEB-INF/templates/index.html | 0 .../src/main/webapp/WEB-INF/templates/runas.html | 0 .../src/main/webapp/WEB-INF/web_old.xml | 0 .../src/test/resources/.gitignore | 0 32 files changed, 2 insertions(+), 2 deletions(-) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/README.md (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/pom.xml (98%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/config/MainWebAppInitializer.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/config/child/MethodSecurityConfig.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/config/child/WebConfig.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/config/parent/SecurityConfig.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/config/parent/ServiceConfig.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/security/AuthenticationFacade.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/security/CustomAuthenticationProvider.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/security/IAuthenticationFacade.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/security/RestAuthenticationEntryPoint.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/service/FooService.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/service/IFooService.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/service/RunAsService.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/web/controller/FooController.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/web/controller/GetUserWithCustomInterfaceController.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/web/controller/GetUserWithHTTPServletRequestController.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/web/controller/RunAsController.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/web/controller/SecurityController.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/web/controller/SecurityController1.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/web/controller/SecurityController3.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/web/controller/ViewController.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/java/com/baeldung/web/dto/Foo.java (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/resources/foo.properties (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/resources/prop.xml (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/resources/webSecurityConfig.xml (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/webapp/WEB-INF/templates/index.html (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/webapp/WEB-INF/templates/runas.html (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/main/webapp/WEB-INF/web_old.xml (100%) rename spring-security-modules/{spring-security-rest-custom => spring-security-web-rest-custom}/src/test/resources/.gitignore (100%) diff --git a/spring-security-modules/spring-security-rest-custom/README.md b/spring-security-modules/spring-security-web-rest-custom/README.md similarity index 100% rename from spring-security-modules/spring-security-rest-custom/README.md rename to spring-security-modules/spring-security-web-rest-custom/README.md diff --git a/spring-security-modules/spring-security-rest-custom/pom.xml b/spring-security-modules/spring-security-web-rest-custom/pom.xml similarity index 98% rename from spring-security-modules/spring-security-rest-custom/pom.xml rename to spring-security-modules/spring-security-web-rest-custom/pom.xml index b4f0f93bb6..0ba7f95de7 100644 --- a/spring-security-modules/spring-security-rest-custom/pom.xml +++ b/spring-security-modules/spring-security-web-rest-custom/pom.xml @@ -2,9 +2,9 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <artifactId>spring-security-rest-custom</artifactId> + <artifactId>spring-security-web-rest-custom</artifactId> <version>0.1-SNAPSHOT</version> - <name>spring-security-rest-custom</name> + <name>spring-security-web-rest-custom</name> <packaging>war</packaging> <parent> diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/config/MainWebAppInitializer.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/config/MainWebAppInitializer.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/config/MainWebAppInitializer.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/config/MainWebAppInitializer.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/config/child/MethodSecurityConfig.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/config/child/MethodSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/config/child/MethodSecurityConfig.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/config/child/MethodSecurityConfig.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/config/child/WebConfig.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/config/child/WebConfig.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/config/child/WebConfig.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/config/child/WebConfig.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/config/parent/SecurityConfig.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/config/parent/SecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/config/parent/SecurityConfig.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/config/parent/SecurityConfig.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/config/parent/ServiceConfig.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/config/parent/ServiceConfig.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/config/parent/ServiceConfig.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/config/parent/ServiceConfig.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/security/AuthenticationFacade.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/security/AuthenticationFacade.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/security/AuthenticationFacade.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/security/AuthenticationFacade.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/security/CustomAuthenticationProvider.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/security/CustomAuthenticationProvider.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/security/CustomAuthenticationProvider.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/security/CustomAuthenticationProvider.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/security/IAuthenticationFacade.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/security/IAuthenticationFacade.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/security/IAuthenticationFacade.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/security/IAuthenticationFacade.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/security/RestAuthenticationEntryPoint.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/security/RestAuthenticationEntryPoint.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/security/RestAuthenticationEntryPoint.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/security/RestAuthenticationEntryPoint.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/service/FooService.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/service/FooService.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/service/FooService.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/service/FooService.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/service/IFooService.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/service/IFooService.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/service/IFooService.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/service/IFooService.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/service/RunAsService.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/service/RunAsService.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/service/RunAsService.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/service/RunAsService.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/web/controller/FooController.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/web/controller/FooController.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/web/controller/FooController.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/web/controller/FooController.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/web/controller/GetUserWithCustomInterfaceController.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/web/controller/GetUserWithCustomInterfaceController.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/web/controller/GetUserWithCustomInterfaceController.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/web/controller/GetUserWithCustomInterfaceController.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/web/controller/GetUserWithHTTPServletRequestController.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/web/controller/GetUserWithHTTPServletRequestController.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/web/controller/GetUserWithHTTPServletRequestController.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/web/controller/GetUserWithHTTPServletRequestController.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/web/controller/RunAsController.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/web/controller/RunAsController.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/web/controller/RunAsController.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/web/controller/RunAsController.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/web/controller/SecurityController.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/web/controller/SecurityController.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/web/controller/SecurityController.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/web/controller/SecurityController.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/web/controller/SecurityController1.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/web/controller/SecurityController1.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/web/controller/SecurityController1.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/web/controller/SecurityController1.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/web/controller/SecurityController3.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/web/controller/SecurityController3.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/web/controller/SecurityController3.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/web/controller/SecurityController3.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/web/controller/ViewController.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/web/controller/ViewController.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/web/controller/ViewController.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/web/controller/ViewController.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/web/dto/Foo.java b/spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/web/dto/Foo.java similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/java/com/baeldung/web/dto/Foo.java rename to spring-security-modules/spring-security-web-rest-custom/src/main/java/com/baeldung/web/dto/Foo.java diff --git a/spring-security-modules/spring-security-rest-custom/src/main/resources/foo.properties b/spring-security-modules/spring-security-web-rest-custom/src/main/resources/foo.properties similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/resources/foo.properties rename to spring-security-modules/spring-security-web-rest-custom/src/main/resources/foo.properties diff --git a/spring-security-modules/spring-security-rest-custom/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-rest-custom/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-rest-custom/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-rest-custom/src/main/resources/prop.xml b/spring-security-modules/spring-security-web-rest-custom/src/main/resources/prop.xml similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/resources/prop.xml rename to spring-security-modules/spring-security-web-rest-custom/src/main/resources/prop.xml diff --git a/spring-security-modules/spring-security-rest-custom/src/main/resources/webSecurityConfig.xml b/spring-security-modules/spring-security-web-rest-custom/src/main/resources/webSecurityConfig.xml similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/resources/webSecurityConfig.xml rename to spring-security-modules/spring-security-web-rest-custom/src/main/resources/webSecurityConfig.xml diff --git a/spring-security-modules/spring-security-rest-custom/src/main/webapp/WEB-INF/templates/index.html b/spring-security-modules/spring-security-web-rest-custom/src/main/webapp/WEB-INF/templates/index.html similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/webapp/WEB-INF/templates/index.html rename to spring-security-modules/spring-security-web-rest-custom/src/main/webapp/WEB-INF/templates/index.html diff --git a/spring-security-modules/spring-security-rest-custom/src/main/webapp/WEB-INF/templates/runas.html b/spring-security-modules/spring-security-web-rest-custom/src/main/webapp/WEB-INF/templates/runas.html similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/webapp/WEB-INF/templates/runas.html rename to spring-security-modules/spring-security-web-rest-custom/src/main/webapp/WEB-INF/templates/runas.html diff --git a/spring-security-modules/spring-security-rest-custom/src/main/webapp/WEB-INF/web_old.xml b/spring-security-modules/spring-security-web-rest-custom/src/main/webapp/WEB-INF/web_old.xml similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/main/webapp/WEB-INF/web_old.xml rename to spring-security-modules/spring-security-web-rest-custom/src/main/webapp/WEB-INF/web_old.xml diff --git a/spring-security-modules/spring-security-rest-custom/src/test/resources/.gitignore b/spring-security-modules/spring-security-web-rest-custom/src/test/resources/.gitignore similarity index 100% rename from spring-security-modules/spring-security-rest-custom/src/test/resources/.gitignore rename to spring-security-modules/spring-security-web-rest-custom/src/test/resources/.gitignore From ec76361474cbe8d4afdd0d06e98c1dfa871d72b6 Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Tue, 18 Aug 2020 15:38:54 +0530 Subject: [PATCH 151/156] JAVA-69: Renamed spring-security-thymeleaf to spring-security-web-thymeleaf --- .../README.MD => spring-security-web-thymeleaf/README.md} | 0 .../pom.xml | 4 ++-- .../springsecuritythymeleaf/SecurityConfiguration.java | 0 .../SpringSecurityThymeleafApplication.java | 0 .../com/baeldung/springsecuritythymeleaf/ViewController.java | 0 .../src/main/resources/application.properties | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/templates/index.html | 0 .../src/main/resources/templates/login.html | 0 .../SpringSecurityThymeleafApplicationIntegrationTest.java | 0 .../ViewControllerIntegrationTest.java | 0 11 files changed, 2 insertions(+), 2 deletions(-) rename spring-security-modules/{spring-security-thymeleaf/README.MD => spring-security-web-thymeleaf/README.md} (100%) rename spring-security-modules/{spring-security-thymeleaf => spring-security-web-thymeleaf}/pom.xml (94%) rename spring-security-modules/{spring-security-thymeleaf => spring-security-web-thymeleaf}/src/main/java/com/baeldung/springsecuritythymeleaf/SecurityConfiguration.java (100%) rename spring-security-modules/{spring-security-thymeleaf => spring-security-web-thymeleaf}/src/main/java/com/baeldung/springsecuritythymeleaf/SpringSecurityThymeleafApplication.java (100%) rename spring-security-modules/{spring-security-thymeleaf => spring-security-web-thymeleaf}/src/main/java/com/baeldung/springsecuritythymeleaf/ViewController.java (100%) rename spring-security-modules/{spring-security-thymeleaf => spring-security-web-thymeleaf}/src/main/resources/application.properties (100%) rename spring-security-modules/{spring-security-thymeleaf => spring-security-web-thymeleaf}/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-thymeleaf => spring-security-web-thymeleaf}/src/main/resources/templates/index.html (100%) rename spring-security-modules/{spring-security-thymeleaf => spring-security-web-thymeleaf}/src/main/resources/templates/login.html (100%) rename spring-security-modules/{spring-security-thymeleaf => spring-security-web-thymeleaf}/src/test/java/com/baeldung/springsecuritythymeleaf/SpringSecurityThymeleafApplicationIntegrationTest.java (100%) rename spring-security-modules/{spring-security-thymeleaf => spring-security-web-thymeleaf}/src/test/java/com/baeldung/springsecuritythymeleaf/ViewControllerIntegrationTest.java (100%) diff --git a/spring-security-modules/spring-security-thymeleaf/README.MD b/spring-security-modules/spring-security-web-thymeleaf/README.md similarity index 100% rename from spring-security-modules/spring-security-thymeleaf/README.MD rename to spring-security-modules/spring-security-web-thymeleaf/README.md diff --git a/spring-security-modules/spring-security-thymeleaf/pom.xml b/spring-security-modules/spring-security-web-thymeleaf/pom.xml similarity index 94% rename from spring-security-modules/spring-security-thymeleaf/pom.xml rename to spring-security-modules/spring-security-web-thymeleaf/pom.xml index a4ecbaff21..196ec0b86f 100644 --- a/spring-security-modules/spring-security-thymeleaf/pom.xml +++ b/spring-security-modules/spring-security-web-thymeleaf/pom.xml @@ -2,9 +2,9 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <artifactId>spring-security-thymeleaf</artifactId> + <artifactId>spring-security-web-thymeleaf</artifactId> <version>0.0.1-SNAPSHOT</version> - <name>spring-security-thymeleaf</name> + <name>spring-security-web-thymeleaf</name> <packaging>jar</packaging> <description>Spring Security with Thymeleaf tutorial</description> diff --git a/spring-security-modules/spring-security-thymeleaf/src/main/java/com/baeldung/springsecuritythymeleaf/SecurityConfiguration.java b/spring-security-modules/spring-security-web-thymeleaf/src/main/java/com/baeldung/springsecuritythymeleaf/SecurityConfiguration.java similarity index 100% rename from spring-security-modules/spring-security-thymeleaf/src/main/java/com/baeldung/springsecuritythymeleaf/SecurityConfiguration.java rename to spring-security-modules/spring-security-web-thymeleaf/src/main/java/com/baeldung/springsecuritythymeleaf/SecurityConfiguration.java diff --git a/spring-security-modules/spring-security-thymeleaf/src/main/java/com/baeldung/springsecuritythymeleaf/SpringSecurityThymeleafApplication.java b/spring-security-modules/spring-security-web-thymeleaf/src/main/java/com/baeldung/springsecuritythymeleaf/SpringSecurityThymeleafApplication.java similarity index 100% rename from spring-security-modules/spring-security-thymeleaf/src/main/java/com/baeldung/springsecuritythymeleaf/SpringSecurityThymeleafApplication.java rename to spring-security-modules/spring-security-web-thymeleaf/src/main/java/com/baeldung/springsecuritythymeleaf/SpringSecurityThymeleafApplication.java diff --git a/spring-security-modules/spring-security-thymeleaf/src/main/java/com/baeldung/springsecuritythymeleaf/ViewController.java b/spring-security-modules/spring-security-web-thymeleaf/src/main/java/com/baeldung/springsecuritythymeleaf/ViewController.java similarity index 100% rename from spring-security-modules/spring-security-thymeleaf/src/main/java/com/baeldung/springsecuritythymeleaf/ViewController.java rename to spring-security-modules/spring-security-web-thymeleaf/src/main/java/com/baeldung/springsecuritythymeleaf/ViewController.java diff --git a/spring-security-modules/spring-security-thymeleaf/src/main/resources/application.properties b/spring-security-modules/spring-security-web-thymeleaf/src/main/resources/application.properties similarity index 100% rename from spring-security-modules/spring-security-thymeleaf/src/main/resources/application.properties rename to spring-security-modules/spring-security-web-thymeleaf/src/main/resources/application.properties diff --git a/spring-security-modules/spring-security-thymeleaf/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-thymeleaf/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-thymeleaf/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-thymeleaf/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-thymeleaf/src/main/resources/templates/index.html b/spring-security-modules/spring-security-web-thymeleaf/src/main/resources/templates/index.html similarity index 100% rename from spring-security-modules/spring-security-thymeleaf/src/main/resources/templates/index.html rename to spring-security-modules/spring-security-web-thymeleaf/src/main/resources/templates/index.html diff --git a/spring-security-modules/spring-security-thymeleaf/src/main/resources/templates/login.html b/spring-security-modules/spring-security-web-thymeleaf/src/main/resources/templates/login.html similarity index 100% rename from spring-security-modules/spring-security-thymeleaf/src/main/resources/templates/login.html rename to spring-security-modules/spring-security-web-thymeleaf/src/main/resources/templates/login.html diff --git a/spring-security-modules/spring-security-thymeleaf/src/test/java/com/baeldung/springsecuritythymeleaf/SpringSecurityThymeleafApplicationIntegrationTest.java b/spring-security-modules/spring-security-web-thymeleaf/src/test/java/com/baeldung/springsecuritythymeleaf/SpringSecurityThymeleafApplicationIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-thymeleaf/src/test/java/com/baeldung/springsecuritythymeleaf/SpringSecurityThymeleafApplicationIntegrationTest.java rename to spring-security-modules/spring-security-web-thymeleaf/src/test/java/com/baeldung/springsecuritythymeleaf/SpringSecurityThymeleafApplicationIntegrationTest.java diff --git a/spring-security-modules/spring-security-thymeleaf/src/test/java/com/baeldung/springsecuritythymeleaf/ViewControllerIntegrationTest.java b/spring-security-modules/spring-security-web-thymeleaf/src/test/java/com/baeldung/springsecuritythymeleaf/ViewControllerIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-thymeleaf/src/test/java/com/baeldung/springsecuritythymeleaf/ViewControllerIntegrationTest.java rename to spring-security-modules/spring-security-web-thymeleaf/src/test/java/com/baeldung/springsecuritythymeleaf/ViewControllerIntegrationTest.java From 796b49b348af523baa367a3f3e01b6a9ed66fe3b Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Tue, 18 Aug 2020 15:39:46 +0530 Subject: [PATCH 152/156] JAVA-69: Renamed spring-security-x509 to spring-security-web-x509 --- .../README.md | 0 .../pom.xml | 8 ++++---- .../spring-security-web-x509-basic-auth}/pom.xml | 6 +++--- .../spring/security/x509/UserController.java | 0 .../security/x509/X509AuthenticationServer.java | 0 .../src/main/resources/application.properties | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/templates/user.html | 0 .../test/java/com/baeldung/SpringContextTest.java | 0 .../X509AuthenticationServerIntegrationTest.java | 0 .../spring-security-web-x509-client-auth}/pom.xml | 6 +++--- .../spring/security/x509/UserController.java | 0 .../security/x509/X509AuthenticationServer.java | 0 .../src/main/resources/application.properties | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/templates/user.html | 0 .../test/java/com/baeldung/SpringContextTest.java | 0 .../X509AuthenticationServerIntegrationTest.java | 0 .../store/clientBob.p12 | Bin .../store/keystore.jks | Bin .../store/localhost.ext | 0 .../store/rootCA.crt | 0 .../store/truststore.jks | Bin 23 files changed, 10 insertions(+), 10 deletions(-) rename spring-security-modules/{spring-security-x509 => spring-security-web-x509}/README.md (100%) rename spring-security-modules/{spring-security-x509 => spring-security-web-x509}/pom.xml (83%) rename spring-security-modules/{spring-security-x509/spring-security-x509-basic-auth => spring-security-web-x509/spring-security-web-x509-basic-auth}/pom.xml (87%) rename spring-security-modules/{spring-security-x509/spring-security-x509-basic-auth => spring-security-web-x509/spring-security-web-x509-basic-auth}/src/main/java/com/baeldung/spring/security/x509/UserController.java (100%) rename spring-security-modules/{spring-security-x509/spring-security-x509-basic-auth => spring-security-web-x509/spring-security-web-x509-basic-auth}/src/main/java/com/baeldung/spring/security/x509/X509AuthenticationServer.java (100%) rename spring-security-modules/{spring-security-x509/spring-security-x509-basic-auth => spring-security-web-x509/spring-security-web-x509-basic-auth}/src/main/resources/application.properties (100%) rename spring-security-modules/{spring-security-x509/spring-security-x509-basic-auth => spring-security-web-x509/spring-security-web-x509-basic-auth}/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-x509/spring-security-x509-basic-auth => spring-security-web-x509/spring-security-web-x509-basic-auth}/src/main/resources/templates/user.html (100%) rename spring-security-modules/{spring-security-x509/spring-security-x509-basic-auth => spring-security-web-x509/spring-security-web-x509-basic-auth}/src/test/java/com/baeldung/SpringContextTest.java (100%) rename spring-security-modules/{spring-security-x509/spring-security-x509-basic-auth => spring-security-web-x509/spring-security-web-x509-basic-auth}/src/test/java/com/baeldung/spring/security/x509/X509AuthenticationServerIntegrationTest.java (100%) rename spring-security-modules/{spring-security-x509/spring-security-x509-client-auth => spring-security-web-x509/spring-security-web-x509-client-auth}/pom.xml (94%) rename spring-security-modules/{spring-security-x509/spring-security-x509-client-auth => spring-security-web-x509/spring-security-web-x509-client-auth}/src/main/java/com/baeldung/spring/security/x509/UserController.java (100%) rename spring-security-modules/{spring-security-x509/spring-security-x509-client-auth => spring-security-web-x509/spring-security-web-x509-client-auth}/src/main/java/com/baeldung/spring/security/x509/X509AuthenticationServer.java (100%) rename spring-security-modules/{spring-security-x509/spring-security-x509-client-auth => spring-security-web-x509/spring-security-web-x509-client-auth}/src/main/resources/application.properties (100%) rename spring-security-modules/{spring-security-x509/spring-security-x509-client-auth => spring-security-web-x509/spring-security-web-x509-client-auth}/src/main/resources/logback.xml (100%) rename spring-security-modules/{spring-security-x509/spring-security-x509-client-auth => spring-security-web-x509/spring-security-web-x509-client-auth}/src/main/resources/templates/user.html (100%) rename spring-security-modules/{spring-security-x509/spring-security-x509-client-auth => spring-security-web-x509/spring-security-web-x509-client-auth}/src/test/java/com/baeldung/SpringContextTest.java (100%) rename spring-security-modules/{spring-security-x509/spring-security-x509-client-auth => spring-security-web-x509/spring-security-web-x509-client-auth}/src/test/java/com/baeldung/spring/security/x509/X509AuthenticationServerIntegrationTest.java (100%) rename spring-security-modules/{spring-security-x509 => spring-security-web-x509}/store/clientBob.p12 (100%) rename spring-security-modules/{spring-security-x509 => spring-security-web-x509}/store/keystore.jks (100%) rename spring-security-modules/{spring-security-x509 => spring-security-web-x509}/store/localhost.ext (100%) rename spring-security-modules/{spring-security-x509 => spring-security-web-x509}/store/rootCA.crt (100%) rename spring-security-modules/{spring-security-x509 => spring-security-web-x509}/store/truststore.jks (100%) diff --git a/spring-security-modules/spring-security-x509/README.md b/spring-security-modules/spring-security-web-x509/README.md similarity index 100% rename from spring-security-modules/spring-security-x509/README.md rename to spring-security-modules/spring-security-web-x509/README.md diff --git a/spring-security-modules/spring-security-x509/pom.xml b/spring-security-modules/spring-security-web-x509/pom.xml similarity index 83% rename from spring-security-modules/spring-security-x509/pom.xml rename to spring-security-modules/spring-security-web-x509/pom.xml index d4132f058d..045c0aba6a 100644 --- a/spring-security-modules/spring-security-x509/pom.xml +++ b/spring-security-modules/spring-security-web-x509/pom.xml @@ -2,9 +2,9 @@ <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <artifactId>spring-security-x509</artifactId> + <artifactId>spring-security-web-x509</artifactId> <version>0.0.1-SNAPSHOT</version> - <name>spring-security-x509</name> + <name>spring-security-web-x509</name> <packaging>pom</packaging> <parent> @@ -15,8 +15,8 @@ </parent> <modules> - <module>spring-security-x509-basic-auth</module> - <module>spring-security-x509-client-auth</module> + <module>spring-security-web-x509-basic-auth</module> + <module>spring-security-web-x509-client-auth</module> </modules> <dependencies> diff --git a/spring-security-modules/spring-security-x509/spring-security-x509-basic-auth/pom.xml b/spring-security-modules/spring-security-web-x509/spring-security-web-x509-basic-auth/pom.xml similarity index 87% rename from spring-security-modules/spring-security-x509/spring-security-x509-basic-auth/pom.xml rename to spring-security-modules/spring-security-web-x509/spring-security-web-x509-basic-auth/pom.xml index 3cff638894..917ffa6b0e 100644 --- a/spring-security-modules/spring-security-x509/spring-security-x509-basic-auth/pom.xml +++ b/spring-security-modules/spring-security-web-x509/spring-security-web-x509-basic-auth/pom.xml @@ -2,15 +2,15 @@ <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <artifactId>spring-security-x509-basic-auth</artifactId> + <artifactId>spring-security-web-x509-basic-auth</artifactId> <version>0.0.1-SNAPSHOT</version> - <name>spring-security-x509-basic-auth</name> + <name>spring-security-web-x509-basic-auth</name> <packaging>jar</packaging> <description>Spring x.509 Authentication Demo</description> <parent> <groupId>com.baeldung</groupId> - <artifactId>spring-security-x509</artifactId> + <artifactId>spring-security-web-x509</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> diff --git a/spring-security-modules/spring-security-x509/spring-security-x509-basic-auth/src/main/java/com/baeldung/spring/security/x509/UserController.java b/spring-security-modules/spring-security-web-x509/spring-security-web-x509-basic-auth/src/main/java/com/baeldung/spring/security/x509/UserController.java similarity index 100% rename from spring-security-modules/spring-security-x509/spring-security-x509-basic-auth/src/main/java/com/baeldung/spring/security/x509/UserController.java rename to spring-security-modules/spring-security-web-x509/spring-security-web-x509-basic-auth/src/main/java/com/baeldung/spring/security/x509/UserController.java diff --git a/spring-security-modules/spring-security-x509/spring-security-x509-basic-auth/src/main/java/com/baeldung/spring/security/x509/X509AuthenticationServer.java b/spring-security-modules/spring-security-web-x509/spring-security-web-x509-basic-auth/src/main/java/com/baeldung/spring/security/x509/X509AuthenticationServer.java similarity index 100% rename from spring-security-modules/spring-security-x509/spring-security-x509-basic-auth/src/main/java/com/baeldung/spring/security/x509/X509AuthenticationServer.java rename to spring-security-modules/spring-security-web-x509/spring-security-web-x509-basic-auth/src/main/java/com/baeldung/spring/security/x509/X509AuthenticationServer.java diff --git a/spring-security-modules/spring-security-x509/spring-security-x509-basic-auth/src/main/resources/application.properties b/spring-security-modules/spring-security-web-x509/spring-security-web-x509-basic-auth/src/main/resources/application.properties similarity index 100% rename from spring-security-modules/spring-security-x509/spring-security-x509-basic-auth/src/main/resources/application.properties rename to spring-security-modules/spring-security-web-x509/spring-security-web-x509-basic-auth/src/main/resources/application.properties diff --git a/spring-security-modules/spring-security-x509/spring-security-x509-basic-auth/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-x509/spring-security-web-x509-basic-auth/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-x509/spring-security-x509-basic-auth/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-x509/spring-security-web-x509-basic-auth/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-x509/spring-security-x509-basic-auth/src/main/resources/templates/user.html b/spring-security-modules/spring-security-web-x509/spring-security-web-x509-basic-auth/src/main/resources/templates/user.html similarity index 100% rename from spring-security-modules/spring-security-x509/spring-security-x509-basic-auth/src/main/resources/templates/user.html rename to spring-security-modules/spring-security-web-x509/spring-security-web-x509-basic-auth/src/main/resources/templates/user.html diff --git a/spring-security-modules/spring-security-x509/spring-security-x509-basic-auth/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-x509/spring-security-web-x509-basic-auth/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-x509/spring-security-x509-basic-auth/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-x509/spring-security-web-x509-basic-auth/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-x509/spring-security-x509-basic-auth/src/test/java/com/baeldung/spring/security/x509/X509AuthenticationServerIntegrationTest.java b/spring-security-modules/spring-security-web-x509/spring-security-web-x509-basic-auth/src/test/java/com/baeldung/spring/security/x509/X509AuthenticationServerIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-x509/spring-security-x509-basic-auth/src/test/java/com/baeldung/spring/security/x509/X509AuthenticationServerIntegrationTest.java rename to spring-security-modules/spring-security-web-x509/spring-security-web-x509-basic-auth/src/test/java/com/baeldung/spring/security/x509/X509AuthenticationServerIntegrationTest.java diff --git a/spring-security-modules/spring-security-x509/spring-security-x509-client-auth/pom.xml b/spring-security-modules/spring-security-web-x509/spring-security-web-x509-client-auth/pom.xml similarity index 94% rename from spring-security-modules/spring-security-x509/spring-security-x509-client-auth/pom.xml rename to spring-security-modules/spring-security-web-x509/spring-security-web-x509-client-auth/pom.xml index 3a39f6af67..fdbc90c0f6 100644 --- a/spring-security-modules/spring-security-x509/spring-security-x509-client-auth/pom.xml +++ b/spring-security-modules/spring-security-web-x509/spring-security-web-x509-client-auth/pom.xml @@ -2,15 +2,15 @@ <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <artifactId>spring-security-x509-client-auth</artifactId> + <artifactId>spring-security-web-x509-client-auth</artifactId> <version>0.0.1-SNAPSHOT</version> - <name>spring-security-x509-client-auth</name> + <name>spring-security-web-x509-client-auth</name> <packaging>jar</packaging> <description>Spring x.509 Client Authentication Demo</description> <parent> <groupId>com.baeldung</groupId> - <artifactId>spring-security-x509</artifactId> + <artifactId>spring-security-web-x509</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> diff --git a/spring-security-modules/spring-security-x509/spring-security-x509-client-auth/src/main/java/com/baeldung/spring/security/x509/UserController.java b/spring-security-modules/spring-security-web-x509/spring-security-web-x509-client-auth/src/main/java/com/baeldung/spring/security/x509/UserController.java similarity index 100% rename from spring-security-modules/spring-security-x509/spring-security-x509-client-auth/src/main/java/com/baeldung/spring/security/x509/UserController.java rename to spring-security-modules/spring-security-web-x509/spring-security-web-x509-client-auth/src/main/java/com/baeldung/spring/security/x509/UserController.java diff --git a/spring-security-modules/spring-security-x509/spring-security-x509-client-auth/src/main/java/com/baeldung/spring/security/x509/X509AuthenticationServer.java b/spring-security-modules/spring-security-web-x509/spring-security-web-x509-client-auth/src/main/java/com/baeldung/spring/security/x509/X509AuthenticationServer.java similarity index 100% rename from spring-security-modules/spring-security-x509/spring-security-x509-client-auth/src/main/java/com/baeldung/spring/security/x509/X509AuthenticationServer.java rename to spring-security-modules/spring-security-web-x509/spring-security-web-x509-client-auth/src/main/java/com/baeldung/spring/security/x509/X509AuthenticationServer.java diff --git a/spring-security-modules/spring-security-x509/spring-security-x509-client-auth/src/main/resources/application.properties b/spring-security-modules/spring-security-web-x509/spring-security-web-x509-client-auth/src/main/resources/application.properties similarity index 100% rename from spring-security-modules/spring-security-x509/spring-security-x509-client-auth/src/main/resources/application.properties rename to spring-security-modules/spring-security-web-x509/spring-security-web-x509-client-auth/src/main/resources/application.properties diff --git a/spring-security-modules/spring-security-x509/spring-security-x509-client-auth/src/main/resources/logback.xml b/spring-security-modules/spring-security-web-x509/spring-security-web-x509-client-auth/src/main/resources/logback.xml similarity index 100% rename from spring-security-modules/spring-security-x509/spring-security-x509-client-auth/src/main/resources/logback.xml rename to spring-security-modules/spring-security-web-x509/spring-security-web-x509-client-auth/src/main/resources/logback.xml diff --git a/spring-security-modules/spring-security-x509/spring-security-x509-client-auth/src/main/resources/templates/user.html b/spring-security-modules/spring-security-web-x509/spring-security-web-x509-client-auth/src/main/resources/templates/user.html similarity index 100% rename from spring-security-modules/spring-security-x509/spring-security-x509-client-auth/src/main/resources/templates/user.html rename to spring-security-modules/spring-security-web-x509/spring-security-web-x509-client-auth/src/main/resources/templates/user.html diff --git a/spring-security-modules/spring-security-x509/spring-security-x509-client-auth/src/test/java/com/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-web-x509/spring-security-web-x509-client-auth/src/test/java/com/baeldung/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-x509/spring-security-x509-client-auth/src/test/java/com/baeldung/SpringContextTest.java rename to spring-security-modules/spring-security-web-x509/spring-security-web-x509-client-auth/src/test/java/com/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-x509/spring-security-x509-client-auth/src/test/java/com/baeldung/spring/security/x509/X509AuthenticationServerIntegrationTest.java b/spring-security-modules/spring-security-web-x509/spring-security-web-x509-client-auth/src/test/java/com/baeldung/spring/security/x509/X509AuthenticationServerIntegrationTest.java similarity index 100% rename from spring-security-modules/spring-security-x509/spring-security-x509-client-auth/src/test/java/com/baeldung/spring/security/x509/X509AuthenticationServerIntegrationTest.java rename to spring-security-modules/spring-security-web-x509/spring-security-web-x509-client-auth/src/test/java/com/baeldung/spring/security/x509/X509AuthenticationServerIntegrationTest.java diff --git a/spring-security-modules/spring-security-x509/store/clientBob.p12 b/spring-security-modules/spring-security-web-x509/store/clientBob.p12 similarity index 100% rename from spring-security-modules/spring-security-x509/store/clientBob.p12 rename to spring-security-modules/spring-security-web-x509/store/clientBob.p12 diff --git a/spring-security-modules/spring-security-x509/store/keystore.jks b/spring-security-modules/spring-security-web-x509/store/keystore.jks similarity index 100% rename from spring-security-modules/spring-security-x509/store/keystore.jks rename to spring-security-modules/spring-security-web-x509/store/keystore.jks diff --git a/spring-security-modules/spring-security-x509/store/localhost.ext b/spring-security-modules/spring-security-web-x509/store/localhost.ext similarity index 100% rename from spring-security-modules/spring-security-x509/store/localhost.ext rename to spring-security-modules/spring-security-web-x509/store/localhost.ext diff --git a/spring-security-modules/spring-security-x509/store/rootCA.crt b/spring-security-modules/spring-security-web-x509/store/rootCA.crt similarity index 100% rename from spring-security-modules/spring-security-x509/store/rootCA.crt rename to spring-security-modules/spring-security-web-x509/store/rootCA.crt diff --git a/spring-security-modules/spring-security-x509/store/truststore.jks b/spring-security-modules/spring-security-web-x509/store/truststore.jks similarity index 100% rename from spring-security-modules/spring-security-x509/store/truststore.jks rename to spring-security-modules/spring-security-web-x509/store/truststore.jks From 7e6ddf0e4848d569cf4ca115d52414f02a7fe8fa Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Tue, 18 Aug 2020 15:40:29 +0530 Subject: [PATCH 153/156] JAVA-69: parent module changes as per child module renaming --- spring-security-modules/pom.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/spring-security-modules/pom.xml b/spring-security-modules/pom.xml index 815b84d448..b68138964b 100644 --- a/spring-security-modules/pom.xml +++ b/spring-security-modules/pom.xml @@ -32,12 +32,12 @@ <module>spring-security-oidc</module> <module>spring-security-okta</module> <module>spring-security-web-react</module> - <module>spring-security-rest</module> - <module>spring-security-rest-basic-auth</module> - <module>spring-security-rest-custom</module> + <module>spring-security-web-rest</module> + <module>spring-security-web-rest-basic-auth</module> + <module>spring-security-web-rest-custom</module> <module>spring-security-oauth2-sso</module> - <module>spring-security-thymeleaf</module> - <module>spring-security-x509</module> + <module>spring-security-web-thymeleaf</module> + <module>spring-security-web-x509</module> <module>spring-security-kotlin-dsl</module> </modules> From eb9dd3bf5c02504a934a661841c0381a264ff48e Mon Sep 17 00:00:00 2001 From: sampadawagde <sampada.wagde@gmail.com> Date: Tue, 18 Aug 2020 15:43:55 +0530 Subject: [PATCH 154/156] JAVA-69: README updates --- .../spring-security-web-rest-basic-auth/README.md | 2 +- .../spring-security-web-rest-custom/README.md | 2 +- spring-security-modules/spring-security-web-rest/README.md | 2 +- spring-security-modules/spring-security-web-thymeleaf/README.md | 2 +- spring-security-modules/spring-security-web-x509/README.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/spring-security-modules/spring-security-web-rest-basic-auth/README.md b/spring-security-modules/spring-security-web-rest-basic-auth/README.md index af6dd598cc..97f682acd3 100644 --- a/spring-security-modules/spring-security-web-rest-basic-auth/README.md +++ b/spring-security-modules/spring-security-web-rest-basic-auth/README.md @@ -1,4 +1,4 @@ -## Spring Security REST Basic Authentication +## Spring Security Web - REST Basic Authentication This module contains articles about basic authentication in RESTful APIs with Spring Security diff --git a/spring-security-modules/spring-security-web-rest-custom/README.md b/spring-security-modules/spring-security-web-rest-custom/README.md index be360e035e..09b795c4b8 100644 --- a/spring-security-modules/spring-security-web-rest-custom/README.md +++ b/spring-security-modules/spring-security-web-rest-custom/README.md @@ -1,4 +1,4 @@ -## Spring Security REST Custom +## Spring Security Web - REST Custom This module contains articles about REST APIs with Spring Security diff --git a/spring-security-modules/spring-security-web-rest/README.md b/spring-security-modules/spring-security-web-rest/README.md index 26c101d32c..c13668798d 100644 --- a/spring-security-modules/spring-security-web-rest/README.md +++ b/spring-security-modules/spring-security-web-rest/README.md @@ -1,4 +1,4 @@ -## Spring Security REST +## Spring Security Web - REST This module contains articles about REST APIs with Spring Security diff --git a/spring-security-modules/spring-security-web-thymeleaf/README.md b/spring-security-modules/spring-security-web-thymeleaf/README.md index e0fca4067c..bb3281fa24 100644 --- a/spring-security-modules/spring-security-web-thymeleaf/README.md +++ b/spring-security-modules/spring-security-web-thymeleaf/README.md @@ -1,4 +1,4 @@ -## Spring Security Thymeleaf +## Spring Security Web - Thymeleaf This module contains articles about Spring Security with Thymeleaf. diff --git a/spring-security-modules/spring-security-web-x509/README.md b/spring-security-modules/spring-security-web-x509/README.md index da431d862c..5fd63c0307 100644 --- a/spring-security-modules/spring-security-web-x509/README.md +++ b/spring-security-modules/spring-security-web-x509/README.md @@ -1,4 +1,4 @@ -## Spring Security X.509 +## Spring Security Web - X.509 This module contains articles about X.509 authentication with Spring Security From afd00056a27667333500e812d782e414c11af146 Mon Sep 17 00:00:00 2001 From: Maiklins <kruemel@quantentunnel.de> Date: Tue, 18 Aug 2020 13:46:29 +0200 Subject: [PATCH 155/156] Java-1457 Reduce logging - Modules jgit, libraries-testing (#9884) * Java-1457 Reduce logging - Modules jgit, libraries-testing * Java-1457 Reduce logging - Modules jgit, libraries-testing Co-authored-by: mikr <michael.krimgen@ximedes.com> --- .../com/baeldung/jgit/porcelain/AddFile.java | 6 ++++- .../baeldung/jgit/porcelain/CommitAll.java | 6 ++++- .../jgit/porcelain/CreateAndDeleteTag.java | 10 +++++--- .../java/com/baeldung/jgit/porcelain/Log.java | 25 +++++++++++-------- .../jgit/porcelain/PorcelainUnitTest.java | 5 ++-- .../src/test/resources/logback.xml | 5 ++++ 6 files changed, 40 insertions(+), 17 deletions(-) create mode 100644 libraries-testing/src/test/resources/logback.xml diff --git a/jgit/src/main/java/com/baeldung/jgit/porcelain/AddFile.java b/jgit/src/main/java/com/baeldung/jgit/porcelain/AddFile.java index 314366f08c..e6b5dc1afc 100644 --- a/jgit/src/main/java/com/baeldung/jgit/porcelain/AddFile.java +++ b/jgit/src/main/java/com/baeldung/jgit/porcelain/AddFile.java @@ -6,6 +6,8 @@ import com.baeldung.jgit.helper.Helper; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.lib.Repository; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Simple snippet which shows how to add a file to the index @@ -14,6 +16,8 @@ import org.eclipse.jgit.lib.Repository; */ public class AddFile { + private static final Logger logger = LoggerFactory.getLogger(AddFile.class); + public static void main(String[] args) throws IOException, GitAPIException { // prepare a new test-repository try (Repository repository = Helper.createNewRepository()) { @@ -29,7 +33,7 @@ public class AddFile { .addFilepattern("testfile") .call(); - System.out.println("Added file " + myfile + " to repository at " + repository.getDirectory()); + logger.debug("Added file " + myfile + " to repository at " + repository.getDirectory()); } } } diff --git a/jgit/src/main/java/com/baeldung/jgit/porcelain/CommitAll.java b/jgit/src/main/java/com/baeldung/jgit/porcelain/CommitAll.java index 4c0956ebf8..a2d071f392 100644 --- a/jgit/src/main/java/com/baeldung/jgit/porcelain/CommitAll.java +++ b/jgit/src/main/java/com/baeldung/jgit/porcelain/CommitAll.java @@ -7,6 +7,8 @@ import com.baeldung.jgit.helper.Helper; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.lib.Repository; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Simple snippet which shows how to commit all files @@ -15,6 +17,8 @@ import org.eclipse.jgit.lib.Repository; */ public class CommitAll { + private static final Logger logger = LoggerFactory.getLogger(CommitAll.class); + public static void main(String[] args) throws IOException, GitAPIException { // prepare a new test-repository try (Repository repository = Helper.createNewRepository()) { @@ -44,7 +48,7 @@ public class CommitAll { .call(); - System.out.println("Committed all changes to repository at " + repository.getDirectory()); + logger.debug("Committed all changes to repository at " + repository.getDirectory()); } } } diff --git a/jgit/src/main/java/com/baeldung/jgit/porcelain/CreateAndDeleteTag.java b/jgit/src/main/java/com/baeldung/jgit/porcelain/CreateAndDeleteTag.java index 0f735daf8c..e7b0e424e2 100644 --- a/jgit/src/main/java/com/baeldung/jgit/porcelain/CreateAndDeleteTag.java +++ b/jgit/src/main/java/com/baeldung/jgit/porcelain/CreateAndDeleteTag.java @@ -9,6 +9,8 @@ import org.eclipse.jgit.lib.Ref; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevWalk; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Simple snippet which shows how to create a tag @@ -17,6 +19,8 @@ import org.eclipse.jgit.revwalk.RevWalk; */ public class CreateAndDeleteTag { + private static final Logger logger = LoggerFactory.getLogger(CreateAndDeleteTag.class); + public static void main(String[] args) throws IOException, GitAPIException { // prepare test-repository try (Repository repository = Helper.openJGitRepository()) { @@ -26,7 +30,7 @@ public class CreateAndDeleteTag { // set it on the current HEAD Ref tag = git.tag().setName("tag_for_testing").call(); - System.out.println("Created/moved tag " + tag + " to repository at " + repository.getDirectory()); + logger.debug("Created/moved tag " + tag + " to repository at " + repository.getDirectory()); // remove the tag again git.tagDelete().setTags("tag_for_testing").call(); @@ -36,14 +40,14 @@ public class CreateAndDeleteTag { try (RevWalk walk = new RevWalk(repository)) { RevCommit commit = walk.parseCommit(id); tag = git.tag().setObjectId(commit).setName("tag_for_testing").call(); - System.out.println("Created/moved tag " + tag + " to repository at " + repository.getDirectory()); + logger.debug("Created/moved tag " + tag + " to repository at " + repository.getDirectory()); // remove the tag again git.tagDelete().setTags("tag_for_testing").call(); // create an annotated tag tag = git.tag().setName("tag_for_testing").setAnnotated(true).call(); - System.out.println("Created/moved tag " + tag + " to repository at " + repository.getDirectory()); + logger.debug("Created/moved tag " + tag + " to repository at " + repository.getDirectory()); // remove the tag again git.tagDelete().setTags("tag_for_testing").call(); diff --git a/jgit/src/main/java/com/baeldung/jgit/porcelain/Log.java b/jgit/src/main/java/com/baeldung/jgit/porcelain/Log.java index a50028a9ae..fba8a82962 100644 --- a/jgit/src/main/java/com/baeldung/jgit/porcelain/Log.java +++ b/jgit/src/main/java/com/baeldung/jgit/porcelain/Log.java @@ -7,6 +7,9 @@ import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.revwalk.RevCommit; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * Simple snippet which shows how to get the commit-ids for a file to provide log information. * @@ -14,6 +17,8 @@ import org.eclipse.jgit.revwalk.RevCommit; */ public class Log { + private static final Logger logger = LoggerFactory.getLogger(Log.class); + @SuppressWarnings("unused") public static void main(String[] args) throws IOException, GitAPIException { try (Repository repository = Helper.openJGitRepository()) { @@ -22,30 +27,30 @@ public class Log { .call(); int count = 0; for (RevCommit rev : logs) { - //System.out.println("Commit: " + rev /* + ", name: " + rev.getName() + ", id: " + rev.getId().getName() */); + logger.trace("Commit: " + rev /* + ", name: " + rev.getName() + ", id: " + rev.getId().getName() */); count++; } - System.out.println("Had " + count + " commits overall on current branch"); + logger.debug("Had " + count + " commits overall on current branch"); logs = git.log() .add(repository.resolve(git.getRepository().getFullBranch())) .call(); count = 0; for (RevCommit rev : logs) { - System.out.println("Commit: " + rev /* + ", name: " + rev.getName() + ", id: " + rev.getId().getName() */); + logger.trace("Commit: " + rev /* + ", name: " + rev.getName() + ", id: " + rev.getId().getName() */); count++; } - System.out.println("Had " + count + " commits overall on "+git.getRepository().getFullBranch()); + logger.debug("Had " + count + " commits overall on "+git.getRepository().getFullBranch()); logs = git.log() .all() .call(); count = 0; for (RevCommit rev : logs) { - //System.out.println("Commit: " + rev /* + ", name: " + rev.getName() + ", id: " + rev.getId().getName() */); + logger.trace("Commit: " + rev /* + ", name: " + rev.getName() + ", id: " + rev.getId().getName() */); count++; } - System.out.println("Had " + count + " commits overall in repository"); + logger.debug("Had " + count + " commits overall in repository"); logs = git.log() // for all log.all() @@ -53,10 +58,10 @@ public class Log { .call(); count = 0; for (RevCommit rev : logs) { - //System.out.println("Commit: " + rev /* + ", name: " + rev.getName() + ", id: " + rev.getId().getName() */); + logger.trace("Commit: " + rev /* + ", name: " + rev.getName() + ", id: " + rev.getId().getName() */); count++; } - System.out.println("Had " + count + " commits on README.md"); + logger.debug("Had " + count + " commits on README.md"); logs = git.log() // for all log.all() @@ -64,10 +69,10 @@ public class Log { .call(); count = 0; for (RevCommit rev : logs) { - //System.out.println("Commit: " + rev /* + ", name: " + rev.getName() + ", id: " + rev.getId().getName() */); + logger.trace("Commit: " + rev /* + ", name: " + rev.getName() + ", id: " + rev.getId().getName() */); count++; } - System.out.println("Had " + count + " commits on pom.xml"); + logger.debug("Had " + count + " commits on pom.xml"); } } } diff --git a/jgit/src/test/java/com/baeldung/jgit/porcelain/PorcelainUnitTest.java b/jgit/src/test/java/com/baeldung/jgit/porcelain/PorcelainUnitTest.java index d3b3358664..842705e6ac 100644 --- a/jgit/src/test/java/com/baeldung/jgit/porcelain/PorcelainUnitTest.java +++ b/jgit/src/test/java/com/baeldung/jgit/porcelain/PorcelainUnitTest.java @@ -11,7 +11,8 @@ public class PorcelainUnitTest { CommitAll.main(null); CreateAndDeleteTag.main(null); - - Log.main(null); + + Log.main(null); + } } diff --git a/libraries-testing/src/test/resources/logback.xml b/libraries-testing/src/test/resources/logback.xml new file mode 100644 index 0000000000..95160412c3 --- /dev/null +++ b/libraries-testing/src/test/resources/logback.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configuration> + <logger name="org.dbunit" level="INFO" /> +</configuration> + From 1ed8b7a2bfa2fd4f67139e9771d725ad98a7fc67 Mon Sep 17 00:00:00 2001 From: kwoyke <krzysztofwoyke@gmail.com> Date: Tue, 18 Aug 2020 16:12:35 +0200 Subject: [PATCH 156/156] BAEL-4430: Update the email regexp pattern (#9893) --- .../src/main/java/com/baeldung/swagger2boot/model/User.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/swagger2boot/model/User.java b/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/swagger2boot/model/User.java index b724031536..339e85e0d4 100644 --- a/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/swagger2boot/model/User.java +++ b/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/swagger2boot/model/User.java @@ -20,7 +20,7 @@ public class User { @Max(value = 65, message = "Age should not be greater than 65") private int age; - @Email(regexp=".@.\\..*", message = "Email should be valid") + @Email(regexp=".*@.*\\..*", message = "Email should be valid") private String email; public Long getId() {