Jump to: navigation, search

DTP 1.9 New and Noteworthy

Revision as of 15:36, 1 June 2011 by Bpayton.us.ibm.com (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Back to DTP Main Page

This page documents a few of the things we think are New & Noteworthy for the DTP 1.9 (Indigo) release.

BZ 338997 - Enable the Connectivity runtime framework to run on OSGi-less platform

The Connectivity runtime framework currently requires the OSGi platform services for its operations. This enhancement calls for enabling support to run on OSGi-less platform, such as in a J2EE application that runs without OSGi, and where all the related plug-in jars are specified in the same class path. The existing capabilities to run on Equinox OSGi platform are maintained.
The feature scope only applies to runtime environment, and does not involve any UI or IDE-related features.

Summary of Changes

The Connectivity component uses the Equinox OSGi platform bundle services and default workspace services quite extensively. When running without the OSGi platform, those services will no longer be available. For example, the call to Platform#getBundle would return null. To support the new feature, all the calls made directly to those platform services are re-factored to call new utility API methods in the org.eclipse.datatools.connectivity.services.PluginResourceLocator class. The utility methods would first attempt to call the same OSGi platform services as before; and only if not available, it will then take the alternate approach. Thus, the enhancement should be transparent to existing adopters that continue to use the OSGi platform.

What to configure for OSGi-less platform

When the OSGi platform is not available, the PluginResourceLocator utility would then use the class loader (that loaded the org.eclipse.datatools.connectivity plug-in) to locate the desired resources. Thus all the plug-ins depending on the Connectivity runtime framework must have their jar files specified in the same class path.

In addition, a default workspace directory must be explicitly configured. A client application may configure a parent workspace path for all plug-ins that adopt the Connectivity framework, or a separate workspace location for individual plug-in. If both are specified, the individual plug-in workspace location would take precedence.

A workspace directory is specified in either

  • a system property, or
  • an environment variable

The system property, when set with a non-null value, takes precedence over that of corresponding environment variable.

Define the system property and/or environment variable under the name "org.eclipse.datatools_workspacepath" for the parent workspace path, or "{pluginName}_workspacepath" for individual plug-in workspace directory.
For example, define the system property in a VM argument:
-Dorg.eclipse.datatools_workspacepath=E:/myworkspace/.metadata/.plugins
-Dorg.eclipse.datatools.connectivity_workspacepath=E:/workspace/.metadata/.plugins/org.eclipse.datatools.connectivity