anchor.diff:    }
   
     @javax.annotation.Nonnull
  +  protected String getKeycloakSecret( @javax.annotation.Nullable final String prefix )
  +  {
  +    return ensureProperty( prefix, "keycloak.secret", "-" );
  +  }
  +
  +  @javax.annotation.Nonnull
     protected String getKeycloakServiceUsername( @javax.annotation.Nullable final String prefix )
     {
       return ensureProperty( prefix, "keycloak.service_username" );
  
positive.code:     glassfish.createCustomResource( <%= repository.ee.qualified_jndi_resource_constants_name %>.<%= repository.ee.custom_jndi_resources["#{remote_client.jndi_config_base}/client"] %>, getKeycloakClient( "<%= Reality::Naming.underscore(remote_client.name) %>" ) );
      glassfish.createCustomResource( <%= repository.ee.qualified_jndi_resource_constants_name %>.<%= repository.ee.custom_jndi_resources["#{remote_client.jndi_config_base}/username"] %>, getKeycloakServiceUsername( "<%= Reality::Naming.underscore(remote_client.name) %>" ) );
      glassfish.createCustomResource( <%= repository.ee.qualified_jndi_resource_constants_name %>.<%= repository.ee.custom_jndi_resources["#{remote_client.jndi_config_base}/password"] %>, getKeycloakServicePassword( "<%= Reality::Naming.underscore(remote_client.name) %>" ) );
  <% end -%>
      // Keycloak Configuration Ende
  <% end -%>
  
negative.code:   @javax.annotation.Nonnull
    protected String ensureProperty( @javax.annotation.Nullable final String prefix, @javax.annotation.Nonnull final String key )
    {
      return ensureProperty( prefix, key, null );
    }
  
    @javax.annotation.Nonnull
    protected String ensureProperty( @javax.annotation.Nullable final String prefix, @javax.annotation.Nonnull final String key, @javax.annotation.Nullable final String defaultValue )
    {
      final String p = prefix == null ? "" : prefix + ".";
      final String v = System.getProperties().getProperty( p + key, defaultValue );
      if( null == v && null != prefix )
      {
        return ensureProperty( null, key );
  