Plug-in Migration Guide
TPTP API v4.0.0
In TPTP, there are three types of API: internal, provisional, and public.


TPTP API contract
Internal means that no one can use that code outside of the plug-in itself. Internal code has the word "internal" in the package name. Internal code can change at any time.

Provisional means that anyone can use it, but user beware. There are two classes of provisional API: experimental and stable.
  1. Experimental provisional API is API that has a high risk of change in the next release. Code that is experimental has the word "provisional" in its package name.
  2. Stable provisional API is API that probably will not change in the next release. Code that is stable has the @provisional tag in the Javadoc. Stable API is solid but is not public for any number of reasons: the implementation may fluctuate, the function's quality isn't as high as we'd like it to be yet, ports to other platforms may be needed, etc.
Public means that anyone can use it and backward and forward binary compatibility is guaranteed in a maintenance release, and maintained as much as possible in API-breaking level releases such as TPTP 4.0.0. For example, any public API that existed in the X.0.0 release will be maintained throughout any maintenance release of X.0, such as X.0.1, X.1, or X.1.1. If TPTP does intend to break an APIs then TPTP deprecates for a full major release first. Deviations are documented in this migration guide. Code whose package name does not include the word "internal" or "provisional", and whose Javadoc does not have the @provisional tag, is public.


New public API
The following classes and interfaces, which were previously internal, are now public:
  1. org.eclipse.hyades.execution.recorder.IRecorderDataProcessor
  2. org.eclipse.hyades.execution.recorder.Recorder
  3. org.eclipse.hyades.execution.recorder.RecorderException
  4. org.eclipse.hyades.execution.recorder.RecorderFactory
  5. org.eclipse.hyades.execution.recorder.local.appadapters.IRecorderApplicationAdapter
  6. org.eclipse.hyades.execution.recorder.local.appadapters.RecorderAppAdapterFactory
  7. org.eclipse.hyades.execution.recorder.local.appadapters.RecorderApplicationAdapters

Provisional API
At a high level, the following new function is provisional in TPTP 4.0:
  1. Agent Controller
  2. Choreography engine
  3. Test reports
That is not an exhaustive list of the API that is provisional. Specific packages, types, and any other provisional API are documented as per the API contract.

Internal API
At a high level, the following function is internal in TPTP 4.0:
  1. Currently, all the Statistical Analysis APIs are internal.
That is not an exhaustive list of the API that is internal. Specific packages, types, and any other internal API are documented as per the API contract.


Related topics:

Legal notices