CtrlK
BlogDocsLog inGet started
Tessl Logo

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

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

Pending
Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

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
Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/io.quarkus/quarkus-resteasy-jackson-deployment@3.26.x
Publish Source
CLI
Badge
tessl/maven-io-quarkus--quarkus-resteasy-jackson-deployment badge