JUnit. New Opportunities for Testing on the

Size: px
Start display at page:

Download "JUnit. New Opportunities for Testing on the"

Transcription

1 JUnit New Opportunities for Testing on the JVM

2 Sam Brannen Spring and Java Consultant Trainer, Coach, Hardcore developer at heart Java Developer for about 20 years Spring Framework Core Committer since 2007 JUnit 5 Core Committer since October 2015

3 Experts in Spring and Enterprise Java Areas of expertise Spring * JUnit 5 Java EE Software Architecture Code Reviews Where you find us Zurich,

4 Agenda Impetus for Change JUnit 5 Spring 5 Q & A

5 Show of hands

6 Why a new version of JUnit?

7 Impetus for Change JUnit 4.0 was released a decade ago a lot has changed since then testing needs have matured expectations have grown Modularity à big ball of mud (i.e., only THE junit.jar) Test discovery and execution à tightly coupled Extensibility à lot of room for improvement Let s not forget Java 8 and Java 9

8 JUnit 4 Runner API Very powerful In fact, it can do anything But you can t combine Runners Parameterized + SpringRunner à no way

9 JUnit 4 Rules are meant to be broken JUnit 4.7: MethodRule JUnit 4.9: TestRule Great for simple use cases Can even be combined But a single rule can t be used for method-level and class-level callbacks Plus zero support for instance-level callbacks Case in point: SpringClassRule / SpringMethodRule

10 JUnit Lambda Crowdfunding Campaign Initiated by Johannes Link and Marc Philipp Later joined by Matthias Merdes, Stefan Bechtold, & Sam Brannen Ran from July to October 2015 Raised 53,937 Euros from 474 individuals and companies 4 companies donated 6 weeks of developer time

11 Thanks!

12 The Kick-off Team

13 JUnit 5

14 Roadmap Prototype à December 2 nd, ALPHA à February 1 st, Milestones à July 2016 July Release Candidates à July 2017 August GA à September 10 th, à Today! (October 3 rd, 2017)

15 JUnit 5 in a Nutshell Modular Extensible Modern Forward and backward compatible JUnit Platform supports JUnit 3.8, JUnit 4, and JUnit 5 New testing frameworks can be run with JUnit 4 infrastructure

16 JUnit 5 Java Versions Java 8 baseline but can be used to test application code compiled against previous JDK versions Java 9 #WorksFineOnJDK9 every artifact has a stable AUTOMATIC-MODULE-NAME module-path scanning support coming in 5.1

17 JUnit 5 = Platform + Jupiter + Vintage JUnit Platform Foundation for launching testing frameworks on the JVM Launcher and TestEngine APIs Revolutionary ConsoleLauncher, Gradle plugin, Maven Surefire provider JUnit Jupiter New programming model and extension model for JUnit 5 Evolutionary JUnit Vintage TestEngine for running JUnit 3 and JUnit 4 based tests Necessary

18 Launcher API Used by IDEs and build tools to launch the framework Central API for discovering and executing tests via one or more engines LauncherDiscoveryRequest selectors and filters Feedback provided via the TestExecutionListener API ConsoleLauncher for command-line support

19 TestEngine API Test engine discovers and executes tests for a particular programming model Automatic registration via Java s ServiceLoader mechanism JupiterTestEngine VintageTestEngine Implement your own

20 Third-party TestEngines Specsy Spek Cucumber Drools Scenario jqwik source:

21 VINTAGE JUPITER THIRD PARTY PLATFORM

22 THIRD PARTY JUPITER VINTAGE PLATFORM

23 IDEs and Build Tools IntelliJ: IDEA Eclipse: NetBeans: Eclipse Oxygen 4.7.1a (to be released next week) Gradle: interim solution from JUnit Team to be taken over by Gradle team (end of 2017) Android JUnit 5: third-party Android support Maven: interim solution from JUnit Team being taken over by Maven Surefire team See user guide and sample apps for examples

24 JUnit Jupiter Extension Model Extension marker interface org.junit.jupiter.api.extension package containing all extension APIs implement as many as you used to register one or more extensions interface, class, or method level o or as a meta-annotation

25 Extension APIs BeforeAllCallback BeforeEachCallback BeforeTestExecutionCallback AfterTestExecutionCallback AfterEachCallback AfterAllCallback Lifecycle Callbacks TestExecutionExceptionHandler ExecutionCondition TestInstancePostProcessor ParameterResolver TestTemplateInvocationContextProvider Dependency Injection

26 JUnit Jupiter Programming Model org.junit.jupiter.api (org.junit.jupiter.params) Annotations and meta-annotations Assertions and Assumptions Custom display names Visibility Tagging Conditional test execution Dependency injection for constructors and methods Lambda expressions and method references Interface default methods Nested test classes Repeated tests, parameterized tests, dynamic tests

27 for TestEngine @Nested / @Disabled

28 JUnit 4 Rule Migration o located in experimental junit-jupiter-migrationsupport module o registers 3 extensions for JUnit Jupiter ExternalResourceSupport o TemporaryFolder, etc. VerifierSupport o ErrorCollector, etc. ExpectedExceptionSupport o ExpectedException o minor bug in 5.0.0; fixed in 5.0.1

29 Assertions org.junit.jupiter.api.assertions Limited set of core assertions assertequals(), assertnotnull(), etc. assertthrows() λ asserttimeout() and asserttimeoutpreemptively() λ assertall() λ Supplier<String> à λ for lazy failure message evaluation message is now the last parameter For more power, use AssertJ, Hamcrest, etc.

30 Assumptions org.junit.jupiter.api.assumptions Limited set of core assumptions For aborting tests mid-flight Otherwise, favor a custom ExecutionCondition for skipping assumetrue() / assumefalse() BooleanSupplier, Supplier<String> λ assumingthat(?, () -> {} ); λ

31 LIVE CODING DEMO from JUnit 4 to JUnit Jupiter

32 Tagging on a test interface, class, void myfasttest() { }

33 Custom Tags as @Tag("fast") Fast void myfasttest() {}

34 Composed Tags as a meta-annotation with other annotations (JUnit, FastTest { void myfasttest() { }

35 Test Names Names default to test class or test method names characters limited based on Java syntax Custom display names Can contain spaces, special chars, and even emoji

36 Dependency Injection Extension Model meets Programming Model ParameterResolver extension API resolves parameters for constructors or method o not and lifecycle methods can register multiple simultaneously only one wins Use cases server URL, DataSource, Spring ApplicationContext, etc.

37 TestInfo TestInfo: inject etc. access display name, tags, class, method TestInfoParameterResolver eating our own dog food ;-) See also: RepetitionInfo TestReporter MockitoExtension SpringExtension

38 LIVE CODING DEMO tags, display names, and dependency injection

39 Conditional Test Execution Extension Model meets Programming Model DisabledCondition Game Changer eating our own dog food ;-) Deactivate via Launcher, system property, or junit-platform.properties file junit.conditions.deactivate = org.junit.*

40 Interface Default Methods Introduces the concept of a test interface Enables multiple inheritance in tests a.k.a., testing @Test See StringTests and TestInterfaceDemo examples in user guide

41 DEMO default methods

42 Nested Test Classes Enables logical, hierarchical grouping of test classes with shared initialization and state from outer classes on non-static nested classes i.e., inner classes You can even combine nested classes and test interfaces See TestingAStack example in user guide and Bowling Game Kata by Tim Riemer

43 DEMO nested test classes

44 Repeated Tests Annotate a method instead o and specify the number of repetitions Optionally have the RepetitionInfo injected as a method parameter Optionally override the display name

45 @RepeatedTest in void repeatedtest(repetitioninfo repetitioninfo) { assertequals(5, repetitioninfo.gettotalrepetitions()); value = 5, name = "Wiederholung {currentrepetition} von {totalrepetitions} ) void repeatedtestingerman() { //... }

46 Parameterized Tests (junit-jupiter-params) Annotate a method instead o and specify the source of the arguments o optionally override the display name Sources String, int, long, double & custom ArgumentsProvider

47 Argument Conversion Implicit conversion o Primitive types and their wrappers o Enums o java.time types (JSR-310) Explicit conversion and custom ArgumentConverter built-in support for JSR-310

48 @ParameterizedTest = { "mom", "dad", "radar", "racecar", "able was I ere I saw elba" }) void palindromes(string candidate) { asserttrue(ispalindrome(candidate)); }

49 LIVE CODING DEMO repeated and parameterized tests

50 Dynamic Tests Conventional tests are static (i.e., known at compile A DynamicTest is registered at runtime λ as lambda expression in a stream, collection, etc. by a method annotated Can also register a DynamicContainer for dynamic nesting Somewhat analogous to parameterized tests just more dynamic

51 Dynamic Tests in Stream<DynamicTest> dynamictestsfromintstream() { // Generates tests for the first 10 even integers. return IntStream.iterate(0, n -> n + 2).limit(10).mapToObj(n -> dynamictest("test" + n, () -> asserttrue(n % 2 == 0))); }

52 DEMO dynamic tests

53 What s Missing? Scenario tests Ordering Parallel execution Execution in user-defined thread Declarative test suites for the JUnit Platform Java 9 module-path scanning

54 Spring 5 + JUnit 5

55 Spring Support for JUnit Jupiter Fully integrated in Spring Framework 5.0! released last week Supports all Core Spring TestContext Framework features Constructor and method @Value Conditional test execution via SpEL expressions ApplicationContext configuration annotations Also works with Spring Framework 4.3

56 Configuring JUnit Jupiter with @ContextConfiguration @EnabledIf SpEL expression evaluation for conditional execution

57 DEMO Spring 5 and JUnit

58 Spring Boot JUnit 5 Custom SpringEventsWebTest { }

59 Spring Boot JUnit 5 MockMvc + method-level DI + class EventsControllerTests page should display more than 10 events") void listevents(@autowired MockMvc mockmvc) throws Exception { mockmvc.perform(get("/")).andexpect(view().name("event/list")).andexpect(model().attribute("events", hassize(greaterthan(10)))); }

60 In closing

61 JUnit 5 Resources Project Homepage à User Guide à Javadoc à GitHub à Gitter à Stack Overflow à

62 Spring Resources Spring Framework à Spring Guides à Spring JIRA à Spring on GitHub à Stack Overflow à spring, spring-test, spring-mvc, spring-boot,

63 Additional JUnit 5 JavaOne 2017 JUnit 5 BOF Tuesday, Oct 03, 6:45 p.m. - 7:30 p.m. Moscone West - Room 2016 JUnit5: Features, Architecture, and Extensibility Wednesday, Oct 04, 2:45 p.m. - 3:30 p.m. Moscone West - Room 2009

64 Demos Used in this Presentation

65 JUnit Q & A Sam Brannen

Embracing. with. Noopur Gupta. Eclipse JDT co-lead. IBM

Embracing. with. Noopur Gupta. Eclipse JDT co-lead. IBM Embracing Noopur Gupta Eclipse JDT co-lead IBM India with noopur_gupta@in.ibm.com @noopur2507 1 JUnit Framework JUnit 4.0 Released in 2006 JUnit 5.0 Released in September 2017 The top 20 Java libraries

More information

Görge Albrecht State of the Union

Görge Albrecht State of the Union @g_o_rge JUnit - State of the Union Görge Albrecht 206 JUnit State of the Union Görge Albrecht Software Developer since 989 Freelance Code Mentor "taking care of code" Need help writing simpler code? Contact

More information

JUnit 5 - Was bringt die neue Version?

JUnit 5 - Was bringt die neue Version? 1 JUnit 5 - Was bringt die neue Version? Matthias Merdes JUnit 5 Team Marc Philipp JUnit 5 Team 2 Matthias Merdes github.com/mmerdes 3 Committer im JUnit 5-Team Lead Developer Architektur & Services bei

More information

JUNIT 5 & TESTCONTAINERS. Testing with Java and Docker

JUNIT 5 & TESTCONTAINERS. Testing with Java and Docker JUNIT 5 & TESTCONTAINERS Testing with Java and Docker TIM RIEMER Solution Architect @ Vorwerk Digital tim.riemer@vorwerk.de Co-Lead Kotlin UG Dusseldorf @zordan_f github.com/timriemer JUNIT 5 JUNIT 5 JUnit

More information

JUNIT 5 EXTENSIONS 1. 1

JUNIT 5 EXTENSIONS 1. 1 JUNIT EXTENSIONS 1. 1 MARC PHILIPP Software Engineer @ LogMeIn in Karlsruhe, Germany JUnit Maintainer since 2012 Twitter: @marcphilipp Web: marcphilipp.de 1. 2 JUNIT IS RELEASED! Release date: September

More information

JUnit 5 User Guide. Stefan Bechtold, Sam Brannen, Johannes Link, Matthias Merdes, Marc Philipp, Christian Stein. Version 5.1.0

JUnit 5 User Guide. Stefan Bechtold, Sam Brannen, Johannes Link, Matthias Merdes, Marc Philipp, Christian Stein. Version 5.1.0 JUnit 5 User Guide Stefan Bechtold, Sam Brannen, Johannes Link, Matthias Merdes, Marc Philipp, Christian Stein Version 5.1.0 Table of Contents 1. Overview................................................................................

More information

Junit 5 and Sling/AEM Mocks

Junit 5 and Sling/AEM Mocks APACHE SLING & FRIENDS TECH MEETUP 10-12 SEPTEMBER 2018 Junit 5 and Sling/AEM Mocks Stefan Seifert, pro!vision GmbH About the Speaker AEM Developer Apache Sling PMC CTO of pro!vision GmbH Stefan Seifert

More information

Test-Driven Development JUnit

Test-Driven Development JUnit Test-Driven Development JUnit Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level Wednesday, January 24, 2018 1 Unit Testing Testing

More information

Introduction to Spring 5, Spring MVC and Spring REST

Introduction to Spring 5, Spring MVC and Spring REST Introduction to Spring 5, Spring MVC and Spring REST Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject to GST/HST Delivery Options: Attend

More information

JAVA. 1. Introduction to JAVA

JAVA. 1. Introduction to JAVA JAVA 1. Introduction to JAVA History of Java Difference between Java and other programming languages. Features of Java Working of Java Language Fundamentals o Tokens o Identifiers o Literals o Keywords

More information

Binghamton University. CS-140 Fall Unit Testing

Binghamton University. CS-140 Fall Unit Testing Unit Testing 1 Test Early, Test Often 2 Informal Unit Testing package lab05; import java.lang.illegalargumentexception; public class ProfTest { public static void main(string[] args) { System.out.println("Professor

More information

Application Development in JAVA. Data Types, Variable, Comments & Operators. Part I: Core Java (J2SE) Getting Started

Application Development in JAVA. Data Types, Variable, Comments & Operators. Part I: Core Java (J2SE) Getting Started Application Development in JAVA Duration Lecture: Specialization x Hours Core Java (J2SE) & Advance Java (J2EE) Detailed Module Part I: Core Java (J2SE) Getting Started What is Java all about? Features

More information

Binghamton University. CS-140 Fall Unit Testing

Binghamton University. CS-140 Fall Unit Testing Unit Testing 1 Test Early, Test Often 2 Informal Unit Testing public static void main(string[] args) { Rectangle rect = new Rectangle ( new Point(20,30), 20,40 ); System.out.println("Created " + rect);

More information

Junit. Presentation & Tools (Eclipse, Maven, Mockito, Spring)

Junit. Presentation & Tools (Eclipse, Maven, Mockito, Spring) Junit Presentation & Tools (Eclipse, Maven, Mockito, Spring) arnaud.nauwynck@gmail.com This document: http://arnaud-nauwynck.github.io/lessons/coursiut-junit.pdf What is Junit? Wikipedia JUnit Junit birth

More information

SYLLABUS JAVA COURSE DETAILS. DURATION: 60 Hours. With Live Hands-on Sessions J P I N F O T E C H

SYLLABUS JAVA COURSE DETAILS. DURATION: 60 Hours. With Live Hands-on Sessions J P I N F O T E C H JAVA COURSE DETAILS DURATION: 60 Hours With Live Hands-on Sessions J P I N F O T E C H P U D U C H E R R Y O F F I C E : # 4 5, K a m a r a j S a l a i, T h a t t a n c h a v a d y, P u d u c h e r r y

More information

Spring Framework 5.0 on JDK 8 & 9

Spring Framework 5.0 on JDK 8 & 9 Spring Framework 5.0 on JDK 8 & 9 Juergen Hoeller Spring Framework Lead Pivotal 1 Spring Framework 5.0 (Overview) 5.0 GA as of September 28 th, 2017 one week after JDK 9 GA! Embracing JDK 9 as well as

More information

Introduction to Spring Framework: Hibernate, Spring MVC & REST

Introduction to Spring Framework: Hibernate, Spring MVC & REST Introduction to Spring Framework: Hibernate, Spring MVC & REST Training domain: Software Engineering Number of modules: 1 Duration of the training: 36 hours Sofia, 2017 Copyright 2003-2017 IPT Intellectual

More information

Introduction to Spring Framework: Hibernate, Web MVC & REST

Introduction to Spring Framework: Hibernate, Web MVC & REST Introduction to Spring Framework: Hibernate, Web MVC & REST Course domain: Software Engineering Number of modules: 1 Duration of the course: 50 hours Sofia, 2017 Copyright 2003-2017 IPT Intellectual Products

More information

Java J Course Outline

Java J Course Outline JAVA EE - J2SE - CORE JAVA After all having a lot number of programming languages. Why JAVA; yet another language!!! AND NOW WHY ONLY JAVA??? CHAPTER 1: INTRODUCTION What is Java? History Versioning The

More information

JVA-117A. Spring-MVC Web Applications

JVA-117A. Spring-MVC Web Applications JVA-117A. Spring-MVC Web Applications Version 4.2 This course enables the experienced Java developer to use the Spring application framework to manage objects in a lightweight, inversion-of-control container,

More information

Getting Started with Gradle

Getting Started with Gradle Getting Started with Gradle Speaker Sterling Greene ( sterling@gradle.com) Principal Engineer, Gradle Inc Clone the example project Agenda Gradle Project History Gradle Best Practices Gradle Basics Java

More information

A- Core Java Audience Prerequisites Approach Objectives 1. Introduction

A- Core Java Audience Prerequisites Approach Objectives 1. Introduction OGIES 6/7 A- Core Java The Core Java segment deals with the basics of Java. It is designed keeping in mind the basics of Java Programming Language that will help new students to understand the Java language,

More information

SpringSource Tool Suites M3

SpringSource Tool Suites M3 SpringSource Tool Suites 3.0.0.M3 - New and Noteworthy - Martin Lippert 3.0.0.M3 July 9, 2012 Updated for 3.0.0.M3 ENHANCEMENTS 3.0.0.M3 General Updates Distribution based on Eclipse Juno (4.2.0) STS now

More information

Desarrollo de Aplicaciones Web Empresariales con Spring 4

Desarrollo de Aplicaciones Web Empresariales con Spring 4 Desarrollo de Aplicaciones Web Empresariales con Spring 4 Referencia JJD 296 Duración (horas) 30 Última actualización 8 marzo 2018 Modalidades Presencial, OpenClass, a medida Introducción Over the years,

More information

Eclipse and Java 8. Daniel Megert Platform and JDT Lead Eclipse PMC Member IBM Rational Zurich Research Lab

Eclipse and Java 8. Daniel Megert Platform and JDT Lead Eclipse PMC Member IBM Rational Zurich Research Lab Eclipse and Java 8 Daniel Megert Platform and JDT Lead Eclipse PMC Member IBM Rational Zurich Research Lab Eclipse and Java 8 New Java language features Eclipse features for Java 8 (demo) Behind the scenes

More information

Page 1

Page 1 Java 1. Core java a. Core Java Programming Introduction of Java Introduction to Java; features of Java Comparison with C and C++ Download and install JDK/JRE (Environment variables set up) The JDK Directory

More information

CORE JAVA. Saying Hello to Java: A primer on Java Programming language

CORE JAVA. Saying Hello to Java: A primer on Java Programming language CORE JAVA Saying Hello to Java: A primer on Java Programming language Intro to Java & its features Why Java very famous? Types of applications that can be developed using Java Writing my first Java program

More information

Extreme Java Productivity with Spring Roo and Spring 3.0

Extreme Java Productivity with Spring Roo and Spring 3.0 Extreme Java Productivity with Spring Roo and Spring 3.0 Rod Johnson Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Agenda Motivation

More information

JAVA. Duration: 2 Months

JAVA. Duration: 2 Months JAVA Introduction to JAVA History of Java Working of Java Features of Java Download and install JDK JDK tools- javac, java, appletviewer Set path and how to run Java Program in Command Prompt JVM Byte

More information

GAVIN KING RED HAT CEYLON SWARM

GAVIN KING RED HAT CEYLON SWARM GAVIN KING RED HAT CEYLON SWARM CEYLON PROJECT A relatively new programming language which features: a powerful and extremely elegant static type system built-in modularity support for multiple virtual

More information

Component based Development. Table of Contents. Notes. Notes. Notes. Web Application Development. Zsolt Tóth

Component based Development. Table of Contents. Notes. Notes. Notes. Web Application Development. Zsolt Tóth Component based Development Web Application Development Zsolt Tóth University of Miskolc 2017 Zsolt Tóth (University of Miskolc) Component based Development 2017 1 / 30 Table of Contents 1 2 3 4 Zsolt

More information

Fast Track to Spring 3 and Spring MVC / Web Flow

Fast Track to Spring 3 and Spring MVC / Web Flow Duration: 5 days Fast Track to Spring 3 and Spring MVC / Web Flow Description Spring is a lightweight Java framework for building enterprise applications. Its Core module allows you to manage the lifecycle

More information

Breaking Apart the Monolith with Modularity and Microservices CON3127

Breaking Apart the Monolith with Modularity and Microservices CON3127 Breaking Apart the Monolith with Modularity and Microservices CON3127 Neil Griffin Software Architect, Liferay Inc. Specification Lead, JSR 378 Portlet 3.0 Bridge for JavaServer Faces 2.2 Michael Han Vice

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

Programming Kotlin. Familiarize yourself with all of Kotlin s features with this in-depth guide. Stephen Samuel Stefan Bocutiu BIRMINGHAM - MUMBAI

Programming Kotlin. Familiarize yourself with all of Kotlin s features with this in-depth guide. Stephen Samuel Stefan Bocutiu BIRMINGHAM - MUMBAI Programming Kotlin Familiarize yourself with all of Kotlin s features with this in-depth guide Stephen Samuel Stefan Bocutiu BIRMINGHAM - MUMBAI Programming Kotlin Copyright 2017 Packt Publishing First

More information

Documentation (and midterm review)

Documentation (and midterm review) Documentation (and midterm review) Comp-303 : Programming Techniques Lecture 13 Alexandre Denault Computer Science McGill University Winter 2004 February 16, 2004 Lecture 13 Comp 303 : Programming Techniques

More information

Web Application Development Using Spring, Hibernate and JPA

Web Application Development Using Spring, Hibernate and JPA Web Application Development Using Spring, Hibernate and JPA Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject to GST/HST Delivery Options:

More information

JUnit in EDA Introduction. 2 JUnit 4.3

JUnit in EDA Introduction. 2 JUnit 4.3 Lunds tekniska högskola Datavetenskap, Nov 25, 2010 Görel Hedin EDA260 Programvaruutveckling i grupp projekt Labb 3 (Test First): Bakgrundsmaterial JUnit in EDA260 1 Introduction The JUnit framework is

More information

Selenium Testing Course Content

Selenium Testing Course Content Selenium Testing Course Content Introduction What is automation testing? What is the use of automation testing? What we need to Automate? What is Selenium? Advantages of Selenium What is the difference

More information

SpringSource Tool Suites 3.0.0

SpringSource Tool Suites 3.0.0 SpringSource Tool Suites 3.0.0 - New and Noteworthy - Martin Lippert 3.0.0 August 13, 2012 Updated for 3.0.0.RELEASE ENHANCEMENTS 3.0.0 General Updates Spring Tool Suite & Groovy/Grails Tool Suite Starting

More information

Test Execution and Automation. CSCE Lecture 15-03/20/2018

Test Execution and Automation. CSCE Lecture 15-03/20/2018 Test Execution and Automation CSCE 747 - Lecture 15-03/20/2018 Executing Tests We ve covered many techniques to derive test cases. How do you run them on the program? You could run the code and check results

More information

ApplicationComposer. The TomEE Swiss Knife

ApplicationComposer. The TomEE Swiss Knife ApplicationComposer The TomEE Swiss Knife ApplicationComposer API is mainly contained in org.apache.openejb.testing package (historically, today we would have called the package org.apache.tomee.applicationcomposer).

More information

JVA-117E. Developing RESTful Services with Spring

JVA-117E. Developing RESTful Services with Spring JVA-117E. Developing RESTful Services with Spring Version 4.1 This course enables the experienced Java developer to use the Spring MVC framework to create RESTful web services. We begin by developing fluency

More information

Hello Gradle. TestNG, Eclipse, IntelliJ IDEA. Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2.

Hello Gradle. TestNG, Eclipse, IntelliJ IDEA. Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2. Hello Gradle TestNG, Eclipse, IntelliJ IDEA Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2 Dávid Bedők 2017.09.18. v0.2 Dávid Bedők (UNI-OBUDA) Hello JavaEE 2017.09.18.

More information

Index. Decomposability, 13 Deep reflection, 136 Dependency hell, 19 --describe-module, 39

Index. Decomposability, 13 Deep reflection, 136 Dependency hell, 19 --describe-module, 39 Index A --add-exports option, 28, 134 136, 142, 192 Apache Maven compatibility, 214 Compiler plugin, 212, 214 goals, 209 JDeps plugin goals, 210 options, 211 JEP 223 New Version-String scheme, 209 Automatic

More information

JAVA Training Overview (For Demo Classes Call Us )

JAVA Training Overview (For Demo Classes Call Us ) JAVA Training Overview (For Demo Classes Call Us +91 9990173465) IT SPARK - is one of the well-known and best institutes that provide Java training courses. Working professionals from MNC's associated

More information

CS 6456 OBJCET ORIENTED PROGRAMMING IV SEMESTER/EEE

CS 6456 OBJCET ORIENTED PROGRAMMING IV SEMESTER/EEE CS 6456 OBJCET ORIENTED PROGRAMMING IV SEMESTER/EEE PART A UNIT I 1. Differentiate object oriented programming from procedure oriented programming. 2. Define abstraction and encapsulation. 3. Differentiate

More information

Java 8 Programming for OO Experienced Developers

Java 8 Programming for OO Experienced Developers www.peaklearningllc.com Java 8 Programming for OO Experienced Developers (5 Days) This course is geared for developers who have prior working knowledge of object-oriented programming languages such as

More information

COURSE DETAILS: CORE AND ADVANCE JAVA Core Java

COURSE DETAILS: CORE AND ADVANCE JAVA Core Java COURSE DETAILS: CORE AND ADVANCE JAVA Core Java 1. Object Oriented Concept Object Oriented Programming & its Concepts Classes and Objects Aggregation and Composition Static and Dynamic Binding Abstract

More information

Web Application Development Using Spring, Hibernate and JPA

Web Application Development Using Spring, Hibernate and JPA Web Application Development Using Spring, Hibernate and JPA Duration: 5 Days Price: 1,995 + VAT Course Description: This course provides a comprehensive introduction to JPA (the Java Persistence API),

More information

Spring Interview Questions

Spring Interview Questions Spring Interview Questions By Srinivas Short description: Spring Interview Questions for the Developers. @2016 Attune World Wide All right reserved. www.attuneww.com Contents Contents 1. Preface 1.1. About

More information

JSR 377 Desktop Application Framework September Andres Almiray

JSR 377 Desktop Application Framework September Andres Almiray JSR 377 Desktop Application Framework September 29 2017 Andres Almiray Agenda Goals Information to be gathered Implementation notes Issues Questions, discussion, next steps 2 Goals 3 Goals Define APIs

More information

I Got My Mojo Workin'

I Got My Mojo Workin' I Got My Mojo Workin' Gary Murphy Hilbert Computing, Inc. http://www.hilbertinc.com/ glm@hilbertinc.com Gary Murphy I Got My Mojo Workin' Slide 1 Agenda Quick overview on using Maven 2 Key features and

More information

SPRING MOCK TEST SPRING MOCK TEST I

SPRING MOCK TEST SPRING MOCK TEST I http://www.tutorialspoint.com SPRING MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Spring Framework. You can download these sample mock tests at

More information

Test-Driven Development JUnit

Test-Driven Development JUnit Test-Driven Development JUnit Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level Wednesday, January 18, 2017 1 Simulator submission

More information

104. Intermediate Java Programming

104. Intermediate Java Programming 104. Intermediate Java Programming Version 6.0 This course teaches programming in the Java language -- i.e. the Java Standard Edition platform. It is intended for students with previous Java experience

More information

Complete Java Contents

Complete Java Contents Complete Java Contents Duration: 60 Hours (2.5 Months) Core Java (Duration: 25 Hours (1 Month)) Java Introduction Java Versions Java Features Downloading and Installing Java Setup Java Environment Developing

More information

Testing Lucene and Solr with various JVMs: Bugs, Bugs, Bugs

Testing Lucene and Solr with various JVMs: Bugs, Bugs, Bugs Testing Lucene and Solr with various JVMs: Bugs, Bugs, Bugs Uwe Schindler Apache Lucene Committer & PMC Member uschindler@apache.org http://www.thetaphi.de, http://blog.thetaphi.de @ThetaPh1 SD DataSolutions

More information

Web Application Development Using Spring, Hibernate and JPA

Web Application Development Using Spring, Hibernate and JPA Web Application Development Using Spring, Hibernate and JPA Duration: 5 Days Price: CDN$3275 *Prices are subject to GST/HST Course Description: This course provides a comprehensive introduction to JPA

More information

Peers Techno log ies Pv t. L td. Core Java & Core Java &Adv Adv Java Java

Peers Techno log ies Pv t. L td. Core Java & Core Java &Adv Adv Java Java Page 1 Peers Techno log ies Pv t. L td. Course Brochure Core Java & Core Java &Adv Adv Java Java Overview Core Java training course is intended for students without an extensive programming background.

More information

Class Dependency Analyzer CDA Developer Guide

Class Dependency Analyzer CDA Developer Guide CDA Developer Guide Version 1.4 Copyright 2007-2017 MDCS Manfred Duchrow Consulting & Software Author: Manfred Duchrow Table of Contents: 1 Introduction 3 2 Extension Mechanism 3 1.1. Prerequisites 3 1.2.

More information

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm } Annotations do not directly affect program semantics.

More information

Week 10 Tuesday. CS 400 Programming III. X-Team Exercise #4: due before 10pm on April 16th

Week 10 Tuesday. CS 400 Programming III. X-Team Exercise #4: due before 10pm on April 16th Week 10 Tuesday X-Team Exercise #4: due before 10pm on April 16th Team Project: Tournament-Bracket (D-Team 30pts) Milestone #1: due before 10pm April 20 th (A-Team 20pts) Milestone #2: due before 10pm

More information

Best Practices for Unit Testing in Kotlin

Best Practices for Unit Testing in Kotlin Best Practices for Unit Testing in Kotlin @philipp_hauer Spreadshirt KotlinConf, Amsterdam Oct 05, 2018 Question My First Test in Kotlin... class UserControllerTest { companion object { bu, s a c! open

More information

Getting Started with. Lite.

Getting Started with. Lite. Getting Started with Lite www.boltiq.io Getting Started with Lite Download Download the app as either a container or Library. http://www.boltiq.io/bolt-lite/ See Examples Open the example test projects

More information

Testing with JUnit 1

Testing with JUnit 1 Testing with JUnit 1 What are we doing here? Learning the mechanics of how to write tests in Java using JUnit Without considering issues like coverage Using JUnit is sometimes called unit testing Unit

More information

Hello Maven. TestNG, Eclipse, IntelliJ IDEA. Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2.

Hello Maven. TestNG, Eclipse, IntelliJ IDEA. Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2. Hello Maven TestNG, Eclipse, IntelliJ IDEA Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2 Dávid Bedők 2017.09.19. v0.1 Dávid Bedők (UNI-OBUDA) Hello JavaEE 2017.09.19.

More information

Spring Framework 5.0 Themes & Trends

Spring Framework 5.0 Themes & Trends Spring Framework 5.0 Themes & Trends a.k.a. Reactive Microservices on JDK 9 Juergen Hoeller Spring Framework Lead Pivotal 1 Spring Framework 4.3 Last 4.x feature release! 4.3 GA: June 2016 Extended support

More information

Software Engineering a.a Unit Tests for SpringMVC Prof. Luca Mainetti University of Salento

Software Engineering a.a Unit Tests for SpringMVC Prof. Luca Mainetti University of Salento Software Engineering a.a. 2017-2018 Unit Tests for SpringMVC Prof. University of Salento Junit - Introduction JUnit is the most popular Java Unit testing framework We typically work in large projects -

More information

Arun Gupta is a technology enthusiast, a passionate runner, and a community guy who works for Sun Microsystems. And this is his blog!

Arun Gupta is a technology enthusiast, a passionate runner, and a community guy who works for Sun Microsystems. And this is his blog! Arun Gupta is a technology enthusiast, a passionate runner, and a community guy who works for Sun Microsystems. And this is his blog! Rational tools Consulting, Training, Automation ClearCase ClearQuest

More information

1 Shyam sir JAVA Notes

1 Shyam sir JAVA Notes 1 Shyam sir JAVA Notes 1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write

More information

GUJARAT TECHNOLOGICAL UNIVERSITY

GUJARAT TECHNOLOGICAL UNIVERSITY GUJARAT TECHNOLOGICAL UNIVERSITY MASTER OF COMPUTER APPLICATIONS (COURSE CODE-6) Subject: Java Programming Subject Code: 2630002 Year II (Semester III) (W.E.F. JULY 2013) Objectives: To develop proficiency

More information

Fast Track to Core Java 8 Programming for OO Developers (TT2101-J8) Day(s): 3. Course Code: GK1965. Overview

Fast Track to Core Java 8 Programming for OO Developers (TT2101-J8) Day(s): 3. Course Code: GK1965. Overview Fast Track to Core Java 8 Programming for OO Developers (TT2101-J8) Day(s): 3 Course Code: GK1965 Overview Java 8 Essentials for OO Developers is a three-day, fast-paced, quick start to Java 8 training

More information

ArcGIS Viewer for Flex Advanced Topics

ArcGIS Viewer for Flex Advanced Topics Esri International User Conference San Diego, California Technical Workshops July 27, 2012 ArcGIS Viewer for Flex Advanced Topics Lloyd Heberlie Björn Svensson Before we begin Who are we? - Bjorn Svensson

More information

Enterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009

Enterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009 Enterprise Java Development using JPA, Hibernate and Spring Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009 About the Speaker Enterprise Architect Writer, Speaker, Editor (InfoQ)

More information

Java Programming. Manuel Oriol, March 22nd, 2007

Java Programming. Manuel Oriol, March 22nd, 2007 Java Programming Manuel Oriol, March 22nd, 2007 Goal Teach Java to proficient programmers 2 Roadmap Java Basics Eclipse Java GUI Threads and synchronization Class loading and reflection Java Virtual Machines

More information

mvn package -Dmaven.test.skip=false //builds DSpace and runs tests

mvn package -Dmaven.test.skip=false //builds DSpace and runs tests DSpace Testing 1 Introduction 2 Quick Start 2.1 Maven 2.2 JUnit 2.3 JMockit 2.4 ContiPerf 2.5 H2 3 Unit Tests Implementation 3.1 Structure 3.2 Limitations 3.3 How to build new tests 3.4 How to run the

More information

Tattletale. What is Tattletale? Enterprise archives JBoss Application Server 7 Putting it all together Roadmap

Tattletale. What is Tattletale? Enterprise archives JBoss Application Server 7 Putting it all together Roadmap Tattletale What is Tattletale? Enterprise archives JBoss Application Server 7 Putting it all together Roadmap Problems You are faced with a lot of Java archives and you don't know how they relate You need

More information

CORE JAVA 1. INTRODUCATION

CORE JAVA 1. INTRODUCATION CORE JAVA 1. INTRODUCATION 1. Installation & Hello World Development 2. Path environment variable d option 3. Local variables & pass by value 4. Unary operators 5. Basics on Methods 6. Static variable

More information

The Checker Framework: pluggable static analysis for Java

The Checker Framework: pluggable static analysis for Java The Checker Framework: pluggable static analysis for Java http://checkerframework.org/ Werner Dietl University of Waterloo https://ece.uwaterloo.ca/~wdietl/ Joint work with Michael D. Ernst and many others.

More information

... Fisheye Crucible Bamboo

... Fisheye Crucible Bamboo Sander Soo MSc Computer Science Oracle Certified Professional (Java SE) Nortal (email: sander.soo@nortal.com) Mercurial Java Spring Framework AngularJS Atlassian stack... Fisheye Crucible Bamboo 2 Manual

More information

Spring framework was initially written by Rod Johnson and was first released under the Apache 2.0 license in June 2003.

Spring framework was initially written by Rod Johnson and was first released under the Apache 2.0 license in June 2003. About the Tutorial Spring framework is an open source Java platform that provides comprehensive infrastructure support for developing robust Java applications very easily and very rapidly. Spring framework

More information

Geo Catching Sprint #3 Kick-off

Geo Catching Sprint #3 Kick-off LP IDSE - GL Geo Catching Sprint #3 Kick-off 03/01/2017 Cécile Camillieri/Clément Duffau 1 GeoCatching sprint #1 Drawing of zones on a map User login and joining of a game Browser-based geolocation of

More information

Community Participation in the JCP Program: a winning combination November 2012

Community Participation in the JCP Program: a winning combination  November 2012 1 Community Participation in the JCP Program: a winning combination heather@jcp.org http://jcp.org November 2012 JCP.next.1 (JSR 348) JCP 2.8, implemented in October 2011 Three themes aimed at: Transparency

More information

Improve and Expand JavaServer Faces Technology with JBoss Seam

Improve and Expand JavaServer Faces Technology with JBoss Seam Improve and Expand JavaServer Faces Technology with JBoss Seam Michael Yuan Kito D. Mann Product Manager, Red Hat Author, JSF in Action http://www.michaelyuan.com/seam/ Principal Consultant Virtua, Inc.

More information

Status Report. JSR-305: Annotations for Software Defect Detection. William Pugh Professor

Status Report. JSR-305: Annotations for Software Defect Detection. William Pugh Professor JSR-305: Annotations for Software Defect Detection William Pugh Professor Status Report Univ. of Maryland pugh@cs.umd.edu http://www.cs.umd.edu/~pugh/ 1 This JSR is under active development Slides have

More information

Java Programming Course Overview. Duration: 35 hours. Price: $900

Java Programming Course Overview. Duration: 35 hours. Price: $900 978.256.9077 admissions@brightstarinstitute.com Java Programming Duration: 35 hours Price: $900 Prerequisites: Basic programming skills in a structured language. Knowledge and experience with Object- Oriented

More information

Junit Overview. By Ana I. Duncan

Junit Overview. By Ana I. Duncan Junit Overview By Ana I. Duncan 1 What Is Junit Why Junit, Why test? Junit Lifecycle Junit Examples from CM Other Testing frameworks Resources Before After Agenda 2 JUnit is a member of the xunit testing

More information

09/08/2017 CS2530 INTERMEDIATE COMPUTING 9/8/2017 FALL 2017 MICHAEL J. HOLMES UNIVERSITY OF NORTHERN IOWA TODAY S TOPIC: Exceptions and enumerations.

09/08/2017 CS2530 INTERMEDIATE COMPUTING 9/8/2017 FALL 2017 MICHAEL J. HOLMES UNIVERSITY OF NORTHERN IOWA TODAY S TOPIC: Exceptions and enumerations. CS2530 INTERMEDIATE COMPUTING 9/8/2017 FALL 2017 MICHAEL J. HOLMES UNIVERSITY OF NORTHERN IOWA TODAY S TOPIC: Exceptions and enumerations. 1 RUNTIME ERRORS All of us have experienced syntax errors. This

More information

(2½ hours) Total Marks: 75

(2½ hours) Total Marks: 75 (2½ hours) Total Marks: 75 N. B.: (1) All questions are compulsory. (2) Makesuitable assumptions wherever necessary and state the assumptions mad (3) Answers to the same question must be written together.

More information

Homeschool Programming, Inc.

Homeschool Programming, Inc. Online Course Overview Course Title: TeenCoder: Java Programming TeenCoder: Java Programming Online Course Syllabus and Planner Updated November, 2015 Online ISBN: 978-0-9887070-2-3, published 2015 by

More information

Liberty Right Fit for MicroProfile

Liberty Right Fit for MicroProfile IBM _ 1 Liberty Right Fit for MicroProfile Alasdair Nottingham, IBM, STSM, WebSphere Runtime Architect Kevin Sutter, IBM, STSM, Java EE Architect JavaOne Sept 2016 Who Are We? Kevin Sutter WebSphere Java

More information

Testing. Topics. Types of Testing. Types of Testing

Testing. Topics. Types of Testing. Types of Testing Topics 1) What are common types of testing? a) Testing like a user: through the UI. b) Testing like a dev: through the code. 2) What makes a good bug report? 3) How can we write code to test code (via

More information

Tuesday, April 26, 2011

Tuesday, April 26, 2011 Modular Class Loading With JBoss Modules David M. Lloyd Senior Software Engineer, Red Hat, Inc. The Class Path is Dead - Mark Reinhold, 2009 What does this mean? The limitations inherent in -classpath

More information

Struts: Struts 1.x. Introduction. Enterprise Application

Struts: Struts 1.x. Introduction. Enterprise Application Struts: Introduction Enterprise Application System logical layers a) Presentation layer b) Business processing layer c) Data Storage and access layer System Architecture a) 1-tier Architecture b) 2-tier

More information

CS 215 Software Design Homework 3 Due: February 28, 11:30 PM

CS 215 Software Design Homework 3 Due: February 28, 11:30 PM CS 215 Software Design Homework 3 Due: February 28, 11:30 PM Objectives Specifying and checking class invariants Writing an abstract class Writing an immutable class Background Polynomials are a common

More information

Name of subject: JAVA PROGRAMMING Subject code: Semester: V ASSIGNMENT 1

Name of subject: JAVA PROGRAMMING Subject code: Semester: V ASSIGNMENT 1 Name of subject: JAVA PROGRAMMING Subject code: 17515 Semester: V ASSIGNMENT 1 3 Marks Introduction to Java (16 Marks) 1. Write all primitive data types available in java with their storage size in bytes.

More information

Core Capabilities Part 3

Core Capabilities Part 3 2008 coreservlets.com The Spring Framework: Core Capabilities Part 3 Originals of Slides and Source Code for Examples: http://courses.coreservlets.com/course-materials/spring.html Customized Java EE Training:

More information

/ / JAVA TRAINING

/ / JAVA TRAINING www.tekclasses.com +91-8970005497/+91-7411642061 info@tekclasses.com / contact@tekclasses.com JAVA TRAINING If you are looking for JAVA Training, then Tek Classes is the right place to get the knowledge.

More information

Spring 2.5 on the Way to 3.0

Spring 2.5 on the Way to 3.0 Spring 2.5 on the Way to 3.0 Jürgen Höller VP & Distinguished Engineer SpringSource Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Agenda

More information