| /******************************************************************************* |
| * Copyright (c) 2008 Code 9 and others. All rights reserved. This |
| * program and the accompanying materials are made available under the terms of |
| * the Eclipse Public License v1.0 which accompanies this distribution, and is |
| * available at http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Code 9 - initial API and implementation |
| * IBM - ongoing development |
| ******************************************************************************/ |
| package org.eclipse.equinox.p2.publisher.eclipse; |
| |
| import org.eclipse.core.runtime.*; |
| import org.eclipse.equinox.internal.p2.publisher.eclipse.GeneratorBundleInfo; |
| import org.eclipse.equinox.p2.publisher.*; |
| import org.eclipse.equinox.spi.p2.publisher.PublisherHelper; |
| |
| /** |
| * Publish IUs that install/configure the standard things like bundles, features and source bundles |
| */ |
| public class DefaultCUsAction extends AbstractPublisherAction { |
| |
| private String flavor; |
| private int startLevel; |
| private boolean start; |
| |
| public DefaultCUsAction(IPublisherInfo info, String flavor, int startLevel, boolean start) { |
| this.flavor = flavor; |
| this.startLevel = startLevel; |
| this.start = start; |
| } |
| |
| public IStatus perform(IPublisherInfo info, IPublisherResult results, IProgressMonitor monitor) { |
| generateDefaultConfigIU(results); |
| return Status.OK_STATUS; |
| } |
| |
| protected void generateDefaultConfigIU(IPublisherResult result) { |
| // TODO this is a bit of a hack. We need to have the default IU fragment generated with code that configures |
| // and unconfigures. The Generator should be decoupled from any particular provider but it is not clear |
| // that we should add the create* methods to IGeneratorInfo... |
| // MockBundleDescription bd1 = new MockBundleDescription("defaultConfigure"); |
| // MockBundleDescription bd2 = new MockBundleDescription("defaultUnconfigure"); |
| result.addIU(BundlesAction.createDefaultBundleConfigurationUnit(createDefaultConfigurationBundleInfo(), createDefaultUnconfigurationBundleInfo(), flavor), IPublisherResult.ROOT); |
| result.addIU(PublisherHelper.createDefaultFeatureConfigurationUnit(flavor), IPublisherResult.ROOT); |
| result.addIU(PublisherHelper.createDefaultConfigurationUnitForSourceBundles(flavor), IPublisherResult.ROOT); |
| } |
| |
| protected GeneratorBundleInfo createDefaultConfigurationBundleInfo() { |
| GeneratorBundleInfo result = new GeneratorBundleInfo(); |
| result.setSymbolicName("defaultConfigure"); //$NON-NLS-1$ |
| result.setVersion("1.0.0"); //$NON-NLS-1$ |
| result.setStartLevel(startLevel); |
| result.setMarkedAsStarted(start); |
| // These should just be in the install section now |
| // result.setSpecialConfigCommands("installBundle(bundle:${artifact});"); |
| return result; |
| } |
| |
| protected GeneratorBundleInfo createDefaultUnconfigurationBundleInfo() { |
| GeneratorBundleInfo result = new GeneratorBundleInfo(); |
| result.setSymbolicName("defaultUnconfigure"); //$NON-NLS-1$ |
| result.setVersion("1.0.0"); //$NON-NLS-1$ |
| // These should just be in the uninstall section now |
| // result.setSpecialConfigCommands("uninstallBundle(bundle:${artifact});"); |
| return result; |
| } |
| |
| } |