Agenda
Watch Now
Welcome to JDConf Americas
Bruno Borges, Microsoft
Join Bruno Borges for the opening of Microsoft JDConf 2024. We're gearing up for an unforgettable virtual experience, connecting Java enthusiasts from around the globe.
JDConf Technical Keynote
Julia's talk will focus on the strong connection between Java coding, cloud technology, AI, and the power of our community. She will show us how Microsoft is helping Java developers fully realize their potential, making it easier for them to develop Java apps with the help of AI and GitHub Copilot, and deploy these apps across various cloud platforms and services. Julia will also talk about Microsoft's deep partnerships within the Java ecosystem and its commitment to supporting and expanding the Java community. It is going to be an insightful session that highlights how together we are moving Java forward.
Cache Me If You Can: Speed Up Your JVM with Project Valhalla
Theresa Mammarella, IBM
OpenJDK’s Project Valhalla is set to revolutionize how the JVM handles data objects in memory. By bringing the characteristics of primitives to Java objects and classes you’ll see denser memory layouts that can lead to many advantages such as improved cache performance and a smaller memory footprint. This talk offers an exploration of Valhalla's objectives, progress, and its potential impact on the Java ecosystem with examples throughout. Come discover how Project Valhalla is on the verge of reshaping the landscape of Java, paving the way for a more efficient and high-performing future.
Empowering Quarkus Applications with AI and OpenTelemetry on Kubernetes
Daniel Oh, Red Hat, Brian Benz, Microsoft
In this session, we delve into the integration of OpenTelemetry with Java applications using the Quarkus framework, deployed to Kubernetes on Azure Kubernetes Service (AKS). The focus is on leveraging the power of Azure's managed Kubernetes service for deploying and managing containerized applications and enhancing telemetry collection and observability. We will also explore the innovative use of GitHub Copilot, an AI-powered coding assistant, to streamline telemetry setup and deployment processes.
Paving a Painless Path to Production AI in Your Java Applications
Mark Heckler, Microsoft
Artificial Intelligence is eating the world, and new and amazing use cases are being discovered every day. These uses for AI aren't just in new domains, but perhaps even more importantly, in areas that are broadly applicable in countless "everyday" mission-critical applications. This places developers in a difficult position: how do you take advantage of these new capabilities without significant investments in both time and tooling to become an AI expert? How do you plug AI into your existing applications without massive rearchitecting and rewriting? Come to this session for a dive-into-the-deep-end introduction of key concepts and tools at your disposal and even better, a *live-coding adventure* using Spring Boot, Java, and Azure OpenAI. You'll leave this session with the knowledge and confidence to pave a painless (and powerful) path to production AI in your Java applications.
From Zero to Java Hero: Visual Studio Code Mastery
Loiane Groner, Citibank
Transform into a Java hero with Visual Studio Code expertise. This hands-on session covers the essentials of intelligent code completion, local application development, and database connectivity through extensions, running tests, and test coverage, empowering you to conquer Java development with this great free and open-source powerful editor.
Instant Coffee: How to Eliminate Java Performance Warmup
Simon Ritter, Azul Systems
Java is consistently in the top three most popular programming languages. Much of the reason for this is the performance and scalability of the JVM. In this session, we’ll compare different approaches to reducing (or eliminating) performance "warmup":
- Graal Native Image, ahead-of-time compilation.
- Recording a just-in-time (JIT) compiler profile of a warmed-up application that can be reused when the application is restarted, eliminating the need for much of the JIT compilation.
- Decoupling the JIT compiler from the JVM in a Cloud environment. Deploying JIT-as-a-Service allows the caching of code and offloading the compilation to save resources.
- Creating a checkpoint of a running application. This includes all application state in addition to the JIT-compiled code. The Coordinated Restore at Checkpoint (CRaC) OpenJDK project will be used as an example.
At the end of the session, you’ll be all set to improve your Java application performance.
Spring AI: Streamlining Java Enterprise AI Development and Deployment
Mark Pollack, Broadcom
This session explores Spring AI, a new framework enabling Java developers to integrate AI seamlessly into enterprise applications. Spring AI provides accessible AI integration through comprehensive API abstractions for various AI Model APIs and vector databases. Participants will learn how Spring AI simplifies data import into vector databases from PDFs and JSON files. The presentation emphasizes the Spring ecosystem's principles of simplicity and efficiency and will guide attendees through the streamlined 'zero to hello world' development process using Spring CLI. Additionally, the session will showcase practical applications of Spring AI, such as AI code generation, and a detailed case study on a Retrieval Augmented Generation (RAG) prototype developed in collaboration with a Tanzu Labs customer. The talk will also cover deploying AI applications to Azure Spring Apps, demonstrating Spring CLI's 'spring asa deploy' command for quick and efficient deployment.
Closing Remarks
Bruno Borges, Microsoft
Join Bruno as he wraps up our eventful journey, sharing key next steps and inspiring final thoughts for the Java community.
Agenda
Watch Now
Welcome to JDConf Asia-Pacific
Rory Preddy, Microsoft
As JDConf Americas concludes, we seamlessly transition to the Asia-Pacific leg of our event, with Rory Preddy taking the stage for the opening remarks. Rory will bring his unique insights and enthusiasm to the Java community, setting the tone for an exciting and enriching experience tailored to our Asia-Pacific audience.
Bootiful Spring Boot 3
Josh Long, Broadcom
Spring Framework 6 and Spring Boot 3 are here, and you know what that means. New baselines and new possibilities! Spring Framework implies a Java 17 and Jakarta EE baseline and offers new support for building GraalVM-native images and a compile-time component model in the new Spring AOT engine. It also offers a new observability layer, declarative HTTP and RSocket clients, preliminary Project Loom and CRaC support, Problem-Details support, and so much more. Join me, Spring Developer Advocate Josh Long (@starbuxman), and we'll look at next-gen Spring.
Virtual Threads in Action
Daniel Kec, Oracle
Do you really like reactive programming? What if I told you that the same performance is achievable with imperative coding style? With virtual threads coming to Java we can once again keep our code base clean and maintainable. Thanks to project Loom in JDK, the paradigm can shift once more even for applications that require high concurrency. I will describe performance problems which most of the modern frameworks solve by forcing developers to enter the dark world of reactive programming. Then I will introduce Helidon Nima - new microservices framework which is built on top of a server designed for Loom with fully synchronous routing that can block as needed, yet still provide high performance under heavy concurrent load. I'll also talk about challenges, benefits and impact on application development in such an environment. - Is it the end of reactive programming?
Building Generative AI Applications with Azure Cosmos DB and Java
Manish Sharma, Principal PM Manager, Microsoft
Join us and learn about the versatile vector database capabilities of Azure Cosmos DB with Java. In this session, you’ll discover how the integration of your operational and transactional data with native vector indexing and search functionalities can enrich your generative AI applications at incredible scale. Learn how to build RAG pattern solutions and manage conversational chat histories, by seamlessly connecting with Azure Open AI.
Maximize Azure Container Apps for Seamless Deployment and Execution
Sean Li, Microsoft
While Java developers favor containers, the overhead of containerizing Java applications via Dockerfiles often introduces complexities. These complexities can result in inconsistencies across applications, hindered updates, and governance challenges. Our focus will be on mitigating these concerns through the Java cloud build process, leveraging cloud-native Buildpacks to simplify containerization. Moving into the execution phase, Java applications commonly rely on various components in the ecosystem for functionalities like discovery, registration, and monitoring. Our aim is to alleviate the burden of deploying and managing these components, enabling you to concentrate on your application's core logic. Join us as we unravel the best way to deploy and connect Java applications in Azure Container Apps, streamlining the process for maximum efficiency and rapid app deployment.
Leveraging Generative AI for Java Service Enhancement
Yoshio Terada, Microsoft
Last year, generative AI made a swift entrance into the public domain, with numerous companies beginning to integrate it into their services. In this session, we will explore how Java-based services can utilize generative AI by selecting appropriate AI models and implementing them within Java. Additionally, we will introduce the concept of 'Responsible AI' for safer corporate adoption and demonstrate how to handle sensitive internal company data through 'Retrieval Augmentation Generation (RAG)' techniques. By incorporating demos and actual code examples, we aim to provide a clear understanding of these methods. Attendees will gain a comprehensive knowledge of various libraries available for leveraging Azure OpenAI within Java and learn how to effectively use them.
Improving HotSpot Scalar Replacement
Cesar Soares, Microsoft
This talk addresses improving scalar replacement and escape analysis in OpenJDK HotSpot, vital for Java performance optimization. We’ll overview these techniques, focusing on their roles in reducing memory overhead and improving cache utilization. Key challenges in HotSpot’s current implementation will be discussed, including handling of complex control flow and allocation merges. We'll then discuss the approach that we used to improve HotSpot scalar replacement implementation to increase the number of objects scalar replaced in an application. We'll conclude the session by sharing results demonstrating enhanced application performance and inviting the audience to ask questions and collaborate with future developments.
Optimize Java Apps for High Traffic Scenarios
Nikita Nallamothu, Microsoft, Sandra Ahlgrimm, Microsoft
Identifying performance issues by simulating real-world scenarios can be challenging. Learn how you can run your load tests and simulate high-scale loads on your apps, no matter where they're hosted – all without worrying about the infrastructure. In today’s digital landscape, application reliability is of utmost importance. Users expect applications to be available and responsive, regardless of the platform or device they are using. Whether gearing up for a seasonal event like Black Friday, handling tax filings, or striving to meet performance requirements during application development, ensuring uninterrupted service is crucial.
This session will explore the role of load testing in ensuring optimal performance for Java applications by using Azure Load Testing. Discover common performance issues and how Apache JMeter simplifies creating custom test scripts. Unlock valuable insights into performance metrics and identify bottlenecks to optimize your Java applications.
Closing Remarks
Rory Preddy, Microsoft
Rory Preddy closes out the Asia-Pacific segment of JDConf with a brief recap and next steps, offering a concise yet impactful conclusion to the event.
Agenda
Watch Now
Welcome to JDConf EMEA
Sandra Ahlgrimm, Microsoft
Sandra will open the EMEA livestream of JDConf, focusing on the latest trends in Java and setting the tone for the day's discussions and presentations. Join her for a concise overview of what's in store for attendees.
Java Meets AI: How to Build LLM-Powered Applications with LangChain4j
Lize Raes, Open Tide
Do you want to build applications powered by Large Language Models (LLMs) using Java? We built LangChain4j exactly for that! The framework allows you to easily create AI-powered chatbots, process loads of unstructured data, and automate processes with the help of AI Services, that can use various tools: call APIs, access databases, and even dynamically execute generated code. You will get a hands-on guided tour through LangChain4j's functionality and its integrations (OpenAI, Google Gemini, HuggingFace, Dall-E, Quarkus, Spring Boot, etc.). We will explain the fundamental building blocks of LLM-powered applications and show you how to chain them together into AI Services. By the end of this session, you will have all the technical knowledge to start coding, along with plenty of inspiration for the applications of the future!
Sparking Developer Joy: Elevating Developer Experience with VSCode Java
Nick Zhu, Microsoft, Mohit Suman, Red Hat, Roland Grunberg, Red Hat
Join us for an immersive session that delves into the cutting-edge advancements in Java development facilitated by the VSCode Java IDE extension. This session will showcase how this extension has evolved to become an indispensable tool for Java developers, fostering a seamless, efficient, and feature-rich coding experience, highlighting key points such as: Java 1.5 to 21: Explore the robust support for Java 21, with a focus on language features and improvements, thus empowering developers to leverage the full potential of modern Java programming. Enhanced Developer Productivity: Delve into the features and tools that significantly boost developer productivity and discover how the extension streamlines development tasks and accelerates the coding process. Collaboration with Red Hat and Microsoft: Uncover the synergies between Red Hat and Microsoft in advancing the Java IDE extension & gain insights into collaborative efforts aimed at enriching the tool's capabilities.
Mastering Testcontainers for Better Integration Tests
Oleg Šelajev, AtomicJar
Testcontainers libraries are a great way to create a reliable environment for running tests. It provides programmable, lightweight, and disposable containers to give you more confidence in your integration tests. Getting started with Testcontainers is super straightforward, but have you looked into more advanced features to supercharge your test suite? In this session, we’ll look deeper at Testcontainers and learn cool things like what’s the best way to debug what happens in a container? How to build more complex topologies of services? What’s the best way to migrate from Docker compose? How can one use Testcontainers for local development in addition to integration tests? And what’s the magical reusable mode everyone is talking about? Whether you’re a practitioner with solid test coverage or just beginning your journey into writing more reliable software, this session will introduce you to Testcontainers and its pretty cool capabilities!
Semantic Kernel for Java
Rory Preddy, Microsoft
With Semantic Kernel (SK), you'll discover a lightweight SDK that effortlessly blends conventional programming languages with LLM AI capabilities. SK introduces features like "prompts" with templating, chaining, and planning, readily available to enhance your programming prowess. Moreover, the Semantic Kernel for Java brings this innovation directly into the Java ecosystem. It's designed to seamlessly integrate with Java applications and services, staying true to Java's idiomatic style, while also facilitating easy integration with other Java libraries and frameworks. Join me on this journey as we uncover the immense potential of SK and the Semantic Kernel for Java. Together, we'll explore how AI and Java can harmoniously coexist, opening up a world of intelligent possibilities.
What's Coming in Jakarta EE 11?
Reza Rahman, Microsoft
Jakarta EE 10 has now been delivered and work on Jakarta progresses. This is a perfect time to begin exploring the horizons of Jakarta EE 11 and how you can help make it reality. We will guide you on how to begin contributing towards Jakarta EE 11. We will cover ways of contributing, what paperwork is needed as well as the likely possibilities for Jakarta EE 11 including high level themes, platform level changes and some detailed features. Some technologies that might change include Jakarta Security, Concurrency and Messaging. New APIs that could be added include Jakarta NoSQL, RPC, Repositories, and Configuration. We will talk about non-specification projects such as the Starter, Tutorial and Samples. We will also discuss what might be after Jakarta EE 11. Bring your thinking caps!
Fast and Lightweight Spring Boot Applications with GraalVM
Alina Yurenko, Oracle Labs
Spring Boot 3.0 has introduced GA of GraalVM Native Image support, previously incubated in the Spring Native project. Now you can easily compile your Spring Boot application ahead of time with GraalVM to produce a native executable that starts fast, needs less memory, and doesn’t require a JVM. In this session we'll take a look at building native Spring Boot apps from scratch, leveraging latest GraalVM features, and using popular libraries.
How to Keep Your Spring Boot Projects Up-to-Date
Martin Lippert, Broadcom
Staying on top of the Spring Boot versions can be a challenge. You need to be aware of new patch or minor version releases. And updating your projects to such a newer version might not always be as easy as changing a version number, especially when updating projects to new minor or even new major versions of Spring Boot. The good news is: The Spring Tools for VSCode help you with all this. They show you relevant information directly in your coding environment like latest versions and support ranges. And they automate updates to newer versions as much as possible - even when upgrading projects to new major versions like Spring Boot 3. This session shows all those features live in action and shows the audience how to keep your Spring Boot projects always up-to-date when using Visual Studio Code.
Closing Remarks
Sandra Ahlgrimm, Microsoft
Sandra wraps up the EMEA segment of JDConf, summarizing key points and outlining next steps for the Java community.
Agenda
Watch Now
Create a Change Data Stream in Minutes with Java, Azure SQL, and Azure Functions
Brian Spendolini, Microsoft
Capturing data changes from a database is a key component in many modern application architectures and microservices. See how to quickly create a change data streams from an Azure SQL Database using Java and Azure SQL Bindings for Azure Functions. Using VS Code, see how you can have the binding created, tested and deployed all from one place in a no code/low code environment.
Simple and Scalable Performance Testing with JMeter DSL
Carlos Gauto, Mercado Libre
JMeter DSL is an open-source developer-friendly tool for running performance tests as code, both locally and at scale. JMeter DSL is a Java API that takes advantage of not only JMeter using it as an engine but also coding benefits as well.
Creating your first test script: Learn how to develop a performance test script from scratch using JMeter DSL. Discover how to define relevant metrics and gain valuable insight into your application's behavior under simulated stress.
CI/CD Integration: Automate your performance testing using GitHub Actions. Learn how to set up workflows that run your tests automatically with each commit and getting clear and concise results.
Whether you are an experienced developer or just taking your first steps in this field, this talk will give you the tools and knowledge you need to take your performance testing skills to the next level.
Visualizing Your Build with the Maven Timeline Plugin
Dan Haywood, Haywood Associates, LTD
You're working on a big app, but the build takes too long. You've already split it into separate modules, and you're using mvn -T1C to build, which definitely speeds things up even if the log output is a mess; in fact you even discovered mvndaemon, so now the build looks rather pretty, and it goes a little bit faster too.
You realise also that with a maven multi-module buiild, module B will only start to compile once all the tests in module A have passed. So you could definitely make your overall build faster by moving A's tests to its own module which could then be executed in parallel with B's build. Is it worth the effort, though?
Using the maven timeline extension, you can run your maven build and end up with a browseable website that will show the timings of each phase of the build. So you can also see if running with more or fewer cores, you can see if it's worth pulling out module A's tests, you can see if it's there are any bottlenecks.
Hybrid Cloud Application Built with Pure Openness
Emily Jiang, IBM
Do you want your cloud native applications to work with hybrid cloud without vendor lock in? Come to this session to learn the how! This session will prepare you to achieve your goal by introducing key open source technologies like Open Liberty, MicroProfile and Jakarta EE. We'll investigate how these technologies can be integrated with cloud native infrastructure including Knative and developer environments to enable a rapid application development without vendor lock-in and prepare for the cloud deployment including Serverless enablement with a live demo using Azure Cloud. The journey to the hybrid cloud and serverless is unlocked!
Data Privacy Concerns and Solutions When using LLMs in Production
Lize Raes, OpenTide
When using AI for internal processes and in production, businesses face challenges with the privacy of employee and customer data, as well as trade secrets. As AI legislation is only just beginning to take shape, this session will explore key considerations such as model provider terms, regulatory environments, and GDPR. Depending on the stringency of your data privacy concerns, we will outline approaches like local prompt filtering, automated anonymization, and the use of local models to reduce or eliminate risks.
What’s New in Jakarta Concurrency 3.1?
Mark Swatosh, IBM
There are a lot of exciting changes coming the latest version of Jakarta Concurrency. This lightening talk will cover the new changes coming in Jakarta Concurrency 3.1, including support for Virtual Threads and the Java Flow APIs.
Spring Tools Live - All the Great New Things
Martin Lippert, Broadcom
As the lead of the Spring Tools, Martin will walk the audience through all the latest and greatest new features and improvements of the Spring Tools for Visual Studio Code.
He will discuss the new Spring Boot version validations that the Spring Tools provide, automated Spring Boot upgrades using OpenRewrite, providing live information from running applications directly in source code, the latest performance improvement while typing and running validations, and much more.
Enjoy this session filled up with live coding, tips and tricks, and insights from under the hood of the Spring Tools.
Enter the Brave New World of GenAI with Vector Search
Mary Grygleski, DataStax
With ChatGPT taking center stage since the beginning of 2023, developers who have not had a chance to work with any forms of Artificial Intelligence or Machine Learning systems may find themselves either intrigued by the “maze” of new terminologies, or some may be eager to learn more, while perhaps a smaller group may not actually want to get themselves into an unknown territory.
The truth is that, whether we like it or not, we have all been “thrust” into this new era of computing. Instead of procrastinating, let’s start by learning about Generative AI specifically with this presentation. We will go over the history and evolution of AI and ML, then look at how it has evolved to where it is today. We will touch upon as many new concepts that have popped up, which include: Generative AI (GenAI), ChatGPT, Large Language Models (LLMs), Natural Language Processing (NLP), Vector DB, and Vector Search. We will then look at a demo on how Vector Search is being done behind the scenes.
Azure Load Testing - An overview
Nagarjuna Vipparthi, Microsoft
This session will introduce Azure Load Testing - a fully managed service for performance testing. This lightning talk will give an overview of the service capabilities and how it can simplify the end-to-end performance testing process. It briefly covers the process to set up a load test and analyze the test results using Azure Load Testing. It also covers how to integrate load tests with CI/CD pipelines for continuous performance validation.
Unlocking Data Access Excellence with Jakarta Data: Simplifying Persistence for Modern Cloud-Native
Otavio Santana, Otaviojava
The Jakarta Data specification revolutionizes data access for Java developers by providing a powerful API that bridges the gap between diverse database types, from relational to NoSQL. It empowers developers to streamline data access and manipulation while adhering to a domain-centric architecture. Discover how Jakarta Data can simplify the complexities of persistence integrations and enhance your application's data management capabilities.
Polyglot Persistence Unleashed: Mastering Enterprise Java Architecture with NoSQL Databases
Otavio Santana, Otaviojava
Unlock the Power of Polyglot Persistence with ‘Polyglot Persistence Unleashed.’ This comprehensive guide takes you on a transformative journey through integrating MongoDB, Cassandra, Neo4J, Redis, and Couchbase within Enterprise Java Architecture. Dive into NoSQL databases, Jakarta EE, and Microprofile, equipping yourself with the knowledge and skills to architect and implement advanced data storage solutions for robust and scalable Java applications. From comprehensive coverage to hands-on approaches, optimization techniques, and cutting-edge insights, this book is your definitive resource for revolutionizing how you build and manage data in your Java applications.
Insights From a Spring Boot Leisure Project for Everyday Developer Life
Patrick Baumgartner, 42talents
New gadgets and slow mobile apps tempt many a developer to spend the Christmas holidays reverse engineering, hacking and coding to put their world back together.
Join a motivated developer on his journey to successfully implement his idea. Along the way, he is surprised at how much or how little effort is involved in each step, and what he learns along the way. We dive into the world of Android apps, Spring Boot, Buildpacks, GitHub Actions, Docker containers, GraphQL and API breaking changes.
A thriller in three acts.
Hyperscale Jakarta EE PaaS on Azure
Reza Rahman, Microsoft
Azure is the only top tier public cloud with a fully managed Jakarta EE service - JBoss EAP on App Service.
In this fast-faced, demo-heavy, and mostly slide-free session we will show first-hand how to run Jakarta EE on Azure using JBoss EAP on App Service. We will demo in real time how to stand up an instance very quickly and deploy a realistic Jakarta EE application that integrates with some services on the cloud such as database, directory server, cache or log aggregator. We will also see how things like load-balancing, automatic redeployment, auto-scaling, and monitoring work in a hyperscale PaaS.
At the end of the session, you will have all the demos available on GitHub so you can explore them on your own!
You Can Build Web UI Using Java Only
Sami Ekblad, Vaadin
In the fast-evolving landscape of web development, Java remains a cornerstone for robust backend systems. However, its potential in frontend development is often overshadowed by JavaScript-dominated frameworks. This session aims to shift this perspective by introducing Vaadin, a Java-based framework designed for building modern web user interfaces.
The session will commence with a brief introduction to Java's role in current web development scenarios, highlighting its stability, scalability, and security features. We will then pivot to an in-depth exploration of Vaadin, showcasing how this innovative framework leverages Java's strengths to create efficient, responsive, and visually appealing web UIs.
Going Serverless With Spring’s Support for GraalVM, Project CraC & More
Timo Salm, Tanzu by Broadcom
Serverless applications are event-driven and take advantage of modern cloud computing capabilities and abstractions to allow developers to shift focus to writing business logic while not dealing with the complexity of the infrastructure their code runs on.
To get the full potential of a Serverless runtime, applications must be disposable, which means they can be started or stopped rapidly. If your application starts slowly, it might mean that it cannot scale or recover fast enough to handle a sudden increase in demand, and if it consumes many resources (memory, CPU, etc) and scales to a large degree, that means increased cost.
Fortunately, there are several new solutions available in the Java ecosystem, like GraalVM Native Images and Project CraC, that provide almost instant startup times and reduced memory consumption.
This session will teach you how they compare to each other and how to use them with Spring.
Fast and Easy Cloud-Native Java Application with Jakarta EE and MicroProfile
YK Chang, IBM
Jakarta EE is "building an open source ecosystem for cloud native architectures with enterprise Java" while MicroProfile is "optimizing enterprise Java for a microservices architecture". Jakarta EE and MicroProfile complement each other and offer developers a healthy and open set of Java APIs to build cloud-native applications.
In these few minutes, we will watch Jakarta EE and MicroProfile in action with Open Liberty, a lightweight open-source Java runtime that is both Jakarta EE and MicroProfile compatible, and see how developers can rapidly iterate and build cloud-native Java applications fast and easy.