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

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

?? serviceregistrationimpl.java

?? OSGI 的 源碼實現,采用JAVA書寫
?? JAVA
字號:
/* * Oscar - An implementation of the OSGi framework. * Copyright (c) 2004, Richard S. Hall * All rights reserved. *   * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: *   *   * Redistributions of source code must retain the above copyright *     notice, this list of conditions and the following disclaimer. *   * Redistributions in binary form must reproduce the above copyright *     notice, this list of conditions and the following disclaimer in *     the documentation and/or other materials provided with the *     distribution. *   * Neither the name of the ungoverned.org nor the names of its *     contributors may be used to endorse or promote products derived *     from this software without specific prior written permission. *   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *  * Contact: Richard S. Hall (heavy@ungoverned.org) * Contributor(s): ***/package org.ungoverned.oscar;import java.security.AccessController;import java.security.PrivilegedExceptionAction;import java.util.*;import java.util.ArrayList;import java.util.Dictionary;import java.util.Enumeration;import org.osgi.framework.*;import org.ungoverned.oscar.util.CaseInsensitiveMap;class ServiceRegistrationImpl implements ServiceRegistration{    // Oscar framework.    private Oscar m_oscar = null;    // Bundle implementing the service.    private BundleImpl m_bundle = null;    // Interfaces associated with the service object.    private String[] m_classes = null;    // Service Id associated with the service object.    private Long m_serviceId = null;    // Service object.    private Object m_svcObj = null;    // Service factory interface.    private ServiceFactory m_factory = null;    // Associated property dictionary.    private Map m_propMap = null;    // Re-usable service reference.    private ServiceReferenceImpl m_ref = null;    public ServiceRegistrationImpl(        Oscar oscar, BundleImpl bundle,        String[] classes, Long serviceId,        Object svcObj, Dictionary dict)    {        m_oscar = oscar;        m_bundle = bundle;        m_classes = classes;        m_serviceId = serviceId;        m_svcObj = svcObj;        m_factory = (m_svcObj instanceof ServiceFactory)            ? (ServiceFactory) m_svcObj : null;        initializeProperties(dict);        // This reference is the "standard" reference for this        // service and will always be returned by getReference().        // Since all reference to this service are supposed to        // be equal, we use the hashcode of this reference for        // a references to this service in ServiceReference.        m_ref = new ServiceReferenceImpl(this, m_bundle);    }    protected boolean isValid()    {        return (m_svcObj != null);    }    public ServiceReference getReference()    {        return m_ref;    }    public void setProperties(Dictionary dict)    {        // Make sure registration is valid.        if (!isValid())        {            throw new IllegalStateException(                "The service registration is no longer valid.");        }        // Set the properties.        initializeProperties(dict);        // Tell Oscar about it.        m_oscar.servicePropertiesModified(this);    }    private void initializeProperties(Dictionary dict)    {        // Create a case insensitive map.        if (m_propMap == null)        {            m_propMap = new CaseInsensitiveMap();        }        else        {            m_propMap.clear();        }        if (dict != null)        {            Enumeration keys = dict.keys();            while (keys.hasMoreElements())            {                Object key = keys.nextElement();                m_propMap.put(key, dict.get(key));            }        }        // Add the framework assigned properties.        m_propMap.put(Constants.OBJECTCLASS, m_classes);        m_propMap.put(Constants.SERVICE_ID, m_serviceId);    }    public void unregister()    {        Oscar.debug("ServiceRegistration.unregister()");        m_oscar.unregisterService(m_bundle, this);        m_svcObj = null;        m_factory = null;    }    /*     * Utility methods.     */    protected Object getService(Bundle acqBundle)    {        // If the service object is a service factory, then        // let it create the service object.        if (m_factory != null)        {            try {                if (System.getSecurityManager() != null)                {                    return AccessController.doPrivileged(                        new ServiceFactoryPrivileged(acqBundle, null));                }                else                {                    return getFactoryUnchecked(acqBundle);                }            } catch (Exception ex) {                Oscar.error("ServiceRegistrationImpl: Error getting service.", ex);                return null;            }        }        else        {            return m_svcObj;        }    }    protected void ungetService(Bundle relBundle, Object svcObj)    {        // If the service object is a service factory, then        // let is release the service object.        if (m_factory != null)        {            try {                if (System.getSecurityManager() != null)                {                    AccessController.doPrivileged(                        new ServiceFactoryPrivileged(relBundle, svcObj));                }                else                {                    ungetFactoryUnchecked(relBundle, svcObj);                }            } catch (Exception ex) {                Oscar.error("ServiceRegistrationImpl: Error ungetting service.", ex);            }        }    }    protected Bundle[] getUsingBundles()    {        return m_oscar.getUsingBundles(m_ref);    }    protected Object getProperty(String key)    {        return m_propMap.get(key);    }    private transient ArrayList m_list = new ArrayList();    protected String[] getPropertyKeys()    {        synchronized (m_list)        {            m_list.clear();            Iterator i = m_propMap.entrySet().iterator();            while (i.hasNext())            {                Map.Entry entry = (Map.Entry) i.next();                m_list.add(entry.getKey());            }            return (String[]) m_list.toArray(new String[m_list.size()]);        }    }    private Object getFactoryUnchecked(Bundle bundle)    {        return m_factory.getService(bundle, this);    }    private void ungetFactoryUnchecked(Bundle bundle, Object svcObj)    {        m_factory.ungetService(bundle, this, svcObj);    }    /**     * This simple class is used to ensure that when a service factory     * is called, that no other classes on the call stack interferes     * with the permissions of the factory itself.    **/    private class ServiceFactoryPrivileged implements PrivilegedExceptionAction    {        private Bundle m_bundle = null;        private Object m_svcObj = null;        public ServiceFactoryPrivileged(Bundle bundle, Object svcObj)        {            m_bundle = bundle;            m_svcObj = svcObj;        }        public Object run() throws Exception        {            if (m_svcObj == null)            {                return getFactoryUnchecked(m_bundle);            }            else            {                ungetFactoryUnchecked(m_bundle, m_svcObj);            }            return null;        }    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲天堂a在线| 成人黄色av电影| 午夜精品久久久久久久久久 | 国产日韩欧美激情| 精品久久一二三区| 久久麻豆一区二区| 国产欧美视频一区二区| 国产精品日韩成人| 中文字幕中文字幕一区二区| ...中文天堂在线一区| 亚洲欧美日韩在线不卡| 一区二区三区 在线观看视频| 亚洲一区二区影院| 日韩av电影天堂| 精品一区二区免费看| 国产乱理伦片在线观看夜一区| 国产精品一区二区久久精品爱涩| 国产成人在线观看免费网站| 成人精品免费网站| 色欧美日韩亚洲| 67194成人在线观看| 久久亚洲影视婷婷| 亚洲欧洲日产国产综合网| 一区二区三区日韩精品视频| 天天色综合成人网| 国产一区二区影院| 99久久99久久久精品齐齐| 欧美图片一区二区三区| 日韩精品一区二区三区视频| 国产日韩欧美高清在线| 亚洲最新在线观看| 麻豆精品一区二区三区| 国产ts人妖一区二区| 欧美亚洲国产一区二区三区va| 欧美一区二区三级| 国产精品欧美极品| 天天综合色天天| 国产91丝袜在线播放九色| 色婷婷久久久亚洲一区二区三区 | 欧美va在线播放| 国产精品狼人久久影院观看方式| 亚洲黄色在线视频| 久久国产精品99精品国产| 99re热这里只有精品视频| 777午夜精品免费视频| 欧美激情在线一区二区三区| 亚洲综合色婷婷| 国产成人亚洲综合色影视| 欧美久久免费观看| 中文字幕成人网| 日韩av电影免费观看高清完整版 | 欧美xfplay| 一个色在线综合| 国产精品一区在线| 欧美色欧美亚洲另类二区| 国产婷婷色一区二区三区在线| 亚洲3atv精品一区二区三区| 成人av网址在线观看| 日韩欧美一级二级三级久久久| 最新成人av在线| 国产精品99久久久久久似苏梦涵 | 欧美日韩国产成人在线免费| 欧美经典一区二区| 日韩高清不卡一区二区三区| 91麻豆国产在线观看| 26uuu成人网一区二区三区| 亚洲一二三四在线观看| proumb性欧美在线观看| 日韩精品一区国产麻豆| 午夜日韩在线观看| 91丨porny丨在线| 国产欧美精品在线观看| 久久99国产精品尤物| 欧美日韩国产经典色站一区二区三区| 欧美国产综合一区二区| 精品一区二区在线观看| 欧美一区二区三区影视| 午夜在线电影亚洲一区| 日本道免费精品一区二区三区| 国产情人综合久久777777| 美女尤物国产一区| 91精品国产麻豆国产自产在线| 亚洲精品欧美在线| 成人av免费观看| 国产精品污网站| 国产精品123| 国产亚洲欧美日韩俺去了| 九九热在线视频观看这里只有精品 | 91麻豆国产福利精品| 欧美高清在线一区二区| 国产很黄免费观看久久| 久久久99久久| 国产精品一二三四区| 久久亚洲精品小早川怜子| 久久精品国产精品青草| 日韩欧美资源站| 亚洲成a人v欧美综合天堂下载| 91国模大尺度私拍在线视频| 亚洲蜜臀av乱码久久精品| 99久久国产综合精品色伊| 中文字幕亚洲在| 91丨porny丨中文| 一区二区三区免费观看| 欧美性视频一区二区三区| 亚洲综合无码一区二区| 精品视频一区二区不卡| 亚洲高清久久久| 欧美一级视频精品观看| 麻豆精品在线视频| 国产午夜精品久久久久久免费视 | 卡一卡二国产精品| 欧美大片免费久久精品三p| 久久99精品久久只有精品| 久久日韩精品一区二区五区| 国产成人av网站| 国产精品妹子av| 日本乱人伦aⅴ精品| 亚洲成人手机在线| 日韩美女主播在线视频一区二区三区| 免费成人在线视频观看| 久久精品在线免费观看| 波多野结衣在线一区| 亚洲精品va在线观看| 欧美精品 日韩| 国产在线精品一区在线观看麻豆| 久久精品视频一区二区| 97精品久久久久中文字幕| 午夜视频在线观看一区二区| 日韩免费福利电影在线观看| 国产不卡免费视频| 亚洲一区二区在线播放相泽| 日韩欧美三级在线| 国产91露脸合集magnet| 一区二区三区欧美视频| 欧美成人国产一区二区| 成人动漫一区二区在线| 亚洲成av人片一区二区三区| 欧美电视剧免费全集观看| 成人的网站免费观看| 三级不卡在线观看| 欧美激情一区二区三区在线| 欧美午夜理伦三级在线观看| 久久99国产精品久久99| 成人免费在线播放视频| 91麻豆精品91久久久久同性| 丁香啪啪综合成人亚洲小说 | 色综合久久88色综合天天6| 免费美女久久99| 国产精品乱码一区二区三区软件| 色狠狠av一区二区三区| 经典三级在线一区| 尤物av一区二区| 久久久久久久av麻豆果冻| 欧洲人成人精品| 国产成人综合在线观看| 视频在线观看一区| 中文字幕五月欧美| 日韩欧美一区二区不卡| 91色乱码一区二区三区| 国模大尺度一区二区三区| 亚洲国产精品视频| 亚洲国产精品精华液2区45| 欧美日韩一级二级| 成人免费毛片app| 蜜臀久久99精品久久久画质超高清 | 欧美日韩久久一区| 国产v日产∨综合v精品视频| 日本怡春院一区二区| 亚洲精品日日夜夜| 国产精品免费观看视频| 精品国产精品一区二区夜夜嗨| 在线视频国内自拍亚洲视频| 成人丝袜高跟foot| 麻豆精品视频在线| 亚洲成人免费在线观看| 亚洲男同性恋视频| 国产欧美日本一区视频| 精品1区2区在线观看| 91精品麻豆日日躁夜夜躁| 色系网站成人免费| 成人精品鲁一区一区二区| 精品一区二区三区在线播放 | 欧美日韩精品久久久| 91香蕉视频黄| 粉嫩av一区二区三区在线播放 | 成人午夜视频网站| 激情综合网最新| 青青草97国产精品免费观看无弹窗版| 亚洲精品日韩专区silk| 亚洲欧洲中文日韩久久av乱码| 久久精品亚洲乱码伦伦中文| 欧美成人精品3d动漫h| 欧美一级欧美三级在线观看| 欧美另类久久久品| 欧洲精品视频在线观看| 日本二三区不卡| 欧美在线一区二区三区| 色综合激情久久| 日本精品视频一区二区| 色哟哟一区二区在线观看|