### Eclipse Workspace Patch 1.0 #P org.eclipse.equinox.p2.ui Index: META-INF/MANIFEST.MF =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui/META-INF/MANIFEST.MF,v retrieving revision 1.25 diff -u -r1.25 MANIFEST.MF --- META-INF/MANIFEST.MF 25 Apr 2008 21:12:08 -0000 1.25 +++ META-INF/MANIFEST.MF 14 May 2008 21:41:41 -0000 @@ -7,6 +7,7 @@ Bundle-Version: 1.0.0.qualifier Bundle-Activator: org.eclipse.equinox.internal.p2.ui.ProvUIActivator Import-Package: org.eclipse.equinox.internal.p2.core.helpers, + org.eclipse.equinox.internal.p2.metadata, org.eclipse.equinox.internal.p2.rollback, org.eclipse.equinox.internal.provisional.configurator, org.eclipse.equinox.internal.provisional.p2.artifact.repository, Index: src/org/eclipse/equinox/internal/provisional/p2/ui/query/IUPropertyUtils.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/query/IUPropertyUtils.java,v retrieving revision 1.4 diff -u -r1.4 IUPropertyUtils.java --- src/org/eclipse/equinox/internal/provisional/p2/ui/query/IUPropertyUtils.java 13 May 2008 23:25:17 -0000 1.4 +++ src/org/eclipse/equinox/internal/provisional/p2/ui/query/IUPropertyUtils.java 14 May 2008 21:41:41 -0000 @@ -13,6 +13,7 @@ import java.net.URL; import java.util.*; import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; +import org.eclipse.equinox.internal.p2.metadata.InstallableUnit; import org.eclipse.equinox.internal.p2.ui.ProvUIActivator; import org.eclipse.equinox.internal.provisional.p2.metadata.*; import org.eclipse.equinox.internal.provisional.p2.metadata.query.IUPropertyQuery; @@ -132,7 +133,7 @@ String localeKey = makeLocalizedKey(actualKey, (String) jter.next()); translation = localizationIU.getProperty(localeKey); if (translation != null) - return translation; + return cacheResult(iu, localizedKey, translation); } } } @@ -142,10 +143,22 @@ String localeKey = makeLocalizedKey(actualKey, nextLocale); String nextValue = iu.getProperty(localeKey); if (nextValue != null) - return nextValue; + return cacheResult(iu, localizedKey, nextValue); } - return actualKey; + return cacheResult(iu, localizedKey, actualKey); + } + + /** + * Cache the translated property value to optimize future retrieval of the same value. + * Currently we just cache on the installable unit object in memory. In future + * we should push support for localized property retrieval into IInstallableUnit + * so we aren't required to reach around the API here. + */ + private static String cacheResult(IInstallableUnit iu, String localizedKey, String localizedValue) { + if (iu instanceof InstallableUnit) + ((InstallableUnit) iu).setProperty(localizedKey, localizedValue); + return localizedValue; } /** #P org.eclipse.equinox.p2.metadata Index: META-INF/MANIFEST.MF =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF,v retrieving revision 1.15 diff -u -r1.15 MANIFEST.MF --- META-INF/MANIFEST.MF 25 Apr 2008 19:09:56 -0000 1.15 +++ META-INF/MANIFEST.MF 14 May 2008 21:41:42 -0000 @@ -11,7 +11,8 @@ org.eclipse.equinox.p2.engine, org.eclipse.equinox.p2.artifact.repository, org.eclipse.equinox.p2.artifact.optimizers, - org.eclipse.equinox.p2.artifact.processors", + org.eclipse.equinox.p2.artifact.processors, + org.eclipse.equinox.p2.ui", org.eclipse.equinox.internal.provisional.p2.metadata; x-friends:="org.eclipse.equinox.p2.artifact.optimizers, org.eclipse.equinox.p2.artifact.processors,