Package org.bndtools.core.templates.project

Source Code of org.bndtools.core.templates.project.APITemplate

package org.bndtools.core.templates.project;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import org.bndtools.api.BndProjectResource;
import org.bndtools.api.IBndProject;
import org.bndtools.api.IProjectTemplate;
import org.bndtools.api.ProjectPaths;

import aQute.bnd.build.model.BndEditModel;
import aQute.bnd.build.model.clauses.ExportedPackage;
import aQute.bnd.build.model.clauses.VersionedClause;
import aQute.bnd.header.Attrs;

public class APITemplate implements IProjectTemplate {

    public void modifyInitialBndModel(BndEditModel model, String projectName, ProjectPaths projectPaths) {
        model.setExportedPackages(Arrays.asList(new ExportedPackage[] {
            new ExportedPackage(projectName, new Attrs())
        }));

        // Bundle-Version: 1.0.0
        model.setBundleVersion("1.0.0.${tstamp}");

        // -buildpath
        List<VersionedClause> buildPath = new ArrayList<VersionedClause>();
        List<VersionedClause> tmp;
        tmp = model.getBuildPath();
        if (tmp != null)
            buildPath.addAll(tmp);
        buildPath.add(new VersionedClause("biz.aQute.bnd.annotation", new Attrs()));
        buildPath.add(new VersionedClause("${junit}", new Attrs()));
        model.setBuildPath(buildPath);
    }

    public void modifyInitialBndProject(IBndProject project, String projectName, ProjectPaths projectPaths) {
        String src = projectPaths.getSrc();
        String pkgPath = projectName.replaceAll("\\.", "/");

        Map<String,String> replaceRegularExpressions = new LinkedHashMap<String,String>();
        replaceRegularExpressions.put("@package@", projectName);

        project.addResource(src + "/" + pkgPath + "/ExampleProviderInterface.java", new BndProjectResource(APITemplate.class.getResource("ExampleProviderInterface.java.txt"), replaceRegularExpressions));
        project.addResource(src + "/" + pkgPath + "/ExampleConsumerInterface.java", new BndProjectResource(APITemplate.class.getResource("ExampleConsumerInterface.java.txt"), replaceRegularExpressions));
        project.addResource(src + "/" + pkgPath + "/packageinfo", new BndProjectResource(APITemplate.class.getResource("packageinfo-template.txt"), null));
    }

    public boolean enableTestSourceFolder() {
        return true;
    }
}
TOP

Related Classes of org.bndtools.core.templates.project.APITemplate

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.