<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 高老莊 閱讀(608) 評論(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.執行命令
        請仔細體會輸出結果


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲性天天干天天摸| 精品日韩亚洲AV无码| 亚洲熟妇AV乱码在线观看| 动漫黄网站免费永久在线观看 | 国产乱子伦片免费观看中字| 在线综合亚洲欧洲综合网站| 亚洲色偷偷综合亚洲av78| 美女视频黄的全免费视频网站| 亚洲AV无码乱码在线观看代蜜桃| 亚洲免费人成视频观看| 亚洲成人高清在线| 日韩在线一区二区三区免费视频 | 每天更新的免费av片在线观看| 久久久久久亚洲精品成人| **aaaaa毛片免费| 亚洲一区精彩视频| 国产精品国产自线拍免费软件| 久久亚洲精品成人AV| 亚洲免费在线视频观看| 亚洲欧洲无码AV不卡在线| 免费国产小视频在线观看| 99精品免费视频| 亚洲精品美女久久久久9999| 日韩国产免费一区二区三区| 久久精品国产亚洲av瑜伽| 国产成人精品久久亚洲| 亚洲AV无码国产精品永久一区| 四虎永久成人免费| 在线观看免费无码专区| 亚洲国产日韩在线人成下载| 永久在线毛片免费观看| 91视频免费观看高清观看完整| 久久精品九九亚洲精品| 日韩毛片免费在线观看| 亚洲五月综合网色九月色| 免费人成网站在线高清| 无码人妻久久一区二区三区免费| 亚洲一区欧洲一区| 亚洲精品狼友在线播放| 四虎成人免费观看在线网址| 免费看搞黄视频网站|