| <?xml version="1.0"?> | |
| <!-- | |
| Copyright (c) 2020, 2021 Oracle and/or its affiliates. All rights reserved. | |
| This program and the accompanying materials are made available under the | |
| terms of the Eclipse Public License v. 2.0, which is available at | |
| http://www.eclipse.org/legal/epl-2.0. | |
| This Source Code may also be made available under the following Secondary | |
| Licenses when the conditions for such availability set forth in the | |
| Eclipse Public License v. 2.0 are satisfied: GNU General Public License, | |
| version 2 with the GNU Classpath Exception, which is available at | |
| https://www.gnu.org/software/classpath/license.html. | |
| SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 | |
| --> | |
| <!DOCTYPE chapter [<!ENTITY % ents SYSTEM "jersey.ent" > %ents; ]> | |
| <chapter xmlns="http://docbook.org/ns/docbook" | |
| version="5.0" | |
| xml:lang="en" | |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| xmlns:xi="http://www.w3.org/2001/XInclude" | |
| xmlns:xlink="http://www.w3.org/1999/xlink" | |
| xsi:schemaLocation="http://docbook.org/ns/docbook http://docbook.org/xml/5.0/xsd/docbook.xsd | |
| http://www.w3.org/1999/xlink http://www.w3.org/1999/xlink.xsd" | |
| xml:id="jersey-configuration"> | |
| <title>Jersey configuration</title> | |
| <para> | |
| This chapter provides Jersey configuration basics which includes configuration using default configuration | |
| provider (included in Jersey by default) using system properties, and micro-profile configuration extension | |
| which allows plugging-in of configuration modules based on micro profile configuration specification. | |
| </para> | |
| <section xml:id="default-config"> | |
| <title>Jersey default configuration provider</title> | |
| <para> | |
| Since Jersey 2.29 it is possible to turn on the ability to convert the System properties into | |
| Configuration properties. That can be done by using the System property, too: | |
| <programlisting language="bash" linenumbering="unnumbered">java -Djersey.config.allowSystemPropertiesProvider=true -DNAME=VALUE | |
| </programlisting> | |
| Note that with the security manager turned on, write access permission is required to execute | |
| System.getProperties(). With insufficient permissions, the warning message is logged (with Level.FINER) and | |
| only &jersey.common.CommonProperties;, &jersey.client.ClientProperties;, | |
| and &jersey.server.ServerProperties; | |
| properties are used, as the property names are known and System.getProperty(name) method can be used, | |
| which does not require the write access permission. | |
| </para> | |
| </section> | |
| <section xml:id="mp-config"> | |
| <title>Micro profile configuration provider</title> | |
| <para> | |
| Microprofile platform became very popular lately and µprofile.spec.link; | |
| is a recommended way in the Jakarta EE world to configure the specifications under the Jakarta EE umbrella. | |
| </para> | |
| <para> | |
| Jersey 2.29 comes with support for Microprofile Config implementation such as &helidon.link; or &smallrye.link;. | |
| To configure the Jersey application, the microprofile-config.properties file needs to be created in the | |
| META-INF folder. The required properties are then simply set in the microprofile-config.properties: | |
| <programlisting language="java" linenumbering="unnumbered"> | |
| NAME=VALUE | |
| </programlisting> | |
| </para> | |
| <para> | |
| Then Jersey Microprofile Config extension is needed to be added: | |
| <programlisting language="xml" linenumbering="unnumbered"> | |
| <dependency> | |
| <groupId>org.glassfish.jersey.ext.microprofile</groupId> | |
| <artifactId>jersey-mp-config</artifactId> | |
| <version>&version;</scope> | |
| </dependency> | |
| </programlisting> | |
| And the Microprofile Config implementation, such as Helidon: | |
| <programlisting language="xml" linenumbering="unnumbered"> | |
| <dependency> | |
| <groupId>io.helidon.microprofile.config</groupId> | |
| <artifactId>helidon-microprofile-config</artifactId> | |
| <version>&helidon.version;</version> | |
| </dependency> | |
| </programlisting> | |
| Or SmallRye: | |
| <programlisting language="xml" linenumbering="unnumbered"> | |
| <dependency> | |
| <groupId>io.smallrye</groupId> | |
| <artifactId>smallrye-config</artifactId> | |
| <version>&smallrye.version;</version> | |
| </dependency> | |
| </programlisting> | |
| or any other suitable Microprofile Config implementation. | |
| </para> | |
| </section> | |
| </chapter> |