`
C_J
  • 浏览: 127963 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Eclipse Technical Overview&Creating a plugin

阅读更多

题记:

    最近在上课,花了4500闷,有段时间没写博客了。因为马上要开启人生中重要的新职业生涯,也来充充电。

 

Technical Overview:

    When people speak of Eclipse, they very often mean the Eclipse Software Development Kit (SDK)
which is both the leading Java™ integrated development environment (IDE) and the single best tool
available for building products based on the Eclipse Platform.

 

    The Eclipse SDK, a critical piece of the Eclipse tapestry, is a combination of the efforts of several Eclipse projects, including Platform [http://eclipse.org/platform], Java Development Tools (JDT [http://eclipse.org/jdt]), and the Plug-in Development Environment (PDE [http://eclipse.org/pde]).

 

    the  Eclipse Platform is itself a composition of components; by using a subset of these components, it is possible to build arbitrary applications.

 

    it is a foundation for building arbitrary tools and applications.As the name "rich client" implies, clipse RCP is an excellent platform for building applications that work in conjunction with application servers, databases,and other backend resources to deliver a rich user experience on the desktop.

 

    Integration extends into the rich client space as well. An organization can split up the development of application components across development teams and then integrate the results using the Eclipse Rich Client Platform. This doesn't trivialize the process of developing large scale applications, but it does make the integration easier.

 

    The Eclipse Platform is built on a mechanism for discovering, integrating, and running modules called plug-ins, which are in turn represented as bundles based on the OSGi [http://osgi.org] specification. A tool provider writes a tool as a separate plug-in that operates on files in the workspace and surfaces its tool-specific UI in the workbench. When the Platform is launched, the user is presented with an integrated development environment (IDE) composed of the set of available plug-ins. The quality of the user experience depends significantly on how well the tools integrate with the Platform and how well the various tools work with each other.

 

functions:

    A plug-in is the smallest unit of Eclipse Platform function that can be developed and delivered separately. Usually a small tool is written as a single plug-in, whereas a complex tool has its
functionality split across several plug-ins. Except for a small kernel known as the Platform Runtime, all of the Eclipse Platform's functionality is located in plug-ins.Plug-ins are coded in Java. A typical plug-in consists of Java code in a Java Archive (JAR) library, some read-only files, and other resources such as images, web templates, message catalogs, native code libraries, etc. Some plug-ins do not contain code at all.

 

Extension:

A plug-in’s extension points can be extended by other plug-ins. For example, the workbench plug-in declares an extension point for user preferences. Any plug-in can contribute its own user preferences by defining extensions to this extension point. An extension point may have a corresponding API interface. Other plug-ins contribute implementations of this interface via extensions to this extension point. Any plug-in is free to define new extension points and to provide new API for other plug-ins to use.

 

Manifest:

A plug-in's manifest is represented by a pair of files. The manifest.mf file is an OSGi bundle manifest describing the plug-ins runtime dependencies; the plugin.xml file is an XML-based description of the plug-in’s extensions and extension points. An extension point may declare additional specialized XML element types for use in the extensions. This allows the plug-in supplying the extension to communicate arbitrary information to the plug-in declaring the corresponding extension point. Moreover, extension and extension point information is available from the plug-in registry without activating the contributing plug-in or loading of any of its code. This property is key to supporting a large base of installed plug-ins only some of which are needed in any given user session. Until a plug-in's code is loaded, it has a negligible memory footprint and impact on start-up time. Using an XML-based plug-in manifest also makes it easier to write tools that support plug-in creation. The Plug-In Development Environment (PDE), which is included in the Eclipse SDK, is such a tool.

   

Activate:

    A plug-in is activated when its code actually needs to be run. Once activated, a plug-in uses the plug-in registry to discover and access the extensions contributed to its extension points. For example, the plug-in declaring the user preference extension point can discover all contributed user preferences and access their display names to construct a preference dialog. This can be done using only the information from the registry, without having to activate any of the contributing plug-ins. The contributing plug-in will be activated when the user selects a preference from a list. Activating plug-ins in this manner does not happen automatically; there are a small number of API methods for explicitly activating plug-ins. Once activated, a plug-in remains active until it is explicitly deactivated or the Platform shuts down. Each plug-in is furnished with a subdirectory in which to store plug-in-specific data; this mechanism allows a plug-in to carry over important state between runs.

    By determining the set of available plug-ins up front, and by supporting a significant exchange of information between plug-ins without having to activate any of them, the Platform can provide each plug-in with a rich source of pertinent information about the context in which it is operating. This context cannot change while the Platform is running, so there is no need for complex life cycle events to inform plug-ins when the context changes.

 

In one JVM:

    The Eclipse Platform is run by a single invocation of a standard Java virtual machine. Each plug-in is assigned its own Java class loader that is solely responsible for loading its classes (and Java resource bundles). Each plug-in explicitly declares its dependence on other plug-ins from which it expects to directly access classes, and controls the visibility of the public classes and interfaces in its libraries. This information is declared in the plug-in manifest file; the visibility rules are enforced at runtime by the plug-in class loaders.

 

 

Creating a plugin

    1,创建bundle。

    plugin是eclipse平台最小的单位,几乎所有的东西都是plugins。eclipse平台的PDE给开发plugin提供了简化的图形界面操作,并提供了很多模版,比如创建SampleView,详细步骤见:http://www.ibm.com/developerworks/cn/lotus/notes-plugin-eclipse/ 。

    于是我动手验证了下,果然比较简约,很快能制作出一个简单的plugin出来。

     今天听了GUOYI的tranning才知道还要创建feature 和 update site。

    2,创建feature

    在eclipse中提供了直接创建feature的project,把刚才的bundle加入进来就可以了。

    3,创建update site

    和创建feature类似,很简单。

 

 

 

其实eclipse是一个平台,IDE是它提供最基本的内容,同时他就像操作系统一样,你可以在他之上扩展很多功能,包括现在很多产品都开发在它之上。bundle的灵活热拔插和扩展性提供了较友好的管理。

 

分享到:
评论

相关推荐

    A Technical Overview of VP9--the Latest Open-Source Video Codec

    A Technical Overview of VP9--the Latest Open-Source Video Codec Google has recently finalized a next generation open-source video codec called VP9, as part of the libvpx repository of the WebM project...

    eclipse overview插件

    eclipse overview插件 跟sublime 的预览插件一样效果 由于无法在线安装,可以使用link方式安装 步骤如下 1、下载好解压文件,解压到指定目录如: D:\Program Files (x86)\eclipse\overview目录 2、找到eclipse安装...

    eclipse-overview.pdf

    《Eclipse平台:技术概览与Java开发工具详解》 一、引言 Eclipse平台是为构建集成开发环境(IDE)而设计的,适用于创建包括网站、嵌入式Java程序、C++程序以及企业级JavaBeans在内的各种应用。本文档提供了一个...

    TCPIP Tutorial and Technical Overview(8th) 无水印pdf

    TCPIP Tutorial and Technical Overview(8th) 英文无水印pdf 第8版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如...

    TECHNICAL OVERVIEW OF VP8, AN OPEN SOURCE VIDEO CODEC FOR THE WEB

    ### VP8技术概述:一种开源网络视频编解码器 #### 引言 2010年5月,Google宣布启动了一个新的开放媒体项目——WebM。该项目旨在为互联网开发高质量且免费可用的开放媒体格式。VP8作为该计划的核心组成部分,是一种...

    Technical Overview of LoRa and LoRaWAN-TÜV Rheinland

    * Class B:这是LoRaWAN设备中的一种升级类别,具有比Class A更高的数据传输速率。 * Class C:这是LoRaWAN设备中的一种高级类别,具有最高的数据传输速率和最低的功耗。 四、LoRaWAN安全性 LoRaWAN网络具有很高...

    overview-for-eclipse

    【标题】:Eclipse与MyEclipse的代码地图功能详解 【描述】:在编程过程中,随着代码量的增加,代码的可读性和导航成为一项挑战。"代码地图"(Code Map)功能就是为了应对这一问题而设计的。它提供了一个鸟瞰视图,...

    SAP VMS 01_VMS_Overview&Concepts

    - **01_VMS_Overview&Concepts**:介绍VMS的整体框架与核心概念,为用户理解和实施VMS提供基础知识。 - **02_VMS_Master Data**:涉及系统中的主数据管理,包括业务伙伴、车辆配置等信息。 - **03_VMS_MTS**:针对按...

    Multi-layer AHB Technical Overview.pdf

    ARM AMBA 3协议部分的文档中涉及了Multi-layer AHB技术概述,这是由ARM Limited公司发布的。ARM AMBA(Advanced Microcontroller Bus Architecture)是一种片上总线标准,用于连接和管理片上系统的各个功能部件,是...

    Network Load Balancing Technical Overview

    Network Load Balancing Technical Overview

    TCP_IP Tutorial and Technical Overview.pdf

    TCP/IP教程和技术概述是一份详细阐述了TCP/IP协议套件的网络基础知识、高级概念以及最新技术的资料。在这份资料中,我们能够了解到TCP/IP的架构模型、互联网的根源、协议的标准以及未来的发展趋势。...

    TCP/IP Tutorial and Technical Overview

    IBM TCP/IP Tutorial and Technical Overview October 1998

    Technical Overview of 3GPP LTE

    A (2004年)**:支持VoIP。 - **EV-DO Rev. B (2006年)**:支持多载波。 - **超移动宽带 (UMB),又名 EV-DO Rev. C** - 基于EV-DO、IEEE 802.20 和 FLASH-OFDM。 - 规格于2007年4月最终确定。 - 商用版本于2009年...

    iSNS Technical overview of discovery in IP SANs

    iSNS Technical overview of discovery in IP SANs

    Technical Overview of 3GPP Long Term Evolution

    Technical Overview of 3GPP Long Term Evolution

    ERP信息化专业资料:SAP专业学习教材FI Overview&GL.pptx

    财务模块(FI Overview)是SAP系统的核心部分,它涵盖了企业财务管理的各个方面,如应收、应付、总账等。通过这个模块,用户可以理解和掌握SAP在财务领域的术语和操作流程。 总账(GL Overview)是财务会计的核心,...

    IBM Power 795 Technical Overview and Introduction

    Chapter 1.General description Chapter 2.Architecture and technical overview Chapter 3.Virtualization Chapter 4.Continuous availability and manageability

    Eclipse运行TOMCAT 出现在a java exception has occurred的解决办法。

    Eclipse运行TOMCAT出现"a java exception has occurred"的解决办法 Eclipse是一款功能强大且广泛应用的集成开发环境(IDE),它支持多种编程语言,包括Java、C++、Python等。TOMCAT则是一款流行的Java Web服务器,...

    Asterisk: A Non-Technical Overview

    asterisk的非技术性概述。...market have a better understanding of key aspects of Asterisk as a VoIP platform. It also shows how an open source project can be used as a cornerstone in a business model.

    课件1 Small Business Technical Overview (700-755 SBTO)

    课件1 Small Business Technical Overview (700-755 SBTO)

Global site tag (gtag.js) - Google Analytics