package bndtools.model.repo; import org.bndtools.utils.repos.RepoUtils; import aQute.bnd.build.model.clauses.VersionedClause; import aQute.bnd.header.Attrs; import aQute.bnd.osgi.Constants; public class RepositoryBundleUtils { private static final String VERSION_LATEST = "latest"; public static VersionedClause convertRepoBundle(RepositoryBundle bundle) { Attrs attribs = new Attrs(); if (RepoUtils.isWorkspaceRepo(bundle.getRepo())) { attribs.put(Constants.VERSION_ATTRIBUTE, VERSION_LATEST); } return new VersionedClause(bundle.getBsn(), attribs); } public static VersionedClause convertRepoBundleVersion(RepositoryBundleVersion bundleVersion, DependencyPhase phase) { Attrs attribs = new Attrs(); if (RepoUtils.isWorkspaceRepo(bundleVersion.getParentBundle().getRepo())) attribs.put(Constants.VERSION_ATTRIBUTE, VERSION_LATEST); else { StringBuilder builder = new StringBuilder(); builder.append(bundleVersion.getVersion().getMajor()); builder.append('.').append(bundleVersion.getVersion().getMinor()); if (phase != DependencyPhase.Build) builder.append('.').append(bundleVersion.getVersion().getMicro()); attribs.put(Constants.VERSION_ATTRIBUTE, builder.toString()); } return new VersionedClause(bundleVersion.getParentBundle().getBsn(), attribs); } }