Title: Proyecto Eclipse
1Proyecto Eclipse
2Objetivos del Proyecto Eclipse
- Proporcionar una herramienta abierta para
herramientas de desarrollo - Ejecución sobre múltiples sistemas operativos
- GUI y sinGUI
- Independiente del lenguaje
- Sin restricciones en eltipo de contenido
- HTML, Java, C, JSP, EJB, XML, GIF,
- Integración transparente de herramientas AD
- A nivel de UI y más internamente
- Adición de nuevos elementos a los existentes
- Atraer el interés de los desarrolladores de AD
tools - Inclyendo ISV
- Basándonos en Java para desarrollo de herramientas
3Introducción a Eclipse
Otra utilidad
Plataforma Eclipse
Help
Workbench
Java Development Tools (JDT)
JFace
SWT
Team
Tu utilidad
Plug-in Development Environment (PDE)
Workspace
Debug
Su utilidad
Proyecto Eclipse
4Orígenes de Eclipse
- Eclipse creado por OTI y equipos de IBM
responsables de productos - IBM VisualAge/Smalltalk (Smalltalk IDE)
- IBM VisualAge/Java (Java IDE)
- IBM VisualAge/Micro Edition (Java IDE)
- Initialmente comenzó con 40 desarrolladores a
tiempo completo - Dispersados geográficamente en equipos de
desarrollo - OTI Ottawa, OTI Minneapolis, OTI Zurich, IBM
Toronto, OTI Raleigh, IBM RTP, IBM St. Nazaire
(France) - Evolucionó a un proyecto de código abierto
- IBM donó el código base de Eclipse
- Plataforma, JDT, PDE
5Breve historia de Eclipse
- 1999
- Abril - Comienza el trabajo en OTI/IBM
- 2000
- Junio - Eclipse Tech Preview
- 2001
- Marzo - http//www.eclipsecorner.org/ comienza
- Julio - Distribución Eclipse 0.9
- Octubre - Distribución Eclipse 1.0
- Noviembre - IBM dona el código base de Eclipse
- - Apertura http//www.eclipse.org/
- 2002
- Julio - Eclipse 2.0
- Septiembre - Eclipse 2.0.1 Noviembre - Eclipse
2.0.2 - 2003
- Marzo - Eclipse 2.1
6Qué es Eclipse?
- Eclipse es una plataforma universal para la
integración de herramientas de desarrollo. - Arquitectura abierta, extensible basada en
componentes añadidos (plugins)
7Arquitectura de plug-ins de Eclipse
- Plug-in unidad mínima de funcionalidad
- Ejemplo editor HTML
- Ejemplo Acción para la creación de archivos zip
- Punto de extensión entidad con nombre para la
recolección de contribuciones - Ejemplo punto de extensión para el interfaz de
preferencias del workbench - Extensión una contribución
- Ejemplo editor de preferencias HTML específico
8Arquitectura de plug-ins de Eclipse
- Cada plug-in
- Contribuye a uno o más puntos de extensión
- Opcionalmente declara nuevos puntos de extensión
- Depende de un conjunto de otros plugins
- Contiene librerías de código Java y otros
archivos - Puede contener API Java de otros plugins de los
que depende - Tiene su propio subdirectorio
- Los detalles de plugin están en el plug-in
manifest - Manifest declara las contribuciones
- El código implementa las contribuciones y
proporciona APIs - plugin.xml la raíz del subdirectorio del plugin
9Archivo de manifiesto del plugin
plugin.xml
ltplugin id com.example.tool" name
Example Plug-in Tool" class
"com.example.tool.ToolPlugin"gt ltrequiresgt
ltimport plugin "org.eclipse.core.resources"/gt
ltimport plugin "org.eclipse.ui"/gt
lt/requiresgt ltruntimegt ltlibrary name
tool.jar"/gt lt/runtimegt ltextension
point "org.eclipse.ui.preferencepages"gt
ltpage id "com.example.tool.preferences"
icon "icons/knob.gif" title Tool
Knobs" class "com.example.tool.ToolPrefe
renceWizard/gt lt/extensiongt ltextension-point
name Frob Providers id
"com.example.tool.frobProvider"/gt lt/plugingt
10Arquitectura de plugins de Eclipse
plug-in B
plug-in A
contribuye
implementa
crea, llama
- Plug-in A
- Declara un punto de extensión P
- Declara el interfaz I correspondiente a P
- Plug-in B
- Implementa el interfaz I en la clase C
- Define clase C como una contribución a P
- El plug-in A instancia C y llama a sus I-metodos
11Arquitectura de la plataforma Eclipse
- La plataforma de ejecución de Eclipse es un
micro-núcleo - Toda la funcionalidad está proporcionada por los
plug-ns - Al inicio de la ejecución la plataforma de
ejcución - Descubre los plug-ins instalados en disco
- Correlaciona las extensiones con los puntos de
ext. - Construye un registro global de plug-ins
- Crea una cache del registro en disco
12Activación de plug-ins
- Cada plug-in tiene su propio Java classloader
- Específico de cada plugin
- Restringe su visibilidad a las APIs Java
exportadas - Las contribuciones se procesan sin la activación
del plug-in - Ejemplo Menú construido desde el archivo de
manifiesto con las entradas de las contribuconse - Los Plug-ins se activan solo cuando es necesario
- Ejemplo Plug-in solo activado cuando es
seleccionado desde una entrada de un menú. - Proporciona una solución de gran escalabilidad
- Permite eliminar largos tiempos de arranque
13Fragmentos de un plug-in
- Fragmentos de Plug-in fragments contiene alguno
de los archivos de un plug-in - Instalación separada
- Cada fragmento tiene su propio subdirectorio
separado - Archivo de manifiesto separado
- Plug-in lógico plug-in básico fragmentos
- Los fragmentos de un plug-in se usan para
- Ubicar las dependencias del Sistema Operativo
- Internacionalización.- contiene traducciones
14Instalación de plug-ins
- Características agrupación de plug-ins en un
plaquete instalable - Archivo de manifiesto de la característica
- Los plug-ins y las características llevan
identificadores de su versión - major . minor . service
- Múltiples versiones pueden coexistir en disco
- Características pueden descargarse desde web
- Mediante el Administrador de actualizaciones de
Eclipse - Obtención e instalación de nuevos plug-ins
- Obtención y actualización de plug-ins existentes
15Arquitectura de Plug-ins - Sumario
- Toda la funcionalidad se proporciona por medio de
plug-ins - Incluye todos los aspectos de la plataforma
- La comunicación se lleva a cabo mediante los
puntos de extensión - Empaquetados en características instalables
- Descargables desde web
Eclipse tiene una arquitectura abierta y
extensible basada en plug-ins
16Plataforma Eclipse
- La plataforma Eclipse es la base
- Contiene una serie de componentes
17Componentes del Workspace
18APIs del Workspace y recursos
- Permite una navegación rápida de la estructura
arbórea - Monitorización de actividades a través de un
listener - Mantenimiento de un histórico local de los
cambios - Diferentes tipos de metadata extensible
- Propiedades de los recursos persistentes
- Propiedades de los recursos asociadas a sesión
- Maracadores
- Ciclo de vida de una sesión del Workspace
- Recuperación del workspace, guardar, abrir
- Constructores de proyectos incrementales
19Constructores Proyectos incrementales
- Problema coordinación en el análisis y
transformación de muchos recursos - Compilación de todos los recursos de un proyecto
- Comprobación de vínculos rotos de HTML
- Existencia de API/framework para constructores
incrementales - A los constructores se les pasa los cambios
producidos - Ahí están descritos los cambios desde la última
construcción - Base para las herramientas incrementales
- Extensible los plug-ins definen nuevos tipos de
constructores - JDT define el constructor Java
- Configurable cualquier número de constructores
por proyecto
20Componentes del Workbench
- SWT conjunto de elementos gráficos a bajo nivel
- JFace Armazón básico para funcionalidad básica
UI - Workbench Aspecto UI de la plataforma Eclipse
21SWT
- SWT Standard Widget Toolkit
- Gráficos genéricos y componentes GUI básicos
- Botones,cajas de texto, casillas de verificación
- Simples
- Pequeños
- Rápidos
- API independiente del sistema operativo
- Utilización de componentes nativos donde sea
posible - Emulación de componentes donde no estén
disponibles
22Por qué SWT?
- Consenso dificultad a la hora de construir GUI
profesionales solo con swing y awt - SWT proporciona
- Alta integración con el sistema nativo de
ventanas - Look Feel ntivo
- Buena eficiencia
- Buena portabilidad
- Excelente código base para nuevos GUI
23Por qué SWT?
- Plataforma Eclipse en Windows XP
24Por qué SWT?
- Plataforma Eclipse en Wndows XP (personalizado)
25Por qué SWT?
- Plataforma eclipse en GTK2.0
26Por qué SWT?
- Plataforma Eclipse en Linux - Motif
27Por qué SWT?
- Plataforma Eclipse en Mac OS X - Carbon
28JFace
- JFace es conjunto de armazones UI para tareas UI
típicas - Diseñado para ser usado en conjunción con SWT
- Clases para la manipulación de las tareas UI más
típicas - API e implementación independiente del sistema de
ventanas
29JFace APIs
- Registro de imágenes y fuentes
- Armazones de diálogos, preferencias, asistentes.
- Vistas estructuradas
- Infraestructura de texto
- Formateo, coloreado, asistencia de código
- Acciones
- Contribuye mediante acciones a los menús, barras
de herramientas
30Componentes del Workbench
- Workbench es el aspecto UI de la plataforma
Eclipse - UI basado en
- Editores
- Vistas
- Perspectivas
31Terminología Workbench
32Editores
- Editores aparecen en el área de editores del
workbench - Proporcionan acciones al menú y a las barras de
herramientas - Apertura, edición, cierre, guardado (ciclo de
vida) - Los editores abiertos están apilados
- Puntos de extensión para las contribuciones de
nuevos editores - Ejemplo JDT proporciona el editor Java
- La plataforma eclipse incluye el editor de texto
simple - Solo en Windows Automatización OLE
33Vistas
- Las vistas proporcionan información sobre
proyectos - Las vistas aumentan las funcionalidades de
editores - Ejemplo La vista esquema muestra estructura del
contenido del editor - Las vistas pueden aumentar las funcionalidades de
otras vistas - Ejemplo La vista de propiedades muestra las
propiedades de otra selección - Puntos de extensión para nuevos tipos de vista
- La plataforma eclipse incluye muchos tipos vista
- Tareas, Esquema, Marcadores, Navegación ...
- API de vistas y armazón
- Las vistas pueden implementarse con los visores
JFace
34Perspectivas
- Perspectivas son disposiciones de vistas y
editores - Perspectivas diferentes para cada uso de un
usuario - Los usuarios pueden cambiar de perspectiva
- Orientación a la tarea, oculta vistas
- Permite escalar a una gran cantidad de utilidades
instaladas - Control de perspectivas
- Visibilidad de vistas
- Disposición de vistas y editores
- Acciones de visibilidad
- Puntos de extensión para nuevas perspectivas
- La plataforma eclipse incluye perspectivas
estándares - Resource, Debug,
- API de perspectivas
35Otras características del Workbench
- Las herramientas también
- Añadir acciones globales
- Añadir acciones a las vistas y los editores
- Añadir vistas, conjuntos de acciones a las
perspectivas - La plataforma eclipse es accesible (Sección 508)
- Mecanismos de accesibilidad disponible para todos
los plug-ins
36Responsabilidad del Workbench
- La plataforma eclipse administra las ventanas y
perspectivas - La plataforma eclipse crea menús y barras de
herramientas - Etiquetas e iconos listados en los manifiestos
- Plug-ins contribuidores no activados
- La plataforma eclipse crea las vistas y los
editores - Instanciados solo cuando sea necesario (JIT)
- Permite la escalabilidad de la solución
37Componente Team
- Administración de versión y configuración (VCM)
- Compartición de recursos via un repositorio
- Repositorio asociado a nivel de proyecto
- Puntos de extensión para nuevos tipos de
repositorio - API para proveedores de repositorios
- Eclipse proporciona un proveedor CVS
- Proveedores de repositorios disponibles
- ChangeMan (Serena) - AllFusion Harvest (CA)
- ClearCase (Rational) - Perforce
- CM Synergy (Telelogic) - Source Integrity (MKS)
- PVCS (Merant) - TeamCode (Interwoven)
- Microsoft Visual Source Safe
Febrero 2004
38Componente Team
- Proveedores de respositorio proporcionan
- Acciones específicas para ese tipo de repositorio
- Integración con el workspace UI via
- Asistente de configuración y compartición de
proyectos - Acciones en el menú Team
- Iconos señalizadores de acciones
- Preferencias específicas del repositorio
- Vistas especializadas para la visualización de
recursos,
39Componente Debug
40Componente Debug
- Configuraciones de ejecución/lanzamiento
- Cómo ejecutar un programa (opción de modo
depuración) - Modelo genérico de depuración
- Eventos de depuración estandard suspendido,
saida, - Acciones de depuración estandard continuación,
terminación, paso a paso, - Puntos de ruptura
- Expresiones
- Localizador de código fuente
- Interfaz gráfico del depurador genérico
- Perpectiva de depuración
- Vistas de depuración Pila de llamadas, puntos
de ruptura, - Ejemplo JDT proporciona el lanzador Java y
depurador - Mecanismos de depuración disponibles para otros
plug-ins
41Componente Ant
- Eclipse incorpora Apache Ant
- Ant una herramienta de construcción basada en
Java - En lugar de archivos makes tenemos archivos XML
- Disponible desde el menú de herramientas
externas al Workbench - Permite ejecutar destinos Ant fuera y dentro del
workspace - PDE utiliza Ant para la generación de la forma de
despliegue de un plug-in
42Componente Help
- Help es presentado es una ventana estandar
43Componente Help
- La ayuda es como un libro web
- Puntos de extensión para contribuciones
- Libros enteros
- Secciones de libros ya existentes
- Menús despegables y emergentes al seleccionar F1
- La plataforma Eclipse proporciona
- Guía de Usuarios del Workbench
- Guía de desarrollo de plug-ins (APIs)
- JDT y PDE contribuyen con sus propias ayudas
- Mecanismos de ayuda para todos los plug-ins
- Mecanismo de búsqueda basado en Apache Lucene
- Servidor de ayuda basado en Apache Tomcat
44Internacionalización
- La plataforma Eclipse está internacionalizada
- Traducciones a los siguientes idiomas
- Inglés Alemán
- Castellano Italiano
- Francés Portugués (Brasil)
- Japonés Coreano
- Chino(Tradicional) Chino(Simplificado)
- Las traducciones se encuentran en los fragmentos
del plug-in - Distribuibles de manera separada
- Mecanismos de internacionalización disponibles
para todos los plug-ins
45Información del producto
46Información del producto
- Principales formas de la información del producto
- Ventana flotante de arranque
- Imagen de la ventana
- Información de Acerca de
- Ventana de bienvenida inicial
- Perspectiva por defecto
- Preferencias por defecto
- Todas las características pueden proporcionar
- Página de bienvenida propia
- Información acerca de la propia característica
47Plataforma Eclipse - Resumen
- La plataforma Eclipse es el núcleo de los
productos IDE - Plug-ins,puntos de extensión, extensiones
- Arquitectura abierta y extensible
- Workspace, proyectos, archivos, carpetas
- Lugar común para almacenar todos los recursos
- Workbench, editores, vistas,perpectivas
- Presentación al usuario común
- Elementos básicos para la construcción y
utilidades
Eclipse es una plataforma universal para la
integración de herramientas de desarrollo
48Herramientas de desarrollo Java
- JDT Java development tools
- Herramientas de desarrollo Java (estado del arte)
- Construidas en los alto de las herramientas de
desarrollo - Implementado como plug-ins de eclipse
- Uso de los puntos de extensión y APIs de Eclipse
- Incluidos en las release de Eclipse
- Disponible como una característica aparte
- Parte de los SDK de Eclipse
49Objetivos JDT
- Objetivo IDE de desarrollo Java
- Objetivo Hacer sonreir a los programadores Java
50Perspectivas Java
- Proyectos Java centrados en una visión Java
- Elementos Java significativos para
desarrolladores Java
51Perspectiva Java
- Visualización de la Jerarquía de clases
- Up desde clase a sus madres
- Down desde clase a sus descendientes
52Perspectiva Java
- Búsqueda de elementos Java
- Declaraciones y referencias
- Incluyendo librerías y otros proyectos
53Editor Java
- Documentación Java Doc cuando posicionamos el
puntero del ratón
54Editor Java
55Editor Java
- Posibilidad de capturar errores de manera rápida
56Editor Java
57Editor Java
58Editor Java
59Editor Java
- Otras características del Editor Java incluye
- Historial local de métodos
- Formateador de código
- Código fuente para librerías binarias
- Opciones de refactoría personalizadas
60Refactoría
- JDT tiene acciones para refactoría
61Refactoría
- Las opciones de refactoría escriben código
- Limitadas a un archivo de código Java
- Entre varios archivos Java interrelaccionados
- Acciones de refactoría preservan la semántica de
un programa - No altera la funcionalidad del programa
- Simplemente afecta la manera de llevarlo a cabo
- Permite el desarrollo de código de manera
exploratoria - Permite llevar a cabo desarrollo a buen nivel de
calidad - Permite sobreescribir código antiguo de manera
más sencilla
62Refactoría
- Visualización de los posibles cambios
- El programador puede vetar los cambios
63Refactoría
- Cada vez existen más opciones de refactoría
- Importaciones
- Renombrado atributo, método, clase, paquete
- Mover clase, método, atributo
- Extracción método, variable local , interfaz
- Inline método, variable local
- Reorganización de los parámetros de un método
- Escritura de un método en las clases madre
64Compilador Java Eclipse
- Compilador Java de Eclipse
- Compilador compatible JDK (seleccionable 1.3/
1.4) - Mensajes con gran ayuda
- Generación de código ejecutable incluso con
errores - Recompilación incremental
- Gran eficiencia
- Escable para grandes proyectos
- Otros usos además de los básicos
- Comprobación de sintáxis y léxico
- Análisis de la estructura interna de una clase
- Resolución de nombres
- Asistencia a la hora de codificar
- Refactoría
- Búsquedas
65Depurador Java de Eclipse
- Ejecuta o depura programas Java
66Depurador Java de Eclipse
- Ejecución de programas Java
- En JVM separadas (seleccionadas por usuario)
- Consola proporciona stdout, stdin, stderr
- Cuaderno para la ejecución de fragmentos de
código - Depuración de programas Java
- Depuración de todo el código
- En cualquier máquina virtual
- Características del depurador
- Puntos de ruptura a nivel de código y excepciones
- Puntos de ruptura condicionales
- Puntos de evaluación
- Ejecución paso a paso
- Inspeccionar el valor de variables y estructuras
- Evaluación de fragmentos en el contexto
- Reemplazamiento de métodos en caliente
67APIs JDT
- JDT APIs permite exportar la funcionalidad a
otros plug-ins - Modelo Java
- Visión Java del workspace
- Árbol de elementos Java
- Elementos delta de Java
- Jerarquias de tipos
68Eclipse JDT - Resumen
- JDT es un IDE Java
- Vistas Java, editores, refactoría
- Ayuda al programador escribir y mantener código
- Compilador Java
- Transforma el código Java en compilado
- Depurador Java
- Permite inspeccionar el código Java
69Entorno de Desarrollo de Plug-ins
- PDE entorno de desarrollo de plug-ins
- Herramienta especializada para el desarrollo de
plug-ins - Basada en Eclipse y JDT
- Implementado como un plug-in de Eclipse
- Utiliza la plataforma Eclipse y los APIs y
puntos de extensión de JDT - Incluido en las versiones de Eclipse
- Características distruible de manera también
separada - Parte del SDK de Eclipse
70Objetivos de PDE
- Objetivo Facilitar el desarrollo de plug-ins
- Objetivo Soporta el desarrollo y extensión de
eclipse
71PDE
- Plantillas PDE para facilitar la construcción de
plug-ins
72PDE
- Editor especializado para archivos manifest del
plug-in
73PDE
- PDE se ejecuta y depura en otro workbench
74PDE - Resumen
- PDE facilita el desarrollo de plug-ins de eclipse
- PDE también genera scripts Ant
- Compilación construcción de un plug-in desplegado
PDE es la base para la extensionabilidad de
Eclipse
75Entornos Operativos de Eclipse
- La plataforma de Eclipse actualmente se ejecuta
en - Microsoft Windows XP, 2000, NT, ME, 98SE
- Linux on Intel x86 - Motif, GTK
- RedHat Linux 8.0 x86
- SuSE Linux 8.1 x86
- Sun Solaris 8 SPARC Motif
- HP-UX 11i hp9000 Motif
- IBM AIX 5.1 on PowerPC Motif
- Apple Mac OS X 10.2 on PowerPC Carbon
- QNX Neutrino RTOS 6.2.1 - Photon
Marzo 2004
76Otros Entornos Operativos
- La mayoría de los plug-ins de Eclipse son 100
Java - Fácilmente portable a otros entornos operativos
- Java2 y las APIs de Eclipse independizan del SO
- Cosas nuevas en versión 2.1
- Mac OS X PowerPC Carbon window system
- QNX Neutrino RTOS Intel x86 - Photon window
system
Marzo 2004
77Quién pertenece al equipo?
78Quién pertenece al equipo?
79Quién distribuye Eclipse?
- 10 Technology Visual PAD
- Assisi V4ALL Assisi GUI-Builder
- Bocaloco XMLBuddy
- Borland Together Edition for WebSphere Studio
- Catalyst Systems Openmake
- Computer Associates AllFusion Harvest Change
Manager VCM - Ensemble Systems Glider for Eclipse
- Fujitsu Interstage
- Genuitec EASIE Plug-ins
- HP OpenCall Media Platform OClet Development
Environment - James Holmes Struts Console
- Instantiations CodePro Studio
Marzo 2004
80Quién distribuye Eclipse?
- IBM utiliza Eclipse para
- WebSphere Studio Family
- WebSphere Studio Homepage Builder
- WebSphere Studio Site Developer (WSSD)
- WebSphere Studio Application Developer (WSAD)
- WebSphere Studio Application Developer
Integration Edition (WSADIE) - WebSphere Studio Enterprise Developer (WSED)
- WebSphere Studio Device Developer (WSDD)
- WebSphere Development Studio for iSeries
- Rational XDE Professional Java Platform Edition
- Tivoli Monitoring Workbench
Marzo 2004
81Quién distribuye Eclipse?
- Interwoven TeamSite repository
- Intland CodeBeamer
- LegacyJ PERCobol
- Merant PVCS Version Manager
- MKS Source Integrity Enterprise plug-in
- Mobile Media Grand-Rapid Browser
- mvmsoft Slime UML
- No Magic Inc. MagicDraw UML
- Object Edge Weblogic Plug-in
- ObjectLearn Lomboz
- Omondo EclipseUML
- Ontogenics hyperModel
Marzo 2004
82Quién distribuye Eclipse?
- Parasoft Jtest
- ProSyst Eclipse OSGi Plug-in
- QNX QNX Momentics
- Quest Software JProbe integration
- Serena Software ChangeMan DS
- SlickEdit Visual SlickEdit Plug-in
- Systinet WASP Developer
- THOUGHT CocoBase Enterprise O/R
- TimeSys TimeStorm 2.0
- xored WebStudio IDE for PHP
Marzo 2004
83Quién distribuye Eclipse?