Java

  • Custom Controls in JavaFX (Part V)

    Learn how to create a custom control that is based on the JavaFX Region class. The Region class is the class that all JavaFX controls are based on. It is a resizable Parent node which can be styled from CSS.

    This is the class that you would want to use when building a JavaFX custom control that is not part of a controls library.

    The main difference between the Region and the Control + Skin based approach is the fact that the Region based control contains both, the control logic and the UI where the Control + Skin based control separates the logic from the UI. The logic can be found in the Control and the UI can be found in the Skin.

    Avatar
    Read more
  • Evolution of Java Memory Architecture (Pre Java 8.0)

    Welcome to a series of articles on key concepts in Core Java and J2EE. The series revolves around memory architecture, connection and memory leaks, core Java syntax and semantics, Java Object layout/anatomy, multi-threading, asynchronous task execution, design patterns, Java agents, class loading, API design, OOPs & SOLID.

    In this part, we focus on the Java Memory Architecture, from before Java 8.

    Sumith Puri
    Read more
  • Towards Continuous Performance Regression Testing

    JfrUnit is an extension for JUnit 5 which integrates Flight Recorder into unit tests.

    It makes it straightforward to initiate a JFR recording for a given set of event types, execute some test routine, and then assert the JFR events which should have been produced.

    Stay tuned for next parts in this series, where we’ll explore how to trace the SQL statements executed by an application using the JMC Agent and assert these query events using JfrUnit.

    Avatar
    Read more
  • Delegation vs. Inheritance in Graphical User Interfaces

    At this point, we have seen how you can achieve a more robust variant of a composition by delegation rather than inheritance.

    You can also use this if you are confronted with legacy source codes with this anti-pattern.

    It’s not always possible to clean up everything or change it to the last detail.

    But I hope this has given an incentive to approach this situation.

    Avatar
    Read more
    • Java

    Modules, Modules, Everywhere!

    Since August 2018, I have been compiling an overview of Java modules uploaded to Maven Central.

    This overview is generated by the Scanner program and it is based on the results of the modulescanner that is run on Sonatypes hardware on every uploaded JAR file and stored in an AWS S3 bucket, setup together with the AdoptOpenJDK team at their #java9plusadoption Slack channel.

    Some of those uploaded JAR files are Java modules. They are the interesting subjects of this overview as they contain a module-info.class, a compiled module descriptor with a stable name and an explicit API their author(s) comitted to.

    Avatar
    Read more
    • Java

    Much Ado About Nothing in Java

    Occasionally something in Java pops up that I thought I knew about, but it turns out I didn’t appreciate all the subtle details.

    This was recently the case for “nul”. Before I started using Java, the main programming language I used was C.  This was great for things like operating systems and device drivers because it uses explicit pointers. References to data are through a numerical address that can be manipulated if required.

    Although null might seem like a simple, straightforward concept, there are some edge cases that make its use require a little more thought. I hope this provides you with a better understanding of nothing (null).

    Avatar
    Read more
  • Payara Platform 2021 Survey

    The Payara Platform 2021 Survey is underway and we’re inviting everyone to answer a few questions about your use of the Payara Platform and ecosystem components.

    We want to know what you like, what you want to see improved, and we’re giving you the opportunity to vote on new features you’d like to see added to the Payara Platform.

    Your survey  answers help drive future development efforts for the Payara Platform.

    Jadon Ortlepp
    Read more
    • Java

    Optional.stream()

    This week, I learned about a nifty “new” feature of Optional that I want to share in this post. It’s available since Java 9, so its novelty is relative.

    We start with a sequence to compute the total price of an order, for which it is nowadays more adequate to use streams instead of iterations.

    Optional makes the code less readable! I believe that readability should trump code style every single time.

    Fortunately, Optional offers a stream() method (since Java 9). It allows to simplify the functional pipeline. Functional code doesn’t necessarily mean readable code. With the last changes, I believe it’s both.

    Avatar
    Read more
  • Schedule for Foojay Virtual JUG Tour

    As announced last month, to celebrate the OpenJDK and Foojay.io as a vendor-neutral community platform for its users, we’re kicking off the Virtual Foojay JUG Tour to be held throughout March and April.

    And here’s the schedule, note that it will change as more meetups are confirmed, and if your JUG is missing, i.e., you’d like to still be included in the tour, no worries, let’s see what can be done, simply contact JFrog’s Ari Waller (ariw at jfrog dot com), Foojay’s Event Manager, and specify a date and time (and preferred topics) for March or April.

    Ari Waller
    Avatar
    Read more
  • Custom Controls in JavaFX (Part IV)

    In this part of the series, I will show you how to create a custom control in JavaFX by using Control and Skin classes.

    A custom control created by a Control and Skin class only makes sense if you will provide more than one Skin for your control or if you would like to give people the ability to create their own Skins for your Control.

    In any other case, you should choose another approach (e.g., use a Region or Canvas based control).

    So, usually, the Control and Skin approach is used in UI libraries where you have one Control with multiple Skins.

    Avatar
    Read more
  • Demystifying Google Container Tool, Jib: Java Image Builder

    This article covers some internals of image layering created by container image builder Jib and explore what distroless images are and their benefits.

    In short, Jib is an excellent tool for Java developers who are interested in containerizing Java applications, but not so interested in creating and maintaining Dockerfile or installing Docker. A Java developer can add a plugin to Maven or Gradle, and that’s it. You don’t have to learn new technology just to containerize your Java application.

    Now, let’s talk about some internals.

    Ashish Choudhary
    Read more

Subscribe to foojay updates:

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