O mecanismo preferido para definir um produto com base na plataforma Eclipse é contribuir para o ponto de extensão do org.eclipse.core.runtime.products. Para fazer isso, um plug-in simplesmente declara o nome e o id de seus produtos, assim como o id da extensão do aplicativo que deve ser executado quando o produto é chamado. Essa é a técnica utilizada pela plataforma Eclipse para definir o produto Eclipse. Aqui está a definição de extensão encontrada em org.eclipse.platform:
<extension id="ide" point="org.eclipse.core.runtime.products"> <product name="%productName" application="org.eclipse.ui.ide.workbench" description="%productBlurb"> <property name="windowImages" value="eclipse.png,eclipse32.png"/> <property name="aboutImage" value="eclipse_lg.png"/> <property name="aboutText" value="%productBlurb"/> <property name="appName" value="Eclipse"/> <property name="preferenceCustomization" value="plugin_customization.ini"/> </product> </extension>Uma extensão do produto é definida, cujo id do aplicativo é "org.eclipse.ui.ide.workbench". Este é o id de aplicativo definido pelo plug-in org.eclipse.ui.ide em sua contribuição para o ponto de extensão org.eclipse.core.runtime.applications.
<extension id="workbench" point="org.eclipse.core.runtime.applications"> <application> <run class="org.eclipse.ui.internal.ide.IDEApplication"> </run> </application> </extension>
Esta extensão é definida com o mesmo id que é utilizado como referência na propriedade do aplicativo da extensão do produto. (O nome completo, com o prefixo do plug-in, é utilizado ao referir-se ao id de aplicativo a partir de outro plug-in.) Utilizando esse mecanismo, um plug-in separado pode definir todas as marcas específicas do produto e, em seguida, referir-se a um aplicativo de plug-in existente como o aplicativo que é executado quando o produto é iniciado.
Além do aplicativo, a extensãoorg.eclipse.core.runtime.products descreve as propriedades da personalização do produto que são utilizadas para configurar as informações de marca do produto. Essas informações são descritas como propriedades nomeadas. Verificaremos novamente essa parte da marcação para o plug-in da plataforma.
<property name="windowImages" value="eclipse.png,eclipse32.png"/> <property name="aboutImage" value="eclipse_lg.png"/> <property name="aboutText" value="%productBlurb"/> <property name="appName" value="Eclipse"/> <property name="preferenceCustomization" value="plugin_customization.ini"/>Os nomes de propriedade possíveis que são honrados pela plataforma para a personalização de produto são definidos em IProductConstants. Consulte o javadoc para obter uma descrição completa dessas propriedades e seus valores. Observaremos mais isso em Personalizando um Produto.