update Info.plist

small DefaultServlet refactoring
pull/1/head
reger 12 years ago
parent a44eede8b8
commit eea504c117

@ -37,13 +37,14 @@
<key>ClassPath</key>
<array>
<string>$JAVAROOT/htroot</string>
<string>$JAVAROOT/lib/jetty-http-9.0.5.v20130815.jar</string>
<string>$JAVAROOT/lib/jetty-io-9.0.5.v20130815.jar</string>
<string>$JAVAROOT/lib/jetty-security-9.0.5.v20130815.jar</string>
<string>$JAVAROOT/lib/jetty-server-9.0.5.v20130815.jar</string>
<string>$JAVAROOT/lib/jetty-servlet-9.0.5.v20130815.jar</string>
<string>$JAVAROOT/lib/jetty-servlets-9.0.5.v20130815.jar</string>
<string>$JAVAROOT/lib/jetty-util-9.0.5.v20130815.jar</string>
<string>$JAVAROOT/lib/jetty-continuation-8.1.13.v20130916.jar</string>
<string>$JAVAROOT/lib/jetty-http-8.1.13.v20130916.jar</string>
<string>$JAVAROOT/lib/jetty-io-8.1.13.v20130916.jar</string>
<string>$JAVAROOT/lib/jetty-security-8.1.13.v20130916.jar</string>
<string>$JAVAROOT/lib/jetty-server-8.1.13.v20130916.jar</string>
<string>$JAVAROOT/lib/jetty-servlet-8.1.13.v20130916.jar</string>
<string>$JAVAROOT/lib/jetty-servlets-8.1.13.v20130916.jar</string>
<string>$JAVAROOT/lib/jetty-util-8.1.13.v20130916.jar</string>
<string>$JAVAROOT/lib/javax.servlet-3.0.0.v201112011016.jar</string>
<string>$JAVAROOT/lib/activation.jar</string>
<string>$JAVAROOT/lib/apache-mime4j-0.6.jar</string>

@ -38,7 +38,7 @@ import java.util.Set;
import net.yacy.cora.protocol.ConnectionInfo;
import net.yacy.cora.protocol.RequestHeader;
import net.yacy.cora.util.ConcurrentLog;
import net.yacy.kelondro.workflow.WorkflowThread;
import net.yacy.http.YaCyHttpServer;
import net.yacy.peers.PeerActions;
import net.yacy.peers.Seed;
import net.yacy.search.Switchboard;
@ -56,7 +56,7 @@ public final class Connections_p {
// server sessions
// get the serverCore thread
//final WorkflowThread httpd = sb.getThread("10_httpd"); //not working with Jetty
final YaCyHttpServer httpd = sb.getHttpServer();
// determines if name lookup should be done or not
final boolean doNameLookup;
@ -138,8 +138,8 @@ public final class Connections_p {
}
prop.put("list", idx);
prop.putNum("numMax", -1/* ((serverCore)httpd).getMaxSessionCount()*/); //TODO: get limit from Jetty
prop.putNum("numActiveRunning", numActiveRunning);
prop.putNum("numMax", httpd.getMaxSessionCount());
prop.putNum("numActiveRunning", httpd.getJobCount());
prop.putNum("numActivePending", numActivePending);
// client sessions

@ -27,7 +27,6 @@ import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.UnavailableException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.yacy.cora.protocol.HeaderFramework;
@ -36,7 +35,6 @@ import net.yacy.kelondro.util.FileUtils;
import org.eclipse.jetty.http.HttpContent;
import org.eclipse.jetty.http.HttpFields;
import org.eclipse.jetty.http.HttpHeaderValues;
import org.eclipse.jetty.http.HttpHeaders;
import org.eclipse.jetty.http.HttpMethods;
import org.eclipse.jetty.io.Buffer;
@ -96,58 +94,11 @@ import org.eclipse.jetty.util.resource.ResourceFactory;
*
* </PRE>
*
*
*
*
*/
public class Jetty8YaCyDefaultServlet extends YaCyDefaultServlet implements ResourceFactory {
private static final long serialVersionUID = 4900000000000001110L;
private boolean _gzip = true;
/* ------------------------------------------------------------ */
@Override
public void init() throws UnavailableException {
super.init();
_gzip=getInitBoolean("gzip",_gzip);
}
/* ------------------------------------------------------------ */
/**
* get Resource to serve. Map a path to a resource. The default
* implementation calls HttpContext.getResource but derived servlets may
* provide their own mapping.
*
* @param pathInContext The path to find a resource for.
* @return The resource to serve.
*/
@Override
public Resource getResource(String pathInContext) {
Resource r = null;
if (_relativeResourceBase != null) {
pathInContext = URIUtil.addPaths(_relativeResourceBase, pathInContext);
}
try {
if (_resourceBase != null) {
r = _resourceBase.addPath(pathInContext);
} else {
URL u = _servletContext.getResource(pathInContext);
r = Resource.newResource(u);
}
if (ConcurrentLog.isFine("YaCyDefaultServlet")) {
ConcurrentLog.fine("YaCyDefaultServlet","Resource " + pathInContext + "=" + r);
}
} catch (IOException e) {
// ConcurrentLog.logException(e);
}
return r;
}
/* ------------------------------------------------------------ */
@Override
@ -195,11 +146,11 @@ public class Jetty8YaCyDefaultServlet extends YaCyDefaultServlet implements Reso
// Does a gzip resource exist?
if (resource != null && resource.exists() && !resource.isDirectory()) {
// Tell caches that response may vary by accept-encoding
response.addHeader(HttpHeaders.VARY, HttpHeaders.ACCEPT_ENCODING);
response.addHeader(HttpHeaders.VARY, HeaderFramework.ACCEPT_ENCODING);
// Does the client accept gzip?
String accept = request.getHeader(HttpHeaders.ACCEPT_ENCODING);
if (accept != null && accept.indexOf("gzip") >= 0) {
String accept = request.getHeader(HeaderFramework.ACCEPT_ENCODING);
if (accept != null && accept.indexOf(HeaderFramework.CONTENT_ENCODING_GZIP) >= 0) {
gzip = true;
}
}
@ -251,7 +202,7 @@ public class Jetty8YaCyDefaultServlet extends YaCyDefaultServlet implements Reso
} else {
if (included.booleanValue() || passConditionalHeaders(request, response, resource, content)) {
if (gzip) {
response.setHeader(HttpHeaders.CONTENT_ENCODING, "gzip");
response.setHeader(HeaderFramework.CONTENT_ENCODING, HeaderFramework.CONTENT_ENCODING_GZIP);
String mt = _servletContext.getMimeType(pathInContext);
if (mt != null) {
response.setContentType(mt);
@ -318,12 +269,6 @@ public class Jetty8YaCyDefaultServlet extends YaCyDefaultServlet implements Reso
}
}
/* ------------------------------------------------------------ */
@Override
protected boolean hasDefinedRange(Enumeration<String> reqRanges) {
return (reqRanges != null && reqRanges.hasMoreElements());
}
/* ------------------------------------------------------------ */
/* Check modification date headers.
*/
@ -670,23 +615,4 @@ public class Jetty8YaCyDefaultServlet extends YaCyDefaultServlet implements Reso
}
}
}
/* ------------------------------------------------------------ */
@Override
protected void writeOptionHeaders(HttpFields fields) {
if (_acceptRanges) {
fields.put(HttpHeaders.ACCEPT_RANGES_BUFFER, HttpHeaderValues.BYTES_BUFFER);
}
}
/* ------------------------------------------------------------ */
/*
* @see javax.servlet.Servlet#destroy()
*/
@Override
public void destroy() {
super.destroy();
}
}

@ -98,6 +98,10 @@ import org.eclipse.jetty.util.resource.ResourceFactory;
*
* welcomeFile name of the welcome file (default is "index.html", "welcome.html")
*
* gzip If set to true, then static content will be served as
* gzip content encoded if a matching resource is
* found ending with ".gz"
*
* resourceBase Set to replace the context resource base
*
* resourceCache If set, this is a context attribute name, which the servlet
@ -123,6 +127,7 @@ public abstract class YaCyDefaultServlet extends HttpServlet implements Resource
protected boolean _dirAllowed = true;
protected boolean _pathInfoOnly = false;
protected boolean _etags = false;
protected boolean _gzip = true;
protected Resource _resourceBase;
protected MimeTypes _mimeTypes;
protected String[] _welcomes;
@ -168,6 +173,7 @@ public abstract class YaCyDefaultServlet extends HttpServlet implements Resource
}
_etags = getInitBoolean("etags", _etags);
_gzip=getInitBoolean("gzip",_gzip);
if (ConcurrentLog.isFine("YaCyDefaultServlet")) {
ConcurrentLog.fine("YaCyDefaultServlet","resource base = " + _resourceBase);
@ -331,7 +337,7 @@ public abstract class YaCyDefaultServlet extends HttpServlet implements Resource
String welcomeFileName = getWelcomeFile (pathInContext);
if (welcomeFileName != null) {
RequestDispatcher rd = request.getRequestDispatcher(welcomeFileName);
rd.forward(request, response);
if (rd != null) rd.forward(request, response);
} else { // send directory listing
content = new HttpContent.ResourceAsHttpContent(resource, _mimeTypes.getMimeByExtension(resource.toString()), _etags);
if (included.booleanValue() || passConditionalHeaders(request, response, resource, content)) {
@ -554,10 +560,10 @@ public abstract class YaCyDefaultServlet extends HttpServlet implements Resource
templateMethodCache.put(classFile, new SoftReference<Method>(m));
} catch (final ClassNotFoundException e) {
ConcurrentLog.severe("TemplateHandler", "class " + classFile + " is missing:" + e.getMessage());
ConcurrentLog.severe("YaCyDefaultServlet", "class " + classFile + " is missing:" + e.getMessage());
throw new InvocationTargetException(e, "class " + classFile + " is missing:" + e.getMessage());
} catch (final NoSuchMethodException e) {
ConcurrentLog.severe("TemplateHandler", "method 'respond' not found in class " + classFile + ": " + e.getMessage());
ConcurrentLog.severe("YaCyDefaultServlet", "method 'respond' not found in class " + classFile + ": " + e.getMessage());
throw new InvocationTargetException(e, "method 'respond' not found in class " + classFile + ": " + e.getMessage());
}
return m;
@ -737,7 +743,7 @@ public abstract class YaCyDefaultServlet extends HttpServlet implements Resource
if (q > 0) {
final String path = in.toString(off + 22, q - off - 22);
try {
RequestDispatcher dispatcher = request.getRequestDispatcher("/" + path);
RequestDispatcher dispatcher = request.getRequestDispatcher(path);
dispatcher.include(request, response);
response.flushBuffer();
} catch (Exception e) {

Loading…
Cancel
Save