14 * Description: |
14 * Description: |
15 * |
15 * |
16 */ |
16 */ |
17 package com.nokia.carbide.internal.discovery.ui.wizard; |
17 package com.nokia.carbide.internal.discovery.ui.wizard; |
18 |
18 |
|
19 import java.io.File; |
|
20 import java.io.FileOutputStream; |
19 import java.net.URI; |
21 import java.net.URI; |
|
22 import java.net.URL; |
|
23 import java.text.MessageFormat; |
20 import java.util.Arrays; |
24 import java.util.Arrays; |
21 import java.util.Collection; |
25 import java.util.Collection; |
|
26 import java.util.Collections; |
22 import java.util.HashSet; |
27 import java.util.HashSet; |
23 import java.util.Iterator; |
28 import java.util.Iterator; |
24 import java.util.Set; |
29 import java.util.Set; |
25 |
30 |
|
31 import org.eclipse.core.runtime.IPath; |
26 import org.eclipse.core.runtime.IProgressMonitor; |
32 import org.eclipse.core.runtime.IProgressMonitor; |
|
33 import org.eclipse.core.runtime.NullProgressMonitor; |
|
34 import org.eclipse.core.runtime.Path; |
|
35 import org.eclipse.core.runtime.Platform; |
27 import org.eclipse.equinox.p2.core.IProvisioningAgent; |
36 import org.eclipse.equinox.p2.core.IProvisioningAgent; |
28 import org.eclipse.equinox.p2.engine.IProfile; |
37 import org.eclipse.equinox.p2.engine.IProfile; |
29 import org.eclipse.equinox.p2.engine.IProfileRegistry; |
38 import org.eclipse.equinox.p2.engine.IProfileRegistry; |
30 import org.eclipse.equinox.p2.metadata.IInstallableUnit; |
39 import org.eclipse.equinox.p2.metadata.IInstallableUnit; |
31 import org.eclipse.equinox.p2.operations.ProvisioningSession; |
40 import org.eclipse.equinox.p2.operations.ProvisioningSession; |
32 import org.eclipse.equinox.p2.query.IQueryResult; |
41 import org.eclipse.equinox.p2.query.IQueryResult; |
33 import org.eclipse.equinox.p2.query.QueryUtil; |
42 import org.eclipse.equinox.p2.query.QueryUtil; |
34 import org.eclipse.equinox.p2.ui.ProvisioningUI; |
43 import org.eclipse.equinox.p2.ui.ProvisioningUI; |
|
44 import org.eclipse.osgi.service.datalocation.Location; |
35 |
45 |
36 class P2Utils { |
46 import com.nokia.carbide.discovery.ui.Activator; |
|
47 import com.nokia.carbide.discovery.ui.Messages; |
|
48 |
|
49 public class P2Utils { |
37 |
50 |
38 public static Collection<URI> getKnownRepositories() { |
51 public static Collection<URI> getKnownRepositories() { |
39 ProvisioningUI provisioningUI = ProvisioningUI.getDefaultUI(); |
52 ProvisioningUI provisioningUI = ProvisioningUI.getDefaultUI(); |
40 ProvisioningSession session = provisioningUI.getSession(); |
53 ProvisioningSession session = provisioningUI.getSession(); |
41 URI[] uris = provisioningUI.getRepositoryTracker().getKnownRepositories(session); |
54 URI[] uris = provisioningUI.getRepositoryTracker().getKnownRepositories(session); |
59 } |
72 } |
60 } |
73 } |
61 } |
74 } |
62 return infos; |
75 return infos; |
63 } |
76 } |
|
77 |
|
78 public static void writeFeaturesToFile(File file) { |
|
79 if (!file.exists()) { |
|
80 Collection<FeatureInfo> initialFeatures = P2Utils.getInstalledFeatures(new NullProgressMonitor()); |
|
81 ImportExportData data = new ImportExportData(false, Collections.<URI>emptyList(), initialFeatures); |
|
82 try { |
|
83 Streamer.writeToXML(new FileOutputStream(file), data); |
|
84 } catch (Exception e) { |
|
85 Activator.logError(MessageFormat.format( |
|
86 Messages.P2Utils_WriteInitialFeaturesFileError, file), e); |
|
87 } |
|
88 } |
|
89 } |
|
90 |
|
91 public static File getInitialFeaturesFile() { |
|
92 Location installLocation = Platform.getInstallLocation(); |
|
93 URL url = installLocation.getURL(); |
|
94 IPath path = new Path(url.getPath()); |
|
95 path = path.append("configuration/initialFeatures.xml"); //$NON-NLS-1$ |
|
96 File file = path.toFile(); |
|
97 return file; |
|
98 } |
64 } |
99 } |