OSGi to platforma modułowa i platforma usługowa używana przez firmę Sling i produkt CQ5. Sling sam składa się z serii pakietów hostowanych w kontenerze Felix OSGi. Pakiety to grupa kolekcji komponentów/usług i klas java zarządzanych przez kontener. Pakiet może określać, które pakiety zostaną zaimportowane, wyeksportowane, a także wersje tych zależności.
Istnieje wiele sposobów interakcji z OSGi z Sling. Z JSP/JSP można użyć obiektu procy (typu SlingScriptHelper), który jest najprawdopodobniej dostępny na stronie JSP, jeśli zawarte następujący wiersz:
<%@include file="/libs/foundation/global.jsp"%>
w swoim składniku lub posiadać:
<cq:defineObjects>
można go używać tak:
QueryBuilder queryBuilder = sling.getService(QueryBuilder.class);
Dodatkowo, jeśli masz własne komponenty OSGi (np Servlet, serwis, itp) można wstrzykiwać odniesień do innych Komponenty OSGI/usługi wykorzystujące adnotacje SCR. Bertrand opisuje to w swojej odpowiedzi na Getting OSGi services from a bundle in Sling/CQ. Oznacza to skuteczne dodanie do adnotacji @Reference zmiennych składowych osgi z komponentów, tak jak poniżej:
@Reference
private SlingRepository repository;
Gdy element jest załadowany, a odniesienie zostanie wstrzyknięty do zbiornika OSGi.
Pakiet nie ma odpowiedzi jako takiej. Wdrożonym pakiet powinien być widoczny w konsoli systemowej:
http://localhost:4502/system/console/bundles
z jego składników, oświadczył usługi & konfiguracja tutaj:
http://localhost:4502/system/console/services
http://localhost:4502/system/console/components
http://localhost:4502/system/console/configMgr
(Wymień localhost: 4502 z własnego hosta serwera CQ: port)
Po uzyskaniu odwołania do komponentu można wywoływać metody i wykorzystywać wartości zwracane z tych wywołań.
Dzięki TAK DUŻO !!! Prawie traciłem nadzieję na to. Zwykły materiał w Internecie nie odpowiada na to pytanie. –
Dokumentacja w dniu [strona dewelopera CQ5] (http://dev.day.com/docs/en/cq/current.html # Developing% 20on% 20CQ) i [blogi] (http://dev.day.com/content/ddc/blog/2008/05/slingosgi.html) jest całkiem niezły. Pomocne jest również [Felix/SCR] (http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html). Na koniec sprawdź testy jednostki/integracji dla samego projektu Sling (https://github.com/apache/sling), ponieważ zwykle pokazują one najlepszy sposób korzystania z różnych interfejsów API Sling. Proszę zaakceptować odpowiedź, jeśli spełnia twoje wymagania. ;-) – diffa
Właściwie muszę nauczyć się CQ5 (w tym Sling, OSGi, Felix, pęczki itp.) W 3 dni !! :) Teraz właśnie pędzę po stronach internetowych. Wielkie dzięki –