org.wso2.carbon.registry.properties.ui.clients.PropertiesServiceClient.java Source code

Java tutorial

Introduction

Here is the source code for org.wso2.carbon.registry.properties.ui.clients.PropertiesServiceClient.java

Source

/*
 * Copyright (c) 2006, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
 *
 * 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 org.wso2.carbon.registry.properties.ui.clients;

import org.apache.axis2.AxisFault;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.CarbonConstants;
import org.wso2.carbon.registry.common.ui.UIConstants;
import org.wso2.carbon.registry.core.exceptions.RegistryException;
import org.wso2.carbon.registry.properties.stub.PropertiesAdminServiceStub;
import org.wso2.carbon.registry.properties.stub.beans.xsd.PropertiesBean;
import org.wso2.carbon.registry.properties.stub.beans.xsd.RetentionBean;
import org.wso2.carbon.registry.properties.stub.utils.xsd.Property;
import org.wso2.carbon.registry.properties.ui.Utils;
import org.wso2.carbon.ui.CarbonUIUtil;
import org.wso2.carbon.utils.ServerConstants;

import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

public class PropertiesServiceClient {

    private static final Log log = LogFactory.getLog(PropertiesServiceClient.class);

    private PropertiesAdminServiceStub stub;
    private String epr;

    public PropertiesServiceClient(ServletConfig config, HttpSession session) throws RegistryException {

        String cookie = (String) session.getAttribute(ServerConstants.ADMIN_SERVICE_COOKIE);
        String backendServerURL = CarbonUIUtil.getServerURL(config.getServletContext(), session);
        ConfigurationContext configContext = (ConfigurationContext) config.getServletContext()
                .getAttribute(CarbonConstants.CONFIGURATION_CONTEXT);
        epr = backendServerURL + "PropertiesAdminService";

        try {
            stub = new PropertiesAdminServiceStub(configContext, epr);

            ServiceClient client = stub._getServiceClient();
            Options option = client.getOptions();
            option.setManageSession(true);
            option.setProperty(org.apache.axis2.transport.http.HTTPConstants.COOKIE_STRING, cookie);

        } catch (AxisFault axisFault) {
            String msg = "Failed to initiate resource service client. " + axisFault.getMessage();
            log.error(msg, axisFault);
            throw new RegistryException(msg, axisFault);
        }
    }

    public PropertiesBean getProperties(HttpServletRequest request) {

        String path = (String) Utils.getParameter(request, "path");
        Boolean view = (Boolean) request.getSession().getAttribute(UIConstants.SHOW_SYSPROPS_ATTR);
        String viewProps;
        if (view != null) {
            if (view.booleanValue()) {
                viewProps = "yes";
            } else {
                viewProps = "no";
            }
        } else {
            viewProps = "no";
        }
        PropertiesBean bean = null;
        try {
            bean = stub.getProperties(path, viewProps);
            if (bean == null) {
                return null;
            }
            if (bean.getLifecycleProperties() == null) {
                bean.setLifecycleProperties(new String[0]);
            }
            if (bean.getSysProperties() == null) {
                bean.setSysProperties(new String[0]);
            }
            if (bean.getValidationProperties() == null) {
                bean.setValidationProperties(new String[0]);
            }
            if (bean.getProperties() == null) {
                bean.setProperties(new Property[0]);
            }
        } catch (Exception e) {
            String msg = "Failed to get properties. " + e.getMessage();
            log.error(msg, e);
            e.printStackTrace();
        }
        return bean;
    }

    public void setProperty(HttpServletRequest request) throws Exception {
        String path = (String) Utils.getParameter(request, "path");
        String name = (String) Utils.getParameter(request, "name");
        String value = (String) Utils.getParameter(request, "value");
        try {
            stub.setProperty(path, name, value);
        } catch (Exception e) {
            String msg = "Failed to add the property. " + e.getMessage();
            log.error(msg, e);
            throw new Exception(msg, e);
        }
    }

    public void updateProperty(HttpServletRequest request) throws Exception {
        String path = (String) Utils.getParameter(request, "path");
        String name = (String) Utils.getParameter(request, "name");
        String value = (String) Utils.getParameter(request, "value");
        String oldName = (String) Utils.getParameter(request, "oldName");
        try {
            stub.updateProperty(path, name, value, oldName);
        } catch (Exception e) {
            String msg = "Failed to update the property. " + e.getMessage();
            log.error(msg, e);
            throw new Exception(e);
        }
    }

    public void removeProperty(HttpServletRequest request) throws Exception {
        String path = (String) Utils.getParameter(request, "path");
        String name = (String) Utils.getParameter(request, "name");
        try {
            stub.removeProperty(path, name);
        } catch (Exception e) {
            String msg = "Failed to remove the property. " + e.getMessage();
            log.error(msg, e);
            throw new Exception(e);
        }
    }

    public boolean setRetentionProperties(HttpServletRequest request) throws Exception {
        try {
            RetentionBean bean;
            String path = request.getParameter("path");
            String fromDate = request.getParameter("fromDate");
            if (fromDate == null || "".equals(fromDate)) {
                bean = null;
            } else {
                bean = new RetentionBean();
                bean.setFromDate(fromDate);
                bean.setToDate(request.getParameter("toDate"));
                String lockedOperationsParam = request.getParameter("lockedOperations");
                bean.setWriteLocked(lockedOperationsParam.contains("write"));
                bean.setDeleteLocked(lockedOperationsParam.contains("delete"));
            }
            stub.setRetentionProperties(path, bean);
        } catch (Exception e) {
            log.error("Failed to add retention: " + e.getMessage(), e);
            throw new Exception(e);
        }
        return true;
    }

    public RetentionBean getRetentionProperties(HttpServletRequest request) throws RegistryException {
        try {
            return stub.getRetentionProperties(request.getParameter("path"));
        } catch (Exception e) {
            String msg = "Could not retrieve retention details " + e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }
    }
}