or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

index.md

index.mddocs/

0

# Quarkus RESTEasy Classic Jackson Deployment

1

2

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.

3

4

## Package Information

5

6

- **Package Name**: io.quarkus:quarkus-resteasy-jackson-deployment

7

- **Package Type**: maven

8

- **Language**: Java

9

- **Version**: 3.26.2

10

- **Installation**: This is a deployment module that works alongside the runtime module (`io.quarkus:quarkus-resteasy-jackson`)

11

12

## Core Imports

13

14

```java

15

import io.quarkus.resteasy.jackson.deployment.ResteasyJacksonProcessor;

16

import io.quarkus.deployment.annotations.BuildStep;

17

import io.quarkus.deployment.annotations.BuildProducer;

18

import io.quarkus.deployment.builditem.FeatureBuildItem;

19

import io.quarkus.deployment.Feature;

20

```

21

22

## Basic Usage

23

24

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.

25

26

```xml

27

<!-- Add to pom.xml dependencies to enable Jackson support for RESTEasy Classic -->

28

<dependency>

29

<groupId>io.quarkus</groupId>

30

<artifactId>quarkus-resteasy-jackson</artifactId>

31

</dependency>

32

```

33

34

The deployment module then ensures proper integration:

35

36

```java

37

// Example REST endpoint that benefits from this deployment module

38

@Path("/api")

39

@Produces(MediaType.APPLICATION_JSON)

40

public class ExampleResource {

41

42

@GET

43

public ExampleDto getData() {

44

return new ExampleDto("example", 42);

45

}

46

47

@POST

48

@Consumes(MediaType.APPLICATION_JSON)

49

public Response createData(ExampleDto data) {

50

// Jackson serialization/deserialization handled automatically

51

return Response.ok().build();

52

}

53

}

54

```

55

56

## Architecture

57

58

This deployment module follows the standard Quarkus extension pattern:

59

60

- **Build-time Processing**: Registers features during the Quarkus build process

61

- **Feature Registration**: Registers the `RESTEASY_JACKSON` feature in the Quarkus build system

62

- **Extension Ecosystem**: Works in conjunction with RESTEasy deployment and Jackson deployment modules

63

64

## Capabilities

65

66

### Build-time Feature Registration

67

68

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

69

70

```java { .api }

71

package io.quarkus.resteasy.jackson.deployment;

72

73

public class ResteasyJacksonProcessor {

74

75

@BuildStep

76

void feature(BuildProducer<FeatureBuildItem> feature) {

77

feature.produce(new FeatureBuildItem(Feature.RESTEASY_JACKSON));

78

}

79

}

80

```

81

82

#### ResteasyJacksonProcessor

83

84

The main build processor class that handles feature registration.

85

86

```java { .api }

87

public class ResteasyJacksonProcessor {

88

89

@BuildStep

90

void feature(BuildProducer<FeatureBuildItem> feature) {

91

feature.produce(new FeatureBuildItem(Feature.RESTEASY_JACKSON));

92

}

93

}

94

```

95

96

### Build Step Method

97

98

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

99

100

```java { .api }

101

@BuildStep

102

void feature(BuildProducer<FeatureBuildItem> feature) {

103

feature.produce(new FeatureBuildItem(Feature.RESTEASY_JACKSON));

104

}

105

```

106

107

## Types

108

109

### Quarkus Deployment Types

110

111

```java { .api }

112

@interface BuildStep {

113

// Quarkus build-time annotation

114

}

115

116

interface BuildProducer<T> {

117

void produce(T item);

118

}

119

120

class FeatureBuildItem {

121

FeatureBuildItem(Feature feature);

122

FeatureBuildItem(String name);

123

String getName();

124

}

125

126

enum Feature {

127

RESTEASY_JACKSON,

128

// ... other features

129

130

String getName();

131

}

132

```

133

134

## Extension Configuration

135

136

The extension is configured via `quarkus-extension.yaml`:

137

138

- **Name**: "RESTEasy Classic Jackson"

139

- **Status**: stable

140

- **Categories**: ["web", "serialization"]

141

- **Keywords**: ["resteasy-jackson", "jaxrs-json", "resteasy-json", "resteasy", "jaxrs", "json", "jackson", "rest", "jakarta-rest"]

142

- **Supported Languages**: Java, Kotlin, Scala

143

- **Configuration Prefixes**: ["quarkus.resteasy.", "quarkus.jackson."]

144

145

## Dependencies

146

147

This deployment module depends on:

148

149

- `io.quarkus:quarkus-resteasy-deployment` - RESTEasy deployment support

150

- `io.quarkus:quarkus-jackson-deployment` - Jackson deployment support

151

- `io.quarkus:quarkus-resteasy-jackson` - Runtime module for actual functionality

152

153

## Build-time Behavior

154

155

During the Quarkus build process, this module:

156

157

1. Registers the `Feature.RESTEASY_JACKSON` feature

158

2. Enables Jackson JSON serialization for RESTEasy Classic endpoints

159

3. Integrates with Quarkus build-time optimization

160

4. Ensures proper native compilation support

161

5. Provides logging information during application bootstrap

162

163

## Usage Context

164

165

This deployment module enables:

166

- Automatic JSON serialization/deserialization for JAX-RS REST endpoints

167

- Integration between Jackson library and RESTEasy Classic framework

168

- Build-time optimization for native compilation

169

- Proper feature registration in the Quarkus ecosystem

170

171

The module works transparently with JAX-RS annotations:

172

- `@Produces(MediaType.APPLICATION_JSON)` for JSON responses

173

- `@Consumes(MediaType.APPLICATION_JSON)` for JSON request bodies

174

- Jackson annotations like `@JsonProperty`, `@JsonIgnore`, etc.

175

- Support for complex Java types including collections, custom objects, and Java 8 time types