diff --git a/maven-confluence-core/src/main/java/org/bsc/confluence/model/Site.java b/maven-confluence-core/src/main/java/org/bsc/confluence/model/Site.java index 0ce80f61..5607d16f 100644 --- a/maven-confluence-core/src/main/java/org/bsc/confluence/model/Site.java +++ b/maven-confluence-core/src/main/java/org/bsc/confluence/model/Site.java @@ -4,6 +4,8 @@ */ package org.bsc.confluence.model; +import static java.lang.String.format; + import java.io.File; import java.nio.file.Files; import java.nio.file.Path; @@ -11,6 +13,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Optional; +import java.util.regex.Pattern; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; @@ -67,9 +70,14 @@ public void setSpaceKey(String spaceKey) { */ @XmlType(namespace = Site.NAMESPACE) protected static class Source { - + private static final Pattern lead_trail_spaces = Pattern.compile("^(.*)\\s+$|^\\s+(.*)"); + protected transient final Site site; + public Source() { + this.site = _SITE.peek(); + } + private java.net.URI uri; @XmlAttribute @@ -102,13 +110,11 @@ public final Optional optName() { } public void setName(String name) { + if( lead_trail_spaces.matcher(name).matches() ) + throw new IllegalArgumentException(format("name [%s] is not valid!", name)); this.name = name; } - public Source() { - this.site = _SITE.peek(); - } - @Override public String toString() { return getClass().getSimpleName() + ": " + getName() + " - " + String.valueOf(getUri());