package org.bndtools.headless.build.manager.api; import java.io.File; import java.util.Collection; import java.util.List; import java.util.Set; import org.bndtools.api.NamedPlugin; import org.osgi.annotation.versioning.ProviderType; /** * <p> * The interface of a headless build manager. * </p> * <p> * Its purpose is to allow bndtools to setup headless build files for projects. * </p> */ @ProviderType public interface HeadlessBuildManager { /** * @return an unmodifiable collection containing the information for all plugins */ Collection<NamedPlugin> getAllPluginsInformation(); /** * Setup/remove files enabling headless build of a project. * * @param plugins * the plugins to involve in adding/removing the headless build of a project. Usually only the plugins * that are enabled through the preferences should be involved: it is strongly advised to get these * through {@link BndPreferences#getHeadlessBuildPluginsEnabled(HeadlessBuildPluginTracker, Set)} (the * burden is on the caller of this method to avoid class cycles). * @param cnf * true when the project directory is that of the cnf project * @param projectDir * the project directory * @param add * true to add/create the files, false to remove them * @param enabledIgnorePlugins * set with enabled version control ignore plugins */ public void setup(Set<String> plugins, boolean cnf, File projectDir, boolean add, Set<String> enabledIgnorePlugins, List<String> warnings); @Deprecated public void setup(Set<String> plugins, boolean cnf, File projectDir, boolean add, Set<String> enabledIgnorePlugins); }