OSGi é um elemento fundamental na pilha de tecnologia do Adobe Experience Manager (AEM). É usado para controlar os pacotes compostos de AEM e sua configuração.
OSGi "O fornece as primitivas padronizadas que permitem que os aplicativos sejam construídos a partir de componentes pequenos, reutilizáveis e colaborativos. Esses componentes podem ser compostos em um aplicativo e implantados".
Isso permite o fácil gerenciamento de pacotes, pois eles podem ser interrompidos, instalados e iniciados individualmente. As interdependências são tratadas automaticamente. Cada componente OSGi (consulte a Especificação OSGi) está contido em um dos vários pacotes.
Você pode gerenciar as definições de configuração desses pacotes ao:
sling:OsgiConfig
) no repositórioAmbos os métodos podem ser usados, embora existam diferenças sutis, principalmente em relação a Modos de execução:
O Console da Web é a interface padrão para a configuração do OSGi. Ela fornece uma interface para editar as várias propriedades, onde os valores possíveis podem ser selecionados nas listas predefinidas.
Como tal, é o método mais fácil de usar.
Quaisquer configurações feitas com o Console da Web são aplicadas imediatamente e aplicáveis à instância atual, independentemente do modo de execução atual ou de qualquer alteração subsequente no modo de execução.
nós de conteúdo (sling:osgiConfig) no repositório
sling:OsgiConfig
nós, é possível vincular a configuração a um modo de execução. Você pode até mesmo salvar configurações para mais de um modo de execução no mesmo repositório.Qualquer que seja o método usado, todos esses métodos de configuração:
Os detalhes de determinadas configurações importantes estão listados em Configurações do OSGi.
A variável Console da Web no AEM fornece uma interface padronizada para configurar os pacotes. A variável Configuração é usada para configurar os pacotes OSGi e, portanto, é o mecanismo subjacente para configurar os parâmetros do sistema AEM.
Quaisquer alterações feitas são aplicadas imediatamente à configuração OSGi relevante; não é necessário reiniciar.
As alterações feitas no console da Web são salvas no repositório como arquivos de configuração. Esses arquivos podem ser incluídos em pacotes de conteúdo para reutilização em instalações adicionais.
No console da Web, todas as descrições que mencionam as configurações padrão estão relacionadas aos padrões do Sling.
O Adobe Experience Manager tem seus próprios padrões e, portanto, os padrões definidos podem ser diferentes dos padrões documentados no console.
Para atualizar uma configuração com o console da Web:
Acesse o Configuração do Console da Web:
Ao abrir o console da Web no link no Ferramenta -> Operações menu. Depois de fazer logon no console, você pode usar o menu suspenso de:
OSGi >
O URL direto; por exemplo:
http://localhost:4502/system/console/configMgr
Uma lista é exibida.
Selecione o pacote que você deseja configurar:
Uma caixa de diálogo é aberta. Aqui é possível editar conforme necessário. Por exemplo, defina a variável Nível de registro para INFO
:
As atualizações são salvas no repositório como arquivos de configuração. Para localizar esses arquivos posteriormente para incluir em um pacote de conteúdo para uso em outra instância, por exemplo, anote a identidade persistente ( PID
).
Clique em Salvar.
Suas alterações são aplicadas imediatamente à configuração OSGi relevante do sistema em execução; não é necessário reiniciar.
Agora você pode localizar o arquivos de configuração. Por exemplo, para incluir em um pacote de conteúdo para uso em outra instância.
As alterações de configuração feitas usando o Console da Web são mantidas no repositório como arquivos de configuração ( .config
) em:
/apps
Esses arquivos podem ser incluídos em pacotes de conteúdo e reutilizados em outras instâncias.
O formato dos arquivos de configuração é específico - consulte a Documentação do Sling Apache para obter detalhes completos.
Por esse motivo, é recomendável criar e manter o arquivo de configuração fazendo alterações reais no console da Web.
O Console da Web não mostra nenhuma indicação de onde no repositório suas alterações foram salvas, mas elas podem ser facilmente localizadas:
Criar o arquivo de configuração por fazer uma alteração inicial no console da web.
Abra o CRXDE Lite.
No Ferramentas selecione Consulta … .
Para pesquisar o PID da configuração atualizada, envie uma consulta de Tipo SQL
.
Por exemplo, Console de gerenciamento do Apache Felix OSGi tem a identidade persistente (PID) de:
org.apache.felix.webconsole.internal.servlet.OsgiManager
Assim, a consulta SQL poderia ser:
select * from nt:base where jcr:path like '/apps/%' and contains(*, 'org.apache.felix.webconsole.internal.servlet.OsgiManager')
O nó do arquivo de configuração é mostrado.
Para o exemplo acima:
/apps/system/config/org.apache.felix.webconsole.internal.servlet.OsgiManager.config
Você pode abrir esse arquivo para exibir as alterações, mas para evitar erros de digitação, é recomendável fazer alterações reais com o console.
Agora é possível criar um pacote de conteúdo com esse nó e usá-lo conforme necessário em outras instâncias.
Além de usar o console da Web, você também pode definir detalhes de configuração no repositório. Isso permite configurar facilmente seus diferentes modos de execução.
Essas configurações são feitas criando sling:OsgiConfig
nós no repositório para o sistema fazer referência. Esses nós espelham as configurações do OSGi e uma interface do usuário é formada para eles. Para atualizar os dados de configuração, atualize as propriedades do nó.
Se você modificar os dados de configuração no repositório, as alterações serão aplicadas imediatamente à configuração OSGi relevante. É como se as alterações tivessem sido feitas usando o console da Web, com as verificações de validação e consistência apropriadas. Esse workflow também se aplica à ação de copiar uma configuração de /libs/
para /apps/
.
Como o mesmo parâmetro de configuração está em vários lugares, o sistema:
sling:OsgiConfig
Para adicionar uma configuração ao repositório, você deve saber o seguinte:
A variável Identidade persistente do serviço.
Referencie a Configurações no console da Web. O nome é mostrado entre parênteses após o nome do pacote (ou no campo Informações de configuração na parte inferior da página).
Por exemplo, criar um nó com.day.cq.wcm.core.impl.VersionManagerImpl.
para configurar Gerenciador de versão AEM WCM.
É um modo de execução obrigatório? Crie a pasta:
config
- para todos os modos de execuçãoconfig.author
- para o ambiente de criaçãoconfig.publish
- para o ambiente de publicaçãoconfig.<run-mode>
- conforme adequadoÉ um Configuração ou Configuração de fábrica necessário?
Os parâmetros individuais a serem configurados, incluindo quaisquer definições de parâmetro existentes que devem ser recriadas.
Faça referência ao campo de parâmetro individual no console da Web. O nome é mostrado entre parênteses para cada parâmetro.
Por exemplo, criar uma propriedade
versionmanager.createVersionOnActivation
para configurar Criar versão na ativação.
Existe uma configuração no /libs
? Para listar todas as configurações na sua instância, use o Query ferramenta no CRXDE Lite para enviar a seguinte consulta SQL:
select * from sling:OsgiConfig
Em caso afirmativo, essa configuração pode ser copiada para o /apps/<yourProject>/
, depois personalizado no novo local.
Para realmente adicionar a nova configuração ao repositório:
Use o CRXDE Lite para navegar até:
/apps/<yourProject>
Se não existir, crie o config
pasta ( sling:Folder
):
config
- aplicável a todos os modos de execuçãoconfig.<run-mode>
- específico para um modo de execução específicoNesta pasta, crie um nó:
Tipo: sling:OsgiConfig
Nome: a identidade persistente (PID);
por exemplo, para uso do Gerenciador de versão do WCM do AEM com.day.cq.wcm.core.impl.VersionManagerImpl
Ao fazer uma configuração de fábrica, adicione -<identifier>
ao nome.
Como em: org.apache.sling.commons.log.LogManager.factory.config-<identifier>
Onde <identifier>
é substituído por texto livre que você (deve) inserir para identificar a instância (você não pode omitir essas informações); por exemplo:
org.apache.sling.commons.log.LogManager.factory.config-MINE
Para cada parâmetro que você deseja configurar, crie uma propriedade neste nó:
Create Version on Activation
use versionmanager.createVersionOnActivation
Você só precisa criar propriedades para os parâmetros que deseja configurar, outros ainda assumirão os valores padrão conforme definidos pelo AEM.
Salve todas as alterações.
As alterações são aplicadas quando o nó é atualizado reiniciando o serviço (como com as alterações feitas no console da Web).
Não altere nada no /libs
caminho.
O caminho completo de uma configuração deve estar correto para ser lido na inicialização.
A seguinte ordem de precedência é usada:
Nós do repositório em /apps/*/config...
.com tipo sling:OsgiConfig
ou arquivos de propriedade.
Nós do repositório com tipo sling:OsgiConfig
em /libs/*/config...
. (definições prontas para uso).
Qualquer .config
arquivos de <*cq-installation-dir*>/crx-quickstart/launchpad/config/...
. no sistema de arquivos local.
Uma configuração genérica no /libs
pode ser mascarado por uma configuração específica do projeto no /apps
.
Alterações de configuração feitas enquanto o sistema está em execução acionam um recarregamento com a configuração modificada.
Então, a seguinte ordem de precedência se aplica:
/apps
imediatamente./libs
tem efeito imediato, a menos que seja mascarado por uma configuração no /apps
.Para configurações específicas do modo de execução, vários modos de execução podem ser combinados. Por exemplo, você pode criar pastas de configuração no seguinte estilo:
/apps/*/config.<runmode1>.<runmode2>/
As configurações nessas pastas são aplicadas se todos os modos de execução corresponderem a um modo de execução definido na inicialização.
Por exemplo, se uma instância foi iniciada com os modos de execução author,dev,emea
, nós de configuração em /apps/*/config.emea
, /apps/*/config.author.dev/
, e /apps/*/config.author.emea.dev/
é aplicado, enquanto os nós de configuração em /apps/*/config.author.asean/
e /config/author.dev.emea.noldap/
não são aplicadas.
Se várias configurações para o mesmo PID forem aplicáveis, a configuração com o maior número de modos de execução correspondentes será aplicada.
Por exemplo, se uma instância foi iniciada com os modos de execução author,dev,emea
, e ambos /apps/*/config.author/
e /apps/*/config.emea.author/
definir uma configuração para
com.day.cq.wcm.core.impl.VersionManagerImpl
, a configuração em /apps/*/config.emea.author/
é aplicada.
A granularidade dessa regra está em um nível PID.
Não é possível definir algumas propriedades para o mesmo PID no /apps/*/config.author/
e mais específicas em /apps/*/config.emea.author/
para o mesmo PID.
A configuração com o maior número de modos de execução correspondentes é válida para todo o PID.
A lista a seguir mostra uma pequena seleção das configurações disponíveis (em uma instalação padrão) no repositório:
Autor - Filtro WCM para AEM:
libs/wcm/core/config.author/com.day.cq.wcm.core.WCMRequestFilter
Publicar - Filtro WCM para AEM:
libs/wcm/core/config.publish/com.day.cq.wcm.core.WCMRequestFilter
Publicar - Estatísticas de página do WCM no AEM:
libs/wcm/core/config.publish/com.day.cq.wcm.core.stats.PageViewStatistics
Como essas configurações residem em /libs
eles não devem ser editados diretamente, mas copiados para a área do seu aplicativo ( /apps
) antes da personalização.
Para listar todos os nós de configuração na sua instância, use o Query funcionalidade no CRXDE Lite para enviar a seguinte query SQL:
select * from sling:OsgiConfig
Se você alterar uma configuração por meio do console da Web, ela (geralmente) será gravada no repositório em:
/apps/{somewhere}
Por padrão {somewhere}
é system/config
para que a configuração seja gravada em
/apps/system/config
No entanto, se você estiver editando uma configuração que veio inicialmente de outro lugar no repositório: por exemplo:
/libs/foo/config/Someconfig
Em seguida, a configuração atualizada é gravada no local original; por exemplo:
/apps/foo/config/someconfig
Configurações alteradas por admin
são salvos em *.config
arquivos em:
/crx-quickstart/launchpad/config
Essa área são os dados privados do administrador de configuração do OSGi e contém todos os detalhes de configuração especificados por admin
, independentemente de como entraram no sistema.
Essa área é um detalhe de implementação e você nunca deve editar esse diretório diretamente.
No entanto, é útil saber o local desses arquivos de configuração para que as cópias possam ser feitas para backup, várias instalações ou ambas:
Console de gerenciamento do Apache Felix OSGi
../crx/org/apache/felix/webconsole/internal/servlet/OsgiManager.config
Repositório do cliente do CRX Sling
../com/day/crx/sling/client/impl/CRXSlingClientRepository/<pid-nr>.config
Nunca edite as pastas ou arquivos em:
/crx-quickstart/launchpad/config