Sessions at Javantura v5 conference ordered alphabetically:
- Agile waterfalls – Ivan Andrijić (ASSECO SEE)
- Are you familiar with Test Doubles Patterns? – Sebastian Malaca (UBS)
- BarCodeCoin – get ready to be paid – Krunoslav Hrnjak (yottabyte)
- Boost Up Your Team Dynamics! – Rudolf Borić, Davor Čengija (CROZ)
- Bring Web Components to Java Realm – Haijian Wang (Vaadin)
- Disk Deduplication à la Groovy – Tomislav Nakić-Alfirević (Amphinicy Technologies)
- Empower your Java applications with IBM Watson – Andrija Kranjec (ecx.io)
- Event Processing in Action – Sebastian Malaca (UBS)
- Fantastic Java contracts – and where to define them? – Milen Dyankov (Liferay)
- How to lose friends and automate people – Marko Elezović (Oradian)
- Introduction to CQRS and Event Sourcing with Axon framework – Petar Zrinščak (CROZ)
- Immutable collections in Java 9 – do we need them? – Aleksander Radovan (King ICT), Branko Mihaljević (HUJAK)
- Java EE Microservices on Kubernetes With KumuluzEE – Anton Zvonko Gazvoda, Matjaž B. Jurič (FRI)
- Java Mission Control – Adnan Isajbegovic (Comtrade Software)
- Kick-start your development productivity with JHipster – Mihael Sedmak (Bytecraft), Danijel Mitar (King ICT)
- Kotlin 101 – Petar Marijanović (Production Ready)
- Kubernetes for Java developers – Marko Lukša (Red Hat)
- Learn and use Java smarter with JShell – Matija Dujmović (King ICT)
- Many facets of Scrum – Darko Špoljarić (CROZ)
- Minor Rants About Monitoring on the JVM – Ivan Topolnjak (Kamino Technologies)
- OOP in the Enterprise – Nicolas Fränkel (SAP)
- Oracle Academy – resources for students, schools, and universities – Darko Jureković (Oracle)
- Server-side Kotlin – Željko Trogrlić
- Smart pipelining – reactive approach to computation scheduling – Dušan Zamurović (Casumo)
- The Security Manager on the JVM – Nicolas Fränkel (SAP)
- Two stories from Java – our experience with HTTP/2 and Garbage Collectors – Leo Bach, Hrvoje Grgić, Branko Mihaljević (RIT Croatia)
- Vagrant up your dev environment – Danijel Mitar (King ICT)
Agile waterfalls
Ivan Andrijić (ASSECO SEE)
You need committed and happy developers to make an innovative and quality product. Agile fulfills developer’s and product owner’s needs, but clients, sponsors, managers and complete old-fashioned ecosystem understand only waterfall development model. How to make Frankenstein project that uses agile waterfalls? ASSECO product development of the HCE mobile payment shows how those worlds are combined. What compromises had to be made and challenges overcome? See the presentation.
Track: Innovative and Creative Projects, Experiences, and Solutions
Type: Presentation
Level: General
Are you familiar with Test Doubles Patterns?
Sebastian Malaca (UBS)
We usually call them mocks. However, there are more patterns and it is really good to know them all. Why? Because it will make your tests simpler and more readable. Using Test Double Pattern in the right place helps you to express precise intention and behaviour of the objects. During the talk, I will explain the difference between those patterns. I will also show you how they can increase the quality of your tests. And, finally, I will show you what happens when we abuse the usage of Test Doubles.
Track: Methodologies and Tools
Type: Presentation
Level: Something in between
BarCodeCoin – get ready to be paid
Krunoslav Hrnjak (yottabyte)
Get familiar Croatian Payment Transaction Policy and Standards for easy payments implemented in BarCodeCoin platform and presented in obrasci.eu web portal. BarCodeCoin is an internet platform for generating PDF417 barcodes that contain payment information for the HUB3 standard. The platform supports the validation and control of the data entered in the payment order under the Payment Transaction Policy. Portal obrasci.eu is an example of a web application that uses the BCC platform. obrasci.eu is a web portal that generates user-generated barcodes / payment fees for fees and fees when using public services. With the payment itself, it is possible to download the appropriate prescribed forms (requests, requests) filled in with the user data. Portal obrasci.eu uses the BarCode Coin’s online platform for validating and generating barcodes.
Track: Innovative and Creative Projects, Experiences, and Solutions
Type: Presentation + Demonstration
Level: General

Boost Up Your Team Dynamics!
Rudolf Borić, Davor Čengija (CROZ)
Did you ever build a project with completely new/fresh team? With people who don’t know each other? People who don’t know each other skills? I bet you have, we also give it a try. This is how we attacked that issue. We had three things in mind, time for forming teams which was not more than 120min, very important thing were 3in1 meetings which boosted up our team dynamics in big, and the last were very good defined requirements from which the project tasks were branched. Of course, there were other stuff we fought that come suddenly. But that is ordinary in this world.
Track: Methodologies and Tools
Type: Presentation
Level: General
Bring Web Components to Java Realm
Haijian Wang (Vaadin)
Web components, as the new W3C standard, are changing the frontend world. Even though the standard itself is not finalised yet, quite some applications are already built with web components. Just go to Youtube.com, you will see many of them. A few tools have emerged to help developers use web components, but unfortunately, all of them are for javascript developers. As a Java developer, how can you take advantage of web components while stay on the Java realm, which is still the de facto language for business applications? Come to my session and you will see.
Track: Web and Mobile Development
Type: Presentation
Level: General
Disk Deduplication à la Groovy
Tomislav Nakić-Alfirević (Amphinicy Technologies)
You have large external drives to store/backup years of your valuable data. It’s become a mess and you have multiple copies of things of the same things all over the place. Every 3-4 years, you experience a sigh of relief when you buy a disk that’s 2-3x larger, but a few months later, it’s at 96% usage. Sound familiar? I bet it does. There are few types of software with so many tools as disk deduplication tools. Who would have thought that finding one that runs on Linux (too) and compares folders (not just files) would be impossible? Time to roll your own, Groovy style! Come and hear what’s wrong with disk deduplication tools, why this one rocks 🙂 and why Groovy is a nice language to write it in!
Track: Innovative and Creative Projects, Experiences, and Solutions
Type: Presentation
Level: General
Empower your Java applications with IBM Watson
Andrija Kranjec (ecx.io)
Where and how to start developing Java applications with IBM Watson. Watson API overview and real-life (production) use cases. A short demonstration on how to create a chatbot using IBM Watson. Find out how we work and play with it inside ecx.io – an IBM company.
Track: Innovative and Creative Projects, Experiences, and Solutions
Type: Presentation + Demonstration
Level: Something in between
Event Processing in Action
Sebastian Malaca (UBS)
Event-driven architecture allows you to observe, collect, analyze, and react dynamically to real-time events. Since most of functionalities of our applications are reactions on some requests or situations it’s worth to know advantages of event processing and event-driven architecture. Ability to recognize events we have to react on make as more aware of the domain we have to work with. Including them into our applications makes our software more cohesive, granular and easier to understand, extend and modify. During the talk you will learn what event processing is. What are the differences between event processing and event sourcing. I will describe major concepts of event-driven architecture and tell you how to design event processing applications.
Track: Core Java, Frameworks, and Servers
Type: Presentation + Demonstration
Level: Something in between
Fantastic Java contracts – and where to define them?
Milen Dyankov (Liferay)
Creating objects in Java using `new` keyword was a no brainer for many years! Then IoC / DI questioned the approach and component containers changed the way we think about it! Managing dependencies between artifacts is yet another topic we still tend to think we have sorted out. Maven central has become the de facto standard artifact repository. Yet it’s far from perfect as it is still developer’s responsibility to know and configure proper dependencies. This easily becomes nightmare with transitive and provided dependencies. So may be it’s time to challenge that approach too? What if we move from hardcoded artifacts to artifact discovery based on well defined contracts? This talk will demonstrate how that can be done today, what are the issues and draft a potential roadmap to fully automated dependency management!
Track: Core Java, Frameworks, and Servers
Type: Presentation + Demonstration
Level: Something in between
How to lose friends and automate people
Marko Elezović (Oradian)
The worst thing you can do to a fellow colleague is ask him for an-hoc favour. Hey, could you please build this? Run that test? Deploy there? Automation is the only way to fly nowadays, with CI/CD being integral to retaining sanity across builds. The talk will be a tour de force of the automation effort required to spin up and maintain a Scala/Play/React SaaS core banking system. A high-paced, detailed look into a very concrete setup including SBT, Yarn, Docker and Nexus caching via Jenkins.
Track: Methodologies and Tools
Type: Presentation
Level: Very detailed
Introduction to CQRS and Event Sourcing with Axon framework
Petar Zrinščak (CROZ)
Apps age like fish, data ages like wine. Since we cannot predict the future we cannot put the price on data we throw away therefore we cannot afford to lose data. Data is the most valuable part of every system. And while system architectures, implementation technologies and hardware changes over time, core data remains. Besides just collecting and storing data it is very important how we structure the data as well. What if instead of storing records in columns and tables and spending hours and hours on designing relational schema and mappings we could simply store business facts just as they are? We could completely avoid complex abstractions and dealing with ORMs if we model our data in terms of business events. If we go even further and separate recording of our data from interpreting what it means, we could easily experiment with all kinds of interpretations. We also leave a room for any future interpretations we can’t even think off at the moment off system design. In this talk I’m going to talk about how to achieve all those goals using CQRS design pattern with Event Sourcing concept. I will explain what Domain Driven Design is and how to use it to model business logic more naturally to the real world. I will talk about Axon framework and how to use it to implement CQRS and Event Sourcing. And in the end I’m going to talk about our experience in using Axon to build one of our systems.
Track: Innovative and Creative Projects, Experiences, and Solutions
Type: Presentation
Level: General

Immutable collections in Java 9 – do we need them?
Aleksander Radovan (King ICT), Branko Mihaljević (HUJAK)
With the release of Java 9, we got an opportunity to elegantly create an immutable collection by using nice factory methods. But, what benefits do we get as developers with immutable collection beside getting an exception when we try to change the content of the collection? Besides this, the microbenchmarking features introduced in Java 9 will be also presented to compare the performance differences between mutable and immutable collections.
Track: Core Java, Frameworks, and Servers
Type: Presentation
Level: General

Java EE Microservices on Kubernetes With KumuluzEE
Anton Zvonko Gazvoda, Matjaž B. Jurič (FRI)
Kubernetes is one of the most commonly used runtime platforms for containerized applications. Providing automatic bin-packing, horizontal scaling, automated rollouts and rollbacks, self-healing, service discovery, load balancing, and other services out of the box, Kubernetes is a platform that suits microservices down to the ground. However, equally as important as the utilities provided by the runtime environment is the ability of the microservice framework to exploit provided utilities. We will demonstrate how KumuluzEE microservice framework is able to make use of the Kubernetes utilities for optimal execution of the microservices. The focus of our talk will be on deploying KumuluzEE microservices that are using service discovery and service configuration to the Kubernetes cluster, implementing microservice health-checks, and automatic scaling of the KumuluzEE microservices on the Kubernetes.
Track: Core Java, Frameworks, and Servers
Type: Presentation + Demonstration
Level: Something in between
Java Mission Control
Adnan Isajbegovic (Comtrade Software)
Oracle Java Mission Control with Java Flight Recorder is a tool to continuously collect low level and detailed runtime information directly from JVM. JMC delivers advanced unobtrusive Java monitoring and management, suitable for use both in development and production environments. This presentation gives an introduction to main components in the toolchain, how to use JMC and JFR to monitor, manage, profile and diagnose your applications with given and your custom build functionalities.
Track: Core Java, Frameworks, and Servers
Type: Presentation + Demonstration
Level: General
Kick-start your development productivity with JHipster
Mihael Sedmak (Bytecraft), Danijel Mitar (King ICT)
Today, there is certainly more than one way to start building your Java web app (using your favourite IDE capabilities, Spring Initializr) – be it a traditional monolith or a microservice oriented architecture. One of the more complete approaches to bootstraping your app is certainly JHipster – a development platform to generate, develop and deploy Spring Boot + Angular Web applications and Spring microservices. We will take a look if generating a complete (strongly opinionated!) JHipster application brings the boost in productivity it promises, or are we still better of starting from a smaller footprint (start-from-scratch or Spring Initializr).
Track: Methodologies and Tools
Type: Presentation + Demonstration
Level: Something in between
Kotlin 101
Petar Marijanović (Production Ready)
In this talk, I will try to go through some of Kotlins excellent features and, at the same time, compare them with Java. Since it is interoperable, you can use it on existing Java/Android projects with ease.
Track: Methodologies and Tools
Type: Presentation
Level: General
Kubernetes for Java developers
Marko Lukša (Red Hat)
You’ve heard of Kubernetes and would like to get started with it, but it just seems like it would take a lot of effort and a long time to get over the initial hump? Fear no more. In this talk, we’ll quickly go over what Kubernetes is and then show how you can use Maven to not only package your app into JARs, but also put it into a Docker image, push the image to a registry and then run the app in Kubernetes. All you need to do is run mvn clean deploy.
Track: Methodologies and Tools
Type: Presentation + Demonstration
Level: General
Learn and use Java smarter with JShell
Matija Dujmović (King ICT)
Have you ever wanted to quickly try out some Java code and then spent the next 5 minutes opening an IDE, creating a project, adding a class and then FINALLY trying out the code? Well, those days are gone now that Java 9 has introduced JShell. Reclaim those 5 minutes, use them to get yourself some coffee, and join me to find out why JShell is the most significant learning and productivity-enhancement tool in Java’s 20 year existence.
Track: Core Java, Frameworks, and Servers
Type: Presentation + Demonstration
Level: General
Many facets of Scrum
Darko Špoljarić (CROZ)
When people walk into working with Scrum there are often quite a few suprises for everyone in the team. Turns out that Scrum really is, in many occasions – disruptive. How that affects many traditional roles and people’s work-world views, is the topic of this talk.
Track: Methodologies and Tools
Type: Presentation
Level: Very detailed
Minor Rants About Monitoring on the JVM
Ivan Topolnjak (Kamino Technologies)
Let’s talk about the elephant in the room: Production Systems Monitoring. It’s no secret that for many of us monitoring is an afterthought, something that is triggered by a failure that was too hard to debug or customers complaining about the service being too slow but not knowing exactly when or why. In this session we will have a look at what options are available for monitoring applications running on the JVM and what’s the minimum effort you should do to start monitoring. Disclaimer: I’m one of the authors of Kamon, a library for monitoring applications on the JVM.
Track: Methodologies and Tools
Type: Presentation
Level: Something in between
OOP in the Enterprise
Nicolas Fränkel (SAP)
* You don’t write OOP!
* Many frameworks (e.g. Spring) are not OO
* What is OOP?
* Example of a bank account model
* How to evolve from traditional Spring to OOP Spring?
* Benefits, drawbacks
Track: Core Java, Frameworks, and Servers
Type: Presentation + Demonstration
Level: General
Oracle Academy – resources for students, schools, and universities
Darko Jureković (Oracle)
Are you a student? Do you want to learn more about Java or the databases? Are you interested in obtaining an Oracle certificate? This presentation will help you learn more about Oracle Academy resources you may use to achieve your objectives mentioned above.
Track: Trends, Future, and Community
Type: Presentation
Level: General
Server-side Kotlin
With all the benefits of the latest Java Enterprise Edition and Spring Boot frameworks, the last step toward super lightweight server applications is language itself. Although Kotlin became popular as a better language for Android development, its features and multi-paradigm approach are perfect for server-side applications, too. Learn how to convert simple server from Java to Kotlin, while avoiding issues caused by subtle differences between the two.
Track: Core Java, Frameworks, and Servers
Type: Presentation + Demonstration
Level: Something in between
Smart pipelining – reactive approach to computation scheduling
Dušan Zamurović (Casumo)
Serving customers from all around the world, we are fighting with the worst enemy – time. Surrounded by it, computations can be done in a limited time frame. Data growth adds on top of this challenge. Our scheduler saves us time, costs and maintenance efforts while delivering stability and robustness. Our jobs are idempotent and replayable. Whole computational tree or a part of it needs to be recomputed? We have that covered too. We are serverless. We are fearless. We move fast and don’t break things.
Track: Innovative and Creative Projects, Experiences, and Solutions
Type: Presentation
Level: Something in between
The Security Manager on the JVM
Nicolas Fränkel (SAP)
* What’s the sandbox?
* What code you can run out of the sandbox?
* What’s the problem with that?
* How to fix it?
* How to create a policy file?
Track: Core Java, Frameworks, and Servers
Type: Presentation + Demonstration
Level: General

Two stories from Java – our experience with HTTP/2 and Garbage Collectors
Leo Bach, Hrvoje Grgić, Branko Mihaljević (RIT Croatia)
In this presentation, we will be covering our research into two new features that made the cut into Java 9. The first half of this talk will cover the limitations of HTTP/1.1 and compare it to the performance of HTTP/2, while the second half will focus on comparing the performance of Garbage-First (G1), Parallel, and Concurrent Mark Sweet (CMS) garbage collectors with the DaCapo benchmark suite.
Track: Core Java, Frameworks, and Servers
Type: Presentation
Level: General
Vagrant up your dev environment
Danijel Mitar (King ICT)
How can Vagrant help us installing development environments? Can Vagrant help with prototyping QA, UAT and production environments? Ever experienced bugs manifesting only on production environment with no idea how to reproduce on developer workstation? – Vagrant up for the rescue!
Track: Methodologies and Tools
Type: Presentation + Demonstration
Level: Something in between
You must be logged in to post a comment.