欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenDaylight的示例

汽車電子技術(shù) ? 來(lái)源:碼農(nóng)與軟件時(shí)代 ? 作者:碼農(nóng)與軟件時(shí)代 ? 2023-02-14 14:11 ? 次閱讀

OpenDaylight提供了一個(gè)例子:Toaster(烤面包機(jī)),借這個(gè)例子學(xué)習(xí)OpenDaylight的特性。在Toaster中,真正有關(guān)烤面包機(jī)相關(guān)的代碼較少,它只是一種OpenDaylight具體思想的展示品,已有相關(guān)文章對(duì)其進(jìn)行了分析。現(xiàn)在我們舉一個(gè)永恒的示例:Hello World。

一、應(yīng)用程序類型

OpenDaylight應(yīng)用程序開(kāi)發(fā),分如下兩種:

(1)如果提供API接口能夠滿足當(dāng)前需求,那么只需基于REST API開(kāi)發(fā)External System(外置式應(yīng)用程序);

(2)如果提供的API接口不能滿足當(dāng)前需求,則需要進(jìn)行Internal System(內(nèi)置式應(yīng)用程序)的開(kāi)發(fā),可以理解為插件。

二、應(yīng)用程序開(kāi)發(fā)流程

對(duì)于External System來(lái)說(shuō),我們?cè)诮榻B基于REST API編程時(shí)再進(jìn)行介紹。下面我們來(lái)看下,Internal System的開(kāi)發(fā)流程如下圖所示:

圖片

(1)生成項(xiàng)目骨架(Archetype)

Archetype是一個(gè)Maven項(xiàng)目模板工具包,使用Archetype來(lái)生成項(xiàng)目骨架,可以使得開(kāi)發(fā)人員在開(kāi)發(fā)新的應(yīng)用程序時(shí),使用與ODL風(fēng)格一致的最佳實(shí)踐方法。

(2)定義模型(model)

YANG在OpenDaylight中做為建模語(yǔ)言使用,MD-SAL中M即是YANG。YANG的使用已不局限于NETCONF。YANG模型定義之后,通過(guò)YANG TOOLS可以自動(dòng)生成部分代碼,但對(duì)于Model對(duì)應(yīng)的具體實(shí)現(xiàn)需要添加相關(guān)業(yè)務(wù)邏輯。

執(zhí)行mvn clean install -Dmaven.test.failure.ignore=true

圖片

(3)代碼實(shí)現(xiàn)

①實(shí)現(xiàn)Impl:添加業(yè)務(wù)邏輯(上圖藍(lán)色部分);

②配置blueprint.xml:xml文件定義和描述了不同組件的組裝,它是Blueprint編程模型的關(guān)鍵。規(guī)范描述了組件如何獲得實(shí)例,如何捆綁到一起形成一個(gè)運(yùn)行模塊。

(4)構(gòu)建安裝

執(zhí)行 mvn clean install命令,可以將代碼打包并安裝到倉(cāng)庫(kù)中。

圖片

(5)測(cè)試

OpenDaylight提供了API測(cè)試頁(yè)面,可以在該頁(yè)面直接進(jìn)行API的測(cè)試,地址為:http://localhost:8181/apidoc/explorer/index.html

三、Hello示例

1.構(gòu)建Hello項(xiàng)目

步驟1 執(zhí)行構(gòu)建項(xiàng)目命令:

mvn archetype:generate -DarchetypeGroupId=org.opendaylight.controller -DarchetypeArtifactId=opendaylight-startup-archetype -DarchetypeRepository=http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ -DarchetypeCatalog=http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/archetype-catalog.xml

輸入Hello交互信息

Define value for property 'groupId': org.opendaylight.hello

Define value for property 'artifactId': hello

[INFO] Using property: version = 0.1.0-SNAPSHOT

Define value for property 'package' org.opendaylight.hello: :

Define value for property 'classPrefix' Hello: : hello

Define value for property 'copyright': No

[INFO] Using property: copyrightYear = 2017

Confirm properties configuration:

groupId: org.opendaylight.hello

artifactId: hello

version: 0.1.0-SNAPSHOT

package: org.opendaylight.hello

classPrefix: hello

copyright: No

copyrightYear: 2017

Y: : Y

安裝成功的信息提示:

[INFO] ----------------------------------------------------------------------------

[INFO] Using following parameters for creating project from Archetype: opendaylight-startup-archetype:1.3.0-Carbon

[INFO] ----------------------------------------------------------------------------

[INFO] Parameter: groupId, Value: org.opendaylight.hello

[INFO] Parameter: artifactId, Value: hello

[INFO] Parameter: version, Value: 0.1.0-SNAPSHOT

[INFO] Parameter: package, Value: org.opendaylight.hello

[INFO] Parameter: packageInPathFormat, Value: org/opendaylight/hello

[INFO] Parameter: classPrefix, Value: hello

[INFO] Parameter: package, Value: org.opendaylight.hello

[INFO] Parameter: version, Value: 0.1.0-SNAPSHOT

[INFO] Parameter: copyright, Value: No

[INFO] Parameter: groupId, Value: org.opendaylight.hello

[INFO] Parameter: artifactId, Value: hello

[INFO] Parameter: copyrightYear, Value: 2017

[WARNING] Don't override file D:\\CODE\\odlexample\\hello\\hello\\pom.xml

[INFO] Project created from Archetype in dir: D:\\CODE\\odlexample\\hello\\hello

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 45.526 s

步驟2. 構(gòu)建Hello項(xiàng)目,執(zhí)行命令

mvn clean install -Dmaven.test.failure.ignore=true

[INFO] --- maven-site-plugin:3.6:attach-descriptor (generate-site) @ hello-aggregator ---

[INFO] Attaching 'src\\site\\site.xml' site descriptor with classifier 'site'.

[INFO] ------------------------------------------------------------------------

[INFO] Reactor Summary:

[INFO]

[INFO] ODL :: org.opendaylight.hello :: hello-api ......... SUCCESS [ 19.565 s]

[INFO] ODL :: org.opendaylight.hello :: hello-impl ........ SUCCESS [ 8.826 s]

[INFO] ODL :: org.opendaylight.hello :: hello-cli ......... SUCCESS [ 8.878 s]

[INFO] ODL :: org.opendaylight.hello :: hello-features .... SUCCESS [15:41 min]

[INFO] ODL :: org.opendaylight.hello :: hello-karaf ....... SUCCESS [ 41.676 s]

[INFO] ODL :: org.opendaylight.hello :: hello-artifacts ... SUCCESS [ 1.794 s]

[INFO] ODL :: org.opendaylight.hello :: hello-it .......... SUCCESS [03:38 min]

[INFO] hello .............................................. SUCCESS [ 23.209 s]

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 21:07 min

生成的項(xiàng)目骨架為:

圖片

生成的代碼文件為:

圖片

2.定義模型

步驟1 修改 api/src/main/yang/hello.yang,增加簡(jiǎn)單的Hello RPC信息:

圖片

步驟2 執(zhí)行命令:mvn clean install -Dmaven.test.failure.ignore=true

圖片

3.代碼實(shí)現(xiàn)

步驟1 實(shí)現(xiàn)Impl:

圖片

步驟2 配置blueprint.xml

在文件impl-blueprint.xml( src/main/resources/org/opendaylight/blueprint)注冊(cè)RPC引用,增加粗體部分信息。

圖片

注:在 Blueprint XML 中,bean 元素將定義一個(gè) bean 管理器。用于對(duì)象構(gòu)造的參數(shù)由 argument 元素指定;注入的屬性則由 property 子元素指定。property 元素指定要注入的屬性的名稱和值。屬性名與 Java 類中的 setter 方法名對(duì)應(yīng)。例如,如果屬性名為 foo,那么對(duì)應(yīng)的 setter 方法為 setFoo(arg)。屬性名和對(duì)應(yīng)的 setter 方法名遵循 JavaBeans 規(guī)范中定義的屬性設(shè)計(jì)模式。

步驟3 類HelloProvider中init方法中綁定HelloService和HelloWorldImpl

圖片

4.構(gòu)建安裝、啟動(dòng)測(cè)試

步驟1 執(zhí)行命令 mvn clean install

步驟2 啟動(dòng)OpenDaylight

\\CODE\\odlexample\\hello\\hello\\karaf\\target\\assembly\\bin>karaf

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=256M; support was removed in 8.0

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8.0

Apache Karaf starting up. Press Enter to open the shell now...

100% [========================================================================]

Karaf started in 29s. Bundle stats: 294 active, 294 total

步驟3 瀏覽器打開(kāi)如下地址(admin\\admin):

http://localhost:8181/apidoc/explorer/index.html

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1513

    瀏覽量

    62430
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3638

    瀏覽量

    94012
  • REST
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    9449
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Matlab繪圖示例

    Matlab繪圖示例
    發(fā)表于 05-10 10:07 ?831次閱讀

    ChipScope使用示例

    Xilinx FPGA工程例子源碼:ChipScope使用示例
    發(fā)表于 06-07 14:13 ?7次下載

    設(shè)計(jì)示例

    六設(shè)計(jì)示例
    的頭像 發(fā)表于 05-29 11:10 ?1270次閱讀
    設(shè)計(jì)<b class='flag-5'>示例</b>

    NanDAC+mbed示例

    NanDAC+mbed示例
    發(fā)表于 03-23 09:32 ?10次下載
    NanDAC+mbed<b class='flag-5'>示例</b>

    示例SigmaStudio程序

    示例SigmaStudio程序
    發(fā)表于 03-23 18:25 ?15次下載
    <b class='flag-5'>示例</b>SigmaStudio程序

    華為游戲服務(wù)示例代碼教程案例

    概述 游戲服務(wù)kit安卓示例代碼集成了華為游戲服務(wù)的眾多API,提供了示例代碼程序供您參考和使用,下面是對(duì)示例代碼不同包的描述。 achievement: 成就特性的示例代碼。 arc
    發(fā)表于 04-11 11:09 ?4次下載

    如何從零開(kāi)始學(xué)OpenDaylight

    OpenDaylight的邏輯架構(gòu)分為應(yīng)用層、控制器層和數(shù)據(jù)轉(zhuǎn)發(fā)層。其中,應(yīng)用層聚焦網(wǎng)絡(luò)業(yè)務(wù)邏輯開(kāi)發(fā),負(fù)責(zé)資源編排;控制器層進(jìn)行全局網(wǎng)絡(luò)的管理;數(shù)據(jù)轉(zhuǎn)發(fā)層為各種網(wǎng)絡(luò)設(shè)備,負(fù)責(zé)數(shù)據(jù)的轉(zhuǎn)發(fā)。
    的頭像 發(fā)表于 02-14 14:04 ?2371次閱讀
    如何從零開(kāi)始學(xué)<b class='flag-5'>OpenDaylight</b>

    OpenDaylight的運(yùn)行環(huán)境

    OpenDaylight作為一種開(kāi)源的SDN控制器,使用Java語(yǔ)言編寫,
    的頭像 發(fā)表于 02-14 14:08 ?915次閱讀
    <b class='flag-5'>OpenDaylight</b>的運(yùn)行環(huán)境

    OpenDaylight中的OSGi

    從寫單個(gè)類的打印Hello World小程序到OSGi模塊化開(kāi)發(fā),確實(shí)存在較大的難度,本文將從模塊化、OSGI模型以及OSGI在OpenDaylight中的應(yīng)用等方面進(jìn)行介紹。
    的頭像 發(fā)表于 02-14 15:05 ?824次閱讀
    <b class='flag-5'>OpenDaylight</b>中的OSGi

    OpenDaylight中的DataStore是什么

    SDN起源于校園網(wǎng),發(fā)揚(yáng)光大于數(shù)據(jù)中心,現(xiàn)廣泛用于廣域網(wǎng),SDN控制器,可能管理著數(shù)十萬(wàn)臺(tái)軟交換機(jī),下發(fā)數(shù)百萬(wàn)乃至上千萬(wàn)條路由信息。因此,作為SDN控制器的開(kāi)源項(xiàng)目OpenDaylight,無(wú)論是業(yè)務(wù)邏輯還是數(shù)據(jù)存儲(chǔ),
    的頭像 發(fā)表于 02-14 15:13 ?1563次閱讀
    <b class='flag-5'>OpenDaylight</b>中的DataStore是什么

    軟件示例:DA1468x 示例設(shè)置

    軟件示例:DA1468x 示例設(shè)置
    發(fā)表于 03-13 20:15 ?0次下載
    軟件<b class='flag-5'>示例</b>:DA1468x <b class='flag-5'>示例</b>設(shè)置

    教程 5:BLE 安全示例

    教程 5:BLE 安全示例
    發(fā)表于 03-15 20:34 ?0次下載
    教程 5:BLE 安全<b class='flag-5'>示例</b>

    Vivado HDL編寫示例

    Vivado 軟件提供了HDL編寫中常用的示例,旨在幫助初學(xué)者更好地理解和掌握HDL編程,這里分享一下verilog代碼示例。
    的頭像 發(fā)表于 05-16 16:58 ?1117次閱讀

    軟件示例:DA1468x 示例設(shè)置

    軟件示例:DA1468x 示例設(shè)置
    發(fā)表于 07-05 18:59 ?0次下載
    軟件<b class='flag-5'>示例</b>:DA1468x <b class='flag-5'>示例</b>設(shè)置

    自己編寫函數(shù)示例代碼很難嗎?分享幾個(gè)示例!

    Q A 問(wèn): Arduino Uno的函數(shù)示例 我決定自己編寫函數(shù)示例代碼,因?yàn)檫@應(yīng)該是Arduino中的基本示例。網(wǎng)絡(luò)上確實(shí)有關(guān)于使用函數(shù)的文檔,但是,如果要嘗試使用代碼環(huán)境,則必須得訪問(wèn)
    的頭像 發(fā)表于 11-16 16:05 ?579次閱讀
    自己編寫函數(shù)<b class='flag-5'>示例</b>代碼很難嗎?分享幾個(gè)<b class='flag-5'>示例</b>!