6. Java 8 and Beyond
Java 8
1. Lambda – JSR 335
2. New Date & Time API – JSR 310
3. Project Nashorn: JavaScript Service layer
4. Security Enhancements
Beyond Java 8
1. Modular Platform
2. Unified Type System
3. Language Interoperability
4. Memory-efficient data structure
Wednesday, October 2, 13
10. 10
CDI 1.1 : The Aquarium
1. Aligning the JSF component model/scoping to CDI
2. Decoupling declarative transactions from the EJB component model through the JTA 1.2
@Transactional CDI interceptor.
3. Modernizing the JMS 2 API utilizing CDI
4. Support for CDI in Bean Validation 1.1
5. Allow inspection of event metadata
6. Support decorators on built in beans
7. Class exclusion filters to beans.xml to prevent scanning of classes and packages
8. Easy access to non-contextual instances of beans
9. @Vetoed annotation allowing easy programmatic disablement of classes
10. @WithAnnotations as a way of improving extension loading performance
Details
Wednesday, October 2, 13
11. 11
Bean Validation 1.1(JSR 349)
1. Improved semantic readability
2. Method-level validation (validation of parameters or return values)
3. Dependency injection for Bean Validation components
4. Integration with Context and Dependency Injection (CDI)
5. Error message interpolation using EL expressions
Details
Wednesday, October 2, 13
12. 12
Interceptors(JSR318)
1. @AroundConstructor
2. @PreDestroy
3. New lifecycle callback
Client call => Interceptor instance creation and Injection of needed class (except target class) =>
InvocationContext.proceed() creates target Instance => AroundConstruct => Injection is complete
=> PostConstruct()
4. Ordering using
@Priority (lowest number are called first)
@Interceptors({InterceptorA.class, InterceptorB.class}) left to right order
Details
Wednesday, October 2, 13
13. 13
Concurrency 1.0
1. Simple and advanced design patterns
2. Default ManagedExecutorService, custom executer can be defined in web.xml
3. ManagedScheduleExecutor: Submit delayed/periodic tasks
4. ManagedThreadFactory: can use user threads in java EE
5. Dynamic proxy: can create runnable context proxies
Details
Wednesday, October 2, 13
14. 14
JPA 2.1
1. Convertors: custom conversion between DB and object types
2. Criteria update/delete : bulk update/delete through criteria API
3. Runtime creation of named queries
4. Injectable EntityListeners
5. Unsynchronized persistence contexts
6. DDL generation - automatic table, index(@Index) and schema generation.
7. Entity Graphs - allow partial or specified fetching or merging of objects.
8. JPQL/Criteria enhancements - arithmetic sub-queries, generic database functions, join ON
clause, TREAT option.
9. Stored Procedures: NamedStoredProcedure queries and parameters
Details
Wednesday, October 2, 13
15. 15
JTA 1.2 (Project Kenai)
1. @Transactional(value=Transactional.txType.Required, rollbackOn={SQLException.class,
JMSException.class}, dontRollbackOn=SQLWarning.class)
2. @TransactionScoped: lifecycle limited to transaction
3. Can make normal POJOs transactional using this annotation
Details
Wednesday, October 2, 13
19. 19
WebSocket 1.1
1. Full-duplex bi-directional communication over TCP
2. Annotated server endpoint
3. Annotated client endpoint (@javax.websocket.ClientEndPoint)
4. Encoder/Decoder classes
Details
Wednesday, October 2, 13
20. 20
EL 3.0
1.stand-alone environment support: useful for batch
2.ELProcessor, new operators,
3.lambda support
JSF 2.2
1.Faces Flow; @FlowScoped
2. Resource Library Contract
3. Pass through attributes (p:type="email" -> type="email")
4. h:inputFile for file upload (Part.class)
5. Security improvements: CSRF, type checking
Details
Wednesday, October 2, 13
21. 21
JAX-RS 2.0
1.New API to consume rest serives
2.async client and server supported(Future.class)
3.Message filter ClientRequestFilter,ClientResponseFilter
4.Entity Interceptors - intercept inbound/outbound stream
JSONP 1.0
1. json builder, JsonObject.class and JsonParser
Details
Wednesday, October 2, 13
22. 22
Batch processing
1. chunk-style or batchlets
2. Partition: split a job among multiple cores
3. Creating workflows
Details
Wednesday, October 2, 13
23. Looking forward
1. CDI beans instead of current FacesBeans
2. Migration to JSF 2.2
3. Possible use batchlet in batch processing
4. Use of transaction scope on existing pojos
5. Use of flow scope and many more...
Wednesday, October 2, 13