本文整理了Java中org.apache.sling.api.resource.Resource.getResourceMetadata
方法的一些代码示例,展示了Resource.getResourceMetadata
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Resource.getResourceMetadata
方法的具体详情如下:
包路径:org.apache.sling.api.resource.Resource
类名称:Resource
方法名:getResourceMetadata
[英]Returns the meta data of this resource. The concrete data contained in the ResourceMetadata object returned is implementation specific except for the ResourceMetadata#RESOLUTION_PATH property which is required to be set to the part of the request URI used to resolve the resource.
[中]返回此资源的元数据。返回的ResourceMetadata对象中包含的具体数据是特定于实现的,ResourceMetadata#RESOLUTION_PATH属性除外,该属性需要设置为用于解析资源的请求URI的一部分。
代码示例来源:origin: heervisscher/htl-examples
@Override
public ResourceMetadata getResourceMetadata() {
return resource.getResourceMetadata();
}
代码示例来源:origin: org.apache.sling/org.apache.sling.resourceresolver
private boolean isContinueResolving(Resource resource) {
return resource.getResourceMetadata() != null
&& resource.getResourceMetadata().containsKey(ResourceMetadata.INTERNAL_CONTINUE_RESOLVING);
}
代码示例来源:origin: org.apache.sling/org.apache.sling.servlets.resolver
/**
* @see org.apache.sling.api.resource.Resource#getResourceMetadata()
*/
@Override
public ResourceMetadata getResourceMetadata() {
return this.getActiveResource().getResourceMetadata();
}
代码示例来源:origin: org.apache.sling/org.apache.sling.api
/**
* Returns the value of calling <code>getResourceMetadata</code> on the
* {@link #getResource() wrapped resource}.
*/
@Override
public ResourceMetadata getResourceMetadata() {
return getResource().getResourceMetadata();
}
代码示例来源:origin: org.apache.sling/org.apache.sling.scripting.javascript
public Object jsFunction_getResourceMetadata() {
return toJS(resource.getResourceMetadata());
}
代码示例来源:origin: org.apache.sling/org.apache.sling.resourceresolver
@Override
protected Resource seek() {
while (input.hasNext()) {
final Resource next = input.next();
final String name = next.getName();
if (visited.contains(name)) {
continue;
} else {
visited.add(name);
next.getResourceMetadata().setResolutionPath(next.getPath());
return next;
}
}
return null;
}
}
代码示例来源:origin: org.apache.sling/org.apache.sling.resourceresolver
/**
* Creates a resource with the given path if existing
*/
private Resource getAbsoluteResourceInternal(@Nullable final Resource parent, @Nullable final String path, final Map<String, String> parameters, final boolean isResolve) {
if (path == null || path.length() == 0 || path.charAt(0) != '/') {
logger.debug("getResourceInternal: Path must be absolute {}", path);
return null; // path must be absolute
}
final Resource parentToUse;
if (parent != null && path.startsWith(parent.getPath())) {
parentToUse = parent;
} else {
parentToUse = null;
}
final Resource resource = this.control.getResource(this.context, path, parentToUse, parameters, isResolve);
if (resource != null) {
resource.getResourceMetadata().setResolutionPath(path);
resource.getResourceMetadata().setParameterMap(parameters);
return resource;
}
logger.debug("getResourceInternal: Cannot resolve path '{}' to a resource", path);
return null;
}
代码示例来源:origin: org.apache.sling/org.apache.sling.servlets.get
/**
* Dumps the information about the provided resource to a {@link PrintWriter}.
* @param pw the PrintWriter
* @param r the resource
* @param map the resource's properties
*/
protected void dump(PrintWriter pw, Resource r, Map<String, Object> map) {
pw.println("** Resource dumped by " + getClass().getSimpleName() + "**");
pw.println("Resource path:" + r.getPath());
pw.println("Resource metadata: " + r.getResourceMetadata());
pw.println("Resource type: " + r.getResourceType());
String resourceSuperType = r.getResourceResolver().getParentResourceType(r);
if (resourceSuperType == null) {
resourceSuperType = "-";
}
pw.println("Resource super type: " + resourceSuperType);
pw.println("\n** Resource properties **");
final Iterator<Map.Entry<String,Object>> pi = map.entrySet().iterator();
while ( pi.hasNext() ) {
final Map.Entry<String,Object> p = pi.next();
printPropertyValue(pw, p.getKey(), p.getValue(), true);
pw.println();
}
}
代码示例来源:origin: org.apache.sling/org.apache.sling.resourceresolver
/**
* @see java.util.Iterator#next()
*/
@Override
public Resource next() {
final Resource rsrc = this.iterator.next();
rsrc.getResourceMetadata().setResolutionPath(rsrc.getPath());
return this.tracker.decorate(rsrc);
}
代码示例来源:origin: org.apache.sling/org.apache.sling.api
/**
* Checks if the request contains a if-last-modified-since header and if the the
* request's underlying resource has a jcr:lastModified property. if the properties were modified
* before the header a 304 is sent otherwise the response last modified header is set.
* @param req the request
* @param resp the response
* @return <code>true</code> if the response was set
*/
public static boolean handleIfModifiedSince(@NotNull SlingHttpServletRequest req, @NotNull HttpServletResponse resp){
boolean responseSet=false;
long lastModified=req.getResource().getResourceMetadata().getModificationTime();
if (lastModified!=-1){
long modifiedTime = lastModified/1000; //seconds
long ims = req.getDateHeader(HttpConstants.HEADER_IF_MODIFIED_SINCE)/1000; //seconds
if (modifiedTime <= ims) {
resp.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
responseSet=true;
}
resp.setDateHeader(HttpConstants.HEADER_LAST_MODIFIED, lastModified);
}
return responseSet;
}
代码示例来源:origin: heervisscher/htl-examples
@Override
public ResourceMetadata getResourceMetadata() {
ResourceMetadata metadata = new ResourceMetadata();
metadata.setCharacterEncoding(resource.getResourceMetadata().getCharacterEncoding());
metadata.setContentType(resource.getResourceMetadata().getContentType());
metadata.setContentLength(resource.getResourceMetadata().getContentLength());
metadata.setCreationTime(resource.getResourceMetadata().getCreationTime());
metadata.setModificationTime(resource.getResourceMetadata().getModificationTime());
metadata.setResolutionPath(path);
log.info("resolution path : {} ", StringUtils.substringAfter(path, "."));
metadata.setResolutionPathInfo("." + StringUtils.substringAfter(path, "."));
return metadata;
}
代码示例来源:origin: org.apache.sling/org.apache.sling.resourceresolver
/**
* Decorate a resource.
*/
public Resource decorate(final Resource resource) {
Resource result = resource;
final ResourceDecorator[] decorators = this.resourceDecoratorsArray;
for (final ResourceDecorator decorator : decorators) {
final Resource original = result;
result = decorator.decorate(original);
if (result == null) {
result = original;
}
}
// make resource metadata read-only
result.getResourceMetadata().lock();
return result;
}
代码示例来源:origin: org.apache.sling/org.apache.sling.servlets.get
private void printResourceInfo(final PrintWriter pw, final Resource r) {
pw.print("<h1>Resource dumped by ");
pw.print(xssApi.encodeForHTML(getClass().getSimpleName()));
pw.println("</h1>");
pw.print("<p>Resource path: <b>");
pw.print(xssApi.encodeForHTML(r.getPath()));
pw.println("</b></p>");
pw.print("<p>Resource metadata: <b>");
pw.print(xssApi.encodeForHTML(String.valueOf(r.getResourceMetadata())));
pw.println("</b></p>");
pw.print("<p>Resource type: <b>");
pw.print(xssApi.encodeForHTML(r.getResourceType()));
pw.println("</b></p>");
String resourceSuperType = r.getResourceResolver().getParentResourceType(r);
if (resourceSuperType == null) {
resourceSuperType = "-";
}
pw.print("<p>Resource super type: <b>");
pw.print(xssApi.encodeForHTML(resourceSuperType));
pw.println("</b></p>");
}
代码示例来源:origin: io.wcm/io.wcm.wcm.ui.granite
private static Resource wrap(Resource resource, ValueMap valueMap, Iterable<Resource> children) {
return new GraniteUiSyntheticResource(resource.getResourceResolver(),
resource.getResourceMetadata(),
resource.getResourceType(),
valueMap,
children);
}
代码示例来源:origin: org.apache.sling/org.apache.sling.jcr.resource
@Override
public @CheckForNull Resource getParent(final @Nonnull ResolveContext<JcrProviderState> ctx, final @Nonnull Resource child) {
if (child instanceof JcrItemResource<?>) {
try {
String version = null;
if (child.getResourceMetadata().getParameterMap() != null) {
version = child.getResourceMetadata().getParameterMap().get("v");
}
if (version == null) {
Item item = ((JcrItemResource<?>) child).getItem();
if ("/".equals(item.getPath())) {
return null;
}
Node parentNode;
try {
parentNode = item.getParent();
} catch(AccessDeniedException e) {
return null;
}
String parentPath = ResourceUtil.getParent(child.getPath());
return new JcrNodeResource(ctx.getResourceResolver(), parentPath, version, parentNode,
ctx.getProviderState().getHelperData());
}
} catch (RepositoryException e) {
logger.warn("Can't get parent for {}", child, e);
return null;
}
}
return super.getParent(ctx, child);
}
代码示例来源:origin: org.apache.sling/org.apache.sling.resourceresolver
@Override
public Resource copy(final String srcAbsPath, final String destAbsPath) throws PersistenceException {
Resource rsrc = this.control.copy(this.context, srcAbsPath, destAbsPath);
if (rsrc != null ) {
rsrc.getResourceMetadata().setResolutionPath(rsrc.getPath());
rsrc = this.factory.getResourceDecoratorTracker().decorate(rsrc);
}
return rsrc;
}
代码示例来源:origin: org.apache.sling/org.apache.sling.resourceresolver
@Override
public Resource move(final String srcAbsPath, final String destAbsPath) throws PersistenceException {
Resource rsrc = this.control.move(this.context, srcAbsPath, destAbsPath);
if (rsrc != null ) {
rsrc.getResourceMetadata().setResolutionPath(rsrc.getPath());
rsrc = this.factory.getResourceDecoratorTracker().decorate(rsrc);
}
return rsrc;
}
}
代码示例来源:origin: org.apache.sling/org.apache.sling.scripting.sightly
private Object getUseObjectAndRecompileIfNeeded(Resource pojoResource)
throws IOException, InstantiationException, IllegalAccessException, ClassNotFoundException {
SourceIdentifier sourceIdentifier = new SourceIdentifier(sightlyEngineConfiguration, pojoResource.getPath());
long sourceLastModifiedDateFromCache =
resourceBackedPojoChangeMonitor.getLastModifiedDateForJavaUseObject(pojoResource.getPath());
long classLastModifiedDate = classLoaderWriter.getLastModified("/" + sourceIdentifier.getFullyQualifiedClassName()
.replaceAll("\\.", "/") + ".class");
if (sourceLastModifiedDateFromCache == 0) {
// first access; let's check the real last modified date of the source
long sourceLastModifiedDate = pojoResource.getResourceMetadata().getModificationTime();
resourceBackedPojoChangeMonitor.recordLastModifiedTimestamp(pojoResource.getPath(), sourceLastModifiedDate);
if (classLastModifiedDate < 0 || sourceLastModifiedDate > classLastModifiedDate) {
return compileSource(sourceIdentifier, IOUtils.toString(pojoResource.adaptTo(InputStream.class), "UTF-8"));
} else {
return classLoaderWriter.getClassLoader().loadClass(sourceIdentifier.getFullyQualifiedClassName()).newInstance();
}
} else {
if (sourceLastModifiedDateFromCache > classLastModifiedDate) {
return compileSource(sourceIdentifier, IOUtils.toString(pojoResource.adaptTo(InputStream.class), "UTF-8"));
} else {
return classLoaderWriter.getClassLoader().loadClass(sourceIdentifier.getFullyQualifiedClassName()).newInstance();
}
}
}
代码示例来源:origin: org.apache.sling/org.apache.sling.resourceresolver
@Override
public Resource getParent(final Resource child) {
Resource rsrc = null;
final String parentPath = ResourceUtil.getParent(child.getPath());
if ( parentPath != null ) {
// if the parent path is relative, resolve using search paths.
if ( !parentPath.startsWith("/") ) {
rsrc = context.getResourceResolver().getResource(parentPath);
} else {
rsrc = this.control.getParent(this.context, parentPath, child);
if (rsrc != null ) {
rsrc.getResourceMetadata().setResolutionPath(rsrc.getPath());
rsrc = this.factory.getResourceDecoratorTracker().decorate(rsrc);
}
}
}
return rsrc;
}
代码示例来源:origin: org.apache.sling/org.apache.sling.jcr.resource
@Override
public Iterator<Resource> listChildren(ResolveContext<JcrProviderState> ctx, Resource parent) {
JcrItemResource<?> parentItemResource;
// short cut for known JCR resources
if (parent instanceof JcrItemResource) {
parentItemResource = (JcrItemResource<?>) parent;
} else {
// try to get the JcrItemResource for the parent path to list
// children
try {
parentItemResource = ctx.getProviderState().getResourceFactory().createResource(
parent.getResourceResolver(), parent.getPath(), null,
parent.getResourceMetadata().getParameterMap());
} catch (RepositoryException re) {
throw new SlingException("Can't list children", re);
}
}
// return children if there is a parent item resource, else null
return (parentItemResource != null)
? parentItemResource.listJcrChildren()
: null;
}
内容来源于网络,如有侵权,请联系作者删除!