xpp3
diff --git a/core/src/main/java/hudson/model/AbstractBuild.java b/core/src/main/java/hudson/model/AbstractBuild.java
index 858580ed948461970485befc89fb00bc78642a12..141bac16fc0cd74cd05237c3c4e8f1a3048bb9c5 100644
--- a/core/src/main/java/hudson/model/AbstractBuild.java
+++ b/core/src/main/java/hudson/model/AbstractBuild.java
@@ -88,6 +88,7 @@ import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.CheckForNull;
+import org.kohsuke.stapler.interceptor.RequirePOST;
/**
* Base implementation of {@link Run}s that build software.
@@ -1360,6 +1361,7 @@ public abstract class AbstractBuild,R extends Abs
*
* @since 1.489
*/
+ @RequirePOST
public synchronized HttpResponse doStop() throws IOException, ServletException {
Executor e = getExecutor();
if (e==null)
diff --git a/core/src/main/java/hudson/model/AbstractProject.java b/core/src/main/java/hudson/model/AbstractProject.java
index d2d64a6f469151022c618ed591727899ec68956a..e6b606b72c79b76fda2ed23f3f6183ee2d6208db 100644
--- a/core/src/main/java/hudson/model/AbstractProject.java
+++ b/core/src/main/java/hudson/model/AbstractProject.java
@@ -1752,10 +1752,17 @@ public abstract class AbstractProject
,R extends A
*/
public void doBuild( StaplerRequest req, StaplerResponse rsp, @QueryParameter TimeDuration delay ) throws IOException, ServletException {
if (delay==null) delay=new TimeDuration(getQuietPeriod());
- BuildAuthorizationToken.checkPermission(this, authToken, req, rsp);
// if a build is parameterized, let that take over
ParametersDefinitionProperty pp = getProperty(ParametersDefinitionProperty.class);
+ if (pp != null && !req.getMethod().equals("POST")) {
+ // show the parameter entry form.
+ req.getView(pp, "index.jelly").forward(req, rsp);
+ return;
+ }
+
+ BuildAuthorizationToken.checkPermission(this, authToken, req, rsp);
+
if (pp != null) {
pp._doBuild(req,rsp,delay);
return;
@@ -1765,7 +1772,7 @@ public abstract class AbstractProject
,R extends A
throw HttpResponses.error(SC_INTERNAL_SERVER_ERROR,new IOException(getFullName()+" is not buildable"));
Jenkins.getInstance().getQueue().schedule(this, (int)delay.getTime(), getBuildCause(req));
- rsp.forwardToPreviousPage(req);
+ rsp.sendRedirect(".");
}
/**
@@ -1825,12 +1832,13 @@ public abstract class AbstractProject
,R extends A
public void doPolling( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException {
BuildAuthorizationToken.checkPermission(this, authToken, req, rsp);
schedulePolling();
- rsp.forwardToPreviousPage(req);
+ rsp.sendRedirect(".");
}
/**
* Cancels a scheduled build.
*/
+ @RequirePOST
public void doCancelQueue( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException {
checkPermission(ABORT);
@@ -1906,6 +1914,13 @@ public abstract class AbstractProject
,R extends A
triggers = buildDescribable(req, Trigger.for_(this));
for (Trigger t : triggers)
t.start(this,true);
+
+ for (Publisher _t : Descriptor.newInstancesFromHeteroList(req, json, "publisher", Jenkins.getInstance().getExtensionList(BuildTrigger.DescriptorImpl.class))) {
+ BuildTrigger t = (BuildTrigger) _t;
+ for (AbstractProject downstream : t.getChildProjects(this)) {
+ downstream.checkPermission(BUILD);
+ }
+ }
}
/**
diff --git a/core/src/main/java/hudson/model/Api.java b/core/src/main/java/hudson/model/Api.java
index 30772661b999e3d7370fbd1af2274d8164563662..5bb9b8f8af1f6383551a0c7bc26eecb20197f485 100644
--- a/core/src/main/java/hudson/model/Api.java
+++ b/core/src/main/java/hudson/model/Api.java
@@ -45,6 +45,7 @@ import java.io.IOException;
import java.io.OutputStream;
import java.io.StringReader;
import java.io.StringWriter;
+import java.net.HttpURLConnection;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -153,15 +154,14 @@ public class Api extends AbstractModelObject {
OutputStream o = rsp.getCompressedOutputStream(req);
try {
- if(result instanceof CharacterData) {
- rsp.setContentType("text/plain;charset=UTF-8");
- o.write(((CharacterData)result).getText().getBytes("UTF-8"));
- return;
- }
-
- if(result instanceof String || result instanceof Number || result instanceof Boolean) {
- rsp.setContentType("text/plain;charset=UTF-8");
- o.write(result.toString().getBytes("UTF-8"));
+ if (result instanceof CharacterData || result instanceof String || result instanceof Number || result instanceof Boolean) {
+ if (INSECURE) {
+ rsp.setContentType("text/plain;charset=UTF-8");
+ String text = result instanceof CharacterData ? ((CharacterData) result).getText() : result.toString();
+ o.write(text.getBytes("UTF-8"));
+ } else {
+ rsp.sendError(HttpURLConnection.HTTP_FORBIDDEN, "primitive XPath result sets forbidden; can use -Dhudson.model.Api.INSECURE=true if you run without security");
+ }
return;
}
@@ -188,8 +188,12 @@ public class Api extends AbstractModelObject {
* Exposes the bean as JSON.
*/
public void doJson(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException {
+ if (INSECURE || req.getParameter("jsonp") == null) {
setHeaders(rsp);
- rsp.serveExposedBean(req,bean, Flavor.JSON);
+ rsp.serveExposedBean(req,bean, Flavor.JSON);
+ } else {
+ rsp.sendError(HttpURLConnection.HTTP_FORBIDDEN, "jsonp forbidden; can use -Dhudson.model.Api.INSECURE=true if you run without security");
+ }
}
/**
@@ -207,4 +211,6 @@ public class Api extends AbstractModelObject {
private static final Logger LOGGER = Logger.getLogger(Api.class.getName());
private static final ModelBuilder MODEL_BUILDER = new ModelBuilder();
+ private static final boolean INSECURE = "true".equals(System.getProperty("hudson.model.Api.INSECURE"));
+
}
diff --git a/core/src/main/java/hudson/model/BuildAuthorizationToken.java b/core/src/main/java/hudson/model/BuildAuthorizationToken.java
index be55eadb89174c749c1a068ca840d456747831c8..ddb92839256cc4a3865d785a8e779d89a49af203 100644
--- a/core/src/main/java/hudson/model/BuildAuthorizationToken.java
+++ b/core/src/main/java/hudson/model/BuildAuthorizationToken.java
@@ -31,7 +31,9 @@ import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
import java.io.IOException;
+import jenkins.security.ApiTokenProperty;
import org.acegisecurity.AccessDeniedException;
+import org.kohsuke.stapler.HttpResponses;
/**
* Authorization token to allow projects to trigger themselves under the secured environment.
@@ -73,6 +75,16 @@ public final class BuildAuthorizationToken {
}
project.checkPermission(AbstractProject.BUILD);
+
+ if (req.getMethod().equals("POST")) {
+ return;
+ }
+
+ if (req.getAttribute(ApiTokenProperty.class.getName()) instanceof User) {
+ return;
+ }
+
+ throw HttpResponses.forwardToView(project, "requirePOST.jelly");
}
public String getToken() {
diff --git a/core/src/main/java/hudson/model/Descriptor.java b/core/src/main/java/hudson/model/Descriptor.java
index bf8e40e992d6d13224287199433fd7c9112e4993..195c5e4afa26d6dd03caffd68f11a75f0a4f59bc 100644
--- a/core/src/main/java/hudson/model/Descriptor.java
+++ b/core/src/main/java/hudson/model/Descriptor.java
@@ -936,7 +936,10 @@ public abstract class Descriptor> implements Saveable {
for (Object o : JSONArray.fromObject(formData)) {
JSONObject jo = (JSONObject)o;
String kind = jo.getString("kind");
- items.add(find(descriptors,kind).newInstance(req,jo));
+ Descriptor d = find(descriptors, kind);
+ if (d != null) {
+ items.add(d.newInstance(req, jo));
+ }
}
}
@@ -946,7 +949,7 @@ public abstract class Descriptor> implements Saveable {
/**
* Finds a descriptor from a collection by its class name.
*/
- public static T find(Collection extends T> list, String className) {
+ public static @CheckForNull T find(Collection extends T> list, String className) {
for (T d : list) {
if(d.getClass().getName().equals(className))
return d;
@@ -960,7 +963,7 @@ public abstract class Descriptor> implements Saveable {
return null;
}
- public static Descriptor find(String className) {
+ public static @CheckForNull Descriptor find(String className) {
return find(Jenkins.getInstance().getExtensionList(Descriptor.class),className);
}
diff --git a/core/src/main/java/hudson/model/Executor.java b/core/src/main/java/hudson/model/Executor.java
index 6a7c26c000d553e362e7fc3f2f617f986a819db1..ee4eddec365ddfe6277b1e8af73a5ce1ff6841e8 100644
--- a/core/src/main/java/hudson/model/Executor.java
+++ b/core/src/main/java/hudson/model/Executor.java
@@ -57,6 +57,7 @@ import java.lang.reflect.Method;
import static hudson.model.queue.Executables.*;
import static java.util.logging.Level.FINE;
+import org.kohsuke.stapler.interceptor.RequirePOST;
/**
@@ -468,6 +469,7 @@ public class Executor extends Thread implements ModelObject {
* @deprecated as of 1.489
* Use {@link #doStop()}.
*/
+ @RequirePOST
public void doStop( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException {
doStop().generateResponse(req,rsp,this);
}
diff --git a/core/src/main/java/hudson/model/ParametersDefinitionProperty.java b/core/src/main/java/hudson/model/ParametersDefinitionProperty.java
index d87ac8199a638027efb87cfc4c6f3e76791dfc90..0cc266ce430fcfb0498dbb574411bbc7ecfaba6f 100644
--- a/core/src/main/java/hudson/model/ParametersDefinitionProperty.java
+++ b/core/src/main/java/hudson/model/ParametersDefinitionProperty.java
@@ -113,11 +113,6 @@ public class ParametersDefinitionProperty extends JobProperty, Extension
}
public Api getApi() {
- return new Api(this);
+ return new RestrictedApi(this);
}
/**
@@ -180,4 +187,45 @@ public abstract class CrumbIssuer implements Describable, Extension
}
});
}
+
+ @Restricted(NoExternalUse.class)
+ public static class RestrictedApi extends Api {
+
+ RestrictedApi(CrumbIssuer instance) {
+ super(instance);
+ }
+
+ @Override public void doXml(StaplerRequest req, StaplerResponse rsp, @QueryParameter String xpath, @QueryParameter String wrapper, @QueryParameter String tree, @QueryParameter int depth) throws IOException, ServletException {
+ String text;
+ CrumbIssuer ci = (CrumbIssuer) bean;
+ if ("/*/crumbRequestField/text()".equals(xpath)) { // old FullDuplexHttpStream
+ text = ci.getCrumbRequestField();
+ } else if ("/*/crumb/text()".equals(xpath)) { // ditto
+ text = ci.getCrumb();
+ } else if ("concat(//crumbRequestField,\":\",//crumb)".equals(xpath)) { // new FullDuplexHttpStream; Main
+ text = ci.getCrumbRequestField() + ':' + ci.getCrumb();
+ } else if ("concat(//crumbRequestField,'=',//crumb)".equals(xpath)) { // NetBeans
+ if (ci.getCrumbRequestField().startsWith(".")) {
+ text = ci.getCrumbRequestField() + '=' + ci.getCrumb();
+ } else {
+ text = null;
+ }
+ } else {
+ text = null;
+ }
+ if (text != null) {
+ OutputStream o = rsp.getCompressedOutputStream(req);
+ try {
+ rsp.setContentType("text/plain;charset=UTF-8");
+ o.write(text.getBytes("UTF-8"));
+ } finally {
+ o.close();
+ }
+ } else {
+ super.doXml(req, rsp, xpath, wrapper, tree, depth);
+ }
+ }
+
+ }
+
}
diff --git a/core/src/main/java/hudson/tasks/BuildTrigger.java b/core/src/main/java/hudson/tasks/BuildTrigger.java
index 3646b55b8e7d0f0ec151c08f2176b42be45fe49c..432b1bbb079bc06ab91dadb326ca3b74e677f6c0 100644
--- a/core/src/main/java/hudson/tasks/BuildTrigger.java
+++ b/core/src/main/java/hudson/tasks/BuildTrigger.java
@@ -319,7 +319,7 @@ public class BuildTrigger extends Recorder implements DependencyDeclarer {
/**
* Form validation method.
*/
- public FormValidation doCheck(@AncestorInPath Item project, @QueryParameter String value ) {
+ public FormValidation doCheck(@AncestorInPath Item project, @QueryParameter String value, @QueryParameter boolean upstream) {
// Require CONFIGURE permission on this project
if(!project.hasPermission(Item.CONFIGURE)) return FormValidation.ok();
@@ -334,6 +334,9 @@ public class BuildTrigger extends Recorder implements DependencyDeclarer {
AbstractProject.findNearest(projectName,project.getParent()).getRelativeNameFrom(project)));
if(!(item instanceof AbstractProject))
return FormValidation.error(Messages.BuildTrigger_NotBuildable(projectName));
+ if (!upstream && !item.hasPermission(Item.BUILD)) {
+ return FormValidation.error(Messages.BuildTrigger_you_have_no_permission_to_build_(projectName));
+ }
hasProjects = true;
}
}
diff --git a/core/src/main/java/jenkins/security/ApiTokenFilter.java b/core/src/main/java/jenkins/security/ApiTokenFilter.java
index 02a40b206c73344402ad1f264eead124ff18dc6f..630ae5ec0482b120f84f5b841883ffea191e95f1 100644
--- a/core/src/main/java/jenkins/security/ApiTokenFilter.java
+++ b/core/src/main/java/jenkins/security/ApiTokenFilter.java
@@ -51,6 +51,7 @@ public class ApiTokenFilter implements Filter {
// as the user might be passing in a real password.
SecurityContext oldContext = ACL.impersonate(u.impersonate());
try {
+ request.setAttribute(ApiTokenProperty.class.getName(), u);
chain.doFilter(request,response);
return;
} finally {
diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries.jelly b/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries.jelly
index 07a8c2809c600dcca61763059ce828be39ad1251..103f6b870a96620d1491042c66f1451f53258f06 100644
--- a/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries.jelly
+++ b/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries.jelly
@@ -50,7 +50,7 @@ THE SOFTWARE.
-
+
diff --git a/core/src/main/resources/hudson/model/AbstractItem/configure-common.jelly b/core/src/main/resources/hudson/model/AbstractItem/configure-common.jelly
index 4fe2269e12b4b5495a4f4c7cd6d198604b0fb4b5..38e8e78772e499206c0b7c49f349cecd33604560 100644
--- a/core/src/main/resources/hudson/model/AbstractItem/configure-common.jelly
+++ b/core/src/main/resources/hudson/model/AbstractItem/configure-common.jelly
@@ -63,7 +63,7 @@ THE SOFTWARE.
-
+
diff --git a/core/src/main/resources/hudson/model/AbstractProject/requirePOST.jelly b/core/src/main/resources/hudson/model/AbstractProject/requirePOST.jelly
new file mode 100644
index 0000000000000000000000000000000000000000..6979338eac5c4d16496caa36c48a6e1e68d7f41d
--- /dev/null
+++ b/core/src/main/resources/hudson/model/AbstractProject/requirePOST.jelly
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+ ${%use_post}
+
+
+
+
diff --git a/core/src/main/resources/hudson/model/AbstractProject/requirePOST.properties b/core/src/main/resources/hudson/model/AbstractProject/requirePOST.properties
new file mode 100644
index 0000000000000000000000000000000000000000..afd123b05adb2363f473504e56e3a8aa188195ec
--- /dev/null
+++ b/core/src/main/resources/hudson/model/AbstractProject/requirePOST.properties
@@ -0,0 +1,26 @@
+# The MIT License
+#
+# Copyright 2013 Jesse Glick.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+use_post=\
+ You must use POST method to trigger builds. \
+ (From scripts you may instead pass a per-project authentication token, or authenticate with your API token.) \
+ If you see this page, it may be because a plugin offered a GET link; file a bug report for that plugin.
diff --git a/core/src/main/resources/hudson/tasks/Messages.properties b/core/src/main/resources/hudson/tasks/Messages.properties
index 3f61827ddcf21fbef2481de227b5840819254323..2c0a388fa7bb9946afb875a7e6ab835d14e4050d 100644
--- a/core/src/main/resources/hudson/tasks/Messages.properties
+++ b/core/src/main/resources/hudson/tasks/Messages.properties
@@ -47,6 +47,7 @@ BuildTrigger.NoSuchProject=No such project ''{0}''. Did you mean ''{1}''?
BuildTrigger.NoProjectSpecified=No project specified
BuildTrigger.NotBuildable={0} is not buildable
BuildTrigger.Triggering=Triggering a new build of {0}
+BuildTrigger.you_have_no_permission_to_build_=You have no permission to build {0}
CommandInterpreter.CommandFailed=command execution failed
CommandInterpreter.UnableToDelete=Unable to delete script file {0}
diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly b/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly
index 9296682ca15ac3b955a6866b745951e314ce463f..6e12e9ed6eacfb245a7c2e77b73b214b3a1062cc 100644
--- a/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly
+++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly
@@ -29,8 +29,16 @@ THE SOFTWARE.
+
\ No newline at end of file
diff --git a/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries.jelly b/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries.jelly
index c368425e8e37ca42421eef100ef0e030c7ed3fe8..2c9f091bffb488e0da22804a85525388ccf60158 100644
--- a/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries.jelly
+++ b/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries.jelly
@@ -43,9 +43,7 @@ THE SOFTWARE.
diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly b/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly
index c5d99b57787c23b13d925b4c366cce5bf728140b..c21b4762af499bc32b0e1898cffb25ea1932af52 100644
--- a/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly
+++ b/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly
@@ -58,7 +58,7 @@ THE SOFTWARE.
|
-
+
|
diff --git a/core/src/main/resources/lib/hudson/buildCaption.jelly b/core/src/main/resources/lib/hudson/buildCaption.jelly
index 254d8beccb326af27c3db88a9337dec912835330..2d0befb162ed302a9c5e63b444a1f5e728ca5f1e 100644
--- a/core/src/main/resources/lib/hudson/buildCaption.jelly
+++ b/core/src/main/resources/lib/hudson/buildCaption.jelly
@@ -37,7 +37,7 @@ THE SOFTWARE.
-
+
|
diff --git a/core/src/main/resources/lib/hudson/executors.jelly b/core/src/main/resources/lib/hudson/executors.jelly
index 398a9f4a278f8a0bece54e80ad5cd9c136c4cb43..2530004a3a98be7ac31ce6539b54afd8d7abb3ae 100644
--- a/core/src/main/resources/lib/hudson/executors.jelly
+++ b/core/src/main/resources/lib/hudson/executors.jelly
@@ -91,7 +91,7 @@ THE SOFTWARE.
-
+
|
diff --git a/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger.jelly b/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger.jelly
index 5ce128e8938aaf984aad3a93410023689ed3d6eb..9c5737d82629fc99c2b32f8b2d0bf6dc3467b5b0 100644
--- a/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger.jelly
+++ b/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger.jelly
@@ -38,7 +38,7 @@ THE SOFTWARE.
diff --git a/core/src/main/resources/lib/hudson/queue.jelly b/core/src/main/resources/lib/hudson/queue.jelly
index 405844c2d8a562f750b0de858c3332a7d87dbfbc..6d5eb2e0d25d0dafeaee973e9fca060513a05ba5 100644
--- a/core/src/main/resources/lib/hudson/queue.jelly
+++ b/core/src/main/resources/lib/hudson/queue.jelly
@@ -79,7 +79,7 @@ THE SOFTWARE.
-
+
|
diff --git a/core/src/main/resources/lib/layout/stopButton.jelly b/core/src/main/resources/lib/layout/stopButton.jelly
new file mode 100644
index 0000000000000000000000000000000000000000..48cf43453c41008c7d6c2b07075e5133fa569027
--- /dev/null
+++ b/core/src/main/resources/lib/layout/stopButton.jelly
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ Creates a clickable “Stop” button.
+
+ Link target. Relative to the current page.
+
+
+ Alt text for image.
+
+
+
+
+
+
diff --git a/debian/debian/changelog b/debian/debian/changelog
index 6614bdf1daacf1364f9199c8a6fb8aa25fc33df7..c43d036b18081e535339fd339a5975e10efcdba1 100644
--- a/debian/debian/changelog
+++ b/debian/debian/changelog
@@ -1,3 +1,9 @@
+jenkins (1.502) unstable; urgency=low
+
+ * See http://jenkins-ci.org/changelog for more details.
+
+ -- Kohsuke Kawaguchi Sat, 16 Feb 2013 08:33:01 -0800
+
jenkins (1.501) unstable; urgency=low
* See http://jenkins-ci.org/changelog for more details.
diff --git a/licenseCompleter.groovy b/licenseCompleter.groovy
index a961b38c7082b61acff7b601aec188e63c8f7d17..97fe4bbd5fccdb1cbc641004f97e70377e67dc33 100644
--- a/licenseCompleter.groovy
+++ b/licenseCompleter.groovy
@@ -93,11 +93,6 @@ complete {
}
- match("nekohtml:xercesMinimal:1.9.6.2") {
- if (dependency.licenses.isEmpty())
- rewriteLicense([], apacheLicense)
- }
-
//
// Choose from multi-licensed modules
//==========================================================================
diff --git a/maven-plugin/pom.xml b/maven-plugin/pom.xml
index c30e0dc43d504186430a4b917950c36e937c91b2..89910118beddc1aeecbe3d53742a02f8b17114a0 100644
--- a/maven-plugin/pom.xml
+++ b/maven-plugin/pom.xml
@@ -301,17 +301,6 @@ THE SOFTWARE.
org.apache.maven.wagon
wagon-webdav
-
-
-
- nekohtml
- nekohtml
-
-
- nekohtml
- xercesMinimal
-
-
@@ -330,7 +319,7 @@ THE SOFTWARE.