diff options
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/ProfileWriter.java')
-rw-r--r-- | bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/ProfileWriter.java | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/ProfileWriter.java b/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/ProfileWriter.java index 01d1d1e47..1af6717c4 100644 --- a/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/ProfileWriter.java +++ b/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/ProfileWriter.java @@ -14,10 +14,9 @@ import java.io.IOException; import java.io.OutputStream; import java.util.*; import org.eclipse.equinox.internal.p2.metadata.repository.io.MetadataWriter; -import org.eclipse.equinox.internal.provisional.p2.engine.IProfile; -import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit; -import org.eclipse.equinox.internal.provisional.p2.metadata.query.Collector; -import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery; +import org.eclipse.equinox.p2.engine.IProfile; +import org.eclipse.equinox.p2.metadata.IInstallableUnit; +import org.eclipse.equinox.p2.metadata.query.InstallableUnitQuery; public class ProfileWriter extends MetadataWriter implements ProfileXMLConstants { @@ -29,16 +28,10 @@ public class ProfileWriter extends MetadataWriter implements ProfileXMLConstants start(PROFILE_ELEMENT); attribute(ID_ATTRIBUTE, profile.getProfileId()); attribute(TIMESTAMP_ATTRIBUTE, Long.toString(profile.getTimestamp())); - IProfile parentProfile = profile.getParentProfile(); - if (parentProfile != null) - attribute(PARENT_ID_ATTRIBUTE, parentProfile.getProfileId()); - writeProperties(profile.getLocalProperties()); - Collector collector = profile.query(InstallableUnitQuery.ANY, new Collector(), null); - ArrayList ius = new ArrayList(collector.toCollection()); - Collections.sort(ius, new Comparator() { - public int compare(Object o1, Object o2) { - IInstallableUnit iu1 = (IInstallableUnit) o1; - IInstallableUnit iu2 = (IInstallableUnit) o2; + writeProperties(profile.getProperties()); + ArrayList<IInstallableUnit> ius = new ArrayList<IInstallableUnit>(profile.query(InstallableUnitQuery.ANY, null).unmodifiableSet()); + Collections.sort(ius, new Comparator<IInstallableUnit>() { + public int compare(IInstallableUnit iu1, IInstallableUnit iu2) { int IdCompare = iu1.getId().compareTo(iu2.getId()); if (IdCompare != 0) return IdCompare; @@ -52,14 +45,14 @@ public class ProfileWriter extends MetadataWriter implements ProfileXMLConstants flush(); } - private void writeInstallableUnitsProperties(Iterator it, int size, IProfile profile) { + private void writeInstallableUnitsProperties(Iterator<IInstallableUnit> it, int size, IProfile profile) { if (size == 0) return; start(IUS_PROPERTIES_ELEMENT); attribute(COLLECTION_SIZE_ATTRIBUTE, size); while (it.hasNext()) { - IInstallableUnit iu = (IInstallableUnit) it.next(); - Map properties = profile.getInstallableUnitProperties(iu); + IInstallableUnit iu = it.next(); + Map<String, String> properties = profile.getInstallableUnitProperties(iu); if (properties.isEmpty()) continue; |