InfoQ Homepage Languages Content on InfoQ
-
JShell: A Comprehensive Guide to the Java REPL
JShell provides an interactive shell for quickly prototyping, debugging, and learning Java and Java APIs. In this article, we’ll take a comprehensive look at JShell, understanding all its commands, its uses, and how to use it most effectively.
-
The State of Java Serialization
Java’s Serialization feature has garnered several years' worth of security exploits and zero day attacks. This article discusses the current state of the technology and what can be done, both now and in the future, to protect against serialization flaws.
-
Build a MySQL Spring Boot App Running on WildFly on an Azure VM
How to build a demo site that runs on the WildFly application platform and connects to a MySQL database in the cloud, on Microsoft Azure. The premise seems simple, but the implementation can be tricky, and there is limited documentation on how to set something like this up.
-
Deep Dive into JUnit 5 Extension Model
JUnit 5 is a modular and extensible testing framework with support for Java 8 and higher. The Jupiter extension model can be used to add custom features. This is explained by building out a simple set of extensions that support the BDD approach to testing with full code examples.
-
Improving Testability of Java Microservices with Container Orchestration and a Service Mesh
In enterprise test scenarios, software needs to be tested in the same way as it will run in production. This article provides a practical demonstration of testing Java microservices that are running on Kubernetes with the Istio service mesh. K8s service abstractions enable mocking, and Istio enables us to re-route traffic and inject faulty responses or delays to verify our services' resiliency.
-
Getting to Know Graal, the New Java JIT Compiler
Oracle have released Graal, a new JIT compiler for Java. For Java developers, Graal can be thought of as several separate but connected projects - it is a new JIT compiler for HotSpot, and also a new polyglot virtual machine, GraalVM. The initial release includes support for JVM bytecode and JavaScript with LLVM, Ruby and R in beta.
-
App Architecture, iOS Application Design Patterns in Swift Review and Author Q&A
App Architecture, iOS Application Design Patterns in Swift by Chris Eidhof, Matt Gallagher, and Florian Kugler presents a number of architectures for iOS Swift applications, from the ubiquitous Model-View-Controller to a few more experimental ones. The book is accompanied by a set of videos that are available as a separate purchase and add a live-coding dimension to the book content.
-
How BuzzFeed Migrated from a Perl Monolith to Go and Python Microservices
Starting in 2016 BuzzFeed began a re-architecture project moving from a single monolithic application written in Perl to a set of microservices. The main reason for the move was that the Perl application was proving hard to scale, essential given that buzzfeed.com alone serves about 7 billion page views/month.
-
Refactoring to Eclipse Collections: Making Your Java Streams Leaner, Meaner, and Cleaner
Eclipse Collections is a high performance collections framework for Java, adding rich functionality to the native JDK Collections. In this article, key framework contributors demonstrate techniques for refactoring standard Java code to Eclipse Collections data structures and APIs, and also demonstrate some of the memory savings you can achieve.
-
Angular Application Generator - an Architecture Overview
It’s clear there are pros and cons to keep in mind before making decision to generate code, but what's the best approach to generating source code for Angular: templating or AST handling? In this article, we’ll take Angular source code generation to the next level by diving into techniques to make this consistent and maintainable, based on a DSL mechanism.
-
Monitoring SRE's Golden Signals
Golden signals are increasingly popular these days due to the rise of SRE. This article outlines what golden signals are, and how to monitor and use them in the context of various common services.
-
Get Ready for Cloud Native, Service-Meshed Java Enterprise
Java EE can be easily combined with Cloud-native technologies such as Kubernetes and Istio to produce a modern service-driven application.