<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>In&iacute;cio r&aacute;pido da plataforma NetBeans com o OSGi</title>
        <link rel="stylesheet" type="text/css" href="https://netbeans.org/netbeans.css"/>
        <meta name="AUDIENCE" content="NBUSER"/>
        <meta name="TYPE" content="ARTICLE"/>
        <meta name="EXPIRES" content="N"/>
        <meta name="indexed" content="y"/>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta name="description"
              content="A short guide to getting started with the NetBeans Platform."/>
      <!--      Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. -->
        <!--     Use is subject to license terms.-->
    </head>
    <body>

        <h1>In&iacute;cio r&aacute;pido da plataforma NetBeans utilizando o OSGi</h1>

        <p>Este documento &eacute; uma demonstra&ccedil;&atilde;o r&aacute;pida de como integrar os pacotes OSGi com um aplicativo da plataforma NetBeans.
        </p>

        <p>
            O foco neste tutorial &eacute; um cen&aacute;rio &quot;hello world&quot; com base no <a href="http://www.aqute.biz/Code/Download#sudoku">Jogo Sudoku por Peter Kriens</a>. Os pacotes OSGi que constituem o Jogo Sudoku s&atilde;o importados, junto com os pacotes relacionados e necess&aacute;rios do Equinox. Quando o aplicativo &eacute; implementado, o seguinte aplicativo estar&aacute; dispon&iacute;vel no navegador da Web:
        </p>

        <p><img width="400" height="300" src="http://netbeans.dzone.com/sites/all/files/sudokugame-4.png"/></p>

        <p>Ap&oacute;s passar por este cen&aacute;rio simples, cen&aacute;rios mais &uacute;teis est&atilde;o listados na se&ccedil;&atilde;o Leitura adicional no fim deste tutorial.</p>

        <p><b>Conte&uacute;do</b></p>
        <p><img src="../images/articles/74/netbeans_stamp_74_73_72.png" class="stamp" width="114" height="114" alt="O conte&uacute;do desta p&aacute;gina se aplica ao NetBeans IDE 6.5, 6.7, 6.8" title="O conte&uacute;do desta p&aacute;gina se aplica ao NetBeans IDE 6.5, 6.7, 6.8" /></p>
        <ul class="toc">
            <li><a href="#setup">Configurando o ambiente</a></li>
            <li><a href="#create">Criando o aplicativo</a></li>
            <li><a href="#import">Importando os pacotes OSGi</a></li>
            <li><a href="#run">Executando a aplica&ccedil;&atilde;o</a></li>
            <li><a href="#further">Leituras adicionais</a></li>
        </ul>

        <p><b>Para seguir este tutorial, os softwares e recursos listados na tabela seguinte s&atilde;o necess&aacute;rios.</b></p>

        <table>
            <tbody>
                <tr>
                    <th class="tblheader" scope="col">Software ou recurso</th>
                    <th class="tblheader" scope="col">Vers&atilde;o necess&aacute;ria</th>
                </tr>
                <tr>
                    <td class="tbltd1"><a href="https://netbeans.org/downloads/index.html">NetBeans IDE</a></td>
                    <td class="tbltd1">vers&atilde;o 6.9</td>
                </tr>
                <tr>
                    <td class="tbltd1"><a href="http://java.sun.com/javase/downloads/index.jsp">Java Developer Kit (JDK)</a></td>
                    <td class="tbltd1">Vers&atilde;o 6 ou</td>
                </tr>
                <tr>
                    <td class="tbltd1"><a href="http://download.eclipse.org/equinox">Equinox</a></td>
                    <td class="tbltd1"></td>
                </tr>
                <tr>
                    <td class="tbltd1"><a href="http://www.aqute.biz/Code/Download#sudoku">Jogo Sudoku</a></td>
                    <td class="tbltd1"></td>
                </tr>
            </tbody>
        </table>

        <p><strong class="notes">Nota:</strong> n&atilde;o &eacute; preciso efetuar o download de uma vers&atilde;o separada da plataforma NetBeans para desenvolver aplicativos para a plataforma NetBeans. Normalmente, voc&ecirc; desenvolver&aacute; os aplicativos e m&oacute;dulos no NetBeans IDE, e a seguir somente gerar&aacute; incluir os m&oacute;dulos necess&aacute;rios para executar a plataforma NetBeans e seu aplicativo.
        </p>



        <!-- ===================================================================================== -->

        <h2><a name="setup"></a>Configurando o ambiente</h2>
        <p>Ao lado de baixar o software acima listado, &eacute; preciso executar algumas etapas para preparar seu ambiente, como abaixo descrito.</p>

        <ol>

            <li>Crie uma nova pasta em seu sistema de arquivos no disco.</li>
            <li>A partir da distribui&ccedil;&atilde;o Equinox, coloque o seguinte na pasta:
                <ul><li>javax.servlet_xxx.jar</li>
                    <li>org.eclipse.equinox.ds_xxx.jar</li>
                    <li>org.eclipse.equinox.http_xxx.jar</li>
                    <li>org.eclipse.equinox.util_xxx.jar</li>
                    <li>org.eclipse.osgi.services_xxx.jar</li>
                    <li>org.eclipse.osgi_xxx.jar</li></ul>

            </li>
            <li>Coloque os dois JARs do Sudoku na pasta onde os JARs acima s&atilde;o encontrados:
                <ul><li>aQute.sudoku.jar</li>
                    <li>aQute.webrpc.jar</li></ul>
            </li>
        </ol>

        <p>Agora voc&ecirc; possui os pacotes OSGi que gerar&aacute; importar dispon&iacute;veis em uma localiza&ccedil;&atilde;o centralizada, de onde gerar&aacute; integr&aacute;-los com seu aplicativo.</p>

        <h2><a name="create"></a>Criando a aplica&ccedil;&atilde;o</h2>
        <p>Ap&oacute;s possuir todos os pacotes OSGi necess&aacute;rios dispon&iacute;veis, crie seu novo aplicativo da plataforma NetBeans, como abaixo descrito.</p>

        <ol>
            <li><p>Escolha Arquivo | Novo projeto e escolha criar um aplicativo da plataforma NetBeans sobre o Equinox, atrav&eacute;s do modelo Equinox:</p>

                <p><img src="http://netbeans.dzone.com/sites/all/files/sudokugame-5.png"/></p>
                <p>Clique em Pr&oacute;ximo.</p>
            </li>

            <li><p>Especifique um nome para o aplicativo, como abaixo mostrado.</p>

                <p><img src="http://netbeans.dzone.com/sites/all/files/sudokugame-3.png"/></p>

                <p>Clique em Terminar.</p></li>

            <li>&Eacute; poss&iacute;vel executar o aplicativo resultante do modelo acima, e ver um aplicativo contendo uma janela, exibindo todos os m&oacute;dulos NetBeans e os pacotes OSGi que comp&otilde;em seu aplicativo.</li>

        </ol>

        <h2><a name="import"></a>Importando os pacotes OSGi</h2>
        <p>Ao lado de baixar o software acima listado, &eacute; preciso executar algumas etapas para preparar seu ambiente, como abaixo descrito.</p>


        <ol>
            <li><p>Clique com o bot&atilde;o direito do mouse no aplicativo janela Projetos, escolha Propriedades, siga para aba Bibliotecas, clique em &quot;Adicionar cluster&quot;, e, em seguida navegue para a pasta onde s&atilde;o encontrados os JARS acima. O assistente que permite converter os JARs para um 'cluster' &eacute; aberto, ou seja um conjunto de m&oacute;dulos/pacotes relacionados que ser&atilde;o incorporados em seu aplicativo:</p>

                <p><img src="http://netbeans.dzone.com/sites/all/files/sudokugame-1.png"/></p></li>

            <li>Como mostrado acima, defina todos os pacotes OSGi importados como &quot;Habilitados&quot;, para que sejam carregados e estejam dispon&iacute;veis no momento de inicializa&ccedil;&atilde;o do aplicativo.</li>

            <li>Quando voc&ecirc; clica em terminar, o arquivo de configura&ccedil;&atilde;o das &quot;propriedades da plataforma&quot; ter&aacute; sido atualizado. Deveria se parecer com algo assim:

                <pre class="examplecode">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</pre>


                <p><b>Nota:</b> a primeira linha aponta para a pasta anteriormente criada.</p></li>

            <li>Ent&atilde;o adicione esta linha no arquivo de configura&ccedil;&atilde;o &quot;project.properties&quot; do aplicativo, que especifica que a tela inicial n&atilde;o ser&aacute; mostrada e qual &eacute; a porta para a implementa&ccedil;&atilde;o do aplicativo:

                <pre class="examplecode">run.args.extra=--nosplash -J-Dorg.osgi.service.http.port=8080</pre></li>
        </ol>

        <h2><a name="run"></a>Executando o aplicativo</h2>

        <p>O aplicativo agora est&aacute; pronto para ser implementado, como abaixo descrito.</p>

        <ol>

            <li><p>Execute o aplicativo! Todos os pacotes OSGi e os m&oacute;dulos NetBeans em seu aplicativo ser&atilde;o implementados. O aplicativo para visualizar os pacotes OSGi e os m&oacute;dulos NetBeans implementados s&atilde;o tamb&eacute;m implementados, fornecendo-lhe um aplicativo de &aacute;rea de trabalho para monitorar o que est&aacute; no momento implementado, o que &eacute; bem &uacute;til:</p>

                <p><img src="http://netbeans.dzone.com/sites/all/files/sudokugame-6_0.png"/></p>

            <p>Alternativamente, exclua todo o m&oacute;dulo que fornece a janela acima. A seguir, remova todos os m&oacute;dulos que sejam necess&aacute;rios para a janela acima, ou seja, remova o sistema de janelas, sistema de a&ccedil;&otilde;es, e tudo mais... exceto para os poucos JARs necess&aacute;rios pela integra&ccedil;&atilde;o OSGi: bootstrap, inicializa&ccedil;&atilde;o, sistemas de arquivos, sistema de m&oacute;dulos, utilit&aacute;rios e pesquisa.
            </p>

            <pre class="examplecode">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</pre>

            <p>Ent&atilde;o voc&ecirc; ter&aacute; uma aplicativo n&atilde;o-GUI, ou seja, um aplicativo de supervisor, bem adequado para o desenvolvimento Web modular.</p></li>

            <li>Agora, coloque este URL no navegador (opcionalmente, utilize URLDisplayer.getDefault() da API de Utilit&aacute;rio UI do NetBeans para abrir o navegador na localiza&ccedil;&atilde;o programaticamente necess&aacute;ria) e o &quot;index.html&quot; definido dentro do Jogo Sudoku que &eacute; implementado, exibido no navegador, e ser&aacute; ent&atilde;o poss&iacute;vel iniciar jogar o Jogo Sudoku:

                <pre class="examplecode">http://localhost:8080/rpc/sudoku/index.html</pre></li>

        </ol>

        <p>Parab&eacute;ns, voc&ecirc; agora integrou seus primeiros pacotes OSGi com um aplicativo da plataforma NetBeans.</p>

        <h2><a name="further"></a>Leituras adicionais</h2>

        <p>Agora que voc&ecirc; completou o tutorial e compreende as etapas necess&aacute;rias para reutilizar um pacote OSGi em seu aplicativo da plataforma NetBeans, examine estes documentos relacionados e cen&aacute;rios mais avan&ccedil;ados:</p>

        <ul>
            <li><a href="http://www.osgi.org/blog/2006_09_01_archive.html">Peter Kriens e o Jogo Sudoku</a></li>
            <li><a href="http://wiki.apidesign.org/wiki/NetbinoxTutorial">Jaroslav Tulach e o Netbinox</a></li>
            <li>Por Toni Epple, OSGi/NetBeans <a href="http://eppleton.sharedhost.de/blog/?p=662">entrada do blog</a> e <a href="http://eppleton.sharedhost.de/blog/?s=Frankenstein%27s+IDE">apresenta&ccedil;&atilde;o</a></li>
            <li>(<a href="http://eclipse.dzone.com/emf-on-netbeans-rcp">parte 1</a>, <a href="http://eclipse.dzone.com/emf-on-netbeans-rcp-2">parte 2</a>) da integra&ccedil;&atilde;o NetBeans-EMF por Gunnar Reinseth</li>
            <li>Leia tamb&eacute;m <a href="http://java.dzone.com/news/new-cool-tools-osgi-developers">Novas ferramentas interessantes para desenvolvedores do OSGi</a></li>
        </ul>

    </body>

</html>
