Principais novidades LumisXP 19 para desenvolvedores

Nova forma para recuperar property bags

Próximo vídeo

Introdução

  • Uma property no LumisXP permite associar uma chave e um valor a elementos do portal, como canais, páginas e instâncias de serviço.
  • Antes do LumisXP 19, acessar o valor de uma property em uma classe Java exigia primeiro identificar o property bag associado ao elemento.
  • Depois de obter o identificador desse conjunto de propriedades, era necessário buscar a chave desejada para recuperar seu valor.

Acesso simplificado às properties

  • No LumisXP 19, o acesso às properties pode ser feito diretamente a partir do objeto de configuração do elemento.
  • Objetos como service instance config, page config e channel config passam a disponibilizar o método getProperty.
  • Com isso, basta informar a chave desejada para recuperar seu valor, sem precisar obter previamente o identificador da property bag.
  • Comparativo entre acessar uma property bag em uma classe Java antes da versão 19 e após a versão 19:

//Antes da versão 19
String serviceInstancePropertyBagId = source.getDouiContext().getRequest().getServiceInstanceConfig().getPropertyBagId();
//String serviceInstancePropertyBagId2 = source.getDouiContext().getRequest().getPageConfig().getPropertyBagId();

ManagerFactory.getPropertyBagManager().getValue(serviceInstancePropertyBagId, "MINHA_CHAVE", null);


//A partir da versão 19
douiContext.getRequest().getServiceInstanceConfig().getProperties().get("MINHA_CHAVE");

Uso em arquivos de estilo

  • A simplificação também permite acessar properties diretamente a partir dos objetos de configuração utilizados em arquivos de estilo.
  • Os valores podem ser recuperados por meio do método getProperty ou utilizando Expression Language.
  • A novidade reduz a quantidade de código necessária e torna o acesso às configurações mais direto.
  • Exemplo de arquivo de estilo em Javascript:

<%= lum_serviceInterfaceRequest.getServiceInstanceConfig().getProperties().get("MINHA_CHAVE") %>

<script>
var product = '${serviceInterfaceRequest.serviceInstanceConfig.properties.MINHA_CHAVE}';
console.log(product);
</script>