Spring shell for everyone
Ihor Banadiga
Ihor Banadiga
JavaDay Lviv, CoffeeJug,
Morning@Lohika, Devoxx
Ukraine, Kotlin Night Kyiv
2
Java Software Engineer at Lohika
#jdo_shell
Who don’t?
3
Who did?
4
Who do?
5
Who done?
6
Agenda
● How to start
● Resolve base problems
● Remote usage
● Build “muscles”
7
What is shell?
8
Before we start...
Shell
● sh
● bash
● zsh
9
● aws-shell
● mysql
● mongo
Why?
10
One more question...
Why?
● Local execution
● Remote execution
● Complete solution
● Professional users
● Accessibility
11
Why me?
12
One more question...
My case
● Many services
● Background processing
● Data analysis / automatization
● No UI
● Operators / Devops
● Limited time
13
Spring Shell
14
Spring framework
Coding session
15
Client bank
#jdo_shell
16
Summary
Client bank coding session
Summary
● Define commands
● Define parameters
● Entering extra params
● Group commands
● Commands availability
17
● Customize prompt
● Autocompletion
● Converter implementation
● Help generation
Looks cool
18
No one is perfect
What are the cons?
19
Cons
● Testing
● Time to start
● Logging
● Upgrade
● Update
20
● Configuration
● Network
● etc
How can we deal with it?
21
22
Thin client
Move shell to server
Coding session
23
Move client bank to server
#jdo_shell
24
Summary
Client bank on server
Summary
● SSH support
● Time to start / Time to connect
● Logs on server
● Upgrade / Update on server
● Configuration
● Network
25
● JVM ecosystem
● Post processors
● Actuator as shell
● Testing
26
Question?
Thanks!
#jdo_shell
Thanks!
27
Slide Code
#jdo_shell
Links
28
● Slide https://www.slideshare.net/IhorBanadiga/spring-shell-for-everyone
● Demo https://github.com/banadiga/shell-application
● Client bank https://github.com/banadiga/client-bank
● Spring shell project https://projects.spring.io/spring-shell/
● SSH shell https://github.com/fonimus/ssh-shell-spring-boot

Spring shell for everyone