protected Server prepareServerWithCatch(int code, final RemoteType remoteType)
throws Exception
{
if (code == 200) {
final Server result = Server.withPort(0);
result.serve("/nexus/content/repositories/central/.meta/repository-metadata.xml").withBehaviours(
new DeliverTemplateBehaviour(200, "text/html", template(getRepositoryMetadataXml(remoteType),
result)));
result.serve("/nexus/content/repositories/central/").withBehaviours(
new DeliverTemplateBehaviour(200, "text/html", template(ROOT_BODY, result)));
result.serve("/nexus/content/repositories/central/org/").withBehaviours(
new DeliverTemplateBehaviour(200, "text/html", template(ORG_BODY, result)));
result.serve("/nexus/content/repositories/central/org/sonatype/").withBehaviours(
new DeliverTemplateBehaviour(200, "text/html", template(ORG_SONATYPE_BODY, result)));
return result;
}
else if (code == 403) {
final Server result = Server.withPort(0);
result.serve("/nexus/content/repositories/central/.meta/repository-metadata.xml").withBehaviours(
new DeliverTemplateBehaviour(200, "text/html", template(getRepositoryMetadataXml(remoteType),
result)));
result.serve("/nexus/content/repositories/central/").withBehaviours(
new DeliverTemplateBehaviour(200, "text/html", template(ROOT_BODY, result)));
result.serve("/nexus/content/repositories/central/org/").withBehaviours(
new DeliverBehaviour(403, "text/html", "<h1>Access denied</h1>"));
return result;
}
else if (code == 404) {
final Server result = Server.withPort(0);
result.serve("/nexus/content/repositories/central/.meta/repository-metadata.xml").withBehaviours(
new DeliverTemplateBehaviour(200, "text/html", template(getRepositoryMetadataXml(remoteType),
result)));
result.serve("/nexus/content/repositories/central/").withBehaviours(
new DeliverTemplateBehaviour(200, "text/html", template(ROOT_BODY, result)));
result.serve("/nexus/content/repositories/central/org/").withBehaviours(
new DeliverBehaviour(404, "text/html", "<h1>Access denied</h1>"));
return result;
}
else if (code == 500) {
final Server result = Server.withPort(0);
result.serve("/nexus/content/repositories/central/.meta/repository-metadata.xml").withBehaviours(
new DeliverTemplateBehaviour(200, "text/html", template(getRepositoryMetadataXml(remoteType),
result)));
result.serve("/nexus/content/repositories/central/").withBehaviours(
new DeliverTemplateBehaviour(200, "text/html", template(ROOT_BODY, result)));
result.serve("/nexus/content/repositories/central/org/").withBehaviours(
new DeliverBehaviour(500, "text/html", "<h1>Access denied</h1>"));
return result;
}
else {
throw new IllegalArgumentException("Code " + code + " not supported!");