The handling of the filter-string is rather unusable now:
Start-"(" is only added if filterManifest==true.
If filterManifest==true and addMavenDescriptor==false, the filter-
string starts with a ",".
No matter the value of filterManifest and addMavenDescriptor, a ")" is
always added.
I suggest collecting the 3 potential filter-entries: "!META-INF/
MANIFEST.MF", "!META-INF/maven/**", inc.filter in a list and building
up the filter string depending upon the number of entries in the list.
Something like this:
String getFilter(...) {
List<String> filters = getFilters(...);
if (filters.isEmpty) return "";
StringBuilder sb = new StringBuilder("(");
String sep = "";
String separator=",";
for (String filter : filters) {
sb.append(sep).append(filter);
sep = separator;
}
return sb.append(")").toString();
}
List<String> getFilters(...) {
List<String> result = new ArrayList<String>();
if(filterMainfest) result.add("!META-INF/MANIFEST.MF");
if(!addMavenDescriptor) result.add("!META-INF/maven/**");
if(inc.filter!=null) result.add(inc.filter);
return result;
}
/Henrik