use of com.enonic.xp.trace.Trace in project xp by enonic.
the class NodeServiceImpl method getByPath.
@Override
public Node getByPath(final NodePath path) {
final Trace trace = Tracer.newTrace("node.getByPath");
if (trace == null) {
return executeGetByPath(path);
}
return Tracer.trace(trace, () -> {
trace.put("path", path);
final Node node = executeGetByPath(path);
if (node != null) {
trace.put("id", node.id());
}
return node;
});
}
use of com.enonic.xp.trace.Trace in project xp by enonic.
the class NodeServiceImpl method getByIdAndVersionId.
@Override
public Node getByIdAndVersionId(final NodeId id, final NodeVersionId versionId) {
final Trace trace = Tracer.newTrace("node.getByIdAndVersionId");
if (trace == null) {
return executeGetByIdAndVersionId(id, versionId);
}
return Tracer.trace(trace, () -> {
trace.put("id", id);
trace.put("versionId", versionId);
final Node node = executeGetByIdAndVersionId(id, versionId);
trace.put("path", node.path());
return node;
});
}
use of com.enonic.xp.trace.Trace in project xp by enonic.
the class LocalTaskManagerImpl method submitTask.
@Override
public void submitTask(final DescribedTask runnableTask) {
final Trace trace = Tracer.newTrace("task.submit");
if (trace == null) {
doSubmitTask(runnableTask);
} else {
Tracer.trace(trace, () -> doSubmitTask(runnableTask));
trace.put("taskId", runnableTask.getTaskId());
trace.put("name", runnableTask.getName());
}
}
use of com.enonic.xp.trace.Trace in project xp by enonic.
the class ComponentHandler method doHandle.
@Override
protected PortalResponse doHandle(final WebRequest webRequest, final WebResponse webResponse, final WebHandlerChain webHandlerChain) throws Exception {
WebHandlerHelper.checkAdminAccess(webRequest);
final String restPath = findRestPath(webRequest);
final ComponentHandlerWorker worker = new ComponentHandlerWorker((PortalRequest) webRequest);
worker.componentPath = ComponentPath.from(restPath);
worker.contentService = contentService;
worker.contentResolver = new ContentResolver(contentService);
worker.rendererDelegate = rendererDelegate;
worker.pageResolver = new PageResolver(pageTemplateService);
worker.postProcessor = postProcessor;
final Trace trace = Tracer.newTrace("renderComponent");
if (trace == null) {
return worker.execute();
}
return Tracer.traceEx(trace, worker::execute);
}
use of com.enonic.xp.trace.Trace in project xp by enonic.
the class ComponentHandlerWorker method execute.
@Override
public PortalResponse execute() throws Exception {
final ContentResolverResult resolvedContent = contentResolver.resolve(this.request);
final Content content = resolvedContent.getContentOrElseThrow();
final Site site = resolvedContent.getNearestSiteOrElseThrow();
Page page = content.getPage();
final PageResolverResult resolvedPage = pageResolver.resolve(request.getMode(), content, site);
Component component = null;
if (content.getType().isFragment()) {
// fragment content, try resolving component path in Layout fragment
final Component fragmentComponent = page.getFragment();
if (this.componentPath.isEmpty()) {
component = fragmentComponent;
} else if (fragmentComponent instanceof LayoutComponent) {
component = ((LayoutComponent) fragmentComponent).getComponent(this.componentPath);
}
}
final Page effectivePage;
if (component == null) {
effectivePage = inlineFragments(resolvedPage.getEffectivePage(), this.componentPath);
component = effectivePage.getRegions().getComponent(this.componentPath);
} else {
effectivePage = resolvedPage.getEffectivePage();
}
if (component == null) {
throw WebException.notFound(String.format("Page component for [%s] not found", this.componentPath));
}
final Content effectiveContent = Content.create(content).page(effectivePage).build();
final DescriptorKey controller = resolvedPage.getController();
this.request.setSite(site);
this.request.setContent(effectiveContent);
this.request.setComponent(component);
this.request.setApplicationKey(controller != null ? controller.getApplicationKey() : null);
final Trace trace = Tracer.current();
if (trace != null) {
trace.put("componentPath", component.getPath());
trace.put("type", component.getType().toString());
}
final PortalResponse response = rendererDelegate.render(component, this.request);
return this.postProcessor.processResponseInstructions(this.request, response);
}
Aggregations