Uploaded image for project: 'Tools (JBoss Tools)'
  1. Tools (JBoss Tools)
  2. JBIDE-14844

Proper feature location for org.jboss.tools.foundation.security.linux fragment

    XMLWordPrintable

Details

    • Task
    • Resolution: Done
    • Major
    • 4.1.0.CR1
    • 4.1.0.Beta2
    • common
    • None

    Description

      Related to TEIIDDES-1591

      There is a new plugin fragment which provides a more informative dialog for secure storage. This fragment is named org.jboss.tools.foundation.security.linux.

      No other plugin or feature should ever have a binary dependency on this plugin fragment. It may, however, be something projects like AS-Tools or Openshift decide should be installed alongside with it. Plugin dependencies on this fragment should never happen, especially because this fragment should only be installed in linux, not on windows or mac.

      Currently the fragment is included in the feature named org.jboss.tools.foundation.feature. This is not optimal for a few reasons.

      1) The future of this feature is uncertain. What it will contain, or whether it will continue to exist in its current form, is up for big changes in the next major release.

      2) Subsets of JBT which may wish this fragment to be present but do not have a binary dependency on this fragment will probably use a feature requirement of some type.

      3) If this fragment continues to live in org.jboss.tools.foundation.feature, then any plugin which is also in that feature will by default be required by any higher-level feature which 'requires' this. So, for example, if AS-Tools wishes this fragment to be present and then 'requires' the foundation.feature, an addition of egit-related plugins to foundation.feature would then make AS-Tools require egit, which does not make sense.

      4) Even if no plugins were added to o.j.t.foundation.feature, it then also means this fragment cannot be moved OUT of foundation.feature, as higher-level projects will 'require' foundation.feature and expect the fragment to be present. Moving this fragment out of its current feature would then be a breaking change, and any higher-level features expecting current behavior would then need to be changed / updated to point to this fragments new wrapper-feature. This is a breaking change. As an example of this, if AS-Tools decides to require o.j.t.foundation.feature and expects the fragment to be pulled in, moving the fragment away will result in AS-Tools not having the fragment installed. AS-Tools would then need to update their features to point to the security fragment's new home.

      5) Having the fragment in NO feature at all would prevent the fragment from being available on update sites.

      6) Having a higher-level plugin directly "depend on" this plugin in its manifest.mf does not make sense, especially for installations on windows or mac.

      I believe the optimal solution is to give this security fragment its own wrapper feature, so that it may be included on update sites, 'required' by projects/products like TD or AS-Tools without any danger of refactors later, and many other benefits.

      I would appreciate feedback on my thoughts here.

      Attachments

        Issue Links

          Activity

            People

              rob.stryker Rob Stryker (Inactive)
              rob.stryker Rob Stryker (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: