InfoQ Homepage Java Content on InfoQ
-
Using Java to Orchestrate Robot Swarms
Ocado Technology uses state-of-the-art robotics to power highly automated fulfillment centres. To orchestrate the robot swarms and maximise every bit of efficiency from the warehouses, they've developed a control system analogous to an air traffic control system. This article covers decisions regarding the language, development principles, and architecture choices.
-
Running Single-file Programs without Compiling in Java 11
Starting with Java SE 11, and for the first time in the programming language’s history, you can execute a script containing Java code directly without compilation. The Java 11 source execution feature makes it possible to write scripts in Java and execute them directly from the *inx command line.
-
Java InfoQ Trends Report - July 2019
The InfoQ Java trend report provides an overview of technology adoption and commentary on how we see the Java and JVM-related space evolving in 2019. Key developments include the release of Java 13, the rise of non-HotSpot JVMs and the evolution of GraalVM, and the changing landscape of Java microservice frameworks.
-
Test-Driven Development: Really, It’s a Design Technique
Using a step-by-step example in Java, this article provides a practical example of how to use test-driven development (TDD) to divide, test, and conquer larger problems when coding.
-
Service Virtualization Meets Java: Hoverfly Tutorial
Service virtualization is a technique used to simulate the behavior of dependencies of service during automated testing. This article explores this topic, and includes a tutorial using Hoverfly Java.
-
Kotlin Multiplatform for iOS Developers
Leveraging the similarities between Swift and Kotlin, Kotlin Multiplatform makes it easy to create cross-platform components that you can reuse across iOS and Android projects. This article will lead you through all the steps required to set up Android Studio to build a framework you can import into Xcode.
-
Upgrading from Java 8 to Java 12
Why upgrade to Java 12? Lots of things have changed since Java 8: licensing, updates and support. On top of that, there are new language features. Now that major libraries, frameworks and build tools have adopted the latest versions of Java, it is a good time to migrate your application to Java 12.
-
How Expedia Is Getting Rid of Java Bean Transformers
Expedia created and released BULL, an open-source Java Bean transformer library that can automatically transform all kinds of beans, including immutable and mixed beans, not just the traditional mutable case.
-
Tap Compare Testing with Diferencia and Java Microservices
“Tap compare” is a testing technique that allows you to test the behavior and performance of the new service by comparing its results against the old service. This article provides an example of using a new open source tool, Diferencia, and mirroring production traffic across both old and new services to compare the difference in result.
-
Automating Your Java Project Workflow with a Modified Gitflow Branching Model
Gitflow is a collaborative branching model that attempts to exploit the power, speed and simplicity of Git branching. But documentation for Gitflow in an automated build, integrate, and deploy environment is sparse. This article provides a flavor of Gitflow that can be used in an automated build environment.
-
The Complete Guide to the Java SE 12 Extended Switch Statement/Expression
A complete guide to Java SE 12 extended switch statement/expression. This article contains details on the proposed extension to the Java switch statement that allows it to be used as either an enhanced switch statement or a switch expression. Examples are included.
-
Rewriting an API Gateway Service from Clojure to Golang: AppsFlyer Experience Report
AppsFlyer processes nearly 70+ billion HTTP requests a day, and is built using a microservices architecture style. The entry point to the system that wraps all of the frontend services is a mission-critical (non-micro) service called the API Gateway. This article is an experience reporting of migrating from a Clojure-based gateway to a newly designed Go-based implementation.