<div dir="ltr">One thing I'm not so keen on is the syntax for a list.</div><div class="gmail_extra"><br><div class="gmail_quote">On 26 August 2016 at 14:24, Stan Silvert <span dir="ltr"><<a href="mailto:ssilvert@redhat.com" target="_blank">ssilvert@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Now that changes for KEYCLOAK-3196 are merged, everything you used to<br>
configure in keycloak-server.json will now be configured in<br>
standalone.xml, standalone-ha.xml, or domain.xml.<br>
<br>
If you need to make a change to the default keycloak-subsystem<br>
configuration, you will need to edit this file:<br>
<a href="https://github.com/keycloak/keycloak/blob/master/wildfly/server-subsystem/src/main/config/default-server-subsys-config.properties" rel="noreferrer" target="_blank">https://github.com/keycloak/<wbr>keycloak/blob/master/wildfly/<wbr>server-subsystem/src/main/<wbr>config/default-server-subsys-<wbr>config.properties</a><br>
<br>
This file contains a single multi-line property containing the subsystem<br>
xml declaration. Maven filtering is used to read this property and<br>
inject it everywhere it needs to go. Editing this file will also take<br>
care of propagating it to the distributions like server-dist and demo-dist.<br>
<br>
Also, you need to create CLI commands for each change by editing this file:<br>
<a href="https://github.com/keycloak/keycloak/blob/master/wildfly/server-subsystem/src/main/resources/cli/default-keycloak-subsys-config.cli" rel="noreferrer" target="_blank">https://github.com/keycloak/<wbr>keycloak/blob/master/wildfly/<wbr>server-subsystem/src/main/<wbr>resources/cli/default-<wbr>keycloak-subsys-config.cli</a><br>
<br>
This CLI snippet is used in the scripts required by the overlay<br>
distribution.<br>
<br>
We have always had the problem that whenever someone changes<br>
keycloak-server.json, they forget to make corresponding changes that<br>
affect the various distributions. With the switch to standalone.xml, we<br>
now have just these two files to edit instead of five or six.<br>
<br>
Below, I'm pasting part of the asciidoc documentation I'm working on for<br>
this. It explains how to configure SPI's in standalone.xml. Also, if<br>
someone can tell me if what I said about default-provider is accurate<br>
I'd appreciate that:<br>
<br>
------------------------------<wbr>------------------------------<wbr>------------------------------<wbr>------------------------------<wbr>------------------------------<wbr>----<br>
All elements in an SPI declaration are optional, but a full SPI declaration<br>
looks like this:<br>
[source,xml]<br>
----<br>
<spi name="dblock"><br>
<default-provider>mongo</<wbr>default-provider><br>
<provider name="jpa" enabled="true"><br>
<properties><br>
<property name="lockWaitTimeout" value="800"/><br>
</properties><br>
</provider><br>
<provider name="mongo" enabled="true"><br>
<properties><br>
<property name="lockRecheckTime" value="2"/><br>
<property name="lockWaitTimeout" value="600"/><br>
</properties><br>
</provider><br>
</spi><br>
----<br>
Here we have two providers defined for the SPI `dblock`. The<br>
`default-provider`<br>
is listed as `mongo`. However it is up to the SPI to decide how it will<br>
treat<br>
this setting. Some SPIs allow more than one provider and some do not. So<br>
`default-provider` can help the SPI to choose.<br>
<br>
Also notice that each provider defines its own set of configuration<br>
properties.<br>
The fact that both providers above have a property called<br>
`lockWaitTimeout` is just a<br>
coincidence.<br>
<br>
The type of each property value is interpreted by the provider. However,<br>
there<br>
is one exception. Consider the `jpa` provider for the `eventStore` API:<br>
[source,xml]<br>
----<br>
<spi name="eventsStore"><br>
<provider name="jpa" enabled="true"><br>
<properties><br>
<property name="exclude-events" value="[&quot;EVENT1&quot;,<br>
&quot;EVENT2&quot;]"/><br>
</properties><br>
</provider><br>
</spi><br>
----<br>
We see that the value begins and ends with square brackets. That means that<br>
the value will be passed to the provider as a list. In this example,<br>
the system will pass the<br>
provider a list with two element values _EVENT1_ and _EVENT2_. To add<br>
more values<br>
to the list, just separate each list element with a comma. Unfortunately,<br>
you do need to escape the quotes surrounding each list element with<br>
`\&quot;`.<br>
______________________________<wbr>_________________<br>
keycloak-dev mailing list<br>
<a href="mailto:keycloak-dev@lists.jboss.org">keycloak-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/keycloak-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/<wbr>mailman/listinfo/keycloak-dev</a><br>
</blockquote></div><br></div>