Skip to content

Commit 0f60874

Browse files
jansupolsenivam
authored andcommitted
Added Documentation for JSON-B support
Signed-off-by: Jan Supol <[email protected]>
1 parent 81a2587 commit 0f60874

File tree

2 files changed

+90
-3
lines changed

2 files changed

+90
-3
lines changed

docs/src/main/docbook/jersey.ent

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,9 @@
5454
<!ENTITY jaxb.release.uri "https://eclipse-ee4j.github.io/jaxb-ri">
5555
<!ENTITY jaxb.javadoc.uri "&jaxb.release.uri;/docs/api/javax/xml/bind">
5656
<!ENTITY jaxrs.release.uri "https://github.com/jax-rs">
57-
<!ENTITY jaxrs.javadoc.uri "https://jax-rs.github.io/apidocs/&jax-rs.version;/">
58-
<!ENTITY jaxrs21.javadoc.uri "#/javax/ws/rs"> <!-- TODO - once we have published javadocs to link here -->
57+
<!ENTITY jaxrs.javadoc.uri "https://jax-rs.github.io/apidocs/2.1/javax/ws/rs">
58+
<!ENTITY jaxrs21.javadoc.uri "https://jax-rs.github.io/apidocs/2.1/javax/ws/rs">
59+
<!ENTITY jsonb.javadoc.uri "https://javaee.github.io/javaee-spec/javadocs/javax/json/bind">
5960

6061
<!ENTITY jersey.ext.bean-validation.deps.link "<link xlink:href='&jersey.project-info.uri.prefix;/jersey-bean-validation/dependencies.html'>jersey-bean-validation</link>" >
6162
<!ENTITY jersey.ext.declarative-linking.deps.link "<link xlink:href='&jersey.project-info.uri.prefix;/jersey-declarative-linking/dependencies.html'>jersey-declarative-linking</link>" >
@@ -67,6 +68,7 @@
6768
<!ENTITY jersey.media.json-jettison.deps.link "<link xlink:href='&jersey.project-info.uri.prefix;/jersey-media-json-jettison/dependencies.html'>jersey-media-json-jettison</link>" >
6869
<!ENTITY jersey.media.json-jackson.deps.link "<link xlink:href='&jersey.project-info.uri.prefix;/jersey-media-json-jackson/dependencies.html'>jersey-media-json-jackson</link>" >
6970
<!ENTITY jersey.media.json-jackson1.deps.link "<link xlink:href='&jersey.project-info.uri.prefix;/jersey-media-json-jackson1/dependencies.html'>jersey-media-json-jackson1</link>" >
71+
<!ENTITY jersey.media.json-binding.deps.link "<link xlink:href='&jersey.project-info.uri.prefix;/jersey-media-json-binding/dependencies.html'>jersey-media-json-binding</link>" >
7072
<!ENTITY jersey.media.moxy.deps.link "<link xlink:href='&jersey.project-info.uri.prefix;/jersey-media-moxy/dependencies.html'>jersey-media-moxy</link>" >
7173
<!ENTITY jersey.media.multipart.deps.link "<link xlink:href='&jersey.project-info.uri.prefix;/jersey-media-multipart/dependencies.html'>jersey-media-multipart</link>" >
7274
<!ENTITY jersey.ext.mvc.deps.link "<link xlink:href='&jersey.project-info.uri.prefix;/jersey-mvc/dependencies.html'>jersey-mvc</link>" >
@@ -103,6 +105,7 @@
103105
<!ENTITY microprofile.spec.link "<link xlink:href='https://microprofile.io/project/eclipse/microprofile-config'>Microprofile Config Specification</link>">
104106
<!ENTITY helidon.link "<link xlink:href='https://helidon.io/'>Helidon</link>">
105107
<!ENTITY smallrye.link "<link xlink:href='https://smallrye.io/'>SmallRye</link>">
108+
<!ENTITY yasson.link "<link xlink:href='https://eclipse-ee4j.github.io/yasson/'>Yasson</link>">
106109

107110
<!-- API Docs links -->
108111
<!ENTITY bv.Configuration "<link xlink:href='&bv11.javadoc.uri;/javax/validation/Configuration.html'>Configuration</link>">
@@ -597,6 +600,8 @@
597600
<!ENTITY javax.ws.rs.sse.SseEventSource "<link xlink:href='&jaxrs21.javadoc.uri;/sse/SseEventSource.html'>SseEventSource</link>">
598601
<!ENTITY javax.ws.rs.sse.InboundSseEvent "<link xlink:href='&jaxrs21.javadoc.uri;/sse/InboundSseEvent.html'>InboundSseEvent</link>">
599602

603+
<!ENTITY jsonb.JsonbConfig "<link xlink:href='&jsonb.javadoc.uri;/JsonbConfig'>JsonbConfig</link>">
604+
600605
<!-- Links to specific JIRA issues -->
601606
<!ENTITY jersey.jira.2883 "<link xlink:href='&jira.uri.prefix;/2838'>JERSEY-2838</link>">
602607

@@ -636,6 +641,7 @@
636641
<!ENTITY lit.jersey-media-json-jettison "<literal>jersey-media-json-jettison</literal>" >
637642
<!ENTITY lit.jersey-media-json-jackson "<literal>jersey-media-json-jackson</literal>" >
638643
<!ENTITY lit.jersey-media-json-jackson1 "<literal>jersey-media-json-jackson1</literal>" >
644+
<!ENTITY lit.jersey-media-json-binding "<literal>jersey-media-json-binding</literal>" >
639645
<!ENTITY lit.jersey-media-moxy "<literal>jersey-media-moxy</literal>" >
640646
<!ENTITY lit.jersey-media-multipart "<literal>jersey-media-multipart</literal>" >
641647
<!ENTITY lit.jersey-rx-client "<literal>jersey-rx-client</literal>" >
@@ -903,6 +909,7 @@
903909
<!ENTITY lit.jersey.media.JettisonConfig "<literal>JettisonConfig</literal>" >
904910
<!ENTITY lit.jersey.media.JettisonJaxbContext "<literal>JettisonJaxbContext</literal>" >
905911
<!ENTITY lit.jersey.media.JsonProcessingFeature "<literal>JsonProcessingFeature</literal>" >
912+
<!ENTITY lit.jersey.media.JsonBindingFeature "<literal>JsonBindingFeature</literal>" >
906913
<!ENTITY lit.jersey.media.MoxyJsonConfig "<literal>MoxyJsonConfig</literal>" >
907914
<!ENTITY lit.jersey.media.MoxyJsonFeature "<literal>MoxyJsonFeature</literal>" >
908915
<!ENTITY lit.jersey.media.ObjectMapper "<literal>ObjectMapper</literal>" >
@@ -1036,3 +1043,5 @@
10361043
<!ENTITY lit.jersey.test.spi.TestContainerFactory "<literal>TestContainerFactory</literal>">
10371044
<!ENTITY lit.jersey.test.util.LoopBackConnectorProvider "<literal>LoopBackConnectorProvider</literal>">
10381045
<!ENTITY lit.jersey.test.util.ContainerRequestBuilder "<literal>ContainerRequestBuilder</literal>">
1046+
1047+
<!ENTITY lit.jsonb.Jsonb "<literal>Jsonb</literal>">

docs/src/main/docbook/media.xml

Lines changed: 79 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
<!ENTITY link.json-p "<link linkend='json.json-p'>Java API for JSON Processing (JSON-P)</link>" >
2323
<!ENTITY link.jackson "<link linkend='json.jackson'>Jackson</link>" >
2424
<!ENTITY link.jettison "<link linkend='json.jettison'>Jettison</link>" >
25+
<!ENTITY link.json-b "<link linkend='json.json-b'>Java API for JSON Binding (JSON-B)</link>" >
2526

2627
<!ENTITY % ents SYSTEM "jersey.ent" > %ents;
2728
]>
@@ -64,6 +65,9 @@
6465
<listitem>
6566
<para>&link.jettison;</para>
6667
</listitem>
68+
<listitem>
69+
<para>&link.json-b;</para>
70+
</listitem>
6771
</itemizedlist>
6872
</para>
6973

@@ -97,7 +101,7 @@
97101
<title>POJO support</title>
98102

99103
<para>POJO support represents the easiest way to convert your Java Objects to JSON and back.</para>
100-
<para>Media modules that support this approach are &link.moxy; and &link.jackson;</para>
104+
<para>Media modules that support this approach are &link.moxy;, &link.jackson;, and &link.json-b;</para>
101105
</section>
102106

103107
<section xml:id="json-jaxb">
@@ -1076,6 +1080,80 @@ public JaxbBean getSimpleJSONP() {
10761080
</para>
10771081
</formalpara>
10781082
</section>
1083+
<section xml:id="json.json-b">
1084+
<title>Java API for JSON Binding (JSON-B)</title>
1085+
1086+
<para>
1087+
Jersey uses &yasson.link; for JSON Binding (JSR-367) implementation.
1088+
</para>
1089+
<section>
1090+
<title>Dependency</title>
1091+
<para>
1092+
To use JSON-B as your JSON provider you need to add &lit.jersey-media-json-binding; module to your
1093+
&lit.pom.xml; file:
1094+
1095+
<programlisting language="xml" linenumbering="unnumbered">&lt;dependency&gt;
1096+
&lt;groupId&gt;org.glassfish.jersey.media&lt;/groupId&gt;
1097+
&lt;artifactId&gt;jersey-media-json-binding&lt;/artifactId&gt;
1098+
&lt;version&gt;&version;&lt;/version&gt;
1099+
&lt;/dependency&gt;</programlisting>
1100+
1101+
If you're not using Maven make sure to have all needed dependencies
1102+
(see &jersey.media.json-binding.deps.link;) on the classpath.
1103+
</para>
1104+
</section>
1105+
1106+
<section xml:id="json.jsonb-registration">
1107+
<title>Configure and register</title>
1108+
1109+
<para>
1110+
As stated in <xref linkend="deployment.autodiscoverable"/> JSON-Binding media module is one of the
1111+
modules where you don't need to explicitly register its
1112+
&lit.jaxrs.core.Feature;s (&lit.jersey.media.JsonBindingFeature;) in your client/server
1113+
&jaxrs.core.Configurable; as this feature is automatically discovered and registered when you add
1114+
&lit.jersey-media-json-binding; module to your classpath.
1115+
</para>
1116+
<para>
1117+
To use custom preconfigured JSON-B, it is simply possible to register
1118+
a &lit.jaxrs.ext.ContextResolver; for &lit.jsonb.Jsonb; in your &jaxrs.core.Configurable;
1119+
(client/server) and configure &jsonb.JsonbConfig;.
1120+
</para>
1121+
1122+
<example>
1123+
<title><literal>ContextResolver&lt;Jsonb&gt;</literal></title>
1124+
1125+
<programlisting language="java">@Provider
1126+
public class JsonbContextResolver implements ContextResolver&lt;Jsonb&gt; {
1127+
1128+
@Override
1129+
public Jsonb getContext(Class&gt;?&lt; type) {
1130+
JsonbConfig config = new JsonbConfig();
1131+
// configure JsonbConfig
1132+
...
1133+
return JsonbBuilder.create(config);
1134+
}
1135+
}</programlisting>
1136+
</example>
1137+
<example>
1138+
<title><literal>Register the feature and ContextResolver&lt;Jsonb></literal></title>
1139+
<programlisting language="java">ClientBuilder.newClient(new ClientConfig()
1140+
// The line below that registers JSON-Binding feature can be
1141+
// omitted if FEATURE_AUTO_DISCOVERY_DISABLE is not disabled.
1142+
.register(JsonBindingFeature.class)
1143+
.register(JsonbContextResolver.class)
1144+
);</programlisting>
1145+
</example>
1146+
1147+
<formalpara>
1148+
<title>Example</title>
1149+
<para>
1150+
You can take a look at a provided
1151+
<link xlink:href='&jersey.github.examples.uri;/json-binding-webapp'>JSON-B example.</link>.
1152+
</para>
1153+
</formalpara>
1154+
</section>
1155+
1156+
</section>
10791157
</section>
10801158

10811159
<section xml:id="xml">

0 commit comments

Comments
 (0)