IBM Support

Deployment of a custom plug-in using Link folders fails

Troubleshooting


Problem

One of the methods to extend an Eclipse platform consists of creating a folder called links, containing files with extension .link that point to a an Eclipse extension location. In version 7 of the IBM Software Development Platform (SDP), this extension method no longer works.

Cause

To reproduce the issue, you would perform steps similar to the following:

1. Start IBM Rational® Software Architect (RSA) and load a workspace containing the plug-in project that you have already developed, or develop a new plug-in (you could start with File->New->Project->Plug-in Development->Plug-in project and select one of the existing plug-in templates, such as the "Hello World" template).



2. Once you have a working plug-in project in your workspace, export it as a deployable plug-in with the command:

File->Export->Plug-in Development->Deployable plug-ins and Fragments

Save it in a separate folder with a name like:

C:\myextensions_repository\eclipse\

Note that there should be a subfolder called "eclipse", inside your favourite extensions folder.

The plug-in jar file will be placed in:

C:\myextensions_repository\eclipse\plugins

(the "plugins" subfolder will be created automatically).

3. Create a new Feature project:

File->New->Project->Plug-in Development->Feature Project

In the dialog page called: Referenced Plug-ins and Fragments
choose the identifier of the plug-in just exported (which should still be in your workspace).


4. Export the Feature project as deployable feature with the menu:
File->Export->Plug-in Development->Deployable Feature
Choose the identifier of the feature just created.

Save the feature in the folder:
C:\myextensions_repository\eclipse

This will automatically create a sub-folder

C:\myextensions_repository\eclipse\features

containing another folder, called like the feature, with a version number at the end:

C:\myextensions_repository\eclipse\features\MyFeature_1.0.0

and with a file called feature.xml inside.

Make a note of the name: MyFeature
(extension's feature directory without the version suffix)  because it is needed to create the .link folder later on.


5. Create the folder called "links" inside the RSA installation directory (the one that contains eclipse.exe)
resulting in the folllowing folder in a dafault Windows installation:
C:\Program Files\IBM\Rational\SDP70\links

6. Create a file with extension ".link" . The link file must have the same name as the extension's feature directory without the version suffix, so in this case: 

C:\Program Files\IBM\Rational\SDP70\links\MyFeature.link

with the content::

path=C://myextensions_repository


in the above "links" folder.
Note that the path does not contain the "eclipse" subfolder.
Note how on Windows you are still required to use "/" instead of "\"

7. Start RSA on a new workspace

Result:

The new feature is not visible, because the Installation Manager sets the transient flag in the platform.xml file. This flag ensures that Eclipse ignores link files.
(The reason for setting this flag is to circumvent the Eclipse defect 166852, see the Related URL section for more information).

Resolving The Problem

There are various alternative approaches:
1. Use the Eclipse standalone update commands (addSite and removeSite) to add an extension directory. (See the Installation Manager 1.0.0.2 readme file and reference therein)

2. Use Add extension option in Help->Software Updates->Manage configuration
(See the DeveloperWorks article "Manage your Eclipse Environment")

3. Put plugins/feature into the <installdir>/feature and <installdir>/plugins directory; then, launch Eclipse once with the  -clean command line argument.

Please note that the above <installdir> should refer to the installation of the specific product, which is by default located in:

C:\Program Files\IBM\Rational\SDP70

and not to the common repository, which is by default located in:

C:\Program Files\IBM\Rational\SDP70Shared



[{"Product":{"code":"SSYK2S","label":"Rational Software Architect Designer"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Extensibility","Platform":[{"code":"PF016","label":"Linux"},{"code":"PF033","label":"Windows"}],"Version":"7.0;7.0.0.1","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}},{"Product":{"code":"SSCLKU","label":"Rational Software Modeler"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Extensibility","Platform":[{"code":"PF033","label":"Windows"},{"code":"PF016","label":"Linux"}],"Version":"7.0;7.0.0.1","Edition":"","Line of Business":{"code":"LOB36","label":"IBM Automation"}},{"Product":{"code":"SSJP3D","label":"Rational Systems Developer"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Extensibility","Platform":[{"code":"PF016","label":"Linux"},{"code":"PF033","label":"Windows"}],"Version":"7.0;7.0.0.1","Edition":"","Line of Business":{"code":"LOB36","label":"IBM Automation"}},{"Product":{"code":"SSRTLW","label":"Rational Application Developer for WebSphere Software"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Eclipse","Platform":[{"code":"PF033","label":"Windows"},{"code":"PF016","label":"Linux"}],"Version":"7.0;7.0.0.1","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}},{"Product":{"code":"SSFKQW","label":"Rational Data and Application Modeling Bundle"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":" ","Platform":[{"code":"PF016","label":"Linux"},{"code":"PF033","label":"Windows"}],"Version":"7.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}},{"Product":{"code":"SSSRXA","label":"Rational Data Architect"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Extensibility","Platform":[{"code":"PF016","label":"Linux"},{"code":"PF033","label":"Windows"}],"Version":"7.0;7.0.0.1","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
10 September 2020

UID

swg21255611