OnlyJava is your source for Blog Aggregation in the Java industry

JUnit, 4, 5, Jupiter, Vintage

 Mark As Read    

After JUnit 5 was released, a lot of developers just added this awesome new library to their projects, because unlike other versions, in this new version, it is not necessary to migrate from JUnit 4 to 5, you just need to include the new library in your project, and with all the engine of JUnit 5 you can do your new tests using JUnit 5, and the old...

Building a Performant Application Using Netty Framework in Java

 Mark As Read    

Netty is a powerful, asynchronous, event-driven networking framework for building high-performance, scalable applications. It simplifies the development of network applications by providing an easy-to-use API and robust abstractions for handling various networking protocols and data formats. Key features and benefits of Netty include:

Optimizing Robotics Applications Performance

 Mark As Read    

In this post, we would like to share our real-world experience in optimizing a Java application that was controlling the robots in a warehouse. This application would give instructions to the robots in the warehouse on what actions to perform. Based on those instructions, robots carry out their job in the warehouse. Occasionally, this application w...

Test Parameterization With JUnit 5.7: A Deep Dive Into @EnumSource

 Mark As Read    

Parameterized tests allow developers to efficiently test their code with a range of input values. In the realm of JUnit testing, seasoned users have long grappled with the complexities of implementing these tests. But with the release of JUnit 5.7, a new era of test parameterization enters, offering developers first-class support and enhanced capab...

CRUDing NoSQL Data With Quarkus, Part Two: Elasticsearch

 Mark As Read    

In Part 1 of this series, we looked at MongoDB, one of the most reliable and robust document-oriented NoSQL databases. Here in Part 2, we'll examine another quite unavoidable NoSQL database: Elasticsearch. More than just a popular and powerful open-source distributed NoSQL database, Elasticsearch is first of all a search and analytics engine. It is...

BFO PDF Library 2.28.4 - with PDF/UA-2 and WTPDF

 Mark As Read    

This is the PDF/UA-2 release, and it also adds code for converting PDF to HTML. Read on for details.

Mastering Exception Handling in Java Lambda Expressions

 Mark As Read    

Effective exception management is pivotal for maintaining the integrity and stability of software applications. Java's lambda expressions offer a concise means of expressing anonymous functions, yet handling exceptions within these constructs presents unique challenges. In this article, we'll delve into the nuances of managing exceptions within Jav...

Feature Flags and Canary Releases in Microservices

 Mark As Read    

Feature flags are commonly used constructs and have been there for a while. But in the last few years, things have evolved and feature flags are playing a major role in delivering continuous risk-free releases. In general, when a new feature is not fully developed and we still want to branch off a release from the mainstream, we can hide our new fe...

COBOL to JOBOL? A Poor Choice for Modernization

 Mark As Read    

The enduring prevalence of COBOL (Common Business-Oriented Language) in mission-critical applications poses a challenge for modernization efforts, particularly in the transition to Java. This paper explores the intricacies of converting COBOL to Java, emphasizing the avoidance of JOBOLa term coined for Java code that retains procedural characterist...

Streaming Real-Time Data From Kafka 3.7.0 to Flink 1.18.1 for Processing

 Mark As Read    

Over the past few years, Apache Kafka has emerged as the leading standard for streaming data. Fast-forward to the present day: Kafka has achieved ubiquity, being adopted by at least 80% of the Fortune 100. This widespread adoption is attributed to Kafka's architecture, which goes far beyond basic messaging. Kafka's architecture versatility makes it...

Debugging Using JMX Revisited

 Mark As Read    

Debugging effectively requires a nuanced approach, similar to using tongs that tightly grip the problem from both sides. While low-level tools have their place in system-level service debugging, today's focus shifts towards a more sophisticated segment of the development stack: advanced management tools. Understanding these tools is crucial for dev...

Harnessing the Power of SIMD With Java Vector API

 Mark As Read    

In the world of high-performance computing, utilizing SIMD (Single Instruction, Multiple Data) instructions can significantly boost the performance of certain types of computations. SIMD enables processors to perform the same operation on multiple data points simultaneously, making it ideal for tasks like numerical computations, image processing, a...

Java Thread Dump Analysis

 Mark As Read    

Thread dump analysis is a traditional approach followed to analyze the performance bottlenecks in Java-based applications. In the modern era, we have APM tools that provide various metrics and screens to drill down and identify performance issues, even at the code level. But for some of the performance issues or occasions, thread dump analysis stil...

Automatic Snapshots Using Snapshot Manager

 Mark As Read    

Overview AWS has a Lambda function that can be leveraged to take automatic snapshots of the KDA (Kinesis Data Analytics) applications that are running in a specific region. Refer the Lambda function source code here. Users can modify the Lambda function to their needs. Note: As of August 30, 2023, Amazon Kinesis Data Analytics (KDA) has been rename...

Spring RestTemplate to WebClient Causes OutOfMemoryError

 Mark As Read    

Spring Boot is a highly popular framework for Java enterprise applications. One common method of integration with internal or external applications is through HTTP REST connections. We were upgrading from RestTemplate to the Java NIO-based WebClient, which can significantly enhance application performance by allowing concurrency when calling REST s...

Journey Through Java Execution: From Loader to Memory Model

 Mark As Read    

Ever wondered what happens behind the scenes when you hit that "run" button on your Java program? The process involves a series of complex steps, from compiling and loading the code into memory to managing data in data structures like the heap and stack. Here, we'll explore the steps of running a basic Java program, highlighting the roles of the lo...

Dapr For Java Developers

 Mark As Read    

In this article, learn how the Dapr project can reduce the cognitive load on Java developers and decrease application dependencies. Coding Java applications for the cloud requires not only a deep understanding of distributed systems, cloud best practices, and common patterns but also an understanding of the Java ecosystem to know how to combine ma...

Foreign Function and Memory API: Modernizing Native Interfacing in Java 17

 Mark As Read    

Java 17 heralds a new era in Java's evolution, bringing forth the Foreign Function and Memory API as part of its feature set. This API, a cornerstone of Project Panama, is designed to revolutionize the way Java applications interact with native code and memory. Its introduction is a response to the long-standing complexities and inefficiencies asso...

Unlocking the Power of Oracle NoSQL With Quarkus: Seamless Integration for Cloud-Age Applications

 Mark As Read    

In todays digital landscape, the demand for scalable, high-performance databases that can seamlessly integrate with modern application frameworks is ever-growing. While reliable, traditional relational databases often need help keeping pace with the dynamic requirements of cloud-native applications. It has led to the rise of NoSQL databases, offeri...

Code Complexity in Practice

 Mark As Read    

Imagine entering a bustling workshop - not of whirring machines, but of minds collaborating. This is the true essence of software programming at its core: a collective effort where code serves not just as instructions for machines, but as a shared language among developers. However, unlike spoken languages, code can often become an obscure dialect,...

A Financial Anti-Fraud Solution Based on the Apache Doris Data Warehouse

 Mark As Read    

Financial fraud prevention is a race against time. Implementation-wise, it relies heavily on the data processing power, especially under large datasets. Today, I'm going to share with you the use case of a retail bank with over 650 million individual customers. They have compared analytics components, including Apache Doris, ClickHouse, Greenplum, ...

Building up networks of zones on Tribblix

 Mark As Read    

With OpenSolaris and derivatives such as illumos, we gained the ability to build a whole IT infrastructure in a single box, using virtualized networking (crossbow) to build the underlying network and then attaching virtualized systems (zones) atop virtualized storage (zfs).Some of this was present in Solaris 10, but it didn't have crossbow so the n...

The SunOS JDK builder

 Mark As Read    

I've been building OpenJDK on Solaris and illumos for a while.This has been moderately successful; illumos distributions now have access to up to date LTS releases, most of which work well. (At least 11 and 17 are fine; 21 isn't quite right.)There are even some third-party collections of my patches, primarily for Solaris (as opposed to illumos) bui...

OWASP DependencyCheck returns 403 Forbidden accessing NVD API using API key

 Mark As Read    

IntroductionRecently, the NVD (National Vulnerability Database) which the Owasp dependency check plugin uses to get its data from to check for vulnerabilities, has introduced the use of an API key. That's for them to better control access and throttling - imagine how many companies and organizations are using that API, each time a dependency check ...

Tech Team Lead News 37 days ago

Kotlin: how to mock a static Companion method using MockK

 Mark As Read    

IntroductionHow do you mock a static companion method in Kotlin using MockK?I wanted to mock this (static) method in a companion object in Kotlin in class MyClass: companion object { fun isNegativeAndFromSavingsAccount(amount: BigDecimal, accountType: accountType) = amount < BigDecimal.ZERO && accountType == AccountType.SAVINGS } Tr...

Tech Team Lead News 37 days ago

2023 - A Year in Review

 Mark As Read    

2023 started with a celebration of love in the Philippines. Trish and I traveled with friends to El Nido and Manila to celebrate their 25th wedding anniversary. It was a two-week trip that filled our souls with lasting memories. 2023 was a milestone year for our family. It's the year Jack graduated from high school! Then, the Den...

Raible Designs 81 days ago

BFO PDF Library 2.28.3 is released

 Mark As Read    

Release 2.28.3 of our PDF Library adds per-separation rendering for output preview, Factur-X, Document Parts and more.

Print-preview rendering

 Mark As Read    

Creating a bitmap image from a PDF is normally done in RGB, but when that PDF contains overprinting or depends on CMYK blending, you need something more. This article tells you how.

Goodbye, DU House. Thanks for all the memories!

 Mark As Read    

On the weekend before I joined Stormpath as a full-time employee in 2016, we bought a house in the countryside and moved out of the city. We'd been looking for a while and finally found a place we loved. Trish liked that it was rigged for horses, with two pastures, a barn, and an outdoor riding arena nearby. I was happy because it had six garages, ...

Raible Designs 127 days ago

It seemed like a simple problem to fix

 Mark As Read    

While a bit under the weather last week, I decided to try and fix what at first glance appears to be a simple problem:need to ship the manpage with exaNow, exa is a modern file lister, and the package on Tribblix doesn't ship a man page. The reason for that, it turns out, is that there isn't a man page in the source, but you can generate one.To bui...

Keeping python modules in check

 Mark As Read    

Any operating system distribution - and Tribblix is no different - will have a bunch of packages for python modules.And one thing about python modules is that they tend to depend on other python modules. Sometimes a lot of python modules. Not only that, the dependency will be on a specific version - or range of versions - of particular modules.Whic...

MapStruct library: setting a field with an expression to a ZonedDateTime

 Mark As Read    

IntroductionSetup:- Mapstruct 1.5.5- Kotlin 1.8- IntelliJ 2023.2.3 For a mapping between two classes, the source class did not have the mandatory (non-null, Kotlin!) target class field created. And I wanted to fill it with the current ZonedDateTime class, with the timezone of Amsterdam/Europe. And that specific ZoneId is a constant in my Applicati...

Tech Team Lead News 142 days ago

Happy Birthday, Abbie!

 Mark As Read    

Our oldest child turned 21 today! She's a junior at the University of Colorado in Boulder, living in an apartment with three roommates. Abbie is a joy to be around because she's always smiling and cracking jokes. We journeyed up to Boulder this weekend to join her for the CU vs Oregon State game. We had a nice family dinner, celebrated the big e...

Raible Designs 143 days ago

Summer 2023: Colorado, Montana, and Cape Cod

 Mark As Read    

I've been remiss in writing about my month-long summer vacation. Mostly because life moves pretty fast with Jack heading off to college, things getting busy at work, and lots of wonderful weekends along the way. I'm finally looking around and sitting down to write this post at the end of October. Now is better than never! This year, I...

Raible Designs 149 days ago

When zfs was young

 Mark As Read    

On the Solaris 10 Platinum Beta program, one of the most exciting promised features was ZFS, the new file system.I was especially interested, given that I was in a data-heavy position at the time. The limits of UFS were painful, we had datasets into several terabytes already - and even the multiterabyte file system support that got added was actual...

SMF - part of the Solaris 10 legacy

 Mark As Read    

The Service Management Facility, or SMF, integrated extremely late in the Solaris 10 release cycle. We only got one or two beta builds to test, which seemed highly risky for such a key feature.So there was very little time to gather feedback from users. And something that central really can't be modified once it's released. It had to work first tim...

SpringDoc OpenAPI Swagger generated Swagger API shows incorrect class with same name

 Mark As Read    

IntroductionWhen you have multiple classes with the same name in your classpath, SpringDoc with Swagger API annotations potentially picks the wrong class with the same name when generating the Swagger UI documentation.Suppose you have these classes:org.example.BookDtoorg.example.domain.BookDto And you specified your endpoint like this, where you wa...

Tech Team Lead News 183 days ago

Too many open files in AWS Lambda serverless troubleshooting

 Mark As Read    

IntroductionOne of my Kotlin lambdas was throwing Too many open files exceptions and thus logging errors, but only nightly, when it got bursts of SQS messages to process. To find out what was causing these errors, I followed these steps:Read up on what can be the causesDetermine what/where in the code is not closing the file descriptorsFind a solut...

Tech Team Lead News 185 days ago

Unknown application error occurred Runtime.Unknown - Startup issue AWS Serverless Lambda

 Mark As Read    

IntroductionTrying to invoke a deployed AWS Serverless Lambda on AWS, I was getting this error CloudWatch when trying to invoke the lambda via an SQS event, published by another service in my landscape: 2023-08-15T15:20:44.047+02:00 START RequestId: ab924ff5-236c-5b09-8a29-12a0b9447e41 Version: $LATEST2023-08-15T15:20:45.223+02:00 Unknown applicati...

Tech Team Lead News 185 days ago

Static Site Generators

 Mark As Read    

The current Tribblix website is a bit of a hack. Technically it's using a static site generator - a simple home-grown script that constructs pages from a bit of content and boilerplate - but I wanted to be able to go a bit further.I looked at a few options - and there are really a huge number of them - such as Hugo and Zola. (Both are packaged for ...

Remnants of closed code in illumos

 Mark As Read    

One of the annoying issues with illumos has been the presence of a body of closed binaries - things that, for some reason or other, were never able to be open sourced as part of OpenSolaris.Generally the illumos project has had some success in replacing the closed pieces, but what's left isn't entirely zero.It took me a little while to work out wha...

Speed up zone installation with this one weird trick

 Mark As Read    

Sadly, the trick described below won't work in current releases of Solaris, or any of the illumos distributions. But back in the day, it was pretty helpful.In Solaris 10, we had sparse root zones - which shared /usr with the global zone, which not only saved space because you didn't need a copy of all the files, but creating them was much quicker b...

Modernizing scripts in Tribblix

 Mark As Read    

It's something I've been putting off for far too long, but it's about time to modernize all the shell scripts that Tribblix is built on.Part of the reason it's taken this long is the simple notion of, if it ain't broke, don't fix it.But some of the scripting was starting to look a bit ... old. Antiquated. Prehistoric, even.And there's a reason for ...

Retiring isaexec in Tribblix

 Mark As Read    

One of the slightly unusual features in illumos, and Solaris because that's where it came from, is isaexec.This facility allows you to have multiple implementations of a binary, and then isaexec will select the best one (for some definition of best).The full implementation allows you to select from a wide range of architectures. On my machine it'll...

Happy Birthday, Jack!

 Mark As Read    

Today is a monumental day in the life of Jack Raible. Not only is today his 19th birthday, but it's also his first day of classes at the University of Colorado. He moved in last week and had a week to settle into his new surroundings. He's been playing hoops for 1-2 hours a day on our basketball court for the last six months. We recently ask...

Raible Designs 213 days ago

BFO Publisher 1.3 released

 Mark As Read    

The first update to BFO Publisher for 2023 adds some new features.

Upgrading MATE on Tribblix

 Mark As Read    

I spent a little time yesterday updating MATE on Tribblix, to version 1.26.This was supposed to be part of the "next" release, but we had to make an out of sequence release for an illumos security issue, so everything gets pushed back a bit.Updating MATE is actually fairly easy, though. The components in MATE are largely decoupled, so can be update...

Maintaining old software with no sign of retirement

 Mark As Read    

There's a lot of really old software out there. Some of it has simply been abandoned; others have been replaced by new versions. But old software never really goes away, and we end up maintaining it.This is especially tricky when old software depends on other old software, and we have to support the entire dependency tree.There's always python2 and...

Zones, way back when

 Mark As Read    

The original big ticket feature in Solaris 10 was Zones, a simple virtualization technology that allowed a set of processes to be put aside in a separate namespace and be under the illusion that this was a separate computer system, all under a single shared kernel.As a result of this sleight of hand, you could connect to a zone using ssh (or, remem...

Java
Welcome!
OnlyJava aggregates blogs for the Java industry.
Custom Feeds
Add any RSS feed to the information you read daily.
Blocked Feeds
Block feeds to remove blogs you’re not interested in.
Account Settings
Customize the site by adding or removing feeds.

About Us

OnlyJava is your source for all your Java news.

Have a Suggestion for Us?
Know of a Java blog that we're missing? Let us know!

Share OnlyJava.com