Um recurso é uma maneira de agrupar e descrever plug-ins que compõem um produto. O agrupamento de plug-ins em recursos permite que o produto seja instalado e atualizado de forma a coexistir com outros produtos com base no Eclipse. A própria plataforma é particionada em três recursos principais:
Há outros recursos secundários, como exemplos e partes da plataforma que dependem do S.O.
Nota: A estrutura de instalação e atualização da plataforma permite construir suas próprias implementações personalizadas dos conceitos discutidos aqui. Isto é, é possível definir seus próprios tipos de recursos, (seus formatos de empacotamento, procedimentos de instalação, etc.), além de seus próprios tipos de sites do servidor para atualização dos recursos. O restante desta discussão concentra-se nas implementações padrão da plataforma para sites de recursos e de atualização.
Os recursos não contêm código. Simplesmente descrevem um conjunto de plug-ins que fornecem a função para o recurso e informações sobre como atualizá-lo. Os recursos são empacotados em um arquivo archive de recursos e descritos utilizando um arquivo de manifesto de recursos, feature.xml. A seguir é apresentado o manifesto do recurso da plataforma:
<?xml version="1.0" encoding="UTF-8" ?> <feature id="org.eclipse.platform" label="%featureName" version="2.0.0" image="eclipse_update_120.jpg" provider-name="%providerName" primary="true" application="org.eclipse.ui.workbench"> <description>%description</description> <license url="%licenseURL">%license</license> <url> <update url="http://update.eclipse.org/updates" label="%updateSiteName" /> </url> <plugin id="org.apache.ant" version="1.4.1" /> <plugin id="org.apache.lucene" version="1.2.0" /> <plugin id="org.apache.xerces" version="4.0.3" /> <plugin id="org.eclipse.ant.core" version="2.0.0" /> <plugin id="org.eclipse.compare" version="2.0.0" /> <plugin id="org.eclipse.core.boot" version="2.0.0" /> <plugin id="org.eclipse.core.resources" version="2.0.0" /> <plugin id="org.eclipse.core.runtime" version="2.0.0" /> <plugin id="org.eclipse.debug.core" version="2.0.0" /> <plugin id="org.eclipse.debug.ui" version="2.0.0" /> <plugin id="org.eclipse.help" version="2.0.0" /> <plugin id="org.eclipse.help.webapp" version="2.0.0" /> <plugin id="org.eclipse.help.ui" version="2.0.0" /> <plugin id="org.eclipse.platform" version="2.0.0" /> <plugin id="org.eclipse.platform.doc.user" version="2.0.0" /> <plugin id="org.eclipse.search" version="2.0.0" /> <plugin id="org.eclipse.swt" version="2.0.0" /> <plugin id="org.eclipse.team.core" version="2.0.0" /> <plugin id="org.eclipse.team.cvs.core" version="2.0.0" /> <plugin id="org.eclipse.team.cvs.ssh" version="2.0.0" /> <plugin id="org.eclipse.team.cvs.ui" version="2.0.0" /> <plugin id="org.eclipse.team.ui" version="2.0.0" /> <plugin id="org.eclipse.tomcat" version="4.0.3" /> <plugin id="org.eclipse.ui" version="2.0.0" /> <plugin id="org.eclipse.ui.externaltools" version="2.0.0" /> <plugin id="org.eclipse.update.core" version="2.0.0" /> <plugin id="org.eclipse.update.ui" version="2.0.0" /> <plugin id="org.eclipse.update.ui.forms" version="2.0.0" /> </feature>