AEM configurações servem para gerenciar configurações em AEM e servir como espaços de trabalho.
Uma configuração pode ser considerada de dois pontos de vista diferentes.
Em resumo: do ponto de visualização de um administrador, as configurações são a forma como você cria espaços de trabalho para gerenciar as configurações no AEM, enquanto o desenvolvedor deve entender como o AEM usa e gerencia essas configurações no repositório.
Independentemente da sua perspectiva, as configurações servem dois objetivos principais em AEM:
O administrador do AEM e os autores podem considerar configurações como espaços de trabalho. Esses espaços de trabalho podem ser usados para reunir grupos de configurações, bem como seu conteúdo associado para fins organizacionais, implementando direitos de acesso para esses recursos.
As configurações podem ser criadas para vários recursos diferentes dentro do AEM.
Por exemplo, um administrador pode criar duas configurações para Modelos editáveis.
O administrador pode então criar modelos de página gerais usando a configuração WKND-General e, em seguida, modelos específicos para a revista em WKND-Magazine.
O administrador pode então associar o WKND-Geral a todo o conteúdo do site WKND. No entanto, a configuração da WKND-Magazine seria associada apenas ao site da revista.
Fazendo isso:
Configurações semelhantes são possíveis não apenas para modelos editáveis, mas também para configurações em nuvem, segmentos do ContextHub e modelos de fragmento de conteúdo.
O Navegador de configuração permite que um administrador crie, gerencie e configure facilmente os direitos de acesso às configurações no AEM.
Só é possível criar configurações usando o Navegador de configuração se o usuário tiver admin
direitos. admin
os direitos também são necessários para atribuir direitos de acesso à configuração ou modificar uma configuração de outra forma.
É muito simples criar uma nova configuração no AEM usando o Navegador de configuração.
Efetue login no AEM como um Cloud Service e, no menu principal, selecione Ferramentas -> Geral -> Navegador de configuração.
Toque ou clique em Criar.
Forneça um Título e um Nome para a sua configuração.
Verifique o tipo de configurações que deseja permitir.
Toque ou clique em Criar.
As configurações podem ser aninhadas.
Se você considerar configurações como espaços de trabalho, os direitos de acesso podem ser definidos nessas configurações para impor quem pode ou não acessar esses espaços de trabalho.
Não é possível desmarcar um recurso depois que a configuração é criada.
Como desenvolvedor, é importante saber como o AEM como Cloud Service funciona com configurações e como ele processa a resolução da configuração.
Embora o administrador e usuários possam considerar as configurações como locais de trabalho para gerenciar configurações e conteúdo diferentes, é importante entender que as configurações e o conteúdo são armazenados e gerenciados separadamente por AEM no repositório.
/content
é o lar de todo o conteúdo./conf
é o local de todas as configurações.O conteúdo faz referência à configuração associada por meio de uma propriedade cq:conf
. AEM realiza uma pesquisa com base no conteúdo e é a propriedade cq:conf
contextual para localizar a configuração apropriada.
Neste exemplo, vamos supor que você tenha algum código de aplicativo que esteja interessado nas configurações de DAM.
Conf conf = resource.adaptTo(Conf.class);
ValueMap imageServerSettings = conf.getItem("dam/imageserver");
String bgkcolor = imageServerSettings.get("bgkcolor", "FFFFFF");
O ponto de partida de toda a pesquisa de configuração é um recurso de conteúdo, normalmente em /content
. Pode ser uma página, um componente dentro de uma página, um ativo ou uma pasta DAM. Este é o conteúdo real para o qual procuramos a configuração correta que se aplica neste contexto.
Agora, com o objeto Conf
em mãos, podemos recuperar o item de configuração específico em que estamos interessados. Nesse caso, é dam/imageserver
, que é uma coleção de configurações relacionadas a imageserver
. A chamada getItem
retorna um ValueMap
. Em seguida, lemos uma propriedade de string bgkcolor
e fornecemos um valor padrão de "FFFFF" caso a propriedade (ou o item de configuração inteiro) não esteja presente.
Agora vamos ver o conteúdo do JCR correspondente:
/content/dam/wknd
+ jcr:content
- cq:conf = "/conf/wknd"
+ image.png [dam:Asset]
/conf/wkns
+ settings
+ dam
+ imageserver [cq:Page]
+ jcr:content
- bgkcolor = "FF0000"
Neste exemplo, assumimos uma pasta DAM específica do WKND aqui e uma configuração correspondente. A partir dessa pasta /content/dam/wknd
, veremos que há uma propriedade de string chamada cq:conf
que faz referência à configuração que deve se aplicar à subárvore. A propriedade geralmente será definida em jcr:content
de uma pasta de ativos ou página. Esses links conf
são explícitos, portanto, é fácil segui-los observando apenas o conteúdo no CRXDE.
Ao pular dentro de /conf
, seguimos a referência e vemos que há um nó /conf/wknd
. Esta é uma configuração. Observe que sua pesquisa é completamente transparente para o código do aplicativo. O código de exemplo nunca tem uma referência dedicada a ele, ele está oculto atrás do objeto Conf
. A configuração que se aplica é completamente controlada pelo conteúdo do JCR.
Vemos que a configuração contém um nó settings
com nome fixo que contém os itens reais, incluindo o dam/imageserver
necessário no nosso caso. Esse item pode ser considerado um "documento de configurações" e geralmente é representado por um cq:Page
que inclui um jcr:content
contendo o conteúdo real.
Finalmente, vemos a propriedade bgkcolor
que nosso código de amostra precisa. O ValueMap
que obtemos de getItem
baseia-se no nó jcr:content
da página.
O exemplo básico acima mostrava uma única configuração. Mas há muitos casos em que você deseja ter configurações diferentes, como uma configuração global padrão, uma configuração diferente para cada marca e talvez uma específica para seus subprojetos.
Para suportar isso, a pesquisa de configuração no AEM tem o mecanismo de herança e fallback na seguinte ordem de preferência:
/conf/<siteconfig>/<parentconfig>/<myconfig>
cq:conf
em algum lugar em /content
/conf/<siteconfig>/<parentconfig>
/conf/<siteconfig>
/conf/global
admin
/apps
/libs
As configurações no AEM são baseadas em Configurações Sling sensíveis ao contexto. Os pacotes Sling fornecem uma API de serviço que pode ser usada para obter configurações sensíveis ao contexto. As configurações sensíveis ao contexto são configurações relacionadas a um recurso de conteúdo ou a uma árvore de recursos, como foi descrito no exemplo anterior.
Para obter mais detalhes sobre Configurações sensíveis ao contexto, exemplos e como usá-las, consulte a documentação Sling.
Para fins de depuração e teste, há um ConfMgr console da Web em https://<host>:<port>/system/console/conf
, que pode mostrar configurações para um determinado caminho/item.
Simplesmente forneça:
Clique em Resolver para ver quais configurações foram resolvidas e receber o código de amostra que resolverá essas configurações.
Para fins de depuração e teste, há um console da Web Context-Aware Configuration em https://<host>:<port>/system/console/slingcaconfig
, que permite consultar configurações sensíveis ao contexto no repositório e exibir suas propriedades.
Simplesmente forneça:
Clique em Resolver para recuperar os caminhos de contexto e as propriedades associados para a configuração selecionada.