diff --git a/manifests/init.pp b/manifests/init.pp index d0427402..2fce729e 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -26,7 +26,8 @@ # @param java_package # Java package name, only used when `java_declare_method` is `class` # @param java_home -# Java home path, only used when `java_declare_method` is `class` +# Java home path. This value is used when `java_declare_method` is `class` +# as well as to set JAVA_HOME environment variable for the Keycloak service. # @param java_alternative_path # Java alternative path, only used when `java_declare_method` is `class` # @param java_alternative diff --git a/spec/classes/init_spec.rb b/spec/classes/init_spec.rb index 96180a1c..7bf21866 100644 --- a/spec/classes/init_spec.rb +++ b/spec/classes/init_spec.rb @@ -183,6 +183,16 @@ ) end end + + context 'when java_home defined' do + let(:params) { { java_home: '/foo' } } + + it do + is_expected.to contain_systemd__unit_file('keycloak.service').with( + content: %r{Environment='JAVA_HOME=/foo'}, + ) + end + end end end end diff --git a/templates/keycloak.service.erb b/templates/keycloak.service.erb index eeac048d..88d8a0c5 100644 --- a/templates/keycloak.service.erb +++ b/templates/keycloak.service.erb @@ -17,6 +17,7 @@ Environment='JAVA_OPTS_APPEND=<%= scope['keycloak::java_opts'].join(' ') %>' Environment='JAVA_OPTS_APPEND=<%= scope['keycloak::java_opts'] %>' <%- end -%> <% end -%> +Environment='JAVA_HOME=<%= scope['keycloak::java_home'] %>' User=<%= scope['keycloak::user'] %> Group=<%= scope['keycloak::group'] %> ExecStart=<%= scope['keycloak::service_start_cmd'] %>