2017-12-22 4 views
2

Im AEM-Servlet habe ich die vier Standardwerte der OSGI-Konfiguration festgelegt. Das erste Mal, wenn ich das Projekt erstelle, sehe ich in der Felix-Konsole vier osgi-Konfigurationen. Aber sobald ich die Konfigurationen aktualisiere, passieren folgende Szenarien. Kann jemand bitte bestätigen, ob OSGI so funktioniert?Standardwerte in der OSGI-Konfiguration in AEM

  1. Sobald ich aktualisieren/löschen Sie die Konfigurationen (mindestens eine Config da ist), und wenn ich wieder bauen, Standardwerte zurückgesetzt immer nicht. Es bleibt im vorherigen modifizierten Zustand. Ich denke, ist das richtige Verhalten. Bitte bestätigen.

  2. Da dies vom Typ Array ist, wenn ich alle Standardkonfigurationen von Felix-Konsole zu löschen, und wenn ich neu zu bauen, dann werden Standardwerte wiederhergestellt. Dieses Verhalten unterscheidet sich vom obigen Szenario. Warum ist das so?

    @property (Wert = { "GoPhone", "mobil", "Tablet", "Desktop"}, unbeschränkten = PropertyUnbounded.ARRAY, Kardinalität = 50, label = "Blockierte URLs" description = „Blocked URLs ") private statische endgültige Zeichenfolge URLS_LIST =" blockedUrls ";

Antwort

1

Wenn Sie die OSGi-Konfiguration von der Konsole ändern, wird die neue Konfiguration in /apps/system/config/<your config PID>

so gespeichert werden, Szenario 1 ist das richtige Verhalten, wenn Sie OSGi Config ändern, dann wird Ihr Servlet erneut bereitstellen, die neue Die Konfiguration wird beibehalten.

Wie für Szenario 2, denke ich nicht, dass das der Fall ist, wenn Sie die Konfiguration leeren und speichern, wird es als leere Konfiguration in /apps/system/config/<your config PID> gespeichert und erneute Bereitstellung wird nicht den Standardwert in osgi-Konsole angezeigt. Überprüfen Sie, ob die Konfigurationsdatei entfernt wurde, nachdem Sie alle Konfigurationsdateien aus der osgi-Konsole entfernt haben.

+0

für Szenario 2 wird es als leere Konfiguration in crxde gespeichert, wenn ich alle Einträge von der Felix-Konsole lösche. Aber wenn ich die Felix-Konsolenseite aktualisiere, werden Standardwerte dort angezeigt mit (Warnhinweis und Dreieckszeichen - dass die Eigenschaft nicht gesetzt ist. Das obige Feld enthält den Standardwert, der im Meta-Typ-Service angegeben ist). Aber config ist immer noch leer in crxde. Sobald ich Standardkonfigurationen in der felix-Konsole speichere, geht dieses dreieckige Symbol weg und Werte werden in der crxde gespeichert. Ist das erwartetes Verhalten? – user2581831