All KGS OSGi based products contain the KGS ProtocolWriter plugin inside its delivered packet (war):
KGS Contentserver
KGS Webservice
KGS DocumentRouter (3.x & 4.x)
KGS Scanserver
KGS WriteCache
KGS ReadCache
The plugin allows the using service to protocol several actions like create, put, get et cetera.
The protocol feature can be activated respective deactivated inside product specific configuration.
In case TiA core is used together with a CMIS conform repository, in addition to the ProtocolWriter plugin a TiA Core Module is recording. (e.g. via ElasticSearch)
The implementation is realized as OSGi service. The consuming components are acting as OSGi service consumers. The publish an protocol entry against the IProtocolWrite interface, defines in KGS Core bundle.
If there are several OSGi service listeners, every listener will receive the protocol entry and treat it accordingly.
Currently there are to such listeners existing:
KGS ProtocolWriter plugin
TiA Core
These services (listener) are independently of each other. This concepts empowers us to add or remove new listeners without influence the protocol entry sender nor other protocol listeners.
Remove protocol writer bundle
This section describes how to remove KGS ProtocolWriter bundle from delivered WAR.
It is also possible to remove the bundle during runtime.
In case that TiA Core is still recording, so it is possible to deactivate and remove KGS ProtocolWriter recording.
It is sufficient to remove the KGS ProtocolWriter plugin from WAR file, berfore installing the app into Tomcat.
Inside the WAR it is located in:
<WAR>\WEB-INF\eclipse\plugins\
Further adaptions are not required.
Optional:
OSGi starts bundles in a special pre-configured order.
This order is configured inside the WAR in:
<WAR>\WEB-INF\eclipse\configuration\config.ini
Diese kann entfernt werden. Dies muss aber nicht geschehen, da OSGi nur die Bundles in der Reihenfolge startet, die es auch finden kann. Existiert das Bundle “com.software.kgs.plugin.protocol-x.x.x.jar” nicht mehr im eclipse/plugins ordner, so überspringt OSGi den Startvorgang für dieses Bundle.
Sollte diese Datei modifiziert werden, so ist auf die Syntax zu achten. Jede Zeile (außer der letzten) endet mit einem Komma sowie ein Space und ein Backslash (für Zeilenumbruch). Für mehr [interne] Informationen gibt es hierzu mehr:
/wiki/spaces/WIKI/pages/6750661
Wichtig: Die config.ini wird nur einmalig beim deployment ausgeführt. Das bedeutet, dass jede Änderung an dieser Datei ein komplettes Redeployment der WAR-Datei vorraussetzt. Die Datei in einer bereits deployten Version zu modifizieren hat keinen Effekt.
Zugehörige Konfigurationsdateien
Wird der ProtocolWriter gestartet und es ist noch keine Konfiguration im Vorfeld in dem WAR enthalten (Default-Auslieferung), so legt der ProtocolWriter selbstständig in seinem config-Ordner (…/protocol/) eine neue Konfiguration mit dem Namen “Protocol Service.cfg” an. Dies gilt für alle OSGi Bundles.
Wurde der WAR-Container aber bereits vorkonfiguriert (<WAR>\conf\protocol\Protocol Service.cfg), so kann dieser Ordner (ab inlusive “protocol”) entfernt werden. Diese Dateien sind ohne das Bundle / die JAR Datei verwaist.
Referenzen in anderen Konfigurationsdateien
Der ProtocolWriter kann von vielen KGS Produkten benutzt werden. (Liste: Siehe oben). Jeder dieser KGS Produkte besitzt eine Konfiguration, in der die Einstellungen zum Protokoll gesetzt werden können. Zum Beispiel:
../contentserver/ContentServer.cfg
z.B.
Diese Einträge (KEYs) müssen behalten werden. Es ist erlaubt die Werte (true und false) zu ändern, der gesamte <entry>-Zeile muss aber in der Konfiguration weiterhin existieren.
Die Parameter in den KGS Produkten steuert, ob das Bundle (hier: KGS Contentserver) ein Protokolleintrag an das OSGi weitergibt und welche Art von Protokolleinträgen es weitergibt. Insofern ein zweiter Service-Listener (wie KGS TiA Core [AutoDigit]) im Framework existiert, so wird dieser nur ausgelöst, wenn Protokolle an das OSGi Framework weitergegeben werden.
Ein entfernen hat zur Folge, dass die Werte bei Applikationsstart mit Default-Werten neu geschrieben werden.