in src/main/java/org/apache/sling/maven/bundlesupport/deploy/method/FelixPostDeployMethod.java [47:77]
public void deploy(URI targetURL, File file, String bundleSymbolicName, DeployContext context) throws IOException {
// append pseudo path after root URL to not get redirected
// https://github.com/apache/felix-dev/blob/8e35c940a95c91f3fee09c537dbaf9665e5d027e/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java#L338
URI postUrl = targetURL.resolve("install");
context.getLog().debug("Installing via POST to " + postUrl);
final HttpPost filePost = new HttpPost(postUrl);
// set referrer
filePost.setHeader("referer", "about:blank");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("action", "install");
builder.addTextBody("_noredir_", "_noredir_");
builder.addTextBody("bundlestartlevel", context.getBundleStartLevel());
if (context.isBundleStart()) {
builder.addTextBody("bundlestart", "start");
}
if (context.isRefreshPackages()) {
builder.addTextBody("refreshPackages", "true");
}
builder.addBinaryBody("bundlefile", file);
filePost.setEntity(builder.build());
String response = context.getHttpClient().execute(filePost, new BasicHttpClientResponseHandler());
// sanity check on response (has really the right servlet answered?)
// must be empty in this case
// (https://github.com/apache/felix-dev/blob/8e35c940a95c91f3fee09c537dbaf9665e5d027e/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java#L340)
if (!response.isEmpty()) {
throw new IOException("Unexpected response received from " + postUrl
+ ". Maybe wrong endpoint? Must be empty but was: " + response);
}
}