A auto-hospedagem é uma atividade em que um programa de computador é utilizado para criar novas versões do mesmo programa. É muito freqüente no desenvolvimento do compilador, em que novas versões do compilador são gravadas no idioma de destino do compilador e compiladas por si só como parte do teste. No Eclipse, refere-se ao uso do Eclipse para desenvolvimento de plug-ins do Eclipse. Se soar como a instrução de missão do PDE, é isso mesmo. Graças ao uso do PDE, você já está auto-hospedando.
O PDE suporta dois estilos diferentes de auto-hospedagem. Ambos têm suas vantagens e desvantagens e foram projetados para cenários de utilização diferentes. Diferem na maneira com que as dependências do plug-in são gerenciadas.
A auto-hospedagem simples (independente) utiliza plug-ins externos para resolver referências de plug-ins. É simples, fácil de gerenciar e entender e é completamente adequada para desenvolvedores independentes (aqueles que não utilizam repositórios remotos para compartilhar seu código com outros).
A auto-hospedagem de projeto binário apresenta uma etapa pela qual os plug-ins externos são importados para a área de trabalho como projetos binários. Ainda não são passíveis de modificação e geralmente ficam ocultos, utilizando um filtro de projeto binário no Package Explorer.
Como um novo recurso no release 2.1, o PDE oferece um estilo adicional que mais que uma mistura entre auto-hospedagem de projetos simples e binário. Nesse modo, um contêiner de classpath fornecido pelo JDT é utilizado para representar entradas para plug-ins dependentes. Essas entradas são computadas dinamicamente dependendo da situação atual na plataforma. Se um plug-in referenciado for localizado fora (externo), a referência será resolvida como JARs externos. Se o plug-in for localizado no espaço de trabalho, ele será resolvido para a referência de projeto. As alterações no espaço de trabalho afetam automaticamente o classpath no contêiner. Por último, como as entradas são computadas quando necessário (não codificadas e armazenadas), as alterações na plataforma de destino não resultam em classpaths stale e/ou frágil.