diff -r 9c8b9f280200 -r fc9d5d520518 core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/wizard/P2Utils.java --- a/core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/wizard/P2Utils.java Wed Aug 25 17:55:05 2010 -0500 +++ b/core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/wizard/P2Utils.java Wed Aug 25 20:02:15 2010 -0500 @@ -16,14 +16,23 @@ */ package com.nokia.carbide.internal.discovery.ui.wizard; +import java.io.File; +import java.io.FileOutputStream; import java.net.URI; +import java.net.URL; +import java.text.MessageFormat; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.Set; +import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; import org.eclipse.equinox.p2.core.IProvisioningAgent; import org.eclipse.equinox.p2.engine.IProfile; import org.eclipse.equinox.p2.engine.IProfileRegistry; @@ -32,8 +41,12 @@ import org.eclipse.equinox.p2.query.IQueryResult; import org.eclipse.equinox.p2.query.QueryUtil; import org.eclipse.equinox.p2.ui.ProvisioningUI; +import org.eclipse.osgi.service.datalocation.Location; -class P2Utils { +import com.nokia.carbide.discovery.ui.Activator; +import com.nokia.carbide.discovery.ui.Messages; + +public class P2Utils { public static Collection getKnownRepositories() { ProvisioningUI provisioningUI = ProvisioningUI.getDefaultUI(); @@ -61,4 +74,26 @@ } return infos; } + + public static void writeFeaturesToFile(File file) { + if (!file.exists()) { + Collection initialFeatures = P2Utils.getInstalledFeatures(new NullProgressMonitor()); + ImportExportData data = new ImportExportData(false, Collections.emptyList(), initialFeatures); + try { + Streamer.writeToXML(new FileOutputStream(file), data); + } catch (Exception e) { + Activator.logError(MessageFormat.format( + Messages.P2Utils_WriteInitialFeaturesFileError, file), e); + } + } + } + + public static File getInitialFeaturesFile() { + Location installLocation = Platform.getInstallLocation(); + URL url = installLocation.getURL(); + IPath path = new Path(url.getPath()); + path = path.append("configuration/initialFeatures.xml"); //$NON-NLS-1$ + File file = path.toFile(); + return file; + } }