| Java Training   Overview 
Available for the following platforms with detailed lab instructions included for the specific platform:
 Java EE Servers: • WildFly 8 AS • GlassFish 4 (upon request)
 
 Development Environments: • Eclipse
 
 The Enterprise JavaBeans 3 specification is a deep overhaul of the EJB specification that improved the EJB architecture by reducing its complexity from the developer's point of view.  It leverages annotations and Object-Relational Mapping (ORM) technologies to eliminate the dependence on complex EJB APIs, allow POJO (Plain Old Java Object) based development, and provide an effective technology for creating distributed, transactional components, and for mapping relational data to an object schema. The EJB 3.2 release is part of the Java EE 7 specification and adds additional refinements and capability.
 
 This course provides thorough coverage of the EJB3 technology - presented in a clear and effective manner. It starts with the basic concepts and APIs of EJB and then continues on with complex topics such as message driven beans and transactions.  New concepts such as the use of annotations and the use of CDI / Dependency Injection to initialize references are covered in depth. The course also includes thorough coverage of managing persistence using the Java Persistence API 2 (JPA2).  This course provides additional coverage of JPA as compared to our Fast Track to EJB3 course.
 
 The course uses hands-on labs and a well-paced approach to make this complex technology understandable in an accelerated fashion.  You will come away with a comprehensive understanding of EJB and the important issues that need to be considered to use it in real world applications. This course can be customized to your requirements.
 
 Java Training   Skills Gained
 
    Hands-OnUnderstand the  EJB 3 architecture and API, and how it fits into the overall Java EE  architectureUnderstand and  use the EJB 3 annotationsCreate, deploy &  use stateful & stateless session beansUse CDI (Contexts and Dependency Injection) to initialize resourcesUnderstand and  use Interceptors (Lifecycle and Business Method)Use JNDI (Java Naming and Directory Interface) and be familiar with current portable naming conventions Write EJB clients  (remote and local)Understand,  deploy and use message-driven beansUnderstand  distributed transactions, the Java Transaction API, and the EJB transaction  modelUnderstand and  use the EJB security modelUnderstand  practical architectural issues associated with EJB applicationsUnderstand the  new Java Persistence API (JPA)Create deploy and  use JPA persistent EntitiesMap relational  schemas to persistent entities, including the use of primary keysUnderstand and  use the EntityManagerUnderstand and  use Java Persistence Query LanguageUse optimistic locking and versioningUse advanced JPA capabilities such as entity relationships (1-1, 1-N, N-N, unidirectional, bidirectional), inheritance, and embeddable classesLearn best practices associated with JPA applications 
Minimum 50% hands-on
 Java Training   Course Duration
 
 5 Days
 
 Java Training   Course outline
 Session 1:  Introduction 
        Overview  of EJB and Java Persistence API (JPA)
            Goals  of EJB, EJB in the Java EE architecture  EJB  3.2 Overview
            Session  Beans, Persistent Entities, Message Driven Beans  Lab:
Server setup and introduction Session 2:   Session Beans 
        Session  Bean Overview
            Services  provided, Stateless and Stateful BeansDefining  a Session Bean - EJB 3 AnnotationsThe  Bean Implementation, Remote and Local Business Interface Packaging  and Deployment
            ejb-jar  file, Deployment Descriptors in EJB 3EAR  fileJEE 6+ WAR files and EJBThe EJB Container Lab: Creating a Stateless Session BeanJNDI  Overview
            Distributed  Naming and LookupContext and InitialContextUsing  JNDI Writing an EJB 3 Client
            Client  View of a Session BeanJEE 6 Portable EJB Lookup NamesRunning  the Client Lab: Creating an EJB Client Session 3:  Additional Capabilities 
        Resources  and Dependency Injection
            EJB  referencing another EJBInjecting with CDI/@Inject and with @EJB CDI Qualifiers and ProducersReferencing  Resources, Environment EntriesConnection  Factories (DataSource and others) Lab: Using Dependency InjectionLab: Creating and Using Environment EntriesSession  Bean Lifecycle and Interceptors
            Stateless  Session Bean LifecycleBusiness  Method Interceptors,  InvocationContext, Lifecycle  Callback Interceptors, Interceptor Classes Lab: Working with InterceptorsAsynchronous Methods, Singleton Session BeansStateful  Session Beans
            OverviewDefining,  Client RelationshipLifecycle,  Activation, Passivation Lab: Stateful Session BeansTimer  Service
            Programmatic TimersCalendar-Based Timers Lab: Working with Timers Session 4:   Message-Driven Beans 
        Overview  of Messaging Systems
            Messaging,  Loose CouplingPub/Sub,  Point2Point Overview  of JMS API
            Overview  and StructureConnectionFactory  and DestinationJMS  Producer and Consumer Client exampleJMS  Messages Message-Driven  Beans (MDB)
            Overview  and Goals@MessageDriven  and MDB exampleConfiguring  with activationConfigState  Diagram and Interceptors Lab: Message Driven Beans Session 5:  Transactions  and Security 
        Overview  of Transactions and Transactional Systems
              ACID,  Transaction Managers, Resource Managers Transactions  in EJB 3
              Declarative  Transaction ManagementTransaction  Attributes and Transactional ScopeTransaction  Scenarios and Bean-Managed Tx Lab: Working with TransactionsSecurity
            Java  EE Security Overview (Role-based)@RolesAllowed,  @PermitAll, Role "**"Programmatic Security Lab: Integrating EJB and Java EE Security Session 6:   Exceptions 
        Exception  Overview
              Checked  and Unchecked Exceptions Exceptions  in EJB 3
              Application  Exceptions, System Exceptions EJB 3  Best Practices
              When  to Use, Coarse-Grained Business Interfaces, Session Façade, Transaction  Guidelines, Clustering Session 7:   Introduction to Java Persistence API V2 (JPA2 ) 
        Overview
              Persistence  Layers, Object-Relational Mapping (ORM), JDBCJPA  Overview  Mapping  with JPA
              Entities  and @Entity, ids and @Id, Generated  Id ValuesBasic  Mapping Types Lab: Mapping an Entity ClassEntityManager and Persistence Context
          Persistence Unit and persistence.xmlPersisting  to the DB, the EntityManager, Injecting  an EntityManagerRetrieving  Persistent Entities Lab: Using the EnityManager to persist and find an EntityMore About MappingsLab: Refining your Mappings  Session 8:   Updates and Queries 
        Inserting  and Updating
              Transient,  Persistent, Detached, RemovedPersisting  new Entities, Updating a Persistent Instance Lab: Inserting and Updating an EntityQuerying  and JPQL
          
              Object  Based Queries, Select statements, WHERE clauseNamed  QueriesLab: Creating and Using JPQL QueriesCriteria APILab: Criteria QueryingThe Persistence Lifecycle - JPA Entity States, Lifecycle, and Persistence ContextVersioning and Optimistic Locking
            OverviewDetached EntitiesCreating Versioned Entities Lab: Optimistic Locking Session 9:   Entity Relationships 
        Relationships  Overview 
              Object  Relationships, Participants, Roles, Directionality, Cardinality Relationship  Mapping
              Mapping  Overview (1-1, 1-N, N-1, N-N)Unidirectional  and BidirectionalMapping  One-One, One-ManyJoin  ColumnsRelationship  Inverses Lab: Mapping Entity Relationships
            Many-Many RelationshipsLazy  and Eager LoadingCascadingQueries  Across Relationships (Inner Joins, Outer Joins, Fetch Joins) Lab: Querying Across RelationshipsInheritance  Mapping
            Entity  InheritanceSingle  Table, Joined (Table per Subclass), Table per Concrete ClassPros  and Cons Lab: Mapping InheritanceOther Mapping Capabilities - Embedded Objects, Compound Primary Keys, and Element Collections Session 10:   Additional JPA Capabilities 
        Queries  - Projection, Aggregate, Bulk Update/Delete Extended Persistence ContextsXML Mapping FilesEJB and Java SE Best Practices
            Primary  Keys, Named Queries, Lazy/Eager Loading, Transactional Semantics,  Encapsulation, Report Queries 
 |