blob: 07eeaf056f1d11bfafddf9580e6122a88ad19a8b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007, 2011 IBM Corporation 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:
* IBM Corporation - initial API and implementation
* Genuitec, LLC - added license support
* Code 9 - Ongoing development
# SAP AG - consolidation of publishers for PDE formats
*******************************************************************************/
package org.eclipse.equinox.p2.publisher.eclipse;
import java.util.ArrayList;
import java.util.Map;
import java.util.Map.Entry;
import org.eclipse.equinox.internal.p2.metadata.InstallableUnit;
import org.eclipse.equinox.p2.metadata.IArtifactKey;
import org.eclipse.equinox.p2.metadata.IInstallableUnit;
import org.eclipse.equinox.p2.publisher.IPublisherInfo;
import org.eclipse.equinox.p2.publisher.PublisherInfo;
import org.eclipse.equinox.spi.p2.publisher.PublisherHelper;
import org.eclipse.osgi.service.resolver.BundleDescription;
public class EclipsePublisherHelper {
public static IInstallableUnit[] createEclipseIU(BundleDescription bd, boolean isFolderPlugin, IArtifactKey key, Map<String, String> extraProperties) {
ArrayList<IInstallableUnit> iusCreated = new ArrayList<IInstallableUnit>(1);
IPublisherInfo info = new PublisherInfo();
String shape = isFolderPlugin ? IBundleShapeAdvice.DIR : IBundleShapeAdvice.JAR;
info.addAdvice(new BundleShapeAdvice(bd.getSymbolicName(), PublisherHelper.fromOSGiVersion(bd.getVersion()), shape));
IInstallableUnit iu = BundlesAction.createBundleIU(bd, key, info);
addExtraProperties(iu, extraProperties);
iusCreated.add(iu);
return (iusCreated.toArray(new IInstallableUnit[iusCreated.size()]));
}
private static void addExtraProperties(IInstallableUnit iiu, Map<String, String> extraProperties) {
if (iiu instanceof InstallableUnit) {
InstallableUnit iu = (InstallableUnit) iiu;
for (Entry<String, String> entry : extraProperties.entrySet()) {
iu.setProperty(entry.getKey(), entry.getValue());
}
}
}
}