2013-01-31 24 views
7

tarafından nasıl kullanılır? Apache sling ve CQ5 geliştirme işlemlerine başlıyorum. Sling'te OSGI demetleri kullanma konsepti var.osgi demetleri,

Sling çerçevesinin aslında bu paketlerle nasıl etkileştiğini ve paketlerin yanıtlarının nereye gittiğini nasıl anlayamıyorum?

cevap

7

OSGi, Sling ve CQ5 ürünü tarafından kullanılan modül çerçevesi ve servis platformudur. Sling'in kendisi, Felix OSGi konteynerinin içinde barındırılan bir dizi demetten oluşmaktadır. Paketler, konteyner tarafından yönetilen bileşenler/hizmetler ve java sınıflarının bir toplama grubudur. Paket, hangi paketlerin içe aktarılacağını, dışa aktarılacağını ve bu bağımlılıkların sürümlerini belirtebilir.

Sling'ten OSGi ile etkileşimde bulunabileceğiniz çeşitli yollar vardır. Bir JSP/JSP itibaren aşağıdaki satırı dahil ettik eğer JSP sayfasında büyük olasılıkla açıktır (tip SlingScriptHelper arasında) sapan nesne kullanabilirsiniz: bileşeninde

<%@include file="/libs/foundation/global.jsp"%> 

veya aşağıdaki vardır:

<cq:defineObjects> 

Öyle gibi kullanabilirsiniz:

QueryBuilder queryBuilder = sling.getService(QueryBuilder.class); 

Ayrıca, kendi OSGi bileşenleri (örneğin Servlet, Servis, vs) varsa diğer başvurular enjekte SCR ek açıklamalarını kullanan OSGI bileşenleri/hizmetleri. Bertrand bunu cevabında Getting OSGi services from a bundle in Sling/CQ'a açıklar. Etkili bu kadar gibi, bileşen içinde OSGI bileşen değişkenlere @Reference ek açıklama eklenmesi anlamına gelir: En bileşen yüklendiğinde, daha sonra, referans OSGi kap ile enjekte edilecek

@Reference 
private SlingRepository repository; 

.

Bir paketin böyle bir yanıtı yoktur. Kendi bileşenleri ile

http://localhost:4502/system/console/bundles 

hizmetler & yapılandırma burada ilan: Bir dağıtılan paket sistem konsolunda görünür olmalıdır

http://localhost:4502/system/console/services 
http://localhost:4502/system/console/components 
http://localhost:4502/system/console/configMgr 

(bağlantı noktası:: Kendi CQ sunucu barındırma 4502 localhost'u değiştirin)

Bir bileşene başvuru aldığınızda, bunun üzerindeki yöntemleri çağırabilir ve bu aramalardan gelen dönüş değerlerini kullanabilirsiniz.

+0

Teşekkürler ÇOK !!! Neredeyse bu konuda ümitimi kaybediyordum. İnternetteki düzenli materyal bu soruya cevap vermiyor –

+0

Günün Belgeleri [CQ5 geliştirici sitesi] (http://dev.day.com/docs/en/cq/current.html # Geliştirme% 20on% 20CQ) ve [bloglar] (http://dev.day.com/content/ddc/blog/2008/05/slingosgi.html) oldukça iyi. Ayrıca [Felix/SCR] (http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html) yararlıdır. Son olarak, genellikle çeşitli Sling API'lerini kullanmanın en iyi yolunu gösterdiği için, [Sling projesinin kendisi] (https://github.com/apache/sling) için birim/entegrasyon testlerine göz atın. Gereksinimlerinize cevap veriyorsa lütfen cevabı kabul edin. ;-) – diffa

+0

Aslında 3 gün içinde CQ5 (Sling, OSGi, Felix, demetleri dahil) öğrenmek zorundayım !! :) Yani şimdi sadece web sayfalarında acele ediyorum. Çok teşekkürler –

İlgili konular