├── .gitignore ├── AOP ├── SpringAOP_AspectJ │ ├── m05-advice-deep-dive │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ ├── advicedeepdive │ │ │ │ │ ├── AfterAdvice.java │ │ │ │ │ ├── AfterReturningAdvice.java │ │ │ │ │ ├── AfterThrowingAdvice.java │ │ │ │ │ ├── AroundAdvice.java │ │ │ │ │ ├── BeforeAdvice.java │ │ │ │ │ └── SimpleService.java │ │ │ │ └── configuration │ │ │ │ │ └── AdviceDeepDiveConfiguration.java │ │ │ └── resources │ │ │ │ └── log4j.properties │ │ │ └── test │ │ │ └── java │ │ │ └── advicedeepdive │ │ │ ├── AfterAdviceTest.java │ │ │ ├── AfterReturningAdviceTest.java │ │ │ ├── AfterThrowingAdviceTest.java │ │ │ ├── AroundAdviceTest.java │ │ │ └── BeforeAdviceTest.java │ ├── m06-pointcut-deep-dive │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ ├── annotation │ │ │ │ └── Trace.java │ │ │ │ ├── com │ │ │ │ └── ewolff │ │ │ │ │ ├── aspect │ │ │ │ │ ├── BeanNameAspect.java │ │ │ │ │ ├── ClassNameAspect.java │ │ │ │ │ └── TraceAnnotationAspect.java │ │ │ │ │ ├── configuration │ │ │ │ │ └── SystemConfiguration.java │ │ │ │ │ ├── repository │ │ │ │ │ └── SimpleRepository.java │ │ │ │ │ └── service │ │ │ │ │ └── SimpleService.java │ │ │ │ └── mypointcuts │ │ │ │ └── MyPointcuts.java │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── ewolff │ │ │ └── aspect │ │ │ ├── BeanNameAspectTest.java │ │ │ ├── ClassNameAspectTest.java │ │ │ └── TraceAnnotationAspectTest.java │ ├── m07-expressing-architecture-using-pointcut-annotations │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ ├── SystemArchitecture.java │ │ │ │ └── com │ │ │ │ │ └── ewolff │ │ │ │ │ ├── aspects │ │ │ │ │ ├── CallTracker.java │ │ │ │ │ ├── ExceptionLoggingAspect.java │ │ │ │ │ ├── PerformanceAspect.java │ │ │ │ │ └── TracingAspect.java │ │ │ │ │ ├── repository │ │ │ │ │ └── MyRepository.java │ │ │ │ │ └── service │ │ │ │ │ └── MyService.java │ │ │ └── resources │ │ │ │ └── system-configuration.xml │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── ewolff │ │ │ └── aspects │ │ │ ├── AroundTracingAspectTest.java │ │ │ ├── ExceptionLoggingAspectTest.java │ │ │ └── PerformanceAspectTest.java │ ├── m07-expressing-architecture-using-pointcut-packages │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ ├── SystemArchitecture.java │ │ │ │ └── com │ │ │ │ │ └── ewolff │ │ │ │ │ ├── aspects │ │ │ │ │ ├── CallTracker.java │ │ │ │ │ ├── ExceptionLoggingAspect.java │ │ │ │ │ ├── PerformanceAspect.java │ │ │ │ │ └── TracingAspect.java │ │ │ │ │ ├── repository │ │ │ │ │ └── MyRepository.java │ │ │ │ │ └── service │ │ │ │ │ └── MyService.java │ │ │ └── resources │ │ │ │ └── system-configuration.xml │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── ewolff │ │ │ └── aspects │ │ │ ├── AroundTracingAspectTest.java │ │ │ ├── ExceptionLoggingAspectTest.java │ │ │ └── PerformanceAspectTest.java │ ├── m08-how-aspects-are-added-to-objects │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ ├── com │ │ │ │ └── ewolff │ │ │ │ │ ├── aspects │ │ │ │ │ ├── CallTracker.java │ │ │ │ │ └── DemoAspect.java │ │ │ │ │ └── demo │ │ │ │ │ ├── DemoClass.java │ │ │ │ │ └── TxExample.java │ │ │ │ └── configuration │ │ │ │ └── SystemConfiguration.java │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── ewolff │ │ │ └── aspects │ │ │ ├── DemoTest.java │ │ │ └── ManuallyAddingAdvice.java │ ├── m09-spring-aop-vs-aspectj-load-time-weaving │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── ewolff │ │ │ │ ├── demo │ │ │ │ ├── CallAdvicedMethod.java │ │ │ │ └── DemoClass.java │ │ │ │ └── loadtimeweaving │ │ │ │ └── DemoAspect.java │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── aop.xml │ ├── m10-spring-aspect-library-tracing │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ ├── SystemArchitecture.java │ │ │ │ ├── com │ │ │ │ │ └── ewolff │ │ │ │ │ │ └── service │ │ │ │ │ │ └── PlainService.java │ │ │ │ └── configuration │ │ │ │ │ └── SystemConfiguration.java │ │ │ └── resources │ │ │ │ └── system-configuration.xml │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── ewolff │ │ │ └── aspects │ │ │ └── TracingTest.java │ ├── m10-spring-aspect-library-transactions │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ ├── SystemArchitecture.java │ │ │ │ └── com │ │ │ │ │ └── ewolff │ │ │ │ │ ├── service │ │ │ │ │ └── PlainService.java │ │ │ │ │ └── transaction │ │ │ │ │ └── StubPlatformTransactionManager.java │ │ │ └── resources │ │ │ │ └── system-configuration.xml │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── ewolff │ │ │ └── aspects │ │ │ └── TransactionTest.java │ ├── m11-real-life-aspects-circuitbreaker │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ ├── SystemArchitecture.java │ │ │ │ ├── com │ │ │ │ └── ewolff │ │ │ │ │ └── circuitbreaker │ │ │ │ │ ├── CircuitBreaker.java │ │ │ │ │ ├── CircuitBreakerAspect.java │ │ │ │ │ ├── CircuitBreakerService.java │ │ │ │ │ ├── CircuitBreakerServiceImpl.java │ │ │ │ │ └── CircuitBreakerServiceImpl2.java │ │ │ │ └── configuration │ │ │ │ └── SystemConfiguration.java │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── ewolff │ │ │ └── circuitbreaker │ │ │ └── CircuitBreakerTest.java │ ├── m11-real-life-aspects-datacapture │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ ├── SystemArchitecture.java │ │ │ │ ├── com │ │ │ │ └── ewolff │ │ │ │ │ ├── datacapture │ │ │ │ │ ├── Call.java │ │ │ │ │ ├── CallContext.java │ │ │ │ │ └── FirstFailureDataCaptureAspect.java │ │ │ │ │ └── service │ │ │ │ │ ├── ErroneousService.java │ │ │ │ │ └── PlainService.java │ │ │ │ └── configuration │ │ │ │ └── SystemConfiguration.java │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── ewolff │ │ │ └── datacapture │ │ │ └── DataCaptureTest.java │ ├── m11-real-life-aspects-exceptions │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ ├── SystemArchitecture.java │ │ │ │ ├── com │ │ │ │ └── ewolff │ │ │ │ │ ├── exceptions │ │ │ │ │ └── ExceptionHandling.java │ │ │ │ │ └── retry │ │ │ │ │ ├── ErroneousService.java │ │ │ │ │ └── RetryAspect.java │ │ │ │ └── configuration │ │ │ │ └── SystemConfiguration.java │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── ewolff │ │ │ └── retry │ │ │ └── RetryTest.java │ ├── m11-real-life-aspects-filter │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ ├── SystemArchitecture.java │ │ │ │ ├── com │ │ │ │ └── ewolff │ │ │ │ │ ├── aspect │ │ │ │ │ └── AccountFilterAspect.java │ │ │ │ │ ├── domain │ │ │ │ │ ├── Account.java │ │ │ │ │ └── Customer.java │ │ │ │ │ └── repository │ │ │ │ │ └── AccountRepository.java │ │ │ │ └── configuration │ │ │ │ └── SystemConfiguration.java │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── ewolff │ │ │ └── filter │ │ │ └── FilterTest.java │ ├── m11-real-life-aspects-jpa │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── ewolff │ │ │ └── jpa │ │ │ ├── HibernateStateSynchronizer.java │ │ │ └── JPAStateSynchronizer.java │ ├── m11-real-life-aspects-retry │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ ├── SystemArchitecture.java │ │ │ │ ├── com │ │ │ │ └── ewolff │ │ │ │ │ ├── retry │ │ │ │ │ ├── ErroneousService.java │ │ │ │ │ └── RetryAspect.java │ │ │ │ │ └── service │ │ │ │ │ └── PlainService.java │ │ │ │ └── configuration │ │ │ │ └── SystemConfiguration.java │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── ewolff │ │ │ └── retry │ │ │ └── RetryTest.java │ └── pom.xml ├── Tests │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── learning │ │ └── linnyk │ │ ├── App.java │ │ ├── aspects │ │ └── TestAspect.java │ │ ├── initialization │ │ └── config │ │ │ └── AppConfiguration.java │ │ └── services │ │ ├── MyClass.java │ │ └── MyOtherClass.java └── pom.xml ├── DB ├── SpringCache │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── learning │ │ └── linnyk │ │ ├── App.java │ │ ├── config │ │ └── AppConfig.java │ │ ├── domain │ │ └── City.java │ │ ├── repositories │ │ └── CitiesRepository.java │ │ └── services │ │ └── CitiesService.java ├── SpringData │ ├── Spring_Data_for_Java_Developers │ │ ├── 1_configurations │ │ │ ├── Java_Configuration │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── oreilly │ │ │ │ │ └── sdata │ │ │ │ │ ├── Application.java │ │ │ │ │ ├── BookRepository.java │ │ │ │ │ ├── BookService.java │ │ │ │ │ ├── DataConfiguration.java │ │ │ │ │ └── data │ │ │ │ │ └── entities │ │ │ │ │ └── Book.java │ │ │ ├── Spring_Boot_Configuration │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── oreilly │ │ │ │ │ │ └── sdata │ │ │ │ │ │ ├── BookRepository.java │ │ │ │ │ │ ├── SpringDataBootApplication.java │ │ │ │ │ │ └── data │ │ │ │ │ │ └── entities │ │ │ │ │ │ └── Book.java │ │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ ├── XML_Configuration │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── oreilly │ │ │ │ │ │ └── sdata │ │ │ │ │ │ ├── Application.java │ │ │ │ │ │ ├── BookRepository.java │ │ │ │ │ │ ├── BookService.java │ │ │ │ │ │ └── data │ │ │ │ │ │ └── entities │ │ │ │ │ │ └── Book.java │ │ │ │ │ └── resources │ │ │ │ │ └── spring │ │ │ │ │ └── application-context.xml │ │ │ └── pom.xml │ │ ├── 2_crud │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── oreilly │ │ │ │ │ └── sdata │ │ │ │ │ ├── Application.java │ │ │ │ │ ├── data │ │ │ │ │ └── entities │ │ │ │ │ │ └── Book.java │ │ │ │ │ ├── repositories │ │ │ │ │ └── BookRepository.java │ │ │ │ │ └── util │ │ │ │ │ └── BookUtil.java │ │ │ │ └── resources │ │ │ │ ├── init.sql │ │ │ │ ├── log4j.properties │ │ │ │ └── spring │ │ │ │ └── application-context.xml │ │ ├── 3_derived_query │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── oreilly │ │ │ │ │ │ └── sdata │ │ │ │ │ │ ├── data │ │ │ │ │ │ └── entities │ │ │ │ │ │ │ ├── Author.java │ │ │ │ │ │ │ └── Book.java │ │ │ │ │ │ └── repositories │ │ │ │ │ │ └── BookRepository.java │ │ │ │ └── resources │ │ │ │ │ ├── init.sql │ │ │ │ │ ├── log4j.properties │ │ │ │ │ └── spring │ │ │ │ │ └── application-context.xml │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── oreilly │ │ │ │ └── sdata │ │ │ │ └── TestBookRepository.java │ │ ├── 4_query_techniques │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── oreilly │ │ │ │ │ │ └── sdata │ │ │ │ │ │ ├── data │ │ │ │ │ │ └── entities │ │ │ │ │ │ │ ├── Author.java │ │ │ │ │ │ │ └── Book.java │ │ │ │ │ │ └── repositories │ │ │ │ │ │ └── BookRepository.java │ │ │ │ └── resources │ │ │ │ │ ├── init.sql │ │ │ │ │ ├── log4j.properties │ │ │ │ │ └── spring │ │ │ │ │ └── application-context.xml │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── oreilly │ │ │ │ └── sdata │ │ │ │ └── TestBookRepository.java │ │ ├── 5_advanced_techniques │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── oreilly │ │ │ │ │ │ └── sdata │ │ │ │ │ │ ├── AsyncBookRepositoryApplication.java │ │ │ │ │ │ ├── CustomAuditorAware.java │ │ │ │ │ │ ├── data │ │ │ │ │ │ └── entities │ │ │ │ │ │ │ ├── Author.java │ │ │ │ │ │ │ └── Book.java │ │ │ │ │ │ ├── repositories │ │ │ │ │ │ ├── BaseRepository.java │ │ │ │ │ │ ├── BookRepository.java │ │ │ │ │ │ └── ExtendedRepositoryImpl.java │ │ │ │ │ │ └── util │ │ │ │ │ │ └── BookUtil.java │ │ │ │ └── resources │ │ │ │ │ ├── init.sql │ │ │ │ │ ├── log4j.properties │ │ │ │ │ └── spring │ │ │ │ │ └── application-context.xml │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── oreilly │ │ │ │ └── sdata │ │ │ │ └── TestBookRepository.java │ │ ├── 6_spring_mvc_integration │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── oreilly │ │ │ │ │ └── sdata │ │ │ │ │ ├── controllers │ │ │ │ │ └── BookController.java │ │ │ │ │ ├── data │ │ │ │ │ └── entities │ │ │ │ │ │ ├── Author.java │ │ │ │ │ │ └── Book.java │ │ │ │ │ └── repositories │ │ │ │ │ └── BookRepository.java │ │ │ │ ├── resources │ │ │ │ ├── init.sql │ │ │ │ ├── log4j.properties │ │ │ │ └── spring │ │ │ │ │ └── application-context.xml │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── spring │ │ │ │ ├── dispatcher-servlet.xml │ │ │ │ └── root-context.xml │ │ │ │ ├── views │ │ │ │ ├── book.jsp │ │ │ │ └── books.jsp │ │ │ │ └── web.xml │ │ ├── 7_mongo │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── oreilly │ │ │ │ │ │ └── sdata │ │ │ │ │ │ ├── config │ │ │ │ │ │ └── MongoDBConfig.java │ │ │ │ │ │ ├── data │ │ │ │ │ │ └── entities │ │ │ │ │ │ │ ├── Author.java │ │ │ │ │ │ │ └── Book.java │ │ │ │ │ │ └── util │ │ │ │ │ │ └── BookUtil.java │ │ │ │ └── resources │ │ │ │ │ ├── log4j.properties │ │ │ │ │ └── spring │ │ │ │ │ └── application-context.xml │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── oreilly │ │ │ │ └── sdata │ │ │ │ ├── TestMongoJavaConfig.java │ │ │ │ └── TestMongoXMLConfig.java │ │ ├── 8_mongo_repository │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── oreilly │ │ │ │ │ │ └── sdata │ │ │ │ │ │ ├── Author.java │ │ │ │ │ │ ├── AuthorToDBObjectConverter.java │ │ │ │ │ │ ├── Book.java │ │ │ │ │ │ ├── DBObjectToAuthorConverter.java │ │ │ │ │ │ ├── Library.java │ │ │ │ │ │ ├── PointDeserializer.java │ │ │ │ │ │ ├── repository │ │ │ │ │ │ └── BookRepository.java │ │ │ │ │ │ └── util │ │ │ │ │ │ └── BookUtil.java │ │ │ │ └── resources │ │ │ │ │ ├── log4j.properties │ │ │ │ │ ├── populate.js │ │ │ │ │ └── spring │ │ │ │ │ └── application-context.xml │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── oreilly │ │ │ │ └── sdata │ │ │ │ └── TestMongoXMLConfig.java │ │ ├── 9_spring_data_rest │ │ │ ├── pom.xml │ │ │ ├── spring-data-course │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ ├── java │ │ │ │ │ ├── META-INF │ │ │ │ │ │ └── MANIFEST.MF │ │ │ │ │ └── com │ │ │ │ │ │ └── oreilly │ │ │ │ │ │ └── sdata │ │ │ │ │ │ ├── Application.java │ │ │ │ │ │ ├── Author.java │ │ │ │ │ │ ├── Book.java │ │ │ │ │ │ ├── BookRepository.java │ │ │ │ │ │ └── BookService.java │ │ │ │ │ └── resources │ │ │ │ │ ├── application-context.xml │ │ │ │ │ ├── init.sql │ │ │ │ │ └── log4j.properties │ │ │ └── spring-data-rest │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── oreilly │ │ │ │ │ └── sdata │ │ │ │ │ ├── ClassicProjection.java │ │ │ │ │ └── CustomRepositoryRestConfigurerAdapter.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── spring │ │ │ │ └── root-context.xml │ │ │ │ └── web.xml │ │ └── pom.xml │ ├── pom.xml │ └── ps-guitar-db │ │ ├── pom.xml │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── guitar │ │ │ │ └── db │ │ │ │ ├── config │ │ │ │ └── JpaConfiguration.java │ │ │ │ ├── model │ │ │ │ ├── Location.java │ │ │ │ ├── Manufacturer.java │ │ │ │ ├── Model.java │ │ │ │ └── ModelType.java │ │ │ │ └── repository │ │ │ │ ├── LocationRepository.java │ │ │ │ ├── ManufacturerRepository.java │ │ │ │ ├── ModelRepository.java │ │ │ │ ├── ModelTypeRepository.java │ │ │ │ └── spring_data │ │ │ │ ├── LocationDataJPARepository.java │ │ │ │ ├── ManufacturerDataJPARepository.java │ │ │ │ ├── ModelDataJPARepository.java │ │ │ │ ├── ModelTypeDataJPARepository.java │ │ │ │ └── custom │ │ │ │ ├── ModelDataCustomJPARepository.java │ │ │ │ └── ModelDataJPARepositoryImpl.java │ │ └── resources │ │ │ ├── META-INF │ │ │ ├── persistence.xml │ │ │ └── spring │ │ │ │ └── app-context.xml │ │ │ └── h2 │ │ │ ├── data.sql │ │ │ └── db.h2.db │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── guitar │ │ │ └── db │ │ │ ├── LocationPersistenceTests.java │ │ │ ├── ManufacturerPersistenceTests.java │ │ │ ├── ModelPersistenceTests.java │ │ │ └── ModelTypePersistenceTests.java │ │ └── resources │ │ ├── com │ │ └── guitar │ │ │ └── db │ │ │ └── applicationTests-context.xml │ │ └── log4j.properties ├── SpringJDBC │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── pluralsight │ │ │ │ ├── controller │ │ │ │ └── RideController.java │ │ │ │ ├── model │ │ │ │ └── Ride.java │ │ │ │ ├── repository │ │ │ │ ├── RideRepository.java │ │ │ │ └── RideRepositoryImpl.java │ │ │ │ ├── service │ │ │ │ ├── RideService.java │ │ │ │ └── RideServiceImpl.java │ │ │ │ └── util │ │ │ │ ├── RideRowMapper.java │ │ │ │ └── ServiceError.java │ │ ├── resources │ │ │ ├── db │ │ │ │ ├── datasource.properties │ │ │ │ └── schema.sql │ │ │ ├── jdbc-config.xml │ │ │ └── log4j.properties │ │ └── webapp │ │ │ ├── WEB-INF │ │ │ ├── config │ │ │ │ └── servlet-config.xml │ │ │ └── web.xml │ │ │ └── index.jsp │ │ └── test │ │ └── java │ │ └── com │ │ └── pluralsight │ │ └── controller │ │ └── RestControllerTest.java └── pom.xml ├── IOC ├── Cert │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── learning │ │ │ │ └── linnyk │ │ │ │ ├── autowire │ │ │ │ ├── beans │ │ │ │ │ ├── BeanConstruct.java │ │ │ │ │ ├── BeanMethod.java │ │ │ │ │ ├── BeanMethodReturnValue.java │ │ │ │ │ ├── BeanSetter.java │ │ │ │ │ └── BeanValue.java │ │ │ │ └── config │ │ │ │ │ └── AutowireConfiguration.java │ │ │ │ ├── factorybean │ │ │ │ ├── App.java │ │ │ │ ├── beans │ │ │ │ │ ├── MainBean.java │ │ │ │ │ └── factory │ │ │ │ │ │ └── MainBeanFactory.java │ │ │ │ └── config │ │ │ │ │ └── FactoryBeanConfiguration.java │ │ │ │ ├── initialization │ │ │ │ ├── App.java │ │ │ │ ├── beans │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── Item.java │ │ │ │ │ ├── User.java │ │ │ │ │ └── order │ │ │ │ │ │ ├── Average.java │ │ │ │ │ │ ├── Excellent.java │ │ │ │ │ │ ├── Good.java │ │ │ │ │ │ └── Rating.java │ │ │ │ ├── bfpp │ │ │ │ │ └── UserBeanFactoryPostProcessor.java │ │ │ │ ├── bpp │ │ │ │ │ └── UserBeanPostProcessor.java │ │ │ │ └── config │ │ │ │ │ └── AppInitConfiguration.java │ │ │ │ ├── pair │ │ │ │ ├── App.java │ │ │ │ ├── beans │ │ │ │ │ ├── MainBean.java │ │ │ │ │ └── SecondBean.java │ │ │ │ └── config │ │ │ │ │ └── PairConfiguration.java │ │ │ │ ├── profile │ │ │ │ ├── MainProfiles.java │ │ │ │ ├── beans │ │ │ │ │ ├── ProfileBeanHisto.java │ │ │ │ │ └── ProfileBeanLive.java │ │ │ │ ├── config │ │ │ │ │ ├── TestConfiguration1.java │ │ │ │ │ ├── TestConfiguration2.java │ │ │ │ │ └── TestConfiguration3.java │ │ │ │ └── primary │ │ │ │ │ ├── MainApp.java │ │ │ │ │ ├── NoSQLUserService.java │ │ │ │ │ ├── PostgreUserServiceImpl.java │ │ │ │ │ ├── PrimaryTestConfiguration.java │ │ │ │ │ └── UserService.java │ │ │ │ ├── proxy │ │ │ │ ├── App.java │ │ │ │ ├── beans │ │ │ │ │ ├── Bean1.java │ │ │ │ │ ├── Bean2.java │ │ │ │ │ └── Bean3.java │ │ │ │ └── config │ │ │ │ │ └── AppProxyConfiguration.java │ │ │ │ ├── schedule │ │ │ │ ├── App.java │ │ │ │ ├── beans │ │ │ │ │ ├── Bean.java │ │ │ │ │ ├── BeanChild.java │ │ │ │ │ └── BeanParent.java │ │ │ │ └── config │ │ │ │ │ └── SpringConfig.java │ │ │ │ └── state │ │ │ │ ├── App.java │ │ │ │ ├── beans │ │ │ │ └── StatefulBean.java │ │ │ │ └── config │ │ │ │ └── StateConfiguration.java │ │ └── resources │ │ │ └── pair │ │ │ └── pair.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── learning │ │ └── linnyk │ │ └── ProfilesTest.java ├── Courses │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── learning │ │ │ │ └── linnyk │ │ │ │ ├── jb │ │ │ │ ├── _1_di │ │ │ │ │ ├── DrawingApp.java │ │ │ │ │ ├── TriangleAutowiringByConstructor.java │ │ │ │ │ ├── TriangleAutowiringByName.java │ │ │ │ │ ├── TriangleAutowiringByType.java │ │ │ │ │ ├── TriangleCollections.java │ │ │ │ │ └── beans │ │ │ │ │ │ ├── Point.java │ │ │ │ │ │ ├── Square.java │ │ │ │ │ │ └── Triangle.java │ │ │ │ ├── _2_scope_lifecycle │ │ │ │ │ ├── DisplayNameBeanPostProcessor.java │ │ │ │ │ ├── DrawingApp.java │ │ │ │ │ ├── MyBeanFactoryPostProcessor.java │ │ │ │ │ └── beans │ │ │ │ │ │ ├── Triangle.java │ │ │ │ │ │ ├── TriangleAware.java │ │ │ │ │ │ ├── TriangleInheritance.java │ │ │ │ │ │ ├── TriangleLifecycle.java │ │ │ │ │ │ ├── autowired │ │ │ │ │ │ ├── Building.java │ │ │ │ │ │ ├── Food.java │ │ │ │ │ │ ├── Item.java │ │ │ │ │ │ ├── NotExistsBean.java │ │ │ │ │ │ ├── Person.java │ │ │ │ │ │ └── Shop.java │ │ │ │ │ │ ├── dependency │ │ │ │ │ │ ├── Dependency.java │ │ │ │ │ │ └── Holder.java │ │ │ │ │ │ └── qualifier │ │ │ │ │ │ ├── FactoryMethodComponent.java │ │ │ │ │ │ └── TestBean.java │ │ │ │ └── _3_annotation_event │ │ │ │ │ ├── Circle.java │ │ │ │ │ ├── DrawingApp.java │ │ │ │ │ ├── Point.java │ │ │ │ │ ├── Shape.java │ │ │ │ │ ├── Triangle.java │ │ │ │ │ └── event │ │ │ │ │ ├── DrawEvent.java │ │ │ │ │ ├── DrawingEventApp.java │ │ │ │ │ ├── MyEventListener.java │ │ │ │ │ └── MyEventPublisher.java │ │ │ │ ├── lmi │ │ │ │ ├── java │ │ │ │ │ ├── _1_version_using_proxymode │ │ │ │ │ │ ├── AppLMI.java │ │ │ │ │ │ ├── ConfigurationLMI.java │ │ │ │ │ │ ├── PrototypeService.java │ │ │ │ │ │ └── SingletonService.java │ │ │ │ │ ├── _2_version_using_lookup_annotation │ │ │ │ │ │ ├── App.java │ │ │ │ │ │ ├── Command.java │ │ │ │ │ │ ├── CommandManager.java │ │ │ │ │ │ └── LMIConfiguration.java │ │ │ │ │ └── _3_version_using_lookup_annotation_and_abstract │ │ │ │ │ │ ├── App.java │ │ │ │ │ │ ├── Command.java │ │ │ │ │ │ ├── CommandManager.java │ │ │ │ │ │ └── LMIConfiguration.java │ │ │ │ └── xml │ │ │ │ │ ├── LmiMain.java │ │ │ │ │ └── components │ │ │ │ │ ├── Message.java │ │ │ │ │ └── MessageService.java │ │ │ │ ├── pluralsight │ │ │ │ ├── java │ │ │ │ │ ├── Application.java │ │ │ │ │ ├── config │ │ │ │ │ │ └── AppConfig.java │ │ │ │ │ ├── domain │ │ │ │ │ │ └── Customer.java │ │ │ │ │ ├── repository │ │ │ │ │ │ ├── CustomRepository.java │ │ │ │ │ │ └── HibernateCustomRepository.java │ │ │ │ │ └── service │ │ │ │ │ │ ├── CustomerService.java │ │ │ │ │ │ └── CustomerServiceImpl.java │ │ │ │ └── xml │ │ │ │ │ ├── Application.java │ │ │ │ │ ├── domain │ │ │ │ │ └── Customer.java │ │ │ │ │ ├── repository │ │ │ │ │ ├── CustomRepository.java │ │ │ │ │ └── HibernateCustomRepository.java │ │ │ │ │ └── service │ │ │ │ │ ├── CustomerService.java │ │ │ │ │ └── CustomerServiceImpl.java │ │ │ │ └── spring_ripper │ │ │ │ ├── part1 │ │ │ │ ├── Application.java │ │ │ │ ├── annotations │ │ │ │ │ ├── DeprecatedClass.java │ │ │ │ │ ├── InjectRandomInt.java │ │ │ │ │ ├── PostProxy.java │ │ │ │ │ └── Profiling.java │ │ │ │ ├── bean │ │ │ │ │ ├── Quoter.java │ │ │ │ │ └── impl │ │ │ │ │ │ ├── T1000.java │ │ │ │ │ │ └── TerminatorQuoter.java │ │ │ │ ├── bean_factory_post_processors │ │ │ │ │ └── DeprecationHandlerBeanFactoryPostProcessor.java │ │ │ │ ├── bean_post_processors │ │ │ │ │ ├── InjectRandomIntAnnotationBeanPostProcessor.java │ │ │ │ │ └── ProfilingHandlerBeanPostProcessor.java │ │ │ │ ├── context │ │ │ │ │ └── PropertyFileApplicationContext.java │ │ │ │ ├── context_listeners │ │ │ │ │ └── PostProxyInvokerContextListener.java │ │ │ │ └── mbean │ │ │ │ │ ├── ProfilingController.java │ │ │ │ │ └── ProfilingControllerMBean.java │ │ │ │ └── part2 │ │ │ │ ├── Application.java │ │ │ │ ├── bean_post_processors │ │ │ │ └── CustomScopeRegistryBeanFactoryPostProcessor.java │ │ │ │ ├── config │ │ │ │ └── Config.java │ │ │ │ ├── scope │ │ │ │ └── PeriodicalScopeConfigurer.java │ │ │ │ └── screensaver │ │ │ │ └── ColorFrame.java │ │ └── resources │ │ │ ├── jb │ │ │ ├── _1_di │ │ │ │ └── spring.xml │ │ │ ├── _2_scope_lifecycle │ │ │ │ ├── pointsconfig.properties │ │ │ │ └── spring.xml │ │ │ └── _3_annotation_event │ │ │ │ ├── config.properties │ │ │ │ └── spring.xml │ │ │ ├── lmi │ │ │ └── spring-config.xml │ │ │ ├── pluralsight │ │ │ ├── java │ │ │ │ └── app.properties │ │ │ └── xml │ │ │ │ └── spring.xml │ │ │ └── spring_ripper │ │ │ ├── context.properties │ │ │ └── spring.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── learning │ │ └── linnyk │ │ ├── MainProfiles.java │ │ ├── ProfileBeanHisto.java │ │ ├── ProfileBeanLive.java │ │ ├── ProfilesTest.java │ │ ├── TestConfiguration1.java │ │ ├── TestConfiguration2.java │ │ ├── TestConfiguration3.java │ │ └── TestConfiguration4.java ├── IOC.iml └── pom.xml ├── Integration ├── SimpleJMX │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── learning │ │ └── linnyk │ │ ├── client │ │ ├── Client.java │ │ └── config │ │ │ └── ClientJmxConfig.java │ │ └── server │ │ ├── Server.java │ │ ├── beans │ │ ├── IMBeanExample.java │ │ └── impl │ │ │ └── MBeanExample.java │ │ └── config │ │ └── ServerJmxConfig.java ├── SimpleRMI │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── learning │ │ └── linnyk │ │ ├── client │ │ ├── Client.java │ │ └── config │ │ │ └── RmiClientConfig.java │ │ └── server │ │ ├── Server.java │ │ ├── config │ │ └── RmiServerConfig.java │ │ └── services │ │ ├── UserService.java │ │ └── UserServiceImpl.java └── pom.xml ├── LICENSE ├── Notes.md ├── README.md ├── Spring5 ├── Reactive │ ├── .gitignore │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── pluralsight │ │ │ └── web │ │ │ └── reactive │ │ │ ├── ReactiveApplication.java │ │ │ ├── controller │ │ │ └── PersonController.java │ │ │ ├── model │ │ │ └── Person.java │ │ │ └── repository │ │ │ └── PersonRepository.java │ │ └── resources │ │ ├── application.properties │ │ ├── data.sql │ │ └── schema.sql ├── Tester │ ├── .gitignore │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── pluralsight │ │ │ │ └── TesterApplication.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── pluralsight │ │ ├── TesterAssertionTests.java │ │ ├── TesterAssumptionTests.java │ │ ├── TesterExceptionTests.java │ │ └── TesterRunnerTests.java └── pom.xml ├── SpringCloud ├── BuildingMicroservicesWithSpring │ ├── APIGatewayServiceWithZuul │ │ ├── or-zuul-api-gateway │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com.learning.linnyk │ │ │ │ │ ├── ORZuulFilter.java │ │ │ │ │ └── ZuulAPIGatewayApplication.java │ │ │ │ └── resources │ │ │ │ └── application.properties │ │ ├── or-zuul-simple-service │ │ │ ├── pom.xml │ │ │ ├── src │ │ │ │ └── main │ │ │ │ │ ├── java │ │ │ │ │ └── com.learning.linnyk │ │ │ │ │ │ └── ZuulSimpleServiceApplication.java │ │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ └── target │ │ │ │ └── classes │ │ │ │ └── application.properties │ │ └── pom.xml │ ├── CircuitBreakingAndMonitoringWithHystrix │ │ ├── pom.xml │ │ ├── spring-microservices-hystrix │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com.learning.linnyk │ │ │ │ │ └── HystrixApplication.java │ │ │ │ └── resources │ │ │ │ └── application.properties │ │ └── spring-microservices-simple-service │ │ │ ├── pom.xml │ │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com.learning.linnyk │ │ │ │ └── SimpleServiceApplication.java │ │ │ └── resources │ │ │ └── application.properties │ ├── LoadBalancingWithRibbon │ │ ├── or-ribbon-cloud-service-client │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com.learning.linnyk │ │ │ │ │ ├── RibbonServiceConfiguration.java │ │ │ │ │ └── RibbonSimpleServiceClientApplication.java │ │ │ │ └── resources │ │ │ │ └── application.properties │ │ ├── or-ribbon-cloud-service-server │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com.learning.linnyk │ │ │ │ │ └── RibbonSimpleServiceServerApplication.java │ │ │ │ └── resources │ │ │ │ └── application.properties │ │ └── pom.xml │ ├── ServiceRegistryAndDiscoveryWithEureka │ │ ├── or-eureka-client │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com.learning.linnyk │ │ │ │ │ └── SpringMicroservicesEurekaClientApplication.java │ │ │ │ └── resources │ │ │ │ └── application.properties │ │ ├── or-eureka-server │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com.learning.linnyk │ │ │ │ │ └── SpringMicroservicesEurekaServerApplication.java │ │ │ │ └── resources │ │ │ │ └── application.properties │ │ ├── or-service │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com.learning.linnyk │ │ │ │ │ └── SpringMicroservicesEurekaClient2Application.java │ │ │ │ └── resources │ │ │ │ └── application.properties │ │ └── pom.xml │ ├── SpringCloudConfiguration │ │ ├── or-config-client │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── learning │ │ │ │ │ └── linnyk │ │ │ │ │ └── ConfigClientApplication.java │ │ │ │ └── resources │ │ │ │ ├── application.properties │ │ │ │ └── bootstrap.properties │ │ ├── or-config-server │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── learning │ │ │ │ │ └── linnyk │ │ │ │ │ └── ConfigServerApplication.java │ │ │ │ └── resources │ │ │ │ └── application.properties │ │ └── pom.xml │ ├── SpringCloudSampleProject │ │ ├── pom.xml │ │ ├── spring-microservices-library-catalog │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── oreilly │ │ │ │ │ │ └── cloud │ │ │ │ │ │ ├── Book.java │ │ │ │ │ │ └── CatalogLibraryMicroservice.java │ │ │ │ └── resources │ │ │ │ │ └── bootstrap.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── oreilly │ │ │ │ └── cloud │ │ │ │ └── CatalogLibraryMicroserviceTests.java │ │ ├── spring-microservices-library-config │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── oreilly │ │ │ │ │ │ └── cloud │ │ │ │ │ │ └── LibraryConfigMicroservice.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── oreilly │ │ │ │ └── cloud │ │ │ │ └── LibraryConfigMicroserviceTests.java │ │ ├── spring-microservices-library-edge │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── oreilly │ │ │ │ │ │ └── cloud │ │ │ │ │ │ └── GatewayLibraryMicroservice.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── oreilly │ │ │ │ └── cloud │ │ │ │ └── SpringMicroservicesLibraryEdgeApplicationTests.java │ │ ├── spring-microservices-library-registry │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── oreilly │ │ │ │ │ │ └── cloud │ │ │ │ │ │ └── RegistryLibraryMicroservice.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── oreilly │ │ │ │ └── cloud │ │ │ │ └── RegistryLibraryMicroserviceTests.java │ │ ├── spring-microservices-library-reservation │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── oreilly │ │ │ │ │ │ └── cloud │ │ │ │ │ │ ├── Reservation.java │ │ │ │ │ │ └── ReservationLibraryMicroservice.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── oreilly │ │ │ │ └── cloud │ │ │ │ └── ReservationLibraryMicroserviceApplicationTests.java │ │ └── spring-microservices-library-ui │ │ │ ├── pom.xml │ │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── oreilly │ │ │ │ │ └── cloud │ │ │ │ │ └── UiLibraryMicroservice.java │ │ │ └── resources │ │ │ │ ├── application.properties │ │ │ │ ├── public │ │ │ │ └── home.html │ │ │ │ └── static │ │ │ │ ├── css │ │ │ │ └── styles.css │ │ │ │ └── js │ │ │ │ ├── jquery-3.1.1.min.js │ │ │ │ └── main.js │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── oreilly │ │ │ └── cloud │ │ │ └── UiLibraryMicroserviceTests.java │ ├── SpringCloudSecurity │ │ ├── AuthorizationClient │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com.learning.linnyk │ │ │ │ │ ├── OauthClientApplication.java │ │ │ │ │ └── WebSecurityConfig.java │ │ │ │ └── resources │ │ │ │ └── application.properties │ │ ├── AuthorizationResource │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com.learning.linnyk │ │ │ │ │ ├── OauthResourceApplication.java │ │ │ │ │ └── WebSecurityConfig.java │ │ │ │ └── resources │ │ │ │ └── application.properties │ │ ├── AuthorizationServer │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com.learning.linnyk │ │ │ │ │ ├── AuthorizationServerConfig.java │ │ │ │ │ ├── OauthServerApplication.java │ │ │ │ │ └── WebSecurityConfig.java │ │ │ │ └── resources │ │ │ │ ├── application.properties │ │ │ │ └── schema.sql │ │ └── pom.xml │ └── pom.xml ├── Microservices │ ├── currency-conversion-service │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── learning │ │ │ │ │ └── linnyk │ │ │ │ │ └── cloud │ │ │ │ │ └── currencyconversionservice │ │ │ │ │ ├── CurrencyConversionBean.java │ │ │ │ │ ├── CurrencyConversionController.java │ │ │ │ │ ├── CurrencyConversionServiceApplication.java │ │ │ │ │ └── CurrencyExchangeServiceProxy.java │ │ │ └── resources │ │ │ │ └── application.properties │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── learning │ │ │ └── linnyk │ │ │ └── cloud │ │ │ └── currencyconversionservice │ │ │ └── CurrencyConversionServiceApplicationTests.java │ ├── currency-exchange-service │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── leaning │ │ │ │ │ └── linnyk │ │ │ │ │ └── cloud │ │ │ │ │ └── currencyexchangeservice │ │ │ │ │ ├── CurrencyExchangeController.java │ │ │ │ │ ├── CurrencyExchangeServiceApplication.java │ │ │ │ │ ├── ExchangeValue.java │ │ │ │ │ └── ExchangeValueRepository.java │ │ │ └── resources │ │ │ │ ├── application.properties │ │ │ │ └── data.sql │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── leaning │ │ │ └── linnyk │ │ │ └── cloud │ │ │ └── currencyexchangeservice │ │ │ └── CurrencyExchangeServiceApplicationTests.java │ ├── limits-service │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── leaning │ │ │ │ │ └── linnyk │ │ │ │ │ └── cloud │ │ │ │ │ └── limitsservice │ │ │ │ │ ├── LimitsConfiguration.java │ │ │ │ │ ├── LimitsConfigurationController.java │ │ │ │ │ ├── LimitsServiceApplication.java │ │ │ │ │ └── bean │ │ │ │ │ └── LimitConfiguration.java │ │ │ └── resources │ │ │ │ └── bootstrap.properties │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── leaning │ │ │ └── linnyk │ │ │ └── cloud │ │ │ └── limitsservice │ │ │ └── LimitsServiceApplicationTests.java │ ├── netflix-eureka-server │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── learning │ │ │ │ │ └── linnyk │ │ │ │ │ └── cloud │ │ │ │ │ └── netflixeurekaserver │ │ │ │ │ └── NetflixEurekaServerApplication.java │ │ │ └── resources │ │ │ │ └── application.properties │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── learning │ │ │ └── linnyk │ │ │ └── cloud │ │ │ └── netflixeurekaserver │ │ │ └── NetflixEurekaServerApplicationTests.java │ ├── netflix-zuul-api-gateway-server │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── learning │ │ │ │ │ └── linnyk │ │ │ │ │ └── cloud │ │ │ │ │ └── netflixzuulapigatewayserver │ │ │ │ │ ├── NetflixZuulApiGatewayServerApplication.java │ │ │ │ │ └── ZuulLoggingFilter.java │ │ │ └── resources │ │ │ │ └── application.properties │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── learning │ │ │ └── linnyk │ │ │ └── cloud │ │ │ └── netflixzuulapigatewayserver │ │ │ └── NetflixZuulApiGatewayServerApplicationTests.java │ ├── pom.xml │ ├── spring-cloud-config-server │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── leaning │ │ │ │ │ └── linnyk │ │ │ │ │ └── cloud │ │ │ │ │ └── springcloudconfigserver │ │ │ │ │ └── SpringCloudConfigServerApplication.java │ │ │ └── resources │ │ │ │ └── application.properties │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── leaning │ │ │ └── linnyk │ │ │ └── cloud │ │ │ └── springcloudconfigserver │ │ │ └── SpringCloudConfigServerApplicationTests.java │ └── zipkin-distributed-tracing-server │ │ ├── pom.xml │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── learning │ │ │ │ └── linnyk │ │ │ │ └── cloud │ │ │ │ └── zipkindistributedtracingserver │ │ │ │ └── ZipkinDistributedTracingServerApplication.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── learning │ │ └── linnyk │ │ └── cloud │ │ └── zipkindistributedtracingserver │ │ └── ZipkinDistributedTracingServerApplicationTests.java ├── SpringCloudFundamentals │ ├── CircuitBreaker │ │ ├── discovery-server-circuit-breaker │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── learning │ │ │ │ │ │ └── linnyk │ │ │ │ │ │ └── DiscoveryServerApplication.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── learning │ │ │ │ └── linnyk │ │ │ │ └── DiscoveryServerApplicationTests.java │ │ ├── hystrix-dashboard │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── learning │ │ │ │ │ │ └── linnyk │ │ │ │ │ │ └── hystrixdashboard │ │ │ │ │ │ └── HystrixDashboardApplication.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── learning │ │ │ │ └── linnyk │ │ │ │ └── hystrixdashboard │ │ │ │ └── HystrixDashboardApplicationTests.java │ │ ├── hystrix-datetime-app │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── learning │ │ │ │ │ │ └── linnyk │ │ │ │ │ │ └── datetimeapp │ │ │ │ │ │ ├── DatetimeAppApplication.java │ │ │ │ │ │ └── DatetimeService.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── learning │ │ │ │ └── linnyk │ │ │ │ └── datetimeapp │ │ │ │ └── DatetimeAppApplicationTests.java │ │ ├── hystrix-datetime-service │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── learning │ │ │ │ │ │ └── linnyk │ │ │ │ │ │ └── datetimeservice │ │ │ │ │ │ └── DatetimeServiceApplication.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── learning │ │ │ │ └── linnyk │ │ │ │ └── datetimeservice │ │ │ │ └── DatetimeServiceApplicationTests.java │ │ ├── hystrix-weather-app │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── learning │ │ │ │ │ │ └── linnyk │ │ │ │ │ │ └── weatherapp │ │ │ │ │ │ ├── WeatherAppApplication.java │ │ │ │ │ │ └── WeatherService.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── learning │ │ │ │ └── linnyk │ │ │ │ └── weatherapp │ │ │ │ └── WeatherAppApplicationTests.java │ │ ├── hystrix-weather-service │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── learning │ │ │ │ │ │ └── linnyk │ │ │ │ │ │ └── weatherservice │ │ │ │ │ │ └── WeatherServiceApplication.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── learning │ │ │ │ └── linnyk │ │ │ │ └── weatherservice │ │ │ │ └── WeatherServiceApplicationTests.java │ │ ├── pom.xml │ │ └── turbine │ │ │ ├── pom.xml │ │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── learning │ │ │ │ │ └── linnyk │ │ │ │ │ └── turbine │ │ │ │ │ └── TurbineApplication.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── learning │ │ │ └── linnyk │ │ │ └── turbine │ │ │ └── TurbineApplicationTests.java │ ├── Configuration │ │ ├── config-client-app │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── learning │ │ │ │ │ │ └── linnyk │ │ │ │ │ │ ├── ConfigClientAppApplication.java │ │ │ │ │ │ └── ConfigClientAppConfiguration.java │ │ │ │ └── resources │ │ │ │ │ ├── application.properties │ │ │ │ │ └── bootstrap.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── learning │ │ │ │ └── linnyk │ │ │ │ └── ConfigClientAppApplicationTests.java │ │ ├── config-server │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── learning │ │ │ │ │ │ └── linnyk │ │ │ │ │ │ └── configserver │ │ │ │ │ │ └── ConfigServerApplication.java │ │ │ │ └── resources │ │ │ │ │ └── application.yml │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── learning │ │ │ │ └── linnyk │ │ │ │ └── configserver │ │ │ │ └── ConfigServerApplicationTests.java │ │ ├── discovery-server-configuration │ │ │ ├── pom.xml │ │ │ ├── src │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── learning │ │ │ │ │ │ │ └── linnyk │ │ │ │ │ │ │ └── DiscoveryServerApplication.java │ │ │ │ │ └── resources │ │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── learning │ │ │ │ │ └── linnyk │ │ │ │ │ └── DiscoveryServerApplicationTests.java │ │ │ └── target │ │ │ │ ├── classes │ │ │ │ └── application.properties │ │ │ │ └── maven-status │ │ │ │ └── maven-compiler-plugin │ │ │ │ ├── compile │ │ │ │ └── default-compile │ │ │ │ │ └── createdFiles.lst │ │ │ │ └── testCompile │ │ │ │ └── default-testCompile │ │ │ │ └── createdFiles.lst │ │ └── pom.xml │ ├── FindingServicesUsingServiceDiscovery │ │ ├── application-service │ │ │ ├── pom.xml │ │ │ ├── src │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── learning │ │ │ │ │ │ │ └── linnyk │ │ │ │ │ │ │ └── ServiceApplication.java │ │ │ │ │ └── resources │ │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── learning │ │ │ │ │ └── linnyk │ │ │ │ │ └── ServiceApplicationTests.java │ │ │ └── target │ │ │ │ ├── classes │ │ │ │ └── application.properties │ │ │ │ └── maven-status │ │ │ │ └── maven-compiler-plugin │ │ │ │ ├── compile │ │ │ │ └── default-compile │ │ │ │ │ └── createdFiles.lst │ │ │ │ └── testCompile │ │ │ │ └── default-testCompile │ │ │ │ └── createdFiles.lst │ │ ├── discovery-client │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── learning │ │ │ │ │ │ └── linnyk │ │ │ │ │ │ └── ClientApplication.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── learning │ │ │ │ └── linnyk │ │ │ │ └── ClientApplicationTests.java │ │ ├── discovery-server │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── learning │ │ │ │ │ │ └── linnyk │ │ │ │ │ │ └── DiscoveryServerApplication.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── learning │ │ │ │ └── linnyk │ │ │ │ └── DiscoveryServerApplicationTests.java │ │ └── pom.xml │ ├── LoadBalancing │ │ ├── discovery-server-load-balancing │ │ │ ├── pom.xml │ │ │ ├── src │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── learning │ │ │ │ │ │ │ └── linnyk │ │ │ │ │ │ │ └── DiscoveryServerApplication.java │ │ │ │ │ └── resources │ │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── learning │ │ │ │ │ └── linnyk │ │ │ │ │ └── DiscoveryServerApplicationTests.java │ │ │ └── target │ │ │ │ ├── classes │ │ │ │ └── application.properties │ │ │ │ └── maven-status │ │ │ │ └── maven-compiler-plugin │ │ │ │ ├── compile │ │ │ │ └── default-compile │ │ │ │ │ └── createdFiles.lst │ │ │ │ └── testCompile │ │ │ │ └── default-testCompile │ │ │ │ └── createdFiles.lst │ │ ├── pom.xml │ │ ├── ribbon-time-app-with-sd │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── learning │ │ │ │ │ │ └── linnyk │ │ │ │ │ │ ├── RibbonTimeAppApplication.java │ │ │ │ │ │ └── RibbonTimeConfig.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── learning │ │ │ │ └── linnyk │ │ │ │ └── RibbonTimeAppApplicationTests.java │ │ └── ribbon-time-service-with-sd │ │ │ ├── pom.xml │ │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── learning │ │ │ │ │ └── linnyk │ │ │ │ │ └── RibbonTimeServiceApplication.java │ │ │ └── resources │ │ │ │ └── application.properties │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── learning │ │ │ └── linnyk │ │ │ └── RibbonTimeServiceApplicationTests.java │ ├── Routing │ │ ├── discovery-server-routing │ │ │ ├── pom.xml │ │ │ ├── src │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── learning │ │ │ │ │ │ │ └── linnyk │ │ │ │ │ │ │ └── DiscoveryServerApplication.java │ │ │ │ │ └── resources │ │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── learning │ │ │ │ │ └── linnyk │ │ │ │ │ └── DiscoveryServerApplicationTests.java │ │ │ └── target │ │ │ │ ├── classes │ │ │ │ └── application.properties │ │ │ │ └── maven-status │ │ │ │ └── maven-compiler-plugin │ │ │ │ ├── compile │ │ │ │ └── default-compile │ │ │ │ │ └── createdFiles.lst │ │ │ │ └── testCompile │ │ │ │ └── default-testCompile │ │ │ │ └── createdFiles.lst │ │ ├── gateway-service │ │ │ ├── pom.xml │ │ │ ├── src │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── learning │ │ │ │ │ │ │ ├── config │ │ │ │ │ │ │ └── AppConfiguration.java │ │ │ │ │ │ │ └── linnyk │ │ │ │ │ │ │ ├── GatewayServiceApplication.java │ │ │ │ │ │ │ └── filter │ │ │ │ │ │ │ └── AddRequestHeaderFilter.java │ │ │ │ │ └── resources │ │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── learning │ │ │ │ │ └── linnyk │ │ │ │ │ └── GatewayServiceApplicationTests.java │ │ │ └── target │ │ │ │ └── maven-status │ │ │ │ └── maven-compiler-plugin │ │ │ │ └── testCompile │ │ │ │ └── default-testCompile │ │ │ │ └── createdFiles.lst │ │ ├── pom.xml │ │ ├── routing-goodbye-service │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── learning │ │ │ │ │ │ └── linnyk │ │ │ │ │ │ └── GoodByeServiceApplication.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── learning │ │ │ │ └── linnyk │ │ │ │ └── GoodbyeServiceApplicationTests.java │ │ └── routing-hello-service │ │ │ ├── pom.xml │ │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── learning │ │ │ │ │ └── linnyk │ │ │ │ │ └── HelloServiceApplication.java │ │ │ └── resources │ │ │ │ └── application.properties │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── learning │ │ │ └── linnyk │ │ │ └── HelloServiceApplicationTests.java │ └── pom.xml └── pom.xml ├── SpringWEB ├── SpringBoot │ ├── BootDemo │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── learning │ │ │ │ └── linnyk │ │ │ │ ├── CommandLineAppStartupRunner.java │ │ │ │ ├── DemoConfiguration.java │ │ │ │ └── SpringMicroservicesApplication.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── simple-context.xml │ ├── LibraryMicroservices │ │ ├── CatalogService │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── learning │ │ │ │ │ └── linnyk │ │ │ │ │ ├── Book.java │ │ │ │ │ ├── BookRepository.java │ │ │ │ │ └── SpringMicroservicesCatalogApplication.java │ │ │ │ └── resources │ │ │ │ ├── application.properties │ │ │ │ └── data.sql │ │ ├── LibraryComplete │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── learning │ │ │ │ │ └── linnyk │ │ │ │ │ ├── BookController.java │ │ │ │ │ └── SpringMicroservicesLibraryApplication.java │ │ │ │ └── resources │ │ │ │ ├── application.properties │ │ │ │ └── static │ │ │ │ └── book.html │ │ └── pom.xml │ ├── ShipWrecks │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── learning │ │ │ │ │ ├── config │ │ │ │ │ └── PersistenceConfiguration.java │ │ │ │ │ └── linnyk │ │ │ │ │ ├── App.java │ │ │ │ │ ├── controllers │ │ │ │ │ ├── HomeController.java │ │ │ │ │ ├── ShipwreckControllerV1.java │ │ │ │ │ └── ShipwreckControllerV2.java │ │ │ │ │ ├── model │ │ │ │ │ └── Shipwreck.java │ │ │ │ │ └── repository │ │ │ │ │ ├── ShipwreckRepository.java │ │ │ │ │ └── ShipwreckStub.java │ │ │ └── resources │ │ │ │ ├── application-prod.properties │ │ │ │ ├── application-test.properties │ │ │ │ ├── application.properties │ │ │ │ ├── db │ │ │ │ └── migration │ │ │ │ │ └── V2__create_shipwreck.sql │ │ │ │ └── static │ │ │ │ ├── css │ │ │ │ ├── style.css │ │ │ │ └── style.min.css │ │ │ │ ├── images │ │ │ │ └── shipwreck.jpg │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ ├── app.js │ │ │ │ ├── controllers.js │ │ │ │ ├── nav-controller.js │ │ │ │ └── services.js │ │ │ │ ├── lib │ │ │ │ ├── angular │ │ │ │ │ ├── css │ │ │ │ │ │ └── angular-csp.css │ │ │ │ │ └── js │ │ │ │ │ │ ├── angular-animate.js │ │ │ │ │ │ ├── angular-animate.min.js │ │ │ │ │ │ ├── angular-animate.min.js.map │ │ │ │ │ │ ├── angular-resource.js │ │ │ │ │ │ ├── angular-resource.min.js │ │ │ │ │ │ ├── angular-resource.min.js.map │ │ │ │ │ │ ├── angular-ui-bootstrap-tpls.js │ │ │ │ │ │ ├── angular-ui-bootstrap-tpls.min.js │ │ │ │ │ │ ├── angular-ui-bootstrap.js │ │ │ │ │ │ ├── angular-ui-bootstrap.min.js │ │ │ │ │ │ ├── angular-ui-bootstrap.min.js.map │ │ │ │ │ │ ├── angular-ui-router.js │ │ │ │ │ │ ├── angular-ui-router.min.js │ │ │ │ │ │ ├── angular.js │ │ │ │ │ │ └── angular.min.js │ │ │ │ ├── assets │ │ │ │ │ └── js │ │ │ │ │ │ └── ie10-viewport-bug-workaround.js │ │ │ │ ├── bootstrap │ │ │ │ │ ├── css │ │ │ │ │ │ ├── bootstrap-theme.css │ │ │ │ │ │ ├── bootstrap-theme.css.map │ │ │ │ │ │ ├── bootstrap-theme.min.css │ │ │ │ │ │ ├── bootstrap-theme.min.css.map │ │ │ │ │ │ ├── bootstrap.css │ │ │ │ │ │ ├── bootstrap.css.map │ │ │ │ │ │ ├── bootstrap.min.css │ │ │ │ │ │ └── bootstrap.min.css.map │ │ │ │ │ ├── fonts │ │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ │ │ └── js │ │ │ │ │ │ ├── bootstrap.js │ │ │ │ │ │ └── bootstrap.min.js │ │ │ │ ├── html5shiv │ │ │ │ │ ├── html5shiv-printshiv.js │ │ │ │ │ ├── html5shiv-printshiv.min.js │ │ │ │ │ ├── html5shiv.js │ │ │ │ │ └── html5shiv.min.js │ │ │ │ ├── jquery │ │ │ │ │ ├── jquery.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ └── jquery.min.map │ │ │ │ ├── require │ │ │ │ │ └── require.js │ │ │ │ └── respond │ │ │ │ │ ├── respond.matchmedia.addListener.min.js │ │ │ │ │ ├── respond.matchmedia.addListener.src.js │ │ │ │ │ ├── respond.min.js │ │ │ │ │ └── respond.src.js │ │ │ │ └── views │ │ │ │ ├── _form.html │ │ │ │ ├── home.html │ │ │ │ ├── shipwreck-add.html │ │ │ │ ├── shipwreck-edit.html │ │ │ │ ├── shipwreck-view.html │ │ │ │ └── shipwrecks.html │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── learning │ │ │ └── linnyk │ │ │ ├── HomeControllerTest.java │ │ │ ├── ShipwreckControllerIntegrationTest.java │ │ │ ├── ShipwreckControllerTest.java │ │ │ └── ShipwreckRepositoryIntegrationTest.java │ ├── just-gif-it │ │ ├── pom.xml │ │ ├── src │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── linnyk │ │ │ │ │ │ └── learning │ │ │ │ │ │ └── justgifit │ │ │ │ │ │ ├── JustGifItApplication.java │ │ │ │ │ │ ├── controller │ │ │ │ │ │ └── UploadController.java │ │ │ │ │ │ ├── health │ │ │ │ │ │ └── JustGiftItIndicator.java │ │ │ │ │ │ ├── properties │ │ │ │ │ │ └── JustGifItProperties.java │ │ │ │ │ │ └── services │ │ │ │ │ │ ├── ConverterService.java │ │ │ │ │ │ ├── GifEncoderService.java │ │ │ │ │ │ └── VideoDecoderService.java │ │ │ │ └── resources │ │ │ │ │ ├── application.properties │ │ │ │ │ └── application.yaml │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── linnyk │ │ │ │ └── learning │ │ │ │ └── justgifit │ │ │ │ └── JustGifItApplicationTests.java │ │ └── video │ │ │ └── PexelsVideos.mp4 │ ├── pom.xml │ └── restful-web-services │ │ ├── pom.xml │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── learning │ │ │ │ └── linnyk │ │ │ │ └── restfulwebservices │ │ │ │ ├── RestfulWebServicesApplication.java │ │ │ │ ├── config │ │ │ │ ├── InternationalizationConfig.java │ │ │ │ └── SwaggerConfig.java │ │ │ │ ├── filter │ │ │ │ ├── FilteringController.java │ │ │ │ └── SomeBean.java │ │ │ │ ├── hello_world │ │ │ │ ├── HelloWorldBean.java │ │ │ │ └── HelloWorldController.java │ │ │ │ ├── user │ │ │ │ ├── UserJPAController.java │ │ │ │ ├── UserJPAService.java │ │ │ │ ├── exception │ │ │ │ │ ├── CustomizedResponseEntityExceptionHandler.java │ │ │ │ │ ├── ExceptionResponse.java │ │ │ │ │ └── UserNotFoundException.java │ │ │ │ ├── model │ │ │ │ │ ├── Post.java │ │ │ │ │ └── User.java │ │ │ │ └── repository │ │ │ │ │ ├── PostRepository.java │ │ │ │ │ └── UserRepository.java │ │ │ │ └── versioning │ │ │ │ ├── PersonVersioningController.java │ │ │ │ └── dto │ │ │ │ ├── Name.java │ │ │ │ ├── PersonV1.java │ │ │ │ └── PersonV2.java │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── data.sql │ │ │ ├── messages.properties │ │ │ └── messages_fr.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── learning │ │ └── linnyk │ │ └── restfulwebservices │ │ └── RestfulWebServicesApplicationTests.java ├── SpringMVC │ ├── Spring3MVC │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── mvc │ │ │ │ └── session │ │ │ │ └── linnyk │ │ │ │ ├── controllers │ │ │ │ ├── HelloController.java │ │ │ │ └── MinutesController.java │ │ │ │ ├── model │ │ │ │ ├── Activity.java │ │ │ │ └── Exercise.java │ │ │ │ └── service │ │ │ │ ├── ExerciseService.java │ │ │ │ └── impl │ │ │ │ └── ExerciseServiceImpl.java │ │ │ └── webapp │ │ │ ├── WEB-INF │ │ │ ├── config │ │ │ │ └── servlet-config-spring3.xml │ │ │ ├── jsp │ │ │ │ ├── addMinutes.jsp │ │ │ │ └── hello.jsp │ │ │ └── web.xml │ │ │ ├── index.jsp │ │ │ └── pdfs │ │ │ └── ExceptionClassSummary.pdf │ ├── Spring4MVC │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── spring4 │ │ │ │ └── linnyk │ │ │ │ └── mvc │ │ │ │ ├── annotations │ │ │ │ └── Phone.java │ │ │ │ ├── configuration │ │ │ │ ├── WebAppInitializer.java │ │ │ │ └── WebConfig.java │ │ │ │ ├── controllers │ │ │ │ ├── AttendeeController.java │ │ │ │ ├── EventController.java │ │ │ │ ├── EventReportRestController.java │ │ │ │ └── HelloController.java │ │ │ │ ├── model │ │ │ │ ├── Attendee.java │ │ │ │ └── Event.java │ │ │ │ └── validators │ │ │ │ └── PhoneConstraintValidator.java │ │ │ ├── resources │ │ │ ├── logback.xml │ │ │ ├── messages_en.properties │ │ │ └── messages_es.properties │ │ │ └── webapp │ │ │ ├── WEB-INF │ │ │ ├── css │ │ │ │ └── style.css │ │ │ ├── jsp │ │ │ │ ├── attendee.jsp │ │ │ │ ├── event.jsp │ │ │ │ └── hello.jsp │ │ │ └── pdf │ │ │ │ └── ExceptionClassSummary.pdf │ │ │ └── index.jsp │ ├── SpringSession │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── mvc │ │ │ │ └── session │ │ │ │ └── linnyk │ │ │ │ ├── SpringTodoApplication.java │ │ │ │ ├── controllers │ │ │ │ └── TodoListController.java │ │ │ │ ├── model │ │ │ │ ├── Todo.java │ │ │ │ └── Visitor.java │ │ │ │ └── service │ │ │ │ ├── TodoListService.java │ │ │ │ └── impl │ │ │ │ └── TodoListServiceImpl.java │ │ │ └── resources │ │ │ └── application.yml │ └── pom.xml ├── SpringSecurity │ ├── LiveSessions │ │ ├── Authentication │ │ │ ├── authentication-provider │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ ├── custom │ │ │ │ │ │ │ └── AuthenticationProviderApplication.java │ │ │ │ │ │ │ └── ldap │ │ │ │ │ │ │ └── LdapAuthenticationApplication.java │ │ │ │ │ └── resources │ │ │ │ │ │ ├── application-ldap.properties │ │ │ │ │ │ └── test-server.ldif │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── livelessons │ │ │ │ │ ├── custom │ │ │ │ │ ├── AtlassianCrowdAuthenticationProviderTest.java │ │ │ │ │ └── AuthenticationProviderApplicationTest.java │ │ │ │ │ └── ldap │ │ │ │ │ └── LdapAuthenticationApplicationTest.java │ │ │ ├── login │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ └── LoginApplication.java │ │ │ │ │ └── resources │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ └── templates │ │ │ │ │ │ ├── hidden.html │ │ │ │ │ │ ├── layout.html │ │ │ │ │ │ ├── login.html │ │ │ │ │ │ └── logout.html │ │ │ │ │ └── test │ │ │ │ │ ├── java │ │ │ │ │ └── livelessons │ │ │ │ │ │ ├── LoginApplicationTests.java │ │ │ │ │ │ └── webdriver │ │ │ │ │ │ ├── HiddenPage.java │ │ │ │ │ │ └── LoginPage.java │ │ │ │ │ └── resources │ │ │ │ │ └── logback-test.xml │ │ │ ├── password-migration │ │ │ │ ├── .gitignore │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── example │ │ │ │ │ │ │ └── passwordmigration │ │ │ │ │ │ │ ├── CustomAuthenticationApplication.java │ │ │ │ │ │ │ ├── CustomSecurityConfiguration.java │ │ │ │ │ │ │ ├── CustomUserDetails.java │ │ │ │ │ │ │ ├── CustomUserDetailsService.java │ │ │ │ │ │ │ └── GreetingRestController.java │ │ │ │ │ └── resources │ │ │ │ │ │ └── application.properties │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── passwordmigration │ │ │ │ │ └── PasswordMigrationApplicationTests.java │ │ │ ├── pom.xml │ │ │ ├── user-details │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ └── AuthenticationApplication.java │ │ │ │ │ └── resources │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ └── schema.sql │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── livelessons │ │ │ │ │ ├── JdbcUserDetailsServiceTest.java │ │ │ │ │ ├── MemoryUserDetailsServiceTest.java │ │ │ │ │ ├── SimpleUserDetailsServiceTest.java │ │ │ │ │ └── UserDetailsServiceTestBaseClass.java │ │ │ ├── xauth-app │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ └── custom │ │ │ │ │ │ │ └── CustomApplication.java │ │ │ │ │ └── resources │ │ │ │ │ │ └── application.properties │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── livelessons │ │ │ │ │ └── custom │ │ │ │ │ └── GreetingsRestControllerTest.java │ │ │ └── xauth │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── livelessons │ │ │ │ │ └── xauth │ │ │ │ │ ├── TokenUtils.java │ │ │ │ │ ├── XAuthAutoConfiguration.java │ │ │ │ │ ├── XAuthConfiguration.java │ │ │ │ │ ├── XAuthDslConfigurer.java │ │ │ │ │ ├── XAuthTokenFilter.java │ │ │ │ │ └── XAuthTokenRestController.java │ │ │ │ └── resources │ │ │ │ ├── META-INF │ │ │ │ └── spring.factories │ │ │ │ └── application.properties │ │ ├── Authorization │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── example │ │ │ │ │ │ └── authorization │ │ │ │ │ │ └── AuthorizationApplication.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── authorization │ │ │ │ └── AuthorizationApplicationTests.java │ │ ├── BootCamp │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── example │ │ │ │ │ │ └── bootcamp │ │ │ │ │ │ ├── Bar.java │ │ │ │ │ │ ├── BootcampApplication.java │ │ │ │ │ │ ├── Foo.java │ │ │ │ │ │ ├── IsbnRestController.java │ │ │ │ │ │ ├── LoggingAspect.java │ │ │ │ │ │ ├── LoggingFilter.java │ │ │ │ │ │ └── UuidService.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── bootcamp │ │ │ │ ├── IsbnRestControllerTests.java │ │ │ │ └── UuidServiceTest.java │ │ ├── CommonAttacks │ │ │ ├── cache │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ ├── CacheControlApplication.java │ │ │ │ │ │ │ ├── IndexController.java │ │ │ │ │ │ │ └── SecurityConfig.java │ │ │ │ │ └── resources │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ ├── static │ │ │ │ │ │ └── cached.js │ │ │ │ │ │ └── templates │ │ │ │ │ │ └── index.html │ │ │ │ │ └── test │ │ │ │ │ ├── java │ │ │ │ │ └── livelessons │ │ │ │ │ │ ├── CacheControlApplicationTests.java │ │ │ │ │ │ ├── HelloSecurityTests.java │ │ │ │ │ │ └── webdriver │ │ │ │ │ │ ├── IndexPage.java │ │ │ │ │ │ ├── LoginPage.java │ │ │ │ │ │ └── LogoutPage.java │ │ │ │ │ └── resources │ │ │ │ │ └── logback-test.xml │ │ │ ├── clickjacking │ │ │ │ ├── evil │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src │ │ │ │ │ │ ├── main │ │ │ │ │ │ ├── java │ │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ │ └── EvilApplication.java │ │ │ │ │ │ └── resources │ │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ │ └── static │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ └── test │ │ │ │ │ │ └── java │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ └── EvilApplicationTests.java │ │ │ │ ├── pom.xml │ │ │ │ └── secure │ │ │ │ │ └── admin │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ ├── ClickJackingApplication.java │ │ │ │ │ │ │ ├── IndexController.java │ │ │ │ │ │ │ └── SecurityConfig.java │ │ │ │ │ └── resources │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ ├── static │ │ │ │ │ │ └── cached.js │ │ │ │ │ │ └── templates │ │ │ │ │ │ └── index.html │ │ │ │ │ └── test │ │ │ │ │ ├── java │ │ │ │ │ └── livelessons │ │ │ │ │ │ ├── CacheControlApplicationTests.java │ │ │ │ │ │ ├── HelloSecurityTests.java │ │ │ │ │ │ └── webdriver │ │ │ │ │ │ ├── IndexPage.java │ │ │ │ │ │ ├── LoginPage.java │ │ │ │ │ │ └── LogoutPage.java │ │ │ │ │ └── resources │ │ │ │ │ └── logback-test.xml │ │ │ ├── csrf │ │ │ │ ├── evil │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src │ │ │ │ │ │ ├── main │ │ │ │ │ │ ├── java │ │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ │ └── EvilApplication.java │ │ │ │ │ │ └── resources │ │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ │ └── static │ │ │ │ │ │ │ ├── automated.html │ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ │ ├── json.html │ │ │ │ │ │ │ ├── login.html │ │ │ │ │ │ │ └── manual.html │ │ │ │ │ │ └── test │ │ │ │ │ │ └── java │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ └── EvilApplicationTests.java │ │ │ │ ├── pom.xml │ │ │ │ ├── secure │ │ │ │ │ ├── bank-json │ │ │ │ │ │ ├── pom.xml │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── main │ │ │ │ │ │ │ ├── java │ │ │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ │ │ ├── BankController.java │ │ │ │ │ │ │ │ │ └── BankJsonApplication.java │ │ │ │ │ │ │ └── resources │ │ │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ │ └── test │ │ │ │ │ │ │ └── java │ │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ ├── BankApplicationTests.java │ │ │ │ │ │ │ └── webdriver │ │ │ │ │ │ │ └── IndexPage.java │ │ │ │ │ ├── bank │ │ │ │ │ │ ├── pom.xml │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── main │ │ │ │ │ │ │ ├── java │ │ │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ │ │ ├── BankApplication.java │ │ │ │ │ │ │ │ │ └── BankController.java │ │ │ │ │ │ │ └── resources │ │ │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ │ └── test │ │ │ │ │ │ │ └── java │ │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ ├── BankApplicationTests.java │ │ │ │ │ │ │ └── webdriver │ │ │ │ │ │ │ └── IndexPage.java │ │ │ │ │ └── file-upload │ │ │ │ │ │ ├── pom.xml │ │ │ │ │ │ └── src │ │ │ │ │ │ ├── main │ │ │ │ │ │ ├── java │ │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ │ ├── FileUploadApplication.java │ │ │ │ │ │ │ │ └── FileUploadController.java │ │ │ │ │ │ └── resources │ │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ └── test │ │ │ │ │ │ ├── java │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ ├── FileUploadITests.java │ │ │ │ │ │ │ ├── FileUploadTests.java │ │ │ │ │ │ │ └── webdriver │ │ │ │ │ │ │ ├── IndexPage.java │ │ │ │ │ │ │ └── LoginPage.java │ │ │ │ │ │ └── resources │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ └── the-file.txt │ │ │ │ └── victim │ │ │ │ │ ├── bank-get │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src │ │ │ │ │ │ ├── main │ │ │ │ │ │ ├── java │ │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ │ ├── BankApplication.java │ │ │ │ │ │ │ │ └── BankController.java │ │ │ │ │ │ └── resources │ │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ └── test │ │ │ │ │ │ └── java │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ ├── BankApplicationTests.java │ │ │ │ │ │ └── webdriver │ │ │ │ │ │ └── IndexPage.java │ │ │ │ │ ├── bank-json │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src │ │ │ │ │ │ ├── main │ │ │ │ │ │ ├── java │ │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ │ ├── BankController.java │ │ │ │ │ │ │ │ ├── BankJsonApplication.java │ │ │ │ │ │ │ │ └── SecurityConfig.java │ │ │ │ │ │ └── resources │ │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ └── test │ │ │ │ │ │ └── java │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ ├── BankApplicationTests.java │ │ │ │ │ │ └── webdriver │ │ │ │ │ │ └── IndexPage.java │ │ │ │ │ ├── bank │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src │ │ │ │ │ │ ├── main │ │ │ │ │ │ ├── java │ │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ │ ├── BankApplication.java │ │ │ │ │ │ │ │ ├── BankController.java │ │ │ │ │ │ │ │ └── SecurityConfig.java │ │ │ │ │ │ └── resources │ │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ └── test │ │ │ │ │ │ └── java │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ ├── BankApplicationTests.java │ │ │ │ │ │ └── webdriver │ │ │ │ │ │ └── IndexPage.java │ │ │ │ │ └── credit-card │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ ├── CreditCardApplication.java │ │ │ │ │ │ │ ├── CreditCardController.java │ │ │ │ │ │ │ └── SecurityConfig.java │ │ │ │ │ └── resources │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ └── templates │ │ │ │ │ │ └── index.html │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── livelessons │ │ │ │ │ ├── CreditCardApplicationTests.java │ │ │ │ │ └── webdriver │ │ │ │ │ └── IndexPage.java │ │ │ ├── https │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ ├── HttpsApplication.java │ │ │ │ │ │ │ ├── IndexController.java │ │ │ │ │ │ │ └── SecurityConfig.java │ │ │ │ │ └── resources │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ ├── static │ │ │ │ │ │ └── cached.js │ │ │ │ │ │ └── templates │ │ │ │ │ │ └── index.html │ │ │ │ │ └── test │ │ │ │ │ ├── java │ │ │ │ │ └── livelessons │ │ │ │ │ │ ├── HelloSecurityTests.java │ │ │ │ │ │ ├── HttpsApplicationTests.java │ │ │ │ │ │ └── webdriver │ │ │ │ │ │ ├── IndexPage.java │ │ │ │ │ │ ├── LoginPage.java │ │ │ │ │ │ └── LogoutPage.java │ │ │ │ │ └── resources │ │ │ │ │ └── logback-test.xml │ │ │ ├── pom.xml │ │ │ ├── session-fixation │ │ │ │ ├── pom.xml │ │ │ │ ├── secure │ │ │ │ │ └── credit-card │ │ │ │ │ │ ├── pom.xml │ │ │ │ │ │ └── src │ │ │ │ │ │ ├── main │ │ │ │ │ │ ├── java │ │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ │ ├── CreditCardApplication.java │ │ │ │ │ │ │ │ ├── CreditCardController.java │ │ │ │ │ │ │ │ └── IndexController.java │ │ │ │ │ │ └── resources │ │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ │ └── login.html │ │ │ │ │ │ └── test │ │ │ │ │ │ └── java │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ ├── CreditCardApplicationTests.java │ │ │ │ │ │ └── webdriver │ │ │ │ │ │ └── IndexPage.java │ │ │ │ └── victim │ │ │ │ │ └── credit-card │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ ├── CreditCardApplication.java │ │ │ │ │ │ │ ├── CreditCardController.java │ │ │ │ │ │ │ ├── IndexController.java │ │ │ │ │ │ │ └── SecurityConfig.java │ │ │ │ │ └── resources │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ └── templates │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── login.html │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── livelessons │ │ │ │ │ ├── CreditCardApplicationTests.java │ │ │ │ │ └── webdriver │ │ │ │ │ └── IndexPage.java │ │ │ └── xss │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── livelessons │ │ │ │ │ │ ├── IndexController.java │ │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ │ └── XSSApplication.java │ │ │ │ └── resources │ │ │ │ │ ├── application.properties │ │ │ │ │ └── templates │ │ │ │ │ └── index.html │ │ │ │ └── test │ │ │ │ ├── java │ │ │ │ └── livelessons │ │ │ │ │ ├── CacheControlApplicationTests.java │ │ │ │ │ ├── HelloSecurityTests.java │ │ │ │ │ └── webdriver │ │ │ │ │ ├── IndexPage.java │ │ │ │ │ ├── LoginPage.java │ │ │ │ │ └── LogoutPage.java │ │ │ │ └── resources │ │ │ │ └── logback-test.xml │ │ ├── MethodSecurity │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── example │ │ │ │ │ │ └── methodsecurity │ │ │ │ │ │ ├── MethodSecurityApplication.java │ │ │ │ │ │ ├── entities │ │ │ │ │ │ ├── Authority.java │ │ │ │ │ │ ├── Message.java │ │ │ │ │ │ └── User.java │ │ │ │ │ │ ├── repositories │ │ │ │ │ │ ├── AuthorityRepository.java │ │ │ │ │ │ ├── MessageRepository.java │ │ │ │ │ │ └── UserRepository.java │ │ │ │ │ │ ├── services │ │ │ │ │ │ ├── AuthService.java │ │ │ │ │ │ ├── Runner.java │ │ │ │ │ │ └── UserRepositoryUserDetailsService.java │ │ │ │ │ │ └── userdetails │ │ │ │ │ │ └── UserUserDetails.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── methodsecurity │ │ │ │ └── MethodSecurityApplicationTests.java │ │ ├── SecurityTesting │ │ │ ├── method-custom-userdetails │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ ├── HelloSecurityApplication.java │ │ │ │ │ │ │ ├── message │ │ │ │ │ │ │ ├── BeanMessageService.java │ │ │ │ │ │ │ ├── Message.java │ │ │ │ │ │ │ └── MessageService.java │ │ │ │ │ │ │ └── user │ │ │ │ │ │ │ ├── MessageUser.java │ │ │ │ │ │ │ ├── UserRepository.java │ │ │ │ │ │ │ └── UserRepositoryUserDetailsService.java │ │ │ │ │ └── resources │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ └── templates │ │ │ │ │ │ └── index.html │ │ │ │ │ └── test │ │ │ │ │ ├── java │ │ │ │ │ └── livelessons │ │ │ │ │ │ ├── AnnotatedMessageServiceTests.java │ │ │ │ │ │ ├── WithJosh.java │ │ │ │ │ │ ├── WithMockCustomUserFactory.java │ │ │ │ │ │ ├── WithMockMessageUser.java │ │ │ │ │ │ └── WithRob.java │ │ │ │ │ └── resources │ │ │ │ │ └── logback-test.xml │ │ │ ├── method-userdetails │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ ├── HelloSecurityApplication.java │ │ │ │ │ │ │ ├── HelloSecurityMessageService.java │ │ │ │ │ │ │ ├── MessageService.java │ │ │ │ │ │ │ └── SecurityConfig.java │ │ │ │ │ └── resources │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ └── templates │ │ │ │ │ │ └── index.html │ │ │ │ │ └── test │ │ │ │ │ ├── java │ │ │ │ │ └── livelessons │ │ │ │ │ │ ├── AnnotatedClassMessageServiceTests.java │ │ │ │ │ │ └── AnnotatedMessageServiceTests.java │ │ │ │ │ └── resources │ │ │ │ │ └── logback-test.xml │ │ │ ├── method │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── livelessons │ │ │ │ │ │ │ ├── HelloSecurityApplication.java │ │ │ │ │ │ │ ├── HelloSecurityMessageService.java │ │ │ │ │ │ │ └── MessageService.java │ │ │ │ │ └── resources │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ └── templates │ │ │ │ │ │ └── index.html │ │ │ │ │ └── test │ │ │ │ │ ├── java │ │ │ │ │ └── livelessons │ │ │ │ │ │ ├── AnnotatedClassMessageServiceTests.java │ │ │ │ │ │ ├── AnnotatedMessageServiceTests.java │ │ │ │ │ │ ├── ManualMessageServiceTests.java │ │ │ │ │ │ └── WithAdmin.java │ │ │ │ │ └── resources │ │ │ │ │ └── logback-test.xml │ │ │ ├── pom.xml │ │ │ └── web │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── livelessons │ │ │ │ │ │ ├── BankApplication.java │ │ │ │ │ │ └── BankController.java │ │ │ │ └── resources │ │ │ │ │ ├── application.properties │ │ │ │ │ └── templates │ │ │ │ │ └── index.html │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── livelessons │ │ │ │ ├── ManualMockMvcTests.java │ │ │ │ ├── ManualTests.java │ │ │ │ ├── MockMvcTests.java │ │ │ │ ├── WebDriverTests.java │ │ │ │ └── webdriver │ │ │ │ └── IndexPage.java │ │ └── pom.xml │ ├── SpringSecurityInEasySteps │ │ ├── SecurityInternal │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── demo │ │ │ │ └── AuthenticationSample.java │ │ ├── SimpleSpringMVC │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── demo │ │ │ │ │ ├── config │ │ │ │ │ ├── RepositoryConfig.java │ │ │ │ │ ├── RootConfig.java │ │ │ │ │ ├── WebAppConfigInitializer.java │ │ │ │ │ └── WebConfig.java │ │ │ │ │ ├── dao │ │ │ │ │ └── UserDao.java │ │ │ │ │ ├── daoImpl │ │ │ │ │ └── UserDaoImpl.java │ │ │ │ │ ├── to │ │ │ │ │ └── User.java │ │ │ │ │ └── web │ │ │ │ │ ├── HomeController.java │ │ │ │ │ ├── LoginController.java │ │ │ │ │ └── SuccessController.java │ │ │ │ ├── resources │ │ │ │ └── application.properties │ │ │ │ └── webapp │ │ │ │ ├── WEB-INF │ │ │ │ ├── home.jsp │ │ │ │ ├── login.jsp │ │ │ │ ├── register.jsp │ │ │ │ └── success.jsp │ │ │ │ └── index.jsp │ │ ├── SimpleSpringSecurity │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── demo │ │ │ │ │ ├── config │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ ├── SecurityWebAppInitializer.java │ │ │ │ │ ├── WebAppInitializer.java │ │ │ │ │ └── WebConfig.java │ │ │ │ │ ├── resources │ │ │ │ │ └── application.properties │ │ │ │ │ └── web │ │ │ │ │ └── HomeController.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── home.jsp │ │ │ │ └── login.jsp │ │ ├── SpringSecurityAuthenticationTypes │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── demo │ │ │ │ │ ├── config │ │ │ │ │ ├── CustomUserDetailsService.java │ │ │ │ │ ├── RepositoryConfig.java │ │ │ │ │ ├── RootConfig.java │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ ├── SecurityWebAppInitializer.java │ │ │ │ │ ├── WebAppInitializer.java │ │ │ │ │ └── WebConfig.java │ │ │ │ │ └── web │ │ │ │ │ └── HomeController.java │ │ │ │ ├── resources │ │ │ │ ├── .gitignore │ │ │ │ ├── application.properties │ │ │ │ └── dbSchema.txt │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── home.jsp │ │ │ │ └── login.jsp │ │ ├── SpringSecurityBasicAndDigestAuthentication │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── demo │ │ │ │ │ ├── config │ │ │ │ │ ├── CustomBasicAuthenticationEntryPoint.java │ │ │ │ │ ├── CustomDigestAuthenticationEntryPoint.java │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ ├── SecurityWebAppInitializer.java │ │ │ │ │ ├── WebAppInitializer.java │ │ │ │ │ └── WebConfig.java │ │ │ │ │ └── web │ │ │ │ │ └── HomeController.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── home.jsp │ │ │ │ └── login.jsp │ │ ├── SpringSecurityCoreSecurityFilters │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── demo │ │ │ │ │ ├── config │ │ │ │ │ ├── CustomFilter.java │ │ │ │ │ ├── CustomLogoutSuccessHandler.java │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ ├── SecurityWebAppInitializer.java │ │ │ │ │ ├── WebAppInitializer.java │ │ │ │ │ └── WebConfig.java │ │ │ │ │ └── web │ │ │ │ │ └── HomeController.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── accessDenied.jsp │ │ │ │ ├── chiefUpdate.jsp │ │ │ │ ├── home.jsp │ │ │ │ └── login.jsp │ │ ├── SpringSecurityHandlingLogouts │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── demo │ │ │ │ │ ├── config │ │ │ │ │ ├── CustomLogoutSuccessHandler.java │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ ├── SecurityWebAppInitializer.java │ │ │ │ │ ├── WebAppInitializer.java │ │ │ │ │ └── WebConfig.java │ │ │ │ │ └── web │ │ │ │ │ └── HomeController.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── accessDenied.jsp │ │ │ │ ├── chiefUpdate.jsp │ │ │ │ ├── home.jsp │ │ │ │ └── login.jsp │ │ ├── SpringSecurityLocalization │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── demo │ │ │ │ │ ├── config │ │ │ │ │ ├── CustomLogoutSuccessHandler.java │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ ├── SecurityWebAppInitializer.java │ │ │ │ │ ├── WebAppInitializer.java │ │ │ │ │ └── WebConfig.java │ │ │ │ │ └── web │ │ │ │ │ └── HomeController.java │ │ │ │ ├── resources │ │ │ │ └── messages.properties │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── accessDenied.jsp │ │ │ │ ├── chiefUpdate.jsp │ │ │ │ ├── home.jsp │ │ │ │ └── login.jsp │ │ ├── SpringSecurityMethodSecurity │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── demo │ │ │ │ │ ├── config │ │ │ │ │ ├── CustomLogoutSuccessHandler.java │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ ├── SecurityWebAppInitializer.java │ │ │ │ │ ├── WebAppInitializer.java │ │ │ │ │ └── WebConfig.java │ │ │ │ │ └── web │ │ │ │ │ └── HomeController.java │ │ │ │ ├── resources │ │ │ │ └── .gitignore │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── accessDenied.jsp │ │ │ │ ├── chiefUpdate.jsp │ │ │ │ ├── home.jsp │ │ │ │ └── login.jsp │ │ ├── SpringSecurityMongoDBUserDetailsService │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── demo │ │ │ │ │ │ ├── config │ │ │ │ │ │ ├── CustomLogoutSuccessHandler.java │ │ │ │ │ │ ├── CustomUserDetailsService.java │ │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ │ ├── SecurityWebAppInitializer.java │ │ │ │ │ │ ├── WebAppInitializer.java │ │ │ │ │ │ └── WebConfig.java │ │ │ │ │ │ ├── to │ │ │ │ │ │ └── UserTo.java │ │ │ │ │ │ └── web │ │ │ │ │ │ └── HomeController.java │ │ │ │ └── webapp │ │ │ │ │ └── WEB-INF │ │ │ │ │ ├── accessDenied.jsp │ │ │ │ │ ├── chiefUpdate.jsp │ │ │ │ │ ├── home.jsp │ │ │ │ │ └── login.jsp │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── demo │ │ │ │ └── InsertIntoMongo.java │ │ ├── SpringSecurityPasswordEncoding │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── demo │ │ │ │ │ ├── config │ │ │ │ │ ├── RepositoryConfig.java │ │ │ │ │ ├── RootConfig.java │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ ├── SecurityWebAppInitializer.java │ │ │ │ │ ├── WebAppInitializer.java │ │ │ │ │ └── WebConfig.java │ │ │ │ │ ├── dao │ │ │ │ │ └── UserDao.java │ │ │ │ │ ├── to │ │ │ │ │ └── UserTo.java │ │ │ │ │ └── web │ │ │ │ │ └── HomeController.java │ │ │ │ ├── resources │ │ │ │ ├── .gitignore │ │ │ │ ├── application.properties │ │ │ │ └── dbSchema.txt │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── home.jsp │ │ │ │ ├── login.jsp │ │ │ │ └── signup.jsp │ │ ├── SpringSecurityRememberMeAuthentication │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── demo │ │ │ │ │ ├── config │ │ │ │ │ ├── RepositoryConfig.java │ │ │ │ │ ├── RootConfig.java │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ ├── SecurityWebAppInitializer.java │ │ │ │ │ ├── WebAppInitializer.java │ │ │ │ │ └── WebConfig.java │ │ │ │ │ └── web │ │ │ │ │ └── HomeController.java │ │ │ │ ├── resources │ │ │ │ ├── application.properties │ │ │ │ └── dbSchema.txt │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── chiefUpdate.jsp │ │ │ │ ├── home.jsp │ │ │ │ └── login.jsp │ │ ├── SpringSecurityResponseHeaders │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── demo │ │ │ │ │ ├── config │ │ │ │ │ ├── CustomFilter.java │ │ │ │ │ ├── CustomLogoutSuccessHandler.java │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ ├── SecurityWebAppInitializer.java │ │ │ │ │ ├── WebAppInitializer.java │ │ │ │ │ └── WebConfig.java │ │ │ │ │ └── web │ │ │ │ │ └── HomeController.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── accessDenied.jsp │ │ │ │ ├── chiefUpdate.jsp │ │ │ │ ├── home.jsp │ │ │ │ └── login.jsp │ │ ├── SpringSecuritySecurityFilterChain │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── demo │ │ │ │ │ ├── config │ │ │ │ │ ├── CustomLogoutSuccessHandler.java │ │ │ │ │ ├── CustomSpringSecurityFilterChain.java │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ ├── SecurityWebAppInitializer.java │ │ │ │ │ ├── WebAppInitializer.java │ │ │ │ │ └── WebConfig.java │ │ │ │ │ └── web │ │ │ │ │ └── HomeController.java │ │ │ │ ├── resources │ │ │ │ └── .gitignore │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── accessDenied.jsp │ │ │ │ ├── chiefUpdate.jsp │ │ │ │ ├── home.jsp │ │ │ │ └── login.jsp │ │ ├── SpringSecuritySessionManagement │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── demo │ │ │ │ │ ├── config │ │ │ │ │ ├── RepositoryConfig.java │ │ │ │ │ ├── RootConfig.java │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ ├── SecurityWebAppInitializer.java │ │ │ │ │ ├── WebAppInitializer.java │ │ │ │ │ └── WebConfig.java │ │ │ │ │ ├── dao │ │ │ │ │ └── UserDao.java │ │ │ │ │ ├── to │ │ │ │ │ └── UserTo.java │ │ │ │ │ └── web │ │ │ │ │ └── HomeController.java │ │ │ │ ├── resources │ │ │ │ ├── .gitignore │ │ │ │ ├── application.properties │ │ │ │ └── dbSchema.txt │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── home.jsp │ │ │ │ ├── login.jsp │ │ │ │ └── signup.jsp │ │ └── pom.xml │ └── pom.xml └── pom.xml ├── Testing ├── EffectiveAutomation │ ├── pom.xml │ ├── ps-effective-automated-testing-in-spring-module-3 │ │ ├── pom.xml │ │ └── room-service-module-3 │ │ │ ├── pom.xml │ │ │ ├── src │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── ps │ │ │ │ │ │ └── bk │ │ │ │ │ │ └── hotel │ │ │ │ │ │ └── room │ │ │ │ │ │ ├── RoomServiceApplication.java │ │ │ │ │ │ ├── controller │ │ │ │ │ │ └── RoomController.java │ │ │ │ │ │ ├── exception │ │ │ │ │ │ ├── RoomServiceClientException.java │ │ │ │ │ │ └── RoomServiceException.java │ │ │ │ │ │ ├── model │ │ │ │ │ │ └── Room.java │ │ │ │ │ │ ├── repo │ │ │ │ │ │ └── RoomRepo.java │ │ │ │ │ │ └── service │ │ │ │ │ │ ├── RoomService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ └── RoomServiceImpl.java │ │ │ │ └── resources │ │ │ │ │ ├── application.properties │ │ │ │ │ └── init.sql │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── ps │ │ │ │ ├── bk │ │ │ │ └── hotel │ │ │ │ │ └── room │ │ │ │ │ └── service │ │ │ │ │ └── impl │ │ │ │ │ └── TestRoomServiceImpl.java │ │ │ │ └── test │ │ │ │ └── room │ │ │ │ └── roomservice │ │ │ │ └── RoomServiceApplicationTests.java │ │ │ └── target │ │ │ └── classes │ │ │ ├── application.properties │ │ │ └── init.sql │ ├── ps-effective-automated-testing-in-spring-module-4 │ │ ├── booking-service-module-4 │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── ps │ │ │ │ │ │ └── bk │ │ │ │ │ │ └── hotel │ │ │ │ │ │ └── booking │ │ │ │ │ │ ├── BookingServiceApplication.java │ │ │ │ │ │ ├── controller │ │ │ │ │ │ └── BookingController.java │ │ │ │ │ │ ├── exception │ │ │ │ │ │ ├── BookingServiceClientException.java │ │ │ │ │ │ └── BookingServiceException.java │ │ │ │ │ │ ├── model │ │ │ │ │ │ └── Booking.java │ │ │ │ │ │ ├── repo │ │ │ │ │ │ └── BookingRepo.java │ │ │ │ │ │ └── service │ │ │ │ │ │ ├── BookingService.java │ │ │ │ │ │ ├── BookingValidationService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ └── BookingServiceImpl.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── ps │ │ │ │ └── bk │ │ │ │ └── hotel │ │ │ │ └── booking │ │ │ │ └── bookingservice │ │ │ │ └── BookingServiceApplicationTests.java │ │ ├── customer-service-module-4 │ │ │ ├── data │ │ │ │ └── elasticsearch │ │ │ │ │ └── nodes │ │ │ │ │ └── 0 │ │ │ │ │ ├── _state │ │ │ │ │ └── global-1.st │ │ │ │ │ └── node.lock │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── ps │ │ │ │ │ │ └── bk │ │ │ │ │ │ └── hotel │ │ │ │ │ │ └── customer │ │ │ │ │ │ ├── CustomerServiceApplication.java │ │ │ │ │ │ ├── config │ │ │ │ │ │ ├── ControllerLoggingAspect.java │ │ │ │ │ │ ├── CustomBasicAuthenticationEntryPoint.java │ │ │ │ │ │ └── SecurityConfig.java │ │ │ │ │ │ ├── controller │ │ │ │ │ │ └── CustomerController.java │ │ │ │ │ │ ├── exception │ │ │ │ │ │ └── CustomerSerivceClientException.java │ │ │ │ │ │ ├── model │ │ │ │ │ │ └── Customer.java │ │ │ │ │ │ ├── repo │ │ │ │ │ │ └── CustomerRepo.java │ │ │ │ │ │ └── service │ │ │ │ │ │ ├── CustomerService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ └── CustomerServiceImpl.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── ps │ │ │ │ │ └── bk │ │ │ │ │ └── hotel │ │ │ │ │ └── customer │ │ │ │ │ ├── CustomerServiceApplicationTests.java │ │ │ │ │ ├── config │ │ │ │ │ ├── TestAppender.java │ │ │ │ │ └── TestControllerAspectLoggingWeaving.java │ │ │ │ │ ├── controller │ │ │ │ │ ├── TestCustomerController.java │ │ │ │ │ └── TestCustomerControllerSecurity.java │ │ │ │ │ ├── model │ │ │ │ │ └── TestCustomerJsonSerializing.java │ │ │ │ │ └── repo │ │ │ │ │ └── TestCustomerRepo.java │ │ │ │ └── resources │ │ │ │ ├── logback-test.xml │ │ │ │ └── validFullCustomer.json │ │ ├── pom.xml │ │ └── room-service-module-4 │ │ │ ├── pom.xml │ │ │ ├── src │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── ps │ │ │ │ │ │ └── bk │ │ │ │ │ │ └── hotel │ │ │ │ │ │ └── room │ │ │ │ │ │ ├── RoomServiceApplication.java │ │ │ │ │ │ ├── controller │ │ │ │ │ │ └── RoomController.java │ │ │ │ │ │ ├── exception │ │ │ │ │ │ ├── RoomServiceClientException.java │ │ │ │ │ │ └── RoomServiceException.java │ │ │ │ │ │ ├── model │ │ │ │ │ │ └── Room.java │ │ │ │ │ │ ├── repo │ │ │ │ │ │ └── RoomRepo.java │ │ │ │ │ │ └── service │ │ │ │ │ │ ├── RoomService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ └── RoomServiceImpl.java │ │ │ │ └── resources │ │ │ │ │ ├── application.properties │ │ │ │ │ └── init.sql │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── ps │ │ │ │ ├── bk │ │ │ │ └── hotel │ │ │ │ │ └── room │ │ │ │ │ └── service │ │ │ │ │ └── impl │ │ │ │ │ └── TestRoomServiceImpl.java │ │ │ │ └── test │ │ │ │ └── room │ │ │ │ └── roomservice │ │ │ │ └── RoomServiceApplicationTests.java │ │ │ └── target │ │ │ └── classes │ │ │ ├── application.properties │ │ │ └── init.sql │ ├── ps-effective-automated-testing-in-spring-module-5 │ │ ├── booking-service-module-5 │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── ps │ │ │ │ │ │ └── bk │ │ │ │ │ │ └── hotel │ │ │ │ │ │ └── booking │ │ │ │ │ │ ├── BookingServiceApplication.java │ │ │ │ │ │ ├── controller │ │ │ │ │ │ └── BookingController.java │ │ │ │ │ │ ├── exception │ │ │ │ │ │ ├── BookingServiceClientException.java │ │ │ │ │ │ └── BookingServiceException.java │ │ │ │ │ │ ├── model │ │ │ │ │ │ └── Booking.java │ │ │ │ │ │ ├── repo │ │ │ │ │ │ └── BookingRepo.java │ │ │ │ │ │ └── service │ │ │ │ │ │ ├── BookingService.java │ │ │ │ │ │ ├── BookingValidationService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ └── BookingServiceImpl.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── ps │ │ │ │ │ └── bk │ │ │ │ │ └── hotel │ │ │ │ │ └── booking │ │ │ │ │ └── BaseClass.java │ │ │ │ └── resources │ │ │ │ └── contracts │ │ │ │ └── successfullyBookRoom.groovy │ │ ├── customer-service-module-5 │ │ │ ├── data │ │ │ │ └── elasticsearch │ │ │ │ │ └── nodes │ │ │ │ │ └── 0 │ │ │ │ │ ├── _state │ │ │ │ │ └── global-1.st │ │ │ │ │ └── node.lock │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── ps │ │ │ │ │ │ └── bk │ │ │ │ │ │ └── hotel │ │ │ │ │ │ └── customer │ │ │ │ │ │ ├── CustomerServiceApplication.java │ │ │ │ │ │ ├── config │ │ │ │ │ │ ├── ControllerLoggingAspect.java │ │ │ │ │ │ ├── CustomBasicAuthenticationEntryPoint.java │ │ │ │ │ │ ├── JPAConfig.java │ │ │ │ │ │ └── SecurityConfig.java │ │ │ │ │ │ ├── controller │ │ │ │ │ │ └── CustomerController.java │ │ │ │ │ │ ├── exception │ │ │ │ │ │ └── CustomerSerivceClientException.java │ │ │ │ │ │ ├── model │ │ │ │ │ │ └── Customer.java │ │ │ │ │ │ ├── repo │ │ │ │ │ │ └── CustomerRepo.java │ │ │ │ │ │ └── service │ │ │ │ │ │ ├── CustomerService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ └── CustomerServiceImpl.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── ps │ │ │ │ │ └── bk │ │ │ │ │ └── hotel │ │ │ │ │ └── customer │ │ │ │ │ ├── config │ │ │ │ │ ├── TestAppender.java │ │ │ │ │ └── TestControllerAspectLoggingWeaving.java │ │ │ │ │ ├── controller │ │ │ │ │ ├── TestCustomerController.java │ │ │ │ │ └── TestCustomerControllerSecurity.java │ │ │ │ │ ├── model │ │ │ │ │ └── TestCustomerJsonSerializing.java │ │ │ │ │ └── repo │ │ │ │ │ ├── ITCustomerRepo.java │ │ │ │ │ └── TestCustomerRepo.java │ │ │ │ └── resources │ │ │ │ ├── init_customerdb.sql │ │ │ │ ├── logback-static-appender.xml │ │ │ │ ├── logback-test.xml │ │ │ │ └── validFullCustomer.json │ │ ├── pom.xml │ │ └── room-service-module-5 │ │ │ ├── pom.xml │ │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── ps │ │ │ │ │ └── bk │ │ │ │ │ └── hotel │ │ │ │ │ └── room │ │ │ │ │ ├── RoomServiceApplication.java │ │ │ │ │ ├── controller │ │ │ │ │ └── RoomController.java │ │ │ │ │ ├── exception │ │ │ │ │ ├── RoomServiceClientException.java │ │ │ │ │ └── RoomServiceException.java │ │ │ │ │ ├── model │ │ │ │ │ ├── Booking.java │ │ │ │ │ └── Room.java │ │ │ │ │ ├── repo │ │ │ │ │ └── RoomRepo.java │ │ │ │ │ └── service │ │ │ │ │ ├── RoomService.java │ │ │ │ │ └── impl │ │ │ │ │ └── RoomServiceImpl.java │ │ │ └── resources │ │ │ │ ├── application.properties │ │ │ │ └── init.sql │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── ps │ │ │ ├── bk │ │ │ └── hotel │ │ │ │ └── room │ │ │ │ └── service │ │ │ │ └── impl │ │ │ │ └── TestRoomServiceImpl.java │ │ │ └── test │ │ │ └── room │ │ │ └── room │ │ │ └── service │ │ │ └── ContractValidatorRoomService.java │ └── ps-effective-automated-testing-in-spring-module-6 │ │ ├── acceptance-tests │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── ps │ │ │ │ └── bk │ │ │ │ └── hotel │ │ │ │ ├── booking │ │ │ │ └── model │ │ │ │ │ └── Booking.java │ │ │ │ ├── customer │ │ │ │ └── model │ │ │ │ │ └── Customer.java │ │ │ │ ├── room │ │ │ │ └── model │ │ │ │ │ └── Room.java │ │ │ │ └── test │ │ │ │ └── AcceptanceTestsApplication.java │ │ │ └── test │ │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ └── bk │ │ │ │ └── hotel │ │ │ │ └── test │ │ │ │ ├── RunCucumberTest.java │ │ │ │ └── steps │ │ │ │ └── ExistingCustomerBooksRoom.java │ │ │ └── resources │ │ │ └── Room_Booking.feature │ │ ├── booking-service-module-6 │ │ ├── pom.xml │ │ └── src │ │ │ ├── assembly │ │ │ └── stub.xml │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── ps │ │ │ │ │ └── bk │ │ │ │ │ └── hotel │ │ │ │ │ └── booking │ │ │ │ │ ├── BookingServiceApplication.java │ │ │ │ │ ├── controller │ │ │ │ │ └── BookingController.java │ │ │ │ │ ├── exception │ │ │ │ │ ├── BookingServiceClientException.java │ │ │ │ │ └── BookingServiceException.java │ │ │ │ │ ├── model │ │ │ │ │ └── Booking.java │ │ │ │ │ ├── repo │ │ │ │ │ └── BookingRepo.java │ │ │ │ │ └── service │ │ │ │ │ ├── BookingService.java │ │ │ │ │ ├── BookingValidationService.java │ │ │ │ │ └── impl │ │ │ │ │ └── BookingServiceImpl.java │ │ │ └── resources │ │ │ │ └── application.properties │ │ │ └── test │ │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ └── bk │ │ │ │ └── hotel │ │ │ │ └── booking │ │ │ │ ├── BaseClass.java │ │ │ │ └── TestBookingServiceImpl.java │ │ │ └── resources │ │ │ └── contracts │ │ │ └── successfullyBookRoom.groovy │ │ ├── customer-service-module-6 │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── asciidoc │ │ │ │ └── index.adoc │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── ps │ │ │ │ │ └── bk │ │ │ │ │ └── hotel │ │ │ │ │ └── customer │ │ │ │ │ ├── CustomerServiceApplication.java │ │ │ │ │ ├── config │ │ │ │ │ ├── ControllerLoggingAspect.java │ │ │ │ │ ├── CustomBasicAuthenticationEntryPoint.java │ │ │ │ │ └── SecurityConfig.java │ │ │ │ │ ├── controller │ │ │ │ │ └── CustomerController.java │ │ │ │ │ ├── exception │ │ │ │ │ └── CustomerSerivceClientException.java │ │ │ │ │ ├── model │ │ │ │ │ └── Customer.java │ │ │ │ │ ├── repo │ │ │ │ │ └── CustomerRepo.java │ │ │ │ │ └── service │ │ │ │ │ ├── CustomerService.java │ │ │ │ │ └── impl │ │ │ │ │ └── CustomerServiceImpl.java │ │ │ └── resources │ │ │ │ ├── application.properties │ │ │ │ └── import.sql │ │ │ └── test │ │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ └── bk │ │ │ │ └── hotel │ │ │ │ └── customer │ │ │ │ ├── config │ │ │ │ ├── TestAppender.java │ │ │ │ └── TestControllerAspectLoggingWeaving.java │ │ │ │ ├── controller │ │ │ │ ├── TestCustomerController.java │ │ │ │ └── TestCustomerControllerSecurity.java │ │ │ │ ├── model │ │ │ │ └── TestCustomerJsonSerializing.java │ │ │ │ └── repo │ │ │ │ ├── ITCustomerRepo.java │ │ │ │ └── TestCustomerRepo.java │ │ │ └── resources │ │ │ ├── init_customerdb.sql │ │ │ ├── logback-static-appender.xml │ │ │ ├── logback-test.xml │ │ │ └── validFullCustomer.json │ │ ├── pom.xml │ │ └── room-service-module-6 │ │ ├── pom.xml │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ └── bk │ │ │ │ └── hotel │ │ │ │ └── room │ │ │ │ ├── RoomServiceApplication.java │ │ │ │ ├── controller │ │ │ │ └── RoomController.java │ │ │ │ ├── exception │ │ │ │ ├── RoomServiceClientException.java │ │ │ │ └── RoomServiceException.java │ │ │ │ ├── model │ │ │ │ ├── Booking.java │ │ │ │ └── Room.java │ │ │ │ ├── repo │ │ │ │ └── RoomRepo.java │ │ │ │ └── service │ │ │ │ ├── RoomService.java │ │ │ │ └── impl │ │ │ │ └── RoomServiceImpl.java │ │ └── resources │ │ │ ├── application.properties │ │ │ └── import.sql │ │ └── test │ │ └── java │ │ └── com │ │ └── ps │ │ ├── bk │ │ └── hotel │ │ │ └── room │ │ │ └── service │ │ │ └── impl │ │ │ └── TestRoomServiceImpl.java │ │ └── test │ │ └── room │ │ └── room │ │ └── service │ │ └── ContractValidatorRoomService.java └── pom.xml ├── images ├── IOC │ ├── after_init_method.png │ ├── bfpp.png │ └── how_everything_works.png ├── Screenshot.png ├── Screenshot_1.png ├── Screenshot_2.png ├── Screenshot_3.png ├── Screenshot_4.png ├── Screenshot_5.png ├── aop │ ├── Screenshot.png │ ├── Screenshot_1.png │ ├── Screenshot_10.png │ ├── Screenshot_11.png │ ├── Screenshot_12.png │ ├── Screenshot_13.png │ ├── Screenshot_14.png │ ├── Screenshot_15.png │ ├── Screenshot_16.png │ ├── Screenshot_17.png │ ├── Screenshot_18.png │ ├── Screenshot_2.png │ ├── Screenshot_3.png │ ├── Screenshot_4.png │ ├── Screenshot_5.png │ ├── Screenshot_6.png │ ├── Screenshot_7.png │ ├── Screenshot_8.png │ └── Screenshot_9.png ├── core_spring_in_detail │ ├── Screenshot_1.png │ ├── Screenshot_10.png │ ├── Screenshot_11.png │ ├── Screenshot_12.png │ ├── Screenshot_13.png │ ├── Screenshot_14.png │ ├── Screenshot_2.png │ ├── Screenshot_3.png │ ├── Screenshot_4.png │ ├── Screenshot_5.png │ ├── Screenshot_6.png │ ├── Screenshot_7.png │ └── Screenshot_8.png ├── db │ ├── Screenshot_1.png │ ├── Screenshot_10.png │ ├── Screenshot_11.png │ ├── Screenshot_12.png │ ├── Screenshot_13.png │ ├── Screenshot_14.png │ ├── Screenshot_15.png │ ├── Screenshot_16.png │ ├── Screenshot_17.png │ ├── Screenshot_18.png │ ├── Screenshot_19.png │ ├── Screenshot_2.png │ ├── Screenshot_20.png │ ├── Screenshot_21.png │ ├── Screenshot_22.png │ ├── Screenshot_23.png │ ├── Screenshot_24.png │ ├── Screenshot_25.png │ ├── Screenshot_26.png │ ├── Screenshot_27.png │ ├── Screenshot_28.png │ ├── Screenshot_3.png │ ├── Screenshot_4.png │ ├── Screenshot_5.png │ ├── Screenshot_6.png │ ├── Screenshot_7.png │ ├── Screenshot_8.png │ └── Screenshot_9.png ├── handout │ ├── Screenshot_1.png │ ├── Screenshot_10.png │ ├── Screenshot_100.png │ ├── Screenshot_101.png │ ├── Screenshot_102.png │ ├── Screenshot_103.png │ ├── Screenshot_104.png │ ├── Screenshot_105.png │ ├── Screenshot_106.png │ ├── Screenshot_107.png │ ├── Screenshot_108.png │ ├── Screenshot_109.png │ ├── Screenshot_11.png │ ├── Screenshot_110.png │ ├── Screenshot_111.png │ ├── Screenshot_112.png │ ├── Screenshot_113.png │ ├── Screenshot_12.png │ ├── Screenshot_13.png │ ├── Screenshot_14.png │ ├── Screenshot_15.png │ ├── Screenshot_16.png │ ├── Screenshot_17.png │ ├── Screenshot_18.png │ ├── Screenshot_19.png │ ├── Screenshot_2.png │ ├── Screenshot_20.png │ ├── Screenshot_21.png │ ├── Screenshot_22.png │ ├── Screenshot_23.png │ ├── Screenshot_24.png │ ├── Screenshot_25.png │ ├── Screenshot_26.png │ ├── Screenshot_27.png │ ├── Screenshot_28.png │ ├── Screenshot_29.png │ ├── Screenshot_3.png │ ├── Screenshot_30.png │ ├── Screenshot_31.png │ ├── Screenshot_32.png │ ├── Screenshot_33.png │ ├── Screenshot_34.png │ ├── Screenshot_35.png │ ├── Screenshot_36.png │ ├── Screenshot_37.png │ ├── Screenshot_38.png │ ├── Screenshot_39.png │ ├── Screenshot_4.png │ ├── Screenshot_40.png │ ├── Screenshot_41.png │ ├── Screenshot_42.png │ ├── Screenshot_43.png │ ├── Screenshot_44.png │ ├── Screenshot_45.png │ ├── Screenshot_46.png │ ├── Screenshot_47.png │ ├── Screenshot_48.png │ ├── Screenshot_49.png │ ├── Screenshot_5.png │ ├── Screenshot_50.png │ ├── Screenshot_51.png │ ├── Screenshot_52.png │ ├── Screenshot_53.png │ ├── Screenshot_54.png │ ├── Screenshot_55.png │ ├── Screenshot_56.png │ ├── Screenshot_57.png │ ├── Screenshot_58.png │ ├── Screenshot_59.png │ ├── Screenshot_6.png │ ├── Screenshot_60.png │ ├── Screenshot_61.png │ ├── Screenshot_62.png │ ├── Screenshot_63.png │ ├── Screenshot_64.png │ ├── Screenshot_65.png │ ├── Screenshot_66.png │ ├── Screenshot_67.png │ ├── Screenshot_68.png │ ├── Screenshot_69.png │ ├── Screenshot_7.png │ ├── Screenshot_70.png │ ├── Screenshot_71.png │ ├── Screenshot_72.png │ ├── Screenshot_73.png │ ├── Screenshot_74.png │ ├── Screenshot_75.png │ ├── Screenshot_76.png │ ├── Screenshot_77.png │ ├── Screenshot_78.png │ ├── Screenshot_79.png │ ├── Screenshot_8.png │ ├── Screenshot_80.png │ ├── Screenshot_81.png │ ├── Screenshot_82.png │ ├── Screenshot_83.png │ ├── Screenshot_84.png │ ├── Screenshot_85.png │ ├── Screenshot_86.png │ ├── Screenshot_87.png │ ├── Screenshot_88.png │ ├── Screenshot_89.png │ ├── Screenshot_9.png │ ├── Screenshot_90.png │ ├── Screenshot_91.png │ ├── Screenshot_92.png │ ├── Screenshot_93.png │ ├── Screenshot_94.png │ ├── Screenshot_95.png │ ├── Screenshot_96.png │ ├── Screenshot_97.png │ ├── Screenshot_98.png │ └── Screenshot_99.png ├── integration │ ├── Screenshot_1.png │ ├── Screenshot_2.png │ └── Screenshot_3.png ├── pet-sitter │ ├── Screenshot_1.png │ ├── Screenshot_10.png │ ├── Screenshot_11.png │ ├── Screenshot_12.png │ ├── Screenshot_13.png │ ├── Screenshot_14.png │ ├── Screenshot_15.png │ ├── Screenshot_16.png │ ├── Screenshot_17.png │ ├── Screenshot_18.png │ ├── Screenshot_19.png │ ├── Screenshot_20.png │ ├── Screenshot_21.png │ ├── Screenshot_22.png │ ├── Screenshot_23.png │ ├── Screenshot_24.png │ ├── Screenshot_25.png │ ├── Screenshot_26.png │ ├── Screenshot_27.png │ ├── Screenshot_28.png │ ├── Screenshot_29.png │ ├── Screenshot_3.png │ ├── Screenshot_30.png │ ├── Screenshot_31.png │ ├── Screenshot_32.png │ ├── Screenshot_33.png │ ├── Screenshot_34.png │ ├── Screenshot_35.png │ ├── Screenshot_36.png │ ├── Screenshot_37.png │ ├── Screenshot_38.png │ ├── Screenshot_39.png │ ├── Screenshot_4.png │ ├── Screenshot_5.png │ ├── Screenshot_6.png │ ├── Screenshot_7.png │ ├── Screenshot_8.png │ └── Screenshot_9.png ├── qa │ ├── Screenshot_1.png │ ├── Screenshot_2.png │ ├── Screenshot_3.png │ ├── Screenshot_4.png │ ├── Screenshot_5.png │ ├── Screenshot_6.png │ ├── Screenshot_7.png │ ├── Screenshot_8.png │ └── Screenshot_9.png ├── result.png ├── spring_cloud │ ├── Screenshot_1.png │ ├── Screenshot_10.png │ ├── Screenshot_11.png │ ├── Screenshot_12.png │ ├── Screenshot_13.png │ ├── Screenshot_14.png │ ├── Screenshot_15.png │ ├── Screenshot_16.png │ ├── Screenshot_17.png │ ├── Screenshot_18.png │ ├── Screenshot_19.png │ ├── Screenshot_2.png │ ├── Screenshot_20.png │ ├── Screenshot_21.png │ ├── Screenshot_22.png │ ├── Screenshot_23.png │ ├── Screenshot_24.png │ ├── Screenshot_25.png │ ├── Screenshot_26.png │ ├── Screenshot_27.png │ ├── Screenshot_28.png │ ├── Screenshot_29.png │ ├── Screenshot_3.png │ ├── Screenshot_30.png │ ├── Screenshot_31.png │ ├── Screenshot_32.png │ ├── Screenshot_33.png │ ├── Screenshot_34.png │ ├── Screenshot_35.png │ ├── Screenshot_36.png │ ├── Screenshot_37.png │ ├── Screenshot_38.png │ ├── Screenshot_39.png │ ├── Screenshot_4.png │ ├── Screenshot_40.png │ ├── Screenshot_41.png │ ├── Screenshot_42.png │ ├── Screenshot_43.png │ ├── Screenshot_44.png │ ├── Screenshot_45.png │ ├── Screenshot_46.png │ ├── Screenshot_47.png │ ├── Screenshot_48.png │ ├── Screenshot_49.png │ ├── Screenshot_5.png │ ├── Screenshot_50.png │ ├── Screenshot_51.png │ ├── Screenshot_52.png │ ├── Screenshot_53.png │ ├── Screenshot_54.png │ ├── Screenshot_55.png │ ├── Screenshot_56.png │ ├── Screenshot_57.png │ ├── Screenshot_58.png │ ├── Screenshot_59.png │ ├── Screenshot_6.png │ ├── Screenshot_60.png │ ├── Screenshot_61.png │ ├── Screenshot_7.png │ ├── Screenshot_8.png │ ├── Screenshot_9.png │ └── diagram-distributed-systems.svg └── web │ ├── boot │ ├── Screenshot_1.png │ ├── Screenshot_10.png │ ├── Screenshot_11.png │ ├── Screenshot_12.png │ ├── Screenshot_13.png │ ├── Screenshot_14.png │ ├── Screenshot_15.png │ ├── Screenshot_16.png │ ├── Screenshot_17.png │ ├── Screenshot_18.png │ ├── Screenshot_19.png │ ├── Screenshot_2.png │ ├── Screenshot_20.png │ ├── Screenshot_3.png │ ├── Screenshot_4.png │ ├── Screenshot_5.png │ ├── Screenshot_6.png │ ├── Screenshot_7.png │ ├── Screenshot_8.png │ └── Screenshot_9.png │ ├── mvc │ ├── Screenshot.png │ ├── Screenshot_1.png │ ├── Screenshot_2.png │ ├── Screenshot_3.png │ ├── web_services.png │ └── workflow.png │ ├── rest │ └── The-Richardson-Maturity-Model-Nordic-APIs.png │ └── security │ ├── Screenshot_1.png │ ├── Screenshot_2.png │ ├── Screenshot_3.png │ ├── Screenshot_4.png │ ├── Screenshot_5.png │ ├── Screenshot_6.png │ ├── Screenshot_7.png │ └── security_unders_the_hood.png ├── materials ├── Core-Spring-5.0-Certification-Study-Guide.pdf ├── SpringFrameworkNotesForProfessionals.pdf ├── Spring_3_Certification_Study_Notes.pdf ├── core-spring-4.3.b-RELEASE-student-handout.pdf ├── core-spring-4.3.b.RELEASE-labdocs.pdf └── spring-certification-4_2-mock-exam-antoine.pdf ├── pet-sitter ├── 00-ps-core │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── ps │ │ ├── CleanUp.java │ │ ├── base │ │ ├── AbstractEntity.java │ │ ├── PetType.java │ │ ├── RequestStatus.java │ │ ├── ResponseStatus.java │ │ ├── ReviewGrade.java │ │ └── UserType.java │ │ ├── ents │ │ ├── Pet.java │ │ ├── Request.java │ │ ├── Response.java │ │ ├── Review.java │ │ └── User.java │ │ └── util │ │ ├── DateFormatter.java │ │ ├── JsonDateSerializer.java │ │ ├── Pair.java │ │ └── RecordBuilder.java ├── 01-ps-start-practice │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── ps │ │ │ ├── repos │ │ │ ├── AbstractRepo.java │ │ │ ├── PetRepo.java │ │ │ ├── RequestRepo.java │ │ │ ├── ResponseRepo.java │ │ │ ├── ReviewRepo.java │ │ │ └── UserRepo.java │ │ │ └── services │ │ │ ├── AbstractService.java │ │ │ ├── OperationsService.java │ │ │ ├── PetService.java │ │ │ ├── RequestService.java │ │ │ ├── ResponseService.java │ │ │ ├── ReviewService.java │ │ │ ├── UserService.java │ │ │ └── impl │ │ │ ├── SimpleAbstractService.java │ │ │ ├── SimpleOperationsService.java │ │ │ ├── SimplePetService.java │ │ │ ├── SimpleRequestService.java │ │ │ ├── SimpleResponseService.java │ │ │ ├── SimpleReviewService.java │ │ │ └── SimpleUserService.java │ │ └── test │ │ └── java │ │ └── com │ │ └── ps │ │ └── repo │ │ ├── services │ │ ├── SimpleOperationsServiceTest.java │ │ └── SimpleServiceTestBase.java │ │ └── stub │ │ ├── StubAbstractRepo.java │ │ ├── StubPetRepo.java │ │ ├── StubRequestRepo.java │ │ ├── StubResponseRepo.java │ │ ├── StubReviewRepo.java │ │ └── StubUserRepo.java ├── 01-ps-start-solution │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── ps │ │ │ ├── repos │ │ │ ├── AbstractRepo.java │ │ │ ├── PetRepo.java │ │ │ ├── RequestRepo.java │ │ │ ├── ResponseRepo.java │ │ │ ├── ReviewRepo.java │ │ │ └── UserRepo.java │ │ │ └── services │ │ │ ├── AbstractService.java │ │ │ ├── OperationsService.java │ │ │ ├── PetService.java │ │ │ ├── RequestService.java │ │ │ ├── ResponseService.java │ │ │ ├── ReviewService.java │ │ │ ├── UserService.java │ │ │ └── impl │ │ │ ├── SimpleAbstractService.java │ │ │ ├── SimpleOperationsService.java │ │ │ ├── SimplePetService.java │ │ │ ├── SimpleRequestService.java │ │ │ ├── SimpleResponseService.java │ │ │ ├── SimpleReviewService.java │ │ │ └── SimpleUserService.java │ │ └── test │ │ └── java │ │ └── com │ │ └── ps │ │ └── repo │ │ ├── services │ │ ├── SimpleOperationsServiceTest.java │ │ └── SimpleServiceTestBase.java │ │ └── stub │ │ ├── StubAbstractRepo.java │ │ ├── StubPetRepo.java │ │ ├── StubRequestRepo.java │ │ ├── StubResponseRepo.java │ │ ├── StubReviewRepo.java │ │ └── StubUserRepo.java ├── 02-ps-container-01-practice │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ ├── beans │ │ │ │ ├── ComplexBean.java │ │ │ │ ├── SimpleBean.java │ │ │ │ ├── SimpleBeanImpl.java │ │ │ │ ├── ctr │ │ │ │ │ ├── ComplexBean2Impl.java │ │ │ │ │ ├── ComplexBeanImpl.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── others │ │ │ │ │ ├── CollectionHolder.java │ │ │ │ │ ├── DateConverter.java │ │ │ │ │ ├── MultipleTypesBean.java │ │ │ │ │ ├── SimpleFactoryBean.java │ │ │ │ │ ├── SimpleFactoryMethod.java │ │ │ │ │ ├── SimpleSingleton.java │ │ │ │ │ └── SpringFactoryBean.java │ │ │ │ └── set │ │ │ │ │ ├── ComplexBean2Impl.java │ │ │ │ │ ├── ComplexBeanImpl.java │ │ │ │ │ └── package-info.java │ │ │ │ └── sample │ │ │ │ ├── ComplexBean.java │ │ │ │ ├── ComplexBean2.java │ │ │ │ └── SimpleBean.java │ │ └── resources │ │ │ ├── db │ │ │ └── datasource.properties │ │ │ ├── logback.xml │ │ │ └── spring │ │ │ ├── application-config.xml │ │ │ ├── ctr │ │ │ ├── sample-config-01.xml │ │ │ └── sample-config-02.xml │ │ │ ├── others │ │ │ ├── multiple-types-bean-config.xml │ │ │ ├── sample-config-01.xml │ │ │ ├── sample-config-02.xml │ │ │ └── sample-config-03.xml │ │ │ └── set │ │ │ ├── sample-config-01.xml │ │ │ └── sample-config-02.xml │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── ApplicationContextTest.java │ │ │ └── beans │ │ │ ├── ctr │ │ │ └── CIBeansTest.java │ │ │ ├── others │ │ │ ├── BeanNamingTest.java │ │ │ ├── CollectionBeansTest.java │ │ │ └── MtBeanTest.java │ │ │ └── set │ │ │ └── SIBeansTest.java │ │ └── resources │ │ └── spring │ │ ├── test-config-01.xml │ │ └── test-config-02.xml ├── 02-ps-container-01-solution │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ ├── beans │ │ │ │ ├── ComplexBean.java │ │ │ │ ├── SimpleBean.java │ │ │ │ ├── SimpleBeanImpl.java │ │ │ │ ├── ctr │ │ │ │ │ ├── ComplexBean2Impl.java │ │ │ │ │ ├── ComplexBeanImpl.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── others │ │ │ │ │ ├── CollectionHolder.java │ │ │ │ │ ├── DateConverter.java │ │ │ │ │ ├── MultipleTypesBean.java │ │ │ │ │ ├── SimpleFactoryBean.java │ │ │ │ │ ├── SimpleFactoryMethod.java │ │ │ │ │ ├── SimpleSingleton.java │ │ │ │ │ └── SpringFactoryBean.java │ │ │ │ └── set │ │ │ │ │ ├── ComplexBean2Impl.java │ │ │ │ │ ├── ComplexBeanImpl.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── repos │ │ │ │ ├── AbstractRepo.java │ │ │ │ ├── PetRepo.java │ │ │ │ ├── RequestRepo.java │ │ │ │ ├── ResponseRepo.java │ │ │ │ ├── ReviewRepo.java │ │ │ │ ├── UserRepo.java │ │ │ │ └── impl │ │ │ │ │ ├── JdbcAbstractRepo.java │ │ │ │ │ ├── JdbcPetRepo.java │ │ │ │ │ ├── JdbcRequestRepo.java │ │ │ │ │ ├── JdbcResponseRepo.java │ │ │ │ │ ├── JdbcReviewRepo.java │ │ │ │ │ └── JdbcUserRepo.java │ │ │ │ ├── sample │ │ │ │ ├── ComplexBean.java │ │ │ │ ├── ComplexBean2.java │ │ │ │ └── SimpleBean.java │ │ │ │ └── services │ │ │ │ ├── AbstractService.java │ │ │ │ ├── OperationsService.java │ │ │ │ ├── PetService.java │ │ │ │ ├── RequestService.java │ │ │ │ ├── ResponseService.java │ │ │ │ ├── ReviewService.java │ │ │ │ ├── UserService.java │ │ │ │ └── impl │ │ │ │ ├── SimpleAbstractService.java │ │ │ │ ├── SimpleOperationsService.java │ │ │ │ ├── SimplePetService.java │ │ │ │ ├── SimpleRequestService.java │ │ │ │ ├── SimpleResponseService.java │ │ │ │ ├── SimpleReviewService.java │ │ │ │ └── SimpleUserService.java │ │ └── resources │ │ │ ├── db │ │ │ └── datasource.properties │ │ │ ├── logback.xml │ │ │ └── spring │ │ │ ├── application-config.xml │ │ │ ├── ctr │ │ │ ├── sample-config-01.xml │ │ │ └── sample-config-02.xml │ │ │ ├── others │ │ │ ├── collections-cfg.xml │ │ │ ├── converter-cfg.xml │ │ │ ├── factory-cfg.xml │ │ │ ├── num-cfg.xml │ │ │ ├── sample-config-01.xml │ │ │ ├── sample-config-02.xml │ │ │ └── sample-config-03.xml │ │ │ └── set │ │ │ ├── sample-config-01.xml │ │ │ └── sample-config-02.xml │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── ApplicationContextTest.java │ │ │ ├── another │ │ │ └── quiz │ │ │ │ └── AnotherQuizBean.java │ │ │ ├── beans │ │ │ ├── ctr │ │ │ │ └── CIBeansTest.java │ │ │ ├── others │ │ │ │ ├── BeanNamingTest.java │ │ │ │ ├── CollectionBeansTest.java │ │ │ │ └── MtBeanTest.java │ │ │ └── set │ │ │ │ └── SIBeansTest.java │ │ │ ├── cfg │ │ │ └── Appconfig.java │ │ │ └── quiz │ │ │ └── QuizBean.java │ │ └── resources │ │ ├── db │ │ ├── schema.sql │ │ └── test-data.sql │ │ └── spring │ │ ├── test-config-01.xml │ │ ├── test-config-02.xml │ │ └── test-config-03.xml ├── 02-ps-container-02-practice │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ ├── config │ │ │ │ ├── AllRepoConfig.java │ │ │ │ ├── DataSourceConfig.java │ │ │ │ ├── DataSourceConfig1.java │ │ │ │ ├── PetRepoConfig.java │ │ │ │ ├── RequestRepoConfig.java │ │ │ │ └── UserRepoDSConfig.java │ │ │ │ ├── repos │ │ │ │ ├── AbstractRepo.java │ │ │ │ ├── PetRepo.java │ │ │ │ ├── RequestRepo.java │ │ │ │ ├── ResponseRepo.java │ │ │ │ ├── ReviewRepo.java │ │ │ │ ├── UserRepo.java │ │ │ │ └── impl │ │ │ │ │ ├── JdbcAbstractRepo.java │ │ │ │ │ ├── JdbcPetRepo.java │ │ │ │ │ ├── JdbcRequestRepo.java │ │ │ │ │ ├── JdbcResponseRepo.java │ │ │ │ │ ├── JdbcReviewRepo.java │ │ │ │ │ └── JdbcUserRepo.java │ │ │ │ └── services │ │ │ │ ├── AbstractService.java │ │ │ │ ├── OperationsService.java │ │ │ │ ├── PetService.java │ │ │ │ ├── RequestService.java │ │ │ │ ├── ResponseService.java │ │ │ │ ├── ReviewService.java │ │ │ │ ├── UserService.java │ │ │ │ └── impl │ │ │ │ ├── SimpleAbstractService.java │ │ │ │ ├── SimpleOperationsService.java │ │ │ │ ├── SimplePetService.java │ │ │ │ ├── SimpleRequestService.java │ │ │ │ ├── SimpleResponseService.java │ │ │ │ ├── SimpleReviewService.java │ │ │ │ └── SimpleUserService.java │ │ └── resources │ │ │ ├── db │ │ │ └── datasource.properties │ │ │ └── spring │ │ │ ├── application-config.xml │ │ │ └── user-repo-config.xml │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── ApplicationContextTest.java │ │ │ ├── AutowiringTest.java │ │ │ ├── BootStrapInjectionTest.java │ │ │ ├── BootstrapTest.java │ │ │ ├── CfgToXmlTest.java │ │ │ ├── GenericQualifierTest.java │ │ │ └── XmlToCfgTest.java │ │ └── resources │ │ └── spring │ │ ├── test-config-01.xml │ │ ├── test-config-02.xml │ │ ├── test-config-03.xml │ │ └── test-config-04.xml ├── 02-ps-container-02-solution │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ ├── config │ │ │ │ ├── AllRepoConfig.java │ │ │ │ ├── DataSourceConfig.java │ │ │ │ ├── DataSourceConfig1.java │ │ │ │ ├── PetRepoConfig.java │ │ │ │ ├── RequestRepoConfig.java │ │ │ │ └── UserRepoDSConfig.java │ │ │ │ ├── repos │ │ │ │ ├── AbstractRepo.java │ │ │ │ ├── PetRepo.java │ │ │ │ ├── RequestRepo.java │ │ │ │ ├── ResponseRepo.java │ │ │ │ ├── ReviewRepo.java │ │ │ │ ├── UserRepo.java │ │ │ │ └── impl │ │ │ │ │ ├── JdbcAbstractRepo.java │ │ │ │ │ ├── JdbcPetRepo.java │ │ │ │ │ ├── JdbcRequestRepo.java │ │ │ │ │ ├── JdbcResponseRepo.java │ │ │ │ │ ├── JdbcReviewRepo.java │ │ │ │ │ └── JdbcUserRepo.java │ │ │ │ └── services │ │ │ │ ├── AbstractService.java │ │ │ │ ├── OperationsService.java │ │ │ │ ├── PetService.java │ │ │ │ ├── RequestService.java │ │ │ │ ├── ResponseService.java │ │ │ │ ├── ReviewService.java │ │ │ │ ├── UserService.java │ │ │ │ └── impl │ │ │ │ ├── SimpleAbstractService.java │ │ │ │ ├── SimpleOperationsService.java │ │ │ │ ├── SimplePetService.java │ │ │ │ ├── SimpleRequestService.java │ │ │ │ ├── SimpleResponseService.java │ │ │ │ ├── SimpleReviewService.java │ │ │ │ └── SimpleUserService.java │ │ └── resources │ │ │ ├── db │ │ │ └── datasource.properties │ │ │ ├── logback.xml │ │ │ └── spring │ │ │ ├── application-config.xml │ │ │ └── user-repo-config.xml │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── ApplicationContextTest.java │ │ │ ├── AutowiringTest.java │ │ │ ├── BootstrapTest.java │ │ │ ├── CfgToXmlTest.java │ │ │ ├── GenericQualifierTest.java │ │ │ ├── MixedConfigTest.java │ │ │ ├── XmlToCfgTest.java │ │ │ ├── sample │ │ │ └── TestBeanOne.java │ │ │ └── tmp │ │ │ ├── AppConfig.java │ │ │ ├── AutowiringTest.java │ │ │ └── QuizBean.java │ │ └── resources │ │ └── spring │ │ ├── test-config-01.xml │ │ ├── test-config-02.xml │ │ ├── test-config-03.xml │ │ ├── test-config-04.xml │ │ └── test-config-05.xml ├── 03-ps-test-practice │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ ├── PetConfigClass.java │ │ │ │ ├── repos │ │ │ │ ├── AbstractRepo.java │ │ │ │ ├── NotFoundException.java │ │ │ │ ├── PetRepo.java │ │ │ │ ├── RequestRepo.java │ │ │ │ ├── ResponseRepo.java │ │ │ │ ├── ReviewRepo.java │ │ │ │ └── UserRepo.java │ │ │ │ └── services │ │ │ │ ├── AbstractService.java │ │ │ │ ├── OperationsService.java │ │ │ │ ├── PetService.java │ │ │ │ ├── RequestService.java │ │ │ │ ├── ResponseService.java │ │ │ │ ├── ReviewService.java │ │ │ │ ├── UserService.java │ │ │ │ └── impl │ │ │ │ ├── SimpleAbstractService.java │ │ │ │ ├── SimplePetService.java │ │ │ │ ├── SimpleRequestService.java │ │ │ │ ├── SimpleResponseService.java │ │ │ │ ├── SimpleReviewService.java │ │ │ │ └── SimpleUserService.java │ │ └── resources │ │ │ ├── logback.xml │ │ │ └── spring │ │ │ └── pet-cfg.xml │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ └── TestAppConfig.java │ │ │ ├── integration │ │ │ ├── SpringPetServiceTest.java │ │ │ └── SpringPetServiceTest2.java │ │ │ ├── repo │ │ │ ├── services │ │ │ │ ├── MockPetServiceTest.java │ │ │ │ ├── SimplePetServiceTest.java │ │ │ │ ├── SimpleRequestServiceTest.java │ │ │ │ ├── SimpleReviewServiceTest.java │ │ │ │ └── SimpleUserServiceTest.java │ │ │ └── stub │ │ │ │ ├── StubAbstractRepo.java │ │ │ │ └── StubPetRepo.java │ │ │ └── util │ │ │ └── TestObjectsBuilder.java │ │ └── resources │ │ └── spring │ │ └── test-cfg.xml ├── 03-ps-test-sample │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ ├── config │ │ │ │ ├── PetConfigClass.java │ │ │ │ └── ProdDataConfig.java │ │ │ │ ├── repos │ │ │ │ ├── AbstractRepo.java │ │ │ │ ├── NotFoundException.java │ │ │ │ ├── PetRepo.java │ │ │ │ ├── RequestRepo.java │ │ │ │ ├── ResponseRepo.java │ │ │ │ ├── ReviewRepo.java │ │ │ │ ├── UserRepo.java │ │ │ │ └── impl │ │ │ │ │ ├── JdbcAbstractRepo.java │ │ │ │ │ ├── JdbcPetRepo.java │ │ │ │ │ ├── JdbcRequestRepo.java │ │ │ │ │ ├── JdbcResponseRepo.java │ │ │ │ │ ├── JdbcReviewRepo.java │ │ │ │ │ └── JdbcUserRepo.java │ │ │ │ └── services │ │ │ │ ├── AbstractService.java │ │ │ │ ├── OperationsService.java │ │ │ │ ├── PetService.java │ │ │ │ ├── RequestService.java │ │ │ │ ├── ResponseService.java │ │ │ │ ├── ReviewService.java │ │ │ │ ├── UserService.java │ │ │ │ └── impl │ │ │ │ ├── SimpleAbstractService.java │ │ │ │ ├── SimplePetService.java │ │ │ │ ├── SimpleRequestService.java │ │ │ │ ├── SimpleResponseService.java │ │ │ │ ├── SimpleReviewService.java │ │ │ │ └── SimpleUserService.java │ │ └── resources │ │ │ ├── db │ │ │ └── datasource.properties │ │ │ └── logback.xml │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ └── TestDataConfig.java │ │ │ └── test │ │ │ └── PetServiceTest.java │ │ └── resources │ │ └── db │ │ ├── schema.sql │ │ └── test-data.sql ├── 03-ps-test-solution │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ ├── config │ │ │ │ ├── JdbcRepoConfig.java │ │ │ │ ├── PetConfigClass.java │ │ │ │ ├── PetConfigClass2.java │ │ │ │ └── ServiceConfig.java │ │ │ │ ├── repos │ │ │ │ ├── AbstractRepo.java │ │ │ │ ├── NotFoundException.java │ │ │ │ ├── PetRepo.java │ │ │ │ ├── RequestRepo.java │ │ │ │ ├── ResponseRepo.java │ │ │ │ ├── ReviewRepo.java │ │ │ │ ├── UserRepo.java │ │ │ │ └── impl │ │ │ │ │ ├── JdbcAbstractRepo.java │ │ │ │ │ ├── JdbcPetRepo.java │ │ │ │ │ ├── JdbcRequestRepo.java │ │ │ │ │ ├── JdbcResponseRepo.java │ │ │ │ │ ├── JdbcReviewRepo.java │ │ │ │ │ └── JdbcUserRepo.java │ │ │ │ └── services │ │ │ │ ├── AbstractService.java │ │ │ │ ├── OperationsService.java │ │ │ │ ├── PetService.java │ │ │ │ ├── RequestService.java │ │ │ │ ├── ResponseService.java │ │ │ │ ├── ReviewService.java │ │ │ │ ├── UserService.java │ │ │ │ └── impl │ │ │ │ ├── SimpleAbstractService.java │ │ │ │ ├── SimplePetService.java │ │ │ │ ├── SimpleRequestService.java │ │ │ │ ├── SimpleResponseService.java │ │ │ │ ├── SimpleReviewService.java │ │ │ │ └── SimpleUserService.java │ │ └── resources │ │ │ ├── logback.xml │ │ │ └── spring │ │ │ └── pet-cfg.xml │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ ├── TestAppConfig.java │ │ │ ├── TestAppConfig2.java │ │ │ └── TestAppConfig3.java │ │ │ ├── integration │ │ │ ├── AnnPetServiceTest.java │ │ │ ├── SpringPetServiceTest.java │ │ │ ├── SpringPetServiceTest2.java │ │ │ └── SpringPetServiceTest3.java │ │ │ ├── mock │ │ │ └── MockTemplateConfig.java │ │ │ ├── repo │ │ │ ├── services │ │ │ │ ├── MockPetServiceTest.java │ │ │ │ ├── SimplePetServiceTest.java │ │ │ │ ├── SimpleRequestServiceTest.java │ │ │ │ ├── SimpleReviewServiceTest.java │ │ │ │ └── SimpleUserServiceTest.java │ │ │ └── stub │ │ │ │ ├── StubAbstractRepo.java │ │ │ │ └── StubPetRepo.java │ │ │ └── util │ │ │ └── TestObjectsBuilder.java │ │ └── resources │ │ └── spring │ │ └── test-cfg.xml ├── 04-ps-aop-practice │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── ps │ │ │ ├── aspects │ │ │ ├── PointcutContainer.java │ │ │ └── UserRepoMonitor.java │ │ │ ├── config │ │ │ └── AppConfig.java │ │ │ ├── ents │ │ │ └── User.java │ │ │ ├── exception │ │ │ ├── NotFoundException.java │ │ │ └── UnexpectedException.java │ │ │ ├── repos │ │ │ ├── UserRepo.java │ │ │ └── impl │ │ │ │ ├── JdbcTemplateUserRepo.java │ │ │ │ └── JdbcUserRepo.java │ │ │ └── services │ │ │ ├── UserService.java │ │ │ └── UserServiceImpl.java │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ └── config │ │ │ ├── TestDataConfig.java │ │ │ ├── TestJdbcTemplateUserRepo.java │ │ │ ├── TestJdbcUserRepo.java │ │ │ └── TestUserService.java │ │ └── resources │ │ └── db │ │ ├── schema.sql │ │ └── test-data.sql ├── 04-ps-aop-solution │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── ps │ │ │ ├── aspects │ │ │ ├── PointcutContainer.java │ │ │ └── UserRepoMonitor.java │ │ │ ├── config │ │ │ └── AppConfig.java │ │ │ ├── ents │ │ │ └── User.java │ │ │ ├── exception │ │ │ ├── NotFoundException.java │ │ │ └── UnexpectedException.java │ │ │ ├── repos │ │ │ ├── UserRepo.java │ │ │ └── impl │ │ │ │ ├── JdbcTemplateUserRepo.java │ │ │ │ └── JdbcUserRepo.java │ │ │ └── services │ │ │ ├── UserService.java │ │ │ └── UserServiceImpl.java │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ └── config │ │ │ ├── TestDataConfig.java │ │ │ ├── TestJdbcTemplateUserRepo.java │ │ │ ├── TestJdbcUserRepo.java │ │ │ └── TestUserService.java │ │ └── resources │ │ └── db │ │ ├── schema.sql │ │ └── test-data.sql ├── 05-ps-jdbc-practice │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ └── AppConfig.java │ │ │ └── repos │ │ │ ├── UserRepo.java │ │ │ ├── impl │ │ │ ├── JdbcNamedTemplateUserRepo.java │ │ │ └── JdbcTemplateUserRepo.java │ │ │ └── util │ │ │ └── UserRowMapper.java │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ └── TestDataConfig.java │ │ │ └── repo │ │ │ ├── TestJdbcTemplateUserRepo.java │ │ │ └── TestNamedJdbcTemplateUserRepo.java │ │ └── resources │ │ └── db │ │ ├── db.properties │ │ ├── schema.sql │ │ └── test-data.sql ├── 05-ps-jdbc-solution │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ └── AppConfig.java │ │ │ └── repos │ │ │ ├── UserRepo.java │ │ │ ├── impl │ │ │ ├── JdbcNamedTemplateUserRepo.java │ │ │ └── JdbcTemplateUserRepo.java │ │ │ └── util │ │ │ └── UserRowMapper.java │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ └── TestDataConfig.java │ │ │ └── repo │ │ │ ├── TestJdbcTemplateUserRepo.java │ │ │ └── TestNamedJdbcTemplateUserRepo.java │ │ └── resources │ │ └── db │ │ ├── db.properties │ │ ├── schema.sql │ │ └── test-data.sql ├── 06-ps-tx-practice │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ ├── config │ │ │ │ └── AppConfig.java │ │ │ │ ├── exceptions │ │ │ │ └── MailSendingException.java │ │ │ │ ├── repos │ │ │ │ ├── PetRepo.java │ │ │ │ ├── UserRepo.java │ │ │ │ ├── impl │ │ │ │ │ ├── JdbcTemplatePetRepo.java │ │ │ │ │ └── JdbcTemplateUserRepo.java │ │ │ │ └── util │ │ │ │ │ └── UserRowMapper.java │ │ │ │ └── services │ │ │ │ ├── PetService.java │ │ │ │ ├── UserService.java │ │ │ │ └── impl │ │ │ │ ├── PetServiceImpl.java │ │ │ │ └── UserServiceImpl.java │ │ └── resources │ │ │ └── logback.xml │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ └── TestDataConfig.java │ │ │ ├── repo │ │ │ ├── TestJdbcTemplateUserRepo.java │ │ │ └── TransactionalJdbcRepoTest.java │ │ │ └── services │ │ │ ├── PetServiceTest.java │ │ │ └── UserServiceTest.java │ │ └── resources │ │ ├── db │ │ ├── db.properties │ │ ├── delete-test-data.sql │ │ ├── extra-data.sql │ │ ├── schema.sql │ │ └── test-data.sql │ │ └── logback-test.xml ├── 06-ps-tx-solution │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ ├── config │ │ │ │ └── AppConfig.java │ │ │ │ ├── exceptions │ │ │ │ └── MailSendingException.java │ │ │ │ ├── repos │ │ │ │ ├── PetRepo.java │ │ │ │ ├── UserRepo.java │ │ │ │ ├── impl │ │ │ │ │ ├── JdbcTemplatePetRepo.java │ │ │ │ │ └── JdbcTemplateUserRepo.java │ │ │ │ └── util │ │ │ │ │ └── UserRowMapper.java │ │ │ │ └── services │ │ │ │ ├── PetService.java │ │ │ │ ├── UserService.java │ │ │ │ └── impl │ │ │ │ ├── PetServiceImpl.java │ │ │ │ ├── ProgramaticUserService.java │ │ │ │ ├── ProgramaticUserService2.java │ │ │ │ ├── UserServiceImpl.java │ │ │ │ └── UserServiceInterviewImpl.java │ │ └── resources │ │ │ └── logback.xml │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ └── TestDataConfig.java │ │ │ ├── repo │ │ │ ├── TestJdbcTemplateUserRepo.java │ │ │ └── TransactionalJdbcRepoTest.java │ │ │ ├── sample │ │ │ └── MusicCleaner.java │ │ │ └── services │ │ │ ├── PetServiceTest.java │ │ │ ├── ProgramaticUserService2Test.java │ │ │ ├── ProgramaticUserServiceTest.java │ │ │ └── UserServiceTest.java │ │ └── resources │ │ ├── db │ │ ├── db.properties │ │ ├── delete-test-data.sql │ │ ├── extra-data.sql │ │ ├── schema.sql │ │ └── test-data.sql │ │ └── logback-test.xml ├── 07-ps-hibernate-practice │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ └── AppConfig.java │ │ │ ├── exceptions │ │ │ └── MailSendingException.java │ │ │ ├── repos │ │ │ ├── UserRepo.java │ │ │ └── impl │ │ │ │ └── HibernateUserRepo.java │ │ │ └── services │ │ │ ├── UserService.java │ │ │ └── impl │ │ │ └── UserServiceImpl.java │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ └── TestDataConfig.java │ │ │ ├── repo │ │ │ ├── TestHibernateUserRepoJavaConfiguration.java │ │ │ └── TestHibernateUserRepoXMLConfiguration.java │ │ │ └── services │ │ │ └── TestUserService.java │ │ └── resources │ │ ├── db │ │ └── db.properties │ │ └── hibernate-test-data-config.xml ├── 07-ps-hibernate-solution │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ └── AppConfig.java │ │ │ ├── exceptions │ │ │ └── MailSendingException.java │ │ │ ├── repos │ │ │ ├── UserRepo.java │ │ │ └── impl │ │ │ │ └── HibernateUserRepo.java │ │ │ ├── services │ │ │ ├── UserService.java │ │ │ └── impl │ │ │ │ └── UserServiceImpl.java │ │ │ └── sqlformatter │ │ │ └── SimpleFormatter.java │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ └── TestDataConfig.java │ │ │ ├── repo │ │ │ └── TestHibernateUserRepo.java │ │ │ └── services │ │ │ └── UserServiceTest.java │ │ └── resources │ │ ├── db │ │ └── db.properties │ │ └── spy.properties ├── 08-ps-jpa-practice │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ └── AppConfig.java │ │ │ ├── exceptions │ │ │ └── MailSendingException.java │ │ │ ├── init │ │ │ └── DBInitializer.java │ │ │ ├── repos │ │ │ ├── UserRepo.java │ │ │ └── impl │ │ │ │ └── JpaUserRepo.java │ │ │ └── services │ │ │ ├── UserService.java │ │ │ └── impl │ │ │ └── UserServiceImpl.java │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ └── TestDataConfig.java │ │ │ ├── repo │ │ │ ├── TestJpaUserRepoJavaConfiguration.java │ │ │ └── TestJpaUserRepoXMLConfiguration.java │ │ │ └── services │ │ │ └── UserServiceTest.java │ │ └── resources │ │ ├── db │ │ └── db.properties │ │ └── jpa-test-data-config.xml ├── 08-ps-jpa-solution │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ └── AppConfig.java │ │ │ ├── exceptions │ │ │ └── MailSendingException.java │ │ │ ├── init │ │ │ └── DBInitializer.java │ │ │ ├── repos │ │ │ ├── UserRepo.java │ │ │ └── impl │ │ │ │ └── JpaUserRepo.java │ │ │ └── services │ │ │ ├── UserService.java │ │ │ └── impl │ │ │ └── UserServiceImpl.java │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ └── TestDataConfig.java │ │ │ ├── repo │ │ │ └── TestJpaUserRepo.java │ │ │ └── services │ │ │ └── UserServiceTest.java │ │ └── resources │ │ └── db │ │ └── db.properties ├── 09-ps-data-jpa-practice │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ ├── config │ │ │ │ ├── AppConfig.java │ │ │ │ ├── PersistenceConfig.java │ │ │ │ └── db │ │ │ │ │ ├── DataConfig.java │ │ │ │ │ └── DataSourceConfig.java │ │ │ │ ├── exceptions │ │ │ │ └── MailSendingException.java │ │ │ │ ├── init │ │ │ │ └── DBInitializer.java │ │ │ │ ├── repos │ │ │ │ ├── PetRepo.java │ │ │ │ ├── RequestRepo.java │ │ │ │ ├── ResponseRepo.java │ │ │ │ ├── ReviewRepo.java │ │ │ │ └── UserRepo.java │ │ │ │ └── services │ │ │ │ ├── UserService.java │ │ │ │ └── impl │ │ │ │ └── UserServiceImpl.java │ │ └── resources │ │ │ └── prod │ │ │ └── db.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ └── db │ │ │ │ └── TestDataConfig.java │ │ │ ├── repo │ │ │ └── TestUserRepo.java │ │ │ └── services │ │ │ └── UserServiceTest.java │ │ └── resources │ │ └── db │ │ └── db.properties ├── 09-ps-data-jpa-solution │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ ├── config │ │ │ │ ├── AppConfig.java │ │ │ │ ├── PersistenceConfig.java │ │ │ │ └── db │ │ │ │ │ ├── DataConfig.java │ │ │ │ │ └── DataSourceConfig.java │ │ │ │ ├── exceptions │ │ │ │ └── MailSendingException.java │ │ │ │ ├── init │ │ │ │ └── DBInitializer.java │ │ │ │ ├── repos │ │ │ │ ├── PetRepo.java │ │ │ │ ├── RequestRepo.java │ │ │ │ ├── ResponseRepo.java │ │ │ │ ├── ReviewRepo.java │ │ │ │ └── UserRepo.java │ │ │ │ └── services │ │ │ │ ├── UserService.java │ │ │ │ └── impl │ │ │ │ └── UserServiceImpl.java │ │ └── resources │ │ │ └── prod │ │ │ └── db.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ └── db │ │ │ │ └── TestDataConfig.java │ │ │ ├── init │ │ │ └── DBInitializer.java │ │ │ ├── repo │ │ │ └── TestUserRepo.java │ │ │ └── services │ │ │ ├── UserServiceTest.java │ │ │ └── UserServiceTest2.java │ │ └── resources │ │ └── db │ │ └── db.properties ├── 09-ps-data-jpa │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ ├── ServiceConfig.java │ │ │ └── db │ │ │ │ ├── DataConfig.java │ │ │ │ └── DataSourceConfig.java │ │ │ ├── exceptions │ │ │ └── MailSendingException.java │ │ │ ├── init │ │ │ └── DBInitializer.java │ │ │ ├── repos │ │ │ ├── PetRepo.java │ │ │ ├── RequestRepo.java │ │ │ ├── ResponseRepo.java │ │ │ ├── ReviewRepo.java │ │ │ └── UserRepo.java │ │ │ └── services │ │ │ ├── UserService.java │ │ │ └── impl │ │ │ └── UserServiceImpl.java │ │ └── resources │ │ └── prod │ │ └── db.properties ├── 09-ps-mongo-sample │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── ps │ │ │ ├── config │ │ │ └── AppConfig.java │ │ │ ├── ents │ │ │ └── User.java │ │ │ ├── exceptions │ │ │ └── MailSendingException.java │ │ │ ├── init │ │ │ └── DBInitializer.java │ │ │ ├── repos │ │ │ ├── MongoDBRepo.java │ │ │ └── UserRepo.java │ │ │ └── services │ │ │ ├── UserService.java │ │ │ └── impl │ │ │ └── UserServiceImpl.java │ │ └── test │ │ └── java │ │ └── com │ │ └── ps │ │ └── repo │ │ └── TestUserRepo.java ├── 10-ps-mvc-practice │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ ├── config │ │ │ │ ├── WebConfig.java │ │ │ │ └── WebInitializer.java │ │ │ │ ├── problem │ │ │ │ └── NotFoundException.java │ │ │ │ └── web │ │ │ │ └── UserController.java │ │ ├── resources │ │ │ └── logback.xml │ │ └── webapp │ │ │ ├── WEB-INF │ │ │ ├── classes │ │ │ │ ├── blue.properties │ │ │ │ └── green.properties │ │ │ ├── error.jsp │ │ │ ├── home.jsp │ │ │ ├── messages │ │ │ │ ├── global.properties │ │ │ │ └── global_de.properties │ │ │ ├── pets │ │ │ │ └── list.jsp │ │ │ └── users │ │ │ │ ├── list.jsp │ │ │ │ └── show.jsp │ │ │ ├── images │ │ │ ├── arrow-blue.png │ │ │ ├── arrow-green.png │ │ │ ├── banner-blue.png │ │ │ └── banner-green.png │ │ │ └── styles │ │ │ ├── decorator-blue.css │ │ │ ├── decorator-green.css │ │ │ └── general.css │ │ └── test │ │ └── java │ │ └── com │ │ └── ps │ │ └── web │ │ ├── StubUserService.java │ │ └── UserControllerTest.java ├── 10-ps-mvc-solution │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ ├── config │ │ │ │ ├── WebConfig.java │ │ │ │ └── WebInitializer.java │ │ │ │ ├── problem │ │ │ │ └── NotFoundException.java │ │ │ │ └── web │ │ │ │ └── UserController.java │ │ ├── resources │ │ │ └── logback.xml │ │ └── webapp │ │ │ ├── WEB-INF │ │ │ ├── classes │ │ │ │ ├── blue.properties │ │ │ │ └── green.properties │ │ │ ├── error.jsp │ │ │ ├── home.jsp │ │ │ ├── messages │ │ │ │ ├── global.properties │ │ │ │ └── global_de.properties │ │ │ ├── pets │ │ │ │ └── list.jsp │ │ │ └── users │ │ │ │ ├── list.jsp │ │ │ │ └── show.jsp │ │ │ ├── images │ │ │ ├── arrow-blue.png │ │ │ ├── arrow-green.png │ │ │ ├── banner-blue.png │ │ │ └── banner-green.png │ │ │ └── styles │ │ │ ├── decorator-blue.css │ │ │ ├── decorator-green.css │ │ │ └── general.css │ │ └── test │ │ └── java │ │ └── web │ │ ├── StubUserService.java │ │ └── UserControllerTest.java ├── 11-ps-boot-sample │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ └── start │ │ │ │ ├── AppSettings.java │ │ │ │ ├── Application.java │ │ │ │ ├── CtxController.java │ │ │ │ └── YamlConfBean.java │ │ └── resources │ │ │ ├── application.yml │ │ │ ├── banner.txt │ │ │ ├── logback-spring.xml │ │ │ └── templates │ │ │ └── home.html │ │ └── test │ │ └── java │ │ └── com │ │ └── ps │ │ └── start │ │ └── CtxControllerTest.java ├── 11-ps-security-practice │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ ├── config │ │ │ │ ├── SecurityConfig.java │ │ │ │ ├── ServiceConfig.java │ │ │ │ └── WebConfig.java │ │ │ │ ├── init │ │ │ │ ├── SecurityWebApplicationInitializer.java │ │ │ │ └── WebInitializer.java │ │ │ │ ├── problem │ │ │ │ └── NotFoundException.java │ │ │ │ └── web │ │ │ │ └── UserController.java │ │ ├── resources │ │ │ └── logback.xml │ │ └── webapp │ │ │ ├── WEB-INF │ │ │ ├── auth.jsp │ │ │ ├── classes │ │ │ │ ├── blue.properties │ │ │ │ └── green.properties │ │ │ ├── error.jsp │ │ │ ├── home.jsp │ │ │ ├── messages │ │ │ │ ├── global.properties │ │ │ │ └── global_de.properties │ │ │ ├── pets │ │ │ │ └── list.jsp │ │ │ └── users │ │ │ │ ├── list.jsp │ │ │ │ └── show.jsp │ │ │ ├── images │ │ │ ├── arrow-blue.png │ │ │ ├── arrow-green.png │ │ │ ├── banner-blue.png │ │ │ └── banner-green.png │ │ │ └── styles │ │ │ ├── decorator-blue.css │ │ │ ├── decorator-green.css │ │ │ └── general.css │ │ └── test │ │ └── java │ │ └── web │ │ ├── StubUserService.java │ │ └── UserControllerTest.java ├── 11-ps-security-solution │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ ├── config │ │ │ │ ├── SecurityConfig.java │ │ │ │ └── WebConfig.java │ │ │ │ ├── init │ │ │ │ ├── SecurityWebApplicationInitializer.java │ │ │ │ └── WebInitializer.java │ │ │ │ ├── problem │ │ │ │ └── NotFoundException.java │ │ │ │ └── web │ │ │ │ └── UserController.java │ │ ├── resources │ │ │ └── logback.xml │ │ └── webapp │ │ │ ├── WEB-INF │ │ │ ├── auth.jsp │ │ │ ├── classes │ │ │ │ ├── blue.properties │ │ │ │ └── green.properties │ │ │ ├── error.jsp │ │ │ ├── home.jsp │ │ │ ├── messages │ │ │ │ ├── global.properties │ │ │ │ └── global_de.properties │ │ │ ├── pets │ │ │ │ └── list.jsp │ │ │ └── users │ │ │ │ ├── list.jsp │ │ │ │ └── show.jsp │ │ │ ├── images │ │ │ ├── arrow-blue.png │ │ │ ├── arrow-green.png │ │ │ ├── banner-blue.png │ │ │ └── banner-green.png │ │ │ └── styles │ │ │ ├── decorator-blue.css │ │ │ ├── decorator-green.css │ │ │ └── general.css │ │ └── test │ │ └── java │ │ └── web │ │ ├── StubUserService.java │ │ └── UserControllerTest.java ├── 12-ps-remoting-practice │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── ps │ │ │ └── remoting │ │ │ └── config │ │ │ ├── RmiExporterBootstrap.java │ │ │ └── RmiServerConfig.java │ │ └── test │ │ └── java │ │ └── com │ │ └── ps │ │ └── remoting │ │ ├── RmiTests.java │ │ └── config │ │ └── RmiClientConfig.java ├── 12-ps-remoting-sample │ ├── pom.xml │ └── src │ │ ├── main │ │ └── webapp │ │ │ ├── WEB-INF │ │ │ ├── spring │ │ │ │ ├── app-config.xml │ │ │ │ └── remoting-config.xml │ │ │ └── web.xml │ │ │ └── index.html │ │ └── test │ │ └── java │ │ └── com │ │ └── ps │ │ └── invoker │ │ ├── HessianInvokerTests.java │ │ ├── HttpInvokerTests.java │ │ └── config │ │ ├── HessianClientConfig.java │ │ └── HttpInvokerClientConfig.java ├── 12-ps-remoting-solution │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── ps │ │ │ └── config │ │ │ ├── HttpInvokerConfig.java │ │ │ ├── WebAppInitializer.java │ │ │ └── WebConfig.java │ │ └── test │ │ └── java │ │ └── com │ │ └── ps │ │ └── remoting │ │ ├── RmiTests.java │ │ └── config │ │ └── HttpInvokerClientConfig.java ├── 13-ps-jms-practice │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ └── jms │ │ │ │ ├── Confirmation.java │ │ │ │ ├── ConfirmationReceiver.java │ │ │ │ ├── ConfirmationSender.java │ │ │ │ ├── UserReceiver.java │ │ │ │ ├── UserSender.java │ │ │ │ └── config │ │ │ │ ├── JmsCommonConfig.java │ │ │ │ ├── JmsConsumerConfig.java │ │ │ │ └── JmsProducerConfig.java │ │ └── resources │ │ │ └── logback.xml │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ └── jms │ │ │ ├── UserConsumerApp.java │ │ │ └── UserProducerApp.java │ │ └── resources │ │ └── logback-test.xml ├── 13-ps-jms-solution │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── Application.java │ │ │ └── jms │ │ │ ├── Confirmation.java │ │ │ ├── ConfirmationReceiver.java │ │ │ ├── ConfirmationSender.java │ │ │ ├── User.java │ │ │ └── UserReceiver.java │ │ └── resources │ │ └── logback.xml ├── 15-ps-rest-boot-sample │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ └── rest │ │ │ │ ├── Application.java │ │ │ │ ├── config │ │ │ │ └── WebSecurityConfig.java │ │ │ │ ├── controllers │ │ │ │ └── RestUserController.java │ │ │ │ ├── domain │ │ │ │ └── User.java │ │ │ │ ├── exception_processors │ │ │ │ └── RestExceptionProcessor.java │ │ │ │ └── exceptions │ │ │ │ ├── JsonError.java │ │ │ │ └── UserException.java │ │ └── resources │ │ │ ├── application.yaml │ │ │ ├── logback.xml │ │ │ └── static │ │ │ └── index.html │ │ └── test │ │ └── java │ │ └── com │ │ └── ps │ │ └── rest │ │ └── RestUserControllerTest.java ├── 15-ps-ws-rest-practice │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ ├── config │ │ │ │ └── WebConfig.java │ │ │ │ ├── exs │ │ │ │ ├── JsonError.java │ │ │ │ ├── RestExceptionProcessor.java │ │ │ │ └── UserException.java │ │ │ │ ├── init │ │ │ │ └── WebInitializer.java │ │ │ │ └── web │ │ │ │ └── RestUserController.java │ │ └── webapp │ │ │ ├── WEB-INF │ │ │ └── welcome.jsp │ │ │ └── images │ │ │ └── banner.png │ │ └── test │ │ └── java │ │ └── com │ │ └── ps │ │ └── web │ │ └── RestUserControllerTest.java ├── 15-ps-ws-rest-solution │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── ps │ │ │ │ ├── config │ │ │ │ └── WebConfig.java │ │ │ │ ├── exs │ │ │ │ ├── JsonError.java │ │ │ │ ├── RestExceptionProcessor.java │ │ │ │ └── UserException.java │ │ │ │ ├── init │ │ │ │ └── WebInitializer.java │ │ │ │ └── web │ │ │ │ ├── RestUserController.java │ │ │ │ └── UserController.java │ │ └── webapp │ │ │ ├── WEB-INF │ │ │ └── welcome.jsp │ │ │ └── images │ │ │ └── banner.png │ │ └── test │ │ └── java │ │ └── com │ │ └── ps │ │ └── web │ │ ├── RestUserControllerTest.java │ │ └── StandaloneRestUserControllerTest.java ├── 16-ps-jmx-sample │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ └── start │ │ │ ├── Application.java │ │ │ ├── JmxCounter.java │ │ │ └── JmxCounterImpl.java │ │ └── resources │ │ └── logback.xml ├── 17-ps-micro-sample │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── ps │ │ │ ├── Application.java │ │ │ ├── PetType.java │ │ │ ├── exceptions │ │ │ ├── PetNotFoundException.java │ │ │ └── UserNotFoundException.java │ │ │ ├── pet │ │ │ ├── Pet.java │ │ │ ├── PetController.java │ │ │ ├── PetRepo.java │ │ │ ├── PetServer.java │ │ │ ├── PetServiceConfig.java │ │ │ └── PetType.java │ │ │ ├── server │ │ │ └── DiscoveryServer.java │ │ │ ├── user │ │ │ ├── User.java │ │ │ ├── UserController.java │ │ │ ├── UserRepo.java │ │ │ ├── UserServer.java │ │ │ └── UserServiceConfig.java │ │ │ └── web │ │ │ ├── AllWebController.java │ │ │ ├── AllWebService.java │ │ │ ├── HomeController.java │ │ │ ├── PetSkeleton.java │ │ │ ├── UserSkeleton.java │ │ │ └── WebServer.java │ │ └── resources │ │ ├── db │ │ ├── pet │ │ │ ├── data.sql │ │ │ ├── db.properties │ │ │ └── schema.sql │ │ └── user │ │ │ ├── data.sql │ │ │ ├── db.properties │ │ │ └── schema.sql │ │ ├── discovery.yml │ │ ├── logback.xml │ │ ├── pet-server.yml │ │ ├── public │ │ ├── banner-green.png │ │ └── general.css │ │ ├── user-server.yml │ │ ├── web-server.yml │ │ └── web-server │ │ └── templates │ │ ├── all.html │ │ ├── error.html │ │ ├── index.html │ │ └── pets.html └── pom.xml └── pom.xml /AOP/SpringAOP_AspectJ/m06-pointcut-deep-dive/src/main/java/annotation/Trace.java: -------------------------------------------------------------------------------- 1 | package annotation; 2 | 3 | public @interface Trace { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /AOP/SpringAOP_AspectJ/m06-pointcut-deep-dive/src/main/java/com/ewolff/repository/SimpleRepository.java: -------------------------------------------------------------------------------- 1 | package com.ewolff.repository; 2 | 3 | import org.springframework.stereotype.Repository; 4 | 5 | @Repository 6 | public class SimpleRepository { 7 | 8 | public void doSomething() { 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /AOP/SpringAOP_AspectJ/m06-pointcut-deep-dive/src/main/java/mypointcuts/MyPointcuts.java: -------------------------------------------------------------------------------- 1 | package mypointcuts; 2 | 3 | import org.aspectj.lang.annotation.Pointcut; 4 | 5 | public class MyPointcuts { 6 | 7 | @Pointcut("bean(*Service)") 8 | public void beanNamePointcut() { 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /AOP/SpringAOP_AspectJ/m07-expressing-architecture-using-pointcut-annotations/src/main/java/com/ewolff/service/MyService.java: -------------------------------------------------------------------------------- 1 | package com.ewolff.service; 2 | 3 | import org.springframework.stereotype.Service; 4 | 5 | @Service 6 | public class MyService { 7 | 8 | public void doIt() { 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /AOP/SpringAOP_AspectJ/m07-expressing-architecture-using-pointcut-packages/src/main/java/com/ewolff/repository/MyRepository.java: -------------------------------------------------------------------------------- 1 | package com.ewolff.repository; 2 | 3 | public class MyRepository { 4 | 5 | public void doIt() { 6 | } 7 | 8 | public void throwsException() { 9 | throw new RuntimeException(); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /AOP/SpringAOP_AspectJ/m07-expressing-architecture-using-pointcut-packages/src/main/java/com/ewolff/service/MyService.java: -------------------------------------------------------------------------------- 1 | package com.ewolff.service; 2 | 3 | public class MyService { 4 | 5 | public void doIt() { 6 | 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /AOP/SpringAOP_AspectJ/m09-spring-aop-vs-aspectj-load-time-weaving/src/main/java/com/ewolff/demo/CallAdvicedMethod.java: -------------------------------------------------------------------------------- 1 | package com.ewolff.demo; 2 | 3 | public class CallAdvicedMethod { 4 | 5 | public static void main(String[] args) { 6 | DemoClass demoClass = new DemoClass(); 7 | demoClass.advicedMethod(); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /AOP/SpringAOP_AspectJ/m09-spring-aop-vs-aspectj-load-time-weaving/src/main/java/com/ewolff/demo/DemoClass.java: -------------------------------------------------------------------------------- 1 | package com.ewolff.demo; 2 | 3 | public class DemoClass { 4 | 5 | public void advicedMethod() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /AOP/SpringAOP_AspectJ/m10-spring-aspect-library-tracing/src/main/java/com/ewolff/service/PlainService.java: -------------------------------------------------------------------------------- 1 | package com.ewolff.service; 2 | 3 | import org.springframework.stereotype.Service; 4 | 5 | @Service 6 | public class PlainService { 7 | 8 | public void doSomething() { 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /AOP/SpringAOP_AspectJ/m10-spring-aspect-library-transactions/src/main/java/com/ewolff/service/PlainService.java: -------------------------------------------------------------------------------- 1 | package com.ewolff.service; 2 | 3 | import org.springframework.stereotype.Service; 4 | 5 | @Service 6 | public class PlainService { 7 | 8 | public void doSomething() { 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /AOP/SpringAOP_AspectJ/m11-real-life-aspects-circuitbreaker/src/main/java/com/ewolff/circuitbreaker/CircuitBreakerService.java: -------------------------------------------------------------------------------- 1 | package com.ewolff.circuitbreaker; 2 | 3 | public interface CircuitBreakerService { 4 | 5 | void erroneousMethod(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /AOP/SpringAOP_AspectJ/m11-real-life-aspects-retry/src/main/java/com/ewolff/service/PlainService.java: -------------------------------------------------------------------------------- 1 | package com.ewolff.service; 2 | 3 | import org.springframework.stereotype.Service; 4 | 5 | @Service 6 | public class PlainService { 7 | 8 | public void doSomething() { 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /AOP/Tests/src/main/java/com/learning/linnyk/services/MyOtherClass.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.services; 2 | 3 | import org.springframework.stereotype.Component; 4 | 5 | @Component 6 | public class MyOtherClass { 7 | 8 | public void doIt() { 9 | System.out.println("MyClass doIt"); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /DB/SpringData/Spring_Data_for_Java_Developers/1_configurations/Spring_Boot_Configuration/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.hibernate.ddl-auto=create 2 | logging.level=DEBUG 3 | spring.jpa.show-sql=true -------------------------------------------------------------------------------- /DB/SpringData/Spring_Data_for_Java_Developers/9_spring_data_rest/spring-data-course/src/main/java/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Class-Path: 3 | 4 | -------------------------------------------------------------------------------- /DB/SpringData/ps-guitar-db/src/main/java/com/guitar/db/repository/spring_data/custom/ModelDataCustomJPARepository.java: -------------------------------------------------------------------------------- 1 | package com.guitar.db.repository.spring_data.custom; 2 | 3 | public interface ModelDataCustomJPARepository { 4 | 5 | void aCustomMethod(); 6 | } 7 | -------------------------------------------------------------------------------- /DB/SpringData/ps-guitar-db/src/main/resources/h2/db.h2.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/DB/SpringData/ps-guitar-db/src/main/resources/h2/db.h2.db -------------------------------------------------------------------------------- /DB/SpringJDBC/src/main/resources/db/datasource.properties: -------------------------------------------------------------------------------- 1 | driverClassName=org.h2.Driver 2 | url=jdbc:h2:~/sample 3 | username=olinnyk 4 | password=sample -------------------------------------------------------------------------------- /DB/SpringJDBC/src/main/resources/db/schema.sql: -------------------------------------------------------------------------------- 1 | drop table ride if exists; 2 | 3 | CREATE TABLE ride 4 | ( 5 | ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 6 | NAME VARCHAR(100) NOT NULL, 7 | DURATION INT NOT NULL, 8 | RIDE_DATE TIMESTAMP 9 | ); 10 | 11 | -------------------------------------------------------------------------------- /DB/SpringJDBC/src/main/webapp/index.jsp: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Hello World!

4 | 5 | 6 | -------------------------------------------------------------------------------- /IOC/Cert/src/main/java/com/learning/linnyk/autowire/beans/BeanConstruct.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.autowire.beans; 2 | 3 | import org.springframework.stereotype.Component; 4 | 5 | @Component 6 | public class BeanConstruct { 7 | 8 | @Override 9 | public String toString() { 10 | return "BeanConstruct"; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IOC/Cert/src/main/java/com/learning/linnyk/autowire/beans/BeanMethod.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.autowire.beans; 2 | 3 | import org.springframework.stereotype.Component; 4 | 5 | @Component 6 | public class BeanMethod { 7 | 8 | @Override 9 | public String toString() { 10 | return "BeanMethod"; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IOC/Cert/src/main/java/com/learning/linnyk/autowire/beans/BeanSetter.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.autowire.beans; 2 | 3 | import org.springframework.stereotype.Component; 4 | 5 | @Component 6 | public class BeanSetter { 7 | 8 | @Override 9 | public String toString() { 10 | return "BeanSetter"; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IOC/Cert/src/main/java/com/learning/linnyk/autowire/beans/BeanValue.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.autowire.beans; 2 | 3 | import org.springframework.stereotype.Component; 4 | 5 | @Component 6 | public class BeanValue { 7 | 8 | @Override 9 | public String toString() { 10 | return "BeanValue"; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IOC/Cert/src/main/java/com/learning/linnyk/factorybean/beans/MainBean.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.factorybean.beans; 2 | 3 | import org.springframework.beans.factory.FactoryBean; 4 | 5 | public class MainBean { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /IOC/Cert/src/main/java/com/learning/linnyk/initialization/beans/Address.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.initialization.beans; 2 | 3 | import org.springframework.stereotype.Component; 4 | 5 | @Component 6 | public class Address { 7 | } 8 | -------------------------------------------------------------------------------- /IOC/Cert/src/main/java/com/learning/linnyk/initialization/beans/Item.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.initialization.beans; 2 | 3 | import org.springframework.stereotype.Component; 4 | 5 | @Component 6 | public class Item { 7 | } 8 | -------------------------------------------------------------------------------- /IOC/Cert/src/main/java/com/learning/linnyk/initialization/beans/order/Rating.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.initialization.beans.order; 2 | 3 | public interface Rating { 4 | } 5 | -------------------------------------------------------------------------------- /IOC/Cert/src/main/java/com/learning/linnyk/profile/primary/UserService.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.profile.primary; 2 | 3 | public interface UserService { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /IOC/Cert/src/main/java/com/learning/linnyk/proxy/beans/Bean1.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.proxy.beans; 2 | 3 | public class Bean1 { 4 | 5 | private Bean2 bean2; 6 | 7 | public Bean1(Bean2 bean2) { 8 | this.bean2 = bean2; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /IOC/Cert/src/main/java/com/learning/linnyk/proxy/beans/Bean2.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.proxy.beans; 2 | 3 | public class Bean2 { 4 | } 5 | -------------------------------------------------------------------------------- /IOC/Cert/src/main/java/com/learning/linnyk/proxy/beans/Bean3.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.proxy.beans; 2 | 3 | public class Bean3 { 4 | 5 | private Bean2 bean2; 6 | 7 | public Bean3(Bean2 bean2) { 8 | this.bean2 = bean2; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /IOC/Cert/src/main/java/com/learning/linnyk/schedule/beans/Bean.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.schedule.beans; 2 | 3 | public interface Bean { 4 | 5 | void scheduleFixedDelayTask(); 6 | } 7 | -------------------------------------------------------------------------------- /IOC/Cert/src/main/resources/pair/pair.properties: -------------------------------------------------------------------------------- 1 | prop1=class-1 2 | -------------------------------------------------------------------------------- /IOC/Courses/src/main/java/com/learning/linnyk/jb/_2_scope_lifecycle/beans/autowired/Building.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.jb._2_scope_lifecycle.beans.autowired; 2 | 3 | public class Building { 4 | } 5 | -------------------------------------------------------------------------------- /IOC/Courses/src/main/java/com/learning/linnyk/jb/_2_scope_lifecycle/beans/autowired/Food.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.jb._2_scope_lifecycle.beans.autowired; 2 | 3 | public class Food { 4 | } 5 | -------------------------------------------------------------------------------- /IOC/Courses/src/main/java/com/learning/linnyk/jb/_2_scope_lifecycle/beans/autowired/Item.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.jb._2_scope_lifecycle.beans.autowired; 2 | 3 | public class Item { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /IOC/Courses/src/main/java/com/learning/linnyk/jb/_2_scope_lifecycle/beans/autowired/NotExistsBean.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.jb._2_scope_lifecycle.beans.autowired; 2 | 3 | public class NotExistsBean { 4 | } 5 | -------------------------------------------------------------------------------- /IOC/Courses/src/main/java/com/learning/linnyk/jb/_2_scope_lifecycle/beans/autowired/Person.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.jb._2_scope_lifecycle.beans.autowired; 2 | 3 | public class Person { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /IOC/Courses/src/main/java/com/learning/linnyk/jb/_3_annotation_event/Shape.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.jb._3_annotation_event; 2 | 3 | /** 4 | * @author LinnykOleh 5 | */ 6 | public interface Shape { 7 | 8 | void draw(); 9 | } 10 | -------------------------------------------------------------------------------- /IOC/Courses/src/main/java/com/learning/linnyk/lmi/java/_3_version_using_lookup_annotation_and_abstract/Command.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.lmi.java._3_version_using_lookup_annotation_and_abstract; 2 | 3 | public class Command { 4 | 5 | public void execute() { 6 | System.out.println("Command: " + this.hashCode()); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /IOC/Courses/src/main/java/com/learning/linnyk/spring_ripper/part1/bean/Quoter.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.spring_ripper.part1.bean; 2 | 3 | /** 4 | * @author LinnykOleh 5 | */ 6 | public interface Quoter { 7 | 8 | void sayQuote(); 9 | } 10 | -------------------------------------------------------------------------------- /IOC/Courses/src/main/java/com/learning/linnyk/spring_ripper/part1/mbean/ProfilingControllerMBean.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.spring_ripper.part1.mbean; 2 | 3 | /** 4 | * @author LinnykOleh 5 | */ 6 | public interface ProfilingControllerMBean { 7 | 8 | void setEnabled(boolean enabled); 9 | } 10 | -------------------------------------------------------------------------------- /IOC/Courses/src/main/resources/jb/_2_scope_lifecycle/pointsconfig.properties: -------------------------------------------------------------------------------- 1 | pointA.pointX=30000 2 | pointA.pointY=21000 -------------------------------------------------------------------------------- /IOC/Courses/src/main/resources/jb/_3_annotation_event/config.properties: -------------------------------------------------------------------------------- 1 | point.pointX=30000 2 | point.pointY=21000 3 | 4 | triangle.type=30000 5 | triangle.color=21000 6 | 7 | message=Hello 8 | message.runtime=Runtime message :({0}, {1}) -------------------------------------------------------------------------------- /IOC/Courses/src/main/resources/pluralsight/java/app.properties: -------------------------------------------------------------------------------- 1 | dbUsername=derbyUsername 2 | 3 | timeout=10000 -------------------------------------------------------------------------------- /IOC/Courses/src/main/resources/spring_ripper/context.properties: -------------------------------------------------------------------------------- 1 | quoter.(class) = com.learning.linnyk.spring_ripper.part1.bean.impl.TerminatorQuoter 2 | quoter.message = Get down 3 | quoter.repeat = 3 -------------------------------------------------------------------------------- /Integration/SimpleJMX/src/main/java/com/learning/linnyk/server/beans/IMBeanExample.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.server.beans; 2 | 3 | public interface IMBeanExample { 4 | 5 | void setNumberPerPage(int numberPerPage); 6 | 7 | int getNumberPerPage(); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Integration/SimpleRMI/src/main/java/com/learning/linnyk/server/services/UserService.java: -------------------------------------------------------------------------------- 1 | package com.learning.linnyk.server.services; 2 | 3 | public interface UserService { 4 | 5 | String getUser(); 6 | } 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Spring 2 | 3 | ### Personal study of Spring framework 4 | 5 | [>> Notes](Notes.md) 6 | 7 | [>> Wiki](https://github.com/LinnykOleh/Spring/wiki) 8 | 9 | -------------------------------------------------------------------------------- /Spring5/Reactive/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.hibernate.ddl-auto=none 2 | 3 | spring.jpa.database = H2 -------------------------------------------------------------------------------- /Spring5/Reactive/src/main/resources/data.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO person VALUES (1, 'bryan', 'bryan@test.com'); 2 | INSERT INTO person VALUES (2, 'dan', 'dan@test.com'); 3 | INSERT INTO person VALUES (3, 'alex', 'alex@test.com'); 4 | -------------------------------------------------------------------------------- /Spring5/Reactive/src/main/resources/schema.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE person ( 2 | id INTEGER PRIMARY KEY, 3 | name VARCHAR(30), 4 | email VARCHAR(50) 5 | ); -------------------------------------------------------------------------------- /Spring5/Tester/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/Spring5/Tester/src/main/resources/application.properties -------------------------------------------------------------------------------- /SpringCloud/BuildingMicroservicesWithSpring/APIGatewayServiceWithZuul/or-zuul-api-gateway/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | ribbon.eureka.enable=false 2 | server.port=8080 3 | 4 | #Zuul Configuration 5 | zuul.routes.somePath.url=http://localhost:7777 6 | zuul.routes.somePath.path=/otherPath/** 7 | zuul.prefix=/apiV1 8 | 9 | -------------------------------------------------------------------------------- /SpringCloud/BuildingMicroservicesWithSpring/APIGatewayServiceWithZuul/or-zuul-simple-service/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=7777 2 | spring.application.name=simple-service -------------------------------------------------------------------------------- /SpringCloud/BuildingMicroservicesWithSpring/APIGatewayServiceWithZuul/or-zuul-simple-service/target/classes/application.properties: -------------------------------------------------------------------------------- 1 | server.port=7777 2 | spring.application.name=simple-service -------------------------------------------------------------------------------- /SpringCloud/BuildingMicroservicesWithSpring/LoadBalancingWithRibbon/or-ribbon-cloud-service-client/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | simple-service.ribbon.eureka.enable=false 2 | simple-service.ribbon.ServerListRefreshInterval=15000 3 | simple-service.ribbon.listOfServers=localhost:7777,localhost:7778,localhost:7779 -------------------------------------------------------------------------------- /SpringCloud/BuildingMicroservicesWithSpring/ServiceRegistryAndDiscoveryWithEureka/or-eureka-client/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=MyClient 2 | server.port=8080 3 | 4 | #Need to use @RestTemplate 5 | eureka.client.service-url.defaultZone=http://localhost:8761/eureka 6 | -------------------------------------------------------------------------------- /SpringCloud/BuildingMicroservicesWithSpring/ServiceRegistryAndDiscoveryWithEureka/or-eureka-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=8761 2 | eureka.client.register-with-eureka=false 3 | eureka.client.fetch-registry=false -------------------------------------------------------------------------------- /SpringCloud/BuildingMicroservicesWithSpring/ServiceRegistryAndDiscoveryWithEureka/or-service/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=MyClient2 2 | server.port=8081 -------------------------------------------------------------------------------- /SpringCloud/BuildingMicroservicesWithSpring/SpringCloudConfiguration/or-config-client/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringCloud/BuildingMicroservicesWithSpring/SpringCloudConfiguration/or-config-client/src/main/resources/application.properties -------------------------------------------------------------------------------- /SpringCloud/BuildingMicroservicesWithSpring/SpringCloudConfiguration/or-config-client/src/main/resources/bootstrap.properties: -------------------------------------------------------------------------------- 1 | #Build for file config-client-development.properties 2 | 3 | spring.profiles.active=development 4 | spring.application.name=config-client 5 | 6 | spring.cloud.config.uri=http://localhost:8888 -------------------------------------------------------------------------------- /SpringCloud/BuildingMicroservicesWithSpring/SpringCloudConfiguration/or-config-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=discovery-server 2 | spring.cloud.config.server.git.uri=https://github.com/LinnykOleh/scf-config-repository/ 3 | server.port=8888 4 | 5 | #Encryption 6 | encrypt.key=secret -------------------------------------------------------------------------------- /SpringCloud/BuildingMicroservicesWithSpring/SpringCloudSampleProject/spring-microservices-library-catalog/src/main/resources/bootstrap.properties: -------------------------------------------------------------------------------- 1 | server.port=5001 2 | spring.application.name=catalog 3 | spring.profiles.active=default 4 | spring.cloud.config.uri=http://localhost:5003 5 | eureka.client.service-url.defaultZone=http://localhost:5004/eureka/ -------------------------------------------------------------------------------- /SpringCloud/BuildingMicroservicesWithSpring/SpringCloudSampleProject/spring-microservices-library-config/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=5003 2 | spring.cloud.config.server.git.uri=https://github.com/LinnykOleh/scf-config-repository/ -------------------------------------------------------------------------------- /SpringCloud/BuildingMicroservicesWithSpring/SpringCloudSampleProject/spring-microservices-library-registry/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=5004 2 | eureka.client.register-with-eureka=false 3 | eureka.client.fetch-registry=false -------------------------------------------------------------------------------- /SpringCloud/BuildingMicroservicesWithSpring/SpringCloudSampleProject/spring-microservices-library-reservation/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=reservation 2 | eureka.client.service-url.defaultZone=http://localhost:5004/eureka/ -------------------------------------------------------------------------------- /SpringCloud/BuildingMicroservicesWithSpring/SpringCloudSecurity/AuthorizationClient/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringCloud/BuildingMicroservicesWithSpring/SpringCloudSecurity/AuthorizationClient/src/main/resources/application.properties -------------------------------------------------------------------------------- /SpringCloud/BuildingMicroservicesWithSpring/SpringCloudSecurity/AuthorizationResource/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | security.oauth2.resource.token-info-uri=http://localhost:9090/oauth/token 2 | server.port=7070 -------------------------------------------------------------------------------- /SpringCloud/BuildingMicroservicesWithSpring/SpringCloudSecurity/AuthorizationServer/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=9090 -------------------------------------------------------------------------------- /SpringCloud/Microservices/currency-exchange-service/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=currency-exchange-service 2 | server.port=8000 3 | 4 | spring.h2.console.enabled=true 5 | spring.jpa.show-sql=true 6 | 7 | #To register itself in discovery server 8 | eureka.client.service-url.defaultZone=http://localhost:8761/eureka -------------------------------------------------------------------------------- /SpringCloud/Microservices/netflix-eureka-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=netflix-eureka-naming-server 2 | server.port=8761 3 | 4 | eureka.client.register-with-eureka=false 5 | eureka.client.fetch-registry=false -------------------------------------------------------------------------------- /SpringCloud/Microservices/netflix-zuul-api-gateway-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=netflix-zuul-api-gateway-server 2 | server.port=8765 3 | 4 | #To register itself in discovery server 5 | eureka.client.service-url.defaultZone=http://localhost:8761/eureka 6 | -------------------------------------------------------------------------------- /SpringCloud/Microservices/spring-cloud-config-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=spring-cloud-config-server 2 | server.port=8888 3 | 4 | spring.cloud.config.server.git.uri=https://github.com/LinnykOleh/scf-config-repository/ -------------------------------------------------------------------------------- /SpringCloud/Microservices/zipkin-distributed-tracing-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=zipkin-distributed-tracing-server 2 | server.port=9411 -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/CircuitBreaker/discovery-server-circuit-breaker/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=discovery-server 2 | eureka.client.register-with-eureka=false 3 | eureka.client.fetch-registry=false 4 | server.port=8761 -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/CircuitBreaker/hystrix-dashboard/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringCloud/SpringCloudFundamentals/CircuitBreaker/hystrix-dashboard/src/main/resources/application.properties -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/CircuitBreaker/hystrix-datetime-app/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=8500 2 | spring.application.name=datetime-app 3 | eureka.client.service-url.defaultZone=http://localhost:8761/eureka -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/CircuitBreaker/hystrix-datetime-service/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=5000 2 | spring.application.name=datetime-service 3 | eureka.client.service-url.defaultZone=http://localhost:8761/eureka -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/CircuitBreaker/hystrix-weather-app/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=8000 2 | spring.application.name=weather-app 3 | eureka.client.service-url.defaultZone=http://localhost:8761/eureka -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/CircuitBreaker/hystrix-weather-service/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=9000 2 | spring.application.name=weather-service 3 | eureka.client.service-url.defaultZone=http://localhost:8761/eureka -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/Configuration/config-client-app/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | some.property=foo -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/Configuration/config-client-app/src/main/resources/bootstrap.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=config-client-app 2 | spring.cloud.config.discovery.enabled=true 3 | eureka.client.service-url.defaultZone=http://localhost:8761/eureka -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/Configuration/discovery-server-configuration/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=discovery-server 2 | eureka.client.register-with-eureka=false 3 | eureka.client.fetch-registry=false 4 | server.port=8761 -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/Configuration/discovery-server-configuration/target/classes/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=discovery-server 2 | eureka.client.register-with-eureka=false 3 | eureka.client.fetch-registry=false 4 | server.port=8761 -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/Configuration/discovery-server-configuration/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst: -------------------------------------------------------------------------------- 1 | com/learning/linnyk/DiscoveryServerApplication.class 2 | -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/Configuration/discovery-server-configuration/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst: -------------------------------------------------------------------------------- 1 | com/learning/linnyk/DiscoveryServerApplicationTests.class 2 | -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/FindingServicesUsingServiceDiscovery/application-service/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=service 2 | eureka.client.service-url.defaultZone=http://localhost:8761/eureka 3 | -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/FindingServicesUsingServiceDiscovery/application-service/target/classes/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=service 2 | eureka.client.service-url.defaultZone=http://localhost:8761/eureka 3 | -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/FindingServicesUsingServiceDiscovery/application-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst: -------------------------------------------------------------------------------- 1 | com/learning/linnyk/ServiceApplication.class 2 | -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/FindingServicesUsingServiceDiscovery/application-service/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst: -------------------------------------------------------------------------------- 1 | com/learning/linnyk/ServiceApplicationTests.class 2 | -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/FindingServicesUsingServiceDiscovery/discovery-client/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=client 2 | eureka.client.service-url.defaultZone=http://localhost:8761/eureka 3 | 4 | #Not need to register itself in discovery server 5 | eureka.client.register-with-eureka=false 6 | -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/FindingServicesUsingServiceDiscovery/discovery-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=discovery-server 2 | eureka.client.register-with-eureka=false 3 | eureka.client.fetch-registry=false 4 | server.port=8761 -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/LoadBalancing/discovery-server-load-balancing/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=discovery-server 2 | eureka.client.register-with-eureka=false 3 | eureka.client.fetch-registry=false 4 | server.port=8761 -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/LoadBalancing/discovery-server-load-balancing/target/classes/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=discovery-server 2 | eureka.client.register-with-eureka=false 3 | eureka.client.fetch-registry=false 4 | server.port=8761 -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/LoadBalancing/discovery-server-load-balancing/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst: -------------------------------------------------------------------------------- 1 | com/learning/linnyk/DiscoveryServerApplication.class 2 | -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/LoadBalancing/discovery-server-load-balancing/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst: -------------------------------------------------------------------------------- 1 | com/learning/linnyk/DiscoveryServerApplicationTests.class 2 | -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/LoadBalancing/ribbon-time-app-with-sd/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringCloud/SpringCloudFundamentals/LoadBalancing/ribbon-time-app-with-sd/src/main/resources/application.properties -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/LoadBalancing/ribbon-time-service-with-sd/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=time-service 2 | eureka.client.service-url.defaultZone=http://localhost:8761/eureka -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/Routing/discovery-server-routing/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=discovery-server 2 | eureka.client.register-with-eureka=false 3 | eureka.client.fetch-registry=false 4 | server.port=8761 -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/Routing/discovery-server-routing/target/classes/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=discovery-server 2 | eureka.client.register-with-eureka=false 3 | eureka.client.fetch-registry=false 4 | server.port=8761 -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/Routing/discovery-server-routing/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst: -------------------------------------------------------------------------------- 1 | com/learning/linnyk/DiscoveryServerApplication.class 2 | -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/Routing/discovery-server-routing/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst: -------------------------------------------------------------------------------- 1 | com/learning/linnyk/DiscoveryServerApplicationTests.class 2 | -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/Routing/gateway-service/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=gateway-service 2 | eureka.client.service-url.defaultZone=http://localhost:8761/eureka -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/Routing/gateway-service/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst: -------------------------------------------------------------------------------- 1 | com/learning/linnyk/GatewayServiceApplicationTests.class 2 | -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/Routing/routing-goodbye-service/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=goodbye 2 | server.port=2222 3 | eureka.client.service-url.defaultZone=http://localhost:8761/eureka -------------------------------------------------------------------------------- /SpringCloud/SpringCloudFundamentals/Routing/routing-hello-service/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=hello 2 | server.port=1111 3 | eureka.client.service-url.defaultZone=http://localhost:8761/eureka -------------------------------------------------------------------------------- /SpringWEB/SpringBoot/BootDemo/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | context-path: /app 3 | port: 9999 -------------------------------------------------------------------------------- /SpringWEB/SpringBoot/LibraryMicroservices/CatalogService/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=9999 -------------------------------------------------------------------------------- /SpringWEB/SpringBoot/LibraryMicroservices/CatalogService/src/main/resources/data.sql: -------------------------------------------------------------------------------- 1 | insert into book(book_id,title,page_count,author_first_name, author_last_name) values (1, '1984', 200, 'George', 'Orwell'); 2 | insert into book(book_id,title,page_count,author_first_name, author_last_name) values (2, 'Dracula', 100, 'Bram', 'Stoker'); -------------------------------------------------------------------------------- /SpringWEB/SpringBoot/LibraryMicroservices/LibraryComplete/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringBoot/LibraryMicroservices/LibraryComplete/src/main/resources/application.properties -------------------------------------------------------------------------------- /SpringWEB/SpringBoot/ShipWrecks/src/main/resources/application-prod.properties: -------------------------------------------------------------------------------- 1 | #Server configuration 2 | server.port=8090 3 | 4 | #data source configuration 5 | spring.datasource.url=jdbc:h2:file:~/dasboot 6 | spring.datasource.username=sa 7 | spring.datasource.password= 8 | spring.datasource.driver-class-name=org.h2.Driver 9 | 10 | -------------------------------------------------------------------------------- /SpringWEB/SpringBoot/ShipWrecks/src/main/resources/application-test.properties: -------------------------------------------------------------------------------- 1 | #Logging 2 | logging.level.org.springframework.web=debug 3 | 4 | #Server configuration 5 | server.port=8088 6 | -------------------------------------------------------------------------------- /SpringWEB/SpringBoot/ShipWrecks/src/main/resources/db/migration/V2__create_shipwreck.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE SHIPWRECK( 2 | ID INT AUTO_INCREMENT, 3 | NAME VARCHAR(255), 4 | DESCRIPTION VARCHAR(2000), 5 | CONDITION VARCHAR(255), 6 | DEPTH INT, 7 | LATITUDE DOUBLE, 8 | LONGITUDE DOUBLE, 9 | YEAR_DISCOVERED INT 10 | ); -------------------------------------------------------------------------------- /SpringWEB/SpringBoot/ShipWrecks/src/main/resources/static/images/shipwreck.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringBoot/ShipWrecks/src/main/resources/static/images/shipwreck.jpg -------------------------------------------------------------------------------- /SpringWEB/SpringBoot/ShipWrecks/src/main/resources/static/lib/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringBoot/ShipWrecks/src/main/resources/static/lib/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /SpringWEB/SpringBoot/ShipWrecks/src/main/resources/static/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringBoot/ShipWrecks/src/main/resources/static/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /SpringWEB/SpringBoot/ShipWrecks/src/main/resources/static/lib/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringBoot/ShipWrecks/src/main/resources/static/lib/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /SpringWEB/SpringBoot/ShipWrecks/src/main/resources/static/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringBoot/ShipWrecks/src/main/resources/static/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /SpringWEB/SpringBoot/ShipWrecks/src/main/resources/static/views/shipwreck-add.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 | -------------------------------------------------------------------------------- /SpringWEB/SpringBoot/ShipWrecks/src/main/resources/static/views/shipwreck-edit.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 | -------------------------------------------------------------------------------- /SpringWEB/SpringBoot/just-gif-it/video/PexelsVideos.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringBoot/just-gif-it/video/PexelsVideos.mp4 -------------------------------------------------------------------------------- /SpringWEB/SpringBoot/restful-web-services/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | management.security.enabled=false 2 | logging.level.org.springframework=debug 3 | 4 | #For correct format of Dates 5 | spring.jackson.serialization.write-dates-as-timestamps=false 6 | 7 | #JPA 8 | spring.jpa.show-sql=true 9 | spring.h2.console.enabled=true -------------------------------------------------------------------------------- /SpringWEB/SpringBoot/restful-web-services/src/main/resources/messages.properties: -------------------------------------------------------------------------------- 1 | message=Good morning -------------------------------------------------------------------------------- /SpringWEB/SpringBoot/restful-web-services/src/main/resources/messages_fr.properties: -------------------------------------------------------------------------------- 1 | message=Bonjour -------------------------------------------------------------------------------- /SpringWEB/SpringMVC/Spring3MVC/src/main/java/com/mvc/session/linnyk/model/Activity.java: -------------------------------------------------------------------------------- 1 | package com.mvc.session.linnyk.model; 2 | 3 | public class Activity { 4 | 5 | private String desc; 6 | 7 | public String getDesc() { 8 | return desc; 9 | } 10 | 11 | public void setDesc(String desc) { 12 | this.desc = desc; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /SpringWEB/SpringMVC/Spring3MVC/src/main/java/com/mvc/session/linnyk/service/ExerciseService.java: -------------------------------------------------------------------------------- 1 | package com.mvc.session.linnyk.service; 2 | 3 | import java.util.List; 4 | 5 | import com.mvc.session.linnyk.model.Activity; 6 | 7 | public interface ExerciseService { 8 | 9 | List findAllActivities(); 10 | } 11 | -------------------------------------------------------------------------------- /SpringWEB/SpringMVC/Spring3MVC/src/main/webapp/pdfs/ExceptionClassSummary.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringMVC/Spring3MVC/src/main/webapp/pdfs/ExceptionClassSummary.pdf -------------------------------------------------------------------------------- /SpringWEB/SpringMVC/Spring4MVC/src/main/resources/messages_es.properties: -------------------------------------------------------------------------------- 1 | Size.attendee.name = El nombre debe estar entre {2} y {1} caracteres 2 | Email = La dirección de email no es válida 3 | NotEmpty = El campo no se puede dejar en blanco 4 | 5 | attendee.name = Ingrese su nombre 6 | attendee.email.address = Introducir la dirección de correo electrónico 7 | -------------------------------------------------------------------------------- /SpringWEB/SpringMVC/Spring4MVC/src/main/webapp/WEB-INF/css/style.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringMVC/Spring4MVC/src/main/webapp/WEB-INF/css/style.css -------------------------------------------------------------------------------- /SpringWEB/SpringMVC/Spring4MVC/src/main/webapp/WEB-INF/jsp/hello.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 | 3 | 4 | Hello 5 | 6 | 7 | 8 |

${greeting}

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /SpringWEB/SpringMVC/Spring4MVC/src/main/webapp/WEB-INF/pdf/ExceptionClassSummary.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringMVC/Spring4MVC/src/main/webapp/WEB-INF/pdf/ExceptionClassSummary.pdf -------------------------------------------------------------------------------- /SpringWEB/SpringMVC/SpringSession/src/main/java/com/mvc/session/linnyk/service/TodoListService.java: -------------------------------------------------------------------------------- 1 | package com.mvc.session.linnyk.service; 2 | 3 | import java.util.List; 4 | 5 | import com.mvc.session.linnyk.model.Todo; 6 | 7 | public interface TodoListService { 8 | 9 | List findAllTodos(); 10 | 11 | void addToList(Todo todo); 12 | } 13 | -------------------------------------------------------------------------------- /SpringWEB/SpringMVC/SpringSession/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | context-path: /app 3 | port: 9999 -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/Authentication/authentication-provider/src/main/resources/application-ldap.properties: -------------------------------------------------------------------------------- 1 | spring.ldap.embedded.ldif=classpath:test-server.ldif 2 | spring.ldap.embedded.base-dn=dc=springframework,dc=org 3 | spring.ldap.embedded.port=8389 -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/Authentication/login/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # expose the Actuator endpoints 2 | management.endpoints.web.exposure.include=* 3 | management.endpoint.health.show-details=always 4 | 5 | # for Spring Security 6 | spring.security.user.name=user 7 | spring.security.user.password=password -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/Authentication/password-migration/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringSecurity/LiveSessions/Authentication/password-migration/src/main/resources/application.properties -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/Authentication/user-details/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringSecurity/LiveSessions/Authentication/user-details/src/main/resources/application.properties -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/Authentication/user-details/src/test/java/livelessons/JdbcUserDetailsServiceTest.java: -------------------------------------------------------------------------------- 1 | package livelessons; 2 | 3 | import org.springframework.test.context.ActiveProfiles; 4 | 5 | @ActiveProfiles("jdbc") 6 | public class JdbcUserDetailsServiceTest extends UserDetailsServiceTestBaseClass { 7 | 8 | } -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/Authentication/user-details/src/test/java/livelessons/MemoryUserDetailsServiceTest.java: -------------------------------------------------------------------------------- 1 | package livelessons; 2 | 3 | import org.springframework.test.context.ActiveProfiles; 4 | 5 | @ActiveProfiles("memory") 6 | public class MemoryUserDetailsServiceTest extends UserDetailsServiceTestBaseClass { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/Authentication/xauth-app/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringSecurity/LiveSessions/Authentication/xauth-app/src/main/resources/application.properties -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/Authentication/xauth/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=livelessons.xauth.XAuthAutoConfiguration 2 | org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer=livelessons.xauth.XAuthDslConfigurer -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/Authentication/xauth/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringSecurity/LiveSessions/Authentication/xauth/src/main/resources/application.properties -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/Authorization/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | management.endpoints.web.exposure.include=* 2 | management.endpoint.health.show-details=always -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/BootCamp/src/main/java/com/example/bootcamp/Foo.java: -------------------------------------------------------------------------------- 1 | package com.example.bootcamp; 2 | 3 | import org.springframework.stereotype.Component; 4 | 5 | @Component 6 | class Foo { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/BootCamp/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringSecurity/LiveSessions/BootCamp/src/main/resources/application.properties -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/CommonAttacks/cache/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.security.user.password=password 2 | 3 | spring.resources.cache.cachecontrol.max-age=1D -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/CommonAttacks/cache/src/main/resources/static/cached.js: -------------------------------------------------------------------------------- 1 | function js() {} -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/CommonAttacks/clickjacking/evil/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=9090 -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/CommonAttacks/clickjacking/secure/admin/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.security.user.password=password 2 | 3 | spring.resources.cache.cachecontrol.max-age=1D -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/CommonAttacks/clickjacking/secure/admin/src/main/resources/static/cached.js: -------------------------------------------------------------------------------- 1 | function js() {} -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/CommonAttacks/csrf/evil/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=9090 -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/CommonAttacks/csrf/secure/bank-json/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.security.user.password=password -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/CommonAttacks/csrf/secure/bank/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.security.user.password=password -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/CommonAttacks/csrf/secure/file-upload/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.security.user.password=password 2 | 3 | spring.servlet.multipart.max-file-size=128MB 4 | spring.servlet.multipart.max-request-size=128MB 5 | spring.servlet.multipart.enabled=true 6 | -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/CommonAttacks/csrf/secure/file-upload/src/test/resources/livelessons/the-file.txt: -------------------------------------------------------------------------------- 1 | The File -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/CommonAttacks/csrf/victim/bank-get/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.security.user.password=password -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/CommonAttacks/csrf/victim/bank-json/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.security.user.password=password -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/CommonAttacks/csrf/victim/bank/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.security.user.password=password -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/CommonAttacks/csrf/victim/credit-card/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.security.user.password=password -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/CommonAttacks/https/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.security.user.password=password 2 | 3 | spring.resources.cache.cachecontrol.max-age=1D -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/CommonAttacks/https/src/main/resources/static/cached.js: -------------------------------------------------------------------------------- 1 | function js() {} -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/CommonAttacks/session-fixation/secure/credit-card/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.security.user.password=password -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/CommonAttacks/session-fixation/victim/credit-card/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.security.user.password=password -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/CommonAttacks/xss/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.security.user.password=password -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/MethodSecurity/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringSecurity/LiveSessions/MethodSecurity/src/main/resources/application.properties -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/SecurityTesting/method-userdetails/src/main/java/livelessons/MessageService.java: -------------------------------------------------------------------------------- 1 | package livelessons; 2 | 3 | public interface MessageService { 4 | 5 | String getMessage(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/SecurityTesting/method/src/main/java/livelessons/MessageService.java: -------------------------------------------------------------------------------- 1 | package livelessons; 2 | 3 | public interface MessageService { 4 | 5 | String getMessage(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/LiveSessions/SecurityTesting/web/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.security.user.password=password -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SimpleSpringMVC/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | ################### JDBC Configuration ########################## 2 | jdbc.driverClassName=org.postgresql.Driver 3 | jdbc.url=jdbc:postgresql://localhost/postgres 4 | jdbc.username=postgres 5 | jdbc.password=postgres -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SimpleSpringMVC/src/main/webapp/index.jsp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Register Here 5 |
6 | 7 |
8 | Already Registered? Login Here. 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SimpleSpringSecurity/src/main/java/com/demo/resources/application.properties: -------------------------------------------------------------------------------- 1 | ################### JDBC Configuration ########################## 2 | jdbc.driverClassName=org.postgresql.Driver 3 | jdbc.url=jdbc:postgresql://localhost/postgres 4 | jdbc.username=postgres 5 | jdbc.password=postgres -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SpringSecurityAuthenticationTypes/src/main/resources/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SpringSecurityAuthenticationTypes/src/main/resources/.gitignore -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SpringSecurityAuthenticationTypes/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | ################### JDBC Configuration ########################## 2 | jdbc.driverClassName=org.postgresql.Driver 3 | jdbc.url=jdbc:postgresql://localhost/postgres 4 | jdbc.username=postgres 5 | jdbc.password=postgres -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SpringSecurityLocalization/src/main/resources/messages.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SpringSecurityLocalization/src/main/resources/messages.properties -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SpringSecurityMethodSecurity/src/main/resources/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SpringSecurityMethodSecurity/src/main/resources/.gitignore -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SpringSecurityPasswordEncoding/src/main/resources/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SpringSecurityPasswordEncoding/src/main/resources/.gitignore -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SpringSecurityPasswordEncoding/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | ################### JDBC Configuration ########################## 2 | jdbc.driverClassName=org.postgresql.Driver 3 | jdbc.url=jdbc:postgresql://localhost/postgres 4 | jdbc.username=postgres 5 | jdbc.password=postgres -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SpringSecurityRememberMeAuthentication/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | ################### JDBC Configuration ########################## 2 | jdbc.driverClassName=org.postgresql.Driver 3 | jdbc.url=jdbc:postgresql://localhost/postgres 4 | jdbc.username=postgres 5 | jdbc.password=postgres -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SpringSecurityRememberMeAuthentication/src/main/resources/dbSchema.txt: -------------------------------------------------------------------------------- 1 | CREATE TABLE persistent_logins ( 2 | username varchar(64) not null, 3 | series varchar(64) PRIMARY KEY not null, 4 | token varchar(64) not null, 5 | last_used timestamp not null 6 | ); -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SpringSecuritySecurityFilterChain/src/main/resources/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SpringSecuritySecurityFilterChain/src/main/resources/.gitignore -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SpringSecuritySessionManagement/src/main/resources/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SpringSecuritySessionManagement/src/main/resources/.gitignore -------------------------------------------------------------------------------- /SpringWEB/SpringSecurity/SpringSecurityInEasySteps/SpringSecuritySessionManagement/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | ################### JDBC Configuration ########################## 2 | jdbc.driverClassName=org.postgresql.Driver 3 | jdbc.url=jdbc:postgresql://localhost/postgres 4 | jdbc.username=postgres 5 | jdbc.password=postgres -------------------------------------------------------------------------------- /Testing/EffectiveAutomation/ps-effective-automated-testing-in-spring-module-3/room-service-module-3/target/classes/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/Testing/EffectiveAutomation/ps-effective-automated-testing-in-spring-module-3/room-service-module-3/target/classes/application.properties -------------------------------------------------------------------------------- /Testing/EffectiveAutomation/ps-effective-automated-testing-in-spring-module-4/customer-service-module-4/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Testing/EffectiveAutomation/ps-effective-automated-testing-in-spring-module-4/customer-service-module-4/src/test/resources/validFullCustomer.json: -------------------------------------------------------------------------------- 1 | {"firstName" : "John","lastName" : "Doe","middleName" : "Middle","suffix" : "Jr.","lastStayDate" : "9-12-2017"} -------------------------------------------------------------------------------- /Testing/EffectiveAutomation/ps-effective-automated-testing-in-spring-module-5/customer-service-module-5/src/test/resources/validFullCustomer.json: -------------------------------------------------------------------------------- 1 | {"firstName" : "John","lastName" : "Doe","middleName" : "Middle","suffix" : "Jr.","lastStayDate" : "9-12-2017"} -------------------------------------------------------------------------------- /Testing/EffectiveAutomation/ps-effective-automated-testing-in-spring-module-6/booking-service-module-6/src/assembly/stub.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/Testing/EffectiveAutomation/ps-effective-automated-testing-in-spring-module-6/booking-service-module-6/src/assembly/stub.xml -------------------------------------------------------------------------------- /Testing/EffectiveAutomation/ps-effective-automated-testing-in-spring-module-6/customer-service-module-6/src/test/resources/validFullCustomer.json: -------------------------------------------------------------------------------- 1 | {"firstName" : "John","lastName" : "Doe","middleName" : "Middle","suffix" : "Jr.","lastStayDate" : "9-12-2017"} -------------------------------------------------------------------------------- /images/IOC/after_init_method.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/IOC/after_init_method.png -------------------------------------------------------------------------------- /images/IOC/bfpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/IOC/bfpp.png -------------------------------------------------------------------------------- /images/IOC/how_everything_works.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/IOC/how_everything_works.png -------------------------------------------------------------------------------- /images/Screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/Screenshot.png -------------------------------------------------------------------------------- /images/Screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/Screenshot_1.png -------------------------------------------------------------------------------- /images/Screenshot_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/Screenshot_2.png -------------------------------------------------------------------------------- /images/Screenshot_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/Screenshot_3.png -------------------------------------------------------------------------------- /images/Screenshot_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/Screenshot_4.png -------------------------------------------------------------------------------- /images/Screenshot_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/Screenshot_5.png -------------------------------------------------------------------------------- /images/aop/Screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/aop/Screenshot.png -------------------------------------------------------------------------------- /images/aop/Screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/aop/Screenshot_1.png -------------------------------------------------------------------------------- /images/aop/Screenshot_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/aop/Screenshot_10.png -------------------------------------------------------------------------------- /images/aop/Screenshot_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/aop/Screenshot_11.png -------------------------------------------------------------------------------- /images/aop/Screenshot_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/aop/Screenshot_12.png -------------------------------------------------------------------------------- /images/aop/Screenshot_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/aop/Screenshot_13.png -------------------------------------------------------------------------------- /images/aop/Screenshot_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/aop/Screenshot_14.png -------------------------------------------------------------------------------- /images/aop/Screenshot_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/aop/Screenshot_15.png -------------------------------------------------------------------------------- /images/aop/Screenshot_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/aop/Screenshot_16.png -------------------------------------------------------------------------------- /images/aop/Screenshot_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/aop/Screenshot_17.png -------------------------------------------------------------------------------- /images/aop/Screenshot_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/aop/Screenshot_18.png -------------------------------------------------------------------------------- /images/aop/Screenshot_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/aop/Screenshot_2.png -------------------------------------------------------------------------------- /images/aop/Screenshot_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/aop/Screenshot_3.png -------------------------------------------------------------------------------- /images/aop/Screenshot_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/aop/Screenshot_4.png -------------------------------------------------------------------------------- /images/aop/Screenshot_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/aop/Screenshot_5.png -------------------------------------------------------------------------------- /images/aop/Screenshot_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/aop/Screenshot_6.png -------------------------------------------------------------------------------- /images/aop/Screenshot_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/aop/Screenshot_7.png -------------------------------------------------------------------------------- /images/aop/Screenshot_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/aop/Screenshot_8.png -------------------------------------------------------------------------------- /images/aop/Screenshot_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/aop/Screenshot_9.png -------------------------------------------------------------------------------- /images/core_spring_in_detail/Screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/core_spring_in_detail/Screenshot_1.png -------------------------------------------------------------------------------- /images/core_spring_in_detail/Screenshot_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/core_spring_in_detail/Screenshot_10.png -------------------------------------------------------------------------------- /images/core_spring_in_detail/Screenshot_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/core_spring_in_detail/Screenshot_11.png -------------------------------------------------------------------------------- /images/core_spring_in_detail/Screenshot_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/core_spring_in_detail/Screenshot_12.png -------------------------------------------------------------------------------- /images/core_spring_in_detail/Screenshot_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/core_spring_in_detail/Screenshot_13.png -------------------------------------------------------------------------------- /images/core_spring_in_detail/Screenshot_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/core_spring_in_detail/Screenshot_14.png -------------------------------------------------------------------------------- /images/core_spring_in_detail/Screenshot_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/core_spring_in_detail/Screenshot_2.png -------------------------------------------------------------------------------- /images/core_spring_in_detail/Screenshot_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/core_spring_in_detail/Screenshot_3.png -------------------------------------------------------------------------------- /images/core_spring_in_detail/Screenshot_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/core_spring_in_detail/Screenshot_4.png -------------------------------------------------------------------------------- /images/core_spring_in_detail/Screenshot_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/core_spring_in_detail/Screenshot_5.png -------------------------------------------------------------------------------- /images/core_spring_in_detail/Screenshot_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/core_spring_in_detail/Screenshot_6.png -------------------------------------------------------------------------------- /images/core_spring_in_detail/Screenshot_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/core_spring_in_detail/Screenshot_7.png -------------------------------------------------------------------------------- /images/core_spring_in_detail/Screenshot_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/core_spring_in_detail/Screenshot_8.png -------------------------------------------------------------------------------- /images/db/Screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_1.png -------------------------------------------------------------------------------- /images/db/Screenshot_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_10.png -------------------------------------------------------------------------------- /images/db/Screenshot_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_11.png -------------------------------------------------------------------------------- /images/db/Screenshot_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_12.png -------------------------------------------------------------------------------- /images/db/Screenshot_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_13.png -------------------------------------------------------------------------------- /images/db/Screenshot_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_14.png -------------------------------------------------------------------------------- /images/db/Screenshot_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_15.png -------------------------------------------------------------------------------- /images/db/Screenshot_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_16.png -------------------------------------------------------------------------------- /images/db/Screenshot_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_17.png -------------------------------------------------------------------------------- /images/db/Screenshot_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_18.png -------------------------------------------------------------------------------- /images/db/Screenshot_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_19.png -------------------------------------------------------------------------------- /images/db/Screenshot_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_2.png -------------------------------------------------------------------------------- /images/db/Screenshot_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_20.png -------------------------------------------------------------------------------- /images/db/Screenshot_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_21.png -------------------------------------------------------------------------------- /images/db/Screenshot_22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_22.png -------------------------------------------------------------------------------- /images/db/Screenshot_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_23.png -------------------------------------------------------------------------------- /images/db/Screenshot_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_24.png -------------------------------------------------------------------------------- /images/db/Screenshot_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_25.png -------------------------------------------------------------------------------- /images/db/Screenshot_26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_26.png -------------------------------------------------------------------------------- /images/db/Screenshot_27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_27.png -------------------------------------------------------------------------------- /images/db/Screenshot_28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_28.png -------------------------------------------------------------------------------- /images/db/Screenshot_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_3.png -------------------------------------------------------------------------------- /images/db/Screenshot_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_4.png -------------------------------------------------------------------------------- /images/db/Screenshot_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_5.png -------------------------------------------------------------------------------- /images/db/Screenshot_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_6.png -------------------------------------------------------------------------------- /images/db/Screenshot_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_7.png -------------------------------------------------------------------------------- /images/db/Screenshot_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_8.png -------------------------------------------------------------------------------- /images/db/Screenshot_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/db/Screenshot_9.png -------------------------------------------------------------------------------- /images/handout/Screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_1.png -------------------------------------------------------------------------------- /images/handout/Screenshot_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_10.png -------------------------------------------------------------------------------- /images/handout/Screenshot_100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_100.png -------------------------------------------------------------------------------- /images/handout/Screenshot_101.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_101.png -------------------------------------------------------------------------------- /images/handout/Screenshot_102.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_102.png -------------------------------------------------------------------------------- /images/handout/Screenshot_103.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_103.png -------------------------------------------------------------------------------- /images/handout/Screenshot_104.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_104.png -------------------------------------------------------------------------------- /images/handout/Screenshot_105.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_105.png -------------------------------------------------------------------------------- /images/handout/Screenshot_106.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_106.png -------------------------------------------------------------------------------- /images/handout/Screenshot_107.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_107.png -------------------------------------------------------------------------------- /images/handout/Screenshot_108.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_108.png -------------------------------------------------------------------------------- /images/handout/Screenshot_109.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_109.png -------------------------------------------------------------------------------- /images/handout/Screenshot_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_11.png -------------------------------------------------------------------------------- /images/handout/Screenshot_110.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_110.png -------------------------------------------------------------------------------- /images/handout/Screenshot_111.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_111.png -------------------------------------------------------------------------------- /images/handout/Screenshot_112.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_112.png -------------------------------------------------------------------------------- /images/handout/Screenshot_113.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_113.png -------------------------------------------------------------------------------- /images/handout/Screenshot_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_12.png -------------------------------------------------------------------------------- /images/handout/Screenshot_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_13.png -------------------------------------------------------------------------------- /images/handout/Screenshot_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_14.png -------------------------------------------------------------------------------- /images/handout/Screenshot_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_15.png -------------------------------------------------------------------------------- /images/handout/Screenshot_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_16.png -------------------------------------------------------------------------------- /images/handout/Screenshot_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_17.png -------------------------------------------------------------------------------- /images/handout/Screenshot_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_18.png -------------------------------------------------------------------------------- /images/handout/Screenshot_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_19.png -------------------------------------------------------------------------------- /images/handout/Screenshot_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_2.png -------------------------------------------------------------------------------- /images/handout/Screenshot_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_20.png -------------------------------------------------------------------------------- /images/handout/Screenshot_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_21.png -------------------------------------------------------------------------------- /images/handout/Screenshot_22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_22.png -------------------------------------------------------------------------------- /images/handout/Screenshot_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_23.png -------------------------------------------------------------------------------- /images/handout/Screenshot_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_24.png -------------------------------------------------------------------------------- /images/handout/Screenshot_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_25.png -------------------------------------------------------------------------------- /images/handout/Screenshot_26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_26.png -------------------------------------------------------------------------------- /images/handout/Screenshot_27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_27.png -------------------------------------------------------------------------------- /images/handout/Screenshot_28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_28.png -------------------------------------------------------------------------------- /images/handout/Screenshot_29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_29.png -------------------------------------------------------------------------------- /images/handout/Screenshot_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_3.png -------------------------------------------------------------------------------- /images/handout/Screenshot_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_30.png -------------------------------------------------------------------------------- /images/handout/Screenshot_31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_31.png -------------------------------------------------------------------------------- /images/handout/Screenshot_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_32.png -------------------------------------------------------------------------------- /images/handout/Screenshot_33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_33.png -------------------------------------------------------------------------------- /images/handout/Screenshot_34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_34.png -------------------------------------------------------------------------------- /images/handout/Screenshot_35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_35.png -------------------------------------------------------------------------------- /images/handout/Screenshot_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_36.png -------------------------------------------------------------------------------- /images/handout/Screenshot_37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_37.png -------------------------------------------------------------------------------- /images/handout/Screenshot_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_38.png -------------------------------------------------------------------------------- /images/handout/Screenshot_39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_39.png -------------------------------------------------------------------------------- /images/handout/Screenshot_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_4.png -------------------------------------------------------------------------------- /images/handout/Screenshot_40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_40.png -------------------------------------------------------------------------------- /images/handout/Screenshot_41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_41.png -------------------------------------------------------------------------------- /images/handout/Screenshot_42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_42.png -------------------------------------------------------------------------------- /images/handout/Screenshot_43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_43.png -------------------------------------------------------------------------------- /images/handout/Screenshot_44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_44.png -------------------------------------------------------------------------------- /images/handout/Screenshot_45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_45.png -------------------------------------------------------------------------------- /images/handout/Screenshot_46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_46.png -------------------------------------------------------------------------------- /images/handout/Screenshot_47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_47.png -------------------------------------------------------------------------------- /images/handout/Screenshot_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_48.png -------------------------------------------------------------------------------- /images/handout/Screenshot_49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_49.png -------------------------------------------------------------------------------- /images/handout/Screenshot_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_5.png -------------------------------------------------------------------------------- /images/handout/Screenshot_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_50.png -------------------------------------------------------------------------------- /images/handout/Screenshot_51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_51.png -------------------------------------------------------------------------------- /images/handout/Screenshot_52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_52.png -------------------------------------------------------------------------------- /images/handout/Screenshot_53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_53.png -------------------------------------------------------------------------------- /images/handout/Screenshot_54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_54.png -------------------------------------------------------------------------------- /images/handout/Screenshot_55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_55.png -------------------------------------------------------------------------------- /images/handout/Screenshot_56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_56.png -------------------------------------------------------------------------------- /images/handout/Screenshot_57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_57.png -------------------------------------------------------------------------------- /images/handout/Screenshot_58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_58.png -------------------------------------------------------------------------------- /images/handout/Screenshot_59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_59.png -------------------------------------------------------------------------------- /images/handout/Screenshot_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_6.png -------------------------------------------------------------------------------- /images/handout/Screenshot_60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_60.png -------------------------------------------------------------------------------- /images/handout/Screenshot_61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_61.png -------------------------------------------------------------------------------- /images/handout/Screenshot_62.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_62.png -------------------------------------------------------------------------------- /images/handout/Screenshot_63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_63.png -------------------------------------------------------------------------------- /images/handout/Screenshot_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_64.png -------------------------------------------------------------------------------- /images/handout/Screenshot_65.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_65.png -------------------------------------------------------------------------------- /images/handout/Screenshot_66.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_66.png -------------------------------------------------------------------------------- /images/handout/Screenshot_67.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_67.png -------------------------------------------------------------------------------- /images/handout/Screenshot_68.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_68.png -------------------------------------------------------------------------------- /images/handout/Screenshot_69.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_69.png -------------------------------------------------------------------------------- /images/handout/Screenshot_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_7.png -------------------------------------------------------------------------------- /images/handout/Screenshot_70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_70.png -------------------------------------------------------------------------------- /images/handout/Screenshot_71.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_71.png -------------------------------------------------------------------------------- /images/handout/Screenshot_72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_72.png -------------------------------------------------------------------------------- /images/handout/Screenshot_73.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_73.png -------------------------------------------------------------------------------- /images/handout/Screenshot_74.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_74.png -------------------------------------------------------------------------------- /images/handout/Screenshot_75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_75.png -------------------------------------------------------------------------------- /images/handout/Screenshot_76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_76.png -------------------------------------------------------------------------------- /images/handout/Screenshot_77.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_77.png -------------------------------------------------------------------------------- /images/handout/Screenshot_78.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_78.png -------------------------------------------------------------------------------- /images/handout/Screenshot_79.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_79.png -------------------------------------------------------------------------------- /images/handout/Screenshot_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_8.png -------------------------------------------------------------------------------- /images/handout/Screenshot_80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_80.png -------------------------------------------------------------------------------- /images/handout/Screenshot_81.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_81.png -------------------------------------------------------------------------------- /images/handout/Screenshot_82.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_82.png -------------------------------------------------------------------------------- /images/handout/Screenshot_83.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_83.png -------------------------------------------------------------------------------- /images/handout/Screenshot_84.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_84.png -------------------------------------------------------------------------------- /images/handout/Screenshot_85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_85.png -------------------------------------------------------------------------------- /images/handout/Screenshot_86.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_86.png -------------------------------------------------------------------------------- /images/handout/Screenshot_87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_87.png -------------------------------------------------------------------------------- /images/handout/Screenshot_88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_88.png -------------------------------------------------------------------------------- /images/handout/Screenshot_89.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_89.png -------------------------------------------------------------------------------- /images/handout/Screenshot_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_9.png -------------------------------------------------------------------------------- /images/handout/Screenshot_90.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_90.png -------------------------------------------------------------------------------- /images/handout/Screenshot_91.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_91.png -------------------------------------------------------------------------------- /images/handout/Screenshot_92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_92.png -------------------------------------------------------------------------------- /images/handout/Screenshot_93.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_93.png -------------------------------------------------------------------------------- /images/handout/Screenshot_94.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_94.png -------------------------------------------------------------------------------- /images/handout/Screenshot_95.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_95.png -------------------------------------------------------------------------------- /images/handout/Screenshot_96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_96.png -------------------------------------------------------------------------------- /images/handout/Screenshot_97.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_97.png -------------------------------------------------------------------------------- /images/handout/Screenshot_98.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_98.png -------------------------------------------------------------------------------- /images/handout/Screenshot_99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/handout/Screenshot_99.png -------------------------------------------------------------------------------- /images/integration/Screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/integration/Screenshot_1.png -------------------------------------------------------------------------------- /images/integration/Screenshot_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/integration/Screenshot_2.png -------------------------------------------------------------------------------- /images/integration/Screenshot_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/integration/Screenshot_3.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_1.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_10.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_11.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_12.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_13.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_14.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_15.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_16.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_17.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_18.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_19.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_20.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_21.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_22.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_23.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_24.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_25.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_26.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_27.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_28.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_29.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_3.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_30.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_31.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_32.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_33.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_34.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_35.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_36.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_37.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_38.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_39.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_4.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_5.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_6.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_7.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_8.png -------------------------------------------------------------------------------- /images/pet-sitter/Screenshot_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/pet-sitter/Screenshot_9.png -------------------------------------------------------------------------------- /images/qa/Screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/qa/Screenshot_1.png -------------------------------------------------------------------------------- /images/qa/Screenshot_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/qa/Screenshot_2.png -------------------------------------------------------------------------------- /images/qa/Screenshot_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/qa/Screenshot_3.png -------------------------------------------------------------------------------- /images/qa/Screenshot_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/qa/Screenshot_4.png -------------------------------------------------------------------------------- /images/qa/Screenshot_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/qa/Screenshot_5.png -------------------------------------------------------------------------------- /images/qa/Screenshot_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/qa/Screenshot_6.png -------------------------------------------------------------------------------- /images/qa/Screenshot_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/qa/Screenshot_7.png -------------------------------------------------------------------------------- /images/qa/Screenshot_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/qa/Screenshot_8.png -------------------------------------------------------------------------------- /images/qa/Screenshot_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/qa/Screenshot_9.png -------------------------------------------------------------------------------- /images/result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/result.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_1.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_10.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_11.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_12.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_13.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_14.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_15.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_16.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_17.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_18.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_19.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_2.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_20.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_21.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_22.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_23.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_24.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_25.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_26.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_27.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_28.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_29.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_3.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_30.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_31.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_32.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_33.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_34.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_35.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_36.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_37.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_38.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_39.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_4.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_40.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_41.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_42.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_43.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_44.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_45.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_46.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_47.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_48.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_49.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_5.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_50.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_51.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_52.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_53.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_54.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_55.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_56.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_57.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_58.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_59.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_6.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_60.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_61.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_7.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_8.png -------------------------------------------------------------------------------- /images/spring_cloud/Screenshot_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/spring_cloud/Screenshot_9.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_1.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_10.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_11.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_12.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_13.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_14.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_15.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_16.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_17.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_18.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_19.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_2.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_20.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_3.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_4.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_5.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_6.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_7.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_8.png -------------------------------------------------------------------------------- /images/web/boot/Screenshot_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/boot/Screenshot_9.png -------------------------------------------------------------------------------- /images/web/mvc/Screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/mvc/Screenshot.png -------------------------------------------------------------------------------- /images/web/mvc/Screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/mvc/Screenshot_1.png -------------------------------------------------------------------------------- /images/web/mvc/Screenshot_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/mvc/Screenshot_2.png -------------------------------------------------------------------------------- /images/web/mvc/Screenshot_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/mvc/Screenshot_3.png -------------------------------------------------------------------------------- /images/web/mvc/web_services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/mvc/web_services.png -------------------------------------------------------------------------------- /images/web/mvc/workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/mvc/workflow.png -------------------------------------------------------------------------------- /images/web/rest/The-Richardson-Maturity-Model-Nordic-APIs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/rest/The-Richardson-Maturity-Model-Nordic-APIs.png -------------------------------------------------------------------------------- /images/web/security/Screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/security/Screenshot_1.png -------------------------------------------------------------------------------- /images/web/security/Screenshot_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/security/Screenshot_2.png -------------------------------------------------------------------------------- /images/web/security/Screenshot_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/security/Screenshot_3.png -------------------------------------------------------------------------------- /images/web/security/Screenshot_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/security/Screenshot_4.png -------------------------------------------------------------------------------- /images/web/security/Screenshot_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/security/Screenshot_5.png -------------------------------------------------------------------------------- /images/web/security/Screenshot_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/security/Screenshot_6.png -------------------------------------------------------------------------------- /images/web/security/Screenshot_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/security/Screenshot_7.png -------------------------------------------------------------------------------- /images/web/security/security_unders_the_hood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/images/web/security/security_unders_the_hood.png -------------------------------------------------------------------------------- /materials/Core-Spring-5.0-Certification-Study-Guide.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/materials/Core-Spring-5.0-Certification-Study-Guide.pdf -------------------------------------------------------------------------------- /materials/SpringFrameworkNotesForProfessionals.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/materials/SpringFrameworkNotesForProfessionals.pdf -------------------------------------------------------------------------------- /materials/Spring_3_Certification_Study_Notes.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/materials/Spring_3_Certification_Study_Notes.pdf -------------------------------------------------------------------------------- /materials/core-spring-4.3.b-RELEASE-student-handout.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/materials/core-spring-4.3.b-RELEASE-student-handout.pdf -------------------------------------------------------------------------------- /materials/core-spring-4.3.b.RELEASE-labdocs.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/materials/core-spring-4.3.b.RELEASE-labdocs.pdf -------------------------------------------------------------------------------- /materials/spring-certification-4_2-mock-exam-antoine.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/materials/spring-certification-4_2-mock-exam-antoine.pdf -------------------------------------------------------------------------------- /pet-sitter/01-ps-start-practice/src/main/java/com/ps/services/AbstractService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | public interface AbstractService { 4 | void save(T entity); 5 | 6 | T findById(Long entityId); 7 | 8 | void delete(T entity); 9 | 10 | void deleteById(Long entityId); 11 | } 12 | -------------------------------------------------------------------------------- /pet-sitter/01-ps-start-practice/src/main/java/com/ps/services/PetService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | import com.ps.base.PetType; 4 | import com.ps.ents.Pet; 5 | import com.ps.ents.User; 6 | 7 | public interface PetService { 8 | 9 | Pet createPet(User user, String name, int age, PetType petType, String rfid); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /pet-sitter/01-ps-start-practice/src/main/java/com/ps/services/ResponseService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | public interface ResponseService { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /pet-sitter/01-ps-start-practice/src/main/java/com/ps/services/ReviewService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | import com.ps.base.ReviewGrade; 4 | import com.ps.ents.Review; 5 | 6 | public interface ReviewService { 7 | 8 | Review createReview(ReviewGrade grade, String details); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /pet-sitter/01-ps-start-practice/src/main/java/com/ps/services/UserService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | import com.ps.base.UserType; 4 | import com.ps.ents.User; 5 | 6 | public interface UserService { 7 | 8 | User createUser(String email, String password, UserType userType); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /pet-sitter/01-ps-start-solution/src/main/java/com/ps/services/AbstractService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | 4 | public interface AbstractService { 5 | 6 | void save(T entity); 7 | 8 | T findById(Long entityId); 9 | 10 | void delete(T entity); 11 | 12 | void deleteById(Long entityId); 13 | } 14 | -------------------------------------------------------------------------------- /pet-sitter/01-ps-start-solution/src/main/java/com/ps/services/PetService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | import com.ps.base.PetType; 4 | import com.ps.ents.Pet; 5 | import com.ps.ents.User; 6 | 7 | public interface PetService { 8 | 9 | Pet createPet(User user, String name, int age, PetType petType, String rfid); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /pet-sitter/01-ps-start-solution/src/main/java/com/ps/services/ResponseService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | public interface ResponseService { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /pet-sitter/01-ps-start-solution/src/main/java/com/ps/services/ReviewService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | import com.ps.base.ReviewGrade; 4 | import com.ps.ents.Review; 5 | 6 | public interface ReviewService { 7 | 8 | Review createReview(ReviewGrade grade, String details); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /pet-sitter/01-ps-start-solution/src/main/java/com/ps/services/UserService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | import com.ps.base.UserType; 4 | import com.ps.ents.User; 5 | 6 | public interface UserService { 7 | 8 | User createUser(String email, String password, UserType userType); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-01-practice/src/main/java/com/ps/beans/ComplexBean.java: -------------------------------------------------------------------------------- 1 | package com.ps.beans; 2 | 3 | public interface ComplexBean { 4 | } 5 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-01-practice/src/main/java/com/ps/beans/SimpleBean.java: -------------------------------------------------------------------------------- 1 | package com.ps.beans; 2 | 3 | public interface SimpleBean { 4 | } 5 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-01-practice/src/main/java/com/ps/beans/ctr/package-info.java: -------------------------------------------------------------------------------- 1 | 2 | package com.ps.beans.ctr; 3 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-01-practice/src/main/java/com/ps/beans/set/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Contains classes used to create Spring beans using setter injection. 3 | */ 4 | package com.ps.beans.set; -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-01-practice/src/main/resources/db/datasource.properties: -------------------------------------------------------------------------------- 1 | driverClassName=org.h2.Driver 2 | url=jdbc:h2:~/sample 3 | username=sample 4 | password=sample -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-01-solution/src/main/java/com/ps/beans/ComplexBean.java: -------------------------------------------------------------------------------- 1 | package com.ps.beans; 2 | 3 | public interface ComplexBean { 4 | } 5 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-01-solution/src/main/java/com/ps/beans/SimpleBean.java: -------------------------------------------------------------------------------- 1 | package com.ps.beans; 2 | 3 | public interface SimpleBean { 4 | } 5 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-01-solution/src/main/java/com/ps/beans/ctr/package-info.java: -------------------------------------------------------------------------------- 1 | 2 | package com.ps.beans.ctr; 3 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-01-solution/src/main/java/com/ps/beans/set/package-info.java: -------------------------------------------------------------------------------- 1 | 2 | package com.ps.beans.set; -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-01-solution/src/main/java/com/ps/sample/SimpleBean.java: -------------------------------------------------------------------------------- 1 | package com.ps.sample; 2 | 3 | public class SimpleBean { 4 | } 5 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-01-solution/src/main/java/com/ps/services/AbstractService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | public interface AbstractService { 4 | void save(T entity); 5 | 6 | T findById(Long entityId); 7 | 8 | void delete(T entity); 9 | 10 | void deleteById(Long entityId); 11 | } 12 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-01-solution/src/main/java/com/ps/services/ResponseService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | public interface ResponseService { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-01-solution/src/main/java/com/ps/services/ReviewService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | import com.ps.base.ReviewGrade; 4 | import com.ps.ents.Review; 5 | 6 | public interface ReviewService { 7 | 8 | Review createReview(ReviewGrade grade, String details); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-01-solution/src/main/java/com/ps/services/UserService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | import com.ps.base.UserType; 4 | import com.ps.ents.User; 5 | 6 | public interface UserService { 7 | 8 | User createUser(String email, String password, UserType userType); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-01-solution/src/main/resources/db/datasource.properties: -------------------------------------------------------------------------------- 1 | driverClassName=org.h2.Driver 2 | url=jdbc:h2:~/sample 3 | username=sample 4 | password=sample -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-01-solution/src/test/java/com/ps/quiz/QuizBean.java: -------------------------------------------------------------------------------- 1 | package com.ps.quiz; 2 | 3 | import org.springframework.stereotype.Component; 4 | 5 | @Component 6 | public class QuizBean { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-01-solution/src/test/resources/db/schema.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/02-ps-container-01-solution/src/test/resources/db/schema.sql -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-01-solution/src/test/resources/db/test-data.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/02-ps-container-01-solution/src/test/resources/db/test-data.sql -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-02-practice/src/main/java/com/ps/services/AbstractService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | public interface AbstractService { 4 | void save(T entity); 5 | 6 | T findById(Long entityId); 7 | 8 | void delete(T entity); 9 | 10 | void deleteById(Long entityId); 11 | } 12 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-02-practice/src/main/java/com/ps/services/ResponseService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | public interface ResponseService { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-02-practice/src/main/java/com/ps/services/ReviewService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | import com.ps.base.ReviewGrade; 4 | import com.ps.ents.Review; 5 | 6 | public interface ReviewService { 7 | 8 | Review createReview(ReviewGrade grade, String details); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-02-practice/src/main/java/com/ps/services/UserService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | import com.ps.base.UserType; 4 | import com.ps.ents.User; 5 | 6 | public interface UserService { 7 | 8 | User createUser(String email, String password, UserType userType); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-02-practice/src/main/resources/db/datasource.properties: -------------------------------------------------------------------------------- 1 | driverClassName=org.h2.Driver 2 | url=jdbc:h2:~/sample 3 | username=sample 4 | password=sample -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-02-solution/src/main/java/com/ps/services/AbstractService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | public interface AbstractService { 4 | void save(T entity); 5 | 6 | T findById(Long entityId); 7 | 8 | void delete(T entity); 9 | 10 | void deleteById(Long entityId); 11 | } 12 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-02-solution/src/main/java/com/ps/services/ResponseService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | public interface ResponseService { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-02-solution/src/main/java/com/ps/services/ReviewService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | import com.ps.base.ReviewGrade; 4 | import com.ps.ents.Review; 5 | 6 | public interface ReviewService { 7 | 8 | Review createReview(ReviewGrade grade, String details); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-02-solution/src/main/java/com/ps/services/UserService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | import com.ps.base.UserType; 4 | import com.ps.ents.User; 5 | 6 | public interface UserService { 7 | 8 | User createUser(String email, String password, UserType userType); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-02-solution/src/main/resources/db/datasource.properties: -------------------------------------------------------------------------------- 1 | driverClassName=org.h2.Driver 2 | url=jdbc:h2:~/sample 3 | username=sample 4 | password=sample -------------------------------------------------------------------------------- /pet-sitter/02-ps-container-02-solution/src/test/java/com/ps/sample/TestBeanOne.java: -------------------------------------------------------------------------------- 1 | package com.ps.sample; 2 | 3 | import org.springframework.stereotype.Component; 4 | 5 | @Component 6 | public class TestBeanOne { 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/03-ps-test-practice/src/main/java/com/ps/PetConfigClass.java: -------------------------------------------------------------------------------- 1 | package com.ps; 2 | 3 | import org.springframework.context.annotation.ComponentScan; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | @Configuration 7 | @ComponentScan(basePackages = "com.ps.services") 8 | public class PetConfigClass { 9 | } 10 | -------------------------------------------------------------------------------- /pet-sitter/03-ps-test-practice/src/main/java/com/ps/services/AbstractService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | public interface AbstractService { 4 | 5 | void save(T entity); 6 | 7 | T findById(Long entityId); 8 | 9 | void delete(T entity); 10 | 11 | void deleteById(Long entityId); 12 | } 13 | -------------------------------------------------------------------------------- /pet-sitter/03-ps-test-practice/src/main/java/com/ps/services/ResponseService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | import com.ps.ents.Response; 4 | 5 | public interface ResponseService extends AbstractService { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/03-ps-test-sample/src/main/java/com/ps/services/AbstractService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | public interface AbstractService { 4 | void save(T entity); 5 | 6 | T findById(Long entityId); 7 | 8 | void delete(T entity); 9 | 10 | void deleteById(Long entityId); 11 | } 12 | -------------------------------------------------------------------------------- /pet-sitter/03-ps-test-sample/src/main/java/com/ps/services/ResponseService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | import com.ps.ents.Response; 4 | 5 | public interface ResponseService extends AbstractService { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/03-ps-test-sample/src/main/resources/db/datasource.properties: -------------------------------------------------------------------------------- 1 | driverClassName=org.h2.Driver 2 | url=jdbc:h2:~/sample 3 | username=sample 4 | password=sample -------------------------------------------------------------------------------- /pet-sitter/03-ps-test-sample/src/test/resources/db/schema.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/03-ps-test-sample/src/test/resources/db/schema.sql -------------------------------------------------------------------------------- /pet-sitter/03-ps-test-sample/src/test/resources/db/test-data.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/03-ps-test-sample/src/test/resources/db/test-data.sql -------------------------------------------------------------------------------- /pet-sitter/03-ps-test-solution/src/main/java/com/ps/services/AbstractService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | public interface AbstractService { 4 | void save(T entity); 5 | 6 | T findById(Long entityId); 7 | 8 | void delete(T entity); 9 | 10 | void deleteById(Long entityId); 11 | } 12 | -------------------------------------------------------------------------------- /pet-sitter/03-ps-test-solution/src/main/java/com/ps/services/ResponseService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | import com.ps.ents.Response; 4 | 5 | public interface ResponseService extends AbstractService { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/05-ps-jdbc-practice/src/test/resources/db/db.properties: -------------------------------------------------------------------------------- 1 | # For running application with H2 in memory database 2 | driverClassName=org.h2.Driver 3 | url=jdbc:h2:~/sample 4 | login=sample 5 | password=sample -------------------------------------------------------------------------------- /pet-sitter/05-ps-jdbc-solution/src/test/resources/db/db.properties: -------------------------------------------------------------------------------- 1 | # For running application with H2 in memory database 2 | driverClassName=org.h2.Driver 3 | url=jdbc:h2:~/sample 4 | login=sample 5 | password=sample 6 | -------------------------------------------------------------------------------- /pet-sitter/06-ps-tx-practice/src/main/java/com/ps/exceptions/MailSendingException.java: -------------------------------------------------------------------------------- 1 | package com.ps.exceptions; 2 | 3 | public class MailSendingException extends Exception{ 4 | public MailSendingException(String message) { 5 | super(message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/06-ps-tx-practice/src/main/java/com/ps/repos/PetRepo.java: -------------------------------------------------------------------------------- 1 | package com.ps.repos; 2 | 3 | import com.ps.ents.Pet; 4 | import com.ps.ents.User; 5 | 6 | import java.util.Set; 7 | 8 | public interface PetRepo { 9 | 10 | Set findByOwner(User owner); 11 | } 12 | -------------------------------------------------------------------------------- /pet-sitter/06-ps-tx-practice/src/main/java/com/ps/services/PetService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | import com.ps.ents.User; 4 | 5 | public interface PetService { 6 | 7 | String getPetsAsHtml(User owner); 8 | } 9 | -------------------------------------------------------------------------------- /pet-sitter/06-ps-tx-practice/src/test/resources/db/db.properties: -------------------------------------------------------------------------------- 1 | # For running application with H2 in memory database 2 | driverClassName=org.h2.Driver 3 | url=jdbc:h2:~/sample 4 | username=sample 5 | password=sample 6 | -------------------------------------------------------------------------------- /pet-sitter/06-ps-tx-practice/src/test/resources/db/delete-test-data.sql: -------------------------------------------------------------------------------- 1 | delete from p_user where id > 4; -------------------------------------------------------------------------------- /pet-sitter/06-ps-tx-solution/src/main/java/com/ps/exceptions/MailSendingException.java: -------------------------------------------------------------------------------- 1 | package com.ps.exceptions; 2 | 3 | public class MailSendingException extends Exception{ 4 | public MailSendingException(String message) { 5 | super(message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/06-ps-tx-solution/src/main/java/com/ps/repos/PetRepo.java: -------------------------------------------------------------------------------- 1 | package com.ps.repos; 2 | 3 | import com.ps.ents.Pet; 4 | import com.ps.ents.User; 5 | 6 | import java.util.Set; 7 | 8 | public interface PetRepo { 9 | 10 | Set findByOwner(User owner); 11 | } 12 | -------------------------------------------------------------------------------- /pet-sitter/06-ps-tx-solution/src/main/java/com/ps/services/PetService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | import com.ps.ents.User; 4 | 5 | public interface PetService { 6 | 7 | String getPetsAsHtml(User owner); 8 | } 9 | -------------------------------------------------------------------------------- /pet-sitter/06-ps-tx-solution/src/test/resources/db/db.properties: -------------------------------------------------------------------------------- 1 | # For running application with H2 in memory database 2 | driverClassName=org.h2.Driver 3 | url=jdbc:h2:~/sample 4 | username=sample 5 | password=sample 6 | -------------------------------------------------------------------------------- /pet-sitter/06-ps-tx-solution/src/test/resources/db/delete-test-data.sql: -------------------------------------------------------------------------------- 1 | delete from p_user where id > 4; -------------------------------------------------------------------------------- /pet-sitter/07-ps-hibernate-practice/src/main/java/com/ps/exceptions/MailSendingException.java: -------------------------------------------------------------------------------- 1 | package com.ps.exceptions; 2 | 3 | public class MailSendingException extends Exception { 4 | 5 | public MailSendingException(String message) { 6 | super(message); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /pet-sitter/07-ps-hibernate-practice/src/test/resources/db/db.properties: -------------------------------------------------------------------------------- 1 | # For running application with H2 in memory database 2 | driverClassName=org.h2.Driver 3 | url=jdbc:h2:~/sample 4 | login=olinnyk 5 | password=sample 6 | -------------------------------------------------------------------------------- /pet-sitter/07-ps-hibernate-solution/src/main/java/com/ps/exceptions/MailSendingException.java: -------------------------------------------------------------------------------- 1 | package com.ps.exceptions; 2 | 3 | public class MailSendingException extends Exception{ 4 | public MailSendingException(String message) { 5 | super(message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/07-ps-hibernate-solution/src/test/resources/db/db.properties: -------------------------------------------------------------------------------- 1 | # For running application with H2 in memory database 2 | driverClassName=com.p6spy.engine.spy.P6SpyDriver 3 | url=jdbc:p6spy:h2:mem:test; 4 | login=olinnyk 5 | password=sample 6 | -------------------------------------------------------------------------------- /pet-sitter/08-ps-jpa-practice/src/main/java/com/ps/exceptions/MailSendingException.java: -------------------------------------------------------------------------------- 1 | package com.ps.exceptions; 2 | 3 | public class MailSendingException extends Exception{ 4 | public MailSendingException(String message) { 5 | super(message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/08-ps-jpa-practice/src/test/resources/db/db.properties: -------------------------------------------------------------------------------- 1 | # For running application with H2 in memory database 2 | driverClassName=org.h2.Driver 3 | url=jdbc:h2:~/sample 4 | username=olinnyk 5 | password=sample 6 | -------------------------------------------------------------------------------- /pet-sitter/08-ps-jpa-solution/src/main/java/com/ps/exceptions/MailSendingException.java: -------------------------------------------------------------------------------- 1 | package com.ps.exceptions; 2 | 3 | public class MailSendingException extends Exception{ 4 | public MailSendingException(String message) { 5 | super(message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/08-ps-jpa-solution/src/test/resources/db/db.properties: -------------------------------------------------------------------------------- 1 | # For running application with H2 in memory database 2 | driverClassName=org.h2.Driver 3 | url=jdbc:h2:~/sample 4 | username=olinnyk 5 | password=sample 6 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa-practice/src/main/java/com/ps/config/db/DataConfig.java: -------------------------------------------------------------------------------- 1 | package com.ps.config.db; 2 | 3 | import javax.sql.DataSource; 4 | import java.util.Properties; 5 | 6 | public interface DataConfig { 7 | 8 | DataSource dataSource(); 9 | 10 | Properties hibernateProperties(); 11 | } 12 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa-practice/src/main/java/com/ps/exceptions/MailSendingException.java: -------------------------------------------------------------------------------- 1 | package com.ps.exceptions; 2 | 3 | public class MailSendingException extends Exception{ 4 | public MailSendingException(String message) { 5 | super(message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa-practice/src/main/java/com/ps/repos/PetRepo.java: -------------------------------------------------------------------------------- 1 | package com.ps.repos; 2 | 3 | import com.ps.ents.Pet; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface PetRepo extends JpaRepository { 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa-practice/src/main/java/com/ps/repos/RequestRepo.java: -------------------------------------------------------------------------------- 1 | package com.ps.repos; 2 | 3 | import com.ps.ents.Request; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface RequestRepo extends JpaRepository { 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa-practice/src/main/java/com/ps/repos/ResponseRepo.java: -------------------------------------------------------------------------------- 1 | package com.ps.repos; 2 | 3 | import com.ps.ents.Response; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface ResponseRepo extends JpaRepository { 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa-practice/src/main/java/com/ps/repos/ReviewRepo.java: -------------------------------------------------------------------------------- 1 | package com.ps.repos; 2 | 3 | import com.ps.ents.Review; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface ReviewRepo extends JpaRepository { 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa-practice/src/main/resources/prod/db.properties: -------------------------------------------------------------------------------- 1 | # For running application with H2 in memory database 2 | driverClassName=org.h2.Driver 3 | url=jdbc:h2:~/sample;DB_CLOSE_ON_EXIT=FALSE 4 | username=sample 5 | password=sample 6 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa-practice/src/test/resources/db/db.properties: -------------------------------------------------------------------------------- 1 | # For running application with H2 in memory database 2 | driverClassName=org.h2.Driver 3 | url=jdbc:h2:~/sample 4 | username=olinnyk 5 | password=sample -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa-solution/src/main/java/com/ps/config/db/DataConfig.java: -------------------------------------------------------------------------------- 1 | package com.ps.config.db; 2 | 3 | import javax.sql.DataSource; 4 | import java.util.Properties; 5 | 6 | public interface DataConfig { 7 | DataSource dataSource(); 8 | 9 | Properties hibernateProperties(); 10 | } 11 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa-solution/src/main/java/com/ps/exceptions/MailSendingException.java: -------------------------------------------------------------------------------- 1 | package com.ps.exceptions; 2 | 3 | public class MailSendingException extends Exception{ 4 | public MailSendingException(String message) { 5 | super(message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa-solution/src/main/java/com/ps/repos/PetRepo.java: -------------------------------------------------------------------------------- 1 | package com.ps.repos; 2 | 3 | import com.ps.ents.Pet; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface PetRepo extends JpaRepository { 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa-solution/src/main/java/com/ps/repos/RequestRepo.java: -------------------------------------------------------------------------------- 1 | package com.ps.repos; 2 | 3 | import com.ps.ents.Request; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface RequestRepo extends JpaRepository { 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa-solution/src/main/java/com/ps/repos/ResponseRepo.java: -------------------------------------------------------------------------------- 1 | package com.ps.repos; 2 | 3 | import com.ps.ents.Response; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface ResponseRepo extends JpaRepository { 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa-solution/src/main/java/com/ps/repos/ReviewRepo.java: -------------------------------------------------------------------------------- 1 | package com.ps.repos; 2 | 3 | import com.ps.ents.Review; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface ReviewRepo extends JpaRepository { 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa-solution/src/main/resources/prod/db.properties: -------------------------------------------------------------------------------- 1 | # For running application with H2 in memory database 2 | driverClassName=org.h2.Driver 3 | url=jdbc:h2:~/sample;DB_CLOSE_ON_EXIT=TRUE 4 | username=sample 5 | password=sample 6 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa-solution/src/test/resources/db/db.properties: -------------------------------------------------------------------------------- 1 | # For running application with H2 in memory database 2 | driverClassName=org.h2.Driver 3 | url=jdbc:h2:~/sample 4 | username=olinnyk 5 | password=sample 6 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa/src/main/java/com/ps/config/db/DataConfig.java: -------------------------------------------------------------------------------- 1 | package com.ps.config.db; 2 | 3 | import javax.sql.DataSource; 4 | import java.util.Properties; 5 | 6 | public interface DataConfig { 7 | 8 | DataSource dataSource(); 9 | 10 | Properties hibernateProperties(); 11 | } 12 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa/src/main/java/com/ps/exceptions/MailSendingException.java: -------------------------------------------------------------------------------- 1 | package com.ps.exceptions; 2 | 3 | public class MailSendingException extends Exception{ 4 | public MailSendingException(String message) { 5 | super(message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa/src/main/java/com/ps/repos/PetRepo.java: -------------------------------------------------------------------------------- 1 | package com.ps.repos; 2 | 3 | import com.ps.ents.Pet; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface PetRepo extends JpaRepository { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa/src/main/java/com/ps/repos/RequestRepo.java: -------------------------------------------------------------------------------- 1 | package com.ps.repos; 2 | 3 | import com.ps.ents.Request; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface RequestRepo extends JpaRepository { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa/src/main/java/com/ps/repos/ResponseRepo.java: -------------------------------------------------------------------------------- 1 | package com.ps.repos; 2 | 3 | import com.ps.ents.Response; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface ResponseRepo extends JpaRepository { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa/src/main/java/com/ps/repos/ReviewRepo.java: -------------------------------------------------------------------------------- 1 | package com.ps.repos; 2 | 3 | import com.ps.ents.Review; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface ReviewRepo extends JpaRepository { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-data-jpa/src/main/resources/prod/db.properties: -------------------------------------------------------------------------------- 1 | # For running application with H2 in memory database 2 | driverClassName=org.h2.Driver 3 | url=jdbc:h2:~/sample;DB_CLOSE_ON_EXIT=TRUE 4 | username=sample 5 | password=sample -------------------------------------------------------------------------------- /pet-sitter/09-ps-mongo-sample/src/main/java/com/ps/exceptions/MailSendingException.java: -------------------------------------------------------------------------------- 1 | package com.ps.exceptions; 2 | 3 | public class MailSendingException extends Exception{ 4 | public MailSendingException(String message) { 5 | super(message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-mongo-sample/src/main/java/com/ps/repos/MongoDBRepo.java: -------------------------------------------------------------------------------- 1 | package com.ps.repos; 2 | 3 | import org.springframework.data.mongodb.repository.MongoRepository; 4 | 5 | import com.ps.ents.User; 6 | 7 | public interface MongoDBRepo extends MongoRepository { 8 | } 9 | -------------------------------------------------------------------------------- /pet-sitter/09-ps-mongo-sample/src/main/java/com/ps/services/UserService.java: -------------------------------------------------------------------------------- 1 | package com.ps.services; 2 | 3 | import com.ps.base.UserType; 4 | import com.ps.ents.User; 5 | 6 | public interface UserService { 7 | 8 | User findById(Long id); 9 | 10 | 11 | void create(String email, String password, UserType userType); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /pet-sitter/10-ps-mvc-practice/src/main/webapp/WEB-INF/classes/blue.properties: -------------------------------------------------------------------------------- 1 | css.style=/styles/decorator-blue.css 2 | banner.image=/images/banner-blue.png -------------------------------------------------------------------------------- /pet-sitter/10-ps-mvc-practice/src/main/webapp/WEB-INF/classes/green.properties: -------------------------------------------------------------------------------- 1 | css.style=/styles/decorator-green.css -------------------------------------------------------------------------------- /pet-sitter/10-ps-mvc-practice/src/main/webapp/WEB-INF/pets/list.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /pet-sitter/10-ps-mvc-practice/src/main/webapp/images/arrow-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/10-ps-mvc-practice/src/main/webapp/images/arrow-blue.png -------------------------------------------------------------------------------- /pet-sitter/10-ps-mvc-practice/src/main/webapp/images/arrow-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/10-ps-mvc-practice/src/main/webapp/images/arrow-green.png -------------------------------------------------------------------------------- /pet-sitter/10-ps-mvc-practice/src/main/webapp/images/banner-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/10-ps-mvc-practice/src/main/webapp/images/banner-blue.png -------------------------------------------------------------------------------- /pet-sitter/10-ps-mvc-practice/src/main/webapp/images/banner-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/10-ps-mvc-practice/src/main/webapp/images/banner-green.png -------------------------------------------------------------------------------- /pet-sitter/10-ps-mvc-solution/src/main/webapp/WEB-INF/classes/blue.properties: -------------------------------------------------------------------------------- 1 | css.style=/styles/decorator-blue.css 2 | banner.image=/images/banner-blue.png -------------------------------------------------------------------------------- /pet-sitter/10-ps-mvc-solution/src/main/webapp/WEB-INF/classes/green.properties: -------------------------------------------------------------------------------- 1 | css.style=/styles/decorator-green.css -------------------------------------------------------------------------------- /pet-sitter/10-ps-mvc-solution/src/main/webapp/WEB-INF/pets/list.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /pet-sitter/10-ps-mvc-solution/src/main/webapp/images/arrow-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/10-ps-mvc-solution/src/main/webapp/images/arrow-blue.png -------------------------------------------------------------------------------- /pet-sitter/10-ps-mvc-solution/src/main/webapp/images/arrow-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/10-ps-mvc-solution/src/main/webapp/images/arrow-green.png -------------------------------------------------------------------------------- /pet-sitter/10-ps-mvc-solution/src/main/webapp/images/banner-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/10-ps-mvc-solution/src/main/webapp/images/banner-blue.png -------------------------------------------------------------------------------- /pet-sitter/10-ps-mvc-solution/src/main/webapp/images/banner-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/10-ps-mvc-solution/src/main/webapp/images/banner-green.png -------------------------------------------------------------------------------- /pet-sitter/11-ps-boot-sample/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | app: 2 | port: 8080 3 | context: /ps-boot 4 | sessionTimeout: 10 5 | -------------------------------------------------------------------------------- /pet-sitter/11-ps-security-practice/src/main/java/com/ps/init/SecurityWebApplicationInitializer.java: -------------------------------------------------------------------------------- 1 | package com.ps.init; 2 | 3 | import org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer; 4 | 5 | public class SecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer { 6 | } 7 | -------------------------------------------------------------------------------- /pet-sitter/11-ps-security-practice/src/main/webapp/WEB-INF/classes/blue.properties: -------------------------------------------------------------------------------- 1 | css.style=/styles/decorator-blue.css 2 | banner.image=/images/banner-blue.png -------------------------------------------------------------------------------- /pet-sitter/11-ps-security-practice/src/main/webapp/WEB-INF/classes/green.properties: -------------------------------------------------------------------------------- 1 | css.style=/styles/decorator-green.css -------------------------------------------------------------------------------- /pet-sitter/11-ps-security-practice/src/main/webapp/WEB-INF/pets/list.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /pet-sitter/11-ps-security-practice/src/main/webapp/images/arrow-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/11-ps-security-practice/src/main/webapp/images/arrow-blue.png -------------------------------------------------------------------------------- /pet-sitter/11-ps-security-practice/src/main/webapp/images/arrow-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/11-ps-security-practice/src/main/webapp/images/arrow-green.png -------------------------------------------------------------------------------- /pet-sitter/11-ps-security-practice/src/main/webapp/images/banner-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/11-ps-security-practice/src/main/webapp/images/banner-blue.png -------------------------------------------------------------------------------- /pet-sitter/11-ps-security-practice/src/main/webapp/images/banner-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/11-ps-security-practice/src/main/webapp/images/banner-green.png -------------------------------------------------------------------------------- /pet-sitter/11-ps-security-solution/src/main/java/com/ps/init/SecurityWebApplicationInitializer.java: -------------------------------------------------------------------------------- 1 | package com.ps.init; 2 | 3 | import org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer; 4 | 5 | public class SecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer { 6 | } 7 | -------------------------------------------------------------------------------- /pet-sitter/11-ps-security-solution/src/main/webapp/WEB-INF/classes/blue.properties: -------------------------------------------------------------------------------- 1 | css.style=/styles/decorator-blue.css 2 | banner.image=/images/banner-blue.png -------------------------------------------------------------------------------- /pet-sitter/11-ps-security-solution/src/main/webapp/WEB-INF/classes/green.properties: -------------------------------------------------------------------------------- 1 | css.style=/styles/decorator-green.css -------------------------------------------------------------------------------- /pet-sitter/11-ps-security-solution/src/main/webapp/WEB-INF/pets/list.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /pet-sitter/11-ps-security-solution/src/main/webapp/images/arrow-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/11-ps-security-solution/src/main/webapp/images/arrow-blue.png -------------------------------------------------------------------------------- /pet-sitter/11-ps-security-solution/src/main/webapp/images/arrow-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/11-ps-security-solution/src/main/webapp/images/arrow-green.png -------------------------------------------------------------------------------- /pet-sitter/11-ps-security-solution/src/main/webapp/images/banner-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/11-ps-security-solution/src/main/webapp/images/banner-blue.png -------------------------------------------------------------------------------- /pet-sitter/11-ps-security-solution/src/main/webapp/images/banner-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/11-ps-security-solution/src/main/webapp/images/banner-green.png -------------------------------------------------------------------------------- /pet-sitter/13-ps-jms-solution/src/main/java/com/ps/jms/Confirmation.java: -------------------------------------------------------------------------------- 1 | package com.ps.jms; 2 | 3 | import lombok.*; 4 | 5 | @Getter 6 | @Setter 7 | @AllArgsConstructor 8 | @ToString 9 | public class Confirmation { 10 | 11 | private int ackNumber; 12 | 13 | private String verificationComment; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /pet-sitter/13-ps-jms-solution/src/main/java/com/ps/jms/User.java: -------------------------------------------------------------------------------- 1 | package com.ps.jms; 2 | 3 | import lombok.*; 4 | 5 | @Getter 6 | @Setter 7 | @AllArgsConstructor 8 | @ToString 9 | public class User { 10 | 11 | private String email; 12 | private Double rating; 13 | private boolean active; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /pet-sitter/15-ps-rest-boot-sample/src/main/java/com/ps/rest/exceptions/UserException.java: -------------------------------------------------------------------------------- 1 | package com.ps.rest.exceptions; 2 | 3 | public class UserException extends Exception { 4 | 5 | public UserException(String message) { 6 | super(message); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /pet-sitter/15-ps-rest-boot-sample/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | logging: 2 | level: 3 | org.springframework: debug 4 | 5 | server: 6 | port: 8080 7 | -------------------------------------------------------------------------------- /pet-sitter/15-ps-ws-rest-practice/src/main/java/com/ps/exs/UserException.java: -------------------------------------------------------------------------------- 1 | package com.ps.exs; 2 | 3 | public class UserException extends Exception{ 4 | 5 | public UserException(String message) { 6 | super(message); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /pet-sitter/15-ps-ws-rest-practice/src/main/webapp/WEB-INF/welcome.jsp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/15-ps-ws-rest-practice/src/main/webapp/WEB-INF/welcome.jsp -------------------------------------------------------------------------------- /pet-sitter/15-ps-ws-rest-practice/src/main/webapp/images/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/15-ps-ws-rest-practice/src/main/webapp/images/banner.png -------------------------------------------------------------------------------- /pet-sitter/15-ps-ws-rest-solution/src/main/java/com/ps/exs/UserException.java: -------------------------------------------------------------------------------- 1 | package com.ps.exs; 2 | 3 | public class UserException extends Exception { 4 | 5 | public UserException(String message) { 6 | super(message); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /pet-sitter/15-ps-ws-rest-solution/src/main/webapp/WEB-INF/welcome.jsp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/15-ps-ws-rest-solution/src/main/webapp/WEB-INF/welcome.jsp -------------------------------------------------------------------------------- /pet-sitter/15-ps-ws-rest-solution/src/main/webapp/images/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/15-ps-ws-rest-solution/src/main/webapp/images/banner.png -------------------------------------------------------------------------------- /pet-sitter/16-ps-jmx-sample/src/main/java/com/ps/start/JmxCounter.java: -------------------------------------------------------------------------------- 1 | package com.ps.start; 2 | 3 | public interface JmxCounter { 4 | 5 | int add(); 6 | 7 | int getCount(); 8 | } 9 | -------------------------------------------------------------------------------- /pet-sitter/17-ps-micro-sample/src/main/resources/db/pet/db.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.hibernate.ddl-auto: validate 2 | spring.jpa.hibernate.naming_strategy: org.hibernate.cfg.ImprovedNamingStrategy 3 | spring.jpa.database: H2 4 | spring.jpa.show-sql: true -------------------------------------------------------------------------------- /pet-sitter/17-ps-micro-sample/src/main/resources/db/pet/schema.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE P_PET IF EXISTS; 2 | 3 | CREATE TABLE P_PET (ID BIGINT identity primary key, 4 | OWNER_ID BIGINT NOT NULL, 5 | NAME VARCHAR(50), 6 | AGE INTEGER, 7 | PET_TYPE VARCHAR (100) NOT NULL, 8 | RFID VARCHAR (100), 9 | UNIQUE (RFID)); 10 | -------------------------------------------------------------------------------- /pet-sitter/17-ps-micro-sample/src/main/resources/db/user/db.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.hibernate.ddl-auto: validate 2 | spring.jpa.hibernate.naming_strategy: org.hibernate.cfg.ImprovedNamingStrategy 3 | spring.jpa.database: H2 4 | spring.jpa.show-sql: true -------------------------------------------------------------------------------- /pet-sitter/17-ps-micro-sample/src/main/resources/db/user/schema.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE P_USER IF EXISTS; 2 | 3 | CREATE TABLE P_USER (ID BIGINT identity primary key, 4 | USERNAME VARCHAR(50), 5 | EMAIL VARCHAR(100), 6 | UNIQUE (USERNAME), 7 | UNIQUE (EMAIL)); 8 | -------------------------------------------------------------------------------- /pet-sitter/17-ps-micro-sample/src/main/resources/public/banner-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linnykoleh/Spring/f77540253cbb7351d64199d58f086c55c18bf869/pet-sitter/17-ps-micro-sample/src/main/resources/public/banner-green.png --------------------------------------------------------------------------------