Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
docker-kubernetes-training
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Deep Bhuller
docker-kubernetes-training
Commits
0d6c52a6
Commit
0d6c52a6
authored
Apr 21, 2021
by
dbhuller
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
adding files/project for docker-kubernetes training
parents
Changes
25
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
786 additions
and
0 deletions
+786
-0
.gitignore
employeeservicefinal_compose/.gitignore
+37
-0
Dockerfile
employeeservicefinal_compose/Dockerfile
+5
-0
build.gradle
employeeservicefinal_compose/build.gradle
+42
-0
docker-compose.yml
employeeservicefinal_compose/docker-compose.yml
+19
-0
Dockerfile
employeeservicefinal_compose/employee_db/Dockerfile
+7
-0
gradle-wrapper.jar
...yeeservicefinal_compose/gradle/wrapper/gradle-wrapper.jar
+0
-0
gradle-wrapper.properties
...icefinal_compose/gradle/wrapper/gradle-wrapper.properties
+5
-0
gradlew
employeeservicefinal_compose/gradlew
+185
-0
gradlew.bat
employeeservicefinal_compose/gradlew.bat
+89
-0
mysql.env
employeeservicefinal_compose/mysql.env
+0
-0
settings.gradle
employeeservicefinal_compose/settings.gradle
+1
-0
EmployeeserviceApplication.java
...com/nisum/employeeservice/EmployeeserviceApplication.java
+13
-0
LoggingAspect.java
.../java/com/nisum/employeeservice/aspect/LoggingAspect.java
+19
-0
EmployeeController.java
.../nisum/employeeservice/controller/EmployeeController.java
+53
-0
ErrorDetails.java
...ava/com/nisum/employeeservice/exception/ErrorDetails.java
+39
-0
GlobalExceptionHandler.java
...sum/employeeservice/exception/GlobalExceptionHandler.java
+15
-0
ResourceNotFoundException.java
.../employeeservice/exception/ResourceNotFoundException.java
+11
-0
Employee.java
...c/main/java/com/nisum/employeeservice/model/Employee.java
+52
-0
EmployeeRepository.java
.../nisum/employeeservice/repository/EmployeeRepository.java
+9
-0
EmployeeService.java
...va/com/nisum/employeeservice/service/EmployeeService.java
+58
-0
application.properties
...cefinal_compose/src/main/resources/application.properties
+11
-0
employee.sql
employeeservicefinal_compose/src/main/resources/employee.sql
+14
-0
EmployeeserviceApplicationTests.java
...isum/employeeservice/EmployeeserviceApplicationTests.java
+13
-0
EmployeeServiceTest.java
...om/nisum/employeeservice/service/EmployeeServiceTest.java
+82
-0
application.properties
...cefinal_compose/src/test/resources/application.properties
+7
-0
No files found.
employeeservicefinal_compose/.gitignore
0 → 100644
View file @
0d6c52a6
HELP.md
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
### VS Code ###
.vscode/
employeeservicefinal_compose/Dockerfile
0 → 100644
View file @
0d6c52a6
FROM
openjdk:8-jdk-alpine
ARG
JAR_FILE=target/*.jar
COPY
${JAR_FILE} app.jar
ENTRYPOINT
["java","-jar","/app.jar"]
\ No newline at end of file
employeeservicefinal_compose/build.gradle
0 → 100644
View file @
0d6c52a6
plugins
{
id
'org.springframework.boot'
version
'2.4.4'
id
'io.spring.dependency-management'
version
'1.0.11.RELEASE'
id
'java'
}
group
=
'com.nisum'
version
=
'0.0.1-SNAPSHOT'
sourceCompatibility
=
'1.8'
repositories
{
mavenCentral
()
}
dependencies
{
implementation
'org.springframework.boot:spring-boot-starter-data-jpa'
implementation
'org.springframework.boot:spring-boot-starter-web'
implementation
'org.springframework.boot:spring-boot-starter-actuator'
'org.springframework.boot:spring-boot-starter-validation'
implementation
'junit:junit:4.12'
implementation
'junit:junit:4.12'
runtimeOnly
'com.h2database:h2'
testImplementation
'org.springframework.boot:spring-boot-starter-test'
testImplementation
'com.h2database:h2'
// https://mvnrepository.com/artifact/mysql/mysql-connector-java
implementation
group:
'mysql'
,
name:
'mysql-connector-java'
,
version:
'5.1.6'
}
test
{
useJUnitPlatform
()
}
tasks
.
register
(
'simpletask'
)
{
doLast
{
String
name
=
'Vlad Rez'
println
"My Name: ${name}"
4
.
times
{
print
"$it"
}
}
}
\ No newline at end of file
employeeservicefinal_compose/docker-compose.yml
0 → 100644
View file @
0d6c52a6
version
:
"
3.5"
services
:
employeeservice
:
container_name
:
employee_app
image
:
employeeapp
ports
:
-
3333:8080
employeedb
:
container_name
:
employee_db
image
:
mysql/mysql-server
volumes
:
-
./employeeservicefinal_compose/src/main/resources/employee.sql:/docker-entrypoint-initdb.d/schema.sql
environment
:
MYSQL_ROOT_PASSWORD
:
root
ports
:
-
3309:3306
\ No newline at end of file
employeeservicefinal_compose/employee_db/Dockerfile
0 → 100644
View file @
0d6c52a6
FROM
mysql/mysql-server
COPY
./employee.sql ./docker-entrypoint-initdb.d/employee.sql
EXPOSE
3306
ENTRYPOINT
["docker-entrypoint.sh"]
CMD
["mysql"]
\ No newline at end of file
employeeservicefinal_compose/gradle/wrapper/gradle-wrapper.jar
0 → 100644
View file @
0d6c52a6
File added
employeeservicefinal_compose/gradle/wrapper/gradle-wrapper.properties
0 → 100644
View file @
0d6c52a6
distributionBase
=
GRADLE_USER_HOME
distributionPath
=
wrapper/dists
distributionUrl
=
https
\:
//services.gradle.org/distributions/gradle-6.8.3-bin.zip
zipStoreBase
=
GRADLE_USER_HOME
zipStorePath
=
wrapper/dists
employeeservicefinal_compose/gradlew
0 → 100755
View file @
0d6c52a6
#!/usr/bin/env sh
#
# Copyright 2015 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# 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.
#
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG
=
"
$0
"
# Need this for relative symlinks.
while
[
-h
"
$PRG
"
]
;
do
ls
=
`
ls
-ld
"
$PRG
"
`
link
=
`
expr
"
$ls
"
:
'.*-> \(.*\)$'
`
if
expr
"
$link
"
:
'/.*'
>
/dev/null
;
then
PRG
=
"
$link
"
else
PRG
=
`
dirname
"
$PRG
"
`
"/
$link
"
fi
done
SAVED
=
"
`
pwd
`
"
cd
"
`
dirname
\"
$PRG
\"
`
/"
>
/dev/null
APP_HOME
=
"
`
pwd
-P
`
"
cd
"
$SAVED
"
>
/dev/null
APP_NAME
=
"Gradle"
APP_BASE_NAME
=
`
basename
"
$0
"
`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS
=
'"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD
=
"maximum"
warn
()
{
echo
"
$*
"
}
die
()
{
echo
echo
"
$*
"
echo
exit
1
}
# OS specific support (must be 'true' or 'false').
cygwin
=
false
msys
=
false
darwin
=
false
nonstop
=
false
case
"
`
uname
`
"
in
CYGWIN
*
)
cygwin
=
true
;;
Darwin
*
)
darwin
=
true
;;
MINGW
*
)
msys
=
true
;;
NONSTOP
*
)
nonstop
=
true
;;
esac
CLASSPATH
=
$APP_HOME
/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if
[
-n
"
$JAVA_HOME
"
]
;
then
if
[
-x
"
$JAVA_HOME
/jre/sh/java"
]
;
then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD
=
"
$JAVA_HOME
/jre/sh/java"
else
JAVACMD
=
"
$JAVA_HOME
/bin/java"
fi
if
[
!
-x
"
$JAVACMD
"
]
;
then
die
"ERROR: JAVA_HOME is set to an invalid directory:
$JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD
=
"java"
which java
>
/dev/null 2>&1
||
die
"ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if
[
"
$cygwin
"
=
"false"
-a
"
$darwin
"
=
"false"
-a
"
$nonstop
"
=
"false"
]
;
then
MAX_FD_LIMIT
=
`
ulimit
-H
-n
`
if
[
$?
-eq
0
]
;
then
if
[
"
$MAX_FD
"
=
"maximum"
-o
"
$MAX_FD
"
=
"max"
]
;
then
MAX_FD
=
"
$MAX_FD_LIMIT
"
fi
ulimit
-n
$MAX_FD
if
[
$?
-ne
0
]
;
then
warn
"Could not set maximum file descriptor limit:
$MAX_FD
"
fi
else
warn
"Could not query maximum file descriptor limit:
$MAX_FD_LIMIT
"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if
$darwin
;
then
GRADLE_OPTS
=
"
$GRADLE_OPTS
\"
-Xdock:name=
$APP_NAME
\"
\"
-Xdock:icon=
$APP_HOME
/media/gradle.icns
\"
"
fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if
[
"
$cygwin
"
=
"true"
-o
"
$msys
"
=
"true"
]
;
then
APP_HOME
=
`
cygpath
--path
--mixed
"
$APP_HOME
"
`
CLASSPATH
=
`
cygpath
--path
--mixed
"
$CLASSPATH
"
`
JAVACMD
=
`
cygpath
--unix
"
$JAVACMD
"
`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW
=
`
find
-L
/
-maxdepth
1
-mindepth
1
-type
d 2>/dev/null
`
SEP
=
""
for
dir
in
$ROOTDIRSRAW
;
do
ROOTDIRS
=
"
$ROOTDIRS$SEP$dir
"
SEP
=
"|"
done
OURCYGPATTERN
=
"(^(
$ROOTDIRS
))"
# Add a user-defined pattern to the cygpath arguments
if
[
"
$GRADLE_CYGPATTERN
"
!=
""
]
;
then
OURCYGPATTERN
=
"
$OURCYGPATTERN
|(
$GRADLE_CYGPATTERN
)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i
=
0
for
arg
in
"
$@
"
;
do
CHECK
=
`
echo
"
$arg
"
|egrep
-c
"
$OURCYGPATTERN
"
-
`
CHECK2
=
`
echo
"
$arg
"
|egrep
-c
"^-"
`
### Determine if an option
if
[
$CHECK
-ne
0
]
&&
[
$CHECK2
-eq
0
]
;
then
### Added a condition
eval
`
echo
args
$i
`
=
`
cygpath
--path
--ignore
--mixed
"
$arg
"
`
else
eval
`
echo
args
$i
`
=
"
\"
$arg
\"
"
fi
i
=
`
expr
$i
+ 1
`
done
case
$i
in
0
)
set
--
;;
1
)
set
--
"
$args0
"
;;
2
)
set
--
"
$args0
"
"
$args1
"
;;
3
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
;;
4
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
"
$args3
"
;;
5
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
"
$args3
"
"
$args4
"
;;
6
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
"
$args3
"
"
$args4
"
"
$args5
"
;;
7
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
"
$args3
"
"
$args4
"
"
$args5
"
"
$args6
"
;;
8
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
"
$args3
"
"
$args4
"
"
$args5
"
"
$args6
"
"
$args7
"
;;
9
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
"
$args3
"
"
$args4
"
"
$args5
"
"
$args6
"
"
$args7
"
"
$args8
"
;;
esac
fi
# Escape application args
save
()
{
for
i
do
printf
%s
\\
n
"
$i
"
|
sed
"s/'/'
\\\\
''/g;1s/^/'/;
\$
s/
\$
/'
\\\\
/"
;
done
echo
" "
}
APP_ARGS
=
`
save
"
$@
"
`
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set
--
$DEFAULT_JVM_OPTS
$JAVA_OPTS
$GRADLE_OPTS
"
\"
-Dorg.gradle.appname=
$APP_BASE_NAME
\"
"
-classpath
"
\"
$CLASSPATH
\"
"
org.gradle.wrapper.GradleWrapperMain
"
$APP_ARGS
"
exec
"
$JAVACMD
"
"
$@
"
employeeservicefinal_compose/gradlew.bat
0 → 100644
View file @
0d6c52a6
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
employeeservicefinal_compose/mysql.env
0 → 100644
View file @
0d6c52a6
employeeservicefinal_compose/settings.gradle
0 → 100644
View file @
0d6c52a6
rootProject
.
name
=
'employeeservice'
employeeservicefinal_compose/src/main/java/com/nisum/employeeservice/EmployeeserviceApplication.java
0 → 100644
View file @
0d6c52a6
package
com
.
nisum
.
employeeservice
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
@SpringBootApplication
public
class
EmployeeserviceApplication
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
EmployeeserviceApplication
.
class
,
args
);
}
}
employeeservicefinal_compose/src/main/java/com/nisum/employeeservice/aspect/LoggingAspect.java
0 → 100644
View file @
0d6c52a6
package
com
.
nisum
.
employeeservice
.
aspect
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.aspectj.lang.annotation.Before
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Component
;
@Aspect
@Component
public
class
LoggingAspect
{
private
final
Logger
logger
=
LoggerFactory
.
getLogger
(
LoggingAspect
.
class
);
@Before
(
"execution(* com.nisum.employeeservice.controller.EmployeeController.getAllEmployees())"
)
public
void
logBefore
()
{
logger
.
info
(
"{} before advice"
,
"Logger"
);
logger
.
error
(
"Fake Error"
);
}
}
employeeservicefinal_compose/src/main/java/com/nisum/employeeservice/controller/EmployeeController.java
0 → 100644
View file @
0d6c52a6
package
com
.
nisum
.
employeeservice
.
controller
;
import
com.nisum.employeeservice.exception.ResourceNotFoundException
;
import
com.nisum.employeeservice.model.Employee
;
import
com.nisum.employeeservice.service.EmployeeService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
javax.xml.ws.Response
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
@CrossOrigin
(
origins
=
"*"
)
@RestController
@RequestMapping
(
"/api/v1"
)
public
class
EmployeeController
{
@Autowired
EmployeeService
employeeService
;
@GetMapping
(
"/employees"
)
public
List
<
Employee
>
getAllEmployees
()
{
return
employeeService
.
findAllEmployees
();
}
@PostMapping
(
"/employees"
)
public
Employee
createEmployee
(
@RequestBody
Employee
employee
)
{
return
employeeService
.
addEmployee
(
employee
);
}
@DeleteMapping
(
"/employees/{id}"
)
public
Map
<
String
,
Boolean
>
deleteEmployee
(
@PathVariable
(
value
=
"id"
)
Long
employeeId
)
throws
ResourceNotFoundException
{
return
employeeService
.
deleteEmployee
(
employeeId
);
}
@PutMapping
(
"/employees/{id}"
)
public
ResponseEntity
<
Employee
>
updateEmployee
(
@PathVariable
(
value
=
"id"
)
Long
employeeId
,
Employee
updatedEmployeeData
)
throws
ResourceNotFoundException
{
Employee
updatedEmployee
=
employeeService
.
updateEmployee
(
employeeId
,
updatedEmployeeData
);
return
ResponseEntity
.
ok
(
updatedEmployee
);
}
@GetMapping
(
"/employees/{id}"
)
public
ResponseEntity
<
Employee
>
getEmployeeById
(
@PathVariable
(
value
=
"id"
)
Long
employeeId
)
throws
ResourceNotFoundException
{
Employee
employee
=
employeeService
.
getEmployeeById
(
employeeId
).
orElseThrow
(()
->
new
ResourceNotFoundException
(
"Employee with id: "
+
employeeId
+
" not found"
));
return
ResponseEntity
.
ok
().
body
(
employee
);
}
}
employeeservicefinal_compose/src/main/java/com/nisum/employeeservice/exception/ErrorDetails.java
0 → 100644
View file @
0d6c52a6
package
com
.
nisum
.
employeeservice
.
exception
;
import
java.util.Date
;
public
class
ErrorDetails
{
private
Date
timeStamp
;
private
String
message
;
private
String
details
;
public
ErrorDetails
(
Date
timeStamp
,
String
message
,
String
details
)
{
this
.
timeStamp
=
timeStamp
;
this
.
message
=
message
;
this
.
details
=
details
;
}
public
Date
getTimeStamp
()
{
return
timeStamp
;
}
public
void
setTimeStamp
(
Date
timeStamp
)
{
this
.
timeStamp
=
timeStamp
;
}
public
String
getMessage
()
{
return
message
;
}
public
void
setMessage
(
String
message
)
{
this
.
message
=
message
;
}
public
String
getDetails
()
{
return
details
;
}
public
void
setDetails
(
String
details
)
{
this
.
details
=
details
;
}
}
employeeservicefinal_compose/src/main/java/com/nisum/employeeservice/exception/GlobalExceptionHandler.java
0 → 100644
View file @
0d6c52a6
package
com
.
nisum
.
employeeservice
.
exception
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.context.request.WebRequest
;
import
org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler
;
import
java.util.Date
;
public
class
GlobalExceptionHandler
extends
ResponseEntityExceptionHandler
{
public
ResponseEntity
<?>
resourceNotFoundException
(
ResourceNotFoundException
e
,
WebRequest
webRequest
)
{
ErrorDetails
errorDetails
=
new
ErrorDetails
(
new
Date
(),
e
.
getMessage
(),
webRequest
.
getDescription
(
false
));
return
new
ResponseEntity
<>(
errorDetails
,
HttpStatus
.
NOT_FOUND
);
}
}
employeeservicefinal_compose/src/main/java/com/nisum/employeeservice/exception/ResourceNotFoundException.java
0 → 100644
View file @
0d6c52a6
package
com
.
nisum
.
employeeservice
.
exception
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.web.bind.annotation.ResponseStatus
;
@ResponseStatus
(
value
=
HttpStatus
.
NOT_FOUND
)
public
class
ResourceNotFoundException
extends
Exception
{
public
ResourceNotFoundException
(
String
message
)
{
super
(
message
);
}
}
employeeservicefinal_compose/src/main/java/com/nisum/employeeservice/model/Employee.java
0 → 100644
View file @
0d6c52a6
package
com
.
nisum
.
employeeservice
.
model
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GenerationType
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
@Entity
@Table
(
name
=
"employee"
)
public
class
Employee
{
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Long
id
;
private
String
firstName
;
private
String
lastName
;
public
Employee
(){}
public
Employee
(
Long
id
,
String
firstName
,
String
lastName
)
{
this
.
id
=
id
;
this
.
firstName
=
firstName
;
this
.
lastName
=
lastName
;
}
public
String
getFirstName
()
{
return
firstName
;
}
public
void
setFirstName
(
String
firstName
)
{
this
.
firstName
=
firstName
;
}
public
String
getLastName
()
{
return
lastName
;
}
public
void
setLastName
(
String
lastName
)
{
this
.
lastName
=
lastName
;
}
public
void
setId
(
Long
id
)
{
this
.
id
=
id
;
}
public
Long
getId
()
{
return
id
;
}
}
employeeservicefinal_compose/src/main/java/com/nisum/employeeservice/repository/EmployeeRepository.java
0 → 100644
View file @
0d6c52a6
package
com
.
nisum
.
employeeservice
.
repository
;
import
com.nisum.employeeservice.model.Employee
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.stereotype.Repository
;
@Repository
public
interface
EmployeeRepository
extends
JpaRepository
<
Employee
,
Long
>
{}
employeeservicefinal_compose/src/main/java/com/nisum/employeeservice/service/EmployeeService.java
0 → 100644
View file @
0d6c52a6
package
com
.
nisum
.
employeeservice
.
service
;
import
com.nisum.employeeservice.exception.ResourceNotFoundException
;
import
com.nisum.employeeservice.model.Employee
;
import
com.nisum.employeeservice.repository.EmployeeRepository
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
@Service
public
class
EmployeeService
{
@Autowired
EmployeeRepository
employeeRepository
;
public
List
<
Employee
>
findAllEmployees
()
{
/*some business*/
return
employeeRepository
.
findAll
();
}
public
Employee
addEmployee
(
Employee
employee
)
{
return
employeeRepository
.
save
(
employee
);
}
// public Employee deleteEmployee(Employee employee) {
// Employee employeeToDelete = employeeRepository.getOne(employee.getId());
// }
public
Optional
<
Employee
>
getEmployeeById
(
Long
employeeId
)
{
return
employeeRepository
.
findById
(
employeeId
);
}
public
Map
<
String
,
Boolean
>
deleteEmployee
(
Long
employeeId
)
throws
ResourceNotFoundException
{
Employee
employeeToDelete
=
employeeRepository
.
findById
(
employeeId
).
orElseThrow
(()
->
new
ResourceNotFoundException
(
"Employee with "
+
" id: "
+
employeeId
+
" not found"
));
employeeRepository
.
delete
(
employeeToDelete
);
Map
<
String
,
Boolean
>
deleteResponse
=
new
HashMap
<>();
deleteResponse
.
put
(
"Deleted"
,
Boolean
.
TRUE
);
return
deleteResponse
;
}
public
Employee
updateEmployee
(
Long
employeeId
,
Employee
updatedEmployeeData
)
throws
ResourceNotFoundException
{
Employee
employeeToUpdate
=
employeeRepository
.
findById
(
employeeId
).
orElseThrow
(()
->
new
ResourceNotFoundException
(
"Employee with "
+
"id: "
+
employeeId
+
" not found"
));
employeeToUpdate
.
setFirstName
(
updatedEmployeeData
.
getFirstName
());
employeeToUpdate
.
setLastName
(
updatedEmployeeData
.
getLastName
());
Employee
updatedEmployee
=
employeeRepository
.
save
(
employeeToUpdate
);
return
updatedEmployee
;
}
}
employeeservicefinal_compose/src/main/resources/application.properties
0 → 100644
View file @
0d6c52a6
spring.datasource.url
=
jdbc:mysql://employee_db:3306/employee
spring.datasource.schema
=
classpath:employee.sql
spring.jpa.database-platform
=
org.hibernate.dialect.MySQL57Dialect
spring.jpa.hibernate.ddl-auto
=
none
management.endpoint.beans.enabled
=
true
management.endpoints.web.exposure.include
=
*
info.app.name
=
Employee Service Application Actuator
employeeservicefinal_compose/src/main/resources/employee.sql
0 → 100644
View file @
0d6c52a6
DROP
TABLE
IF
EXISTS
EMPLOYEE
;
CREATE
TABLE
EMPLOYEE
(
ID
INT
AUTO_INCREMENT
PRIMARY
KEY
,
FIRST_NAME
VARCHAR
(
255
)
NOT
NULL
,
LAST_NAME
VARCHAR
(
255
)
NOT
NULL
);
INSERT
INTO
EMPLOYEE
VALUES
(
1
,
'John'
,
'Smith'
),
(
2
,
'Jane'
,
'Doe'
),
(
3
,
'Walter'
,
'Bell'
),
(
4
,
'Bob'
,
'Test'
);
\ No newline at end of file
employeeservicefinal_compose/src/test/java/com/nisum/employeeservice/EmployeeserviceApplicationTests.java
0 → 100644
View file @
0d6c52a6
package
com
.
nisum
.
employeeservice
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.boot.test.context.SpringBootTest
;
@SpringBootTest
class
EmployeeserviceApplicationTests
{
@Test
void
contextLoads
()
{
}
}
employeeservicefinal_compose/src/test/java/com/nisum/employeeservice/service/EmployeeServiceTest.java
0 → 100644
View file @
0d6c52a6
package
com
.
nisum
.
employeeservice
.
service
;
import
com.nisum.employeeservice.model.Employee
;
import
com.nisum.employeeservice.repository.EmployeeRepository
;
import
org.junit.Assert
;
import
org.junit.jupiter.api.AfterEach
;
import
org.junit.jupiter.api.Assertions
;
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.Test
;
import
org.junit.runner.RunWith
;
import
org.mockito.InjectMocks
;
import
org.mockito.Mock
;
import
org.mockito.Mockito
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
java.util.Arrays
;
import
java.util.List
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.*;
//@RunWith(SpringRunner.class)
@SpringBootTest
class
EmployeeServiceTest
{
@Mock
EmployeeRepository
mockedEmployeeRepository
;
@InjectMocks
EmployeeService
mockedEmployeeService
;
@Autowired
EmployeeRepository
employeeRepository
;
@Autowired
EmployeeService
employeeService
;
@BeforeEach
void
setUp
()
{
}
@AfterEach
void
tearDown
()
{
}
@Test
void
findAllEmployees
()
{
Employee
employee
=
new
Employee
();
employee
.
setId
(
1L
);
employee
.
setFirstName
(
"Tom"
);
employee
.
setLastName
(
"Smith"
);
Employee
employee1
=
new
Employee
();
employee1
.
setId
(
2L
);
employee1
.
setFirstName
(
"Jane"
);
employee1
.
setLastName
(
"Doe"
);
List
<
Employee
>
employeeList
=
Arrays
.
asList
(
employee
,
employee1
);
Mockito
.
when
(
mockedEmployeeRepository
.
findAll
()).
thenReturn
(
employeeList
);
List
<
Employee
>
resultList
=
mockedEmployeeService
.
findAllEmployees
();
assertEquals
(
2
,
resultList
.
size
());
}
@Test
void
addEmployeeMocked
()
{
}
@Test
void
addEmployee
()
{
Employee
employee
=
new
Employee
();
employee
.
setFirstName
(
"Tom"
);
employee
.
setLastName
(
"Smith"
);
employeeService
.
addEmployee
(
employee
);
Employee
employee1
=
new
Employee
();
employee1
.
setFirstName
(
"Jane"
);
employee1
.
setLastName
(
"Doe"
);
employeeService
.
addEmployee
(
employee1
);
List
<
Employee
>
employeeList
=
employeeService
.
findAllEmployees
();
assertEquals
(
1
,
employeeList
.
size
());
}
}
\ No newline at end of file
employeeservicefinal_compose/src/test/resources/application.properties
0 → 100644
View file @
0d6c52a6
spring.datasource.url
=
jdbc:h2:mem:dataSource
spring.datasource.driverClassName
=
org.h2.Driver
spring.datasource.username
=
sa
spring.datasource.password
=
spring.jpa.database-platform
=
org.hibernate.dialect.H2Dialect
spring.h2.console.enabled
=
true
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment