亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? repositoryclassloader.java

?? jsr170接口的java實現。是個apache的開源項目。
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.jackrabbit.classloader;import java.beans.Introspector;import java.io.IOException;import java.net.URL;import java.net.URLClassLoader;import java.security.AccessController;import java.security.PrivilegedExceptionAction;import java.util.ArrayList;import java.util.Collections;import java.util.Date;import java.util.Enumeration;import java.util.HashMap;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.Map;import java.util.NoSuchElementException;import java.util.jar.Attributes;import java.util.jar.Manifest;import javax.jcr.RepositoryException;import javax.jcr.Session;import org.apache.jackrabbit.net.JCRURLConnection;import org.apache.jackrabbit.net.URLFactory;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** * The <code>RepositoryClassLoader</code> class extends the * <code>URLClassLoader</code> and provides the functionality to load classes * and resources from JCR Repository. * <p> * This class loader supports loading classes from the Repository hierarchy, * such as a <em>classes</em> 'folder', but also from Jar and Zip files stored * in the Repository. * <p> * For enhanced performance, this class loader keeps a list of resources and * classes which have already been loaded through this class loader. If later * requests ask for already cached resources, these are returned without * checking whether the underlying repository actually still exists. * <p> * This class is not intended to be extended by clients. * * @author Felix Meschberger */public class RepositoryClassLoader extends URLClassLoader {    /** default log category */    private static final Logger log =        LoggerFactory.getLogger(RepositoryClassLoader.class);    /** An empty list of url paths to call superclass constructor */    private static final URL[] NULL_PATH = {};    /**     * The special resource representing a resource which could not be     * found in the class path.     *     * @see #cache     * @see #findClassLoaderResource(String)     */    /* package */ static final ClassLoaderResource NOT_FOUND_RESOURCE =        new ClassLoaderResource(null, "[sentinel]", null) {            public boolean isExpired() {                return false;            }        };    /**     * The classpath which this classloader searches for class definitions.     * Each element of the vector should be either a directory, a .zip     * file, or a .jar file.     * <p>     * It may be empty when only system classes are controlled.     */    private ClassPathEntry[] repository;    /**     * The list of handles to use as a classpath. These is the unprocessed     * list of handles given to the constructor.     */    private PatternPath handles;    /**     * The <code>Session</code> grants access to the Repository to access the     * resources.     * <p>     * This field is not final such that it may be cleared when the class loader     * is destroyed.     */    private Session session;    /**     * Cache of resources found or not found in the class path. The map is     * indexed by resource name and contains mappings to instances of the     * {@link ClassLoaderResource} class. If a resource has been tried to be     * loaded, which could not be found, the resource is cached with the     * special mapping to {@link #NOT_FOUND_RESOURCE}.     *     * @see #NOT_FOUND_RESOURCE     * @see #findClassLoaderResource(String)     */    private Map cache;    /**     * Flag indicating whether the {@link #destroy()} method has already been     * called (<code>true</code>) or not (<code>false</code>)     */    private boolean destroyed;    /**     * Creates a <code>RepositoryClassLoader</code> from a list of item path     * strings containing globbing pattens for the paths defining the class     * path.     *     * @param session The <code>Session</code> to use to access the class items.     * @param classPath The list of path strings making up the (initial) class     *      path of this class loader. The strings may contain globbing     *      characters which will be resolved to build the actual class path.     * @param parent The parent <code>ClassLoader</code>, which may be     *            <code>null</code>.     *     * @throws NullPointerException if either the session or the handles list is     *             <code>null</code>.     */    public RepositoryClassLoader(Session session, String[] classPath,        ClassLoader parent) {        this(session, new DynamicPatternPath(session, classPath), parent);    }    /**     * Creates a <code>RepositoryClassLoader</code> from a     * {@link PatternPath} containing globbing pattens for the handles     * defining the class path.     *     * @param session The <code>Session</code> to use to access the class items.     * @param handles The {@link PatternPath} of handles.     * @param parent The parent <code>ClassLoader</code>, which may be     *            <code>null</code>.     *     * @throws NullPointerException if either the session or the handles list is     *             <code>null</code>.     */    /* package */ RepositoryClassLoader(Session session, PatternPath handles,            ClassLoader parent) {        // initialize the super class with an empty class path        super(NULL_PATH, parent);        // check session and handles        if (session == null) {            throw new NullPointerException("session");        }        if (handles == null) {            throw new NullPointerException("handles");        }        // set fields        this.session = session;        this.setHandles(handles);        this.cache = new HashMap();        this.destroyed = false;        // build the class repositories list        buildRepository();        log.debug("RepositoryClassLoader: {} ready", this);    }    /**     * Returns <code>true</code> if this class loader has already been destroyed     * by calling {@link #destroy()}.     */    protected boolean isDestroyed() {        return destroyed;    }    /**     * Destroys this class loader. This process encompasses all steps needed     * to remove as much references to this class loader as possible.     * <p>     * <em>NOTE</em>: This method just clears all internal fields and especially     * the class path to render this class loader unusable.     * <p>     * This implementation does not throw any exceptions.     */    public void destroy() {        // we expect to be called only once, so we stop destroyal here        if (isDestroyed()) {            log.debug("Instance is already destroyed");            return;        }        // set destroyal guard        destroyed = true;        // clear caches and references        setRepository(null);        setHandles(null);        session = null;        // clear the cache of loaded resources and flush cached class        // introspections of the JavaBean framework        if (cache != null) {            for (Iterator ci=cache.values().iterator(); ci.hasNext(); ) {                ClassLoaderResource res = (ClassLoaderResource) ci.next();                if (res.getLoadedClass() != null) {                    Introspector.flushFromCaches(res.getLoadedClass());                    res.setLoadedClass(null);                }                ci.remove();            }        }    }    //---------- URLClassLoader overwrites -------------------------------------    /**     * Finds and loads the class with the specified name from the class path.     *     * @param name the name of the class     * @return the resulting class     *     * @throws ClassNotFoundException If the named class could not be found or     *      if this class loader has already been destroyed.     */    protected Class findClass(final String name) throws ClassNotFoundException {        if (isDestroyed()) {            throw new ClassNotFoundException(name + " (Classloader destroyed)");        }        log.debug("findClass: Try to find class {}", name);        try {            return (Class) AccessController                .doPrivileged(new PrivilegedExceptionAction() {                    public Object run() throws ClassNotFoundException {                        return findClassPrivileged(name);                    }                });        } catch (java.security.PrivilegedActionException pae) {            throw (ClassNotFoundException) pae.getException();        }    }    /**     * Finds the resource with the specified name on the search path.     *     * @param name the name of the resource     *     * @return a <code>URL</code> for the resource, or <code>null</code>     *      if the resource could not be found or if the class loader has     *      already been destroyed.     */    public URL findResource(String name) {        if (isDestroyed()) {            log.warn("Destroyed class loader cannot find a resource");            return null;        }        log.debug("findResource: Try to find resource {}", name);        ClassLoaderResource res = findClassLoaderResource(name);        if (res != null) {            log.debug("findResource: Getting resource from {}, created {}",                res, new Date(res.getLastModificationTime()));            return res.getURL();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费国产在线观看| 一区二区三区四区高清精品免费观看| 亚洲美女偷拍久久| 99久久精品一区| 亚洲永久免费av| 日韩视频免费直播| 国产成人福利片| 亚洲一区影音先锋| 亚洲久草在线视频| 久久亚洲一区二区三区明星换脸| 成人av免费网站| 日韩成人dvd| 欧美国产乱子伦| 欧美偷拍一区二区| 久久国内精品自在自线400部| 中文字幕欧美日韩一区| 中文字幕免费观看一区| 中文字幕二三区不卡| 中文字幕一区二区视频| 制服丝袜激情欧洲亚洲| 成人免费视频视频| 青青草97国产精品免费观看| 国产精品精品国产色婷婷| 日韩视频在线一区二区| 精品国产一区久久| 欧美日韩国产小视频| www.成人网.com| 国产寡妇亲子伦一区二区| 风间由美一区二区av101| 免费成人在线观看视频| 国产一区二区三区| 日韩av一二三| 国产98色在线|日韩| 91色视频在线| 欧美一区二区三区四区高清| 色成人在线视频| 99久久婷婷国产综合精品电影| 99久久er热在这里只有精品15 | 久久精品视频在线免费观看| 日韩一二三区视频| 国产农村妇女毛片精品久久麻豆| 精品欧美一区二区久久| 制服丝袜亚洲精品中文字幕| 国产欧美1区2区3区| 亚洲一区二区三区小说| 国产福利一区二区三区| 91国产免费观看| 欧美精品一区二区在线播放 | 色综合欧美在线| 不卡一卡二卡三乱码免费网站| 欧美性三三影院| 国产香蕉久久精品综合网| 亚洲在线视频免费观看| 国产精品小仙女| 成人免费毛片app| 日韩三级电影网址| 亚洲午夜羞羞片| 免费的国产精品| 91久久人澡人人添人人爽欧美| 欧美一级高清大全免费观看| 一区二区三区日韩精品视频| 福利一区福利二区| 欧美大片日本大片免费观看| 久久久91精品国产一区二区精品 | 另类欧美日韩国产在线| 色综合激情久久| 国产亚洲精品精华液| 日韩成人精品在线| 69堂成人精品免费视频| 一区二区三区日韩欧美| 91在线国内视频| 国产精品日产欧美久久久久| 亚洲精品ww久久久久久p站 | 成人黄色大片在线观看| www成人在线观看| 日韩电影在线一区二区| 欧美人牲a欧美精品| 亚洲综合色成人| 色综合久久中文字幕| 一区二区中文视频| 一本色道a无线码一区v| 亚洲欧美另类在线| 色综合天天综合在线视频| 884aa四虎影成人精品一区| 亚洲中国最大av网站| 欧美亚洲高清一区| 香港成人在线视频| 国产99久久久精品| 欧美国产精品一区二区| 成人av电影在线| 亚洲男人都懂的| 欧美日韩在线电影| 国产精品久久久久久久久免费丝袜| 国产一区二区三区在线观看免费视频| 精品奇米国产一区二区三区| 国产在线精品一区二区| 国产精品欧美综合在线| 色综合视频在线观看| 亚洲一区二区三区在线| 欧美一区二区在线不卡| 韩国欧美国产一区| 91精品午夜视频| 久久国产麻豆精品| 中文字幕在线不卡一区二区三区| 91美女福利视频| 日韩国产欧美一区二区三区| 久久久久久麻豆| 久99久精品视频免费观看| 欧美日韩国产综合视频在线观看| 日本不卡视频一二三区| 国产女人18水真多18精品一级做| 91九色最新地址| 黑人巨大精品欧美一区| 亚洲欧美国产三级| 日韩视频一区二区三区 | 欧美韩国日本一区| 日本久久精品电影| 精品在线免费视频| 亚洲女性喷水在线观看一区| 欧美一级高清大全免费观看| av不卡在线播放| 久久精品国产在热久久| 亚洲美女免费视频| 精品sm在线观看| 欧美日韩免费在线视频| 国产一区二区三区免费观看| 亚洲一卡二卡三卡四卡| 亚洲一级在线观看| 欧美国产日产图区| 欧美va亚洲va在线观看蝴蝶网| 色综合中文字幕| 成人永久免费视频| 麻豆成人久久精品二区三区红| 欧美精品色一区二区三区| 亚洲电影中文字幕在线观看| 国产亚洲自拍一区| 日韩一级高清毛片| 欧美中文字幕一区| 免费观看一级欧美片| 一区二区三区高清在线| 国产精品久久一级| 欧美精品一区二区三区蜜桃 | 水蜜桃久久夜色精品一区的特点| 91精品久久久久久蜜臀| 日本精品一区二区三区高清| 成人激情视频网站| 国产精品亚洲专一区二区三区| 奇米影视在线99精品| 五月天一区二区三区| 欧美精品一区视频| 日韩欧美中文字幕制服| 6080午夜不卡| 91精品国产一区二区| 欧美人狂配大交3d怪物一区 | 日韩成人一级片| 亚洲国产精品久久久久秋霞影院| 亚洲精品乱码久久久久久 | 欧美偷拍一区二区| 欧美午夜理伦三级在线观看| 欧美最猛性xxxxx直播| 91精品久久久久久久久99蜜臂| 欧美日韩一区三区| 欧美日韩一区不卡| 欧美性猛交一区二区三区精品| 91国在线观看| 欧美色视频在线观看| 欧美放荡的少妇| 日韩一级黄色片| 久久精品一区二区三区不卡| 国产农村妇女毛片精品久久麻豆 | 亚洲在线中文字幕| 亚洲va天堂va国产va久| 日本伊人色综合网| 国产一区二区三区电影在线观看 | 色噜噜狠狠成人中文综合| 一本一道波多野结衣一区二区| 色播五月激情综合网| 91精品黄色片免费大全| 精品免费视频.| 国产精品传媒在线| 一区二区国产视频| 美女在线观看视频一区二区| 国产69精品久久久久777| 91色porny蝌蚪| 91精品国产综合久久精品图片 | 国产精品家庭影院| 亚洲成人午夜影院| 国产一区在线不卡| 99久久精品国产观看| 欧美久久久一区| 久久蜜桃av一区二区天堂| 亚洲欧美电影一区二区| 美女诱惑一区二区| 9i看片成人免费高清| 91精品国产综合久久婷婷香蕉| 国产清纯美女被跳蛋高潮一区二区久久w| 国产精品你懂的在线| 日韩精品乱码免费| av网站一区二区三区| 日韩精品一区二区三区四区|