Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 92420 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/pde/internal/ui/build/ProductExportJob.java (-24 / +34 lines)
Lines 37-43 Link Here
37
37
38
	private String fRoot;
38
	private String fRoot;
39
39
40
	public ProductExportJob(IProductModel model, String productRoot, boolean toDirectory, boolean exportSource, String destination, String zipFileName) {
40
	public ProductExportJob(IProductModel model, String productRoot, boolean toDirectory, boolean exportSource, String destination, String zipFileName, String[][] targets) {
41
		super(PDEUIMessages.ProductExportJob_jobName); //$NON-NLS-1$
41
		super(PDEUIMessages.ProductExportJob_jobName); //$NON-NLS-1$
42
		fProduct = model.getProduct();
42
		fProduct = model.getProduct();
43
		fExportToDirectory = toDirectory;
43
		fExportToDirectory = toDirectory;
Lines 45-50 Link Here
45
		fDestinationDirectory = destination;
45
		fDestinationDirectory = destination;
46
		fZipFilename = zipFileName;
46
		fZipFilename = zipFileName;
47
		fRoot = productRoot;
47
		fRoot = productRoot;
48
		ftargets = targets;
49
		// TODO remove when there is UI to set ftargets
50
		if (ftargets == null)
51
			ftargets = new String[][] { { "linux", "gtk", "x86", ""} , {"win32", "win32", "x86", ""} };
48
		if (fProduct.useFeatures()) {
52
		if (fProduct.useFeatures()) {
49
			fItems = getFeatureModels();
53
			fItems = getFeatureModels();
50
		} else {
54
		} else {
Lines 82-111 Link Here
82
86
83
	protected void doExports(IProgressMonitor monitor)
87
	protected void doExports(IProgressMonitor monitor)
84
			throws InvocationTargetException, CoreException {
88
			throws InvocationTargetException, CoreException {
85
		try {
89
		String[][] configurations = ftargets;
86
            monitor.beginTask("", 10);
90
		if (configurations == null)
87
			// create a feature to wrap all plug-ins and features
91
			configurations = new String[][] { {TargetPlatform.getOS(), TargetPlatform.getWS(), TargetPlatform.getOSArch(), TargetPlatform.getNL() } };
88
			String featureID = "org.eclipse.pde.container.feature"; //$NON-NLS-1$
92
		for (int i = 0; i < configurations.length; i++) {
89
			fFeatureLocation = fBuildTempLocation + File.separator + featureID;
93
			try {
90
			createFeature(featureID, fFeatureLocation);
94
				String[] config = configurations[i];
91
			createBuildPropertiesFile(fFeatureLocation);
95
	            monitor.beginTask("", 10);
92
			createConfigIniFile();
96
				// create a feature to wrap all plug-ins and features
93
			createEclipseProductFile();
97
				String featureID = "org.eclipse.pde.container.feature"; //$NON-NLS-1$
94
			createLauncherIniFile();
98
				fFeatureLocation = fBuildTempLocation + File.separator + featureID;
95
			doExport(featureID, 
99
				createFeature(featureID, fFeatureLocation, config);
96
                        null, 
100
				createBuildPropertiesFile(fFeatureLocation);
97
                        fFeatureLocation, 
101
				createConfigIniFile();
98
                        TargetPlatform.getOS(),
102
				createEclipseProductFile();
99
                        TargetPlatform.getWS(), 
103
				createLauncherIniFile();
100
                        TargetPlatform.getOSArch(), 
104
				doExport(featureID, 
101
                        new SubProgressMonitor(monitor, 7));
105
	                        null, 
102
		} catch (IOException e) {
106
	                        fFeatureLocation, 
103
		} finally {
107
	                        config[0], 
104
			for (int i = 0; i < fItems.length; i++) {
108
	                        config[1], 
105
				deleteBuildFiles((IModel)fItems[i]);
109
	                        config[2], 
110
	                        new SubProgressMonitor(monitor, 7));
111
			} catch (IOException e) {
112
			} finally {
113
				for (int j = 0; j < fItems.length; j++) {
114
					deleteBuildFiles((IModel)fItems[j]);
115
				}
116
				cleanup(ftargets == null ? null : configurations[i], new SubProgressMonitor(monitor, 3));
117
				monitor.done();
106
			}
118
			}
107
			cleanup(new SubProgressMonitor(monitor, 3));
108
			monitor.done();
109
		}
119
		}
110
	}
120
	}
111
	
121
	
(-)src/org/eclipse/pde/internal/ui/wizards/exports/FeatureExportJob.java (-37 / +96 lines)
Lines 21-26 Link Here
21
import org.eclipse.core.runtime.jobs.*;
21
import org.eclipse.core.runtime.jobs.*;
22
import org.eclipse.jdt.core.*;
22
import org.eclipse.jdt.core.*;
23
import org.eclipse.jface.dialogs.*;
23
import org.eclipse.jface.dialogs.*;
24
import org.eclipse.osgi.service.resolver.BundleDescription;
25
import org.eclipse.osgi.service.resolver.State;
24
import org.eclipse.osgi.util.NLS;
26
import org.eclipse.osgi.util.NLS;
25
import org.eclipse.pde.core.*;
27
import org.eclipse.pde.core.*;
26
import org.eclipse.pde.core.build.*;
28
import org.eclipse.pde.core.build.*;
Lines 60-65 Link Here
60
	
62
	
61
	protected static String FEATURE_POST_PROCESSING = "features.postProcessingSteps.properties"; //$NON-NLS-1$
63
	protected static String FEATURE_POST_PROCESSING = "features.postProcessingSteps.properties"; //$NON-NLS-1$
62
	protected static String PLUGIN_POST_PROCESSING = "plugins.postProcessingSteps.properties"; //$NON-NLS-1$
64
	protected static String PLUGIN_POST_PROCESSING = "plugins.postProcessingSteps.properties"; //$NON-NLS-1$
65
	protected String[][] ftargets;
63
66
64
	class SchedulingRule implements ISchedulingRule {
67
	class SchedulingRule implements ISchedulingRule {
65
68
Lines 84-90 Link Here
84
		setRule(new SchedulingRule());
87
		setRule(new SchedulingRule());
85
	}
88
	}
86
	
89
	
87
	public FeatureExportJob(boolean toDirectory, boolean useJarFormat, boolean exportSource, String destination, String zipFileName, Object[] items, String[] signingInfo, String[] jnlpInfo) {
90
	public FeatureExportJob(boolean toDirectory, boolean useJarFormat, boolean exportSource, String destination, String zipFileName, Object[] items, String[] signingInfo, String[] jnlpInfo, String[][] targets) {
88
		super(PDEUIMessages.FeatureExportJob_name); //$NON-NLS-1$
91
		super(PDEUIMessages.FeatureExportJob_name); //$NON-NLS-1$
89
		fExportToDirectory = toDirectory;
92
		fExportToDirectory = toDirectory;
90
		fUseJarFormat = useJarFormat;
93
		fUseJarFormat = useJarFormat;
Lines 94-105 Link Here
94
		fItems = items;
97
		fItems = items;
95
		fSigningInfo = signingInfo;
98
		fSigningInfo = signingInfo;
96
		fJnlpInfo = jnlpInfo;
99
		fJnlpInfo = jnlpInfo;
100
		ftargets = targets;
101
		// TODO remove when there is UI to set ftargets
102
		if (ftargets == null)
103
			ftargets = new String[][] { { "linux", "gtk", "x86", ""} , {"win32", "win32", "x86", ""} };
97
		fBuildTempLocation = PDEPlugin.getDefault().getStateLocation().append("temp").toString(); //$NON-NLS-1$
104
		fBuildTempLocation = PDEPlugin.getDefault().getStateLocation().append("temp").toString(); //$NON-NLS-1$
98
		setRule(new SchedulingRule());
105
		setRule(new SchedulingRule());
99
	}
106
	}
100
107
101
	public FeatureExportJob(boolean toDirectory, boolean useJarFormat, boolean exportSource, String destination, String zipFileName, Object[] items) {
108
	public FeatureExportJob(boolean toDirectory, boolean useJarFormat, boolean exportSource, String destination, String zipFileName, Object[] items) {
102
		this(toDirectory, useJarFormat, exportSource, destination, zipFileName, items, null, null);
109
		this(toDirectory, useJarFormat, exportSource, destination, zipFileName, items, null, null, null);
103
	}
110
	}
104
111
105
	/*
112
	/*
Lines 149-178 Link Here
149
	protected void doExports(IProgressMonitor monitor) throws InvocationTargetException, CoreException {
156
	protected void doExports(IProgressMonitor monitor) throws InvocationTargetException, CoreException {
150
		createDestination();
157
		createDestination();
151
		monitor.beginTask("", fItems.length + 1); //$NON-NLS-1$
158
		monitor.beginTask("", fItems.length + 1); //$NON-NLS-1$
152
		try {
159
		String[][] configurations = ftargets;
153
			for (int i = 0; i < fItems.length; i++) {
160
		if (configurations == null)
154
				if (monitor.isCanceled())
161
			configurations = new String[][] { null };
155
					throw new OperationCanceledException();
162
		for (int i = 0; i < configurations.length; i++) {
156
				IFeatureModel model = (IFeatureModel) fItems[i];
163
			try {
157
				try {
164
				for (int j = 0; j < fItems.length; j++) {
158
					String location = model.getInstallLocation();
165
					if (monitor.isCanceled())
159
					if (fUseJarFormat) {
166
						throw new OperationCanceledException();
160
						createPostProcessingFile(new File(location, FEATURE_POST_PROCESSING));
167
					doExport((IFeatureModel) fItems[j], configurations[i], monitor);
161
						createPostProcessingFile(new File(location, PLUGIN_POST_PROCESSING));
162
					}
163
					IFeature feature = model.getFeature();
164
					String id = feature.getId();
165
					String os = getOS(feature);
166
					String ws = getWS(feature);
167
					String arch = getOSArch(feature);
168
					doExport(id, model.getFeature().getVersion(), model.getInstallLocation(), os, ws, arch, new SubProgressMonitor(monitor, 1));
169
				} finally {
170
					deleteBuildFiles(model);
171
				}
168
				}
169
			} finally {
170
				cleanup(configurations[i], new SubProgressMonitor(monitor, 1));
171
				monitor.done();
172
			}
173
		}
174
	}
175
176
	private void doExport(IFeatureModel model, String os, String ws, String arch, IProgressMonitor monitor) throws CoreException, InvocationTargetException {
177
		try {
178
			String location = model.getInstallLocation();
179
			if (fUseJarFormat) {
180
				createPostProcessingFile(new File(location, FEATURE_POST_PROCESSING));
181
				createPostProcessingFile(new File(location, PLUGIN_POST_PROCESSING));
172
			}
182
			}
183
			IFeature feature = model.getFeature();
184
			doExport(feature.getId(), feature.getVersion(), location, os, ws, arch, new SubProgressMonitor(monitor, 1));
173
		} finally {
185
		} finally {
174
			cleanup(new SubProgressMonitor(monitor, 1));
186
			deleteBuildFiles(model);
175
			monitor.done();
176
		}
187
		}
177
	}
188
	}
178
	
189
	
Lines 223-228 Link Here
223
		}
234
		}
224
	}
235
	}
225
236
237
	private void createDestination(String os, String ws, String arch) throws InvocationTargetException {
238
		if (!fExportToDirectory)
239
			return;
240
		File file = new File(fDestinationDirectory, os + '.' + ws + '.' + arch);
241
		if (!file.exists() || !file.isDirectory()) {
242
			if (!file.mkdirs())
243
				throw new InvocationTargetException(new Exception(PDEUIMessages.ExportWizard_badDirectory)); //$NON-NLS-1$
244
		}
245
	}
246
247
	protected void doExport(IFeatureModel model, String[] config, IProgressMonitor monitor) throws CoreException, InvocationTargetException {
248
		// TODO progress monitoring
249
		if (config == null) {
250
			IFeature feature = model.getFeature();
251
			doExport(model, getOS(feature), getWS(feature), getOSArch(feature), monitor);
252
		} else {
253
			createDestination(config[0], config[1], config[2]);
254
			doExport(model, config[0], config[1], config[2], monitor);
255
		}
256
	}
257
		
226
	protected void doExport(String featureID, String version, String featureLocation, String os, String ws, String arch, IProgressMonitor monitor) throws CoreException, InvocationTargetException {
258
	protected void doExport(String featureID, String version, String featureLocation, String os, String ws, String arch, IProgressMonitor monitor) throws CoreException, InvocationTargetException {
227
		monitor.beginTask("", 5); //$NON-NLS-1$
259
		monitor.beginTask("", 5); //$NON-NLS-1$
228
		monitor.setTaskName(PDEUIMessages.FeatureExportJob_taskName); //$NON-NLS-1$
260
		monitor.setTaskName(PDEUIMessages.FeatureExportJob_taskName); //$NON-NLS-1$
Lines 290-299 Link Here
290
			fAntBuildProperties.put(IXMLConstants.PROPERTY_COLLECTING_FOLDER, "."); //$NON-NLS-1$
322
			fAntBuildProperties.put(IXMLConstants.PROPERTY_COLLECTING_FOLDER, "."); //$NON-NLS-1$
291
			String prefix = Platform.getOS().equals("macosx") ? "." : ""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
323
			String prefix = Platform.getOS().equals("macosx") ? "." : ""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
292
			fAntBuildProperties.put(IXMLConstants.PROPERTY_ARCHIVE_PREFIX, prefix);
324
			fAntBuildProperties.put(IXMLConstants.PROPERTY_ARCHIVE_PREFIX, prefix);
293
			if (!fExportToDirectory)
325
			if (!fExportToDirectory) {
294
				fAntBuildProperties.put(IXMLConstants.PROPERTY_ARCHIVE_FULLPATH, fDestinationDirectory + File.separator + fZipFilename);
326
				String filename = fZipFilename;
295
			else
327
				if (ftargets != null) {
296
				fAntBuildProperties.put(IXMLConstants.PROPERTY_ASSEMBLY_TMP, fDestinationDirectory);
328
					int i = filename.lastIndexOf('.');
329
					filename = filename.substring(0, i) + '.' + os + '.' + ws + '.' + arch + filename.substring(i);
330
				}
331
				fAntBuildProperties.put(IXMLConstants.PROPERTY_ARCHIVE_FULLPATH, fDestinationDirectory + File.separator + filename);
332
			} else {
333
				String dir = fDestinationDirectory;
334
				if (ftargets != null)
335
					dir += File.separatorChar + os + '.' + ws + '.' + arch;
336
				fAntBuildProperties.put(IXMLConstants.PROPERTY_ASSEMBLY_TMP, dir);
337
			}
297
			fAntBuildProperties.put(IXMLConstants.PROPERTY_TAR_ARGS, ""); //$NON-NLS-1$
338
			fAntBuildProperties.put(IXMLConstants.PROPERTY_TAR_ARGS, ""); //$NON-NLS-1$
298
		}
339
		}
299
		return fAntBuildProperties;
340
		return fAntBuildProperties;
Lines 454-460 Link Here
454
			paths.add(models[i].getInstallLocation() + IPath.SEPARATOR + "feature.xml"); //$NON-NLS-1$
495
			paths.add(models[i].getInstallLocation() + IPath.SEPARATOR + "feature.xml"); //$NON-NLS-1$
455
		}
496
		}
456
497
457
		String[] plugins = TargetPlatform.createPluginPath();
498
		State state = TargetPlatform.getState();
499
		BundleDescription[] descriptions = state.getBundles();
500
		String[] plugins = new String[descriptions.length];
501
		for (int i = 0; i < descriptions.length; i++) 
502
			plugins[i] = descriptions[i].getLocation();
503
//		String[] plugins = TargetPlatform.createPluginPath();
458
		String[] features = (String[]) paths.toArray(new String[paths.size()]);
504
		String[] features = (String[]) paths.toArray(new String[paths.size()]);
459
		String[] all = new String[plugins.length + paths.size()];
505
		String[] all = new String[plugins.length + paths.size()];
460
		System.arraycopy(plugins, 0, all, 0, plugins.length);
506
		System.arraycopy(plugins, 0, all, 0, plugins.length);
Lines 481-496 Link Here
481
		return writer;
527
		return writer;
482
	}
528
	}
483
529
484
	protected void cleanup(IProgressMonitor monitor) {
530
	protected void cleanup(String[] config, IProgressMonitor monitor) {
485
        monitor.beginTask("", 2);
531
        monitor.beginTask("", 2);
532
        // TODO clear out some cached values that depend on the configuration being built.
533
        fDevProperties = null;
534
        fAntBuildProperties = null;
486
		File scriptFile = null;
535
		File scriptFile = null;
487
		try {
536
		try {
488
			scriptFile = createScriptFile();
537
			scriptFile = createScriptFile();
489
			writer = new PrintWriter(new FileWriter(scriptFile), true);
538
			writer = new PrintWriter(new FileWriter(scriptFile), true);
490
			generateHeader(writer);
539
			generateHeader(writer);
491
			generateDeleteZipTarget(writer);
540
			generateDeleteZipTarget(writer, config);
492
			generateCleanTarget(writer);
541
			generateCleanTarget(writer);
493
			boolean errors = generateZipLogsTarget(writer);
542
			boolean errors = generateZipLogsTarget(writer, config);
494
			generateClosingTag(writer);
543
			generateClosingTag(writer);
495
			writer.close();
544
			writer.close();
496
545
Lines 533-548 Link Here
533
		writer.println("</target>"); //$NON-NLS-1$
582
		writer.println("</target>"); //$NON-NLS-1$
534
	}
583
	}
535
584
536
	private void generateDeleteZipTarget(PrintWriter writer) {
585
	private String logName(String[] config) {
586
		if (config == null)
587
			return "/logs.zip";
588
		return "/logs." + config[0] + '.' + config[1] + '.' + config[2] + ".zip"; 
589
	}
590
	private void generateDeleteZipTarget(PrintWriter writer, String[] config) {
537
		writer.println("<target name=\"deleteZip\">"); //$NON-NLS-1$
591
		writer.println("<target name=\"deleteZip\">"); //$NON-NLS-1$
538
		writer.println("<delete file=\"" + fDestinationDirectory + "/logs.zip\"/>"); //$NON-NLS-1$ //$NON-NLS-2$
592
		writer.println("<delete file=\"" + fDestinationDirectory + logName(config) + "\"/>"); //$NON-NLS-1$ //$NON-NLS-2$
539
		writer.println("</target>"); //$NON-NLS-1$
593
		writer.println("</target>"); //$NON-NLS-1$
540
	}
594
	}
541
595
542
	private boolean generateZipLogsTarget(PrintWriter writer) {
596
	private boolean generateZipLogsTarget(PrintWriter writer, String[] config) {
543
		if (logFile != null && logFile.exists() && logFile.length() > 0) {
597
		if (logFile != null && logFile.exists() && logFile.length() > 0) {
544
			writer.println("<target name=\"zip.logs\">"); //$NON-NLS-1$
598
			writer.println("<target name=\"zip.logs\">"); //$NON-NLS-1$
545
			writer.println("<zip zipfile=\"" + fDestinationDirectory + "/logs.zip\" basedir=\"" + fBuildTempLocation + "/pde.logs\"/>"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
599
			writer.println("<zip zipfile=\"" + fDestinationDirectory + logName(config) + "\" basedir=\"" + fBuildTempLocation + "/pde.logs\"/>"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
546
			writer.println("</target>"); //$NON-NLS-1$
600
			writer.println("</target>"); //$NON-NLS-1$
547
			return true;
601
			return true;
548
		}
602
		}
Lines 576-582 Link Here
576
		return NLS.bind(PDEUIMessages.ExportJob_error_message, fDestinationDirectory + File.separator + "logs.zip"); //$NON-NLS-1$ //$NON-NLS-2$
630
		return NLS.bind(PDEUIMessages.ExportJob_error_message, fDestinationDirectory + File.separator + "logs.zip"); //$NON-NLS-1$ //$NON-NLS-2$
577
	}
631
	}
578
    
632
    
579
    protected void createFeature(String featureID, String featureLocation) throws IOException {
633
    protected void createFeature(String featureID, String featureLocation, String[] config) throws IOException {
580
        File file = new File(featureLocation);
634
        File file = new File(featureLocation);
581
        if (!file.exists() || !file.isDirectory())
635
        if (!file.exists() || !file.isDirectory())
582
            file.mkdirs();
636
            file.mkdirs();
Lines 587-593 Link Here
587
        writer.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); //$NON-NLS-1$
641
        writer.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); //$NON-NLS-1$
588
        writer.println("<feature id=\"" + featureID + "\" version=\"1.0\">"); //$NON-NLS-1$ //$NON-NLS-2$
642
        writer.println("<feature id=\"" + featureID + "\" version=\"1.0\">"); //$NON-NLS-1$ //$NON-NLS-2$
589
643
590
        Dictionary environment = TargetPlatform.getTargetEnvironment();
644
        Dictionary environment = new Hashtable(4);
645
        environment.put("osgi.os", config[0]);
646
        environment.put("osgi.ws", config[1]);
647
        environment.put("osgi.arch", config[2]);
648
        environment.put("osgi.nl", config[3]);
649
        	
591
        BundleContext context = PDEPlugin.getDefault().getBundleContext();
650
        BundleContext context = PDEPlugin.getDefault().getBundleContext();
592
        for (int i = 0; i < fItems.length; i++) {
651
        for (int i = 0; i < fItems.length; i++) {
593
            if (fItems[i] instanceof IPluginModelBase) {
652
            if (fItems[i] instanceof IPluginModelBase) {
(-)src/org/eclipse/pde/internal/ui/wizards/exports/FeatureExportWizard.java (-1 / +2 lines)
Lines 46-52 Link Here
46
				fPage1.getFileName(),
46
				fPage1.getFileName(),
47
				((ExportWizardPageWithTable)fPage1).getSelectedItems(),
47
				((ExportWizardPageWithTable)fPage1).getSelectedItems(),
48
				signingInfo,
48
				signingInfo,
49
				jnlpInfo);
49
				jnlpInfo,
50
				null);
50
		job.setUser(true);
51
		job.setUser(true);
51
		job.schedule();
52
		job.schedule();
52
		job.setProperty(IProgressConstants.ICON_PROPERTY, PDEPluginImages.DESC_FEATURE_OBJ);
53
		job.setProperty(IProgressConstants.ICON_PROPERTY, PDEPluginImages.DESC_FEATURE_OBJ);
(-)src/org/eclipse/pde/internal/ui/wizards/exports/PluginExportJob.java (-3 / +4 lines)
Lines 40-46 Link Here
40
			String zipFileName,
40
			String zipFileName,
41
			Object[] items,
41
			Object[] items,
42
			String[] signingInfo) {
42
			String[] signingInfo) {
43
			super(toDirectory, useJarFormat, exportSource, destination, zipFileName, items, signingInfo, null);
43
			super(toDirectory, useJarFormat, exportSource, destination, zipFileName, items, signingInfo, null, null);
44
		}
44
		}
45
45
46
	/* (non-Javadoc)
46
	/* (non-Javadoc)
Lines 53-59 Link Here
53
			// create a feature to contain all plug-ins
53
			// create a feature to contain all plug-ins
54
			String featureID = "org.eclipse.pde.container.feature"; //$NON-NLS-1$
54
			String featureID = "org.eclipse.pde.container.feature"; //$NON-NLS-1$
55
			fFeatureLocation = fBuildTempLocation + File.separator + featureID;
55
			fFeatureLocation = fBuildTempLocation + File.separator + featureID;
56
			createFeature(featureID, fFeatureLocation);
56
			String[] config = new String[] {TargetPlatform.getOS(), TargetPlatform.getWS(), TargetPlatform.getOSArch(), TargetPlatform.getNL() };
57
			createFeature(featureID, fFeatureLocation, config);
57
			createBuildPropertiesFile(fFeatureLocation);
58
			createBuildPropertiesFile(fFeatureLocation);
58
			if (fUseJarFormat)
59
			if (fUseJarFormat)
59
				createPostProcessingFile(new File(fFeatureLocation, PLUGIN_POST_PROCESSING));
60
				createPostProcessingFile(new File(fFeatureLocation, PLUGIN_POST_PROCESSING));
Lines 65-71 Link Here
65
				if (fItems[i] instanceof IPluginModelBase)
66
				if (fItems[i] instanceof IPluginModelBase)
66
					deleteBuildFiles((IPluginModelBase)fItems[i]);
67
					deleteBuildFiles((IPluginModelBase)fItems[i]);
67
			}
68
			}
68
			cleanup(new SubProgressMonitor(monitor, 3));
69
			cleanup(null, new SubProgressMonitor(monitor, 3));
69
			monitor.done();
70
			monitor.done();
70
		}
71
		}
71
	}
72
	}
(-)src/org/eclipse/pde/internal/ui/wizards/exports/ProductExportWizard.java (-1 / +2 lines)
Lines 62-68 Link Here
62
										page.doExportToDirectory(),
62
										page.doExportToDirectory(),
63
										page.doExportSource(), 
63
										page.doExportSource(), 
64
										page.getDestination(), 
64
										page.getDestination(), 
65
										page.getFileName());
65
										page.getFileName(),
66
										null);
66
		job.setUser(true);
67
		job.setUser(true);
67
		job.schedule();
68
		job.schedule();
68
		job.setProperty(IProgressConstants.ICON_PROPERTY, PDEPluginImages.DESC_FEATURE_OBJ);
69
		job.setProperty(IProgressConstants.ICON_PROPERTY, PDEPluginImages.DESC_FEATURE_OBJ);

Return to bug 92420