{"id":32464,"date":"2019-10-31T21:47:12","date_gmt":"2019-10-31T18:47:12","guid":{"rendered":"https:\/\/prohoster.info\/blog\/eclipse-kak-tehnologicheskaya-platforma-dlya-1c-enterprise-development-tools\/"},"modified":"2019-10-31T21:47:12","modified_gmt":"2019-10-31T18:47:12","slug":"eclipse-kak-tehnologicheskaya-platforma-dlya-1c-enterprise-development-tools","status":"publish","type":"post","link":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/eclipse-kak-tehnologicheskaya-platforma-dlya-1c-enterprise-development-tools","title":{"rendered":"Eclipse k\u0101 tehnolo\u0123iju platforma 1C:Enterprise izstr\u0101des r\u012bkiem","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Dro\u0161i vien, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.eclipse.org\/\">Eclipse<\/a><\/noindex> ilg\u0101ku laiku vairs nav nepiecie\u0161ama \u012bpa\u0161a prezent\u0101cija. Daudzi paz\u012bst Eclipse pateicoties Eclipse Java izstr\u0101des r\u012bkiem (<noindex><a rel=\"nofollow\" href=\"http:\/\/www.eclipse.org\/jdt\/\">JDT<\/a><\/noindex>). \u0160\u012b popul\u0101r\u0101 open-source Java IDE vairumam izstr\u0101d\u0101t\u0101ju asoci\u0113jas ar v\u0101rdu \u201cEclipse\u201d. Tom\u0113r Eclipse ir ar\u012b papla\u0161in\u0101ma platforma izstr\u0101des r\u012bku integr\u0101cijai (Eclipse Platform) un vesels IDE kopums, kas balst\u012bts uz t\u0101s b\u0101zes, tostarp JDT. Eclipse ir ar\u012b Eclipse projekts, augsta l\u012bme\u0146a projekts, kas koordin\u0113 Eclipse Platform un JDT izstr\u0101di, un Eclipse SDK \u2013 \u0161\u012bs att\u012bst\u012bbas rezult\u0101ts. Visbeidzot, Eclipse ir open-source fonds ar milz\u012bgu projektu kopienu, no kuriem t\u0101lu ne visi ir rakst\u012bti Java vai ir saist\u012bti ar izstr\u0101des r\u012bkiem (piem\u0113ram, projekti <noindex><a rel=\"nofollow\" href=\"https:\/\/iot.eclipse.org\/\">Eclipse IoT<\/a><\/noindex> un <noindex><a rel=\"nofollow\" href=\"https:\/\/science.eclipse.org\/\">Eclipse Science<\/a><\/noindex>). Eclipse pasaule ir \u013coti daudzveid\u012bga.<\/p>\n<p>\u0160aj\u0101 rakst\u0101, kas ir p\u0101rskata rakstura, m\u0113\u0123in\u0101sim apskat\u012bt da\u017eus arhitekt\u016bras pamatus, kas padara Eclipse par platformu integr\u0113tu izstr\u0101des r\u012bku izveidei, un sniegt s\u0101kotn\u0113ju priek\u0161statu par Eclipse komponent\u0113m, kas veido tehnolo\u0123isk\u0101s platformas pamatu \u201cjaunajam Konfiguratoram\u201d 1C: Uz\u0146\u0113mumam, <noindex><a rel=\"nofollow\" href=\"http:\/\/v8.1c.ru\/overview\/release_IDE\/\">1C:Enterprise Development Tools<\/a><\/noindex>. Protams, \u0161\u0101da apskate b\u016bs liel\u0101 m\u0113r\u0101 virspus\u0113ja un diezgan ierobe\u017eota, jo orient\u0113jamies ne tikai uz Eclipse izstr\u0101d\u0101t\u0101jiem k\u0101 m\u0113r\u0137auditoriju. Tom\u0113r ceram, ka pat pieredz\u0113ju\u0161i Eclipse izstr\u0101d\u0101t\u0101ji var\u0113s atrast rakst\u0101 interesantu inform\u0101ciju. Piem\u0113ram, m\u0113s past\u0101st\u012bsim par vienu no \u201cEclipse nosl\u0113pumiem\u201d, sal\u012bdzino\u0161i jauno un maz zin\u0101mo projektu <noindex><a rel=\"nofollow\" href=\"http:\/\/eclipse.org\/handly\/\">Eclipse Handly<\/a><\/noindex>, kuru dibin\u0101jusi un atbalsta firma 1C.<br \/>\n<img decoding=\"async\" alt=\"Eclipse k\u0101 tehnolo\u0123iju platforma 1C:Enterprise izstr\u0101des r\u012bkiem\" src=\"\/wp-content\/uploads\/2019\/04\/eb399a50bf86b6acce1df9e3d40848d4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Ievads Eclipse arhitekt\u016br\u0101<\/h2>\n<p>\nApskat\u012bsim vispirms da\u017eus visp\u0101r\u012bgus aspektus par Eclipse arhitekt\u016bru, \u0146emot piem\u0113ru no <noindex><a rel=\"nofollow\" href=\"https:\/\/www.eclipse.org\/jdt\/overview.php\">Eclipse Java izstr\u0101des r\u012bkiem<\/a><\/noindex> (JDT). Tie\u0161i JDT izv\u0113le k\u0101 piem\u0113rs nav nejau\u0161a. T\u0101 ir pirm\u0101 integr\u0113t\u0101 izstr\u0101des vide, kas par\u0101d\u012bj\u0101s Eclipse. P\u0101r\u0113jie *DT Eclipse projekti, piem\u0113ram, Eclipse C\/C++ izstr\u0101des r\u012bki (CDT), tika izveidoti v\u0113l\u0101k un aizguva gan galvenos arhitekt\u016bras principus, gan atsevi\u0161\u0137us avota koda fragmentus no JDT. Arhitekt\u016bras pamati, kas ieviesti JDT, ir aktu\u0101li joproj\u0101m praktiski ikvienai IDE, kas uzb\u016bv\u0113ta uz Eclipse Platform, tostarp 1C:Enterprise Development Tools.<\/p>\n<p>Pirmk\u0101rt, j\u0101piez\u012bm\u0113, ka Eclipse ir rakstur\u012bga skaidra arhitekt\u016bras dal\u012b\u0161ana, nod separating valodu neatkar\u012bgo funkcionalit\u0101ti no funkcionalit\u0101tes, kas dom\u0101ta konkr\u0113tu programm\u0113\u0161anas valodu atbalstam, k\u0101 ar\u012b UI neatkar\u012bgo \"kodolu\" (core) komponentu no komponent\u0113m, kas saist\u012btas ar lietot\u0101ja interfeisa atbalstu.<\/p>\n<p>T\u0101tad, Eclipse Platform nosaka kop\u0113jo, valodu neatkar\u012bgu infrastrukt\u016bru, bet Java att\u012bst\u012bbas r\u012bki pievieno Eclipse pilnfunkcion\u0101lu Java IDE. Gan Eclipse Platform, gan JDT sast\u0101v no vair\u0101kiem komponentiem, no kuriem katrs pieder vai nu pie UI neatkar\u012bg\u0101 \"kodola\", vai pie UI sl\u0101\u0146a (skat. 1. att.).<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse k\u0101 tehnolo\u0123iju platforma 1C:Enterprise izstr\u0101des r\u012bkiem\" src=\"\/wp-content\/uploads\/2019\/04\/230825124962e721ecca7dfb7dee9a0c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>1. att. Eclipse Platform un JDT<\/b><\/p>\n<p>Uzskait\u012bsim galvenos komponentus Eclipse Platform:<\/p>\n<ul>\n<li><b>Runtime<\/b> \u2014 Nosaka spraud\u0146u infrastrukt\u016bru. Eclipse ir rakstur\u012bga modul\u0101ra arhitekt\u016bra. Faktiski Eclipse ir kolekcija \"papla\u0161in\u0101jumu punktu\" un \"papla\u0161in\u0101jumiem\".<\/li>\n<li><b>Workspace<\/b> \u2014 P\u0101rvalda vienu vai vair\u0101kus projektus. Projekts sast\u0101v no map\u0113m un failiem, kas tie\u0161i tiek att\u0113loti uz failu sist\u0113mu.<\/li>\n<li><b>Standard Widget Toolkit (SWT)<\/b> \u2014 Nodro\u0161ina pamatelementus lietot\u0101ja interfeisam, integr\u0113tus ar oper\u0113t\u0101jsist\u0113mu.<\/li>\n<li><b>JFace<\/b> \u2014 Nodro\u0161ina virkni UI ietvaru, kas b\u016bv\u0113ti uz SWT.<\/li>\n<li><b>Darba galds<\/b> \u2014 Nosaka Eclipse UI paradigmu: redaktori, skat\u012bjumi, perspekt\u012bvas.<\/li>\n<\/ul>\n<p>\nJ\u0101atz\u012bm\u0113, ka Eclipse Platform nodro\u0161ina ar\u012b daudzas citas noder\u012bgas komponentes integr\u0113tu izstr\u0101des r\u012bku izveidei, starp kur\u0101m var min\u0113t Debug, Compare, Search un Team. Atsevi\u0161\u0137i j\u0101piemin JFace Text \u2013 pamats \"gudro kod\u0113\u0161anas redaktoru\" veido\u0161anai. Diem\u017e\u0113l, pat virspus\u0113ja \u0161o komponentu, l\u012bdz\u012bgi k\u0101 UI sl\u0101\u0146a komponentu, apskate \u0161\u012b raksta ietvaros nav iesp\u0113jama, t\u0101d\u0113\u013c atliku\u0161o \u0161\u012b sada\u013cas da\u013cu m\u0113s ierobe\u017eosim ar galveno \"kodolu\" komponentu apskatu par Eclipse Platform un JDT.<\/p>\n<h4>Core Runtime<\/h4>\n<p>\nEclipse spraud\u0146u infrastrukt\u016bra ir balst\u012bta uz <noindex><a rel=\"nofollow\" href=\"https:\/\/www.osgi.org\/developer\/specifications\/\">OSGi<\/a><\/noindex> un to nodro\u0161ina projekts <noindex><a rel=\"nofollow\" href=\"https:\/\/www.eclipse.org\/equinox\/\">Eclipse Equinox<\/a><\/noindex>. Katrs Eclipse spraudnis ir OSGi bundls. OSGi specifik\u0101cija nosaka, tostarp, versiju p\u0101rvald\u012bbas un atkar\u012bbu risin\u0101\u0161anas meh\u0101nismus. Papildus \u0161iem standartmeh\u0101nismiem, Equinox ievie\u0161 j\u0113dzienu <i>papla\u0161in\u0101jumu punkti<\/i>. Katr\u0101 spraud\u0146\u0101 var b\u016bt savas papla\u0161in\u0101\u0161anas vietas, k\u0101 ar\u012b tas var pievienot sist\u0113mai papildu funkcionalit\u0101ti (\"papla\u0161in\u0101jumi\"), izmantojot papla\u0161in\u0101\u0161anas vietas, kuras defin\u0113jusi \u0161is vai citi spraud\u0146i. Detaliz\u0113ts OSGi un Equinox meh\u0101nismu apraksts nep\u0101rsniedz \u0161\u012b raksta ietvarus. V\u0113rts atz\u012bm\u0113t, ka modulariz\u0101cija Eclipse ir visaptvero\u0161a (jebkura apak\u0161sist\u0113ma, tostarp Runtime, sast\u0101v no viena vai vair\u0101kiem spraud\u0146iem), un praktiski viss Eclipse ir papla\u0161in\u0101jums. Turkl\u0101t \u0161ie principi tika iek\u013cauti Eclipse arhitekt\u016br\u0101 jau sen pirms OSGi ievie\u0161anas (taj\u0101 laik\u0101 tika izmantota \u012bpa\u0161a tehnolo\u0123ija, kas liel\u0101 m\u0113r\u0101 l\u012bdz\u012bga OSGi).<\/p>\n<h4>Pamatdarba vide<\/h4>\n<p>\nPraktiski jebkura integr\u0113t\u0101 izstr\u0101des vide, kas veidota uz Eclipse platformas, darbojas ar Eclipse darba vidi. Tie\u0161i darba vide parasti satur izstr\u0101d\u0101jam\u0101 IDE lietojumprogrammas avota kodu. Darba vide tie\u0161i atspogu\u013co failu sist\u0113mu un sast\u0101v no projektiem, kuri ietver mapes un failus. \u0160ie projekti, mapes un faili tiek saukti par <i>resursiem<\/i> darba vidi. Darba vides realiz\u0101cija Eclipse kalpo k\u0101 ke\u0161atmi\u0146a attiec\u012bb\u0101 pret failu sist\u0113mu, kas b\u016btiski pa\u0101trina resursu koka p\u0101rg\u0101jienu. Turkl\u0101t darba vide nodro\u0161ina virkni papildu servisu, tostarp <noindex><a rel=\"nofollow\" href=\"https:\/\/eclipse.org\/articles\/Article-Resource-deltas\/resource-deltas.html\">resursu izmai\u0146u pazi\u0146o\u0161anas meh\u0101nismu<\/a><\/noindex> un <noindex><a rel=\"nofollow\" href=\"https:\/\/eclipse.org\/articles\/Article-Builders\/builders.html\">inkrement\u0101lo b\u016bv\u0113t\u0101ju infrastrukt\u016bru<\/a><\/noindex>.<\/p>\n<p>Par darba vides un t\u0101s resursu atbalstu atbild Core Resources komponente (spraudnis org.eclipse.core.resources). \u012apa\u0161i, \u0161\u012b komponente nodro\u0161ina programm\u0113t\u0101ju piek\u013cuvi darba videi k\u0101 <i>resursu modelim<\/i>. Lai efekt\u012bvi str\u0101d\u0101tu ar \u0161o modeli, klientiem nepiecie\u0161ams vienk\u0101r\u0161s veids, k\u0101 att\u0113lot saiti uz resursu. \u0160aj\u0101 gad\u012bjum\u0101 objekts, kas tie\u0161i saglab\u0101 resursa st\u0101vokli model\u012b, v\u0113lams, lai tiktu pasl\u0113pts no klientu piek\u013cuves. Cit\u0101di, piem\u0113ram, faila dz\u0113\u0161anas gad\u012bjum\u0101 klients var\u0113tu turpin\u0101t darboties ar objektu, kas vairs nav model\u012b, radot t\u0101d\u0113j\u0101di probl\u0113mas. Eclipse \u0161o uzdevumu risina, izmantojot t\u0101 saukto <i>handle<\/i> resursam. Handle darbojas k\u0101 atsl\u0113ga (tas zina tikai ce\u013cu uz resursu darba vid\u0113) un piln\u012bb\u0101 kontrol\u0113 piek\u013cuvi iek\u0161\u0113jam mode\u013ca objektam, kur\u0161 tie\u0161i saglab\u0101 inform\u0101ciju par resursa st\u0101vokli. \u0160is dizains ir vari\u0101cija uz patter <noindex><a rel=\"nofollow\" href=\"http:\/\/wiki.c2.com\/?HandleBodyPattern\">Handle\/Body<\/a><\/noindex>.<\/p>\n<p>Att\u0113ls 2 ilustr\u0113 idiomu Handle\/Body attiec\u012bb\u0101 uz resursu modeli. Interfeiss IResource p\u0101rst\u0101v resursa handle un ir API, at\u0161\u0137ir\u012bb\u0101 no klases Resource, kas \u012bsteno \u0161o interfeisu, k\u0101 ar\u012b klases ResourceInfo, kas p\u0101rst\u0101v body, kuru API nav. Uzsveram, ka handle zina tikai ce\u013cu uz resursu attiec\u012bb\u0101 pret workspace sakni un nesatur atsauci uz resource info. Objekti resource info veido t\u0101 saukto \"elementu koku\" (element tree). \u0160\u012b datu strukt\u016bra ir piln\u012bb\u0101 materializ\u0113ta atmi\u0146\u0101. Lai atrastu resource info instance, kas atbilst k\u0101dam handle, element tree tiek apstr\u0101d\u0101ts atbilsto\u0161i ce\u013cam, kas \u0161aj\u0101 handle ir saglab\u0101ts.<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse k\u0101 tehnolo\u0123iju platforma 1C:Enterprise izstr\u0101des r\u012bkiem\" src=\"\/wp-content\/uploads\/2019\/04\/9d17cd95be3730ab6b5b9e6e3ed71ace.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Att\u0113ls 2. IResource un ResourceInfo<\/b><\/p>\n<p>K\u0101 m\u0113s v\u0113l\u0101k redz\u0113sim, pamata resursu mode\u013ca dizains (to var nosaukt par handle-based) tiek izmantots Eclipse un citos mode\u013cos. Bet pagaid\u0101m uzskait\u012bsim da\u017eas \u0161\u012b dizaina at\u0161\u0137ir\u012bg\u0101s \u012bpa\u0161\u012bbas:<\/p>\n<ul>\n<li>Handle ir v\u0113rt\u012bbas objekts (value object). V\u0113rt\u012bbas objekti ir nemain\u012bgi (immutable) objekti, kuru vien\u0101d\u012bbu nenosaka identit\u0101te. \u0160\u0101dus objektus var dro\u0161i izmantot k\u0101 atsl\u0113gu hash kontaineros. Daudzi handle instances var atsaukties uz to pa\u0161u resursu. To sal\u012bdzin\u0101\u0161anai j\u0101izmanto metode equals(Object).<\/li>\n<li>Handle nosaka resursa uzved\u012bbu, bet nesatur inform\u0101ciju par resursa st\u0101vokli (vien\u012bgie dati, kurus tas uzglab\u0101, ir \"atsl\u0113ga\", ce\u013c\u0161 uz resursu).<\/li>\n<li>Handle var atsaukties uz neeso\u0161u resursu (vai nu resursu, kas v\u0113l nav izveidots, vai resursu, kas jau ir izdz\u0113sts). Resursa esam\u012bbu var p\u0101rbaud\u012bt, izmantojot metodi IResource.exists().<\/li>\n<li>Da\u017eas darb\u012bbas var tikt \u012bstenotas, pamatojoties tikai uz inform\u0101ciju, kas glab\u0101jas pa\u0161\u0101 handle (t\u0101 saucam\u0101s handle-only darb\u012bbas). Piem\u0113ri ir IResource.getParent(), getFullPath() utt. Resursam nav oblig\u0101ti j\u0101past\u0101v, lai veiksm\u012bgi izpild\u012btu \u0161\u0101du darb\u012bbu. Darb\u012bbas, lai veiksm\u012bgi izpild\u012btu kur\u0101m nepiecie\u0161ams, lai resurss past\u0101v\u0113tu, izmest CoreException, ja resurss neeksist\u0113.<\/li>\n<\/ul>\n<p>\nEclipse nodro\u0161ina efekt\u012bvu pazi\u0146o\u0161anas meh\u0101nismu par workspace resursu izmai\u0146\u0101m (skat. 3. att\u0113lu). Resursi var main\u012bties gan, veicot darb\u012bbas pa\u0161\u0101 Eclipse IDE, gan ar\u012b sinhroniz\u0113jot ar failu sist\u0113mu. Abos gad\u012bjumos, klientiem, kas ir parakst\u012bju\u0161ies uz pazi\u0146ojumiem, tiek sniegta detaliz\u0113ta inform\u0101cija par izmai\u0146\u0101m, kas tiek att\u0113lota k\u0101 'resursu delta' (resource delta). Delta apraksta izmai\u0146as starp diviem st\u0101vok\u013ciem (apak\u0161)koku resursu darbviet\u0101 un pati ir koks, katrs mezgls kur\u0101 apraksta konkr\u0113tu resursu izmai\u0146as un ietver n\u0101kam\u0101 l\u012bme\u0146a deltas sarakstu, kas apraksta apak\u0161resursu izmai\u0146as.<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse k\u0101 tehnolo\u0123iju platforma 1C:Enterprise izstr\u0101des r\u012bkiem\" src=\"\/wp-content\/uploads\/2019\/04\/8af412412ee97d205137ab70c8444a50.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>3. att\u0113ls. IResourceChangeEvent un IResourceDelta<\/b><\/p>\n<p>Pazi\u0146o\u0161anas meh\u0101nismam, kas balst\u012bts uz resursu delt\u0101m, ir \u0161\u0101das \u012bpa\u0161\u012bbas:<\/p>\n<ul>\n<li>Viensak\u0101r\u0161a izmai\u0146a un vair\u0101ku izmai\u0146u aprakst\u012b\u0161ana notiek, izmantojot to pa\u0161u strukt\u016bru, jo delta tiek veidota, izmantojot rekurv\u012bvo kompoz\u012bciju. Klienti-abonenti var apstr\u0101d\u0101t resursu izmai\u0146u pazi\u0146ojumus, veicot rekurz\u012bvu nolai\u0161anos pa deltas koku.<\/li>\n<li>Delta satur piln\u012bgu inform\u0101ciju par resursa izmai\u0146\u0101m, tostarp t\u0101 p\u0101rvieto\u0161anu un\/vai saist\u012bto 'mar\u0137ieru' (k\u0101 mar\u0137ieros var tikt att\u0113lotas, piem\u0113ram, kompil\u0101cijas k\u013c\u016bdas) izmai\u0146as.<\/li>\n<li>T\u0101 k\u0101 saites uz resursu tiek veiktas, izmantojot handle, delta var dabiski atsaukties uz att\u0101lo resursu.<\/li>\n<\/ul>\n<p>\nK\u0101 m\u0113s dr\u012bzum\u0101 redz\u0113sim, galvenie pazi\u0146o\u0161anas meh\u0101nisma izmai\u0146u dizaina elementi ir sp\u0113k\u0101 ar\u012b citu handle-baz\u0113tu mode\u013cu gad\u012bjum\u0101.<\/p>\n<h4>JDT Core<\/h4>\n<p>\nEclipse workspace resursu modelis ir pamata valodas neatkar\u012bgs modelis. JDT Core komponents (pirmais plug-in org.eclipse.jdt.core) nodro\u0161ina API workspace strukt\u016bras navig\u0101cijai un anal\u012bzei Java skat\u012bjum\u0101, t\u0101 saukto 'Java modeli' (<i>Java model<\/i>). \u0160is API ir defin\u0113ts Java elementu terminos, at\u0161\u0137ir\u012bb\u0101 no apak\u0161\u0113j\u0101 resursu mode\u013ca API, kas ir defin\u0113ts mapju un failu terminos. Galvenie Java elementu koka interfeysi ir att\u0113loti 4. att\u0113l\u0101.<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse k\u0101 tehnolo\u0123iju platforma 1C:Enterprise izstr\u0101des r\u012bkiem\" src=\"\/wp-content\/uploads\/2019\/04\/67bfd31e93eaa66aa94b30281693a318.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>4. att\u0113ls. Java mode\u013ca elementi<\/b><\/p>\n<p>Java model izmanto to pa\u0161u idiomu handle\/body k\u0101 resursu modele (5. att\u0113ls). IJavaElement ir handle, bet JavaElementInfo sp\u0113l\u0113 body lomu. IJavaElement saskarne nosaka protokolu, kas ir kop\u012bgs visiem Java elementiem. Da\u017ei no t\u0101s metod\u0113m ir tikai handle: getElementName(), getParent() u.c. Objekts JavaElementInfo glab\u0101 attiec\u012bg\u0101 elementa st\u0101vokli: t\u0101 strukt\u016bru un atrib\u016btus.<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse k\u0101 tehnolo\u0123iju platforma 1C:Enterprise izstr\u0101des r\u012bkiem\" src=\"\/wp-content\/uploads\/2019\/04\/5b473cccfc8f258d563033ce334cb94f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Att. 5. IJavaElement un JavaElementInfo<\/b><\/p>\n<p>Java model\u0113 ir da\u017eas at\u0161\u0137ir\u012bbas no handle\/body pamatdizaina \u012bstenojum\u0101 sal\u012bdzin\u0101jum\u0101 ar resursu modeli. K\u0101 min\u0113ts iepriek\u0161, resursu model\u012b element tree, kuras mezgli ir objekti resource info, piln\u012bb\u0101 tiek tur\u0113ti atmi\u0146\u0101. Ta\u010du Java model\u012b var b\u016bt iev\u0113rojami vair\u0101k elementu nek\u0101 resursu kok\u0101, jo taj\u0101 ir iek\u013cauta ar\u012b .java un .class failu iek\u0161\u0113j\u0101 strukt\u016bra: tipi, lauki un metodes.<\/p>\n<p>Lai izvair\u012btos no visa elementu koka piln\u012bgas materializ\u0101cijas atmi\u0146\u0101, Java mode\u013ca \u012bstenojums izmanto ierobe\u017eota izm\u0113ra LRU ke\u0161atmi\u0146u element info, kur\u0101 atsl\u0113ga ir IJavaElement handle. Element info objekti tiek rad\u012bti p\u0113c piepras\u012bjuma, kad notiek navig\u0101cija pa elementu koku. \u0160aj\u0101 proces\u0101 visret\u0101k izmantotie elementi tiek izsisti no ke\u0161atmi\u0146as, un mode\u013ca atmi\u0146as pat\u0113ri\u0146\u0161 paliek ierobe\u017eots ar noteikto ke\u0161atmi\u0146as lielumu. Tas ir v\u0113l viens handle-based dizaina priek\u0161roc\u012bba, kas piln\u012bb\u0101 nosl\u0113pj \u0161\u0101das \u012bsteno\u0161anas deta\u013cas no klienta koda.<\/p>\n<p>Java elementu izmai\u0146u pazi\u0146o\u0161anas meh\u0101nisms visp\u0101r\u012bgi ir l\u012bdz\u012bgs iepriek\u0161 apskat\u012btajam workspace resursu izmai\u0146u izseko\u0161anas meh\u0101nismam. Klients, kur\u0161 v\u0113las izsekot izmai\u0146\u0101m Java model\u012b, re\u0123istr\u0113jas pazi\u0146ojumiem, kas tiek pasniegti k\u0101 objekts ElementChangedEvent, kur\u0101 ir IJavaElementDelta (6. att\u0113ls).<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse k\u0101 tehnolo\u0123iju platforma 1C:Enterprise izstr\u0101des r\u012bkiem\" src=\"\/wp-content\/uploads\/2019\/04\/0402ec362078eaf50f47756e7f24de01.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Att. 6. ElementChangedEvent un IJavaElementDelta<\/b><\/p>\n<p>Java model\u012b nav inform\u0101cijas par meto\u017eu \u0137erme\u0146iem vai nosaukumu risin\u0101\u0161anu, t\u0101d\u0113\u013c detaliz\u0113tai Java kodu anal\u012bzei JDT Core pied\u0101v\u0101 papildu (ne handle-based) modeli: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.eclipse.org\/articles\/Article-JavaCodeManipulation_AST\/index.html\">abstraktais sintaktiskais koks<\/a><\/noindex> (abstrakt\u0101 sintaktisk\u0101 koka, AST). AST atspogu\u013co avota teksta sintaktisk\u0101s anal\u012bzes rezult\u0101tu. AST mezgli atbilst modulis strukt\u016bras elementiem (dekl\u0101r\u0101cij\u0101m, operatoriem, izteiksm\u0113m utt.) un satur inform\u0101ciju par attiec\u012bg\u0101 elementa koordin\u0101t\u0113m avota tekst\u0101, k\u0101 ar\u012b (p\u0113c izv\u0113les) inform\u0101ciju par nosaukumu iz\u0161\u0137ir\u0161anu, izmantojot t\u0101 saukt\u0101s <i>bindings<\/i>. Saist\u012bjumi ir objekti, kas att\u0113lo nosaukt\u0101s entit\u0101tes, piem\u0113ram, tipus, metod\u0113s un main\u012bgos, kurus zin\u0101m komp\u012blatoram. At\u0161\u0137ir\u012bb\u0101 no AST mezgliem, kas veido koku, saist\u012bjumi atbalsta krustenisk\u0101s atsauces un kopum\u0101 veido grafiku. Abstraktais klase ASTNode ir kop\u0113j\u0101 b\u0101zes klase visiem AST mezgliem. ASTNode apak\u0161klases atbilst konkr\u0113t\u0101m Java valodas sintaktiskaj\u0101m konstrukcij\u0101m.<\/p>\n<p>\u0145emot v\u0113r\u0101, ka sintaktiskie koki var pat\u0113r\u0113t iev\u0113rojamu atmi\u0146as daudzumu, JDT ke\u0161atmi\u0146\u0101 saglab\u0101 tikai vienu AST, akt\u012bvajam redaktoram. At\u0161\u0137ir\u012bb\u0101 no Java mode\u013ca, AST parasti tiek uzskat\u012bts par \"starpposmu\", \"pagaidu\" modeli, uz t\u0101 elementiem klientiem nevajadz\u0113tu saglab\u0101t atsauces \u0101rpus oper\u0101cijas konteksta, kas noveda pie AST izveides.<\/p>\n<p>Iek\u013caut\u0101s tr\u012bs mode\u013ci (Java modelis, AST, saist\u012bjumi) kop\u0101 ir pamats \u201einteli\u0123ento izstr\u0101des r\u012bku\u201d izveidei JDT, starp kuriem ir jaud\u012bgs Java redaktors ar da\u017e\u0101diem \u201epal\u012bgiem\u201d, da\u017e\u0101d\u0101m avota koda apstr\u0101des darb\u012bb\u0101m ( tostarp nosaukumu importa saraksta organiz\u0113\u0161ana un format\u0113\u0161ana, iev\u0113rojot piel\u0101gotos stilus), mekl\u0113\u0161anas un refaktoriz\u0113\u0161anas r\u012bki. \u0160aj\u0101 gad\u012bjum\u0101 Java modelim ir \u012bpa\u0161a loma, jo tie\u0161i tas tiek izmantots k\u0101 pamats vizu\u0101l\u0101s att\u0113lo\u0161anai izstr\u0101d\u0101jamo lietojumprogrammu strukt\u016brai (piem\u0113ram, Package Explorer, Outline, Search, Call Hierarchy un Type Hierarchy).<\/p>\n<h2>Eclipse komponenti, kas tiek izmantoti 1C:Enterprise Development Tools<\/h2>\n<p>\nAtt. 7 par\u0101d\u012bti Eclipse komponenti, kas veido tehnolo\u0123isk\u0101s platformas pamatu 1C:Enterprise Development Tools.<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse k\u0101 tehnolo\u0123iju platforma 1C:Enterprise izstr\u0101des r\u012bkiem\" src=\"\/wp-content\/uploads\/2019\/04\/248cceea47ee507b9ad22d6964738ee7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Att. 7. Eclipse k\u0101 platforma 1C:Enterprise Development Tools<\/b><\/p>\n<p><b>Eclipse Platforma<\/b> nodro\u0161ina pamata infrastrukt\u016bru. M\u0113s apskat\u012bj\u0101m da\u017eus \u0161\u012bs infrastrukt\u016bras aspektus iepriek\u0161\u0113j\u0101 noda\u013c\u0101.<\/p>\n<p><b><noindex><a rel=\"nofollow\" href=\"https:\/\/www.eclipse.org\/modeling\/emf\/\">Eclipse Modeling Framework<\/a><\/noindex><\/b> (<b>EMF<\/b>) nodro\u0161ina visp\u0101r\u012bgus strukt\u016bru datu model\u0113\u0161anas r\u012bkus. EMF ir integr\u0113ts ar Eclipse platformu, bet to var izmantot ar\u012b atsevi\u0161\u0137i, parast\u0101s Java lietojumprogramm\u0101s. Bie\u017ei vien jauni Eclipse izstr\u0101d\u0101t\u0101ji jau labi p\u0101rzina EMF, lai gan v\u0113l nesaprot Eclipse platformas nianses. Viens no t\u0101 atzin\u012bbas iemesliem ir univers\u0101lais dizains, kas ietver ar\u012b visp\u0101rin\u0101tu meta-l\u012bme\u0146a API, kas \u013cauj visp\u0101rin\u0101ti str\u0101d\u0101t ar jebkuru EMF modeli. EMF nodro\u0161in\u0101t\u0101s pamata implement\u0101cijas mode\u013ca objektiem un mode\u013ca koda \u0123ener\u0113\u0161anas apak\u0161sist\u0113ma, pamatojoties uz meta\u2013mode\u013ciem, iev\u0113rojami palielina izstr\u0101des \u0101trumu un samazina k\u013c\u016bdu skaitu. EMF ar\u012b ietver mode\u013cu serializ\u0101cijas meh\u0101nismus, izmai\u0146u izseko\u0161anu model\u012b un daudz ko citu. <\/p>\n<p>K\u0101 jebkuram patiesi univers\u0101lam r\u012bkam, EMF ir piem\u0113rots pla\u0161a spektra uzdevumiem, kas saist\u012bti ar model\u0113\u0161anu, ta\u010du da\u017eiem mode\u013cu veidiem (piem\u0113ram, iepriek\u0161min\u0113tajiem handle-based mode\u013ciem) var b\u016bt nepiecie\u0161ami specializ\u0113t\u0101ki mode\u013cu model\u0113\u0161anas r\u012bki. St\u0101stot par EMF, ir pateic\u012bgs darbs, \u012bpa\u0161i viena raksta ierobe\u017eoto ietvaru d\u0113\u013c, jo tas ir ne tikai atsevi\u0161\u0137as gr\u0101matas t\u0113ma, bet ar\u012b gana bieza. Atz\u012bm\u0113sim tikai to, ka kvalitat\u012bva visp\u0101rin\u0101jumu sist\u0113ma, kas pamatota EMF, ir \u013c\u0101vusi rad\u012bt veselu projektu spektru, kas velt\u012bts model\u0113\u0161anai un kas ietilpst augst\u0101k\u0101 l\u012bme\u0146a projekt\u0101. <noindex><a rel=\"nofollow\" href=\"https:\/\/eclipse.org\/modeling\/\">Eclipse model\u0113\u0161ana<\/a><\/noindex> kop\u0101 ar pa\u0161u EMF. Viens no \u0161\u0101diem projektiem ir Eclipse Xtext.<\/p>\n<p><b><noindex><a rel=\"nofollow\" href=\"https:\/\/www.eclipse.org\/Xtext\/\">Eclipse Xtext<\/a><\/noindex><\/b> nodro\u0161ina \"teksta model\u0113\u0161anas\" infrastrukt\u016bru. Xtext izmanto <noindex><a rel=\"nofollow\" href=\"http:\/\/www.antlr.org\/\">ANTLR<\/a><\/noindex> l\u012bz\u0113\u0161anai s\u0101kotn\u0113j\u0101 teksta sintaksei un EMF, lai att\u0113lotu rezult\u0101t\u0101 ieg\u016bto ASG (abstract semantic graph, kas b\u016bt\u012bb\u0101 ir AST un bindings kombin\u0101cija), ko d\u0113v\u0113 ar\u012b par \"semantisko modeli\". Xtext model\u0113jam\u0101 valoda tiek aprakst\u012bta t\u0101s pa\u0161as Xtext valodas rel\u0101cij\u0101. Tas ne tikai \u013cauj \u0123ener\u0113t gramatikas aprakstu ANTLR, bet ar\u012b ieg\u016bt AST serializ\u0101cijas meh\u0101nismu (t.i., Xtext nodro\u0161ina gan parser, gan unparser), konteksta ieteikumus un virkni citu valodas komponentu. No otras puses, gramatikas apraksta valoda, kas tiek izmantota Xtext, ir maz\u0101k elast\u012bga sal\u012bdzin\u0101jum\u0101, teiksim, ar gramatikas apraksta valodu ANTLR. T\u0101p\u0113c da\u017ereiz ir j\u0101\"piel\u0101go\" Xtext \u012bstenotajai valodai, kas parasti nav probl\u0113ma, ja run\u0101jam par valodu, kas tiek izstr\u0101d\u0101ta no nulles, ta\u010du var b\u016bt nepie\u0146emama jau izveidot\u0101m valod\u0101m ar sare\u017e\u0123\u012btu sintaksi. Neskatoties uz to, Xtext pa\u0161laik ir visatt\u012bst\u012bt\u0101kais, funkcion\u0101li piln\u012bg\u0101kais un univers\u0101l\u0101kais r\u012bks Eclipse, lai izveidotu programm\u0113\u0161anas valodas un izstr\u0101des r\u012bkus t\u0101m. \u012apa\u0161i tas ir ide\u0101ls r\u012bks \u0101trai prototipa izstr\u0101dei. <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA\">priek\u0161metorient\u0113t\u0101s valodas<\/a><\/noindex> (domain-specific language, DSL). Bez iepriek\u0161 min\u0113t\u0101 \"valodas kodola\", kas balst\u012bts uz ANTLR un EMF, Xtext pied\u0101v\u0101 daudz noder\u012bgu augst\u0101ka l\u012bme\u0146a komponentu, tostarp indeks\u0113\u0161anas meh\u0101nismus, inkrement\u0101lu izveidi, \"gudru redaktoru\" un daudz ko citu, bet atst\u0101j nov\u0101rt\u0101 valodas handle-based mode\u013ca izstr\u0101di. T\u0101pat k\u0101 EMF, Xtext ir temats, kas peln\u012bjis atsevi\u0161\u0137as gr\u0101matas uzman\u012bbu, un m\u0113s, visticam\u0101k, nepietiks laika, lai pat virspus\u0113ji apl\u016bkotu visas t\u0101 iesp\u0113jas.<\/p>\n<p>1C:Enterprise Development Tools akt\u012bvi izmanto gan EMF pa\u0161u par sevi, gan virkni citu Eclipse Modeling projektu. \u012apa\u0161i Xtext ir viens no r\u012bku pamatiem t\u0101d\u0101m valod\u0101m 1C:Uz\u0146\u0113mums k\u0101 ieb\u016bv\u0113t\u0101 programm\u0113\u0161anas valoda un vaic\u0101jumu valoda. Cits \u0161o izstr\u0101des r\u012bku pamats ir projekts Eclipse Handly, par kuru m\u0113s vair\u0101k detaliz\u0113ti run\u0101sim (no iepriek\u0161 min\u0113tajiem komponentiem Eclipse tas \u0161obr\u012bd ir vismaz\u0101k paz\u012bstams).<\/p>\n<p><b><noindex><a rel=\"nofollow\" href=\"https:\/\/www.eclipse.org\/handly\/\">Eclipse Handly<\/a><\/noindex><\/b>, augst\u0101ka l\u012bme\u0146a projekta Eclipse Technology apak\u0161projekts rad\u0101s, pateicoties s\u0101kotn\u0113jai koda ieguld\u012bjuma Eclipse Foundation no uz\u0146\u0113muma 1C 2014. gad\u0101. Kop\u0161 t\u0101 laika uz\u0146\u0113mums 1C turpina atbalst\u012bt projekta att\u012bst\u012bbu: Handly komit\u0113ri ir uz\u0146\u0113muma darbinieki. Projekts ir neliels, ta\u010du aiz\u0146em pietiekami unik\u0101lu ni\u0161u Eclipse: t\u0101 galvenais m\u0113r\u0137is ir atbalst\u012bt handle-b\u0101z\u0113tu mode\u013cu izstr\u0101di.<\/p>\n<p>Galvenie arhitekt\u016bras principi handle-b\u0101z\u0113t\u0101m mode\u013ciem, piem\u0113ram, handle\/body idioma, tika apspriesti iepriek\u0161, izmantojot resursu modeli un Java modeli k\u0101 piem\u0113rus. Tur tika atz\u012bm\u0113ts, ka gan resursu modelis, gan Java modelis ir svar\u012bgi pamati Eclipse Java izstr\u0101des r\u012bkiem (JDT). T\u0101 k\u0101 praktiski visi *DT Eclipse projekti ir arhitekt\u016bras zi\u0146\u0101 l\u012bdz\u012bgi JDT, neb\u016bs p\u0101rsp\u012bl\u0113ti teikt, ka handle-b\u0101z\u0113tie mode\u013ci ir da\u013ca no daudziem, ja ne visiem IDE, kas balst\u0101s uz Eclipse platformu. Piem\u0113ram, Eclipse C\/C++ izstr\u0101des r\u012bkos (CDT) ir handle-b\u0101z\u0113ts C\/C++ modelis, kas sp\u0113l\u0113 t\u0101du pa\u0161u lomu architekt\u016br\u0101 k\u0101 Java modelis JDT.<\/p>\n<p>Pirms Handly par\u0101d\u012b\u0161an\u0101s, Eclipse nepied\u0101v\u0101ja specializ\u0113tas bibliot\u0113kas valodu handle-b\u0101z\u0113tu mode\u013cu izstr\u0101dei. Eso\u0161ie mode\u013ci tika rad\u012bti galvenok\u0101rt, tie\u0161i piel\u0101gojot Java mode\u013ca kodu (t.i., copy\/paste), <i>gad\u012bjumos, kad tas ir at\u013cauts<\/i> Eclipse Public License (EPL). (Saprotams, ka, teiksim, projektiem pa\u0161\u0101 Eclipse tas parasti nav juridiska probl\u0113ma, ko nevar teikt par produktiem ar sl\u0113gtu avotu.) Bez tam, \u0161ai metodikai ir rakstur\u012bga nesak\u0101rtot\u012bba, kas rada labi zin\u0101mas probl\u0113mas: koda dubl\u0113\u0161anu, piel\u0101go\u0161anas rezult\u0101t\u0101 radu\u0161\u0101s k\u013c\u016bdas utt. V\u0113l slikt\u0101k, rezult\u0101t\u0101 radu\u0161ies mode\u013ci paliek \u201elieta pa\u0161i par sevi\u201d un neizmanto pieejamo potenci\u0101lu unifik\u0101cijas izveidei. Ta\u010du kop\u012bgu j\u0113dzienu un protokolu izdal\u012b\u0161ana valodu handle-b\u0101z\u0113tajiem mode\u013ciem var\u0113tu novest pie atk\u0101rtoti izmantojamu komponentu izveides, l\u012bdz\u012bgi k\u0101 tas notika EMF gad\u012bjum\u0101.<\/p>\n<p>Nav iesp\u0113jams teikt, ka Eclipse \u0161\u012bs probl\u0113mas neapzin\u0101j\u0101s. V\u0113l 2005. gad\u0101 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.xing.com\/profile\/Martin_Aeschlimann\">Martin Aeschlimann<\/a><\/noindex>, apkopojot CDT prototipa izstr\u0101des pieredzi, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.eclipse.org\/org\/langsymp\/position_paper_martin_aeschlimann.html\">argument\u0113ja<\/a><\/noindex> kop\u0113j\u0101s infrastrukt\u016bras izveides nepiecie\u0161am\u012bba valodu mode\u013ciem, tostarp mode\u013ciem, kas balst\u012bti uz handle. Tom\u0113r, k\u0101 tas bie\u017ei notiek, priorit\u0101ru uzdevumu d\u0113\u013c \u0161\u012bs idejas l\u012bdz realiz\u0101cijai t\u0101 ar\u012b netika \u012bstenotas. Starp citu, koda faktoriz\u0101cija *DT projektiem joproj\u0101m paliek viena no nepietiekami izstr\u0101d\u0101t\u0101m t\u0113m\u0101m Eclipse.<\/p>\n<p>Noteikt\u0101 noz\u012bm\u0113 projekts Handly paredz\u0113ts risin\u0101t l\u012bdz\u012bgas probl\u0113mas k\u0101 EMF, bet mode\u013ciem, kas balst\u012bti uz handle, un vispirms valodu modeliem (t.i., kas att\u0113lo programm\u0113\u0161anas valodas strukt\u016bras elementus). Zem\u0101k nor\u0101d\u012bti galvenie m\u0113r\u0137i, kas tika izvirz\u012bti projekt\u0113jot Handly:<\/p>\n<ul>\n<li>Pamata abstrakciju izdal\u012b\u0161ana priek\u0161metu jom\u0101.<\/li>\n<li>Centienu samazin\u0101\u0161ana un valodu handle-based mode\u013cu realiz\u0101cijas kvalit\u0101tes paaugstin\u0101\u0161ana, izmantojot koda atk\u0101rtotu izmanto\u0161anu.<\/li>\n<li>Vienota API metal\u012bme, kas paredz\u0113ta rezult\u0113jo\u0161ajiem mode\u013ciem, padarot iesp\u0113jamu kop\u0113ju IDE komponentu izveidi, kas str\u0101d\u0101 ar valodu handle-based mode\u013ciem.<\/li>\n<li>Elast\u012bba un m\u0113rogojam\u012bba.<\/li>\n<li>Integr\u0101cija ar Xtext (atsevi\u0161\u0137\u0101 sl\u0101n\u012b).<\/li>\n<\/ul>\n<p>\nLai identific\u0113tu kop\u012bgus j\u0113dzienus un protokolus, tika analiz\u0113tas eso\u0161\u0101s valodu handle-based mode\u013cu realiz\u0101cijas. Galvenie interfeisi un pamata realiz\u0101cijas, ko nodro\u0161ina Handly, tiek par\u0101d\u012bti att\u0113l\u0101 8.<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse k\u0101 tehnolo\u0123iju platforma 1C:Enterprise izstr\u0101des r\u012bkiem\" src=\"\/wp-content\/uploads\/2019\/04\/47f4bf74093245334b8d67b149734dfc.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Att. 8. Kop\u012bgie interfeisi un pamata realiz\u0101cijas Handly elementiem<\/b><\/p>\n<p>Interfeiss IElement att\u0113lo elementa handle un ir kop\u012bgs vis\u0101m Handly balst\u012btaj\u0101m mode\u013cu elementiem. Abstraktais klases Element realiz\u0113 \u0123eneriz\u0113tu handle\/body meh\u0101nismu (att. 9).<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse k\u0101 tehnolo\u0123iju platforma 1C:Enterprise izstr\u0101des r\u012bkiem\" src=\"\/wp-content\/uploads\/2019\/04\/0651c1f284b7edfa36313d4b51d72f08.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Att. 9. IElement un \u0123eneriz\u0113t\u0101 handle\/body realiz\u0101cija<\/b><\/p>\n<p>Turkl\u0101t Handly nodro\u0161ina \u0123eneriz\u0113tu meh\u0101nismu par mode\u013ca elementu izmai\u0146\u0101m (att. 10). K\u0101 redzams, tas b\u016bt\u012bb\u0101 ir l\u012bdz\u012bgs resursu mode\u013cu un Java mode\u013cu realiz\u0113tajiem notifik\u0101cijas meh\u0101nismiem un izmanto IElementDelta, lai vienot\u0101 veid\u0101 att\u0113lotu inform\u0101ciju par elementa izmai\u0146u.<\/p>\n<p><img decoding=\"async\" alt=\"Eclipse k\u0101 tehnolo\u0123iju platforma 1C:Enterprise izstr\u0101des r\u012bkiem\" src=\"\/wp-content\/uploads\/2019\/04\/cbdec8cf874308e0fa9dd96d04f62703.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Att. 10. Kop\u012bgie interfeisi un pamata realiz\u0101cijas Handly notifik\u0101cijas meh\u0101nismam<\/b><\/p>\n<p>Iepriek\u0161 apskat\u012bt\u0101 Handly da\u013ca (att. 9 un 10) var tikt izmantota praktiski jebkuru handle-based mode\u013cu att\u0113lo\u0161anai. Lai izveidotu <i>valodu<\/i> mode\u013cus projekts pied\u0101v\u0101 papildu funkcionalit\u0101ti \u2013 proti, kop\u012bgus interfeisus un pamata realiz\u0101cijas strukt\u016bras elementiem avota tekst\u0101, t\u0101 sauktajiem <i>source elements<\/i> (att\u0113ls 8). ISourceFile interfeiss p\u0101rst\u0101v avota failu, bet ISourceConstruct \u2013 elementu iek\u0161 avota faila. Abstraktie klases SourceFile un SourceConstruct realiz\u0113 \u0123eneriskus meh\u0101nismus, lai atvieglotu darbu ar avota failiem un to elementiem, piem\u0113ram, darbu ar teksta buferiem, sasaisti ar elementa koordin\u0101t\u0113m avota tekst\u0101, mode\u013ca saska\u0146o\u0161anu ar pa\u0161reiz\u0113jo bufera darba kopijas saturu u.c. \u0160o meh\u0101nismu \u012bsteno\u0161ana parasti ir gana sare\u017e\u0123\u012bta uzdevums, un Handly var b\u016btiski samazin\u0101t piep\u016bli, izstr\u0101d\u0101jot valodai balst\u012btas mode\u013cus, pied\u0101v\u0101jot kvalitat\u012bvas pamata \u012bstenojumus.<\/p>\n<p>Papildus iepriek\u0161 uzskait\u012btajiem pamata meh\u0101nismiem, Handly sniedz tekstu buferu un \"s\u012bkatt\u0113lu\" (snapshots) infrastrukt\u016bru, atbalsta integr\u0101ciju ar avota koda redaktoriem (tostarp realiz\u0113tu \"no kasti\" integr\u0101ciju ar Xtext redaktoru), k\u0101 ar\u012b da\u017eus visp\u0101r\u0113jus UI komponentus, kas str\u0101d\u0101 ar Handly mode\u013ciem, piem\u0113ram, outline framework. Lai ilustr\u0113tu savas iesp\u0113jas, projekts pied\u0101v\u0101 vair\u0101kus piem\u0113rus, tostarp ar\u012b Java mode\u013ca \u012bstenojumu uz Handly. (Sal\u012bdzinot ar pilno Java mode\u013ca \u012bstenojumu JDT, \u0161is modelis tika apzin\u0101ti vienk\u0101r\u0161ot, lai to b\u016btu viegl\u0101k sagatavot.)<\/p>\n<p>K\u0101 jau iepriek\u0161 tika min\u0113ts, liel\u0101ka uzman\u012bba s\u0101kotn\u0113j\u0101 Handly projekt\u0113\u0161an\u0101 un t\u0101 turpm\u0101kaj\u0101 att\u012bst\u012bb\u0101 tika piev\u0113rsta un turpina tikt piev\u0113rsta m\u0113rogojam\u012bbai un elast\u012bbai. <\/p>\n<p>Princip\u0101, handle-based mode\u013ci ir diezgan labi m\u0113rogojami \"p\u0113c dizaina\". Piem\u0113ram, idiom\u0101tisk\u0101 handle\/body \u013cauj ierobe\u017eot mode\u013ca pat\u0113r\u0113to atmi\u0146u. Bet ir ar\u012b nianses. Veicot testus ar Handly m\u0113rogojam\u012bbu, tika atkl\u0101ta probl\u0113ma ar notifik\u0101cijas meh\u0101nisma \u012bsteno\u0161anu \u2013 mainot lielu skaitu elementu, delta izveide aiz\u0146\u0113ma p\u0101r\u0101k ilgu laiku. Izr\u0101d\u012bj\u0101s, ka t\u0101 pati probl\u0113ma past\u0101v ar\u012b Java model\u012b JDT, no kura k\u0101dreiz tika adapt\u0113ts attiec\u012bgais kods. M\u0113s laboj\u0101m k\u013c\u016bdu Handly un sagatavoj\u0101m l\u012bdz\u012bgu labojumu JDT, kas tika pie\u0146emts ar pateic\u012bbu. Tas ir tikai viens no piem\u0113riem, kad Handly ievie\u0161ana eso\u0161aj\u0101s mode\u013cu \u012bstenojumos var\u0113tu b\u016bt potenci\u0101li noder\u012bga, jo \u0161aj\u0101 gad\u012bjum\u0101 t\u0101du k\u013c\u016bdu var\u0113tu nov\u0113rst tikai vien\u0101 viet\u0101.<\/p>\n<p>Lai padar\u012btu Handly ievie\u0161anu eso\u0161aj\u0101s mode\u013cu realiz\u0101cij\u0101s tehniski iesp\u0113jamu, bibliot\u0113kai j\u0101b\u016bt iev\u0113rojamai elast\u012bbai. Galven\u0101 probl\u0113ma ir apgrieztas sader\u012bbas saglab\u0101\u0161ana mode\u013ca API. \u0160\u012b uzdevuma risin\u0101jums tika pan\u0101kts <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.eclipse.org\/Handly\/NewIn05\">Handly 0.5<\/a><\/noindex> ar skaidru mode\u013ca specifisk\u0101 API nodal\u012b\u0161anu, ko defin\u0113 un piln\u012bb\u0101 kontrol\u0113 izstr\u0101d\u0101t\u0101js, no bibliot\u0113kas nodro\u0161in\u0101ta apvienota API meta-l\u012bme\u0146a. Tas ne tikai padara Handly ievie\u0161anu eso\u0161aj\u0101s realiz\u0101cij\u0101s tehniski iesp\u0113jamu, bet ar\u012b sniedz jauno mode\u013cu izstr\u0101d\u0101t\u0101jiem iev\u0113rojamu br\u012bv\u012bbu API projekt\u0113\u0161anas proces\u0101.<\/p>\n<p>Elast\u012bbai ir ar\u012b citi aspekti. Piem\u0113ram, Handly gandr\u012bz nesniedz ierobe\u017eojumus mode\u013ca strukt\u016brai un var tikt izmantots gan visp\u0101r\u0113j\u0101s lietojumprogramm\u0101s, gan specializ\u0113tajos valod\u0101s. Veidojot s\u0101kotn\u0113j\u0101 faila strukt\u016bru, Handly neuzspie\u017e noteiktu AST att\u0113lo\u0161anas formu un princip\u0101 pat neprasa AST esam\u012bbu, t\u0101d\u0113j\u0101di nodro\u0161inot sader\u012bbu ar praktiski jebkuriem sintaktisk\u0101s anal\u012bzes meh\u0101nismiem. Beidzot, Handly piln\u012bb\u0101 atbalsta integr\u0101ciju ar Eclipse workspace, ta\u010du var darboties ar\u012b tie\u0161i ar failu sist\u0113m\u0101m, pateicoties integr\u0101cijai ar <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.eclipse.org\/EFS\">Eclipse File System<\/a><\/noindex> (EFS).<\/p>\n<p>Aktu\u0101l\u0101 versija <noindex><a rel=\"nofollow\" href=\"https:\/\/projects.eclipse.org\/projects\/technology.handly\/releases\/0.6\">Handly 0.6<\/a><\/noindex> izn\u0101ca 2016. gada decembr\u012b. Neskatoties uz to, ka projekts pa\u0161laik ir inkub\u0101cijas stadij\u0101 un API v\u0113l nav gal\u012bgi apstiprin\u0101ts, Handly jau tiek izmantots divos lielos komerci\u0101los produktos, kuri risk\u0113ja k\u013c\u016bt par \u201cagriem pie\u0146\u0113m\u0113jiem\u201d un, j\u0101atz\u012bm\u0113, pagaid\u0101m par to neno\u017e\u0113lo.<\/p>\n<p>K\u0101 min\u0113ts iepriek\u0161, viens no \u0161iem produktiem ir 1C:Enterprise izstr\u0101des r\u012bki, kur Handly jau no pa\u0161a s\u0101kuma tiek izmantots augsta l\u012bme\u0146a strukt\u016bras elementu model\u0113\u0161anai, piem\u0113ram, programm\u0113\u0161anas valoda un vaic\u0101jumu valoda. Otrais produkts ir maz\u0101k paz\u012bstams pla\u0161ai publikai. Tas ir <noindex><a rel=\"nofollow\" href=\"https:\/\/www.codasip.com\/custom-processor\/\">Codasip Studio<\/a><\/noindex>, integr\u0113ta probl\u0113mas risin\u0101\u0161anas procesoru projekt\u0113\u0161anas vide (application-specific instruction-set processor, ASIP), ko izmanto gan pa\u0161\u0101 \u010cehijas uz\u0146\u0113mum\u0101 Codasip, gan t\u0101s klienti, tostarp <noindex>AMD<\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.avg.com\/\">AVG<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.mobileye.com\/\">Mobileye<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.sigmadesigns.com\/\">Sigma Designs<\/a><\/noindex>. Codasip izmanto Handly produkcij\u0101 kop\u0161 2015. gada, s\u0101kot ar versiju Handly 0.2. P\u0113d\u0113j\u0101 versija Codasip Studio izmanto 0.5, kas public\u0113ta 2016. gada j\u016bnij\u0101. Ond\u0159ej Il\u010d\u00edk, kur\u0161 vada IDE izstr\u0101di Codasip, ir sazin\u0101jies ar projektu, nodro\u0161inot \u0101rk\u0101rt\u012bgi svar\u012bgas atsauksmes no \"\u0101r\u0113j\u0101 adopt\u0113t\u0101ja\". Vi\u0146\u0161 pat sp\u0113ja atrast nedaudz br\u012bva laika, lai tie\u0161i piedal\u012btos projekta izstr\u0101d\u0113, realiz\u0113jot UI sl\u0101ni (~ 4000 rindi\u0146as koda) vienam no Handly piem\u0113riem, Java modelim. S\u012bk\u0101ka inform\u0101cija \"no pirm\u0101m rok\u0101m\" par Handly izmanto\u0161anu adopt\u0113t\u0101jiem ir pieejama lap\u0101 <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.eclipse.org\/Handly\/Adopters\">Pan\u0101kumu st\u0101sti<\/a><\/noindex> projekta.<\/p>\n<p>M\u0113s ceram, ka p\u0113c 1.0 versijas izn\u0101k\u0161anas, kas nodro\u0161in\u0101s API stabilit\u0101tes garantiju un projekta izie\u0161anu no inkub\u0101cijas st\u0101vok\u013ca, Handly ieg\u016bs jaunus adopt\u0113t\u0101jus. Pa\u0161laik projekts turpina test\u0113\u0161anu un turpm\u0101ko API att\u012bst\u012bbu, izla dots divas \"lielas\" versijas gad\u0101 \u2013 j\u016bnij\u0101 (taj\u0101 pa\u0161\u0101 datum\u0101, kad notiek j\u016bnija Eclipse izlai\u0161ana) un decembr\u012b, nodro\u0161inot prognoz\u0113jamu grafiku, uz kuru adopt\u0113t\u0101ji var pa\u013cauties. V\u0113l var piebilst, ka projekta \"bug rate\" ir nemain\u012bgi zems, un Handly no pa\u0161\u0101m pirmaj\u0101m versij\u0101m uzticami darbojas agr\u012bnajos adopt\u0113t\u0101ju produktos. Papildu iepaz\u012b\u0161anai ar Eclipse Handly var izmantot <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pisv\/gethandly\/wiki\">S\u0101kumtutorials<\/a><\/noindex> un <noindex><a rel=\"nofollow\" href=\"http:\/\/www.eclipse.org\/downloads\/download.php?file=\/handly\/docs\/handly-overview.pdf&amp;r=1\">Arhitekt\u016bras p\u0101rskats<\/a><\/noindex>.<br \/>\n<br \/>Avots: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/1c\/blog\/323508\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, Eclipse \u0434\u0430\u0432\u043d\u043e \u0443\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0441\u043e\u0431\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438. \u041c\u043d\u043e\u0433\u0438\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u044b \u0441 Eclipse \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f Eclipse Java development tools (JDT). \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0430 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f open-source Java IDE \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0443 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441\u043e \u0441\u043b\u043e\u0432\u043e\u043c \u201cEclipse\u201d. \u041e\u0434\u043d\u0430\u043a\u043e Eclipse \u2013 \u044d\u0442\u043e \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 (Eclipse Platform), \u0438 \u0446\u0435\u043b\u044b\u0439 \u0440\u044f\u0434 IDE, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u0435\u0435 \u043e\u0441\u043d\u043e\u0432\u0435, \u0432 \u0442\u043e\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24268,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-32464","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, Eclipse \u0434\u0430\u0432\u043d\u043e \u0443\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0441\u043e\u0431\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/eclipse-kak-tehnologicheskaya-platforma-dlya-1c-enterprise-development-tools\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Eclipse \u043a\u0430\u043a \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f 1C:Enterprise Development Tools | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, Eclipse \u0434\u0430\u0432\u043d\u043e \u0443\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0441\u043e\u0431\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/eclipse-kak-tehnologicheskaya-platforma-dlya-1c-enterprise-development-tools\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:47:12+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:47:12+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Eclipse k\u0101 tehnolo\u0123iju platforma 1C:Enterprise izstr\u0101des r\u012bkiem | ProHoster","description":"Dro\u0161i vien, Eclipse sen vairs nav j\u0101iepaz\u012bstina.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/eclipse-kak-tehnologicheskaya-platforma-dlya-1c-enterprise-development-tools","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Eclipse \u043a\u0430\u043a \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f 1C:Enterprise Development Tools | ProHoster","og:description":"\u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, Eclipse \u0434\u0430\u0432\u043d\u043e \u0443\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0441\u043e\u0431\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438.","og:url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/eclipse-kak-tehnologicheskaya-platforma-dlya-1c-enterprise-development-tools","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:47:12+00:00","article:modified_time":"2019-10-31T18:47:12+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32464","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 11:00:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:58:24","updated":"2026-01-21 11:00:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/32464","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=32464"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/32464\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media\/24268"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=32464"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=32464"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=32464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}