Core Java 8 (JavaSE):
- Basic Java
- Types, Control Flow, Classes, Objects, Interfaces, Exceptions
- Java 5+ features – Annotations and Generics, Generic Collections
- Java 8 Lambdas
- Concurrency, Threads and Executors (Thread Pools)
- Basic RDBMS and SQL Concepts (using MySQL or Maria DB)
- Tables, Views, Transactions, Isolation Levels, Locking, Entity Relationships
- SELECT INSERT, DELETE, UPDATE, JOIN, LEFT JOIN, etc
- Primary Key, Foreign Key, Constraints, Indexes
- Introduction to JUnit for development unit testing.
- At least 25% of the hands on demos will be in JUnit.
- Purpose of development unit testing and its importance in large scale applications.
- Unit testing POJO classes/services and REST services from JUnit (JavaSE).
- Introduction to Ant for building java applications.
- Will cover ant targets, javac, jar tasks, etc and building war applications.
CDI/Weld: Context And Dependency Injection (JavaEE Standard)
- Weld: Official CDI implementation for JavaEE (from Jboss/RedHat)
- High level overview of Dependency Injection
- Overview and comparison of Spring and Weld
- Dependency Injection with Weld
- Producers (of injectable objects – factory methods)
- Qualifiers, Alternatives, Decorators
- Interceptors (Aspect oriented programming)
- Scopes – Request Scope, Application Scope, Dependent Scope.
JPA/Hibernate 5 (JavaEE Standard):
- Object Relational Mapping
- JPA Persistence/Transaction Architecture
- Persistent Classes with JPA Annotations
- Persisting Entities and Transactions
- Entity Associations
- Entity Inheritance
- Transitive Persistence
- JPQL and HQL
- JPA Criteria (from JPA 2.0)
- Concurrency and Locking
- ORM Special Features: Fetch Optimizations.
JAX-RS/Jersey (JavaEE Standard):
- JAX-RS: JavaEE Rest Services Standard
- Jersey: Sun/Oracle implementation of REST Standard
- Benefits of REST Services coupled with Single Page Apps(SPA)/Mobile Apps
- Demo of a simple REST Service which integrates following technologies to serve an AngularJS application:
- Java 8 ,Hibernate/JPA ,Database ,Weld/CDI ,Jersey/JAX-RS ,Tomcat
- Minimal JavaEE Web Application (.war with Servlet/JSPs)- deploying to Tomcat 8.
- HTTP Protocol: GET/POST/PUT/DELETE Methods.
- JSON: Introduction to JSON
- REST Resource using Weld for Dependency injection from REST layer all the way down to Entity layer.
- Finding objects – Various types of GET Requests and URL Path matching – @Produces
- Creating and updating objects – @Consumes
- Centralized error handling and returning proper HTTP Codes and error messages.
- e.g. Create a User, Update a User, Delete a User, and find one or more Users.
- Will define a REST project for each student – so that they can develop it themselves with faculty guidance
- Angular Introduction
- Model view and controller explained
- services and dependency injection
- Data binding and services
- Single page applications
- writing custom services
- writing custom directives
- organizing the code, building an application
- WAR Archive format
- web.xml structure for Weld and REST Services
- Tomcat Server Configuration
- Stateless vs Stateful Web Services Deployment
- DataSources Configuration
- WebServices Deployment and Redeployment