2013-01-31 14 views

Odpowiedz

7

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ń.

+0

Dzięki TAK DUŻO !!! Prawie traciłem nadzieję na to. Zwykły materiał w Internecie nie odpowiada na to pytanie. –

+0

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

+0

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 –

Powiązane problemy