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

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

?? oscar.java

?? OSGI 的 源碼實現,采用JAVA書寫
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
                    map.put(new Long(target.getBundleId()),                        new RefreshHelper(target));                    // Add all importing bundles to map.                    populateImportGraph(target, map);                }                // At this point the map contains every bundle that has been                // updated and/or removed as well as all bundles that import                // packages from these bundles.                for (Iterator iter = map.values().iterator(); iter.hasNext(); )                {                    RefreshHelper helper = (RefreshHelper) iter.next();                    helper.stop();                    helper.purgeOrRemove();                    helper.reinitialize();                }                // Now restart bundles that were previously running.                for (Iterator iter = map.values().iterator(); iter.hasNext(); )                {                    RefreshHelper helper = (RefreshHelper) iter.next();                    helper.restart();                }            }        }        fireFrameworkEvent(FrameworkEvent.PACKAGES_REFRESHED, getBundle(0), null);    }    private void populateImportGraph(BundleImpl target, HashMap map)    {        // Get the exported packages for the specified bundle.        ExportedPackage[] pkgs = getExportedPackages(target);        for (int pkgIdx = 0; (pkgs != null) && (pkgIdx < pkgs.length); pkgIdx++)        {            // Get all imports of this package.            Bundle[] importers = getImportingBundles(pkgs[pkgIdx]);            // Add importing bundle to map if not already present.            for (int impIdx = 0;                (importers != null) && (impIdx < importers.length);                impIdx++)            {                Long id = new Long(importers[impIdx].getBundleId());                if (map.get(id) == null)                {                    map.put(id, new RefreshHelper(importers[impIdx]));                    // Now recurse into each bundle to get its importers.                    populateImportGraph(                        (BundleImpl) importers[impIdx], map);                }            }        }    }    /**     * This method adds a import target to the IMPORTS_ATTR attribute     * array associated with the specified module. If the module is     * already validated, then this method will not add the new     * import target if it will cause the specified module to become     * invalidate. It is possible to "force" the method to add the     * new import target, but doing so might cause module and modules     * that depend on it to be invalidated.     * @param module the module whose IMPORTS_ATTR meta-data is to be modified.     * @param target the target to import.     * @param version the version of the target to import.     * @param force indicates whether to force the operation, even in the     *        case where the module will be invalidated.     * @return <tt>true</tt> if the import target was added, <tt>false</tt>     *         otherwise.    **/    protected boolean addImport(        Module module, Object target, Object version, boolean force)    {// TODO: Import permission check        // Synchronize on the module manager, because we don't want        // anything to change while we are in the middle of this        // operation.// TODO: Is this lock sufficient?        synchronized (m_mgr)        {            ImportSearchPolicy search = (ImportSearchPolicy) m_mgr.getSearchPolicy();            boolean added = false;            Module exporter = null;            // Get the valid attribute.            boolean valid = ImportSearchPolicy.getValidAttribute(module).booleanValue();            // Only attempt to resolve the new import target if the            // module is already valid.            if (valid)            {                exporter = search.resolveImportTarget(target, version);            }            // There are three situations that will cause us to add the            // new import target to the existing module: 1) we are            // being forced to do so, 2) the module is not currently            // validated so adding imports is okay, or 3) the module            // is currently valid and we were able to resolve the new            // import target. The follow if-statement checks for these            // three cases.            if (force                || !valid                || (valid && (exporter != null)))            {                // Create a new imports attribute array and                // copy the old values into it.                Object[][] imports = ImportSearchPolicy.getImportsAttribute(module);                Object[][] newImports = new Object[imports.length + 1][3];                for (int i = 0; i < imports.length; i++)                {                    newImports[i] = imports[i];                }                // This is the new import target.                newImports[newImports.length - 1] = new Object[] { target, version, exporter };                module.setAttribute(ImportSearchPolicy.IMPORTS_ATTR, newImports);                added = true;                // If it was not possible to resolve the new import target                // and the module is currently valid, then the module must                // be invalidated.                if ((exporter == null) && valid)                {                    search.invalidate(                        module, module.getAttributes(), module.getResourceSources(),                        module.getLibrarySources());                }            }            return added;        }    }    //    // Implementations for Bundle interface methods.    //    /**     * Implementation for Bundle.getBundleId().    **/    protected long getBundleId(BundleImpl bundle)    {        return bundle.getInfo().getBundleId();    }    /**     * Implementation for Bundle.getHeaders().    **/    protected Dictionary getBundleHeaders(BundleImpl bundle)    {        if (System.getSecurityManager() != null)        {            AccessController.checkPermission(m_adminPerm);        }        return new MapToDictionary(bundle.getInfo().getCurrentHeader());    }    /**     * Implementation for Bundle.getLocation().    **/    protected String getBundleLocation(BundleImpl bundle)    {        if (System.getSecurityManager() != null)        {            AccessController.checkPermission(m_adminPerm);        }        return bundle.getInfo().getLocation();    }    /**     * Implementation for Bundle.getResource().    **/    protected URL getBundleResource(BundleImpl bundle, String name)    {        if (bundle.getInfo().getState() == Bundle.UNINSTALLED)        {            throw new IllegalStateException("The bundle is uninstalled.");        }        else if (System.getSecurityManager() != null)        {            AccessController.checkPermission(m_adminPerm);        }        return bundle.getInfo().getCurrentModule().getClassLoader().getResource(name);// We previously search the old revisions of the bundle for resources// first, but this caused multiple resolves when a bundle was updated// but not resolved yet. I think the following is the better way, but// other frameworks do it like above.//        Module[] modules = bundle.getInfo().getModules();//        for (int modIdx = 0; modIdx < modules.length; modIdx++)//        {//            URL url = modules[modIdx].getClassLoader().getResource(name);//            if (url != null)//            {//                return url;//            }//        }//        return null;    }    /**     * Implementation for Bundle.getRegisteredServices().    **/    protected ServiceReference[] getBundleRegisteredServices(BundleImpl bundle)    {        if (bundle.getInfo().getState() == Bundle.UNINSTALLED)        {            throw new IllegalStateException("The bundle is uninstalled.");        }        synchronized (m_quickLock)        {            BundleInfo info = bundle.getInfo();            if (info.getServiceRegistrationCount() > 0)            {                // Create a list of service references.                ArrayList list = new ArrayList();                for (int regIdx = 0; regIdx < info.getServiceRegistrationCount(); regIdx++)                {                    // Get service registration.                    ServiceRegistrationImpl reg = (ServiceRegistrationImpl)                        info.getServiceRegistration(regIdx);                    // Check that the current security context has permission                    // to get at least one of the service interfaces; the                    // objectClass property of the service stores its service                    // interfaces.                    boolean hasPermission = false;                    if (System.getSecurityManager() != null)                    {                        String[] objectClass = (String[])                            reg.getProperty(Constants.OBJECTCLASS);                        if (objectClass == null)                        {                            return null;                        }                        for (int ifcIdx = 0;                            !hasPermission && (ifcIdx < objectClass.length);                            ifcIdx++)                        {                            try                            {                                ServicePermission perm =                                    new ServicePermission(                                        objectClass[ifcIdx], ServicePermission.GET);                                AccessController.checkPermission(perm);                                hasPermission = true;                            }                            catch (Exception ex)                            {                            }                        }                    }                    else                    {                        hasPermission = true;                    }                    if (hasPermission)                    {                        list.add(reg.getReference());                    }                }                if (list.size() > 0)                {                    return (ServiceReference[])                        list.toArray(new ServiceReference[list.size()]);                }            }        }        return null;    }    /**     * Implementation for Bundle.getServicesInUse().    **/    protected ServiceReference[] getBundleServicesInUse(BundleImpl bundle)    {        synchronized (m_quickLock)        {            BundleInfo info = bundle.getInfo();            Iterator iter = info.getServiceUsageCounters();            if (iter.hasNext())            {                // Create a list of service references.                ArrayList list = new ArrayList();                while (iter.hasNext())                {                    // Get service reference.                    ServiceReference ref = (ServiceReference) iter.next();                    // Check that the current security context has permission                    // to get at least one of the service interfaces; the                    // objectClass property of the service stores its service                    // interfaces.                    boolean hasPermission = false;                    if (System.getSecurityManager() != null)                    {                        String[] objectClass = (String[])                            ref.getProperty(Constants.OBJECTCLASS);                        if (objectClass == null)                        {                            return null;                        }                        for (int i = 0;                            !hasPermission && (i < objectClass.length);                            i++)                        {                            try                            {                                ServicePermission perm =                                    new ServicePermission(                                        objectClass[i], ServicePermission.GET);                                AccessController.checkPermission(perm);                                hasPermission = true;                            }                            catch (Exception ex)                            {                            }                        }                    }                    else                    {                        hasPermission = true;                    }                    if (hasPermission)            

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一级完整毛片| 91高清视频免费看| 2024国产精品| 国产一区视频导航| 国产亚洲成av人在线观看导航| 国产乱子伦一区二区三区国色天香| 26uuu亚洲综合色| 成人h精品动漫一区二区三区| 中文字幕在线不卡一区| 日本精品一级二级| 日本中文字幕不卡| 日本一二三四高清不卡| 色综合久久综合| 日本女人一区二区三区| 久久久精品蜜桃| 在线观看网站黄不卡| 日本不卡123| 国产拍揄自揄精品视频麻豆| 一本大道久久a久久综合婷婷| 亚洲成人免费在线| 久久综合九色综合欧美亚洲| aa级大片欧美| 日本不卡中文字幕| 中文字幕不卡的av| 欧美日韩成人高清| 国产成人在线视频网站| 一区二区三区精品视频在线| 日韩三级伦理片妻子的秘密按摩| 国产一区欧美二区| 香港成人在线视频| 国产日本欧洲亚洲| 欧美男生操女生| 风流少妇一区二区| 三级久久三级久久久| 久久嫩草精品久久久精品| 色香蕉久久蜜桃| 狠狠色伊人亚洲综合成人| 亚洲欧美国产77777| 日韩欧美黄色影院| 一本色道久久综合亚洲精品按摩| 美女在线观看视频一区二区| 亚洲精品欧美二区三区中文字幕| 日韩欧美成人激情| 在线观看区一区二| 成人av网站在线| 蜜桃视频一区二区三区| 亚洲激情在线激情| 欧美国产精品专区| 欧美一级精品在线| 欧美亚州韩日在线看免费版国语版| 国内精品嫩模私拍在线| 日韩精品一二三区| 一区二区三区高清在线| 国产精品国产成人国产三级| 日韩三级精品电影久久久 | 91精品国产麻豆| 99久久精品免费看国产| 韩国成人在线视频| 日韩国产成人精品| 亚洲一区二区三区四区的| 亚洲天堂成人网| 中文字幕精品三区| 中文字幕精品在线不卡| 久久久综合九色合综国产精品| 制服丝袜亚洲精品中文字幕| 色婷婷久久99综合精品jk白丝| 成人性生交大片免费| 国产精品影视在线| 国产另类ts人妖一区二区| 美女视频一区二区| 毛片av一区二区| 看电影不卡的网站| 美女一区二区视频| 久久精品国产在热久久| 久久99久久精品| 美女www一区二区| 久久国产人妖系列| 精品亚洲国内自在自线福利| 美女视频黄a大片欧美| 美女一区二区视频| 国产精品中文字幕日韩精品| 国产乱淫av一区二区三区| 国产成人综合亚洲91猫咪| 国产盗摄视频一区二区三区| 国产麻豆欧美日韩一区| 成人一区二区三区视频| av在线这里只有精品| 91美女片黄在线观看91美女| 色噜噜狠狠成人中文综合| 色综合久久综合网97色综合 | 亚洲成人av在线电影| 亚洲国产你懂的| 日韩国产成人精品| 国产麻豆日韩欧美久久| 99精品视频中文字幕| 在线观看日韩高清av| 欧美一卡二卡在线观看| 久久亚洲精精品中文字幕早川悠里| 亚洲精品一区在线观看| 国产精品成人午夜| 亚洲自拍另类综合| 美女一区二区在线观看| 成人动漫在线一区| 精品污污网站免费看| 精品999久久久| 国产精品美女久久久久久久久 | 国产乱码一区二区三区| 99久久精品99国产精品| 欧美日韩一区二区三区四区| 欧美一区二区三区的| 欧美—级在线免费片| 亚洲国产精品久久久久婷婷884 | 欧美日韩一区在线观看| 日韩免费视频线观看| 亚洲国产精品精华液2区45| 一区二区三区波多野结衣在线观看 | 色综合久久精品| 91精品国产综合久久婷婷香蕉| 欧美国产丝袜视频| 日本三级韩国三级欧美三级| 成人黄色国产精品网站大全在线免费观看 | 国产精品久久久爽爽爽麻豆色哟哟| 欧美激情中文字幕| 一区二区在线观看视频在线观看| 无码av免费一区二区三区试看| 国产专区欧美精品| 欧美日韩国产另类一区| 欧美国产一区二区在线观看| 五月婷婷激情综合| 99久久99久久精品免费看蜜桃| 日韩一区二区三区免费看 | 综合欧美一区二区三区| 奇米777欧美一区二区| 99久久99久久久精品齐齐| 精品少妇一区二区三区免费观看 | 国产成人啪免费观看软件 | 日韩欧美国产一区在线观看| 自拍偷拍欧美精品| 国产精品一区二区不卡| 51精品国自产在线| 亚洲精品乱码久久久久久黑人 | 欧美特级限制片免费在线观看| wwwwxxxxx欧美| 日韩av一区二| 色偷偷久久人人79超碰人人澡 | 26uuu亚洲婷婷狠狠天堂| 一区二区三区91| 99精品欧美一区| 久久久久9999亚洲精品| 美女性感视频久久| 欧美片网站yy| 亚洲福利视频三区| 色噜噜久久综合| 日韩久久一区二区| 成人免费的视频| 国产日韩欧美不卡| 国产精品一区二区三区99| 精品美女在线播放| 久久综合综合久久综合| 日韩一区二区中文字幕| 水野朝阳av一区二区三区| 欧美精品久久久久久久久老牛影院| 亚洲免费资源在线播放| 91麻豆免费观看| 亚洲欧洲制服丝袜| 91福利在线免费观看| 亚洲综合色在线| 欧美三级视频在线播放| 亚洲成人黄色小说| 欧美一级精品大片| 国产美女久久久久| 国产精品乱码人人做人人爱 | 国产一区二区h| 久久久精品黄色| 成人免费视频国产在线观看| 欧美激情在线看| 91首页免费视频| 亚洲国产一二三| 欧美一级视频精品观看| 久久99这里只有精品| 久久久电影一区二区三区| 国产suv精品一区二区三区| 欧美精彩视频一区二区三区| aa级大片欧美| 午夜精品一区二区三区电影天堂| 91精品久久久久久久久99蜜臂| 麻豆国产一区二区| 欧美激情在线一区二区| 欧美自拍丝袜亚洲| 日韩av不卡一区二区| 久久夜色精品国产噜噜av| 波多野结衣在线一区| 亚洲国产精品一区二区久久| 91精品国产综合久久精品麻豆| 久久99国产精品久久| 国产精品美女久久久久久2018 | 激情伊人五月天久久综合| 日本一区二区三区国色天香 | 色欧美日韩亚洲| 日精品一区二区|