SlideShare a Scribd company logo
Speaker: Oleg Tsal-Tsalko (@tsaltsol)
Next stop: Spring 4
About me
Oleg Tsal-Tsalko
• Senior Java Developer in EPAM Systems.
• Mostly working with enterprise business
applications.
• Member of LJC and JUG KPI communities.
What version of Spring are you using?
Bank
applications
Spring 3.1
(Previous stop)
• Environment abstraction and profiles
• Java-based application configuration
• Overhaul of the test context framework
• Cache abstraction & declarative caching
• Servlet 3.0 based web applications
• @MVC processing & flash attributes
• Support for Java SE 7
And much more…
Exposing entities via REST
XML based configuration
<beans …>
<cache:annotation-driven />
<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
…
</bean>
<context:property-placeholder location="classpath:/app-common.properties"/>
<bean id="bookStoreService" class="spring.samples.service.BookStoreService" c:bookStoreDao-
ref="bookStoreDao"/>
<bean id="bookStoreDao" class="spring.samples.dao.BookStoreDao">
<property name="dataSource" ref="dataSource"/>
</bean>
…
</beans>
ApplicationContext context = new ClassPathXmlApplicationContext("bookstore-app-context.xml");
Java based configuration
ApplicationContext context = new AnnotationConfigApplicationContext(BookStoreAppConfig.class);
Test context java based
configuration
Profiles in XML based configuration
<beans>
...
<beans profile="dev">
<jdbc:embedded-database id="dataSource">
<jdbc:script location="classpath:db/schema.sql"/>
<jdbc:script location="classpath:db/test-data.sql"/>
</jdbc:embedded-database>
</beans>
<beans profile="production">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:booklibrary"/>
<property name="username" value="admin"/>
<property name="password" value="admin"/>
</bean>
</beans>
...
</beans>
Profiles in Java based configuration
@Configuration
@Profile("dev")
public class DevProfileConfig {
@Bean(name="dataSource”)
public DataSource dataSource() {…}
}
@Configuration
@Profile("production")
public class ProductionProfileConfig {
@Bean(name="dataSource”)
public DataSource dataSource() {…}
}
@Configuration
@Import( { DevProfileConfig.class, ProductionProfileConfig.class } )
public class BookStoreAppConfig {
@Inject
private DataSource dataSource;
}
How to enable active profile?
1) Using JVM property, which is preferred way:
2) Programmatically in standalone app:
-Dspring.profiles.active=dev
3) In web.xml file:
Cache abstraction
• CacheManager and Cache abstraction in
org.springframework.cache
• Out of the box support for ConcurrentMap
and EhCache
• Ability to plug any Cache implementation (see
Spring GemFire project for GemFile adapter)
Declarative Cache support
Enable caching annotations
@Configuration
@EnableCaching
public class AppConfig {
@Bean
public CacheManager cacheManager() {…}
…
}
<beans …>
<cache:annotation-driven />
<bean id="cacheManager"
class="org.springframework.cache.support.SimpleCacheManager">
…
</bean>
…
</beans>
Servlet 3.0 support
• such as Tomcat 7 and GlassFish 3
Explicit support
for Servlet 3.0
containers
• Servlet 3.0's ServletContainerInitializer mechanism
• Spring 3.1's
AnnotationConfigWebApplicationContext
• Spring 3.1's environment abstraction
Support for XML-
free web
application setup
• such as standard Servlet 3.0 file upload behind
Spring's MultipartResolver abstraction
Exposure of native
Servlet 3.0
functionality in
Spring MVC
Spring MVC without web.xml
Spring 3.2
(Current stop)
• Gradle-based build
• Sources moved to GitHub
• Sources built against Java 7
• Async MVC processing on Servlet 3.0
• Spring MVC test support
• MVC configuration and SpEL refinements
And much more…
Async MVC processing: Callable
- thread managed by Spring MVC
- good for long running database jobs, 3rd party REST API calls, etc
Async MVC Processing: DeferredResult
- thread managed outside of Spring MVC
- JMS or AMQP message listener, another HTTP request, etc.
Async MVC Processing: WebAsyncTask
- same as Callable, with extra features
- override timeout value for async processing
- lets you specify a specific AsyncTaskExecutor
MVC Test Framework Server
MVC Test Framework Client
Spring 4
Engineering works will be held till the end of the year…
Spring 4
(Next stop)
We are expecting to see:
• Comprehensive Java 8 support
• Support for Java EE 7 APIs
• Focus on message-oriented architectures
• Annotation-driven JMS endpoint model
• Revised application event mechanism
• WebSocket support in Spring MVC
• Next-generation Groovy support
And more…
Java 8 & Java EE 7 support
Comprehensive Java 8
support
• Lambdas
• Date and Time API (JSR-310)
• Parameter name discovery
• Repeatable annotations
• Concurrency enhancement
Support for Java EE 7 APIs
• Asynchronous API for RestTemplate
• Bean Validation 1.1 (JSR-349)
• Expression Language 3.0 (JSR-341)
• JMS 2.0 (JSR-343)
• Concurrency Utilities for Java EE (JSR-
236)
• JPA 2.1 (JSR-338)
• Servlet 3.1 (JSR-340)
• JSF 2.2 (JSR-344)
Annotation driven message
endpoints
<jms:annotation-driven>
@JmsListener(destination="myQueue")
public void handleMessage(TextMessage payload);
@JmsListener(destination="myQueue", selector="...")
public void handleMessage(String payload);
@JmsListener(destination="myQueue")
public String handleMessage(String payload);
However this is not implemented yet -
https://jira.springsource.org/browse/SPR-9882
Bean Validation 1.1 support
MethodValidationInterceptor autodetects Bean Validation 1.1's ExecutableValidator API now
and uses it in favor of Hibernate Validator 4.2's native variant.
JMS 2.0 support
What was done already:
• Added "deliveryDelay" property on JmsTemplate
• Added support for "deliveryDelay" and CompletionListener to
CachedMessageProducer
• Added support for the new "create(Shared)DurableConsumer" variants in
Spring’s CachingConnectionFactory
• Added support for the new "createSession" variants with fewer
parameters in Spring’s SingleConnectionFactory
Known constraints:
• There is no special support for the simplified JMSContext API, and likely
never will be, because of different Spring mechanism of managing
connection pools and sessions
• JmsTemplate has no out-of-the-box support for send calls with an async
completion listener.
JEE7 concurrency utilities in Spring 4
This is built into ConcurrentTaskExecutor and ConcurrentTaskScheduler now,
automatically detecting the JSR-236 ExecutorService variants and adapting
to them.
Example of ManagedExecutorService usage introduced in JEE7:
JPA 2.1 support
EntityManagerFactory.createEntityManager(
SynchronizationType.SYNCHRONIZED/UNSYNCHRONIZED, Map)
@PersistenceContext(
synchronizationType=SYNCHRONIZED/UNSYNCHRONIZED)
Support for both transactional and extended EntityManagers
and for both Spring-managed resource transactions and JTA
transactions
WebSockets server side support
WebSockets server side support
WebSockets server side support
WebSockets Client side support
Programatic approach:
Configuration based approach:
JDK8 support in depth
• Implicit use of LinkedHashMap/Set instead of simple
HashMap/Set to preserve ordering diffs in JDK7 and JDK8
• Embed ASM4.1 into Spring codebase to support JDK8
bytecode changes and to keep compatibility with CGLib3.0
• Support for JDK 8 Data & Time (JSR-310) encorporated with
Spring’s Joda Time lib
• Add awaitTerminationSeconds/commonPool properties to
ForkJoinPoolFactoryBean to support JDK8 changes in it.
• Encorporate JDK8 changes in reflection API (such as
java.lang.reflect.Parameter)
Other changes…
• Replace Burlap with Hessian (lightweight binary WS protocol)
• Introduced @Conditional annotation (@Profile annotation
has been refactored)
• Updated to Gradle 1.6
How to track progress?
• Track JIRA -
https://jira.springsource.org/issues/?jql=proje
ct%20%3D%20SPR%20AND%20labels%20%3D
%20%22major-theme-4.0%22
• Check commits to codebase -
https://github.com/SpringSource/spring-
framework/commits/master
Thank you!
Oleg Tsal-Tsalko
Email: oleg.tsalko@gmail.com
Twitter: @tsaltsol
Special thanks to Josh Long (@starbuxman) for
sharing quite useful info…
Ad

More Related Content

What's hot (19)

Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
Dzmitry Naskou
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
Aaron Schram
 
Spring MVC 5 & Hibernate 5 Integration
Spring MVC 5 & Hibernate 5 IntegrationSpring MVC 5 & Hibernate 5 Integration
Spring MVC 5 & Hibernate 5 Integration
Majurageerthan Arumugathasan
 
Spring introduction
Spring introductionSpring introduction
Spring introduction
Manav Prasad
 
Spring Framework - MVC
Spring Framework - MVCSpring Framework - MVC
Spring Framework - MVC
Dzmitry Naskou
 
Spring framework in depth
Spring framework in depthSpring framework in depth
Spring framework in depth
Vinay Kumar
 
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013Spring Framework 4.0 - The Next Generation - Soft-Shake 2013
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013
Sam Brannen
 
Spring framework core
Spring framework coreSpring framework core
Spring framework core
Taemon Piya-Lumyong
 
Java spring framework
Java spring frameworkJava spring framework
Java spring framework
Rajiv Gupta
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
Raveendra R
 
Building web applications with Java & Spring
Building web applications with Java & SpringBuilding web applications with Java & Spring
Building web applications with Java & Spring
David Kiss
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
Hamid Ghorbani
 
PUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBoot
Josué Neis
 
Java EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVCJava EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVC
Josh Juneau
 
Spring Framework Rohit
Spring Framework RohitSpring Framework Rohit
Spring Framework Rohit
Rohit Prabhakar
 
Spring bean mod02
Spring bean mod02Spring bean mod02
Spring bean mod02
Guo Albert
 
Spring Framework Training Course
Spring Framework Training Course Spring Framework Training Course
Spring Framework Training Course
RMS Software Technologies
 
Jspprogramming
JspprogrammingJspprogramming
Jspprogramming
Mallikarjuna G D
 
Spring framework
Spring frameworkSpring framework
Spring framework
Aircon Chen
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
Dzmitry Naskou
 
Spring introduction
Spring introductionSpring introduction
Spring introduction
Manav Prasad
 
Spring Framework - MVC
Spring Framework - MVCSpring Framework - MVC
Spring Framework - MVC
Dzmitry Naskou
 
Spring framework in depth
Spring framework in depthSpring framework in depth
Spring framework in depth
Vinay Kumar
 
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013Spring Framework 4.0 - The Next Generation - Soft-Shake 2013
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013
Sam Brannen
 
Java spring framework
Java spring frameworkJava spring framework
Java spring framework
Rajiv Gupta
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
Raveendra R
 
Building web applications with Java & Spring
Building web applications with Java & SpringBuilding web applications with Java & Spring
Building web applications with Java & Spring
David Kiss
 
PUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBoot
Josué Neis
 
Java EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVCJava EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVC
Josh Juneau
 
Spring bean mod02
Spring bean mod02Spring bean mod02
Spring bean mod02
Guo Albert
 
Spring framework
Spring frameworkSpring framework
Spring framework
Aircon Chen
 

Viewers also liked (17)

Spring 4 - A&BP CC
Spring 4 - A&BP CCSpring 4 - A&BP CC
Spring 4 - A&BP CC
JWORKS powered by Ordina
 
Spring 3.x - Spring MVC
Spring 3.x - Spring MVCSpring 3.x - Spring MVC
Spring 3.x - Spring MVC
Guy Nir
 
the Spring 4 update
the Spring 4 updatethe Spring 4 update
the Spring 4 update
Joshua Long
 
Spring MVC Annotations
Spring MVC AnnotationsSpring MVC Annotations
Spring MVC Annotations
Jordan Silva
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
Dineesha Suraweera
 
Spring MVC Basics
Spring MVC BasicsSpring MVC Basics
Spring MVC Basics
Bozhidar Bozhanov
 
Introducción al desarrollo web moderno
Introducción al desarrollo web modernoIntroducción al desarrollo web moderno
Introducción al desarrollo web moderno
Sebastián Rocco
 
Introducción a ASP.NET MVC
Introducción a ASP.NET MVCIntroducción a ASP.NET MVC
Introducción a ASP.NET MVC
Sebastián Rocco
 
Arquitectura MVC
Arquitectura MVCArquitectura MVC
Arquitectura MVC
Andres Felipe Trujillo Madrigal
 
The Spring Framework: A brief introduction to Inversion of Control
The Spring Framework:A brief introduction toInversion of ControlThe Spring Framework:A brief introduction toInversion of Control
The Spring Framework: A brief introduction to Inversion of Control
VisualBee.com
 
Spring mvc my Faviourite Slide
Spring mvc my Faviourite SlideSpring mvc my Faviourite Slide
Spring mvc my Faviourite Slide
Daniel Adenew
 
02 java spring-hibernate-experience-questions
02 java spring-hibernate-experience-questions02 java spring-hibernate-experience-questions
02 java spring-hibernate-experience-questions
Dhiraj Champawat
 
Spring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorialsSpring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorials
Raghavan Mohan
 
Spring 3 Annotated Development
Spring 3 Annotated DevelopmentSpring 3 Annotated Development
Spring 3 Annotated Development
kensipe
 
Spring @Transactional Explained
Spring @Transactional ExplainedSpring @Transactional Explained
Spring @Transactional Explained
Smita Prasad
 
What's new in Spring 3?
What's new in Spring 3?What's new in Spring 3?
What's new in Spring 3?
Craig Walls
 
Spring MVC Architecture Tutorial
Spring MVC Architecture TutorialSpring MVC Architecture Tutorial
Spring MVC Architecture Tutorial
Java Success Point
 
Spring 3.x - Spring MVC
Spring 3.x - Spring MVCSpring 3.x - Spring MVC
Spring 3.x - Spring MVC
Guy Nir
 
the Spring 4 update
the Spring 4 updatethe Spring 4 update
the Spring 4 update
Joshua Long
 
Spring MVC Annotations
Spring MVC AnnotationsSpring MVC Annotations
Spring MVC Annotations
Jordan Silva
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
Dineesha Suraweera
 
Introducción al desarrollo web moderno
Introducción al desarrollo web modernoIntroducción al desarrollo web moderno
Introducción al desarrollo web moderno
Sebastián Rocco
 
Introducción a ASP.NET MVC
Introducción a ASP.NET MVCIntroducción a ASP.NET MVC
Introducción a ASP.NET MVC
Sebastián Rocco
 
The Spring Framework: A brief introduction to Inversion of Control
The Spring Framework:A brief introduction toInversion of ControlThe Spring Framework:A brief introduction toInversion of Control
The Spring Framework: A brief introduction to Inversion of Control
VisualBee.com
 
Spring mvc my Faviourite Slide
Spring mvc my Faviourite SlideSpring mvc my Faviourite Slide
Spring mvc my Faviourite Slide
Daniel Adenew
 
02 java spring-hibernate-experience-questions
02 java spring-hibernate-experience-questions02 java spring-hibernate-experience-questions
02 java spring-hibernate-experience-questions
Dhiraj Champawat
 
Spring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorialsSpring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorials
Raghavan Mohan
 
Spring 3 Annotated Development
Spring 3 Annotated DevelopmentSpring 3 Annotated Development
Spring 3 Annotated Development
kensipe
 
Spring @Transactional Explained
Spring @Transactional ExplainedSpring @Transactional Explained
Spring @Transactional Explained
Smita Prasad
 
What's new in Spring 3?
What's new in Spring 3?What's new in Spring 3?
What's new in Spring 3?
Craig Walls
 
Spring MVC Architecture Tutorial
Spring MVC Architecture TutorialSpring MVC Architecture Tutorial
Spring MVC Architecture Tutorial
Java Success Point
 
Ad

Similar to Next stop: Spring 4 (20)

Testing Spring MVC and REST Web Applications
Testing Spring MVC and REST Web ApplicationsTesting Spring MVC and REST Web Applications
Testing Spring MVC and REST Web Applications
Sam Brannen
 
Java EE 8 Update
Java EE 8 UpdateJava EE 8 Update
Java EE 8 Update
Ryan Cuprak
 
Jsp and Servlets
Jsp and ServletsJsp and Servlets
Jsp and Servlets
Raghu nath
 
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Sam Brannen
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework
tola99
 
Unit 38 - Spring MVC Introduction.pptx
Unit 38 - Spring MVC Introduction.pptxUnit 38 - Spring MVC Introduction.pptx
Unit 38 - Spring MVC Introduction.pptx
AbhijayKulshrestha1
 
Spring 3.1: a Walking Tour
Spring 3.1: a Walking TourSpring 3.1: a Walking Tour
Spring 3.1: a Walking Tour
Joshua Long
 
Spring Day | Spring 3.1 in a Nutshell | Sam Brannen
Spring Day | Spring 3.1 in a Nutshell | Sam BrannenSpring Day | Spring 3.1 in a Nutshell | Sam Brannen
Spring Day | Spring 3.1 in a Nutshell | Sam Brannen
JAX London
 
Spring 3.1 in a Nutshell - JAX London 2011
Spring 3.1 in a Nutshell - JAX London 2011Spring 3.1 in a Nutshell - JAX London 2011
Spring 3.1 in a Nutshell - JAX London 2011
Sam Brannen
 
Spring MVC 5 & Hibernate 5 Integration.pdf
Spring MVC 5 & Hibernate 5 Integration.pdfSpring MVC 5 & Hibernate 5 Integration.pdf
Spring MVC 5 & Hibernate 5 Integration.pdf
Patiento Del Mar
 
Integrating Servlets and JSP (The MVC Architecture)
Integrating Servlets and JSP  (The MVC Architecture)Integrating Servlets and JSP  (The MVC Architecture)
Integrating Servlets and JSP (The MVC Architecture)
Amit Ranjan
 
Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC
vipin kumar
 
18CSC311J Web Design and Development UNIT-3
18CSC311J Web Design and Development UNIT-318CSC311J Web Design and Development UNIT-3
18CSC311J Web Design and Development UNIT-3
Sivakumar M
 
Java Server Faces (JSF) - Basics
Java Server Faces (JSF) - BasicsJava Server Faces (JSF) - Basics
Java Server Faces (JSF) - Basics
BG Java EE Course
 
Java EE8 - by Kito Mann
Java EE8 - by Kito Mann Java EE8 - by Kito Mann
Java EE8 - by Kito Mann
Kile Niklawski
 
Struts 2-overview2
Struts 2-overview2Struts 2-overview2
Struts 2-overview2
divzi1913
 
Module 5.ppt.............................
Module 5.ppt.............................Module 5.ppt.............................
Module 5.ppt.............................
Betty333100
 
Struts 2 - Introduction
Struts 2 - Introduction Struts 2 - Introduction
Struts 2 - Introduction
Hitesh-Java
 
Session 41 - Struts 2 Introduction
Session 41 - Struts 2 IntroductionSession 41 - Struts 2 Introduction
Session 41 - Struts 2 Introduction
PawanMM
 
springmvc-150923124312-lva1-app6892
springmvc-150923124312-lva1-app6892springmvc-150923124312-lva1-app6892
springmvc-150923124312-lva1-app6892
Tuna Tore
 
Testing Spring MVC and REST Web Applications
Testing Spring MVC and REST Web ApplicationsTesting Spring MVC and REST Web Applications
Testing Spring MVC and REST Web Applications
Sam Brannen
 
Java EE 8 Update
Java EE 8 UpdateJava EE 8 Update
Java EE 8 Update
Ryan Cuprak
 
Jsp and Servlets
Jsp and ServletsJsp and Servlets
Jsp and Servlets
Raghu nath
 
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Sam Brannen
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework
tola99
 
Unit 38 - Spring MVC Introduction.pptx
Unit 38 - Spring MVC Introduction.pptxUnit 38 - Spring MVC Introduction.pptx
Unit 38 - Spring MVC Introduction.pptx
AbhijayKulshrestha1
 
Spring 3.1: a Walking Tour
Spring 3.1: a Walking TourSpring 3.1: a Walking Tour
Spring 3.1: a Walking Tour
Joshua Long
 
Spring Day | Spring 3.1 in a Nutshell | Sam Brannen
Spring Day | Spring 3.1 in a Nutshell | Sam BrannenSpring Day | Spring 3.1 in a Nutshell | Sam Brannen
Spring Day | Spring 3.1 in a Nutshell | Sam Brannen
JAX London
 
Spring 3.1 in a Nutshell - JAX London 2011
Spring 3.1 in a Nutshell - JAX London 2011Spring 3.1 in a Nutshell - JAX London 2011
Spring 3.1 in a Nutshell - JAX London 2011
Sam Brannen
 
Spring MVC 5 & Hibernate 5 Integration.pdf
Spring MVC 5 & Hibernate 5 Integration.pdfSpring MVC 5 & Hibernate 5 Integration.pdf
Spring MVC 5 & Hibernate 5 Integration.pdf
Patiento Del Mar
 
Integrating Servlets and JSP (The MVC Architecture)
Integrating Servlets and JSP  (The MVC Architecture)Integrating Servlets and JSP  (The MVC Architecture)
Integrating Servlets and JSP (The MVC Architecture)
Amit Ranjan
 
Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC
vipin kumar
 
18CSC311J Web Design and Development UNIT-3
18CSC311J Web Design and Development UNIT-318CSC311J Web Design and Development UNIT-3
18CSC311J Web Design and Development UNIT-3
Sivakumar M
 
Java Server Faces (JSF) - Basics
Java Server Faces (JSF) - BasicsJava Server Faces (JSF) - Basics
Java Server Faces (JSF) - Basics
BG Java EE Course
 
Java EE8 - by Kito Mann
Java EE8 - by Kito Mann Java EE8 - by Kito Mann
Java EE8 - by Kito Mann
Kile Niklawski
 
Struts 2-overview2
Struts 2-overview2Struts 2-overview2
Struts 2-overview2
divzi1913
 
Module 5.ppt.............................
Module 5.ppt.............................Module 5.ppt.............................
Module 5.ppt.............................
Betty333100
 
Struts 2 - Introduction
Struts 2 - Introduction Struts 2 - Introduction
Struts 2 - Introduction
Hitesh-Java
 
Session 41 - Struts 2 Introduction
Session 41 - Struts 2 IntroductionSession 41 - Struts 2 Introduction
Session 41 - Struts 2 Introduction
PawanMM
 
springmvc-150923124312-lva1-app6892
springmvc-150923124312-lva1-app6892springmvc-150923124312-lva1-app6892
springmvc-150923124312-lva1-app6892
Tuna Tore
 
Ad

More from Oleg Tsal-Tsalko (14)

Developer on a mission (Devoxx UA 2021)
Developer on a mission (Devoxx UA 2021)Developer on a mission (Devoxx UA 2021)
Developer on a mission (Devoxx UA 2021)
Oleg Tsal-Tsalko
 
Developer on a mission
Developer on a missionDeveloper on a mission
Developer on a mission
Oleg Tsal-Tsalko
 
From Streams to Reactive Streams
From Streams to Reactive StreamsFrom Streams to Reactive Streams
From Streams to Reactive Streams
Oleg Tsal-Tsalko
 
Java 9 Jigsaw HackDay
Java 9 Jigsaw HackDayJava 9 Jigsaw HackDay
Java 9 Jigsaw HackDay
Oleg Tsal-Tsalko
 
JUG UA AdoptJSR participation
JUG UA AdoptJSR participationJUG UA AdoptJSR participation
JUG UA AdoptJSR participation
Oleg Tsal-Tsalko
 
Develop modern apps using Spring ecosystem at time of BigData
Develop modern apps using Spring ecosystem at time of BigData Develop modern apps using Spring ecosystem at time of BigData
Develop modern apps using Spring ecosystem at time of BigData
Oleg Tsal-Tsalko
 
Java 8 features
Java 8 featuresJava 8 features
Java 8 features
Oleg Tsal-Tsalko
 
Lambdas HOL
Lambdas HOLLambdas HOL
Lambdas HOL
Oleg Tsal-Tsalko
 
Java 8 date & time javaday2014
Java 8 date & time javaday2014Java 8 date & time javaday2014
Java 8 date & time javaday2014
Oleg Tsal-Tsalko
 
Java 8 date & time
Java 8 date & timeJava 8 date & time
Java 8 date & time
Oleg Tsal-Tsalko
 
Get ready for spring 4
Get ready for spring 4Get ready for spring 4
Get ready for spring 4
Oleg Tsal-Tsalko
 
Enterprise Integration Patterns
Enterprise Integration PatternsEnterprise Integration Patterns
Enterprise Integration Patterns
Oleg Tsal-Tsalko
 
Distributed systems and scalability rules
Distributed systems and scalability rulesDistributed systems and scalability rules
Distributed systems and scalability rules
Oleg Tsal-Tsalko
 
JUG involvment in JCP and AdopJSR program
JUG involvment in JCP and AdopJSR programJUG involvment in JCP and AdopJSR program
JUG involvment in JCP and AdopJSR program
Oleg Tsal-Tsalko
 
Developer on a mission (Devoxx UA 2021)
Developer on a mission (Devoxx UA 2021)Developer on a mission (Devoxx UA 2021)
Developer on a mission (Devoxx UA 2021)
Oleg Tsal-Tsalko
 
From Streams to Reactive Streams
From Streams to Reactive StreamsFrom Streams to Reactive Streams
From Streams to Reactive Streams
Oleg Tsal-Tsalko
 
JUG UA AdoptJSR participation
JUG UA AdoptJSR participationJUG UA AdoptJSR participation
JUG UA AdoptJSR participation
Oleg Tsal-Tsalko
 
Develop modern apps using Spring ecosystem at time of BigData
Develop modern apps using Spring ecosystem at time of BigData Develop modern apps using Spring ecosystem at time of BigData
Develop modern apps using Spring ecosystem at time of BigData
Oleg Tsal-Tsalko
 
Java 8 date & time javaday2014
Java 8 date & time javaday2014Java 8 date & time javaday2014
Java 8 date & time javaday2014
Oleg Tsal-Tsalko
 
Enterprise Integration Patterns
Enterprise Integration PatternsEnterprise Integration Patterns
Enterprise Integration Patterns
Oleg Tsal-Tsalko
 
Distributed systems and scalability rules
Distributed systems and scalability rulesDistributed systems and scalability rules
Distributed systems and scalability rules
Oleg Tsal-Tsalko
 
JUG involvment in JCP and AdopJSR program
JUG involvment in JCP and AdopJSR programJUG involvment in JCP and AdopJSR program
JUG involvment in JCP and AdopJSR program
Oleg Tsal-Tsalko
 

Recently uploaded (20)

Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 

Next stop: Spring 4

  • 1. Speaker: Oleg Tsal-Tsalko (@tsaltsol) Next stop: Spring 4
  • 2. About me Oleg Tsal-Tsalko • Senior Java Developer in EPAM Systems. • Mostly working with enterprise business applications. • Member of LJC and JUG KPI communities.
  • 3. What version of Spring are you using? Bank applications
  • 4. Spring 3.1 (Previous stop) • Environment abstraction and profiles • Java-based application configuration • Overhaul of the test context framework • Cache abstraction & declarative caching • Servlet 3.0 based web applications • @MVC processing & flash attributes • Support for Java SE 7 And much more…
  • 6. XML based configuration <beans …> <cache:annotation-driven /> <bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager"> … </bean> <context:property-placeholder location="classpath:/app-common.properties"/> <bean id="bookStoreService" class="spring.samples.service.BookStoreService" c:bookStoreDao- ref="bookStoreDao"/> <bean id="bookStoreDao" class="spring.samples.dao.BookStoreDao"> <property name="dataSource" ref="dataSource"/> </bean> … </beans> ApplicationContext context = new ClassPathXmlApplicationContext("bookstore-app-context.xml");
  • 7. Java based configuration ApplicationContext context = new AnnotationConfigApplicationContext(BookStoreAppConfig.class);
  • 8. Test context java based configuration
  • 9. Profiles in XML based configuration <beans> ... <beans profile="dev"> <jdbc:embedded-database id="dataSource"> <jdbc:script location="classpath:db/schema.sql"/> <jdbc:script location="classpath:db/test-data.sql"/> </jdbc:embedded-database> </beans> <beans profile="production"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="oracle.jdbc.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@localhost:1521:booklibrary"/> <property name="username" value="admin"/> <property name="password" value="admin"/> </bean> </beans> ... </beans>
  • 10. Profiles in Java based configuration @Configuration @Profile("dev") public class DevProfileConfig { @Bean(name="dataSource”) public DataSource dataSource() {…} } @Configuration @Profile("production") public class ProductionProfileConfig { @Bean(name="dataSource”) public DataSource dataSource() {…} } @Configuration @Import( { DevProfileConfig.class, ProductionProfileConfig.class } ) public class BookStoreAppConfig { @Inject private DataSource dataSource; }
  • 11. How to enable active profile? 1) Using JVM property, which is preferred way: 2) Programmatically in standalone app: -Dspring.profiles.active=dev 3) In web.xml file:
  • 12. Cache abstraction • CacheManager and Cache abstraction in org.springframework.cache • Out of the box support for ConcurrentMap and EhCache • Ability to plug any Cache implementation (see Spring GemFire project for GemFile adapter)
  • 14. Enable caching annotations @Configuration @EnableCaching public class AppConfig { @Bean public CacheManager cacheManager() {…} … } <beans …> <cache:annotation-driven /> <bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager"> … </bean> … </beans>
  • 15. Servlet 3.0 support • such as Tomcat 7 and GlassFish 3 Explicit support for Servlet 3.0 containers • Servlet 3.0's ServletContainerInitializer mechanism • Spring 3.1's AnnotationConfigWebApplicationContext • Spring 3.1's environment abstraction Support for XML- free web application setup • such as standard Servlet 3.0 file upload behind Spring's MultipartResolver abstraction Exposure of native Servlet 3.0 functionality in Spring MVC
  • 17. Spring 3.2 (Current stop) • Gradle-based build • Sources moved to GitHub • Sources built against Java 7 • Async MVC processing on Servlet 3.0 • Spring MVC test support • MVC configuration and SpEL refinements And much more…
  • 18. Async MVC processing: Callable - thread managed by Spring MVC - good for long running database jobs, 3rd party REST API calls, etc
  • 19. Async MVC Processing: DeferredResult - thread managed outside of Spring MVC - JMS or AMQP message listener, another HTTP request, etc.
  • 20. Async MVC Processing: WebAsyncTask - same as Callable, with extra features - override timeout value for async processing - lets you specify a specific AsyncTaskExecutor
  • 23. Spring 4 Engineering works will be held till the end of the year…
  • 24. Spring 4 (Next stop) We are expecting to see: • Comprehensive Java 8 support • Support for Java EE 7 APIs • Focus on message-oriented architectures • Annotation-driven JMS endpoint model • Revised application event mechanism • WebSocket support in Spring MVC • Next-generation Groovy support And more…
  • 25. Java 8 & Java EE 7 support Comprehensive Java 8 support • Lambdas • Date and Time API (JSR-310) • Parameter name discovery • Repeatable annotations • Concurrency enhancement Support for Java EE 7 APIs • Asynchronous API for RestTemplate • Bean Validation 1.1 (JSR-349) • Expression Language 3.0 (JSR-341) • JMS 2.0 (JSR-343) • Concurrency Utilities for Java EE (JSR- 236) • JPA 2.1 (JSR-338) • Servlet 3.1 (JSR-340) • JSF 2.2 (JSR-344)
  • 26. Annotation driven message endpoints <jms:annotation-driven> @JmsListener(destination="myQueue") public void handleMessage(TextMessage payload); @JmsListener(destination="myQueue", selector="...") public void handleMessage(String payload); @JmsListener(destination="myQueue") public String handleMessage(String payload); However this is not implemented yet - https://jira.springsource.org/browse/SPR-9882
  • 27. Bean Validation 1.1 support MethodValidationInterceptor autodetects Bean Validation 1.1's ExecutableValidator API now and uses it in favor of Hibernate Validator 4.2's native variant.
  • 28. JMS 2.0 support What was done already: • Added "deliveryDelay" property on JmsTemplate • Added support for "deliveryDelay" and CompletionListener to CachedMessageProducer • Added support for the new "create(Shared)DurableConsumer" variants in Spring’s CachingConnectionFactory • Added support for the new "createSession" variants with fewer parameters in Spring’s SingleConnectionFactory Known constraints: • There is no special support for the simplified JMSContext API, and likely never will be, because of different Spring mechanism of managing connection pools and sessions • JmsTemplate has no out-of-the-box support for send calls with an async completion listener.
  • 29. JEE7 concurrency utilities in Spring 4 This is built into ConcurrentTaskExecutor and ConcurrentTaskScheduler now, automatically detecting the JSR-236 ExecutorService variants and adapting to them. Example of ManagedExecutorService usage introduced in JEE7:
  • 30. JPA 2.1 support EntityManagerFactory.createEntityManager( SynchronizationType.SYNCHRONIZED/UNSYNCHRONIZED, Map) @PersistenceContext( synchronizationType=SYNCHRONIZED/UNSYNCHRONIZED) Support for both transactional and extended EntityManagers and for both Spring-managed resource transactions and JTA transactions
  • 34. WebSockets Client side support Programatic approach: Configuration based approach:
  • 35. JDK8 support in depth • Implicit use of LinkedHashMap/Set instead of simple HashMap/Set to preserve ordering diffs in JDK7 and JDK8 • Embed ASM4.1 into Spring codebase to support JDK8 bytecode changes and to keep compatibility with CGLib3.0 • Support for JDK 8 Data & Time (JSR-310) encorporated with Spring’s Joda Time lib • Add awaitTerminationSeconds/commonPool properties to ForkJoinPoolFactoryBean to support JDK8 changes in it. • Encorporate JDK8 changes in reflection API (such as java.lang.reflect.Parameter)
  • 36. Other changes… • Replace Burlap with Hessian (lightweight binary WS protocol) • Introduced @Conditional annotation (@Profile annotation has been refactored) • Updated to Gradle 1.6
  • 37. How to track progress? • Track JIRA - https://jira.springsource.org/issues/?jql=proje ct%20%3D%20SPR%20AND%20labels%20%3D %20%22major-theme-4.0%22 • Check commits to codebase - https://github.com/SpringSource/spring- framework/commits/master
  • 38. Thank you! Oleg Tsal-Tsalko Email: [email protected] Twitter: @tsaltsol Special thanks to Josh Long (@starbuxman) for sharing quite useful info…