Loaʻa iā ʻoe kāu polokalamu, akā pono ʻoe i kahi ala ʻoi aku ka maikaʻi e hiki ai i kāu mea hoʻohana loea ke hoʻonui i ka paepae.
ʻOiai ua kaulana ʻo OSGi i ka hapa nui o nā mea hoʻomohala Java, ʻo ka hoʻohui ʻana iā ia i kāu huahana e like paha me kahi hana paʻakikī. ʻO ka maopopo ʻole e pili ana i ka hana pololei a OSGi e hoʻopilikia hou i ke ala i mua.
ʻOkoʻa i nā mea a lākou e makemake ai e hoʻokolohua, ʻoi aku ka manaʻo o OSGi e hoʻāʻo e holo i ke kai ākea i nā mea hoʻomohala Java he nui.
E hoʻolauna kēia ʻatikala iā ʻoe i ke kumu aʻo punawai OSGi Felix me ka hoʻohana ʻana i kahi papahana maʻalahi a hele i loko, kona mau pono, a me nā kikoʻī koʻikoʻi ʻē aʻe.
No laila he aha ka OSGi?
Hana ʻia a hāʻawi ʻia i nā modula a me nā ʻāpana i hiki ke hana ʻia e ka Java framework i kapa ʻia ʻo OSGi (Open Service Gateway Initiative).
Hoʻoikaika ia i ka encapsulation hana a me ka hoʻopili ʻana, e hāʻawi ana i nā pono he nui i nā mea hoʻomohala, me ka hana modular i hiki ke hoʻololi ʻia ma waena o nā kumu kumu a me nā hoʻāʻo ʻaʻole pono i nā hilinaʻi pau ʻole.
Pehea ka hana o OSGi?
Ua wehewehe ʻia kahi ʻōnaehana koʻikoʻi no Java e kahi ʻano kikoʻī i kapa ʻia ʻo OSGi. Hāʻawi kēia mau kikoʻī i kahi ala hoʻomohala kahi i kūkulu ʻia ai kahi noi mai nā ʻāpana he nui a laila hoʻopili ʻia i loko o nā pūpū.
Hoʻohana ʻia nā lawelawe kūloko a me ka pūnaewele e kēia mau ʻāpana e kamaʻilio. ʻO ka hoʻolilo ʻana i ke code kumu o ka papahana e like me ka mea hiki ke hana. Hiki ke hoʻohui ʻia ma waena o kēia code a me nā ʻāpana he nui.
Ua kapa ʻia nā mea kūkulu hale hoʻohana hou ʻia nā ʻāpana. E noʻonoʻo e pili ana i nā hiʻohiʻona e like me ke kaʻa kūʻai no kāu pūnaewele e-kelepona a i ʻole kahi palapala uku uku no kāu ʻōnaehana hoʻokele limahana.
Hiki i nā ʻāpana ke hoʻohana i ka OSGi e hūnā i kā lākou hoʻokō mai nā ʻāpana ʻē aʻe a hāʻawi wale i ka ʻikepili pono iā lākou ma o nā lawelawe.
Mālama kēia i nā ʻāpana mai ka hoʻololi ʻole ʻana i ka ʻikepili ʻaʻole pono lākou e komo a mālama i nā hilinaʻi.
Hana ʻia nā pilina āpau ma waena o nā ʻāpana i kahi noi OSGi ma o nā lawelawe i kahi honua kūpono. Aia kekahi pūʻolo Java i ka API i kuhikuhi ʻia no nā lawelawe.
Pono ka hui pū ʻana ma waena o nā mea hoʻolako lawelawe a me nā mea kūʻai aku i ka hoʻohana ʻana i nā papa a/a i ʻole nā mea hoʻopili, ka mea i kūkulu i ka API.
Hoʻopili pū ʻia nā ʻāpana OSGi a pau i loko o nā pūʻolo, aia kēlā me kēia me nā kumuwaiwai e pono ai lākou e hana. Akaka loa nā pūʻolo e pili ana i nā mea e pono ai lākou mai ke kaiapuni a me nā mea hiki iā lākou.
maika
- Hiki i nā polokalamu OSGi ke komo i nā waihona waihona pūpū waho.
- Hāʻawi ka hoʻolālā i ka hoʻolālā lawelawe lawelawe ma ka pae module.
- Hiki iā ia ke hoʻokele i nā mana a me nā hilinaʻi o nā puʻupuʻu noi ma ka hoʻohui ʻana i ka standardizing a me ka maʻalahi o ka hoʻohui ʻana i nā hale waihona puke ʻaoʻao ʻekolu.
- ʻOi aku ka maʻalahi o nā noi i ka hoʻololi ʻana i nā koi, ʻoi aku ka lawe lima, a ʻoi aku ka wikiwiki e hana hou.
- A polokalamu pūnaewele Hiki ke hoʻonohonoho ʻia ma ke ʻano he pūʻulu o nā pūʻulu OSGi i hoʻololi ʻia me kahi ola ikaika e hoʻomaikaʻi i ka hoʻohui ʻana o ka framework me ke kumu hoʻohālike Java EE.
- Ma kahi o ka hoʻokomo ʻia ʻana ma ke ʻano he waihona ʻaoʻao ʻekolu ma ke ʻano o ka palapala noi, hāʻawi ka framework i ka hui declarative a me streamlineed unit testing of the Spring Framework ma kahi ʻano maʻamau i hāʻawi ʻia ma ke ʻano he ʻāpana o ka manawa holo kikowaena noi.
- No nā noi ʻoihana i hana ʻia me nā pūʻulu i hoʻololi ʻia me nā ola ola ikaika, hāʻawi ka framework i kahi kaʻawale.
- Loaʻa iā ia kahi waihona puʻupuʻu i hoʻohui ʻia e hiki ke mālama i nā puʻupuʻu maʻamau a me nā ʻāpana i hoʻohana ʻia e kekahi mau noi, e pale ana i kēlā me kēia noi mai ke kau ʻana i kahi kope ʻokoʻa o kēlā me kēia waihona like.
E hoʻomaka me ka punawai OSGi Felix
Loaʻa i nā kumuwaiwai
Ma ka hoʻoiho ʻana i ka mana hou loa o Apache Karaf mai kēia pūnaewele, hiki iā mākou ke hoʻomaka i kā mākou huakaʻi OSGi.
Ma muli o Apache Felix, ka hoʻokō ʻana o Apache i ka kikoʻī OSGi, hāʻawi ʻo Apache Karaf i kahi kahua no nā noi e pili ana i ka OSGi.
Hāʻawi ʻo Karaf i nā hiʻohiʻona kōkua like ʻole ma luna o Felix e kōkua iā mākou i ka hoʻomaʻamaʻa ʻana iā mākou iho me OSGi, e like me ka laina kauoha e hiki ai iā mākou ke kamaʻilio me ka paepae.
Lae Komo No na Puolo
Pono e hoʻopili ʻia kahi palapala noi ma ke ʻano he pūʻolo OSGi ma mua o ka holo ʻana ma kahi kaiapuni OSGi. Eia hou, pono e kuhikuhi ʻia ka helu komo noi; ʻaʻole ia ka hana maʻamau static void main (String [] args).
No laila e hoʻomaka kākou ma ka hana ʻana i kahi "Aloha kākou honua” noi e pili ana i ka OSGi.
Hoʻomaka mākou ma ka hoʻokumu ʻana i kahi hilinaʻi OSGi API kumu:
Hiki i ka OSGi runtime ke komo i ka hilinaʻi, no laila ʻaʻole pono e hoʻokomo i ka pūpū. No laila, hōʻailona ʻia e like me ka hoʻolako ʻia.
E hana kākou i ka papa HelloWorld pololei:
Pono nā papa e hana i nā helu komo no nā pūʻolo e hoʻokō i ka interface BundleActivator i hāʻawi ʻia e OSGi.
Ke hoʻokuʻu ʻia ka pūʻolo i loko o kēia papa, kāhea ka platform OSGi i ka hana hoʻomaka (). Ma ka ʻaoʻao ʻē aʻe, ma mua koke o ka hoʻokuʻu ʻia ʻana o ka pūʻolo, kāhea ʻia ka hana stop().
Mai poina i kēlā me kēia pūʻolo hiki ke loaʻa hoʻokahi BundleActivator. Hiki i nā ala ʻelua ke kamaʻilio me ka OSGi runtime me ka hoʻohana ʻana i ka mea BundleContext i hāʻawi ʻia.
Ke hana ʻana i kahi pūʻolo
E hana i ka pom.xml i pūʻolo OSGi maoli ma o ka hana ʻana i nā loli pono.
Pono mākou e wehewehe mua i kā mākou pahuhopu e hana i kahi pūpū.
A laila, hoʻohana mākou i ka maven-bundle-plugin e hoʻopaʻa i ka papa HelloWorld ma ke ʻano he pūʻulu OSGi, ʻoluʻolu o ke kaiāulu Apache Felix:
ʻO nā waiwai o nā poʻomanaʻo OSGi a mākou e makemake ai e hoʻokomo i loko o ka waihona MANIFEST o ka pūʻolo i kuhikuhi ʻia ma ka ʻāpana kuhikuhi.
ʻO ka Bundle-Activator ka inoa kūpono kūpono o ka hopena BundleActivator e hoʻohana ʻia e hoʻomaka a hoʻopau i ka pūʻolo. He kūpono ia me ka papa i hana ʻia.
ʻOiai ʻaʻole ia he poʻomanaʻo OSGi, ʻo ka Private-Package header ke aʻo nei i ka plugin e hoʻohui i ka pūʻolo i ka pūʻolo akā ʻaʻole hiki ke loaʻa i nā plugins ʻē aʻe. Pono e hoʻohana ʻia ka mvn install command e hana i ka pūpū.
Ke hoʻouka a me ka holo ʻana i ka pūʻolo
E hoʻomaka kākou iā Karaf ma ka holo ʻana i kēia kauoha:
kahi "KARAF HOME" e pili ana i ka waihona kahi i hoʻonohonoho ʻia ai ʻo Karaf. Hiki iā mākou ke hoʻohana i kēia kauoha e hoʻokomo i ka pūpū i ka wā e ʻike ʻia ai ka wikiwiki ʻo Karaf console:
ʻO ka hoʻohana ʻana i ka waihona Maven kūloko pehea e ʻōlelo ʻia ai ʻo Karaf e hoʻouka i ka pūpū.
Ke hoʻihoʻi nei i ka helu helu helu o ka pūpū, kākau ʻo Karaf iā ia. He ʻokoʻa paha kēia ID ma muli o ka nui o nā pūʻolo i hoʻokomo mua ʻia. Ua hoʻokomo maikaʻi ʻia ka pūpū, a penei ke kauoha e hoʻomaka ai:
ʻO ka manawa e hoʻomaka ai ʻoe i ka pūʻolo, "Hello World by Jay" hōʻike. Hiki iā mākou ke kāpae a wehe i ka pūʻolo me ka hoʻohana ʻana:
Hōʻike ka console "Goodbye World na Jay."
Panina
Hiki i nā mea hoʻomohala ke hoʻohui maʻalahi i nā hana hou i kahi noi pūnaewele i kēia manawa me ka mālama ʻana a hoʻokaʻawale ʻia mai nā ʻāpana ʻē aʻe o ka papahana nui ma o ka hoʻohana ʻana iā OSGi.
Ua aʻo mākou e pili ana iā OSGi ma kēia pou, me ke ʻano o ka hana ʻana, kona mau pono, a me kahi papahana maʻalahi. ʻAʻole paʻakikī ke hoʻokomo i ka OSGi i kāu noi ponoʻī.
Hauʻoli coding!
Waiho i ka Reply