This 50 minutes talk covers the novelties of Java EE 7 (easier to understand if you already know Java EE 6). It comes from the talk I gave with Arun Gupta at JavaOne 2013
The document provides an overview of new concepts and features in Java EE 6, including profiles like Web Profile 1.0 that define subsets of the platform, new specifications like Managed Beans 1.0 and Interceptors 1.1, and updates to existing specifications such as EJB 3.1, JPA 2.0, Servlet 3.0, and JSF 2.0. It discusses concepts like pruning of specifications, portable JNDI names, embeddable containers, and the move of Facelets as the preferred view definition language for JSF.
This document summarizes key concepts related to dependency injection (DI) and the Java Contexts and Dependency Injection (CDI) specification, including:
1. DI allows injecting dependencies into components rather than having components directly instantiate or look up dependencies, improving loose coupling.
2. CDI builds on DI and allows injecting not just dependencies but any object into Java components using the @Inject annotation without requiring XML configuration.
3. Qualifiers like @Named allow disambiguating between multiple implementations of a service when injecting dependencies.
Fifty Features of Java EE 7 in 50 Minutesglassfish
This document outlines 50 new features of Java EE 7 presented in 50 minutes. It begins with an overview listing the Java EE 7 specifications that have new features, such as JAX-RS 2.0, JSON-P 1.0, CDI 1.1, Bean Validation 1.1, Interceptors 1.2, Concurrency Utilities 1.0, JPA 2.1, JTA 1.2, and others. It then proceeds to briefly describe 16 new features across these specifications, including default CDI enabling, method validation in Bean Validation, interceptor bindings with priority in Interceptors, managed executors and scheduled executors in Concurrency Utilities, and schema generation and stored procedures in JPA.
This document summarizes new features in JDK 7 including updates to XML stack, JDBC, RowSet, class loading, JVM performance improvements, garbage collection, I/O, graphics APIs, collections, and strict class file checking. It also previews planned features for JDK 8 such as support for modular programming, annotations, collections improvements, lambda expressions, and modularization.
Java EE 7: Whats New in the Java EE Platform @ Devoxx 2013Arun Gupta
The document discusses the new features in Java EE 7 platform. Some of the key highlights include:
- Enhancements to CDI, Bean Validation, Interceptors, Concurrency utilities.
- JPA 2.1 features like schema generation, stored procedures, converters.
- JTA 1.2 allows transaction management on CDI managed beans.
- EJB 3.2 includes features like disabling passivation for stateful sessions, asynchronous methods and non-persistent timers.
- Other specifications like JMS 2.0, JAX-RS 2.0 that are part of Java EE 7 platform.
The document discusses improvements to caching in Spring 4.1, including support for JSR-107 annotations. Some key points:
- Spring now supports JCache (JSR-107) annotations like @CacheResult, which maps to Spring's @Cacheable.
- Examples show how to rewrite Spring caching code to use JSR-107 annotations, including customizing cache names and keys.
- Support for caching exceptions, cache resolvers, and default caching configurations are described.
- Enabling JSR-107 support requires adding the JCache API and spring-context-support dependencies.
Spring Framework Petclinic sample applicationAntoine Rey
Spring Petclinic is a sample application that has been designed to show how the Spring Framework can be used to build simple but powerful database-oriented applications.
The fork named Spring Framework Petclinic maintains a version both with a plain old Spring Framework configuration and a 3-layer architecture (i.e. presentation --> service --> repository).
How to build to do app using vue composition api and vuex 4 with typescriptKaty Slemon
In this tutorial, we will build a to-do app using Vue Composition API & Vuex 4 with Typescript. We will learn and explore Composition API & Options API as well
Bring your Spring knowledge up-to-date by attending this workshop.
Instead of diving into functionality which was already there in older Spring versions, we will focus on the new Spring 4 features. We will however point out small API differences.
The structure of the Workshop will be as follows:
1. Java SE & Java EE support
2. Spring Core
3. Spring WebMVC
4. WebSockets & Messaging
5. Testing Improvements
The document discusses React, Redux, and ES6/7 features. It begins with an overview of React lifecycles and class components. It then provides a brief introduction to Redux, including core concepts like actions, reducers, and unidirectional data flow. The document also includes an example to demonstrate how React and Redux can work together, with Redux managing application state in the store and React components interacting via container components.
The document summarizes Jersey Framework, a Java REST framework. It provides an overview of Jersey's features such as supporting JAX-RS APIs, Servlet 3.0, JSON/JAXB, and integration with Spring. A code sample demonstrates a simple "hello world" RESTful service using Jersey with annotations like @Path, @GET and @Produces. The document also covers additional Jersey concepts like request/response processing, URI building, exception handling, and security.
Java EE 7 will focus on enabling Java EE applications and services to easily operate in public and private cloud environments. Key areas of focus include improved packaging for cloud deployment, tighter resource management, and potential new APIs for cloud services. Modularity enhancements based on Java SE 8 modules will allow applications to be composed of independent, versioned modules. The first Java EE 7 specifications have already been approved.
Celery is a really good framework for doing background task processing in Python (and other languages). While it is ridiculously easy to use celery, doing complex task flow has been a challenge in celery. (w.r.t task trees/graphs/dependecies etc.)
This talk introduces the audience to these challenges in celery and also explains how these can be fixed programmatically and by using latest features in Celery (3+)
The document discusses Spring and Hibernate frameworks. It provides an overview of Hibernate's object-relational mapping capabilities and how it can be used to map Java objects to database tables. It also describes Spring's inversion of control and dependency injection features. The document outlines how Spring and Hibernate can be integrated together for data access in applications. It provides examples of configuration, transaction management, and security integration between the two frameworks.
Struts 2 is an open source MVC framework based on Java EE standards. It uses a request-response pipeline where interceptors pre-process and post-process requests. The core components are interceptors, actions, and results. Interceptors provide functionality like validation while actions contain application logic and results define the response. Values are stored and accessed from a value stack using OGNL.
Java EE 7: Boosting Productivity and Embracing HTML5Arun Gupta
The document discusses the key features of Java EE 7 including improved developer productivity through more annotated POJOs, less boilerplate code, and a cohesive integrated platform. It highlights top features such as WebSocket client/server endpoints, batch applications, JSON processing, concurrency utilities, simplified JMS API, and more annotated POJOs. The document provides details on these features and code examples for concepts like WebSocket chat servers, JSON streaming API, batch job specification, and simplified JMS message sending.
Java9 Beyond Modularity - Java 9 más allá de la modularidadDavid Gómez García
These are the slides I used for my "Java 9 beyond modularity" at several different local meetups and conferences in Spain during 2017
Java 9 is about to reach its public release scheduled for September 2017. If we ask what are the new features that this new version will include, probably the first that comes to our head is modularity.
But java 9 brings with a lot of features beyound Jigsaw, JPMS or modularity. In this talk we will talk about at least 9 other new features that include this new version of Java that are interesting and maybe will end up being more used than the modularity itself for those who embrace the new version.
Those are changes that come to complement and improve even more the set of new tools (like Streams, Optionals, etc...) that Java 8 brought to us.
We'll take a look at small changes in language syntax (such as new ways of using try-with-resources), changes in Collections APIs and Streams, new tools like VarHandles, new APIs such as the Flow API, and As we allow the inclusion of reactive programming with Java.
Do you want to see in Java 9 beyond modularity? Do you want to have a more complete view of what you can provide? Let's take a look toghether!
Java EE 6 CDI Integrates with Spring & JSFJiayun Zhou
This document discusses integrating Java Contexts and Dependency Injection (CDI) with other Java technologies like Spring and JavaServer Faces (JSF). It covers CDI concepts like the Inversion of Control pattern and dependency injection. It also provides examples of using CDI with Spring, integrating CDI and JSF, and using CDI interceptors. The document recommends some libraries for CDI integration and provides sample code links.
This document discusses dependency injection in Spring Framework. It covers setter injection, constructor injection, and method injection using both XML and annotation-based configurations. Setter injection allows injecting dependencies into properties through setter methods. Constructor injection injects dependencies through a class's constructor. Method injection replaces or augments existing methods at runtime. Both setter and constructor injection can be used with XML's <property> and <constructor-arg> tags or with annotations like @Autowired on setter methods or constructors. Method injection replaces or augments methods using the <replaced-method> or <lookup-method> tags in XML.
This document discusses several popular Java libraries including:
- Dependency injection frameworks like Guice and Spring
- Logging with SLF4J
- Collections and utilities with Guava
- HTTP clients like OkHttp
- Reactive programming with RxJava
- REST with Retrofit
- Asynchronous programming with JDeferred
- Event handling with MBassador
- Code generation with Lombok and ByteBuddy
- Testing utilities like JUnitParams, Mockito, Jukito, and Spock
- Waiting assertions with Awaitility and REST testing with Rest-assured.
This document provides an overview of Spring Boot and some of its key features. It discusses the origins and modules of Spring, how Spring Boot simplifies configuration and dependency management. It then covers examples of building Spring Boot applications that connect to a SQL database, use RabbitMQ for messaging, and schedule and run asynchronous tasks.
S314168 - What's New in Enterprise Java Bean Technology @ JavaOne Brazil 2010Arun Gupta
The document outlines new features in Enterprise JavaBean (EJB) 3.1 technology, including ease of use improvements like optional local business interfaces and simplified packaging. It also describes new functionality like singleton session beans, startup and shutdown callbacks, automatic timer creation, and asynchronous session bean invocations. The changes aim to continue focusing on ease of use while adding useful new capabilities to the EJB specification.
The document discusses servlet session management. It covers servlet filters which can intercept and modify requests and responses. It also discusses the servlet context and configuration parameters, as well as the session object and APIs. Session attributes allow data to be stored and shared across requests from the same client, while context attributes are shared across the entire application. Session tracking allows associating requests from the same client, typically using cookies or URL rewriting to pass the session identifier.
Slides for a talk at the Seattle Java User Group about building a workflow management application for a biomedical lab on top of the OSGi module system and the Eclipse Rich Client Platform.
This document provides an overview of JSP/Servlet architecture. It describes how a web request is handled from the browser to the web server and JSP/Servlet container. It then discusses key components like servlets, JSPs, the request and response objects. It provides examples of basic servlet and JSP code to output text and access request parameters. It also covers servlet configuration, mappings, and the use of forwards and redirects.
50 features of Java EE 7 in 50 minutes at JavaZone 2014Arun Gupta
The document outlines 50 new features in Java EE 7 across various Java EE specifications like CDI, JPA, EJB, JMS and Servlet in 50 minutes. Some key features include default enabling of CDI, method validation in Bean Validation, managed executors for concurrency utilities, disabling passivation of stateful sessions in EJB, simplified JMS API with JMSContext and support for non-blocking I/O in Servlet.
50 features of Java EE 7 in 50 minutes at Geecon 2014Arun Gupta
This document provides a summary of 50 features of Java EE 7 across various Java EE technologies like CDI, EJB, JPA, JTA, JMS and more. Each feature is summarized in 1-2 lines with the specification and a brief description. The document is aimed at covering 50 features of Java EE 7 in 50 minutes for developers to get up to speed with the latest additions and enhancements in various Java EE technologies.
Bring your Spring knowledge up-to-date by attending this workshop.
Instead of diving into functionality which was already there in older Spring versions, we will focus on the new Spring 4 features. We will however point out small API differences.
The structure of the Workshop will be as follows:
1. Java SE & Java EE support
2. Spring Core
3. Spring WebMVC
4. WebSockets & Messaging
5. Testing Improvements
The document discusses React, Redux, and ES6/7 features. It begins with an overview of React lifecycles and class components. It then provides a brief introduction to Redux, including core concepts like actions, reducers, and unidirectional data flow. The document also includes an example to demonstrate how React and Redux can work together, with Redux managing application state in the store and React components interacting via container components.
The document summarizes Jersey Framework, a Java REST framework. It provides an overview of Jersey's features such as supporting JAX-RS APIs, Servlet 3.0, JSON/JAXB, and integration with Spring. A code sample demonstrates a simple "hello world" RESTful service using Jersey with annotations like @Path, @GET and @Produces. The document also covers additional Jersey concepts like request/response processing, URI building, exception handling, and security.
Java EE 7 will focus on enabling Java EE applications and services to easily operate in public and private cloud environments. Key areas of focus include improved packaging for cloud deployment, tighter resource management, and potential new APIs for cloud services. Modularity enhancements based on Java SE 8 modules will allow applications to be composed of independent, versioned modules. The first Java EE 7 specifications have already been approved.
Celery is a really good framework for doing background task processing in Python (and other languages). While it is ridiculously easy to use celery, doing complex task flow has been a challenge in celery. (w.r.t task trees/graphs/dependecies etc.)
This talk introduces the audience to these challenges in celery and also explains how these can be fixed programmatically and by using latest features in Celery (3+)
The document discusses Spring and Hibernate frameworks. It provides an overview of Hibernate's object-relational mapping capabilities and how it can be used to map Java objects to database tables. It also describes Spring's inversion of control and dependency injection features. The document outlines how Spring and Hibernate can be integrated together for data access in applications. It provides examples of configuration, transaction management, and security integration between the two frameworks.
Struts 2 is an open source MVC framework based on Java EE standards. It uses a request-response pipeline where interceptors pre-process and post-process requests. The core components are interceptors, actions, and results. Interceptors provide functionality like validation while actions contain application logic and results define the response. Values are stored and accessed from a value stack using OGNL.
Java EE 7: Boosting Productivity and Embracing HTML5Arun Gupta
The document discusses the key features of Java EE 7 including improved developer productivity through more annotated POJOs, less boilerplate code, and a cohesive integrated platform. It highlights top features such as WebSocket client/server endpoints, batch applications, JSON processing, concurrency utilities, simplified JMS API, and more annotated POJOs. The document provides details on these features and code examples for concepts like WebSocket chat servers, JSON streaming API, batch job specification, and simplified JMS message sending.
Java9 Beyond Modularity - Java 9 más allá de la modularidadDavid Gómez García
These are the slides I used for my "Java 9 beyond modularity" at several different local meetups and conferences in Spain during 2017
Java 9 is about to reach its public release scheduled for September 2017. If we ask what are the new features that this new version will include, probably the first that comes to our head is modularity.
But java 9 brings with a lot of features beyound Jigsaw, JPMS or modularity. In this talk we will talk about at least 9 other new features that include this new version of Java that are interesting and maybe will end up being more used than the modularity itself for those who embrace the new version.
Those are changes that come to complement and improve even more the set of new tools (like Streams, Optionals, etc...) that Java 8 brought to us.
We'll take a look at small changes in language syntax (such as new ways of using try-with-resources), changes in Collections APIs and Streams, new tools like VarHandles, new APIs such as the Flow API, and As we allow the inclusion of reactive programming with Java.
Do you want to see in Java 9 beyond modularity? Do you want to have a more complete view of what you can provide? Let's take a look toghether!
Java EE 6 CDI Integrates with Spring & JSFJiayun Zhou
This document discusses integrating Java Contexts and Dependency Injection (CDI) with other Java technologies like Spring and JavaServer Faces (JSF). It covers CDI concepts like the Inversion of Control pattern and dependency injection. It also provides examples of using CDI with Spring, integrating CDI and JSF, and using CDI interceptors. The document recommends some libraries for CDI integration and provides sample code links.
This document discusses dependency injection in Spring Framework. It covers setter injection, constructor injection, and method injection using both XML and annotation-based configurations. Setter injection allows injecting dependencies into properties through setter methods. Constructor injection injects dependencies through a class's constructor. Method injection replaces or augments existing methods at runtime. Both setter and constructor injection can be used with XML's <property> and <constructor-arg> tags or with annotations like @Autowired on setter methods or constructors. Method injection replaces or augments methods using the <replaced-method> or <lookup-method> tags in XML.
This document discusses several popular Java libraries including:
- Dependency injection frameworks like Guice and Spring
- Logging with SLF4J
- Collections and utilities with Guava
- HTTP clients like OkHttp
- Reactive programming with RxJava
- REST with Retrofit
- Asynchronous programming with JDeferred
- Event handling with MBassador
- Code generation with Lombok and ByteBuddy
- Testing utilities like JUnitParams, Mockito, Jukito, and Spock
- Waiting assertions with Awaitility and REST testing with Rest-assured.
This document provides an overview of Spring Boot and some of its key features. It discusses the origins and modules of Spring, how Spring Boot simplifies configuration and dependency management. It then covers examples of building Spring Boot applications that connect to a SQL database, use RabbitMQ for messaging, and schedule and run asynchronous tasks.
S314168 - What's New in Enterprise Java Bean Technology @ JavaOne Brazil 2010Arun Gupta
The document outlines new features in Enterprise JavaBean (EJB) 3.1 technology, including ease of use improvements like optional local business interfaces and simplified packaging. It also describes new functionality like singleton session beans, startup and shutdown callbacks, automatic timer creation, and asynchronous session bean invocations. The changes aim to continue focusing on ease of use while adding useful new capabilities to the EJB specification.
The document discusses servlet session management. It covers servlet filters which can intercept and modify requests and responses. It also discusses the servlet context and configuration parameters, as well as the session object and APIs. Session attributes allow data to be stored and shared across requests from the same client, while context attributes are shared across the entire application. Session tracking allows associating requests from the same client, typically using cookies or URL rewriting to pass the session identifier.
Slides for a talk at the Seattle Java User Group about building a workflow management application for a biomedical lab on top of the OSGi module system and the Eclipse Rich Client Platform.
This document provides an overview of JSP/Servlet architecture. It describes how a web request is handled from the browser to the web server and JSP/Servlet container. It then discusses key components like servlets, JSPs, the request and response objects. It provides examples of basic servlet and JSP code to output text and access request parameters. It also covers servlet configuration, mappings, and the use of forwards and redirects.
50 features of Java EE 7 in 50 minutes at JavaZone 2014Arun Gupta
The document outlines 50 new features in Java EE 7 across various Java EE specifications like CDI, JPA, EJB, JMS and Servlet in 50 minutes. Some key features include default enabling of CDI, method validation in Bean Validation, managed executors for concurrency utilities, disabling passivation of stateful sessions in EJB, simplified JMS API with JMSContext and support for non-blocking I/O in Servlet.
50 features of Java EE 7 in 50 minutes at Geecon 2014Arun Gupta
This document provides a summary of 50 features of Java EE 7 across various Java EE technologies like CDI, EJB, JPA, JTA, JMS and more. Each feature is summarized in 1-2 lines with the specification and a brief description. The document is aimed at covering 50 features of Java EE 7 in 50 minutes for developers to get up to speed with the latest additions and enhancements in various Java EE technologies.
50 New Features of Java EE 7 in 50 minutesArun Gupta
The document discusses 50 new features in Java EE 7 presented over 50 minutes. It provides summaries of features including finer control over CDI scanning, interceptor bindings for constructors and methods, managed concurrency utilities like executors and thread factories, schema generation and indexes for JPA, and a simplified JMS API.
Rapid development tools for java ee 8 [tut2998]Payara
Rapid Development Tools for Java EE 8 was a talk given at JavaOne 2017 about new features in Java EE 8 and tools to help with rapid development of Java EE 8 applications. It covered the Reactive Client API and JSON-B support in JAX-RS 2.1, asynchronous events and other new features in CDI 2.0 and Bean Validation 2.0, and how tools like Jeddict can generate Java EE 8 applications from models.
Rapid Development Tools for Java EE 8 [TUT2998]Gaurav Gupta
This document provides a summary of the presentation "Rapid Development Tools for Java EE 8" given by Mert Çalışkan and Gaurav Gupta at JavaOne 2017. The presentation provides an overview of the new features in Java EE 8, including JAX-RS 2.1, CDI 2.0, Bean Validation 2.0, JSON-B, JPA 2.2, and the Java Security API 1.0. It then demonstrates tools for developing Java EE 8 applications more productively, such as the Jeddict modeler, Dynamic Code Evolution Virtual Machine, Payara tools in NetBeans, and Maven plugins. The presentation concludes with a question and answer section.
Fifty New Features of Java EE 7 in Fifty MinutesArun Gupta
This document provides a summary of 50 new features in Java EE 7 across various Java EE specifications like CDI, JPA, EJB, JMS and more. It lists each new feature with a short description. The features include default enabling of CDI, method validation in Bean Validation, interceptors for constructors, prioritizing interceptor bindings, managed executors and scheduled executors for concurrency, schema generation in JPA, transaction management annotations in EJB and JTA, and a simplified JMSContext API.
50 New Features of Java EE 7 in 50 minutes @ Devoxx France 2014Arun Gupta
This document discusses 50 new features in Java EE 7 across various specifications. It begins with features in Contexts and Dependency Injection (CDI) 1.1, including default enabling of CDI scanning, and the new @Vetoed annotation. It then covers features in other specifications such as Bean Validation 1.1, interceptors 1.2, concurrency utilities 1.0, JPA 2.1, JTA 1.2, EJB 3.2, JMS 2.0 and more. For each feature, it provides a brief description and example code.
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)Red Hat Developers
JBoss EAP7 brings support for the most recent industry standards and technologies, including Java EE7, the latest edition of the premier enterprise development standard. This session will provide an overview of the major additions to Java EE7, and how your team can use these capabilities on the advanced EAP7 runtime to produce better applications with less code.
Carol McDonald discusses the key themes and technologies in Java EE 6, which was released on December 10, 2009. The major themes of Java EE 6 are right-sizing with modular profiles, extensibility through pluggability, and ease of development through features like dependency injection and managed beans. New and updated specifications in Java EE 6 include CDI 1.0, EJB 3.1, JPA 2.0, JSF 2.0, JAX-RS 1.1, and Servlet 3.0.
Java 7 was released in July 2011 with improvements to performance, concurrency, and memory management. Plans for Java 8 include modularity, lambda expressions, and date/time APIs. The Java Community Process is also being improved to increase transparency, participation, and agility through JSR 348. Overall, the Java ecosystem continues to grow with new languages on the JVM and an active community.
The document summarizes 50 new features of Java EE 7 presented by Arun Gupta in 50 minutes. It provides short descriptions and code examples for features in specifications like CDI, Bean Validation, Interceptors, Concurrency Utilities, JPA, JTA, EJB, JMS and others. The features include things like default enabling of CDI, method validation in Bean Validation, interceptors for constructors, managed executors for concurrency, schema generation in JPA, transaction scoping in CDI and JTA, disabling passivation of stateful sessions in EJB, and a simplified JMSContext API.
The optimizer is the brain of any DBMS system, This presentation helps to understand MongoDB explain plan metrics and How MongoDB Optimiser scores for each query plan and choosing the proper query plan for the execution.
This document discusses using Celery and RabbitMQ to implement asynchronous task queues. It provides an overview of Celery and RabbitMQ, how to set them up, configure tasks, schedule and retry tasks, and examples of using task queues for importing large files and sending complex emails. The key benefits highlighted are decoupling tasks from the main system, scalability, and ability to distribute tasks across multiple workers.
The document discusses code for a Java program using NetBeans and MySQL. It includes code to connect to a MySQL database, display data in a table, and buttons to add and update records. The author needs help adding code for a button to delete records by contract number, which is an auto-incrementing field in MySQL.
Do you still write code on Java 8 or probably older!? If “Yes” then you definitely have to visit this talk. We will explore the most popular features and use cases from the latest Java Version and will discover how complicated migration is.
The Java EE 7 Platform: Productivity & HTML5 at JavaOne Latin America 2012Arun Gupta
The document discusses new features and improvements in Java EE 7 including higher productivity through less boilerplate code and richer functionality, support for HTML5 technologies like WebSockets and JSON, and simplified APIs for RESTful web services, Java Message Service, and JSON processing. Key areas of focus for Java EE 7 are improving developer productivity and adding support for HTML5.
Antonio is a Java developer and knows nothing about user interfaces. He uses his Mac to develop Java EE micro-services, runs them with WildFly Swarm, packages in the Docker and exposes beautiful REST APIs.
Sébastien is a TypeScript developer and knows nothing about Java. Employed at Microsoft, he uses his PC to develop beautiful user interfaces with TypeScript and Angular to invoke the services REST exposed by Antonio.
This university is intended for Java and Angular developers who want to learn how to use a Angular / TypeScript front-end with a Java / MicroProfile back-end. It is composed of two parts:
1) More theoretical: presentation of the Enterprise Micro Profile, WildFly Swarm, the TypeScript syntax and Angular.
2) More practical: development of an Angular application using several REST back-ends (JAX-RS, JSon: API, Swagger, Cors, Hateoas, ETag, JWT, Traeffik).
Are Websphere or Weblogic appropriate for your project? Too big" ? Do Jetty or Tomcat actually meet your needs? Too "small"?
Neither too big nor too small. What you need is "just enough app server" to support only the subset of APIs and services your application needs.
The document discusses various aspects of Contexts and Dependency Injection (CDI) in Java EE, including how to use @Inject for dependency injection, qualifiers to select specific implementations, producers to provide dependencies, and events to communicate between components in a loosely coupled way. It also demonstrates CDI concepts like qualifiers, producers, scopes, and alternatives through examples.
As you know, Java EE is old-fashioned, heavyweight, cumbersome, and made mostly of boilerplate code. Who would develop a modern Web application with such a technological stack? Who would start an heavy application server, deploy some EJBs, and wait ages for integration tests to run—only to end up with an ugly Web page? You?
After a few slides and with the help of JBoss Forge I write a Java EE 7 app with an HTML5 front end with responsive design, sexy graphical components, manageable REST interfaces, and transactional databases.
This document discusses dependency injection in CDI. It begins with a brief history of CDI and then covers the different ways that dependencies can be injected including via attributes, constructors, setters, qualifiers and programmatic lookup. It also discusses how to inject producers like entity managers and how CDI enables loose coupling and strong typing. The document concludes by emphasizing that CDI is capable of much more than just dependency injection.
This slides give you an overview of the technical challgens that Java EE application servers have faced to reinvent themselves. From monolithic to jigsaw puzzles, app servers are not the burden developpers use to use anymore
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungenpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-und-verwaltung-von-multiuser-umgebungen/
HCL Nomad Web wird als die nächste Generation des HCL Notes-Clients gefeiert und bietet zahlreiche Vorteile, wie die Beseitigung des Bedarfs an Paketierung, Verteilung und Installation. Nomad Web-Client-Updates werden “automatisch” im Hintergrund installiert, was den administrativen Aufwand im Vergleich zu traditionellen HCL Notes-Clients erheblich reduziert. Allerdings stellt die Fehlerbehebung in Nomad Web im Vergleich zum Notes-Client einzigartige Herausforderungen dar.
Begleiten Sie Christoph und Marc, während sie demonstrieren, wie der Fehlerbehebungsprozess in HCL Nomad Web vereinfacht werden kann, um eine reibungslose und effiziente Benutzererfahrung zu gewährleisten.
In diesem Webinar werden wir effektive Strategien zur Diagnose und Lösung häufiger Probleme in HCL Nomad Web untersuchen, einschließlich
- Zugriff auf die Konsole
- Auffinden und Interpretieren von Protokolldateien
- Zugriff auf den Datenordner im Cache des Browsers (unter Verwendung von OPFS)
- Verständnis der Unterschiede zwischen Einzel- und Mehrbenutzerszenarien
- Nutzung der Client Clocking-Funktion
Role of Data Annotation Services in AI-Powered ManufacturingAndrew Leo
From predictive maintenance to robotic automation, AI is driving the future of manufacturing. But without high-quality annotated data, even the smartest models fall short.
Discover how data annotation services are powering accuracy, safety, and efficiency in AI-driven manufacturing systems.
Precision in data labeling = Precision on the production floor.
How Can I use the AI Hype in my Business Context?Daniel Lehner
𝙄𝙨 𝘼𝙄 𝙟𝙪𝙨𝙩 𝙝𝙮𝙥𝙚? 𝙊𝙧 𝙞𝙨 𝙞𝙩 𝙩𝙝𝙚 𝙜𝙖𝙢𝙚 𝙘𝙝𝙖𝙣𝙜𝙚𝙧 𝙮𝙤𝙪𝙧 𝙗𝙪𝙨𝙞𝙣𝙚𝙨𝙨 𝙣𝙚𝙚𝙙𝙨?
Everyone’s talking about AI but is anyone really using it to create real value?
Most companies want to leverage AI. Few know 𝗵𝗼𝘄.
✅ What exactly should you ask to find real AI opportunities?
✅ Which AI techniques actually fit your business?
✅ Is your data even ready for AI?
If you’re not sure, you’re not alone. This is a condensed version of the slides I presented at a Linkedin webinar for Tecnovy on 28.04.2025.
Artificial Intelligence is providing benefits in many areas of work within the heritage sector, from image analysis, to ideas generation, and new research tools. However, it is more critical than ever for people, with analogue intelligence, to ensure the integrity and ethical use of AI. Including real people can improve the use of AI by identifying potential biases, cross-checking results, refining workflows, and providing contextual relevance to AI-driven results.
News about the impact of AI often paints a rosy picture. In practice, there are many potential pitfalls. This presentation discusses these issues and looks at the role of analogue intelligence and analogue interfaces in providing the best results to our audiences. How do we deal with factually incorrect results? How do we get content generated that better reflects the diversity of our communities? What roles are there for physical, in-person experiences in the digital world?
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Aqusag Technologies
In late April 2025, a significant portion of Europe, particularly Spain, Portugal, and parts of southern France, experienced widespread, rolling power outages that continue to affect millions of residents, businesses, and infrastructure systems.
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc
Most consumers believe they’re making informed decisions about their personal data—adjusting privacy settings, blocking trackers, and opting out where they can. However, our new research reveals that while awareness is high, taking meaningful action is still lacking. On the corporate side, many organizations report strong policies for managing third-party data and consumer consent yet fall short when it comes to consistency, accountability and transparency.
This session will explore the research findings from TrustArc’s Privacy Pulse Survey, examining consumer attitudes toward personal data collection and practical suggestions for corporate practices around purchasing third-party data.
Attendees will learn:
- Consumer awareness around data brokers and what consumers are doing to limit data collection
- How businesses assess third-party vendors and their consent management operations
- Where business preparedness needs improvement
- What these trends mean for the future of privacy governance and public trust
This discussion is essential for privacy, risk, and compliance professionals who want to ground their strategies in current data and prepare for what’s next in the privacy landscape.
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul
Artificial intelligence is changing how businesses operate. Companies are using AI agents to automate tasks, reduce time spent on repetitive work, and focus more on high-value activities. Noah Loul, an AI strategist and entrepreneur, has helped dozens of companies streamline their operations using smart automation. He believes AI agents aren't just tools—they're workers that take on repeatable tasks so your human team can focus on what matters. If you want to reduce time waste and increase output, AI agents are the next move.
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, presentation slides, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxshyamraj55
We’re bringing the TDX energy to our community with 2 power-packed sessions:
🛠️ Workshop: MuleSoft for Agentforce
Explore the new version of our hands-on workshop featuring the latest Topic Center and API Catalog updates.
📄 Talk: Power Up Document Processing
Dive into smart automation with MuleSoft IDP, NLP, and Einstein AI for intelligent document workflows.
Quantum Computing Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
Procurement Insights Cost To Value Guide.pptxJon Hansen
Procurement Insights integrated Historic Procurement Industry Archives, serves as a powerful complement — not a competitor — to other procurement industry firms. It fills critical gaps in depth, agility, and contextual insight that most traditional analyst and association models overlook.
Learn more about this value- driven proprietary service offering here.
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxJustin Reock
Building 10x Organizations with Modern Productivity Metrics
10x developers may be a myth, but 10x organizations are very real, as proven by the influential study performed in the 1980s, ‘The Coding War Games.’
Right now, here in early 2025, we seem to be experiencing YAPP (Yet Another Productivity Philosophy), and that philosophy is converging on developer experience. It seems that with every new method we invent for the delivery of products, whether physical or virtual, we reinvent productivity philosophies to go alongside them.
But which of these approaches actually work? DORA? SPACE? DevEx? What should we invest in and create urgency behind today, so that we don’t find ourselves having the same discussion again in a decade?
Generative Artificial Intelligence (GenAI) in BusinessDr. Tathagat Varma
My talk for the Indian School of Business (ISB) Emerging Leaders Program Cohort 9. In this talk, I discussed key issues around adoption of GenAI in business - benefits, opportunities and limitations. I also discussed how my research on Theory of Cognitive Chasms helps address some of these issues
6. #01: Default enabling
Finer scanning control
●
Possible values: all, annotated, none
●
all behaves like in Java EE 6 (default if not set)
<beans ... version="1.1" bean-discovery-mode="all">
<alternatives>
<class>org.agoncal.book.MockGenerator</class>
</alternatives>
</beans>
@agoncal
6
7. #02: @Vetoed
Veto the processing of the class or package
@Vetoed
public class NonProcessedBean {
...
}
package-info.java
@Vetoed
package com.non.processed.package;
@agoncal
7
9. #03: Constructor & method validation
Pre/post conditions on method and constructors
public class CardValidator {
public CardValidator(@NotNull Algorithm algo) {
this.algo = algo;
}
@AssertTrue
public Boolean validate(@NotNull CreditCard cc) {
return algorithm.validate(cc.getNumber());
}
}
@agoncal
9
10. #04: CDI in validators
Injection in validators is now possible
public class ZipCodeValidator implements
ConstraintValidator<ZipCode, String> {
@Inject @USA
ZipCodeChecker checker = new ZipCodeChecker();
public boolean isValid(String value,
ConstraintValidatorContext context) {
return checker.isZipCodeValid(value);
}
}
@agoncal
10
15. #07: ManagedExecutor
Use threads in Java EE applications
●
Java EE applications cannot use:
●
●
java.lang.Thread
●
●
java.util.concurrent.ThreadPoolExecutor
java.util.Timer
In managed environment, use:
●
javax.enterprise.concurrent.ManagedExecutorService
●
implements java.util.concurrent.ExecutorService
@agoncal
15
16. #07: ManagedExecutor
Use threads in Java EE applications
public class MyTask implements Runnable {
public void run() {
...
}
}
@Resource
ManagedExecutorService executor;
executor.execute(new MyTask());
@agoncal
16
21. #11: @Index
Defines additional indexes in schema generation
@Entity
@Table(indexes = {
@Index(columnList = "ISBN"),
@Index(columnList = "NBOFPAGE")
})
public class Book {
@Id @GeneratedValue
private Long id;
private String isbn;
private Integer nbOfPage;
...
}
@agoncal
21
22. #12: Stored Procedure
Declaring and calling a stored procedure
@Entity
@NamedStoredProcedureQuery(name = "archiveOldBooks",
procedureName = "sp_archive_books",
parameters = {
@StoredProcedureParameter(name = ”date",
mode = IN, type = Date.class),
@StoredProcedureParameter(name = "warehouse",
mode = IN, type = String.class)
})
public class Book {...}
@agoncal
22
23. #13: CDI in listeners
Injection is now possible into event listeners
public class AgeCalculationListener {
@Inject
private AgeCalculator ageCalculator;
@PostLoad
@PostPersist
@PostUpdate
public void calculateAge(Customer c) {
customer.setAge(ageCalculator.calc(c.getBirth));
}
}
@agoncal
23
24. #14: Converters
Classes that convert between database and attributes
@Converter
public class CreditCardEnumConverter implements
AttributeConverter<CreditCard, String> {
public String convertToDatabaseColumn(CreditCard attr) {...}
public CreditCard convertToEntityAttribute(String data){...}
}
@Entity
public class Order {
@Convert(converter = CreditCardEnumConverter.class)
private CreditCard creditCard;
}
@agoncal
24
29. #17: Disable passivation of stateful
In some cases increases performance
@Stateful(passivationCapable = false)
public class ShoppingCart {
...
}
@agoncal
29
30. #18: Async + Non-persistent timer
EJB Lite includes asynchronous calls and Timer Service
@Stateless
public class OrderEJB {
@Asynchronous
public void sendEmail (Order order) {
// Very Long task
}
@Schedule(hour="2", persistent=false)
public void createDailyReport() {
// ...
}
}
@agoncal
30
32. #19: JMSContext API
New simplified API to produce and consume messages
JMSContext ctx = connectionFactory.createContext()
ctx.createProducer().send(queue, "Text msg sent");
ctx.createConsumer(queue).receiveBody(String.class);
ctx.createProducer()
.setPriority(2)
.setTimeToLive(1000)
.setDeliveryMode(DeliveryMode.NON_PERSISTENT)
.send(queue, message);
@agoncal
32
33. #20: Runtime Exceptions
A set of new unchecked exceptions have been created
RuntimeException
JMSRuntimeException
IllegalStateRuntimeException
InvalidClientIDRuntimeException
InvalidDestinationRuntimeException
InvalidSelectorRuntimeException
JMSSecurityRuntimeException
MessageFormatRuntimeException
MessageNotWriteableRuntimeException
ResourceAllocationRuntimeException
TransactionInProgressRuntimeException
TransactionRolledBackRuntimeException
@agoncal
33
35. #22: JMSConnectionFactoryDefinition
A ConnectionFactory can be defined using an annotation
@Stateless
@JMSConnectionFactoryDefinition(
name = "java:app/jms/MyConnectionFactory",
interfaceName = "javax.jms.TopicConnectionFactory")
public class ExpensiveOrderEJB {
...
}
@agoncal
35
36. #23: JMSDestinationDefinition
A JMS queue or topic can be defined using an annotation
@Stateless
@JMSConnectionFactoryDefinition(
name = "java:app/jms/MyConnectionFactory",
interfaceName = "javax.jms.TopicConnectionFactory")
@JMSDestinationDefinition(
name = "java:app/jms/MyTopic",
interfaceName = "javax.jms.Topic")
public class ExpensiveOrderEJB {
...
}
@agoncal
36
44. #26: Protocol Upgrade
New interfaces and methods on existing APIs
●
Add two new interfaces
●
●
●
javax.servlet.http.HttpUpgradeHandler
javax.servlet.http.WebConnection
Add a method to HttpServletRequest
●
upgrade(Class<T> handlerClass)
@agoncal
44
45. #26: Protocol Upgrade
Example
@WebServlet(“/upgrade”)
public class UpgradeServlet extends HttpServlet
protected void doGet(HttpServletRequest req,
HttpServletResponse res) ... {
...
if (decideToUpgrade) {
MyHttpUpgradeHandler handler =
request.upgrade(MyHttpUpgradeHandler.class);
}
}
}
@agoncal
45
47. #27: Annotated server endpoint
Bi-directional communication over single TCP connection
@javax.websocket.server.ServerEndpoint("/chat")
public class ChatServer {
@OnMessage
public String chat(String name, Session session) {
for (Session peer : client.getOpenSessions()) {
peer.getBasicRemote().sendObject(message);
}
}
}
@agoncal
47
48. #28: Annotated client endpoint
Bi-directional communication over single TCP connection
@javax.websocket.ClientEndpoint
public class ChatClient {
@OnOpen
public void open(Session session) {
...
}
}
@agoncal
48
49. #29: Lifecycle callbacks
Allows you to act on lifecycle events
@OnMessage
public String chat(String name, Session session) {..}
@OnOpen
public void open(Session s) {...}
@OnClose
public void close(CloseReason c) {...}
@OnError
public void error(Throwable t) {...}
@agoncal
49
51. #30: ELProcessor
Use EL in a stand-alone environment
ELProcessor el = new ELProcessor();
assert ((Integer)el.eval("a = [1, 2]; a[1]")) == 2;
el.defineBean("employee", new Employee("John"));
assert (el.eval("employee.name")).equals("John");
@agoncal
51
52. #31: Lambda expression
Use lambdas before Java SE 8
ELProcessor el = new ELProcessor();
assert ((Integer)(el.eval
("((x,y) -> x+y)(4, 5)"))) == 9;
@agoncal
52
59. #35: File upload
Use the Servlet 3.0 Part
<h:form enctype="multipart/form-data">
<h:inputFile value="#{fileUploadBean.file}"/>
<h:commandButton value="Upload"/>
</h:form>
@Named
@RequestScoped
public class FileUploadBean {
private Part file;
...
}
@agoncal
59
61. #36: Client API
New API to consume rest services
Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://www.foo.com/book");
Invocation invocation = target.request(TEXT_PLAIN).get();
Response response = invocation.invoke();
Response response = ClientBuilder.newClient()
.target("http://www.foo.com/book")
.request(MediaType.TEXT_PLAIN)
.get();
String body = ClientBuilder.newClient()
.target("http://www.foo.com/book")
.request()
.get(String.class);
@agoncal
61
62. #37: Async client
The client API also supports asynchronous invocation
Future<String> future = ClientBuilder.newClient()
.target("http://www.foo.com/book")
.request()
.async()
.get(String.class);
try {
String body = future.get(1, TimeUnit.MINUTES);
} catch (InterruptedException |ExecutionException e){
...
}
@agoncal
62
63. #38: Async server
Asynchronous request processing on the server
@Path("/async")
public class AsyncResource {
@GET
public void asyncGet(@Suspended AsyncResponse resp){
new Thread(new Runnable() {
public void run() {
String result = veryExpensiveOperation();
resp.resume(result);
}
}).start();
}}
@agoncal
63
64. #39: Message Filter
Process incoming/outgoing request/response headers
●
Filters on client side
●
●
●
javax.ws.rs.client.ClientRequestFilter
javax.ws.rs.client.ClientResponseFilter
Filters on server side
●
javax.ws.rs.container.ContainerRequestFilter
●
javax.ws.rs.container.ContainerResponseFilter
@agoncal
64
65. #39: Message Filter
Process incoming/outgoing request/response headers
public class LogginFilter implements ClientRequestFilter{
public void filter(ClientRequestContext ctx) ... {
System.out.println(ctx.getMethod());
System.out.println(ctx.getUri());
}
}
@agoncal
65
66. #40: Entity Interceptors
Marshalling and unmarshalling HTTP message bodies
●
Intercepts inbound stream (read from the “wire”)
●
●
javax.ws.rs.ext.ReaderInterceptor
Intercepts outbound stream (written to the “wire”)
●
javax.ws.rs.ext.WriterInterceptor
@agoncal
66
67. #40: Entity Interceptors
Marshalling and unmarshalling HTTP message bodies
public class ZipInterceptor implements WriterInterceptor{
public void aroundWriteTo(WriterInterceptorContext ctx){
OutputStream os = ctx.getOutputStream();
ctx.setOutputStream(new GZIPOutputStream(os));
ctx.proceed();
}
}
@agoncal
67
77. #47: MailSessionDefinition
A mail session can be defined using an annotation
@MailSessionDefinition(name = "java:comp/myMailSession",
properties = {
"mail.smtp.host=smtp.gmail.com",
"mail.smtp.ssl.enable=true",
"mail.smtp.auth=true",
"mail.transport.protocol=smtp",
"mail.debug=true"
})
@Resource(lookup = "java:comp/myMailSession")
Session session;
@agoncal
77
79. #48: Connector definition
A connector can be defined using an annotation
@ConnectionDefinition(
connection="MyConnection.class",
connectionImpl="MyConnectionImpl.class",
connectionFactory="MyConnectionFactory.class",
connectionFactoryImpl="MyConnectionFactoryImpl.class"
)
@AdministeredObjectDefinition(
className="MyQueueImpl.class",
name="java:comp/MyQueue",
resourceAdapter="myAdapter",
)
@agoncal
79
88. Creative Commons
●
●
●
Attribution — You must attribute the work in
the manner specified by the author or licensor
(but not in any way that suggests that they
endorse you or your use of the work).
Noncommercial — You may not use this work for
commercial purposes.
Share Alike — If you alter, transform, or build
upon this work, you may distribute the resulting
work only under the same or similar license to
this one.
@agoncal
88