Executable/Modul: Gespeicherte URLs im gesamten Site-Store zurücksetzen
Author: mschomacker
Publication Date: 10/10/2014 14:32
Hallo Community,
ich möchte in einem Executable alle gespeicherten URLs des Site-Stores (alle Elemente) zurücksetzen. Das Executable ist als Skript-Aktion in einem Auftrag eingebunden und wird vor den Generierungs-Tasks ausgeführt. Hier ein Auszug aus dem Quellcode:
public class ResetStoredUrlsExecutable implements Executable {
@Override
public Object execute(Map parameters) throws ExecutionException {
Object contextParam = parameters.get("context");
...
ScheduleContext context = (ScheduleContext) contextParam;
SiteStoreRoot siteStore = (SiteStoreRoot) context.requestSpecialist(StoreAgent.TYPE).getStore(Store.Type.SITESTORE, false);
GlobalStoreRoot globalStore = (GlobalStoreRoot) context.requestSpecialist(StoreAgent.TYPE).getStore(Store.Type.GLOBALSTORE, false);
URLProperties urlProperties = globalStore.getChildren(URLProperties.class).getFirst();
urlProperties.setLock(true, false);
int resettedUrlsCount = urlProperties.resetStoredUrls(siteStore);
context.logInfo(resettedUrlsCount + " stored URL(s) resetted of SiteStoreRoot!");
urlProperties.setLock(false, false);
}
}
Leider wirkt sich der Reset nicht aus, d.h. die gespeicherten URLs werden nicht zurückgesetzt. Wenn ich diesen Code in einer Bean-Shell ausführe, funktioniert er.
Hat jemand von euch eine Idee, an was das liegen könnte?
Schon jetzt vielen herzlichen Dank für eure Unterstützung.
Viele Grüße aus Nürnberg,
Michi
Tags: executable, module, module_development, reset, sitestore, storedurls
-
Author: mschomacker - 10/20/2014 12:40
Hallo zusammen,
die Notwendigkeit für das oben erwähnte Java-Executable ist aufgrund eines Tipps des Help-Desks entfallen. Vor dem Generierungs-Task fügten wir einen Skrip-Task mit folgendem Inhalt ein:
import java.util.HashMap;
HashMap params = new HashMap();
params.put("removedeleted", "true");
params.put("usewelcomefilenames", "false");
context.setProperty("#urlCreatorSettings", params);Hierdurch wird sichergestellt, dass die "stored URLs" von gelöschten Seitenreferenzen im Rahmen der anstehenden Generierung zurückgesetzt werden. Infolgessen werden etwaige URL-Konflikte verhindert (eine gelöschte Seitenreferenz verhindert nicht mehr die Vergabe des Dateinamens "index.html" im Falle einer neu angelegten Seitenreferenz im gleichen Verzeichnis).
Weitere Infos finden sich in der ODFS-Hilfe: .../help/odfs/Weiterführende-Themen/Generierung/Advanced-URLs/Konfiguration/#text_bild_1
0 -
Author: ncbruckner - 6/15/2022 15:33
Falls irgendjemand, außer mir, auch mal wieder das Problem mit gespeicherten Urls haben sollte, wenn man folgenden Code verwendet geht es:
urlProperties.setLock(true, false); int resettedUrlsCount = urlProperties.resetStoredUrls(siteStore); context.logInfo(resettedUrlsCount + " stored URL(s) resetted of SiteStoreRoot!"); urlProperties.save("Urls reset"); urlProperties.setLock(false, false);Die UrlProperties sind ein StoreElement und müssen gespeichert werden, damit die Änderungen ziehen.
0
Please sign in to leave a comment.
Comments
2 comments