Configurando Servidores com o OSGi Blueprint

É possível configurar os servidores de contêiner do WebSphere eXtreme Scale usando um arquivo XML do OSGi Blueprint, permitindo o empacotamento e o desenvolvimento simplificados de pacotes configuráveis do servidor autocontidos.

Antes de Iniciar

Este tópico assume que as seguintes tarefas foram concluídas:

Sobre Esta Tarefa

Esta tarefa descreve como configurar um servidor do eXtreme Scale com um contêiner usando um arquivo XML do projeto. O resultado do procedimento é um pacote configurável do contêiner. Quando o pacote configurável do contêiner for iniciado, o pacote configurável do servidor eXtreme Scale controlará o pacote configurável, analisará o XML do servidor e iniciará um servidor e um contêiner.

Um pacote configurável do contêiner pode ser, opcionalmente, combinado com o aplicativo e os plug-ins do eXtreme Scale quando atualizações do plug-in dinâmico não são necessárias ou os plug-ins não suportam a atualização dinâmica.

Procedimento

  1. Crie um arquivo XML do Blueprint com o namespace objectgrid incluído. É possível nomear o arquivo de qualquer jeito. No entanto, ele deve incluir o namespace do projeto:
    <?xml version="1.0" encoding="UTF-8"?>
    
    <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
               xmlns:objectgrid="http://www.ibm.com/schema/objectgrid"
               xsi:schemaLocation="http://www.ibm.com/schema/objectgrid
                    http://www.ibm.com/schema/objectgrid/objectgrid.xsd">
    ...
    </blueprint>
  2. Inclua a definição de XML para o servidor eXtreme Scale com as propriedades de servidor apropriadas. Consulte o arquivo XML do descritor do Spring para obter detalhes sobre todas as propriedades de configuração disponíveis. Consulte o exemplo a seguir da definição de XML:
    <objectgrid:server id="xsServer" tracespec="ObjectGridOSGi=all=enabled" 
    tracefile="logs/osgi/wxsserver/trace.log" jmxport="1199" listenerPort="2909">
    <objectgrid:catalog host="catserver1.mycompany.com" port="2809" />
    <objectgrid:catalog host="catserver2.mycompany.com" port="2809" />
    </objectgrid:server>
  3. Inclua a definição de XML para o contêiner do eXtreme Scale com a referência para a definição de servidor e os arquivos XML do descritor do ObjectGrid e de implementação do ObjectGrid integrados no pacote configurável; por exemplo:
    <objectgrid:container id="container"
        objectgridxml="/META-INF/objectGrid.xml" 
        deploymentxml="/META-INF/objectGridDeployment.xml"
        server="xsServer" />
  4. Armazene o arquivo XML do Blueprint no pacote configurável do contêiner. O XML do Blueprint deve ser armazenado no diretório OSGI-INF/blueprint para que o contêiner do Blueprint seja localizado.
    Para armazenar o XML do Blueprint em um diretório diferente, você deve especificar o cabeçalho de manifesto Bundle-Blueprint; por exemplo:
    Bundle-Blueprint: OSGI-INF/blueprint.xml
  5. Empacote os arquivos em um arquivo JAR do pacote configurável único. Consulte o exemplo a seguir de uma hierarquia do diretório do pacote configurável:
    MyBundle.jar
        /META-INF/manifest.mf
        /META-INF/objectGrid.xml
        /META-INF/objectGridDeployment.xml
        /OSGI-INF/blueprint/blueprint.xml

Resultados

Um pacote configurável do contêiner do eXtreme Scale agora está criado e pode ser instalado no Eclipse Equinox. Quando o pacote configurável do contêiner é iniciado, o ambiente de tempo de execução do servidor eXtreme Scale no pacote configurável do servidor eXtreme Scale irá iniciar automaticamente servidor do eXtreme Scale de singleton usando os parâmetros definidos no pacote configurável e um servidor de contêiner é iniciado. O pacote configurável pode ser interrompido e iniciado, o que resulta no contêiner parando e iniciando. O servidor é um singleton e não para quando o pacote configurável é iniciado pela primeira vez.