changes to adjust jetty to recent code changes

pull/1/head
reger 12 years ago
parent aafef72a8a
commit 105cf8f593

@ -11,6 +11,14 @@
<classpathentry excluding="collection1/" kind="src" path="htroot/solr"/>
<classpathentry kind="src" path="htroot/gsa"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/jetty-continuation-7.3.0.v20110203.jar"/>
<classpathentry kind="lib" path="lib/jetty-http-7.3.0.v20110203.jar"/>
<classpathentry kind="lib" path="lib/jetty-io-7.3.0.v20110203.jar"/>
<classpathentry kind="lib" path="lib/jetty-security-7.3.0.v20110203.jar"/>
<classpathentry kind="lib" path="lib/jetty-server-7.3.0.v20110203.jar"/>
<classpathentry kind="lib" path="lib/jetty-servlet-7.3.0.v20110203.jar"/>
<classpathentry kind="lib" path="lib/jetty-servlets-7.3.0.v20110203.jar"/>
<classpathentry kind="lib" path="lib/jetty-util-7.3.0.v20110203.jar"/>
<classpathentry kind="lib" path="lib/J7Zip-modified.jar"/>
<classpathentry kind="lib" path="lib/activation.jar"/>
<classpathentry kind="lib" path="lib/commons-jxpath-1.3.jar"/>

@ -35,7 +35,6 @@ import javax.servlet.http.HttpServletResponseWrapper;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.HandlerContainer;
import org.eclipse.jetty.server.HttpConnection;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.HandlerWrapper;
@ -86,7 +85,7 @@ public abstract class ContentModHandler extends HandlerWrapper implements Handle
private ByteArrayServletOutputStream wrappedOutputStream = new ByteArrayServletOutputStream();
public ContentModResponseWrapper(HttpServletResponse response) {
super(response);
super(response);
}
@Override

@ -40,8 +40,8 @@ import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.HttpConnection;
import org.eclipse.jetty.server.Request;
import de.anomic.crawler.Cache;
import de.anomic.crawler.retrieval.Response;
import net.yacy.crawler.data.Cache;
import net.yacy.crawler.retrieval.Response;
/**
* jetty http handler
@ -75,10 +75,10 @@ public class ProxyCacheHandler extends AbstractRemoteHandler implements Handler
if(cachedResponseHeader != null) {
RequestHeader proxyHeaders = ProxyHandler.convertHeaderFromJetty(request);
// TODO: this convertion is only necessary
final de.anomic.crawler.retrieval.Request yacyRequest = new de.anomic.crawler.retrieval.Request(
final net.yacy.crawler.retrieval.Request yacyRequest = new net.yacy.crawler.retrieval.Request(
null,
url,
proxyHeaders.referer() == null ? null : new DigestURI(proxyHeaders.referer()).hash(),
proxyHeaders.referer() == null ? null : new DigestURI(proxyHeaders.referer().toString()).hash(),
"",
cachedResponseHeader.lastModified(),
sb.crawler.defaultProxyProfile.handle(),

@ -34,6 +34,7 @@ import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.yacy.cora.protocol.ClientIdentification;
import net.yacy.cora.protocol.RequestHeader;
import net.yacy.cora.protocol.ResponseHeader;
@ -47,9 +48,9 @@ import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.HttpConnection;
import org.eclipse.jetty.server.Request;
import de.anomic.crawler.Cache;
import de.anomic.crawler.retrieval.Response;
import de.anomic.http.server.MultiOutputStream;
import net.yacy.crawler.data.Cache;
import net.yacy.crawler.retrieval.Response;
import net.yacy.server.http.MultiOutputStream;
/**
* jetty http handler
@ -93,7 +94,7 @@ public class ProxyHandler extends AbstractRemoteHandler implements Handler {
proxyHeaders.remove(RequestHeader.KEEP_ALIVE);
proxyHeaders.remove(RequestHeader.CONTENT_LENGTH);
final HTTPClient client = new HTTPClient();
final HTTPClient client = new HTTPClient(ClientIdentification.yacyInternetCrawlerAgent);
int timeout = 60000;
client.setTimout(timeout);
client.setHeader(proxyHeaders.entrySet());
@ -134,7 +135,7 @@ public class ProxyHandler extends AbstractRemoteHandler implements Handler {
}
// reserver cache entry
final de.anomic.crawler.retrieval.Request yacyRequest = new de.anomic.crawler.retrieval.Request(
final net.yacy.crawler.retrieval.Request yacyRequest = new net.yacy.crawler.retrieval.Request(
null,
digestURI,
null, //requestHeader.referer() == null ? null : new DigestURI(requestHeader.referer()).hash(),

@ -31,12 +31,13 @@ import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.yacy.cora.util.ByteBuffer;
import net.yacy.cora.util.CommonPattern;
import net.yacy.cora.util.ConcurrentLog;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.HandlerContainer;
import net.yacy.kelondro.logging.Log;
import net.yacy.kelondro.util.ByteBuffer;
/**
* Jetty Http HandlerWrapper applying server-side includes,
@ -71,21 +72,61 @@ public class SSIHandler extends ContentModHandler implements Handler, HandlerCon
out.flush();
}
private static void parseSSI(final ByteBuffer in, final int off, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
private void parseSSI(final ByteBuffer in, final int off, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if (in.startsWith("<!--#include virtual=\"".getBytes(), off)) {
final int q = in.indexOf("\"".getBytes(), off + 22);
if (q > 0) {
final String path = in.toString(off + 22, q - off - 22);
try {
RequestDispatcher dispatcher = request.getRequestDispatcher("/"+path);
dispatcher.include(request, response);
//RequestDispatcher dispatcher = request.getRequestDispatcher("/"+path);
//
//TODO: dispatcher.include did not work in testing, temporarely added old writeContent -
//
//dispatcher.include(request, response);
writeContent(path,request,response);
response.flushBuffer();
} catch (Exception e) {
Log.logException(e);
ConcurrentLog.logException(e);
throw new ServletException();
}
}
}
}
/**
* temporarly added old writeContent for SSI to output include files
* as request.parameter is not modifyable used quickfix to add parameter via request.setAttribute
* and added temporarely the code in handler (TemplateHandler.handle) to read the request.attribute
* TODO: should finally be implementend otherwise eg. via HttpServletRequestWrapper
*/
public void writeContent(final String path, HttpServletRequest request, HttpServletResponse response) {
// check if there are arguments in path string
String args = "";
String fname = path;
final int argpos = path.indexOf('?');
if (argpos > 0) {
fname = path.substring(0, argpos);
args = path.substring(argpos + 1);
String[] arglist = CommonPattern.AMP.split(args);
for (String arg : arglist) {
String[] argnv = arg.split("=");
if (argnv.length > 1) {
request.setAttribute(argnv[0], argnv[1]);
} else {
request.setAttribute(arg, null);
}
}
}
try {
Handler h = this.getHandler();
h.handle(fname, null, request, response);
} catch (IOException ex) {
ConcurrentLog.logException(ex);
} catch (ServletException ex) {
ConcurrentLog.logException(ex);
}
}
}

@ -45,17 +45,23 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.yacy.cora.date.GenericFormatter;
import net.yacy.cora.document.Classification;
import net.yacy.cora.document.analysis.Classification;
import net.yacy.cora.protocol.HeaderFramework;
import net.yacy.cora.protocol.RequestHeader;
import net.yacy.kelondro.logging.Log;
import net.yacy.kelondro.util.ByteBuffer;
import net.yacy.cora.util.ByteBuffer;
import net.yacy.cora.util.ConcurrentLog;
import net.yacy.kelondro.util.FileUtils;
import net.yacy.kelondro.util.MemoryControl;
import net.yacy.peers.Seed;
import net.yacy.peers.graphics.EncodedImage;
import net.yacy.peers.operation.yacyBuildProperties;
import net.yacy.search.Switchboard;
import net.yacy.server.http.TemplateEngine;
import net.yacy.server.serverClassLoader;
import net.yacy.server.serverCore;
import net.yacy.server.serverObjects;
import net.yacy.server.serverSwitch;
import net.yacy.server.servletProperties;
import net.yacy.visualization.RasterPlotter;
import org.eclipse.jetty.server.Handler;
@ -63,12 +69,6 @@ import org.eclipse.jetty.server.HttpConnection;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
import de.anomic.http.server.TemplateEngine;
import de.anomic.server.serverClassLoader;
import de.anomic.server.serverCore;
import de.anomic.server.serverObjects;
import de.anomic.server.serverSwitch;
import de.anomic.server.servletProperties;
/**
* jetty http handler:
@ -150,10 +150,10 @@ public class TemplateHandler extends AbstractHandler implements Handler {
templateMethodCache.put(classFile, new SoftReference<Method>(m));
} catch (final ClassNotFoundException e) {
Log.logSevere("TemplateHandler", "class " + classFile + " is missing:" + e.getMessage());
ConcurrentLog.severe("TemplateHandler", "class " + classFile + " is missing:" + e.getMessage());
throw new InvocationTargetException(e, "class " + classFile + " is missing:" + e.getMessage());
} catch (final NoSuchMethodException e) {
Log.logSevere("TemplateHandler", "method 'respond' not found in class " + classFile + ": " + e.getMessage());
ConcurrentLog.severe("TemplateHandler", "method 'respond' not found in class " + classFile + ": " + e.getMessage());
throw new InvocationTargetException(e, "method 'respond' not found in class " + classFile + ": " + e.getMessage());
}
return m;
@ -203,6 +203,15 @@ public class TemplateHandler extends AbstractHandler implements Handler {
String argName = argNames.nextElement();
args.put(argName, request.getParameter(argName));
}
//TODO: for SSI request, local parameters are added as attributes, put them back as parameter for the legacy request
// likely this should be implemented via httpservletrequestwrapper to supply complete parameters
@SuppressWarnings("unchecked")
Enumeration<String> attNames = request.getAttributeNames();
while (attNames.hasMoreElements()) {
String argName = attNames.nextElement();
args.put (argName,request.getAttribute(argName).toString());
}
// eof modification to read attribute
RequestHeader legacyRequestHeader = generateLegacyRequestHeader(request, target, targetExt);
Object tmp;

@ -24,8 +24,8 @@
package net.yacy.http;
import net.yacy.kelondro.order.Base64Order;
import net.yacy.kelondro.order.Digest;
import net.yacy.cora.order.Base64Order;
import net.yacy.cora.order.Digest;
import net.yacy.kelondro.util.MapTools;
import org.eclipse.jetty.http.security.Credential;

@ -39,7 +39,7 @@ import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
import de.anomic.http.server.AlternativeDomainNames;
import net.yacy.server.http.AlternativeDomainNames;
public class YacyDomainHandler extends AbstractHandler implements Handler {

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save