Cq60UIContentUpgrade.java 2.69 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.day.cq.commons.jcr.JcrUtil
 *  javax.jcr.Node
 *  javax.jcr.PathNotFoundException
 *  javax.jcr.Property
 *  javax.jcr.RepositoryException
 *  javax.jcr.Session
 *  org.slf4j.Logger
 *  org.slf4j.LoggerFactory
 */
package com.day.cq.compat.codeupgrade.impl.cq60;

import com.day.cq.commons.jcr.JcrUtil;
import com.day.cq.compat.codeupgrade.internal.api.ProgressInfoProvider;
import javax.jcr.Node;
import javax.jcr.PathNotFoundException;
import javax.jcr.Property;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Cq60UIContentUpgrade
implements ProgressInfoProvider {
    private static final Logger log = LoggerFactory.getLogger(Cq60UIContentUpgrade.class);
    public static final String CONTENT_FILE_NAME = "/cq60-ui-content-upgrade.json";
    public static final String AUTHORING_MODE_CONFIG_NAME = "com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl";
    public static final String AUTHORING_MODE_SERVICE_CONFIG_PATH = "/libs/system/config/com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl";
    private String progressInfo = "No info yet";

    @Override
    public String getProgressInfo() {
        return this.progressInfo;
    }

    public void doUpgrade(Session s) {
        try {
            this.progressInfo = "Updating Authoring UI config.";
            if (s.itemExists("/libs/system/config/com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl.config")) {
                s.removeItem("/libs/system/config/com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl.config");
                s.save();
            }
            Node uiConfigNode = null;
            try {
                uiConfigNode = s.getNode("/libs/system/config/com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl");
            }
            catch (PathNotFoundException e) {
                Node configNode = JcrUtil.createPath((String)"/libs/system/config", (String)"nt:unstructured", (Session)s);
                uiConfigNode = configNode.addNode("com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl", "sling:OsgiConfig");
            }
            if (uiConfigNode == null) {
                throw new RepositoryException("Could not access /libs/system/config/com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl");
            }
            uiConfigNode.setProperty("authoringUIModeService.default", "CLASSIC");
            s.save();
            this.progressInfo = "Update Authoring UI config complete.";
        }
        catch (RepositoryException e) {
            log.error("Could not Update Authoring UI config.", (Throwable)e);
            this.progressInfo = "Error";
        }
    }
}