This project based course will lead you step-by-step throughout the development of a Java application from the scratch. If you have already felt frustrated by reading a lot of tutorials and not realizing how to put together all these technologies, I guarantee you will not have this feeling here, as we will be coding together a whole application, passing through the project creation, coding, writing unit and integration tests, creating the database, configuring the application server, deploying the application and performing real tests! This course will cover a lot of Java technologies that will be used in practice while we create our project, including: Java EE 7: JPA 2.1, Bean Validation 1.1, JMS 2.0, EJB 3.2, CDI 1.1, JAX-RS 2.0, security. Java 8: Lambda expressions, Date and Time API, streams and more. Libraries such as Gson, JUnit, Mockito and Hamcrest. Arquillian for integration tests. Wildfly 8 (former JBoss) as Application Server. PostgreSQL for production and HSQLDB/H2 for unit and integration tests. Maven. Eclipse IDE (this is a Maven project, so you can use other IDE).Postman Chrome extension to test all our REST endpoints. This course is not only about technologies, but also about best practices, such as writing automated tests (both unit and integration) for most of the code, refactoring, OOP (object-oriented programming) and much more. Who is this course for: Honestly, for every Java developer that wants to see how to create a real enterprise application using state-of-the-art technologies and best practices. Seriously! However, if you are beginner in the Java world, you will need to explore more the details of some technologies, as this course in really hands on. If you are still unsure about enrolling in this course, watch the first free videos so you can get more details about the architecture, technologies and requirements about the project that will be created throughout this course.