20
© 2002 IBM Corporation Create Your Own Eclipse Plug-in(s) “Choose your own open-source adventure” ~ SE UCLA Spring 2007 ~ Mark Weaver SWG – Tivoli [email protected] Chris Aniszczyk SWG – Lotus [email protected] Christy Lauridsen STG [email protected] Grace Wang IGS [email protected] Gergana Markova SWG – Tivoli [email protected]

Create Your Own Eclipse Plug-in(s) “Choose your own open-source adventure” ~ SE UCLA Spring 2007 ~

  • Upload
    gordy

  • View
    44

  • Download
    0

Embed Size (px)

DESCRIPTION

Create Your Own Eclipse Plug-in(s) “Choose your own open-source adventure” ~ SE UCLA Spring 2007 ~. Mark Weaver SWG – Tivoli [email protected] Chris Aniszczyk SWG – Lotus [email protected] Christy Lauridsen STG [email protected] Grace Wang IGS [email protected] - PowerPoint PPT Presentation

Citation preview

IBM blue-and-black template with image~ SE UCLA Spring 2007 ~
Christy Lauridsen STG [email protected]
Grace Wang IGS [email protected]
*
© 2006 IBM Corporation
Conclusion
Questions
Mark Weaver – Main Technical Contact
Chris Aniszczyk – Backup Technical Contact
Open-source enthusiast
Technical Writing
Project environment, scheduling
Other
IBM Academic Initiative Student Forum
IBM Developer Works resources
Collaboration, Networking
Research and resources evaluation
Standardization of the rail network enabled industrialized America and Europe
A connecting platform fueling growth, creating new business opportunities
Connecting resources with factory efficiencies
Connecting goods with markets
Other technology platforms: electricity grid, national highway systems, ……..the internet
“Standards contribute more to economic growth than patents and licenses.”
"Economic benefits of standardization“, Technical University Dresden (TUD) and the Fraunhofer Institute for Systems and Innovations
© 2006 IBM Corporation
Project Technology / Requirements
Recommend using SF.net
Project Discussion Forum/Log of your choice (e.g., Wiki)
Unit testing of your choice (e.g., JUnit)
In the end, it’s your decision what to do!
Deliverables
Mandatory
Optional
An article that will be published on DeveloperWorks detailing your experience
A feed into planeteclipse.org detailing your experience
© 2006 IBM Corporation
Why IBM? Why Eclipse?
We like Eclipse, we founded it and then donated it to the open-source community.
IBM and even competitor’s products are being built on Eclipse technology.
There is a large future invested in Eclipse.
© 2006 IBM Corporation
“An IDE for everything and particularly nothing”
Eclipse is an open source community focused on developing a universal platform of frameworks and exemplary tools that make it easy and cost-effective to build and deploy software in today’s connected and unconnected world.
Eclipse is a consortium of major software vendors, solution providers, corporations, educational and research institutions and individuals working together to create an eco-system that enhances, promotes and cultivates the Eclipse open platform with complementary products, services and capabilities.
Eclipse Strategic Goals
To define an open development platform
To foster a vibrant open source community well regarded for innovation and quality
To enable an ecosystem
Run on a wide range of operating systems
Support both GUI and non-GUI applications
Remain language neutral
Facilitate seamless tool integration
At UI and deeper
HTML
XML
EJB
JSP
C
*
The project goals were to support a wide variety of platforms, provide an language neutral base, and architect for integration not just on the glass, but deeper, with the resources that comprise the applications being developed.
© 2006 IBM Corporation
Ward Cunningham (Wiki founder, Eclipse Foundation)
Strong Community
For general information about the eclipse community, including what eclipse based offerings are available, activities, courses, venues for more information, use this page.
© 2006 IBM Corporation
*
In eclipse, everything is a plug-in. One of the reasons, early on, the Eclipse team decided to include in Eclipse plug-ins for Java and plug-in development was to test and drive development of the platform. They needed these tools, these plug-ins, so they could use Eclipse to build Eclipse. In Canada, they say, “Eat your own dogfood.” The end result is a better quality offering.
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 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. One such example is a plug-in that contributes online help in the form of HTML pages. A single plug-in's code libraries and read-only content are located together in a directory in the file system, or at a base URL on a server. There is also a mechanism that permits a plug-in to be synthesized from several separate fragments, each in their own directory or URL. This is the mechanism used to deliver separate language packs for an internationalized plug-in.
Each plug-in has a manifest file declaring its interconnections to other plug-ins. The interconnection model is simple: a plug-in declares any number of named extension points, and any number of extensions to one or more extension points in other plug-ins.
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
© 2006 IBM Corporation
details specified in it;s plug-in manifest (plugin.xml)
plugins can add code, define extension points, and contribute to extension points
Extension point
Defines API contract
Extension
example: a specific menu action
Controlled extensibility
*
With this extensibility architecture, one extends Eclipse by building plug-ins that are extensions to existing extension points. That plug-in provider can also add his/her own extension points for others to extend. This is what we do with our IBM commercial offerings, so that our tools better interoperate and our partners’ products can better interoperate with our commercial offerings.
© 2006 IBM Corporation
*
Advanced desktop applications have the same needs as an IDE
open architecture
integrated help, user configuration/preferences
Theme your own application
*
IDEs are simply specialized computer applications. Many of the things IDES need in a technology platform, general purpose computer applications need as well. In 3.0, the Eclipse team refactored Eclipse to separate Eclipse as a general purpose client platform for rich applications (i.e. not browser based) from IDE specific function.
© 2006 IBM Corporation
*
IDEs are simply specialized computer applications. Many of the things IDES need in a technology platform, general purpose computer applications need as well. In 3.0, the Eclipse team refactored Eclipse to separate Eclipse as a general purpose client platform for rich applications (i.e. not browser based) from IDE specific function.
© 2006 IBM Corporation
Anltr (competing parser generator) already has a non-free Eclipse development environment.
Eclipse Bison editor will be useful to anyone who wants to create a parser:
Students
Professionals
Hobbyist
© 2006 IBM Corporation
Originally written by Linus Torvolds
Used by Linux kernel
Current project, egit, under way to create GIT Eclipse plug-in
Plug-in far from done
They need our help!
© 2006 IBM Corporation
Still More Ideas
Eclipse SWT embedded Firefox browser widget (highly requested by the community)
Eclipse Mono Development Environment
Visualization of Eclipse's Plug-ins so it's easier to see dependencies and other things
Distributed Debugging
Shared Editing
VOIP in Eclipse using ECF ( http://www.eclipse.org/ecf ) and Google's Jingle API
Mylar support for C/C++ editing with CDT
Many, many more
© 2006 IBM Corporation
Any of your own ideas. We are here to help!
© 2006 IBM Corporation
Thank you for your time!
We’re here for you!
Eclipse has an awful learning curve, we’re here to help
Questions?