org.bsc.maven.confluence.plugin.AbstractConfluenceMojo Maven / Gradle / Ivy
package org.bsc.maven.confluence.plugin;
import java.io.File;
import java.util.Collections;
import org.apache.maven.project.MavenProject;
import org.bsc.maven.plugin.confluence.ConfluenceUtils;
import org.codehaus.swizzle.confluence.Confluence;
import org.codehaus.swizzle.confluence.Page;
import biz.source_code.miniTemplator.MiniTemplator;
import biz.source_code.miniTemplator.MiniTemplator.VariableNotDefinedException;
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.List;
import java.util.Map;
import org.apache.maven.plugins.annotations.Parameter;
import org.bsc.maven.reporting.model.ProcessUriException;
import org.bsc.maven.reporting.model.Site;
/**
*
* @author bsorrentino
*/
public abstract class AbstractConfluenceMojo extends AbstractBaseConfluenceMojo {
/**
* additional properties pass to template processor
*/
@Parameter()
private java.util.Map properties;
/**
* Maven Project
*/
@Parameter(property = "project", readonly = true, required = true)
protected MavenProject project;
/**
* Home page template source. Template name will be used also as template source for children
*/
@Parameter(defaultValue = "${basedir}/src/site/confluence/template.wiki")
protected java.io.File templateWiki;
/**
* attachment folder
*/
@Parameter(defaultValue = "${basedir}/src/site/confluence/attachments")
private java.io.File attachmentFolder;
/**
* children folder
*/
@Parameter(defaultValue = "${basedir}/src/site/confluence/children")
private java.io.File childrenFolder;
/**
* During publish of documentation related to a new release, if it's true, the pages related to SNAPSHOT will be removed
*/
@Parameter(property = "confluence.removeSnapshots", required = false, defaultValue = "false")
protected boolean removeSnapshots = false;
/**
* Labels to add
*/
@Parameter()
java.util.List labels;
/**
* Confluence Page Title
* @since 3.1.3
*/
@Parameter(alias="title", property = "project.build.finalName", required = false)
private String title;
/**
* Children files extension
* @since 3.2.1
*/
@Parameter(property = "wikiFilesExt", required = false, defaultValue=".wiki")
private String wikiFilesExt;
/**
*
*/
public AbstractConfluenceMojo() {
}
protected File getChildrenFolder() {
return childrenFolder;
}
protected File getAttachmentFolder() {
return attachmentFolder;
}
/**
*
* @return
*/
protected final String getTitle() {
return title;
}
/**
*
* @param title
*/
public void setTitle(String title) {
this.title = title;
}
/**
*
* @return
*/
public String getFileExt() {
return (wikiFilesExt.charAt(0)=='.' ) ? wikiFilesExt : ".".concat(wikiFilesExt);
}
@SuppressWarnings("unchecked")
public final java.util.Map getProperties() {
if (null == properties) {
properties = new java.util.HashMap(5);
}
return properties;
}
public MavenProject getProject() {
return project;
}
public boolean isRemoveSnapshots() {
return removeSnapshots;
}
public boolean isSnapshot() {
final String version = project.getVersion();
return (version != null && version.endsWith("-SNAPSHOT"));
}
public List getLabels() {
if( labels==null ) {
return Collections.emptyList();
}
return labels;
}
/**
* initialize properties shared with template
*/
protected void initTemplateProperties() {
processProperties();
getProperties().put("pageTitle", getTitle());
getProperties().put("parentPageTitle", getParentPageTitle());
getProperties().put("artifactId", project.getArtifactId());
getProperties().put("version", project.getVersion());
getProperties().put("groupId", project.getGroupId());
getProperties().put("name", project.getName());
getProperties().put("description", project.getDescription());
java.util.Properties projectProps = project.getProperties();
if( projectProps!=null ) {
for(Map.Entry
© 2015 - 2025 Weber Informatics LLC | Privacy Policy