On 18 January 2016 at 10:46, Marko Strukelj <mstrukel@redhat.com> wrote:
Hot deployment is a tricky business always fraught with danger of
leaving garbage behind, leading to difficult-to-explain slowdowns and
eventually to out of memory, or to buggy behavior by not properly
refreshing resources in all the places. By not using it we can save
ourselves one possible cause for any such symptoms.

Sure, but it's still nice to have if we could support it
 

For production the proper way is to put it in a clustered setup of at
least two instances. You can then restart one at a time. At least
that's the idea.

Actually that won't work, because the two nodes would have different themes for a period. Domain mode in WildFly supports deployments to a cluster, which would be much nicer if we supported that.
 

For development there is a way to configure Keycloak to load themes
from your source directory, you can then just refresh your browser to
see changes.


You can set that up like this:

Build the project
  mvn clean install -DskipTests

Open and edit distribution/server-dist/server-provisioning.xml
Find copy-module-artifacts="true" and change it to copy-module-artifacts="false"

I use:
  sed -i '' 's/copy-module-artifacts="true"/copy-module-artifacts="false"/'
distribution/server-dist/server-provisioning.xml

Then only build the server distribution module
  mvn clean install -Pdistribution -pl distribution/server-dist

Finally instruct Keycloak to load themes from source directory. Open
and edit distribution/server-dist/target/keycloak*/standalone/configuration/keycloak-server.json

Find "dir": "${jboss.server.config.dir}/themes" and change it to
"dir": "PATH_TO_YOUR_KEYCLOAK_GIT_HOME/forms/common-themes/src/main/resources/theme"

I use:
  sed -i '' 's,"dir": "${jboss.server.config.dir}/themes","dir":
"/Users/marko/devel/keycloak/keycloak/forms/common-themes/src/main/resources/theme",'
distribution/server-dist/target/keycloak*/standalone/configuration/keycloak-server.json


I don't see the need for all those steps. All you need to do is change the dir property for the themes. Default built-in themes would then be loaded from the jars and your custom themes directly from the source.
 
On Mon, Jan 18, 2016 at 9:46 AM, Travis De Silva <traviskds@gmail.com> wrote:
> I think the jar is a good idea. I have hocked it up with our Jenkins CI
> process.
>
> As you mentioned, since the themes are cached, we have no option but to
> restart KeyCloak. This might go well in a non-clustered production
> environment.
>
> I don't think wildfly modules are reloadable. But wildfly allows you to
> deploy a jar just like a war. Wondering why you guys didn't take that route
> and went with the module route.
>
> Also if there is anyway to clear the theme cache when we deploy a new change
> without having to restart KeyCloak would be great. I don't want to disable
> the cache settings in keycloak-server.json as cache is important for
> performance but just want a way to reload it when we deploy new changes/new
> themes via the jar file.
>
>
> On Mon, 18 Jan 2016 at 19:25 Stian Thorgersen <sthorger@redhat.com> wrote:
>>
>> You can chuck it into standalone/configuration/themes for production as
>> well. The docs suggest to not do that as in production you want a stable set
>> of files and make sure all nodes in a cluster has the same versions. Themes
>> are also by default cached, both on the server side and in the browser.
>>
>> On 18 January 2016 at 08:59, Juraci Paixão Kröhling <juraci@kroehling.de>
>> wrote:
>>>
>>> On 16.01.2016 23:29, Travis De Silva wrote:
>>> > I don't think wildfly does hot deployment for modules.
>>>
>>> How about adding/removing the module via the Wildfly CLI?
>>>
>>> module add --name=the.theme... --resources=...jar
>>>
>>> - Juca.
>>> _______________________________________________
>>> keycloak-user mailing list
>>> keycloak-user@lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/keycloak-user
>>
>>
>> _______________________________________________
>> keycloak-user mailing list
>> keycloak-user@lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/keycloak-user
>
>
> _______________________________________________
> keycloak-user mailing list
> keycloak-user@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/keycloak-user