This site uses cookies for analytics, personalized content and ads. By continuing to browse this site, you agree to this use.
Learn more
Thanks for being here! Join host Bruno Borges for the event's opening, followed by two keynotes.
Julia Liuson, Microsoft Corporate Vice President
Microsoft’s Open Source Languages Journey
Join Julia Liuson, Corporate Vice President for Microsoft’s Developer Division, for an overview of lessons learned in contributing to programming language communities over the years, Microsoft’s recent contributions to the Java ecosystem, and their vision for future partnership with the Java community.
lx-Chel Ruiz, Senior Software Engineer, Karakun AG
"Unpredictable World"
Today we stand on a changed world where the ability to deal with the unexpected is not only desired but indispensable, because the unexpected is becoming the norm. How should we address the future? What kind of thinking is going to help us? What sort of talents, ideas, actions must we be sure to acquire and adopt?
While most people are still using Java 8 from six years ago, new versions of the language are being released every six months! The latest versions provide an abundance of new features such as functional programming capabilities, switch expressions, local variable type inference, additions to the Stream API, new factory methods for Collections, text blocks and much more. This talk will introduce my favorite new features of Java 9 - 14, provide practical examples of how these features can be used, and offer recommended practices and gotchas when using these features.
Session Takeaways:
* Introduction of new features in the latest releases of Java (9 - 14)
* Examples of how the features can be used
* Recommendations on good practices when using these features
* Gotchas and caveats
* Greater command of the programming language
Your software requires well-designed, performant and secure libraries integrating into a managed cloud environment. Did you know that all this is easily achieved with Azure Spring Libraries seamlessly integrating into your managed Azure Spring Cloud architecture? Join me as I show you recent Azure Spring Cloud advancements and how easy it is to integrate these to design scalable, secure, and highly available Spring Cloud solutions. We’ll be live-coding real-world applications that demonstrate:
-Migrating an existing Spring Boot app to Azure Spring Cloud with no code changes
-Querying NoSQL data using Reactive WebFlux
-Drive higher utilization with Autoscaling
-Exciting new Azure Spring Cloud Roadmap
Additional Resources:
Visual Studio Code (VSCode) is a great tool that is between a simple editor and an IDE, and the reason for that is because we can customize it according to our needs. In this session we'll cover how we can transform VSCode into a powerful Java editor/IDE with full support to create projects (Spring, Quarkus or using your favorite framework). We'll also learn how we can run these projects, run tests and use other tools that are common for Java developers.
Additional Resources:
-Announcing the Visual Studio Code Installer for Java
-Quickstart: Create a function in Azure using Visual Studio Code
-Build a Java App for Azure Cosmos DB
-Automate Java Container Deployments With Azure Pipelines
JSON Web Token (JWT) is an open standard for creating tokens that assert some number of claims like a logged-in user and his/her roles. JWT is widely used in modern applications as a stateless authentication mechanism. Therefore, it is important to understand JWT security risks, especially when broken authentication is among the most prominent security vulnerabilities according to the OWASP Top 10 list. This talk guides you through various security risks of JWT, including confidentiality problems, vulnerabilities in algorithms and libraries, token cracking, token sidejacking, and more. In live demos, you’ll learn how to hijack a user account exploiting common security vulnerabilities on the client-side, on the server-side, and in transport. You’ll also find out about common mistakes and vulnerabilities along with the best practices related to the implementation of JWT authentication and the usage of available JWT libraries.
Additional Resources:
The Java Module System lays the foundation for building modularized applications on the JVM. What is doesn't cover is module versioning and retrieving needed modules from repositories. This is where layrry comes in: an API and launcher for modularized Java applications which takes a descriptor of the module layer(s) to assemble, fetches the modules and starts up the application
Additional Resources:
Join both Byron Walker and Trent Jones from GitHub as they demonstrate creating a Java Package using GitHub. Once the session concludes, both Bryan and Trent have compiled a few additional resources to share and support more exploration on the topic.
Additional Resources:
GitHub Packages
- https://github.com/features/packages
- https://docs.github.com/en/free-pro-team@latest/packages/publishing-and-managing-packages/about-github-packages
GitHub Actions
- https://github.com/features/actions
- https://docs.github.com/en/free-pro-team@latest/actions
GitHub Codespaces
- https://github.com/features/codespaces
- https://docs.github.com/en/free-pro-team@latest/github/developing-online-with-codespaces/about-codespaces
In this talk Graeme Rocher (Micronaut creator and architect at Oracle) will provide an introduction to Micronaut 2.0, the innovative new framework that precomputes your framework infrastructure in a reflection free manner and provides integration with GraalVM Native Image.
Additional Resources:
Lucy Greco is a web accessibility evangelist and has been broadly recognized and honored as an "unsung heroine" at UC Berkeley. As a blind member of the education community, Lucy is constantly faced with obstacles and challenges. She has dedicated her career towards making things more accessible and is extremely vocal about the challenges inaccessible tools create for the wider community. Learn from Lucy on how to make the world more digitally accessible to everyone!
Additional Resources:
Join us as we welcome you to Day 2 of JDConf with host Bruno Borges. Keynotes to follow by George Adams and Martijn Verburg.
What a year it has been for Microsoft and the Java Ecosystem! In this keynote George Adams and Martijn Verburg will take you through the highlights of Microsoft's internal and external Java investments and how they impact you as a Java developer and decision maker! In particular we'll cover what Microsoft has been up to since its acquisition of jClarity last year and the subsequent formation of its very own Java Engineering Group. You'll get behind the scenes insights into our thinking with regards to Microsoft giving back to the ecosystem, through OpenJDK (such as the Windows Arm port!), AdoptOpenJDK (bringing you free Java for life!) and launching Java developer friendly services (Azure Spring Cloud to name but one). You'll also hear about how much Microsoft depends on Java and its popularity within the company. If you've always been curious about what goes on behind the scenes at a major cloud player like Microsoft, then this is the session you'll want to tune into.
With the new release cadence, programmers can enjoy new features at a much faster rate. Java has been evolving rapidly, but in a responsible manner. While some of the new recent features in Java have been around in other languages for a while there are some coolness for them being introduced in Java. First, programmers who are maintaining large legacy systems can make use of these exciting features, right there in Java as they move forward to adopting newer versions. Second, Java brings its own twist and innovation to how these features are used in the language. Learning these is not only an exciting journey but can also make us more productive when writing Java code. In this presentation we will take a live coding, example driven approach to look at a few features that have been added to Java in the most recent releases of the language.
Additional Resources:
-Java Programming MTA Certification
-Reasons to move to Java 11
The current release cadence of a new version of Java every 6 months can be overwhelming. The releases might even contain preview features which are “complete” but may change with every new release until they finally stabilize. How can a real developer keep up with this? The good news is that your IDE can help. IntelliJ IDEA not only provides support for the latest versions of Java (even the ones that aren’t released yet), it can also help us to discover and use the new language features. This way we can let the IDE help us to migrate to the latest and greatest, and we don’t need to go researching for the relevant features every 6 months. In this session, Trisha will show the interesting language features in recent versions of Java, and show how IntelliJ IDEA makes these really easy to find and use.
Additional Resources:
-Publish a Web App to Azure by Using Azure Toolkit for IntelliJ
-Create an Azure function with Java and IntelliJ
Have you ever wondered how to easily develop your microservices with the aim of only concentrating on your business logics? Better still, your microservices are not vendor locked in and it can move among nearly dozen runtimes. Learn once and never need to worry about migration headaches. Come to this session to learn the defacto standard of developing cloud-native microservices using MicroProfile with a live demo!
Additional Resources:
-Securing Open Liberty applications with Azure Active Directory via OpenID Connect
-Eclipse MicroProfile on Azure documentation
This is a tale of 3 engineers and their quest to bring Java to every Windows on Arm developer.
We will provide:
1) a quick timeline of our development efforts and Microsoft’s journey into OpenJDK land (spoiler alert: we were welcomed with open arm(s) (pun intended)),
2) a few Arm64 and Windows nuances,
2) our testing and benchmarking North Stars.
If we feel lucky, we will even showcase a demo on our Surface Pro X device.
Additional Resources:
Using a publish-subscribe messaging system like Apache Kafka is a great way to minimize coupling between your applications. The stream history that Kafka provides allow consumers to come and go, without the producers ever being aware. This works fine until an application changes the shape of the events it is producing - how do consumers understand and handle the change? This is where schemas and a schema registry comes in. This session will introduce the common schema formats that are used in the Kafka community and an open source schema registry that supports these. It will also cover how to use schemas in different types of Kafka applications. Learn how to effectively manage and evolve the structure of your events.
Additional Resources:
DevOps is here to stay, and the terminology and concepts involved are now permeating the market. New products have been launched right and left that promise the benefits of DevOps - operational efficiency improvements and ultimately faster delivery timelines. Continuous Integration, Continuous Delivery/Deployment and Build Pipelines that accelerate every step of the Software Development Life Cycle are all advertised as idyllic solutions, but for exactly what problems? During this session, Melissa will take a step back and answer the question that should be at the top of your mind: What is the problem we are trying to solve? She will discuss, from a developer’s perspective, the considerations you should take in order to effectively incorporate DevOps concepts into your existing environment. You will come away with a solid understanding of why these concepts are important, how to steer clear of the hype, and how to make the promised benefits of DevOps a reality for your team.
Additional Resources:
-Implement CI/CD with Azure DevOps
-Evolve Your DevOps Practices
-Build Java Apps
LinkedIn has been testing and adopting java 11 since 2019. In this talk we would like to share our experiences so far. We will cover what performance improvements we have found in our applications and how we are planning to upgrade thousands of microservices to Java 11 in a scalable fashion.
Additional Resources:
The Spring Framework ecosystem allows for a wide array of application styles. In this talk we will dive into Reactive Application development using Spring Boot, Cloud Native BuildPacks (CNB) and Kubernetes. We'll explore a typical use case with reactive streams to expose data across client / services while leveraging Spring Boot and CNB to ensure proper configuration of our apps on Kubernetes. Finally, to make PR's safe and effective, we'll write some tests to kick the tires on our app and form a convenient TDD cycle to boot!
Thanks for being here! Join host Bruno Borges for the event's opening, followed by two keynotes.
Communities and You
Mala Gupta
Java has a vibrant worldwide community. The community is not just about broadening your horizon, networking with other professionals, learning from each other, or giving back to the Java ecosystem. It is also about you – who you are, and self-reflecting on your values, how you perceive your life and that of others, and much more.
Let me share some stories with you.
Be the Leader of Your Developer Career
Bruno Souza
Leadership is not about knowing the way; it’s about taking responsibility to find the path.
Whether you are formally tasked with leading a team or just want people to trust your judgment,
being a true leader will push your career forward and get you onto a path to success.
This interactive conversation will answer your questions and help you get the leadership skills
you need. Lead and forge your path for a fulfilling career.
Get "The Best Developer Year" Book for free during this session and apply the 4 steps to take action and get your career under control.
The security of your JDK is just as important as how you design your Java applications. Updates to the JDK are released on a quarterly basis but how important are they? In this session, we'll look at the security implications of JDK updates, the reason for having CPU and PSU versions and how to keep your JDK as secure as possible.
Additional Resources:
Everyone is talking about how Project Loom will make concurrency child's play. Instead of reactive or asynchronous systems, we make a gazillion virtual threads. This should be simpler, but it also has dangers. For example, what happens if one tasks takes longer than expected? Or if it blocks forever? How can we force a task to stop? Has Project Loom made the ordinary ConcurrentHashMap slower? In this talk, we will show a brief introduction to Project Loom. We then look at how we can prepare our code bases so that the migration to Loom is easier. We show how long-running tasks impact the liveness of our system. We look at what type of code we will need to refactor so that it is ready when Loom lands.
Java EE, and its functionally compatible evolution Jakarta EE, are important technologies for Microsoft to support on Azure! Enterprise Java is a heterogenous ecosystem with as much as a third of workloads still running on Java EE application servers such as WebLogic, WebSphere, JBoss EAP and WildFly. Today, large enterprises want to lift and shift their existing mission-critical, largely monolithic applications to a cloud. For cloud vendors this provides a unique challenge due to the sheer architectural variety of Java EE applications. This session will outline the work that our Java teams have been doing, the challenges we face and how we overcame them. We will touch on the history of the open-standard enterprise Java movement and why open standards are and remain important to enterprises and therefore to Azure! We will discuss what is possible now, what is coming soon and what is further afield. This includes services, tools and guidance to better support Java EE customers opting for virtual machines, or Kubernetes, or a PaaS such as App Service. We will give some behind the scenes details on how we supported technologies like JMS on Azure Service Bus and will cover some advice on how you can prepare to move your Java EE application to the cloud.
Additional Resources:
Do you enjoy having to perform all the manual steps required to set-up and configuring Windows as a productive Java development environment? If not, this session is for you: We’ll explore new ways to setup your Windows dev environment MUCH more quickly and easily than before. And along the way we’ll learn about a bunch of new and exciting productivity-boosting features and technologies that will enable you to write and build your Java code for Windows and Linux – side by side, in harmony.
Additional Resources:
As developers we build on the shoulders of giants - using APIs developed by others to propel ourselves further forward. Frequently we also find ourselves in the position where we must provide our own APIs for other developers to use. Building a Java API is not without perils - we must know the features of the language extremely well, we must understand the implications of breaking compatibility, we must own many other responsibilities such as creating excellent documentation, and most importantly, we must practice restraint. This presentation will touch on some of the considerations that should be made when designing an API, and point to other places to learn more.
"Kubernetes/OpenShift is awesome, but there are so many things between code and production that sometimes it looks challenging. What about making it easy with something that sparks joy? Then Meet Quarkus: Supersonic, Subatomic Java. Join us on this talk and learn how millisecond development reload works, and how the superfast time-to-first-response (yes, boot time is misleading), minimal memory footprint, and Kubernetes-native features can make your Kubernetes/OpenShift deployment spark joy. We'll create a Quarkus app from scratch using VS Code, sprinkle a lot of best practices on top of it (including some amazing extensions to prevent us from writing YAML and creating containers), and deploy it on Azure Red Hat OpenShift in the blink of an eye.
Getting to MVP is easy with Spring Boot and Azure Spring Cloud. Spring Boot Starters consistent abstraction makes integrating additional services simple. In this session, DaShaun will walk you through upgrading and existing ""MVP"" application, by integrating one or more of the services available within Azure, using Spring Boot Starters.
Additional Resources:
-Azure Spring Cloud Workshop
-Azure Spring Cloud Documentation
Connect with the Microsoft Java Engineering Group and various guests to get any of your Java questions answered.
Additional Resources:
-Introduction to Programming Using Java
-Azure for Java Developer Documentation
-Transition From Java 8 to Java 11
Microsoft is dedicated to empowering every person and every organization on the planet to achieve more. This includes Microsoft events where we seek to provide a respectful, friendly, professional experience for everyone, regardless of gender, sexual orientation, physical appearance, disability, age, race or religion. We do not tolerate any behavior that is harassing or degrading to any individual, in any form. Individuals are responsible for knowing and abiding by these standards. We encourage everyone to assist in creating a welcoming and safe environment.
Please report any concerns, suspicious or disruptive activity or behavior via the Microsoft Runs on Trust website