Introdução à Plataforma Eclipse Leandro Daflon daflon@les.inf.puc-rio.br
Agenda Introdução Arquitetura da Plataforma Componentes da Plataforma JDT PDE Visão Geral do Projeto Eclipse.org 2
Introdução
O que é o Eclipse O Eclipse é uma plataforma para a integração de ferramentas de desenvolvimento. Iniciativa Open Source. Arquitetura extensível baseada no uso e desenvolvimento de plugins. Público Alvo: Desenvolvedores de Aplicação Desenvolvedores de Ferramentas de Desenvolvimento Pesquisadores The Eclipse Platform is an IDE for anything, and for nothing in particular." 4
Objetivos do Projeto Eclipse Prover uma plataforma aberta para ferramentas de desenvolvimento de aplicações. Independência de sistema operacional GUI e não GUI Facilitar integração de ferramentas UI e Estrutura interna Adicionar novas ferramentas a produtos já instalados Neutralidade de linguagens Não possui restrição quanto ao tipo de conteúdo HTML, Java, C, JSP, EJB, XML, GIF, Atrair desenvolvedores de ferramentas ISV (independent software vendors) 5
Histórico do Eclipse 1999 Abril - Início do Eclipse dentro da OTI/IBM 2000 Junho - Lançamento do Eclipse Tech Preview 2001 Março - Início do http://www.eclipsecorner.org/ Junho - Eclipse 0.9 Outubro - Eclipse 1.0 Novembro - IBM doa base de código do Eclipse - Lançamento do http://www.eclipse.org/ 2002 Junho - Eclipse 2.0 Setembro - Eclipse 2.0.1 Novembro - Eclipse 2.0.2 2003 Março - Eclipse 2.1 6
Quem Contribui? Novos Membros (Set a Dez 2002): 7
Arquitetura da Plataforma
Visão Geral da Arquitetura Plataforma Eclipse Outra Ferramenta Java Development Tools (JDT) Plug-in Development Environment (PDE) Workbench JFace SWT Workspace Help Team Debug Sua Ferramenta Platform Runtime Ferramenta XPTO Projeto Eclipse 9
Representação da Plataforma em Camadas Ambiente de Desenvolvimento de plug-ins Ferramentas de desenvolvimento Java Plataforma Eclipse Máquina virtual java PDE JDT Plataforma Java VM 10
Arquitetura Eclipse Plug-in menor bloco de construção do Eclipse Exemplos: editor HTML, Ação para criar arquivos zip Pontos de Extensão entidades definidas para o agrupamento de contribuições Exemplo: ponto de extensão para preferências de IU do workbench Extensão uma contribuição Exemplo: preferência específicas de um editor HTML 11
Arquitetura Eclipse Cada plug-in: Contribui com 1 ou mais pontos de extensão Opcionalmente, declara novos pontos de extensão Depende de outros plug-ins Contém bibliotecas Java e outros arquivos Pertence ao seu próprio diretório de plug-ins Detalhes presentes no plug-in manifest Manifest declara as contribuições Código implementa contribuições e prove API Arquivo plugin.xml na raiz do subdiretório do plug-in 12
Arquitetura de plug-ins Eclipse Cenário Típico plug-in A Ponto de extensão P contribui plug-in B extensão interface I implementa classe C cria, chama Plug-in A Declara o ponto de extensão P Declara a interface I de acordo com P Plug-in B Implementa a interface I com a classe C Contribui com a classe C para o ponto de extensão P Plug-in A instancia C e chama os métodos de I 13
Cenário de Utilização de Plug-ins Servlet + Struts JSP Modelagem UML Servlet Testes JSP + Struts Código Deployment EJB 14
Componentes da Plataforma
Componentes da Plataforma A Plataforma é a base comum para todos os componentes. Consiste em vários componentes chaves: Plataforma Eclipse Workbench UI SWT JFace Team Help Debug Core Workspace Ant Plataforma de execução 16
Workspace Ferramentas lêem, criam, modificam e removem recursos da área de trabalho Recursos Projetos, pastas e arquivos Possibilidade de trabalhar com vários projetos em paralelo, organizando-os: Por usuário Relacionado a um diretório no sistema de arquivos 17
Workbench Interface do usuário da plataforma Eclipse Fornece uma estrutura para a interação de ferramentas com os usuários Implementação baseada em duas APIs SWT Standart Widget Toolkit Independente de S.O. JFace Frameworks de interface usuário (UI) para tarefas comuns de UI Desenvolvido para ser utilizado juntamente com SWT Workbench SWT JFace 18
Componentes do Workbench Perspectivas Visões Editores Oferece suporte ao trabalho em equipe CVS Padrão Outros 19
Workbench 20
JDT Java Development Tools
Java Development Tools Estado da arte em ambientes de desenvolvimento Java. Construído sobre a Plataforma Eclipse. Implementado como um conjunto de Plug-ins. Utiliza as APIs e pontos de extensão da Plataforma. Incluído na distribuição do Eclipse. 22
JDT - Pontos Fortes Perspectiva Java Concentra as funcionalidades necessárias a um desenvolvedor java. Facilidades para escrever código: Method Completion Refactoring Quick Fixes Code Templates Formatador de Código Dentre outras facilidades 23
PDE Plug-in Development Environment
Desenvolvendo um plug-in Definições Declarativas (manifest) Plugin.xml Definição Implementação Execução Implementação procedural Java 25
Introdução ao PDE Ambiente de desenvolvimento de plug-ins dentro do workbench do Eclipse Também é um plug-in, construído usando os recursos da própria plataforma e o JDT Permite a definição de um plug-in project, que agrega os elementos do plug-in (arquivo manifest, código-fonte, gifs) Possibilita a construção, compilação, depuração, teste e empacotamento de um plug-in 26
Introdução ao PDE (cont.) Ferramenta para edição do arquivo de manifest Possui wizards para a geração de diversas extensões: actions, xml editor, help content, editor multi-page, wizard para novo arquivo, preferences, property page, views Suporte ao deployment de um plug-in num arquivo.zip ou atualização automática via Eclipse (feature) 27
Desenvolvendo com o PDE Forma Básica de definir um plug-in: (1) Definir no arquivo de manifesto (plugin.xml), os pontos de extensão que o plug-in irá contemplar (PDE ajuda!) (2) Definir uma subclasse de alguma classe da plataforma Eclipse de acordo com a extensão sendo definida (PDE ajuda!) (3) Implementar métodos herdados destas classes juntamente com código de lógica de funcionamento do plug-in (agora é com Você!) 28
Desenvolvendo com o PDE Exemplos de pontos básicos de extensão do Workbench org.eclipse.ui.views org.eclipse.ui.viewactions org.eclipse.ui.editors org.eclipse.ui.editorsactions org.eclipse.ui.popmenus org.eclipse.ui.actionsets org.eclipse.ui.actionsetpartas sociation org.eclipse.ui.perspectives org.eclipse.ui.perspectivesext ensions 29
Eclipse.org Visão Geral
Eclipse.org Organizado em 4 subprojetos principais Eclipse Project Eclipse Tools Project Eclipse Technology Project Eclipse Web Tools Platform http://www.eclipse.org/projects/ 31
Eclipse Project Responsável pela plataforma Eclipse Subprojetos: Platform Oferece o núcleo do framework JDT Suite de ferramentas para desenvolvimento Java PDE Ambiente de desenvolvimento de plug-ins 32
Eclipse Tools Responsável pela indução e coordenação de projetos de desenvolvimento de ferramentas para o Eclipse Subprojetos: CDT Conjunto de plug-ins que implementam uma IDE para C/C++ Cobol Conjunto de plug-ins que implementam uma IDE para Cobol GEF EMF 33
Eclipse Technology Canal de comunicação para desenvolvedores e pesquisadores participarem da evolução do Eclipse Subprojetos: AJDT / AspectJ Conjunto de plug-ins que oferecerão suporte ao desenv. de software orientado a aspecto usando a linguagem AspectJ Equinox Experimentar técnicas para ampliar a variedade de configurações de run-time do Eclipse (gerência de dependência entre plug-ins, modelo de serviço) Stellation Sistema de gerenciamento de configurações extensível e avançado. Produto original da IBM, adaptado para o Eclipse. 34
Eclipse Technology (cont.) Subprojetos: Koi Oferecer suporte a atividades colaborativas para usuários executando diferentes instâncias do Eclipse XSD (XML Schema Infoset Model) Conjunto de APIs para uso em código que examina, cria ou modifica esquemas XML. GMT (Generative Model Transformer) Oferecer um conjunto de ferramentas para suporte ao desenvolvimento de software orientado a modelos Eclipse Research Community Conjunto de projetos desenvolvidos por grupos de pesquisa de universidade 35
Eclipse Web Tools Platform Foco inicial em J2EE. Desenvolvimento de uma plataforma comum para suportar um conjunto de ferramentas para o desenvolvimento web. 36
Maiores informações Eclipse@Rio www.teccomm.les.inf.puc-rio.br/eclipse Eclipse www.eclipse.org 37
Referências http://eclipse.org/articles/article-using%20emf/using-emf.html http://dev.eclipse.org/viewcvs/indextools.cgi/~checkout~/emfhome/docs/overview.html http://www.eclipse.org/emf/ 38
Perguntas??? Leandro Daflon daflon@les.inf.puc-rio.br