This document provides an overview of new features in Java EE 6, as presented by Antonio Goncalves. It discusses several major new concepts, including profiles, pruning of specifications, portable JNDI names, managed beans, and interceptors. It also summarizes new features for various specifications, such as JPA 2.0 adding richer mappings and criteria queries, EJB 3.1 introducing asynchronous calls and timers, Servlet 3.0 focusing on ease of development and pluggability, and JSF 2.0 making Facelets the preferred view definition language. The document aims to give attendees an understanding of the key changes and improvements in Java EE 6.
This is a presentation given in a Java Open day conducted by Trainologic.
Trainologic shares its training content for free at trainologic.org you can find many more free full course there.
Consideration points for migrating from older pre-J2EE, J2EE 1.2-1.4, Java EE 5-6 to EE 7, and migration points especially for web front-end systems and back-ends. JSP to JSF, EJB to CDI with migration procedure details. Slide materials on Java Day Tokyo 2016.
This is a presentation given in a Java Open day conducted by Trainologic.
Trainologic shares its training content for free at trainologic.org you can find many more free full course there.
Consideration points for migrating from older pre-J2EE, J2EE 1.2-1.4, Java EE 5-6 to EE 7, and migration points especially for web front-end systems and back-ends. JSP to JSF, EJB to CDI with migration procedure details. Slide materials on Java Day Tokyo 2016.
Java Threads Tutorial | Multithreading In Java Tutorial | Java Tutorial For B...Edureka!
(**** Java Certification Training: https://www.edureka.co/java-j2ee-soa-training ****)
This Edureka tutorial on “Java Threads” will talk about one of the core concepts of Java i.e Java Threads. It will give you a complete insight into how to create, work and synchronize with multiple threads. Through this tutorial you will learn the following topics:
What is a Java Thread?
Thread Lifecycle
Creating a Thread
Main Thread
Multi-Threading
Thread Pool
Check out our Java Tutorial blog series: https://goo.gl/osrGrS
Check out our complete Youtube playlist here: https://goo.gl/gMFLx3
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
A quick introduction about everything that's new in Java 11. Includes API changes, language changes and new tools in the JDK.
Demo's for this presentation can be found here: https://github.com/MichelSchudel/java11demo
The next release of the Java Standard Edition is scheduled for the beginning of 2010. In this session we'll review the latest feature list of what's in and what's out of the next version of the JDK.
An update on the latest news around JavaFX including the 1.2 release and the general availability of JavaFX Mobile for Windows Mobile devices.
Top 50 java ee 7 best practices [con5669]Ryan Cuprak
JavaOne 2016
This session provides 50 best practices for Java EE 7, with examples. The best practices covered focus primarily on JPA, CDI, JAX-WS, and JAX-RS. In addition, topics involving testing and deployment are covered. This presentation points out where best practices have changed, common misconceptions, and antipatterns that should be avoided. This is a fast-paced presentation with many code samples.
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
Java Threads Tutorial | Multithreading In Java Tutorial | Java Tutorial For B...Edureka!
(**** Java Certification Training: https://www.edureka.co/java-j2ee-soa-training ****)
This Edureka tutorial on “Java Threads” will talk about one of the core concepts of Java i.e Java Threads. It will give you a complete insight into how to create, work and synchronize with multiple threads. Through this tutorial you will learn the following topics:
What is a Java Thread?
Thread Lifecycle
Creating a Thread
Main Thread
Multi-Threading
Thread Pool
Check out our Java Tutorial blog series: https://goo.gl/osrGrS
Check out our complete Youtube playlist here: https://goo.gl/gMFLx3
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
A quick introduction about everything that's new in Java 11. Includes API changes, language changes and new tools in the JDK.
Demo's for this presentation can be found here: https://github.com/MichelSchudel/java11demo
The next release of the Java Standard Edition is scheduled for the beginning of 2010. In this session we'll review the latest feature list of what's in and what's out of the next version of the JDK.
An update on the latest news around JavaFX including the 1.2 release and the general availability of JavaFX Mobile for Windows Mobile devices.
Top 50 java ee 7 best practices [con5669]Ryan Cuprak
JavaOne 2016
This session provides 50 best practices for Java EE 7, with examples. The best practices covered focus primarily on JPA, CDI, JAX-WS, and JAX-RS. In addition, topics involving testing and deployment are covered. This presentation points out where best practices have changed, common misconceptions, and antipatterns that should be avoided. This is a fast-paced presentation with many code samples.
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
Happy Java 8 release! But for Java EE 7? Is the SE 8 works for EE 7? this slide shows the current situation of applying SE 8 to EE 7. This is the revised version of "JJUG CCC 2014 Spring" session, for the "Java 8 workshop at Fukuoka".
Java EE 6 Adoption in One of the World's Largest Online Financial Systems (fo...Hirofumi Iwasaki
Financial companies need Java EE to power its business today. Rakuten Card, one of the largest credit card companies in Japan, adopted Java EE 6 for its online systems rearchitecture. You can learn why we choose Java EE, and our experiences and lessons we learned. This is the first disclosing of a large credit card company in Japan sharing their story.
How to start such a big project? Why we choose it, how we selected the in house development policies, educated ourselves, and developed the additional libraries? How to launch within only six months? What is the key factor driving them as 24/7 critical real financial systems successfully? How to migrate to EE 7 in the future? We’ll answer these questions and any that you may have.
This version is the exclusive session for JJUG CCC Fall 2014 in Japan, binding both JavaOne and OOW 2014 sessions.
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.
Case Study of Financial Web System Development and Operations with Oracle Web...Hirofumi Iwasaki
To stay ahead of the technology curve, financial companies require the power, flexibility, and scalability of latest enterprise technologies for 24/7 services. Rakuten Card, one of the largest credit card companies in Japan, recently renewed its web front-end systems utilizing Java EE. This session provides answers to the following questions: Among the myriad of available technologies, why did it choose Oracle WebLogic and Oracle Exadata, managed by Oracle Enterprise Manager? How did it drive this huge project to completion in only six months, using only in-house development? What were the key success factors in launching and operating this mission-critical service? Hear about its extraordinary improvement results and how its selections are effective for financial enterprise systems.
Many enterprise systems build at 2000 - 2010 uses J2EE old specifications with Struts web framework. But nowadays J2EE improved as Java EE, with standard web framework JSF 2. With this slides you can learn how to migrate old-styled J2EE + Struts systems to sophisticated Java EE with JSF 2 specification. This slides was used in Java Day Tokyo 2014 C4 window, presented by the author. And some slides is specialized for Japanese enterprise systems, but the theme is very standard and for almost all J2EE users in the world.
Real world batch implementations and frameworks.
These slides explores various ways in which batch processing can implemented with Java EE and other frameworks. It includes pro and cons of batch implementations with JCL, prepared statements, CDI, JSR 352 and embedded EJB containers. It helps to understand when to use JSR 352 and when not to, the benefits of using an embedded EJB container for batch processing, and the best practices to follow when designing batch processes.
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
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.
Overview of Java EE 6 by Roberto Chinnici at SFJUGMarakana Inc.
Roberto Chinnici, Java EE 6 spec lead, gives an overview of Java EE 6 for San Francisco Java User Group on August 10th, 2010.
http://www.sfjava.org/calendar/13940755/
Full Java EE 6 support, great developer experience, multiple yet simple admin tools, embedded mode, mutli-language runtime, OSGi modularity, ... The GlassFish set of feature reads like the roadmap of our closest competitors. See how they can work for you. Today.
Want to become an international rock star speaker?
We're running a speaker clinic/training for those of you keen to submit a talk to a conference, but looking for guidance on where to get started.
We will cover the basics, giving you some simple guidelines to help prepare you for your first presentation, as well as some insider tips to consider when submitting your talk ideas.
The most important thing you should get from this session is probably how you’re going to handle having a sea of faces staring expectantly at you when you take to the stage.
This session is aimed at both audience and NOVICE speakers - people who have never done it before, or have limited experience with presenting, and want to take that first step.
Come to this session if:
• You'd like to present at a local User Group event, but you're not confident enough yet
• You're wondering if you could present at Devoxx or another conference
• You want practical help getting started with public speaking
• You're simply curious about what it's like
This is very much an introductory session (although more confident speakers are welcome), and will focus on your skills as a presenter, not the mechanics of building a slide deck or talk.
Beyond the event we'll help to connect you with a mentor who can guide you all the way through to your first lightning talk/evening presentation to your first conference presentation.
The new DeVoxxEd websites with JHipster, Angular & KubernetesStephan Janssen
The new Beta Voxxed and VoxxedDays websites are data driven by the existing Devoxx and Voxxed Days CFP websites. During this talk, he will demo and explain how the new websites were designed & developed using technologies like JHipster, Angular 5, PrimeNG and CI/CD using GitLab.
As a side effect, the CFP admin orchestration web app has been created which allows event organizers to configure and start a CFP instance on the fly using Docker.
The new Voxxed websites with JHipster, Angular and GitLabStephan Janssen
The soon-to-be-released-brand-new Voxxed and VoxxedDays websites are data driven by the existing Devoxx and Voxxed Days CFP websites. During this talk, he will demo and explain how the new websites were designed & developed using technologies like JHipster, Angular 5, PrimeNG and CI/CD using GitLab.
As a side effect, the CFP admin orchestration web app has been created which allows event organisers to configure and start a CFP instance on the fly using Docker.
According to Mark Reinhold we can expect (after Java 9) a time-based model with a new feature release every six months, update releases every quarter, and a long-term support release every three years. This session will have a closer look at the possible Java language features we can expect in the near future.
With the official release of Java EE 6 in December 2009 a new version of the Enterprise JavaBeans specification also saw the light. Enterprise JavaBeans is an architecture for the development and deployment of component-based business applications. Applications written using the Enterprise JavaBeans architecture are scalable, transactional, and concurrent.
While a lot of faithful EJB developer's have been scared away from the specification and some of its unfortunate implementations in the past five years, EJB 3.1 has all the ingredients that make for a successful lightweight component based implementation. At last a decent implementation of a server-side component framework as part of the Java EE specification. This no longer makes you dependent on rebel frameworks such as the Spring framework.
EJB 3.1 continues down the path where EJB 3.0 left us off. The purpose of the Enterprise JavaBeans 3.1 specification is to further simplify the EJB architecture by reducing its complexity from the developer's point of view, while also adding new functionality in response to the needs of the community. Although the Java Persistence API was developed within EJB 3.0, it now evolves under a separate JSR rather than within EJB 3.1 and will therefore not be covered in this presentation.
This presentation will mainly focus on the new features introduced by EJB 3.1 and the basics of EJB are only covered very briefly. Topics covered include: EJB Lite, simple packaging, no-interface local view, portable JNDI names, Embeddable API, Startup/shutdown callbacks, Singleton beans, the new and improved timer and scheduler component, Async invocations, and REST integration.
OSGi has gained popularity over the last two years. The platform has some very interesting features like versioning, dynamic updates and it's service oriented nature. These characteristics however come with a price. A firm understanding of how and why OSGi works how it works, is a necessity if you plan on getting into OSGi.
This talk will start with some basic principals on the java platform and will gradually move towards the OSGi infrastructure explaining the OSGi fundamentals. The following topics will be covered:
* Classloading in OSGi
* Lifecycle management of OSGi bundles
* OSGi Service, the service registry and service composition models
Afterwards, we will explain the generally accepted best practices and OSGi design patterns.
What are the main advantages of using HR recruiter services.pdfHumanResourceDimensi1
HR recruiter services offer top talents to companies according to their specific needs. They handle all recruitment tasks from job posting to onboarding and help companies concentrate on their business growth. With their expertise and years of experience, they streamline the hiring process and save time and resources for the company.
Cracking the Workplace Discipline Code Main.pptxWorkforce Group
Cultivating and maintaining discipline within teams is a critical differentiator for successful organisations.
Forward-thinking leaders and business managers understand the impact that discipline has on organisational success. A disciplined workforce operates with clarity, focus, and a shared understanding of expectations, ultimately driving better results, optimising productivity, and facilitating seamless collaboration.
Although discipline is not a one-size-fits-all approach, it can help create a work environment that encourages personal growth and accountability rather than solely relying on punitive measures.
In this deck, you will learn the significance of workplace discipline for organisational success. You’ll also learn
• Four (4) workplace discipline methods you should consider
• The best and most practical approach to implementing workplace discipline.
• Three (3) key tips to maintain a disciplined workplace.
Buy Verified PayPal Account | Buy Google 5 Star Reviewsusawebmarket
Buy Verified PayPal Account
Looking to buy verified PayPal accounts? Discover 7 expert tips for safely purchasing a verified PayPal account in 2024. Ensure security and reliability for your transactions.
PayPal Services Features-
🟢 Email Access
🟢 Bank Added
🟢 Card Verified
🟢 Full SSN Provided
🟢 Phone Number Access
🟢 Driving License Copy
🟢 Fasted Delivery
Client Satisfaction is Our First priority. Our services is very appropriate to buy. We assume that the first-rate way to purchase our offerings is to order on the website. If you have any worry in our cooperation usually You can order us on Skype or Telegram.
24/7 Hours Reply/Please Contact
usawebmarketEmail: support@usawebmarket.com
Skype: usawebmarket
Telegram: @usawebmarket
WhatsApp: +1(218) 203-5951
USA WEB MARKET is the Best Verified PayPal, Payoneer, Cash App, Skrill, Neteller, Stripe Account and SEO, SMM Service provider.100%Satisfection granted.100% replacement Granted.
Unveiling the Secrets How Does Generative AI Work.pdfSam H
At its core, generative artificial intelligence relies on the concept of generative models, which serve as engines that churn out entirely new data resembling their training data. It is like a sculptor who has studied so many forms found in nature and then uses this knowledge to create sculptures from his imagination that have never been seen before anywhere else. If taken to cyberspace, gans work almost the same way.
[Note: This is a partial preview. To download this presentation, visit:
https://www.oeconsulting.com.sg/training-presentations]
Sustainability has become an increasingly critical topic as the world recognizes the need to protect our planet and its resources for future generations. Sustainability means meeting our current needs without compromising the ability of future generations to meet theirs. It involves long-term planning and consideration of the consequences of our actions. The goal is to create strategies that ensure the long-term viability of People, Planet, and Profit.
Leading companies such as Nike, Toyota, and Siemens are prioritizing sustainable innovation in their business models, setting an example for others to follow. In this Sustainability training presentation, you will learn key concepts, principles, and practices of sustainability applicable across industries. This training aims to create awareness and educate employees, senior executives, consultants, and other key stakeholders, including investors, policymakers, and supply chain partners, on the importance and implementation of sustainability.
LEARNING OBJECTIVES
1. Develop a comprehensive understanding of the fundamental principles and concepts that form the foundation of sustainability within corporate environments.
2. Explore the sustainability implementation model, focusing on effective measures and reporting strategies to track and communicate sustainability efforts.
3. Identify and define best practices and critical success factors essential for achieving sustainability goals within organizations.
CONTENTS
1. Introduction and Key Concepts of Sustainability
2. Principles and Practices of Sustainability
3. Measures and Reporting in Sustainability
4. Sustainability Implementation & Best Practices
To download the complete presentation, visit: https://www.oeconsulting.com.sg/training-presentations
"𝑩𝑬𝑮𝑼𝑵 𝑾𝑰𝑻𝑯 𝑻𝑱 𝑰𝑺 𝑯𝑨𝑳𝑭 𝑫𝑶𝑵𝑬"
𝐓𝐉 𝐂𝐨𝐦𝐬 (𝐓𝐉 𝐂𝐨𝐦𝐦𝐮𝐧𝐢𝐜𝐚𝐭𝐢𝐨𝐧𝐬) is a professional event agency that includes experts in the event-organizing market in Vietnam, Korea, and ASEAN countries. We provide unlimited types of events from Music concerts, Fan meetings, and Culture festivals to Corporate events, Internal company events, Golf tournaments, MICE events, and Exhibitions.
𝐓𝐉 𝐂𝐨𝐦𝐬 provides unlimited package services including such as Event organizing, Event planning, Event production, Manpower, PR marketing, Design 2D/3D, VIP protocols, Interpreter agency, etc.
Sports events - Golf competitions/billiards competitions/company sports events: dynamic and challenging
⭐ 𝐅𝐞𝐚𝐭𝐮𝐫𝐞𝐝 𝐩𝐫𝐨𝐣𝐞𝐜𝐭𝐬:
➢ 2024 BAEKHYUN [Lonsdaleite] IN HO CHI MINH
➢ SUPER JUNIOR-L.S.S. THE SHOW : Th3ee Guys in HO CHI MINH
➢FreenBecky 1st Fan Meeting in Vietnam
➢CHILDREN ART EXHIBITION 2024: BEYOND BARRIERS
➢ WOW K-Music Festival 2023
➢ Winner [CROSS] Tour in HCM
➢ Super Show 9 in HCM with Super Junior
➢ HCMC - Gyeongsangbuk-do Culture and Tourism Festival
➢ Korean Vietnam Partnership - Fair with LG
➢ Korean President visits Samsung Electronics R&D Center
➢ Vietnam Food Expo with Lotte Wellfood
"𝐄𝐯𝐞𝐫𝐲 𝐞𝐯𝐞𝐧𝐭 𝐢𝐬 𝐚 𝐬𝐭𝐨𝐫𝐲, 𝐚 𝐬𝐩𝐞𝐜𝐢𝐚𝐥 𝐣𝐨𝐮𝐫𝐧𝐞𝐲. 𝐖𝐞 𝐚𝐥𝐰𝐚𝐲𝐬 𝐛𝐞𝐥𝐢𝐞𝐯𝐞 𝐭𝐡𝐚𝐭 𝐬𝐡𝐨𝐫𝐭𝐥𝐲 𝐲𝐨𝐮 𝐰𝐢𝐥𝐥 𝐛𝐞 𝐚 𝐩𝐚𝐫𝐭 𝐨𝐟 𝐨𝐮𝐫 𝐬𝐭𝐨𝐫𝐢𝐞𝐬."
Digital Transformation and IT Strategy Toolkit and TemplatesAurelien Domont, MBA
This Digital Transformation and IT Strategy Toolkit was created by ex-McKinsey, Deloitte and BCG Management Consultants, after more than 5,000 hours of work. It is considered the world's best & most comprehensive Digital Transformation and IT Strategy Toolkit. It includes all the Frameworks, Best Practices & Templates required to successfully undertake the Digital Transformation of your organization and define a robust IT Strategy.
Editable Toolkit to help you reuse our content: 700 Powerpoint slides | 35 Excel sheets | 84 minutes of Video training
This PowerPoint presentation is only a small preview of our Toolkits. For more details, visit www.domontconsulting.com
Premium MEAN Stack Development Solutions for Modern BusinessesSynapseIndia
Stay ahead of the curve with our premium MEAN Stack Development Solutions. Our expert developers utilize MongoDB, Express.js, AngularJS, and Node.js to create modern and responsive web applications. Trust us for cutting-edge solutions that drive your business growth and success.
Know more: https://www.synapseindia.com/technology/mean-stack-development-company.html
Skye Residences | Extended Stay Residences Near Toronto Airportmarketingjdass
Experience unparalleled EXTENDED STAY and comfort at Skye Residences located just minutes from Toronto Airport. Discover sophisticated accommodations tailored for discerning travelers.
Website Link :
https://skyeresidences.com/
https://skyeresidences.com/about-us/
https://skyeresidences.com/gallery/
https://skyeresidences.com/rooms/
https://skyeresidences.com/near-by-attractions/
https://skyeresidences.com/commute/
https://skyeresidences.com/contact/
https://skyeresidences.com/queen-suite-with-sofa-bed/
https://skyeresidences.com/queen-suite-with-sofa-bed-and-balcony/
https://skyeresidences.com/queen-suite-with-sofa-bed-accessible/
https://skyeresidences.com/2-bedroom-deluxe-queen-suite-with-sofa-bed/
https://skyeresidences.com/2-bedroom-deluxe-king-queen-suite-with-sofa-bed/
https://skyeresidences.com/2-bedroom-deluxe-queen-suite-with-sofa-bed-accessible/
#Skye Residences Etobicoke, #Skye Residences Near Toronto Airport, #Skye Residences Toronto, #Skye Hotel Toronto, #Skye Hotel Near Toronto Airport, #Hotel Near Toronto Airport, #Near Toronto Airport Accommodation, #Suites Near Toronto Airport, #Etobicoke Suites Near Airport, #Hotel Near Toronto Pearson International Airport, #Toronto Airport Suite Rentals, #Pearson Airport Hotel Suites
Affordable Stationery Printing Services in Jaipur | Navpack n PrintNavpack & Print
Looking for professional printing services in Jaipur? Navpack n Print offers high-quality and affordable stationery printing for all your business needs. Stand out with custom stationery designs and fast turnaround times. Contact us today for a quote!
Putting the SPARK into Virtual Training.pptxCynthia Clay
This 60-minute webinar, sponsored by Adobe, was delivered for the Training Mag Network. It explored the five elements of SPARK: Storytelling, Purpose, Action, Relationships, and Kudos. Knowing how to tell a well-structured story is key to building long-term memory. Stating a clear purpose that doesn't take away from the discovery learning process is critical. Ensuring that people move from theory to practical application is imperative. Creating strong social learning is the key to commitment and engagement. Validating and affirming participants' comments is the way to create a positive learning environment.
Falcon stands out as a top-tier P2P Invoice Discounting platform in India, bridging esteemed blue-chip companies and eager investors. Our goal is to transform the investment landscape in India by establishing a comprehensive destination for borrowers and investors with diverse profiles and needs, all while minimizing risk. What sets Falcon apart is the elimination of intermediaries such as commercial banks and depository institutions, allowing investors to enjoy higher yields.
2. Overall presentation
Focuses on news features of Java EE 6
You must know Java EE 5
28 specifications
Thousands of pages
Tough presentation
3. Agenda
● Quick overview
● New concepts
● New features on existing specifications
● New specifications
● Summary
4. Antonio Goncalves
● Freelance software architect
● Former BEA consultant
● Author (Java EE 5 and Java EE 6)
● JCP expert member
● Co-leader of the Paris JUG
● Les Cast Codeurs podcast
● Java Champion
● antonio dot goncalves at gmail dot com
5. Agenda
● Quick overview
● New concepts
● New features on existing specifications
● New specifications
● Summary
7. Zooming in Java EE 6
Web Enterprise Web Services
JSF 2.0 EJB 3.1 JAX-RPC 1.1
Servlet 3.0 JAF 1.1 JAXM 1.0
JSP 2.2 JavaMail 1.4 JAX-RS 1.1
EL 2.2 JCA 1.6 JAXR 1.0
JSTL 1.2 JMS 1.1 Web Services 1.3
Debugging 1.0 JPA 2.0 WS Metadata 2.0
Support JTA 1.1
+ Java SE 6
Management, Security, JAX-WS 2.2
Common JAXB 2.2
CDI (JSR 299) 1.0 JDBC 4.0
@Inject (JSR 330) 1.0 JNDI 1.5
Bean Validation 1.0 SAAJ 1.3
Interceptors 1.1 Common 1.1
Managed Beans 1.0 Annotations
JACC 1.4 RMI
Java EE Application Deployment 1.2 Java IDL
Java EE Management 1.1 JMX
JASPIC 1.0 JAAS
JAXP
StAX
8. Agenda
● Quick overview
● New concepts
● Pruning, Profiles, EJB Lite, Portable JNDI names,
Managed Beans, Interceptors 1.1
● New features on existing specifications
● New specifications
● Summary
9. Pruning (Soon less specs)
● Marks specifications optional in next version
● Pruned in Java EE 6
● Entity CMP 2.x
● JAX-RPC
● JAX-R
● JSR 88 (Java EE Application Deployment)
● Might disappear from Java EE 7
● Vendors may decide to keeps them...
● … or offer the delta as a set of modules
10. Profiles
Full Java EE 6
Profile X
Web Profile
Profile Y
11. Web Profile 1.0
● Subset of full platform JSF 2.0
Servlet 3.0
● For web development JSP 2.2
EL 2.2
● Packages in a war JSTL 1.2
EJB Lite 3.1
● Separate specification Managed Beans 1.0
● Evolves at its own pace Interceptors 1.1
JTA 1.1
● Others will come JPA 2.0
Bean Validation 1.0
● Minimal (Servlet/JSP) CDI 1.0
@Inject 1.0
● Portal....
12. EJB Lite
● Subset of the EJB 3.1 API
● Used in Web profile
● Packaged in a war
Local Session Bean Message Driven Beans
Injection EJB Web Service Endpoint
CMT / BMT RMI/IIOP Interoperability
Interceptors Remote interface
Security EJB 2.x
Timer service
CMP / BMP
13. Portable JNDI names
● Client inside a container (use DI)
@EJB Hello h;
● Client outside a container
Context ctx = new InitialContext();
Hello h = (Hello) ctx.lookup(xyz);
● Portable JNDI name is specified
java:global/foo/bar/HelloEJB
14. Portable JNDI names
● OrderBean implements Order packaged in
orderejb.jar within orderapp.ear
● java:global/orderapp/orderejb/OrderBean
java:global/orderapp/orderejb/OrderBean!
org.foo.Order
Usable from any application in the container
● java:app/orderejb/OrderBean
java:app/orderejb/OrderBean!com.acme.Order
Fully-qualified interface name
● java:module/OrderBean java:module/OrderBean!
org.foo.Order
15. Managed Beans 1.0
● Separate spec shipped with Java EE 6
● Container-managed POJOs
● Support a small set of basic services
● Injection (@Resource...)
● Life-cycle (@PostConstruct, @PreDestroy)
● Interceptor (@Interceptor, @AroundInvoke)
● Lightweight component model
16. Managed Beans 1.0
@javax.annotation.ManagedBean
public class MyPojo {
@Resource
private Datasource ds;
@PostConstruct
private void init() {
....
}
@Interceptors(LoggingInterceptor.class)
public void myMethod() {...}
}
17. Interceptors 1.1
● Address cross-cutting concerns in Java EE
● Were part of the EJB 3.0 spec
● Now a seperate spec shipped with EJB 3.1
● Can be uses in EJBs...
● … as well as ManagedBeans
● @AroundInvoke
● @AroundTimeout for EJB timers
18. Agenda
● Quick overview
● New concepts
● New features on existing specifications
● JPA 2.0, EJB 3.1, Servlet 3.0, JSF 2.0
● New specifications
● Summary
19. JPA 2.0
● Evolves separately from EJB now
● JSR 317
● Richer mappings
● Richer JPQL
● Standard config options
● Criteria API
● ...
20. Richer mapping
● Collection of embeddables and basic types
● Not just collection of JPA entities
● Multiple levels of embeddables
● More flexible support for Maps
● Keys, values can be one of : entities, embeddables
or basic types
● More relationship mapping options
● Unidirectional 1-many foreign key mappings
21. Collections of Embeddable Types
@Embeddable public class BookReference {
String title;
Float price;
String description;
String isbn;
Integer nbOfPage;
...
}
@Entity public class ListOfGreatBooks {
@ElementCollection
protected Set<BookReference> javaBooks;
@ElementCollection
protected Set<String> tags;
...
}
22. Richer JPQL
● Added entity type to support non-polymorphic
queries
● Allow joins in subquery FROM clause
● Added new reserved words
● ABS, BOTH, CONCAT, ELSE, END, ESCAPE,
LEADING, LENGTH, LOCATE, SET, SIZE, SQRT,
SUBSTRING, TRAILING
23. Criteria API
● Strongly typed criteria API
● Object-based query definition objects
● (Rather than JPQL string-based)
● Operates on the meta-model
● Browse the structure of a Persistence Unit
● Dynamically: EntityManager.getMetamodel()
● Statically:
Each entity X has a metamodel class X_
● CriteriaQuery as a query graph
24. Criteria API
EntityManager em = ...;
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Book> query =
cb.createQuery(Book.class);
Root<Book> book = query.from(Book.class);
query.select(book)
.where(cb.equal(book.get("description"), ""));
SELECT b
FROM Book b
WHERE b.description IS EMPTY
25. Criteria API (Type-safe)
EntityManager em = ...;
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Book> query =
cb.createQuery(Book.class);
Root<Book> book = query.from(Book.class);
query.select(book)
.where(cb.isEmpty(book.get(Book_.description)));
Statically generated
JPA 2.0 MetaModel
27. Standard properties
● In persistence.xml :
● javax.persistence.jdbc.driver
● javax.persistence.jdbc.url
● javax.persistence.jdbc.user
● javax.persistence.jdbc.password
● javax.persistence.lock.scope
● javax.persistence.lock.timeout
28. And more...
● detach()
● Join<X,Y>, ListJoin, MapJoin
● Orphan removal functionality
● @OneToMany(orphanRemoval=true)
● BeanValidation integration on lifecycle
● Second-level cache API
● @Cacheable annotation on entities
● contain(Class,PK), evict(Class,PK), ...
● Pessimistic locking
29. Servlet 3.0
● Ease of development
● Pluggability
● Asynchronous support
30. Ease of development
● Annotations based programming model
● @WebServlet
● @WebFilter
● @WebListener
● @WebInitParam
● Optional web.xml
● Better defaults and CoC
31. A servlet 3.0 example
@WebServlet(urlPatterns={"/MyApp"})
public class MyServlet extends HttpServlet {
public void doGet (HttpServletRequest req,
HttpServletResponse res){
....
}
}
web.xml is optional
● Same for @WebFilter
and @WebListener
32. Pluggability
● Fragments are similar to web.xml
● <web-fragment> instead of <web-app>
● Declare their own servlets, listeners and filters
● Annotations and web fragments are merged
following a configurable order
● JARs need to be placed in WEB-INF/lib
● and use /META-INF/web-fragment.xml
● Overridden by main web.xml
33. And more...
● Async support (Comet-style)
● Static resources in META-INF/resources
● Configuration API
● Add and configure Servlet, Filters, Listeners
● Add security constraints
● Using ServletContext API
● File upload (similar to Apache File Upload)
● Configure cookie session name
● Security with @ServletSecurity
34. EJB 3.1
● Optional local interface
● Packaging in a war
● Asynchronous calls
● Timer service
● Singleton
● Embeddable container
35. Optional Local Interface
● @Local, @Remote
● Interfaces are not always needed
● Only for local interfaces
● Remote interfaces are now optional !
@Stateless
public class HelloBean {
public String sayHello() {
return "Hello world!";
}
}
36. Packaging in a war
foo.ear foo.war
lib/foo_common.jar WEB-INF/classes
com/acme/Foo.class
com/acme/Foo.class
com/acme/FooServlet.class
com/acme/FooEJB.class
foo_web.war
WEB-INF/web.xml
WEB-INF/classes
com/acme/FooServlet.class
foo_ejb.jar
com/acme/FooEJB.class
com/acme/FooEJBLocal.class
37. Asynchronous calls
● How to have asynchronous call in EJBs ?
● JMS is more about sending messages
● Threads and EJB's don't integrate well
● @Asynchronous
● Applicable to any EJB type
● Best effort, no delivery guarantee
● Method returns void or Future<T>
● javax.ejb.AsyncResult helper class :
return new AsyncResult<int>(result)
38. Asynchronous calls
@Stateless
public class OrderBean {
public void createOrder() {
Order order = persistOrder();
sendEmail(order); // fire and forget
}
public Order persistOrder() {...}
@Asynchronous
public void sendEmail(Order order) {...}
}
39. Timer Service
● Programmatic and Calendar based scheduling
● « Last day of the month »
● « Every five minutes on Monday and Friday »
● Cron-like syntax
● second [0..59], minute[0..59], hour[0..23]...
● dayOfMonth[1..31]
● dayOfWeek[0..7] or [sun, mon, tue..]
● Month[0..12] or [jan,feb..]
41. Singleton
● New component
● No/local/remote interface
● Follows the Singleton pattern
● One single EJB per application per JVM
● Used to share state in the entire application
● State not preserved after container shutdown
● Added concurrency management
● Default is single-threaded
● @ConcurrencyManagement
42. Singleton
@Singleton
public class CachingBean {
private Map cache;
@PostConstruct void init() {
cache = ...;
}
public Map getCache() {
return cache;
}
public void addToCache(Object key, Object val) {
cache.put(key, val);
}
}
43. Embeddable Container
● API allowing to : EJB 3.1 Embedded container
Transaction Security Messaging
● Initialize a container manager system engine
● Get container ctx Java SE
● …
● Can run in any Java SE environment
● Batch processing
● Simplifies testing
● Just a jar file in your classpath
45. And more...
● Interceptors and InterceptorBinding
● Singletons can be chained
● Non persistent timer
● @StatefulTimeout
● ...
46. JSF 2.0
● The standard component-oriented MVC framework
● Part of Java EE 5
● Part of Java EE 6 and Web Profile
● Other frameworks can rely on EE 6 extensibility
● Deserves its 2.0 version number
● New features, issues fixed, performance focus
● Fully available today in Mojarra 2.0.2
● Production-quality implementation
● Part of GlassFish v3
47. Facelets now preferred VDL
● Facelets (XHTML) as alternative to JSP
● Based on a generic View Description Language
(VDL)
● Can't add Java code to XHTML page
(and “that's a good thing!”™)
● Pages are usable from basic editors
● IDEs offer traditional value-add:
● Auto-completion (EL)
● (Composite) Component management
● Project management, testing, etc...
48. Setup, configuration
● JSF 2.0 does not mandate Servlet 3.0
● Servlet 2.5 containers will run JSF 2.0
● web.xml may be optional depending on runtime
● faces-config.xml now optional
● @javax.faces.bean.ManagedBean
● Not required with JSR 299
● Navigation can now belong to the page
(<navigation-rules> become optional)
49. JSF Composite Component
● Using JSF 1.x
● Implement UIComponent, markup in renderer, register in
faces-config.xml, add tld, ...
● With JSF 2.0
● Single file, no Java code needed
● Use XHTML and JSF tags to create components
<html xmlns:cc="http://java.sun.com/jsf/composite">
<cc:interface>
<cc:attribute ...>
<cc:implementation>
● Everything else is auto-wired
50. /resources/ezcomp/mycomponent.xhtml
Naming the
component
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:composite="http://java.sun.com/jsf/composite"> Defining the
<!-- INTERFACE -->
<composite:interface>
component
<composite:attribute name="param"/> Implicit EL object
</composite:interface>
<!-- IMPLEMENTATION -->
<composite:implementation>
<h:outputText value="Hello there, #{cc.attrs.param}"/>
</composite:implementation>
</html>
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
Using the xmlns:custom="http://java.sun.com/jsf/composite/ezcomp">
<h:body>
component <custom:mycomponent param="Java EE 6 attendees"/>
</h:body>
</html>
51. Ajax support
● Inspired by RichFaces, IceFaces, DynaFaces, ...
● Common JavaScript library (jsf.js)
● request JavaScript functions captured by
PartialViewContext for sub-tree processing
● Client JavaScript updates the DOM
<h:commandButton
onclick="jsf.ajax.request(this,event,{render:'foo'});
return false;"/>
● <f:ajax> tag to ajaxify existing pages
xmlns:f="http://java.sun.com/jsf/core"
<h:commandButton>
<f:ajax event="change" execute="myForm" render="foo" />
</h:commandButton>
52. And more...
● Validation delegated to BeanValidation
● Easier resources management
● Better error reporting
● New managed bean scope (View)
● Groovy support (Mojarra)
● Bookmarkable URLs
● Templating : define and apply layouts
● Project stages (dev vs. test vs. production)
● ...
53. Agenda
● Quick overview
● New concepts
● New features on existing specifications
● New specifications
● Bean Validation, JAX-RS, @Inject, CDI
● Summary
54. Bean Validation 1.0
● Enable declarative validation in your
applications
● Constrain Once, Validate Anywhere
● restriction on a bean, field or property
● not null, size between 1 and 7, valid email...
● Standard way to validate constraints
● Integration with JPA 2.0 & JSF 2.0
55. Bean Validation 1.0
public class Address {
@NotNull @Size(max=30,
message="longer than {max} characters")
private String street1;
...
@NotNull @Valid
private Country country;
}
public class Country {
@NotNull @Size(max=20) request recursive
private String name; object graph
... validation
}
57. Integration with JPA 2.0 and JSF 2.0
● Automatic
● No extra code
● Happens during @PrePersist, @PreUpdate,
@PreRemove
● Shows how well integrated EE can be
58. And more...
● Group subsets of constraints
● Partial validation
● Order constraint validations
● Create your own
● Bootstrap API
● Messages can be i18n
● ...
59. JAX-RS 1.1
● High-level HTTP API for RESTful Services
● POJO and Annotations Based
● API also available
● Maps HTTP verbs (Get, Post, Put, Delete...)
● JAX-RS 1.0 has been released in 2008
● JAX-RS 1.1 integrates with EJBs
(and more generally with Java EE 6)
60. Hello World
@Path("/helloworld")
public class HelloWorldResource {
@GET
@Produces("text/plain")
public String sayHello() {
return "Hello World";
}
}
GET http://example.com/helloworld
61. Hello World
Request
GET /helloworld HTTP/1.1
Host: example.com
Accept: text/plain
Response
HTTP/1.1 200 OK
Date: Wed, 12 Nov 2008 16:41:58 GMT
Server: GlassFish v3
Content-Type: text/plain; charset=UTF-8
Hello World
62. Different Mime Types
@Path("/helloworld")
public class HelloWorldResource {
@GET @Produces("image/jpeg")
public byte[] paintHello() {
...
@GET @Produces("text/plain")
public String displayHello() {
...
@POST @Consumes("text/xml")
public void updateHello(String xml) {
...
}
63. Parameters & EJBs
@Path("/users/{userId}")
@Stateless
public class UserResource {
@PersistenceContext
EntityManage em;
@GET @Produces("text/xml")
public String getUser(@PathParam("userId")
String id){
User u = em.find(User.class, id)
...
}
}
64. And more...
● Different parameters (@MatrixParam,
@QueryParam, @CookieParam ...)
● Support for @Head and @Option
● Inject UriInfo using @Context
● JAX-RS servlet mapping with
@ApplicationPath("rs")
● ...
65. Injection in Java EE 5
● Common Annotation
● @Resource
● Specialized cases
● @EJB, @WebServicesRef,
@PersistenceUnit …
● Requires managed objects
● EJB, Servlet and JSF Managed Bean in EE 5
● Also in any Java EE 6's
javax.annotation.ManagedBean
66. Injection in Java EE 6
CDI (JSR 299)
&
@Inject (JSR 330)
Inject just about anything anywhere...
...yet with strong typing
67. The tale of 2 dependency JSRs
● Context & Dependency Injection for Java EE
● Born as WebBeans, unification of JSF and EJB
● “Loose coupling, strong typing"
● Weld as the reference implementation, others to follow
(Caucho, Apache)
● Dependency Injection for Java (JSR 330)
● Lead by Google and SpringSource
● Minimalistic dependency injection, @Inject
● Applies to Java SE, Guice as the reference impl.
● Both aligned and part of Java EE 6 Web Profile
71. Injection with qualifier
qualifier (user-defined label)
i.e. « which one? »
@Inject @Premium Customer cust;
injection point type
72. Contexts (The 'C' in CDI)
● Built-in “Web” Scopes :
● @RequestScoped *: requires Serializable
fields to enable passivation
● @SessionScoped*
● @ApplicationScoped*
● @ConversationScoped*
● Other Scopes
● @Dependent is the default pseudo-scope for
un-scoped beans (same as Managed Beans)
● Build your own @ScopeType
● Clients need not be scope-aware
73. @ConversationScoped
● A conversation is :
● explicitly demarcated
● associated with individual browser tabs
● accessible from any JSF request
@Named
@ConversationScoped
public class ItemFacade implements Serializable {
@Inject Conversation conversation;
...
conversation.begin(); // long-running
...
conversation.end(); // schedule for destruction
74. And more...
● Alternatives
● @Alternative annotation on various impl.
● Interceptors & Decorators
● Loosely-coupled orthogonal (technical) interceptors
● @Decorator bound to given interface
● Stereotypes (@Stereotype)
● Captures any of the above common patterns
● Events
● Loosely-coupled (conditional) @Observable events
75. Agenda
● Quick overview
● New concepts
● New features on existing specifications
● New specifications
● Summary
78. Time is changing
Java EE 6 and GlassFish v3 shipped
th
final releases on December 10 2009
79. Want to know more ?
● Covers most specs
● 450 pages about Java EE 6
“The best book ever !” – my sister
“Nice photo at the back” – my mum
“Plenty of pages to draw on” – my daughter