All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.kuali.student.contract.mojo.KSContractDocMojo Maven / Gradle / Ivy

package org.kuali.student.contract.mojo;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Collection;
import java.util.List;

import org.apache.maven.artifact.DependencyResolutionRequiredException;
import org.apache.maven.model.Dependency;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
import org.joda.time.DateTime;
import org.kuali.student.common.mojo.AbstractKSMojo;
import org.kuali.student.contract.model.ServiceContractModel;
import org.kuali.student.contract.model.impl.ServiceContractModelCache;
import org.kuali.student.contract.model.impl.ServiceContractModelQDoxLoader;
import org.kuali.student.contract.model.util.DateUtility;
import org.kuali.student.contract.model.util.HtmlContractWriter;
import org.kuali.student.contract.model.validation.ServiceContractModelValidator;

/**
 * The plugin entrypoint which is used to generate the html wiki doc of the service interface.
 * @goal kscontractdoc
 * @phase site
 * @requiresProject true
 */
public class KSContractDocMojo extends AbstractKSMojo {

    /**
     * @parameter expression="${htmlDirectory}" default-value="${project.build.directory}/site/services/contractdocs"
     */
    private File htmlDirectory;

    public File getHtmlDirectory() {
        return htmlDirectory;
    }
  
    public void setHtmlDirectory(File htmlDirectory) {
        this.htmlDirectory = htmlDirectory;
    }

    @Override
    public void execute() throws MojoExecutionException {
    	
    	MavenProject project = (MavenProject) getPluginContext().get("project");
    	
    	String formattedDate = DateUtility.asYMDHMInEasternTimeZone(new DateTime());
    	
        ServiceContractModel model = null;
        HtmlContractWriter writer = null;
        getLog().info("publishing wiki contracts");
        model = this.getModel();
        this.validate(model);
        getLog().info("publishing to = " + this.htmlDirectory.toString());
        writer = new HtmlContractWriter(htmlDirectory.toString(), model);
        writer.write(project.getVersion(), formattedDate);


    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy