<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    高老莊

    八戒的夢想:農婦,山泉,有點田
    posts - 4, comments - 14, trackbacks - 0, articles - 3
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    osgi 添加自定義命令

    Posted on 2010-01-22 17:34 高老莊 閱讀(614) 評論(0)  編輯  收藏 所屬分類: osgi

        在使用osgi實現時,可以使用諸如install,start,stop這樣的命令來管理bundle或者調用服務.有時我們可能想添加一些自定義命令.可以通過如下的步驟來實現
        1.編寫一個服務,實現如下的接口

    1public interface CommandProvider {
    2    /**
    3     Answer a string (may be as many lines as you like) with help
    4     texts that explain the command.
    5     */

    6    public String getHelp();
    7
    8}


    如果想定義hello方法,可以如下實現該接口:

     

    import java.util.Dictionary;
    import java.util.Properties;

    import org.eclipse.osgi.framework.console.CommandInterpreter;
    import org.eclipse.osgi.framework.console.CommandProvider;
    import org.osgi.framework.BundleActivator;
    import org.osgi.framework.BundleContext;
    import org.osgi.framework.Constants;
    public class Activator implements BundleActivator,CommandProvider  {
        BundleContext bundleContext
    =null;
        
    public void start(BundleContext context) throws Exception {
            System.out.println(
    "start" +context.getBundle().getLocation());
            bundleContext
    =context;
            context.registerService(CommandProvider.
    class.getName(), new AntherCommandProvider(), null);
            Dictionary dictionary
    =new Properties();
            dictionary.put(Constants.SERVICE_RANKING, 
    10);
            context.registerService(CommandProvider.
    class.getName(), this,dictionary);
            
        }


        
    public void stop(BundleContext context) throws Exception {
            System.out.println(
    "end" +context.getBundle().getLocation());
        }


        
    public String getHelp() {
            
    return "you are using the help command";
        }

        
        
    public void _helloa(CommandInterpreter intp)
        
    {
            intp.println(
    "helloa "+ this.getClass().getName());
        }

        
        
    public void _hello(CommandInterpreter intp) throws Exception {
            intp.println(
    "hello " + this.getClass().getName());
        }

    }


     

    import org.eclipse.osgi.framework.console.CommandInterpreter;
    import org.eclipse.osgi.framework.console.CommandProvider;

    public class AntherCommandProvider implements CommandProvider {

        
    public void _hello(CommandInterpreter intp)
        
    {
            intp.println(
    "hello "+ this.getClass().getName());
        }

        
    public String getHelp() {
            
    return null;
        }

    }


    其中,通過CommandInterpreter類型的nextArgument()方法可以迭代出所有的命令參數.
        2.注冊服務
            如果不將該接口注冊為服務,這個hello命令將不產生任何作用.注冊的服務名稱必須是org.eclipse.osgi.framework.console.CommandProvider.
           當系統中存在多個此接口的實現時,可以通過SERVICE_RANKING屬性來決定了命令執行的順序,既有最高值的服務將被優先執行.這種方式可以重載系統中已經存在的同名服務.
         3.執行命令
        請仔細體會輸出結果


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产免费A∨在线播放| 亚洲入口无毒网址你懂的| 国产亚洲日韩在线a不卡| 无码一区二区三区AV免费| 久久精品亚洲中文字幕无码麻豆| 日韩精品无码免费专区午夜| 亚洲国产一二三精品无码| 久久久久久毛片免费看| 亚洲av永久无码精品国产精品| 国产午夜精品久久久久免费视| 亚洲自偷自偷精品| 777成影片免费观看| 久久精品国产亚洲AV久| 日韩激情无码免费毛片| 水蜜桃视频在线观看免费| 国产亚洲精品不卡在线| 国产一级片免费看| 亚洲xxxxxx| 免费h黄肉动漫在线观看| 中文在线免费观看| 少妇中文字幕乱码亚洲影视| 免费人成网站在线观看10分钟| 亚洲变态另类一区二区三区 | 2020国产精品亚洲综合网| 麻豆国产精品入口免费观看| 黄色免费网址大全| 亚洲五月综合缴情在线观看| 在线看无码的免费网站| 亚洲熟妇AV日韩熟妇在线| 亚洲午夜精品一级在线播放放| 国产高清不卡免费视频| 亚洲人成欧美中文字幕| 国产亚洲精品无码拍拍拍色欲| 99在线在线视频免费视频观看| 伊人久久五月丁香综合中文亚洲| 亚洲人成电影网站国产精品 | 内射少妇36P亚洲区| 日韩一区二区免费视频| 久草免费手机视频| 天天综合亚洲色在线精品| 亚洲国产精品无码久久一区二区|