Continuous Delivery for Java

Taler: Leif Sørensen

For most software development teams it is a major challange keeping up with the rapidly changing requirements, while meeting the required quality, budget and deadlines. Most companies are implementing Agile or lean methods, but these are not silver bullets solving all problems. This seminar will give an introduction to Continuous Delivery, argue why it is an important part of the solution, and demonstrate a typical Continuous Delivery pipeline implementation for Java based on open source tools like Jenkins, Git, Artifactory, Maven, JUnit, Copertura, FindBugs, PMD, etc.

JVM bytecode engineering

Taler: Kees Jan Koster

This talk gets you started with JVM bytecode engineering. Kees Jan peels away the fluffy Java language syntax to lay bare the gears that make the JVM tick. He will show what options there are for you to compile bytecode and create classes just the way you want them to be.

The talk starts by looking at the low level JVM architecture and the byte code design. You will learn how to compile your own class files from byte code. Kees Jan will demonstrate a number of byte code assemblers and disassemblers, discussing pro and con of each.

You walk away from this talk with a solid understanding of class files and the JVM and byte code architectures.

This talk is open for any developer who programs Java for their day job.

Java Concurrency and Non-blocking IO

Taler: Dr Heinz M. Kabutz

In this talk, we will start with a simple multi-threaded server that is limited by the number of threads allowed on the system and transform the code to use the Java NIO non-blocking features to avoid constructing too many threads.  We will work through the example together in a live coding demonstration.  You will learn about Java concurrency, Executors, multi-threaded data structures, Java NIO, non-blocking operations.

Writing more concise and flexible code with Java 8

Java 8, to be released in March 2014, brings the largest update to the language since the introduction of generics in 2004. This new version of Java incorporate features popular in many other programming languages: the ability to represent a piece of behaviour in a concise form (called lambda expressions) and sql-like operations on collections (called the new Stream API). In this talk, we introduce these new features and show how you can benefit from them to write code that is more readable and more flexible to requirement changes. Be ready to hear about behaviour as data, lambdas, method references, and streams. Code speaks a thousand words so the the talk will be heavily example driven!