or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

index.md
tile.json

tessl/maven-io-quarkus--quarkus-resteasy-jackson-deployment

Quarkus extension deployment module that provides Jackson JSON serialization support for RESTEasy Classic REST services

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/io.quarkus/quarkus-resteasy-jackson-deployment@3.26.x

To install, run

npx @tessl/cli install tessl/maven-io-quarkus--quarkus-resteasy-jackson-deployment@3.26.0

index.mddocs/

Quarkus RESTEasy Classic Jackson Deployment

A Quarkus extension deployment module that enables Jackson JSON serialization support for RESTEasy Classic REST services. This module handles build-time configuration and setup for integrating Jackson JSON processing with RESTEasy Classic in Quarkus applications.

Package Information

  • Package Name: io.quarkus:quarkus-resteasy-jackson-deployment
  • Package Type: maven
  • Language: Java
  • Version: 3.26.2
  • Installation: This is a deployment module that works alongside the runtime module (io.quarkus:quarkus-resteasy-jackson)

Core Imports

import io.quarkus.resteasy.jackson.deployment.ResteasyJacksonProcessor;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.Feature;

Basic Usage

This deployment module is used internally by the Quarkus build system and typically not directly by application developers. When the RESTEasy Jackson extension is included in a Quarkus project, this deployment module automatically registers the necessary build-time configuration.

<!-- Add to pom.xml dependencies to enable Jackson support for RESTEasy Classic -->
<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-resteasy-jackson</artifactId>
</dependency>

The deployment module then ensures proper integration:

// Example REST endpoint that benefits from this deployment module
@Path("/api")
@Produces(MediaType.APPLICATION_JSON)
public class ExampleResource {
    
    @GET
    public ExampleDto getData() {
        return new ExampleDto("example", 42);
    }
    
    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    public Response createData(ExampleDto data) {
        // Jackson serialization/deserialization handled automatically
        return Response.ok().build();
    }
}

Architecture

This deployment module follows the standard Quarkus extension pattern:

  • Build-time Processing: Registers features during the Quarkus build process
  • Feature Registration: Registers the RESTEASY_JACKSON feature in the Quarkus build system
  • Extension Ecosystem: Works in conjunction with RESTEasy deployment and Jackson deployment modules

Capabilities

Build-time Feature Registration

The core functionality provided by this deployment module is registering the RESTEasy Jackson feature during the Quarkus build process.

package io.quarkus.resteasy.jackson.deployment;

public class ResteasyJacksonProcessor {
    
    @BuildStep
    void feature(BuildProducer<FeatureBuildItem> feature) {
        feature.produce(new FeatureBuildItem(Feature.RESTEASY_JACKSON));
    }
}

ResteasyJacksonProcessor

The main build processor class that handles feature registration.

public class ResteasyJacksonProcessor {
    
    @BuildStep
    void feature(BuildProducer<FeatureBuildItem> feature) {
        feature.produce(new FeatureBuildItem(Feature.RESTEASY_JACKSON));
    }
}

Build Step Method

The feature registration method that enables Jackson JSON serialization for RESTEasy Classic.

@BuildStep
void feature(BuildProducer<FeatureBuildItem> feature) {
    feature.produce(new FeatureBuildItem(Feature.RESTEASY_JACKSON));
}

Types

Quarkus Deployment Types

@interface BuildStep {
    // Quarkus build-time annotation
}

interface BuildProducer<T> {
    void produce(T item);
}

class FeatureBuildItem {
    FeatureBuildItem(Feature feature);
    FeatureBuildItem(String name);
    String getName();
}

enum Feature {
    RESTEASY_JACKSON,
    // ... other features
    
    String getName();
}

Extension Configuration

The extension is configured via quarkus-extension.yaml:

  • Name: "RESTEasy Classic Jackson"
  • Status: stable
  • Categories: ["web", "serialization"]
  • Keywords: ["resteasy-jackson", "jaxrs-json", "resteasy-json", "resteasy", "jaxrs", "json", "jackson", "rest", "jakarta-rest"]
  • Supported Languages: Java, Kotlin, Scala
  • Configuration Prefixes: ["quarkus.resteasy.", "quarkus.jackson."]

Dependencies

This deployment module depends on:

  • io.quarkus:quarkus-resteasy-deployment - RESTEasy deployment support
  • io.quarkus:quarkus-jackson-deployment - Jackson deployment support
  • io.quarkus:quarkus-resteasy-jackson - Runtime module for actual functionality

Build-time Behavior

During the Quarkus build process, this module:

  1. Registers the Feature.RESTEASY_JACKSON feature
  2. Enables Jackson JSON serialization for RESTEasy Classic endpoints
  3. Integrates with Quarkus build-time optimization
  4. Ensures proper native compilation support
  5. Provides logging information during application bootstrap

Usage Context

This deployment module enables:

  • Automatic JSON serialization/deserialization for JAX-RS REST endpoints
  • Integration between Jackson library and RESTEasy Classic framework
  • Build-time optimization for native compilation
  • Proper feature registration in the Quarkus ecosystem

The module works transparently with JAX-RS annotations:

  • @Produces(MediaType.APPLICATION_JSON) for JSON responses
  • @Consumes(MediaType.APPLICATION_JSON) for JSON request bodies
  • Jackson annotations like @JsonProperty, @JsonIgnore, etc.
  • Support for complex Java types including collections, custom objects, and Java 8 time types