下面列出了怎么用org.eclipse.jetty.server.handler.ContextHandler.Context的API类实例代码及写法,或者点击链接到github查看源代码。
private static void logStartupBanner(Server server) {
Object banner = null;
ContextHandler contextHandler = server.getChildHandlerByClass(ContextHandler.class);
if (contextHandler != null) {
Context context = contextHandler.getServletContext();
if (context != null) {
banner = context.getAttribute("nexus-banner");
}
}
StringBuilder buf = new StringBuilder();
buf.append("\n-------------------------------------------------\n\n");
buf.append("Started ").append(banner instanceof String ? banner : "Nexus Repository Manager");
buf.append("\n\n-------------------------------------------------");
log.info(buf.toString());
}
@Override
public void enterScope(Context context, Request request, Object reason) {
if (logger.isLoggable(Level.FINE)) {
logger.fine("enterScope " + context);
}
if (request != null) {
Integer depth = contextDepth.get();
if (depth == null || depth.intValue() == 0) {
contextDepth.set(1);
String currentTraceId = (String) request.getAttribute(X_CLOUD_TRACE);
if (currentTraceId == null) {
// extract xCloud Trace in format: TRACE_ID/SPAN_ID;o=TRACE_TRUE
String cloudTrace = request.getHeader(X_CLOUD_TRACE);
if (cloudTrace != null) {
int split = cloudTrace.indexOf('/');
if (split < 0) {
split = cloudTrace.indexOf(';');
}
String traceId = split >= 0 ? cloudTrace.substring(0, split) : cloudTrace;
if (traceId != null) {
currentTraceId = String.format("projects/%s/traces/%s", projectId, traceId);
request.setAttribute(X_CLOUD_TRACE, currentTraceId);
TraceLoggingEnhancer.setCurrentTraceId(currentTraceId);
}
}
}
} else {
contextDepth.set(depth + 1);
}
}
}
@Override
public void exitScope(Context context, Request request) {
if (logger.isLoggable(Level.FINE)) {
logger.fine("exitScope " + context);
}
Integer depth = contextDepth.get();
if (depth != null) {
if (depth > 1) {
contextDepth.set(depth - 1);
} else {
contextDepth.remove();
TraceLoggingEnhancer.setCurrentTraceId(null);
}
}
}