Java 类org.springframework.core.io.ContextResource 实例源码

项目:lams    文件:ResourceEditorRegistrar.java   
/**
 * Populate the given {@code registry} with the following resource editors:
 * ResourceEditor, InputStreamEditor, InputSourceEditor, FileEditor, URLEditor,
 * URIEditor, ClassEditor, ClassArrayEditor.
 * <p>If this registrar has been configured with a {@link ResourcePatternResolver},
 * a ResourceArrayPropertyEditor will be registered as well.
 * @see org.springframework.core.io.ResourceEditor
 * @see org.springframework.beans.propertyeditors.InputStreamEditor
 * @see org.springframework.beans.propertyeditors.InputSourceEditor
 * @see org.springframework.beans.propertyeditors.FileEditor
 * @see org.springframework.beans.propertyeditors.URLEditor
 * @see org.springframework.beans.propertyeditors.URIEditor
 * @see org.springframework.beans.propertyeditors.ClassEditor
 * @see org.springframework.beans.propertyeditors.ClassArrayEditor
 * @see org.springframework.core.io.support.ResourceArrayPropertyEditor
 */
@Override
public void registerCustomEditors(PropertyEditorRegistry registry) {
    ResourceEditor baseEditor = new ResourceEditor(this.resourceLoader, this.propertyResolver);
    doRegisterEditor(registry, Resource.class, baseEditor);
    doRegisterEditor(registry, ContextResource.class, baseEditor);
    doRegisterEditor(registry, InputStream.class, new InputStreamEditor(baseEditor));
    doRegisterEditor(registry, InputSource.class, new InputSourceEditor(baseEditor));
    doRegisterEditor(registry, File.class, new FileEditor(baseEditor));
    doRegisterEditor(registry, URL.class, new URLEditor(baseEditor));

    ClassLoader classLoader = this.resourceLoader.getClassLoader();
    doRegisterEditor(registry, URI.class, new URIEditor(classLoader));
    doRegisterEditor(registry, Class.class, new ClassEditor(classLoader));
    doRegisterEditor(registry, Class[].class, new ClassArrayEditor(classLoader));

    if (this.resourceLoader instanceof ResourcePatternResolver) {
        doRegisterEditor(registry, Resource[].class,
                new ResourceArrayPropertyEditor((ResourcePatternResolver) this.resourceLoader, this.propertyResolver));
    }
}
项目:spring4-understanding    文件:ResourceEditorRegistrar.java   
/**
 * Populate the given {@code registry} with the following resource editors:
 * ResourceEditor, InputStreamEditor, InputSourceEditor, FileEditor, URLEditor,
 * URIEditor, ClassEditor, ClassArrayEditor.
 * <p>If this registrar has been configured with a {@link ResourcePatternResolver},
 * a ResourceArrayPropertyEditor will be registered as well.
 * @see org.springframework.core.io.ResourceEditor
 * @see org.springframework.beans.propertyeditors.InputStreamEditor
 * @see org.springframework.beans.propertyeditors.InputSourceEditor
 * @see org.springframework.beans.propertyeditors.FileEditor
 * @see org.springframework.beans.propertyeditors.URLEditor
 * @see org.springframework.beans.propertyeditors.URIEditor
 * @see org.springframework.beans.propertyeditors.ClassEditor
 * @see org.springframework.beans.propertyeditors.ClassArrayEditor
 * @see org.springframework.core.io.support.ResourceArrayPropertyEditor
 */
@Override
public void registerCustomEditors(PropertyEditorRegistry registry) {
    ResourceEditor baseEditor = new ResourceEditor(this.resourceLoader, this.propertyResolver);
    doRegisterEditor(registry, Resource.class, baseEditor);
    doRegisterEditor(registry, ContextResource.class, baseEditor);
    doRegisterEditor(registry, InputStream.class, new InputStreamEditor(baseEditor));
    doRegisterEditor(registry, InputSource.class, new InputSourceEditor(baseEditor));
    doRegisterEditor(registry, File.class, new FileEditor(baseEditor));
    doRegisterEditor(registry, Reader.class, new ReaderEditor(baseEditor));
    doRegisterEditor(registry, URL.class, new URLEditor(baseEditor));

    ClassLoader classLoader = this.resourceLoader.getClassLoader();
    doRegisterEditor(registry, URI.class, new URIEditor(classLoader));
    doRegisterEditor(registry, Class.class, new ClassEditor(classLoader));
    doRegisterEditor(registry, Class[].class, new ClassArrayEditor(classLoader));

    if (this.resourceLoader instanceof ResourcePatternResolver) {
        doRegisterEditor(registry, Resource[].class,
                new ResourceArrayPropertyEditor((ResourcePatternResolver) this.resourceLoader, this.propertyResolver));
    }
}
项目:spring    文件:ResourceEditorRegistrar.java   
/**
 * Populate the given {@code registry} with the following resource editors:
 * ResourceEditor, InputStreamEditor, InputSourceEditor, FileEditor, URLEditor,
 * URIEditor, ClassEditor, ClassArrayEditor.
 * <p>If this registrar has been configured with a {@link ResourcePatternResolver},
 * a ResourceArrayPropertyEditor will be registered as well.
 * @see org.springframework.core.io.ResourceEditor
 * @see org.springframework.beans.propertyeditors.InputStreamEditor
 * @see org.springframework.beans.propertyeditors.InputSourceEditor
 * @see org.springframework.beans.propertyeditors.FileEditor
 * @see org.springframework.beans.propertyeditors.URLEditor
 * @see org.springframework.beans.propertyeditors.URIEditor
 * @see org.springframework.beans.propertyeditors.ClassEditor
 * @see org.springframework.beans.propertyeditors.ClassArrayEditor
 * @see org.springframework.core.io.support.ResourceArrayPropertyEditor
 */
@Override
public void registerCustomEditors(PropertyEditorRegistry registry) {
    ResourceEditor baseEditor = new ResourceEditor(this.resourceLoader, this.propertyResolver);
    doRegisterEditor(registry, Resource.class, baseEditor);
    doRegisterEditor(registry, ContextResource.class, baseEditor);
    doRegisterEditor(registry, InputStream.class, new InputStreamEditor(baseEditor));
    doRegisterEditor(registry, InputSource.class, new InputSourceEditor(baseEditor));
    doRegisterEditor(registry, File.class, new FileEditor(baseEditor));
    doRegisterEditor(registry, Reader.class, new ReaderEditor(baseEditor));
    doRegisterEditor(registry, URL.class, new URLEditor(baseEditor));

    ClassLoader classLoader = this.resourceLoader.getClassLoader();
    doRegisterEditor(registry, URI.class, new URIEditor(classLoader));
    doRegisterEditor(registry, Class.class, new ClassEditor(classLoader));
    doRegisterEditor(registry, Class[].class, new ClassArrayEditor(classLoader));

    if (this.resourceLoader instanceof ResourcePatternResolver) {
        doRegisterEditor(registry, Resource[].class,
                new ResourceArrayPropertyEditor((ResourcePatternResolver) this.resourceLoader, this.propertyResolver));
    }
}
项目:flowable-engine    文件:AbstractAutoDeploymentStrategy.java   
/**
 * Determines the name to be used for the provided resource.
 * 
 * @param resource
 *            the resource to get the name for
 * @return the name of the resource
 */
protected String determineResourceName(final Resource resource) {
    String resourceName = null;

    if (resource instanceof ContextResource) {
        resourceName = ((ContextResource) resource).getPathWithinContext();

    } else if (resource instanceof ByteArrayResource) {
        resourceName = resource.getDescription();

    } else {
        try {
            resourceName = resource.getFile().getAbsolutePath();
        } catch (IOException e) {
            resourceName = resource.getFilename();
        }
    }
    return resourceName;
}
项目:flowable-engine    文件:AbstractAutoDeploymentStrategy.java   
/**
 * Determines the name to be used for the provided resource.
 * 
 * @param resource
 *            the resource to get the name for
 * @return the name of the resource
 */
protected String determineResourceName(final Resource resource) {
    String resourceName = null;

    if (resource instanceof ContextResource) {
        resourceName = ((ContextResource) resource).getPathWithinContext();

    } else if (resource instanceof ByteArrayResource) {
        resourceName = resource.getDescription();

    } else {
        try {
            resourceName = resource.getFile().getAbsolutePath();
        } catch (IOException e) {
            resourceName = resource.getFilename();
        }
    }
    return resourceName;
}
项目:flowable-engine    文件:AbstractAutoDeploymentStrategy.java   
/**
 * Determines the name to be used for the provided resource.
 * 
 * @param resource
 *            the resource to get the name for
 * @return the name of the resource
 */
protected String determineResourceName(final Resource resource) {
    String resourceName = null;

    if (resource instanceof ContextResource) {
        resourceName = ((ContextResource) resource).getPathWithinContext();

    } else if (resource instanceof ByteArrayResource) {
        resourceName = resource.getDescription();

    } else {
        try {
            resourceName = resource.getFile().getAbsolutePath();
        } catch (IOException e) {
            resourceName = resource.getFilename();
        }
    }
    return resourceName;
}
项目:flowable-engine    文件:AbstractAutoDeploymentStrategy.java   
/**
 * Determines the name to be used for the provided resource.
 * 
 * @param resource
 *            the resource to get the name for
 * @return the name of the resource
 */
protected String determineResourceName(final Resource resource) {
    String resourceName = null;

    if (resource instanceof ContextResource) {
        resourceName = ((ContextResource) resource).getPathWithinContext();

    } else if (resource instanceof ByteArrayResource) {
        resourceName = resource.getDescription();

    } else {
        try {
            resourceName = resource.getFile().getAbsolutePath();
        } catch (IOException e) {
            resourceName = resource.getFilename();
        }
    }
    return resourceName;
}
项目:flowable-engine    文件:AbstractAutoDeploymentStrategy.java   
/**
 * Determines the name to be used for the provided resource.
 * 
 * @param resource
 *            the resource to get the name for
 * @return the name of the resource
 */
protected String determineResourceName(final Resource resource) {
    String resourceName = null;

    if (resource instanceof ContextResource) {
        resourceName = ((ContextResource) resource).getPathWithinContext();

    } else if (resource instanceof ByteArrayResource) {
        resourceName = resource.getDescription();

    } else {
        try {
            resourceName = resource.getFile().getAbsolutePath();
        } catch (IOException e) {
            resourceName = resource.getFilename();
        }
    }
    return resourceName;
}
项目:class-guard    文件:ResourceEditorRegistrar.java   
/**
 * Populate the given {@code registry} with the following resource editors:
 * ResourceEditor, InputStreamEditor, InputSourceEditor, FileEditor, URLEditor,
 * URIEditor, ClassEditor, ClassArrayEditor.
 * <p>If this registrar has been configured with a {@link ResourcePatternResolver},
 * a ResourceArrayPropertyEditor will be registered as well.
 * @see org.springframework.core.io.ResourceEditor
 * @see org.springframework.beans.propertyeditors.InputStreamEditor
 * @see org.springframework.beans.propertyeditors.InputSourceEditor
 * @see org.springframework.beans.propertyeditors.FileEditor
 * @see org.springframework.beans.propertyeditors.URLEditor
 * @see org.springframework.beans.propertyeditors.URIEditor
 * @see org.springframework.beans.propertyeditors.ClassEditor
 * @see org.springframework.beans.propertyeditors.ClassArrayEditor
 * @see org.springframework.core.io.support.ResourceArrayPropertyEditor
 */
public void registerCustomEditors(PropertyEditorRegistry registry) {
    ResourceEditor baseEditor = new ResourceEditor(this.resourceLoader, this.propertyResolver);
    doRegisterEditor(registry, Resource.class, baseEditor);
    doRegisterEditor(registry, ContextResource.class, baseEditor);
    doRegisterEditor(registry, InputStream.class, new InputStreamEditor(baseEditor));
    doRegisterEditor(registry, InputSource.class, new InputSourceEditor(baseEditor));
    doRegisterEditor(registry, File.class, new FileEditor(baseEditor));
    doRegisterEditor(registry, URL.class, new URLEditor(baseEditor));

    ClassLoader classLoader = this.resourceLoader.getClassLoader();
    doRegisterEditor(registry, URI.class, new URIEditor(classLoader));
    doRegisterEditor(registry, Class.class, new ClassEditor(classLoader));
    doRegisterEditor(registry, Class[].class, new ClassArrayEditor(classLoader));

    if (this.resourceLoader instanceof ResourcePatternResolver) {
        doRegisterEditor(registry, Resource[].class,
                new ResourceArrayPropertyEditor((ResourcePatternResolver) this.resourceLoader, this.propertyResolver));
    }
}
项目:gemini.blueprint    文件:BaseIoTest.java   
protected void printPathWithinContext(Resource[] resources) {
       for (Resource resource : resources) {
           assertTrue(resource instanceof ContextResource);
           // Disabled print out
           //System.out.println("Path within context " + ((ContextResource) resource).getPathWithinContext());
       }
}
项目:gemini.blueprint    文件:OsgiBundleResourcePatternResolver.java   
private ContextResource[] convertURLEnumerationToResourceArray(Enumeration<URL> enm, String path) {
    Set<ContextResource> resources = new LinkedHashSet<ContextResource>(4);
    while (enm != null && enm.hasMoreElements()) {
        resources.add(new UrlContextResource(enm.nextElement(), path));
    }
    return (ContextResource[]) resources.toArray(new ContextResource[resources.size()]);
}
项目:spring-osgi    文件:BaseIoTest.java   
protected void printPathWithinContext(Resource[] resources) {
    for (int i = 0; i < resources.length; i++) {
        Resource resource = resources[i];
        assertTrue(resource instanceof ContextResource);
        // Disabled print out
        //System.out.println("Path within context " + ((ContextResource) resource).getPathWithinContext());
    }
}
项目:spring-osgi    文件:OsgiBundleResourcePatternResolver.java   
private ContextResource[] convertURLEnumerationToResourceArray(Enumeration enm, String path) {
    Set resources = new LinkedHashSet(4);
    while (enm != null && enm.hasMoreElements()) {
        resources.add(new UrlContextResource((URL) enm.nextElement(), path));
    }
    return (ContextResource[]) resources.toArray(new ContextResource[resources.size()]);
}
项目:spring-osgi    文件:OsgiBundleResource.java   
/**
 * Locates the resource in the underlying bundle based on the prefix, if it
 * exists. Note that the location happens per call since due to the dynamic
 * nature of OSGi, the classpath of the bundle (among others) can change
 * during a bundle lifecycle (depending on its imports).
 * 
 * @return URL to this resource
 * @throws IOException if the resource cannot be resolved as URL, i.e. if
 *         the resource is not available as descriptor
 * 
 * @see org.osgi.framework.Bundle#getEntry(String)
 * @see org.osgi.framework.Bundle#getResource(String)
 */
public URL getURL() throws IOException {
    ContextResource res = null;
    URL url = null;

    switch (searchType) {
        // same as bundle space but with a different string
        case OsgiResourceUtils.PREFIX_TYPE_NOT_SPECIFIED:
            res = getResourceFromBundleSpace(pathWithoutPrefix);
            break;
        case OsgiResourceUtils.PREFIX_TYPE_BUNDLE_SPACE:
            res = getResourceFromBundleSpace(pathWithoutPrefix);
            break;
        case OsgiResourceUtils.PREFIX_TYPE_BUNDLE_JAR:
            url = getResourceFromBundleJar(pathWithoutPrefix);
            break;
        case OsgiResourceUtils.PREFIX_TYPE_CLASS_SPACE:
            url = getResourceFromBundleClasspath(pathWithoutPrefix);
            break;
        // fallback
        default:
            // just try to convert it to an URL
            url = new URL(path);
            break;
    }

    if (res != null) {
        url = res.getURL();
    }

    if (url == null) {
        throw new FileNotFoundException(getDescription() + " cannot be resolved to URL because it does not exist");
    }

    return url;
}
项目:gemini.blueprint    文件:OsgiBundleResourcePatternResolver.java   
/**
 * Searches the bundle classpath (Bundle-Classpath) entries for the given pattern.
 * 
 * @param bundle
 * @param pattern
 * @return
 * @throws IOException
 */
private Collection<String> findBundleClassPathMatchingPaths(Bundle bundle, String pattern) throws IOException {
    // list of strings pointing to the matching resources
    List<String> list = new ArrayList<String>(4);

    boolean trace = logger.isTraceEnabled();
    if (trace)
        logger.trace("Analyzing " + Constants.BUNDLE_CLASSPATH + " entries for bundle [" + bundle.getBundleId()
                + "|" + bundle.getSymbolicName() + "]");
    // see if there is a bundle class-path defined
    String[] entries = OsgiHeaderUtils.getBundleClassPath(bundle);

    if (trace)
        logger.trace("Found " + Constants.BUNDLE_CLASSPATH + " entries " + ObjectUtils.nullSafeToString(entries));

    // 1. if so, look at the entries
    for (int i = 0; i < entries.length; i++) {
        String entry = entries[i];

        // make sure to exclude the default entry
        if (!entry.equals(BUNDLE_DEFAULT_CP)) {

            // 2. locate resource first from the bundle space (since it might not exist)
            OsgiBundleResource entryResource = new OsgiBundleResource(bundle, entry);
            // call the internal method to avoid catching an exception
            URL url = null;
            ContextResource res = entryResource.getResourceFromBundleSpace(entry);
            if (res != null) {
                url = res.getURL();
            }

            if (trace)
                logger.trace("Classpath entry [" + entry + "] resolves to [" + url + "]");
            // we've got a valid entry so let's parse it
            if (url != null) {
                String cpEntryPath = url.getPath();
                // is it a jar ?
                if (entry.endsWith(JAR_EXTENSION))
                    findBundleClassPathMatchingJarEntries(list, url, pattern);
                // no, so it must be a folder
                else
                    findBundleClassPathMatchingFolders(list, bundle, cpEntryPath, pattern);
            }
        }
    }

    return list;
}
项目:spring4-understanding    文件:ResourceTestBean.java   
public ContextResource getContextResource() {
    return contextResource;
}
项目:spring4-understanding    文件:ResourceTestBean.java   
public void setContextResource(ContextResource contextResource) {
    this.contextResource = contextResource;
}
项目:class-guard    文件:ResourceTestBean.java   
public ContextResource getContextResource() {
    return contextResource;
}
项目:class-guard    文件:ResourceTestBean.java   
public void setContextResource(ContextResource contextResource) {
    this.contextResource = contextResource;
}
项目:spring-osgi    文件:OsgiBundleResourcePatternResolver.java   
/**
 * Searches the bundle classpath (Bundle-Classpath) entries for the given
 * pattern.
 * 
 * @param bundle
 * @param pattern
 * @return
 * @throws IOException
 */
private Collection findBundleClassPathMatchingPaths(Bundle bundle, String pattern) throws IOException {
    // list of strings pointing to the matching resources 
    List list = new ArrayList(4);

    boolean trace = logger.isTraceEnabled();
    if (trace)
        logger.trace("Analyzing " + Constants.BUNDLE_CLASSPATH + " entries for bundle [" + bundle.getBundleId()
                + "|" + bundle.getSymbolicName() + "]");
    // see if there is a bundle class-path defined
    String[] entries = OsgiHeaderUtils.getBundleClassPath(bundle);

    if (trace)
        logger.trace("Found " + Constants.BUNDLE_CLASSPATH + " entries " + ObjectUtils.nullSafeToString(entries));

    // 1. if so, look at the entries
    for (int i = 0; i < entries.length; i++) {
        String entry = entries[i];

        // make sure to exclude the default entry
        if (!entry.equals(BUNDLE_DEFAULT_CP)) {

            // 2. locate resource first from the bundle space (since it might not exist)
            OsgiBundleResource entryResource = new OsgiBundleResource(bundle, entry);
            // call the internal method to avoid catching an exception
            URL url = null;
            ContextResource res = entryResource.getResourceFromBundleSpace(entry);
            if (res != null) {
                url = res.getURL();
            }

            if (trace)
                logger.trace("Classpath entry [" + entry + "] resolves to [" + url + "]");
            // we've got a valid entry so let's parse it
            if (url != null) {
                String cpEntryPath = url.getPath();
                // is it a jar ?
                if (entry.endsWith(JAR_EXTENSION))
                    findBundleClassPathMatchingJarEntries(list, url, pattern);
                // no, so it must be a folder
                else
                    findBundleClassPathMatchingFolders(list, bundle, cpEntryPath, pattern);
            }
        }
    }

    return list;
}
项目:gemini.blueprint    文件:OsgiBundleResource.java   
/**
 * Resolves a resource from *the bundle space* only. Only the bundle and its
 * attached fragments are searched for the given resource. Note that this
 * method returns only the first URL found, discarding the rest. To retrieve
 * the entire set, consider using {@link OsgiBundleResourcePatternResolver}.
 * 
 * @param bundlePath the path to resolve
 * @return a URL to the returned resource or null if none is found
 * @throws IOException
 * 
 * @see {@link org.osgi.framework.Bundle#findEntries(String, String, boolean)}
 */
ContextResource getResourceFromBundleSpace(String bundlePath) throws IOException {
    ContextResource[] res = getAllUrlsFromBundleSpace(bundlePath);
    return (ObjectUtils.isEmpty(res) ? null : res[0]);
}
项目:spring-osgi    文件:OsgiBundleResource.java   
/**
 * Resolves a resource from *the bundle space* only. Only the bundle and its
 * attached fragments are searched for the given resource. Note that this
 * method returns only the first URL found, discarding the rest. To retrieve
 * the entire set, consider using {@link OsgiBundleResourcePatternResolver}.
 * 
 * @param bundlePath the path to resolve
 * @return a URL to the returned resource or null if none is found
 * @throws IOException
 * 
 * @see {@link org.osgi.framework.Bundle#findEntries(String, String, boolean)}
 */
ContextResource getResourceFromBundleSpace(String bundlePath) throws IOException {
    ContextResource[] res = getAllUrlsFromBundleSpace(bundlePath);
    return (ObjectUtils.isEmpty(res) ? null : res[0]);
}