/* * 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); } } }