Skip to content
kasemir edited this page Nov 22, 2010 · 7 revisions

= Eclipse And CSS =

Eclipse is a Java-based framework for creating applications.

At its core is the extensible OSGi plug-in system. Application code is split into modular bundles called '''Plug-Ins'''. The Eclipse runtime loads required plug-ins and their dependencies. Plug-ins can describe software interfaces as '''Extension Points''', and other plug-ins then register their implementation of these interfaces in the Eclipse '''Registry''', allowing loose coupling of software components.

The Eclipse Rich Client Platform (RCP) provides an extensive user interface framework based on extension points. While this was originally developed for the Eclipse Java IDE, RCP can be used independently from the IDE to create applications like CSS.

An Eclipse '''Product''' combines the plug-ins that you want to use at your site with site-specific settings for access to network, database etc. You add a 'Welcome' screen that guides users through their initial steps, and the result is then a homogeneous application that your users can for example download from a web page.

== Books, Online Sources ==

When looking for Books on Eclipse, note that you probably don't need books on the Eclipse IDE, since those are for general Java programming. Instead, look for books on RCP, SWT, JFace, Plug-ins, OSGi, for example:

  • "eclipse Plug-ins, Third Edition" by Eric Clayberg, Dan Rubel (Addison-Wesley Professional) is an update to "Eclipse: Building Commercial-Quality Plug-ins", which used to be ''the'' book on Eclipse, Plug-ins, RCP.
  • "Eclipse Rich Client Platform (2nd Edition)" as well as "OSGIi and Equinox", both by Jeff McAffer, Jean-Michel Lemieuxr, Chris Aniszczyk (Addison-Wesley Professional) seem to cover relevant topics as well

With Eclipse evolving at a rapid pace, all books quickly become obsolete. The online help of the Eclipse RCP IDE and a google search are often the fastest way to get specific information.

== Introduction to Eclipse/CSS Development ==

While Eclipse allows you to build arbitrary applications, CSS provides plug-ins that help with control system tasks like accessing live or historic data, handling user permissions or sending information to a log book. For help, refer to

  • [wiki:CompareProducts List of most CSS plugins]
  • Java doc or JUnit tests in the source code that explain and demonstrate the functionality.
  • '@author' information in each source file if you want to contact the original implementor.
  • Documentation in the org.csstudio.startuphelper plugin for the suggested way to create a Product for your site.

These slides from the Spring 2010 EPICS Collaboration Meeting hosted by ITER at Aix-en-Provence, France show

  1. Basic test-driven Java development in the Eclipse IDE,
  2. Bundling of code into Plug-ins, creating a simplistic IOC where the Eclipse Registry provides the "glue" between APIs for Records and Links and the actual implementations
  3. Building a minimal "Probe" type UI for CSS
Clone this wiki locally