|  | <?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> |