br.com.thiagomoreira.liferay.plugins.portalpropertiesprettier.PortalPropertiesPrettierPortlet.java Source code

Java tutorial

Introduction

Here is the source code for br.com.thiagomoreira.liferay.plugins.portalpropertiesprettier.PortalPropertiesPrettierPortlet.java

Source

/**
 * Copyright (C) 2015 Thiago Moreira (tmoreira2020@gmail.com)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package br.com.thiagomoreira.liferay.plugins.portalpropertiesprettier;

import java.io.IOException;
import java.io.OutputStream;
import java.io.StringReader;
import java.util.Properties;

import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletException;
import javax.portlet.PortletPreferences;
import javax.portlet.PortletRequest;
import javax.portlet.ResourceRequest;
import javax.portlet.ResourceResponse;

import org.apache.commons.io.IOUtils;

import com.liferay.portal.kernel.upload.UploadPortletRequest;
import com.liferay.portal.kernel.util.GetterUtil;
import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.portal.kernel.util.PropertiesUtil;
import com.liferay.portal.util.PortalUtil;
import com.liferay.util.bridges.mvc.MVCPortlet;

public class PortalPropertiesPrettierPortlet extends MVCPortlet {

    protected PortalPropertiesPrettier prettier = new PortalPropertiesPrettier();

    public void prettify(ActionRequest request, ActionResponse response) throws IOException, PortletException {

        String prettyProperties = prettify(request);

        request.setAttribute("portalPrettyProperties", prettyProperties);
    }

    public void serveResource(ResourceRequest request, ResourceResponse response)
            throws IOException, PortletException {

        String prettyProperties = prettify(request);

        OutputStream out = response.getPortletOutputStream();
        IOUtils.copy(new StringReader(prettyProperties), out);
        IOUtils.closeQuietly(out);
    }

    protected String prettify(PortletRequest request) throws IOException, PortletException {
        UploadPortletRequest uploadPortletRequest = PortalUtil.getUploadPortletRequest(request);

        String liferayVersion = ParamUtil.getString(uploadPortletRequest, "liferayVersion", "6.2.3-ga4");
        boolean printDefaultValue = ParamUtil.getBoolean(uploadPortletRequest, "printDefaultValue");

        Properties customProperties = PropertiesUtil
                .load(uploadPortletRequest.getFileAsStream("portalPropertiesFile"), "UTF-8");

        String prettyProperties = prettier.prettify(customProperties, liferayVersion, printDefaultValue);

        incrementCounter(request);

        return prettyProperties;
    }

    protected void incrementCounter(PortletRequest request) throws IOException, PortletException {
        PortletPreferences preferences = request.getPreferences();

        int count = GetterUtil.getInteger(preferences.getValue("counter", "0"));

        count++;

        preferences.setValue("counter", String.valueOf(count));
        preferences.store();
    }
}