corner imagecorner image FeaturesPluginsPlatformDocs & SupportCommunityPartners


Início rápido da plataforma NetBeans utilizando o OSGi

Este documento é uma demonstração rápida de como integrar os pacotes OSGi com um aplicativo da plataforma NetBeans.

O foco neste tutorial é um cenário "hello world" com base no Jogo Sudoku por Peter Kriens. Os pacotes OSGi que constituem o Jogo Sudoku são importados, junto com os pacotes relacionados e necessários do Equinox. Quando o aplicativo é implementado, o seguinte aplicativo estará disponível no navegador da Web:

Após passar por este cenário simples, cenários mais úteis estão listados na seção Leitura adicional no fim deste tutorial.

Conteúdo

O conteúdo desta página se aplica ao NetBeans IDE 6.5, 6.7, 6.8

Para seguir este tutorial, os softwares e recursos listados na tabela seguinte são necessários.

Software ou recurso Versão necessária
NetBeans IDE versão 6.9
Java Developer Kit (JDK) Versão 6 ou
Equinox
Jogo Sudoku

Nota: não é preciso efetuar o download de uma versão separada da plataforma NetBeans para desenvolver aplicativos para a plataforma NetBeans. Normalmente, você desenvolverá os aplicativos e módulos no NetBeans IDE, e a seguir somente gerará incluir os módulos necessários para executar a plataforma NetBeans e seu aplicativo.

Configurando o ambiente

Ao lado de baixar o software acima listado, é preciso executar algumas etapas para preparar seu ambiente, como abaixo descrito.

  1. Crie uma nova pasta em seu sistema de arquivos no disco.
  2. A partir da distribuição Equinox, coloque o seguinte na pasta:
    • javax.servlet_xxx.jar
    • org.eclipse.equinox.ds_xxx.jar
    • org.eclipse.equinox.http_xxx.jar
    • org.eclipse.equinox.util_xxx.jar
    • org.eclipse.osgi.services_xxx.jar
    • org.eclipse.osgi_xxx.jar
  3. Coloque os dois JARs do Sudoku na pasta onde os JARs acima são encontrados:
    • aQute.sudoku.jar
    • aQute.webrpc.jar

Agora você possui os pacotes OSGi que gerará importar disponíveis em uma localização centralizada, de onde gerará integrá-los com seu aplicativo.

Criando a aplicação

Após possuir todos os pacotes OSGi necessários disponíveis, crie seu novo aplicativo da plataforma NetBeans, como abaixo descrito.

  1. Escolha Arquivo | Novo projeto e escolha criar um aplicativo da plataforma NetBeans sobre o Equinox, através do modelo Equinox:

    Clique em Próximo.

  2. Especifique um nome para o aplicativo, como abaixo mostrado.

    Clique em Terminar.

  3. É possível executar o aplicativo resultante do modelo acima, e ver um aplicativo contendo uma janela, exibindo todos os módulos NetBeans e os pacotes OSGi que compõem seu aplicativo.

Importando os pacotes OSGi

Ao lado de baixar o software acima listado, é preciso executar algumas etapas para preparar seu ambiente, como abaixo descrito.

  1. Clique com o botão direito do mouse no aplicativo janela Projetos, escolha Propriedades, siga para aba Bibliotecas, clique em "Adicionar cluster", e, em seguida navegue para a pasta onde são encontrados os JARS acima. O assistente que permite converter os JARs para um 'cluster' é aberto, ou seja um conjunto de módulos/pacotes relacionados que serão incorporados em seu aplicativo:

  2. Como mostrado acima, defina todos os pacotes OSGi importados como "Habilitados", para que sejam carregados e estejam disponíveis no momento de inicialização do aplicativo.
  3. Quando você clica em terminar, o arquivo de configuração das "propriedades da plataforma" terá sido atualizado. Deveria se parecer com algo assim:
    cluster.path.extra=netbinox:\../../path/to/my/nbsudokugame/folder
    disabled.modules.extra=org.netbeans.libs.felix
    cluster.path=\
        ${nbplatform.active.dir}/harness:\
        ${nbplatform.active.dir}/platform:\
        ${cluster.path.extra}
    disabled.modules=\
        org.jdesktop.layout,\
        org.netbeans.api.visual,\
        org.netbeans.core.execution,\
        org.netbeans.core.multiview,\
        org.netbeans.insane,\
        org.netbeans.libs.felix,\
        org.netbeans.libs.jsr223,\
        org.netbeans.modules.apisupport.harness,\
        org.netbeans.modules.apisupport.tc.cobertura,\
        org.netbeans.modules.autoupdate.services,\
        org.netbeans.modules.autoupdate.ui,\
        org.netbeans.modules.core.kit,\
        org.netbeans.modules.favorites,\
        org.netbeans.modules.jellytools.platform,\
        org.netbeans.modules.jemmy,\
        org.openide.compat,\
        org.openide.execution,\
        org.openide.options,\
        org.openide.util.enumerations
    nbplatform.active=default

    Nota: a primeira linha aponta para a pasta anteriormente criada.

  4. Então adicione esta linha no arquivo de configuração "project.properties" do aplicativo, que especifica que a tela inicial não será mostrada e qual é a porta para a implementação do aplicativo:
    run.args.extra=--nosplash -J-Dorg.osgi.service.http.port=8080

Executando o aplicativo

O aplicativo agora está pronto para ser implementado, como abaixo descrito.

  1. Execute o aplicativo! Todos os pacotes OSGi e os módulos NetBeans em seu aplicativo serão implementados. O aplicativo para visualizar os pacotes OSGi e os módulos NetBeans implementados são também implementados, fornecendo-lhe um aplicativo de área de trabalho para monitorar o que está no momento implementado, o que é bem útil:

    Alternativamente, exclua todo o módulo que fornece a janela acima. A seguir, remova todos os módulos que sejam necessários para a janela acima, ou seja, remova o sistema de janelas, sistema de ações, e tudo mais... exceto para os poucos JARs necessários pela integração OSGi: bootstrap, inicialização, sistemas de arquivos, sistema de módulos, utilitários e pesquisa.

    cluster.path.extra=netbinox:\../../path/to/my/nbsudokugame/folder
    disabled.modules.extra=org.netbeans.libs.felix
    cluster.path=\
        ${nbplatform.active.dir}/harness:\
        ${nbplatform.active.dir}/platform:\
        ${cluster.path.extra}
    disabled.modules=\
        org.jdesktop.layout,\
        org.netbeans.api.annotations.common,\
        org.netbeans.api.progress,\
        org.netbeans.api.visual,\
        org.netbeans.core,\
        org.netbeans.core.execution,\
        org.netbeans.core.io.ui,\
        org.netbeans.core.multiview,\
        org.netbeans.core.nativeaccess,\
        org.netbeans.core.output2,\
        org.netbeans.core.ui,\
        org.netbeans.core.windows,\
        org.netbeans.insane,\
        org.netbeans.libs.felix,\
        org.netbeans.libs.jna,\
        org.netbeans.libs.jsr223,\
        org.netbeans.libs.junit4,\
        org.netbeans.modules.apisupport.harness,\
        org.netbeans.modules.apisupport.tc.cobertura,\
        org.netbeans.modules.applemenu,\
        org.netbeans.modules.autoupdate.services,\
        org.netbeans.modules.autoupdate.ui,\
        org.netbeans.modules.core.kit,\
        org.netbeans.modules.editor.mimelookup,\
        org.netbeans.modules.editor.mimelookup.impl,\
        org.netbeans.modules.favorites,\
        org.netbeans.modules.javahelp,\
        org.netbeans.modules.jellytools.platform,\
        org.netbeans.modules.jemmy,\
        org.netbeans.modules.keyring,\
        org.netbeans.modules.masterfs,\
        org.netbeans.modules.nbjunit,\
        org.netbeans.modules.options.api,\
        org.netbeans.modules.options.keymap,\
        org.netbeans.modules.print,\
        org.netbeans.modules.progress.ui,\
        org.netbeans.modules.queries,\
        org.netbeans.modules.sendopts,\
        org.netbeans.modules.settings,\
        org.netbeans.modules.spi.actions,\
        org.netbeans.spi.quicksearch,\
        org.netbeans.swing.outline,\
        org.netbeans.swing.plaf,\
        org.netbeans.swing.tabcontrol,\
        org.openide.actions,\
        org.openide.awt,\
        org.openide.compat,\
        org.openide.dialogs,\
        org.openide.execution,\
        org.openide.explorer,\
        org.openide.io,\
        org.openide.loaders,\
        org.openide.nodes,\
        org.openide.options,\
        org.openide.text,\
        org.openide.util.enumerations,\
        org.openide.windows
    nbplatform.active=default

    Então você terá uma aplicativo não-GUI, ou seja, um aplicativo de supervisor, bem adequado para o desenvolvimento Web modular.

  2. Agora, coloque este URL no navegador (opcionalmente, utilize URLDisplayer.getDefault() da API de Utilitário UI do NetBeans para abrir o navegador na localização programaticamente necessária) e o "index.html" definido dentro do Jogo Sudoku que é implementado, exibido no navegador, e será então possível iniciar jogar o Jogo Sudoku:
    http://localhost:8080/rpc/sudoku/index.html

Parabéns, você agora integrou seus primeiros pacotes OSGi com um aplicativo da plataforma NetBeans.

Leituras adicionais

Agora que você completou o tutorial e compreende as etapas necessárias para reutilizar um pacote OSGi em seu aplicativo da plataforma NetBeans, examine estes documentos relacionados e cenários mais avançados:

Project Features

Project Links

About this Project

Platform was started in November 2009, is owned by Antonin Nebuzelsky, and has 129 members.
 
 
Close
loading
Please Confirm
Close