Problem
Die OSGi-Bundles unserer Anwendung sind in unserem CQ5-Inhaltspaket unter /apps/<appname>/install
enthalten, werden aber nicht immer installiert, wenn wir das Paket installieren?
Ursache
Dieses Problem ist auf die Kriterien zurückzuführen, die vom Apache Sling jcrinstall-Modul bei der Entscheidung, ob ein Bundle aktualisiert werden soll oder nicht, verwendet werden.
- Weitere Informationen zu jcrinstall finden Sie hier
Lösung
Um dieses Problem zu beheben, sodass jedes Mal, wenn Sie das Paket installieren, das jsp neu installiert wird (über das Sling jcrinstall-Modul):
- Fügen Sie die folgende Filterregel am Anfang Ihrer
filter.xml
inMETA-INF/vault/filter.xml
:
ein.<workspaceFilter version="1.0">
<filter root="/apps/<appname>">
<include pattern="/apps/<appname>(/.*)?" />
<exclude pattern="/apps/<appname>/install(/.*)?" />
</filter>
...
Dieser Filter bewirkt, dass die alten Bundles gelöscht und die Ersetzungen installiert werden.
Hinweis: <appname> im obigen Code sollte durch den Namen Ihrer Anwendung ersetzt werden.
Gilt für
CQ 5.3
Referenz
1 http://sling.apache.org/site/jcr-installer-jcrjcrinstall-and-osgiinstaller.html
Wenden Sie diese Problemumgehung nicht auf CQ5.4-Installationen an, da dies in der Tat zu weiteren Problemen führt. Wenn Sie dieses Problem in CQ5.4 feststellen, dann reichen Sie bitte ein Support Ticket ein.