Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[p2-dev] NL Fragments and p2


We have a p2-based installer that needs to know the languages supported by any given NL fragment to minimize the footprint of installed artifacts. But, the Babel NL fragments do not specify the languages supported, it is upto the consumer to figure this out based on the names which is really ad-hoc. We would like this information persisted in the NL fragment or container feature and in the p2 metadata to help our installer figure this out automatically and to also support specific languages for installation.

One option we investigated was to use osgi.nl in the Eclipse-PlatformFilter  or specify nl attributes in feature.xml.  but osgi.nl is not stored in the org.eclipse.equinox.p2.environments property of the p2 profiles.  This makes the p2 installer throw errors like "Cannot complete the install because one or more required items could not be found.
  Missing requirement: 1256076700280 0.0.0.1256076700280 requires 'feauture.nls1.feature.group [1.0.0.200910201348]' " if osgi.nl is used with the NL features/fragments - see https://bugs.eclipse.org/bugs/show_bug.cgi?id=284899.

I tried adding osgi.nl=fr to org.eclipse.equinox.p2.environments in the p2 profile and that allowed features with osgi.nl=fr to be installed and threw errors while installing features with other language filters. On these lines, maybe, relaxing the org.eclipse.equinox.p2.environments to take in simple _expression_ like osgi.nl=en,fr,de,pt_BR or osgi.nl=* will help. We could also get the p2 installer to filter out the features/plugins based on the osgi.nl environment similar to what is being done with osgi.os,etc. but with the added support to parse expressions for osgi.nl.

I will debug the code dealing with the profile property org.eclipse.equinox.p2.environments and see what I come up with. Meanwhile, I welcome any ideas and suggestions, it is imperative that p2 support osgi.nl in some way.

Thanks,
Nalini.


Back to the top