Tutorials

  • OIDC Client with Mutual TLS Client Authentication

    Learn how to set up an OpenID Connect (OIDC) client with Spring Security using mutual TLS as a method for authenticating the client.

    Mutual TLS is not supported out-of-the-box by Spring Security, so there are a few steps that need to be completed to use this feature.

    In order to make the example code a bit more tangible, we will be using the Curity Identity Server as the Authorization Server, but you can use any Authorization Server.

    Michal Trojanowski
    Read more
  • Git Archeology

    Most people will start with using “git blame” (or the respective functionality within their IDE/editor).

    But on most non-trivial projects, you usually end up with a refactoring commit, a rename, or a trivial cross-project fix like switching to another assertion library. At first glance, we only see the most recent changes, not the most important ones.

    We need to carefully remove layer by layer of sand and dirt that has been swept over the real changes to unearth them.

    Benjamin Muskalla
    Read more
  • Device Monitoring with JavaFX and FXGL

    In a previous post, Getting Started with FXGL Game Development, we already have taken a look at the FXGL game development framework developed by Almas Baimagambetov.

    But, this game engine can also be used for other use cases. In this post, we will be building a system monitoring dashboard, which can run on a Raspberry Pi.

    The dashboard can be used to keep an eye on any device that can report its state to a queue. And, for me personally, it finally solves the problem of finding the IP addresses of all my Raspberry Pi’s when my router decided to shuffle them.

    Almas Baimagambetov
    Avatar
    Read more
  • How To Bring Your Java Microservices To The Cloud

    All companies are software companies, and businesses will always experience the challenge of keeping integrations between users and applications scalable, productive, fast, and of high quality.

    To combat this, cloud, microservices, and other modern solutions come up more and more in architectural decisions.

    Here is the question: Is Java prepared to deal with these diverse concepts in a corporate environment?

    Jadon Ortlepp
    Read more
  • Creating a JavaFX World Clock from Scratch (Part 2)

    In this part of the series, you’ll get a chance to use some math and trig skills to determine how to position parts of the hour hand.

    After learning how to convert the math to usable functions, you get a chance to see JavaFX’s FXML annotations to reference nodes on the scene graph.

    Lastly, you’re able to see animations of the hour hand move about the clock face.

    Avatar
    Read more
  • Creating a JavaFX World Clock from Scratch (Part 1)

    Welcome to Creating a JavaFX World Clock from Scratch (Part 1)! In this series of blog entries I would like to show you how I created a “sci-fi” looking world clock that happens to be a cross-platform Java desktop application.

    Here I will explain my thought process, development workflow, and of course JavaFX code details. Since it’s still in the early stages, you can tune in by commenting or joining foojay’s Slack channel at foojay.slack.com [2], where I and others (Java experts & friends of OpenJDK/OpenJFX) can offer advice.

    Avatar
    Read more
  • Immutable Collections in Java with Sealed Types

    JDK 15 was released on September 15, 2020. JEP 360 Sealed Types was included as a preview feature in this release. Sealed Types is part of Project Amber. Sealed classes or interfaces can be used to restrict the interfaces or classes that are allowed to extend them.

    Also learn about the source code for an experimental implementation of a collections framework can be found in the Deck of Cards Kata repo.

    Don Raab
    Read more
  • What are Hidden Classes in Java 15?

    As we know, sun.misc.Unsafe APIs are not recommended to use outside the JDK, with a slight mistake it may result in a JVM crash. In some cases, code may not be portable across different platforms and many other problems that may occur.

    Classes that cannot be used directly by the bytecode of other classes are hidden classes. Hidden classes allow frameworks/JVM languages to define classes as non-discoverable implementation details, so that they cannot be linked against by other classes.

    Vipin Sharma
    Read more
  • Why I Love IntelliJ IDEA for Java Development

    If you’re a Java developer like me, you like to crank out code and get shit done. I like many things about IntelliJ IDEA, but I thought it’d be fun to write about the ones that make me most productive.

    When I first started doing Java development in the late 90s, I used HomeSite as my editor. HomeSite was an HTML editor initially developed by Nick Bradbury. I liked it because it defaulted to a view of your code rather than being WYSIWYG like Dreamweaver and FrontPage. It’s funny to look back now and laugh about how inefficient I was: I used to google for import statements, then copy/pasted them into the editor.

    Avatar
    Read more
  • Native Applications for Multiple Devices from a Single JavaFX Project with Gluon Mobile and GitHub Actions

    The power of JavaFX combined with the Gluon tools and GitHub actions is amazing. Building and distributing a truly cross-platform application has never been easier!

    Really not a single code change is needed to run on different platforms. As you can see from the build processed, the exact same code is used to create native applications for both Windows, Linux, MacOS, iOS, and Android!

    Avatar
    Read more
  • Starting a JavaFX Project with Gluon Tools

    Here on foojay.io you can already find two posts by Carl Dea to get you started with JavaFX.

    In this post, I want to show you yet another approach that uses the tools provided by Gluon, who are the maintainers, and the driving force behind OpenJFX.

    The Gluon start website and the plugin allow you to get started with a new JavaFX project in a few clicks.

    Thanks to the amazing work done by the Gluon team this also gives you a quick-start for the creation of a mobile application which can be built for both Android and iOS.

    Avatar
    Read more

Subscribe to foojay updates:

https://foojay.io/feed/
Copied to the clipboard