org.wso2.carbon.registry.info.ui.clients.InfoServiceClient.java Source code

Java tutorial

Introduction

Here is the source code for org.wso2.carbon.registry.info.ui.clients.InfoServiceClient.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.info.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.core.exceptions.RegistryException;
import org.wso2.carbon.registry.core.pagination.PaginationContext;
import org.wso2.carbon.registry.core.pagination.PaginationUtils;
import org.wso2.carbon.registry.core.utils.UUIDGenerator;
import org.wso2.carbon.registry.info.stub.InfoAdminServiceStub;
import org.wso2.carbon.registry.info.ui.Utils;
import org.wso2.carbon.registry.common.IInfoService;
import org.wso2.carbon.registry.common.beans.*;
import org.wso2.carbon.registry.common.beans.utils.*;
import org.wso2.carbon.ui.CarbonUIUtil;

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

public class InfoServiceClient implements IInfoService {

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

    private InfoAdminServiceStub stub;
    private IInfoService proxy;
    private HttpSession session;

    public InfoServiceClient(String cookie, ServletConfig config, HttpSession session) throws RegistryException {
        this.session = session;
        if (proxy == null) {
            String backendServerURL = CarbonUIUtil.getServerURL(config.getServletContext(), session);
            ConfigurationContext configContext = (ConfigurationContext) config.getServletContext()
                    .getAttribute(CarbonConstants.CONFIGURATION_CONTEXT);
            String epr = backendServerURL + "InfoAdminService";

            try {
                stub = new InfoAdminServiceStub(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 comment service client. " + axisFault.getMessage();
                log.error(msg, axisFault);
                throw new RegistryException(msg, axisFault);
            }
            proxy = this;
        }
    }

    public void setSession(String sessionId, HttpSession session) {
        /* Not required at client-side.*/}

    public void removeSession(String sessionId) {
        /* Not required at client-side.*/}

    public CommentBean getComments(HttpServletRequest request) throws Exception {

        String sessionId = UUIDGenerator.generateUUID();

        String path = (String) Utils.getParameter(request, "path");

        try {
            return proxy.getComments(path, sessionId);
        } catch (Exception e) {
            String msg = "Failed to get comments from the comment service.";
            log.error(msg, e);
            throw new Exception(msg);
        }

    }

    public void addComment(HttpServletRequest request) throws Exception {
        String sessionId = UUIDGenerator.generateUUID();

        String path = (String) Utils.getParameter(request, "path");
        String comment = (String) Utils.getParameter(request, "comment");

        try {
            proxy.addComment(comment, path, sessionId);
        } catch (Exception e) {
            String msg = "Failed to get comments from the comment service.";
            log.error(msg, e);
            throw new Exception(msg);
        }
    }

    public void removeComment(HttpServletRequest request) throws Exception {
        String sessionId = UUIDGenerator.generateUUID();

        String mountedPath = getMountedCommentPath(request);

        //       String comment = (String) Utils.getParameter(request, "comment");

        try {
            proxy.removeComment(mountedPath, sessionId);
        } catch (Exception e) {
            String msg = "Failed to remove the comment.";
            log.error(msg, e);
            throw new Exception(msg);
        }
    }

    private String getMountedCommentPath(HttpServletRequest request) {
        String commentPath = (String) Utils.getParameter(request, "commentpath");
        String path = (String) Utils.getParameter(request, "path");

        // To fix bug when registry is mounted
        String[] commentParts = commentPath.split(";");
        return path + ";" + commentParts[1];
    }

    public TagBean getTags(HttpServletRequest request) throws Exception {
        String sessionId = UUIDGenerator.generateUUID();

        String path = (String) Utils.getParameter(request, "path");

        try {
            return proxy.getTags(path, sessionId);
        } catch (Exception e) {
            String msg = "Failed to get comments from the comment service.";
            log.error(msg, e);
            throw new Exception(msg);
        }
    }

    public void addTag(HttpServletRequest request) throws Exception {
        String sessionId = UUIDGenerator.generateUUID();

        String path = (String) Utils.getParameter(request, "path");
        String tag = (String) Utils.getParameter(request, "tag");

        try {
            proxy.addTag(tag, path, sessionId);
        } catch (Exception e) {
            String msg = "Failed to add the tag.";
            log.error(msg, e);
            throw new Exception(msg);
        }
    }

    public void removeTag(HttpServletRequest request) throws Exception {
        String sessionId = UUIDGenerator.generateUUID();

        String path = (String) Utils.getParameter(request, "path");
        String tag = (String) Utils.getParameter(request, "tag");

        try {
            proxy.removeTag(tag, path, sessionId);
        } catch (Exception e) {
            String msg = "Failed to remove the tag.";
            log.error(msg, e);
            throw new Exception(msg);
        }
    }

    public RatingBean getRatings(HttpServletRequest request) throws Exception {
        String sessionId = UUIDGenerator.generateUUID();

        String path = (String) Utils.getParameter(request, "path");

        try {
            return proxy.getRatings(path, sessionId);
        } catch (Exception e) {
            String msg = "Failed to get ratings.";
            log.error(msg, e);
            throw new Exception(msg);
        }
    }

    public void rateResource(HttpServletRequest request) throws Exception {
        String sessionId = UUIDGenerator.generateUUID();

        String path = (String) Utils.getParameter(request, "path");
        String rating = (String) Utils.getParameter(request, "rating");

        try {
            proxy.rateResource(rating, path, sessionId);
        } catch (Exception e) {
            String msg = "Failed to rate the resource.";
            log.error(msg, e);
            throw new Exception(msg);
        }
    }

    public EventTypeBean getEventTypes(HttpServletRequest request) throws Exception {
        String sessionId = UUIDGenerator.generateUUID();

        String path = (String) Utils.getParameter(request, "path");

        try {
            return proxy.getEventTypes(path, sessionId);
        } catch (Exception e) {
            String msg = "Failed to get Event Types.";
            log.error(msg, e);
            throw new Exception(msg);
        }
    }

    public SubscriptionBean getSubscriptions(HttpServletRequest request) throws Exception {
        String sessionId = UUIDGenerator.generateUUID();
        SubscriptionBean subscriptionBean;
        String path = (String) Utils.getParameter(request, "path");

        try {
            if (PaginationContext.getInstance() == null) {
                subscriptionBean = proxy.getSubscriptions(path, sessionId);
            } else {
                PaginationUtils.copyPaginationContext(stub._getServiceClient());
                subscriptionBean = proxy.getSubscriptions(path, sessionId);
                int rowCount = PaginationUtils.getRowCount(stub._getServiceClient());
                session.setAttribute("row_count", Integer.toString(rowCount));
            }
        } catch (Exception e) {
            String msg = "Failed to get Subscriptions.";
            log.error(msg, e);
            throw new Exception(msg);
        } finally {
            PaginationContext.destroy();
        }
        return subscriptionBean;
    }

    public SubscriptionBean subscribe(HttpServletRequest request) throws Exception {
        String sessionId = UUIDGenerator.generateUUID();

        String path = (String) Utils.getParameter(request, "path");
        String endpoint = (String) Utils.getParameter(request, "endpoint");
        String eventName = (String) Utils.getParameter(request, "eventName");
        String topicDelimiter = (String) Utils.getParameter(request, "delimiter");

        if (topicDelimiter.equals("#") || topicDelimiter.equals("*")) {
            if (path.endsWith("/")) {
                path = path + topicDelimiter;
            } else {
                path = path + "/" + topicDelimiter;
            }
        }

        try {
            return proxy.subscribe(path, endpoint, eventName, sessionId);
        } catch (Exception e) {
            String msg = "Failed to subscribe.";
            log.error(msg, e);
            throw new Exception(msg);
        }
    }

    public SubscriptionBean subscribeREST(HttpServletRequest request) throws Exception {
        String sessionId = UUIDGenerator.generateUUID();

        String path = (String) Utils.getParameter(request, "path");
        String endpoint = (String) Utils.getParameter(request, "endpoint");
        String eventName = (String) Utils.getParameter(request, "eventName");

        String topicDelimiter = (String) Utils.getParameter(request, "delimiter");

        if (topicDelimiter.equals("#") || topicDelimiter.equals("*")) {
            if (path.endsWith("/")) {
                path = path + topicDelimiter;
            } else {
                path = path + "/" + topicDelimiter;
            }
        }

        try {
            return proxy.subscribeREST(path, endpoint, eventName, sessionId);
        } catch (Exception e) {
            String msg = "Failed to subscribe.";
            log.error(msg, e);
            throw new Exception(msg);
        }
    }

    public boolean unsubscribe(HttpServletRequest request) throws Exception {
        String sessionId = UUIDGenerator.generateUUID();

        String path = (String) Utils.getParameter(request, "path");
        String id = (String) Utils.getParameter(request, "id");

        try {
            return proxy.unsubscribe(path, id, sessionId);
        } catch (Exception e) {
            String msg = "Failed to unsubscribe.";
            log.error(msg, e);
            throw new Exception(msg);
        }
    }

    public boolean isResource(HttpServletRequest request) throws Exception {
        String sessionId = UUIDGenerator.generateUUID();

        String path = (String) Utils.getParameter(request, "path");

        try {
            return proxy.isResource(path, sessionId);
        } catch (Exception e) {
            String msg = "Failed to get resource type.";
            log.error(msg, e);
            throw new Exception(msg);
        }
    }

    public String getRemoteURL(HttpServletRequest request) throws Exception {
        String sessionId = UUIDGenerator.generateUUID();

        String path = (String) Utils.getParameter(request, "path");

        try {
            return proxy.getRemoteURL(path, sessionId);
        } catch (Exception e) {
            String msg = "Failed to get remote URL.";
            log.error(msg, e);
            throw new Exception(msg);
        }
    }

    public String verifyEmail(HttpServletRequest request) throws Exception {
        String sessionId = UUIDGenerator.generateUUID();

        String data = (String) request.getSession().getAttribute("intermediate-data");

        try {
            return proxy.verifyEmail(data, sessionId);
        } catch (Exception e) {
            String msg = "Failed to verify e-mail address.";
            log.error(msg, e);
            throw new Exception(msg);
        }
    }

    public boolean isUserValid(HttpServletRequest request) throws Exception {
        String sessionId = UUIDGenerator.generateUUID();

        String username = (String) Utils.getParameter(request, "username");

        try {
            return proxy.isUserValid(username, sessionId);
        } catch (Exception e) {
            String msg = "Failed to check existence of user.";
            log.error(msg, e);
            throw new Exception(msg);
        }
    }

    public boolean isProfileExisting(HttpServletRequest request) throws Exception {
        String sessionId = UUIDGenerator.generateUUID();

        String username = (String) Utils.getParameter(request, "username");

        try {
            return proxy.isProfileExisting(username, sessionId);
        } catch (Exception e) {
            String msg = "Failed to check existence of user's profile.";
            log.error(msg, e);
            throw new Exception(msg);
        }
    }

    public boolean isRoleValid(HttpServletRequest request) throws Exception {
        String sessionId = UUIDGenerator.generateUUID();

        String role = (String) Utils.getParameter(request, "role");

        try {
            return proxy.isRoleValid(role, sessionId);
        } catch (Exception e) {
            String msg = "Failed to check existence of role.";
            log.error(msg, e);
            throw new Exception(msg);
        }
    }

    public boolean isRoleProfileExisting(HttpServletRequest request) throws Exception {
        String sessionId = UUIDGenerator.generateUUID();

        String role = (String) Utils.getParameter(request, "role");

        try {
            return proxy.isRoleProfileExisting(role, sessionId);
        } catch (Exception e) {
            String msg = "Failed to check existence of the profile for the role.";
            log.error(msg, e);
            throw new Exception(msg);
        }
    }

    public CommentBean getComments(String path, String sessionId) throws RegistryException {
        CommentBean result = new CommentBean();

        try {
            org.wso2.carbon.registry.info.stub.beans.xsd.CommentBean bean = stub.getComments(path, sessionId);
            if (bean.getComments() == null) {
                bean.setComments(new org.wso2.carbon.registry.info.stub.beans.utils.xsd.Comment[0]);
            }
            org.wso2.carbon.registry.info.stub.beans.utils.xsd.Comment[] comments = bean.getComments();
            Comment[] resultComments = new Comment[comments.length];
            int i = 0;
            for (org.wso2.carbon.registry.info.stub.beans.utils.xsd.Comment comment : comments) {
                if (comment == null) {
                    continue;
                }
                resultComments[i] = new Comment();
                resultComments[i].setAuthorUserName(comment.getAuthorUserName());
                resultComments[i].setCommentPath(comment.getCommentPath());
                resultComments[i].setContent(comment.getContent());
                resultComments[i].setCreatedTime(comment.getCreatedTime());
                resultComments[i].setDescription(comment.getDescription());
                resultComments[i].setLastModified(comment.getLastModified());
                resultComments[i].setResourcePath(comment.getResourcePath());
                resultComments[i].setText(comment.getText());
                resultComments[i].setTime(comment.getTime());
                resultComments[i].setUser(comment.getUser());
                i++;
            }
            result.setComments(resultComments);
            result.setErrorMessage(bean.getErrorMessage());
            result.setLoggedIn(bean.getLoggedIn());
            result.setPathWithVersion(bean.getPathWithVersion());
            result.setPutAllowed(bean.getPutAllowed());
            result.setVersionView(bean.getVersionView());
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }

        return result;

    }

    public void addComment(String comment, String path, String sessionId) throws RegistryException {
        try {
            stub.addComment(comment, path, sessionId);
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }
    }

    public void removeComment(String commentPath, String sessionId) throws RegistryException {
        try {
            stub.removeComment(commentPath, sessionId);
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }
    }

    public TagBean getTags(String path, String sessionId) throws RegistryException {
        TagBean result = new TagBean();
        try {
            org.wso2.carbon.registry.info.stub.beans.xsd.TagBean bean = stub.getTags(path, sessionId);
            if (bean.getTags() == null) {
                bean.setTags(new org.wso2.carbon.registry.info.stub.beans.utils.xsd.Tag[0]);
            }
            org.wso2.carbon.registry.info.stub.beans.utils.xsd.Tag[] tags = bean.getTags();
            Tag[] resultTags = new Tag[tags.length];
            int i = 0;
            for (org.wso2.carbon.registry.info.stub.beans.utils.xsd.Tag tag : tags) {
                if (tag == null) {
                    continue;
                }
                resultTags[i] = new Tag();
                resultTags[i].setCategory(tag.getCategory());
                resultTags[i].setTagCount(tag.getTagCount());
                resultTags[i].setTagName(tag.getTagName());
                i++;
            }
            result.setTags(resultTags);
            result.setErrorMessage(bean.getErrorMessage());
            result.setLoggedIn(bean.getLoggedIn());
            result.setPathWithVersion(bean.getPathWithVersion());
            result.setPutAllowed(bean.getPutAllowed());
            result.setVersionView(bean.getVersionView());
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }
        return result;
    }

    public void addTag(String tag, String path, String sessionId) throws RegistryException {
        try {
            stub.addTag(tag, path, sessionId);
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }
    }

    public void removeTag(String tag, String path, String sessionId) throws RegistryException {
        try {
            stub.removeTag(tag, path, sessionId);
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }

    }

    public RatingBean getRatings(String path, String sessionId) throws RegistryException {
        RatingBean result = new RatingBean();
        try {
            org.wso2.carbon.registry.info.stub.beans.xsd.RatingBean bean = stub.getRatings(path, sessionId);
            result.setAverageRating(bean.getAverageRating());
            result.setAverageStars(bean.getAverageStars());
            result.setUserRating(bean.getUserRating());
            result.setUserStars(bean.getUserStars());
            result.setErrorMessage(bean.getErrorMessage());
            result.setLoggedIn(bean.getLoggedIn());
            result.setPathWithVersion(bean.getPathWithVersion());
            result.setPutAllowed(bean.getPutAllowed());
            result.setVersionView(bean.getVersionView());
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }
        return result;
    }

    public void rateResource(String rating, String path, String sessionId) throws RegistryException {
        try {
            stub.rateResource(rating, path, sessionId);
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }
    }

    public EventTypeBean getEventTypes(String path, String sessionId) throws RegistryException {
        EventTypeBean result = new EventTypeBean();
        try {
            org.wso2.carbon.registry.info.stub.beans.xsd.EventTypeBean bean = stub.getEventTypes(path, sessionId);
            if (bean.getEventTypes() == null) {
                bean.setEventTypes(new org.wso2.carbon.registry.info.stub.beans.utils.xsd.EventType[0]);
            }
            org.wso2.carbon.registry.info.stub.beans.utils.xsd.EventType[] eventTypes = bean.getEventTypes();
            EventType[] resultEventTypes = new EventType[eventTypes.length];
            int i = 0;
            for (org.wso2.carbon.registry.info.stub.beans.utils.xsd.EventType eventType : eventTypes) {
                if (eventType == null) {
                    continue;
                }
                resultEventTypes[i] = new EventType();
                resultEventTypes[i].setCollectionEvent(eventType.getCollectionEvent());
                resultEventTypes[i].setId(eventType.getId());
                resultEventTypes[i].setResourceEvent(eventType.getResourceEvent());
                i++;
            }
            result.setEventTypes(resultEventTypes);
            result.setErrorMessage(bean.getErrorMessage());
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }
        return result;
    }

    public SubscriptionBean getSubscriptions(String path, String sessionId) throws RegistryException {
        SubscriptionBean result = new SubscriptionBean();
        try {
            org.wso2.carbon.registry.info.stub.beans.xsd.SubscriptionBean bean = stub.getSubscriptions(path,
                    sessionId);
            if (bean.getSubscriptionInstances() == null) {
                bean.setSubscriptionInstances(
                        new org.wso2.carbon.registry.info.stub.beans.utils.xsd.SubscriptionInstance[0]);
            }
            org.wso2.carbon.registry.info.stub.beans.utils.xsd.SubscriptionInstance[] subscriptions = bean
                    .getSubscriptionInstances();
            SubscriptionInstance[] resultSubscriptions = new SubscriptionInstance[subscriptions.length];
            int i = 0;
            for (org.wso2.carbon.registry.info.stub.beans.utils.xsd.SubscriptionInstance subscription : subscriptions) {
                if (subscription == null) {
                    continue;
                }
                resultSubscriptions[i] = new SubscriptionInstance();
                resultSubscriptions[i].setAddress(subscription.getAddress());
                resultSubscriptions[i].setEventName(subscription.getEventName());
                resultSubscriptions[i].setId(subscription.getId());
                resultSubscriptions[i].setNotificationMethod(subscription.getNotificationMethod());
                resultSubscriptions[i].setSubManUrl(subscription.getSubManUrl());
                resultSubscriptions[i].setDigestType(subscription.getDigestType());
                resultSubscriptions[i].setTopic(subscription.getTopic());
                i++;
            }
            result.setSubscriptionInstances(resultSubscriptions);
            result.setUserAccessLevel(bean.getUserAccessLevel());
            result.setRoleAccessLevel(bean.getRoleAccessLevel());
            result.setUserName(bean.getUserName());
            result.setRoles(bean.getRoles());
            result.setErrorMessage(bean.getErrorMessage());
            result.setLoggedIn(bean.getLoggedIn());
            result.setPathWithVersion(bean.getPathWithVersion());
            result.setVersionView(bean.getVersionView());
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }
        return result;
    }

    public SubscriptionBean subscribe(String path, String endpoint, String eventName, String sessionId)
            throws RegistryException {
        SubscriptionBean result = new SubscriptionBean();
        try {
            org.wso2.carbon.registry.info.stub.beans.xsd.SubscriptionBean bean = stub.subscribe(path, endpoint,
                    eventName, sessionId);
            if (bean == null) {
                bean = new org.wso2.carbon.registry.info.stub.beans.xsd.SubscriptionBean();
            }
            if (bean.getSubscriptionInstances() == null) {
                bean.setSubscriptionInstances(
                        new org.wso2.carbon.registry.info.stub.beans.utils.xsd.SubscriptionInstance[0]);
            }
            org.wso2.carbon.registry.info.stub.beans.utils.xsd.SubscriptionInstance[] subscriptions = bean
                    .getSubscriptionInstances();
            SubscriptionInstance[] resultSubscriptions = new SubscriptionInstance[subscriptions.length];
            int i = 0;
            for (org.wso2.carbon.registry.info.stub.beans.utils.xsd.SubscriptionInstance subscription : subscriptions) {
                if (subscription == null) {
                    continue;
                }
                resultSubscriptions[i] = new SubscriptionInstance();
                resultSubscriptions[i].setAddress(subscription.getAddress());
                resultSubscriptions[i].setEventName(subscription.getEventName());
                resultSubscriptions[i].setId(subscription.getId());
                resultSubscriptions[i].setNotificationMethod(subscription.getNotificationMethod());
                resultSubscriptions[i].setSubManUrl(subscription.getSubManUrl());
                resultSubscriptions[i].setDigestType(subscription.getDigestType());
                resultSubscriptions[i].setTopic(subscription.getTopic());
                i++;
            }
            result.setSubscriptionInstances(resultSubscriptions);
            result.setUserAccessLevel(bean.getUserAccessLevel());
            result.setRoleAccessLevel(bean.getRoleAccessLevel());
            result.setUserName(bean.getUserName());
            result.setRoles(bean.getRoles());
            result.setErrorMessage(bean.getErrorMessage());
            result.setLoggedIn(bean.getLoggedIn());
            result.setPathWithVersion(bean.getPathWithVersion());
            result.setVersionView(bean.getVersionView());
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }
        return result;
    }

    public SubscriptionBean subscribeREST(String path, String endpoint, String eventName, String sessionId)
            throws RegistryException {
        SubscriptionBean result = new SubscriptionBean();
        try {
            org.wso2.carbon.registry.info.stub.beans.xsd.SubscriptionBean bean = stub.subscribeREST(path, endpoint,
                    eventName, sessionId);
            if (bean == null) {
                bean = new org.wso2.carbon.registry.info.stub.beans.xsd.SubscriptionBean();
            }
            if (bean.getSubscriptionInstances() == null) {
                bean.setSubscriptionInstances(
                        new org.wso2.carbon.registry.info.stub.beans.utils.xsd.SubscriptionInstance[0]);
            }
            org.wso2.carbon.registry.info.stub.beans.utils.xsd.SubscriptionInstance[] subscriptions = bean
                    .getSubscriptionInstances();
            SubscriptionInstance[] resultSubscriptions = new SubscriptionInstance[subscriptions.length];
            int i = 0;
            for (org.wso2.carbon.registry.info.stub.beans.utils.xsd.SubscriptionInstance subscription : subscriptions) {
                if (subscription == null) {
                    continue;
                }
                resultSubscriptions[i] = new SubscriptionInstance();
                resultSubscriptions[i].setAddress(subscription.getAddress());
                resultSubscriptions[i].setEventName(subscription.getEventName());
                resultSubscriptions[i].setId(subscription.getId());
                resultSubscriptions[i].setNotificationMethod(subscription.getNotificationMethod());
                resultSubscriptions[i].setSubManUrl(subscription.getSubManUrl());
                resultSubscriptions[i].setDigestType(subscription.getDigestType());
                resultSubscriptions[i].setTopic(subscription.getTopic());
                i++;
            }
            result.setSubscriptionInstances(resultSubscriptions);
            result.setUserAccessLevel(bean.getUserAccessLevel());
            result.setRoleAccessLevel(bean.getRoleAccessLevel());
            result.setUserName(bean.getUserName());
            result.setRoles(bean.getRoles());
            result.setErrorMessage(bean.getErrorMessage());
            result.setLoggedIn(bean.getLoggedIn());
            result.setPathWithVersion(bean.getPathWithVersion());
            result.setVersionView(bean.getVersionView());
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }
        return result;
    }

    public boolean isResource(String path, String sessionId) throws RegistryException {
        try {
            return stub.isResource(path, sessionId);
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }
    }

    public String getRemoteURL(String path, String sessionId) throws RegistryException {
        try {
            return stub.getRemoteURL(path, sessionId);
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }
    }

    public String verifyEmail(String data, String sessionId) throws RegistryException {
        try {
            return stub.verifyEmail(data, sessionId);
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }
    }

    public boolean unsubscribe(String path, String id, String sessionId) throws RegistryException {
        try {
            return stub.unsubscribe(path, id, sessionId);
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }
    }

    public boolean isUserValid(String username, String sessionId) throws RegistryException {
        try {
            return stub.isUserValid(username, sessionId);
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }
    }

    public boolean isProfileExisting(String username, String sessionId) throws RegistryException {
        try {
            return stub.isProfileExisting(username, sessionId);
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }
    }

    public boolean isRoleValid(String role, String sessionId) throws RegistryException {
        try {
            return stub.isRoleValid(role, sessionId);
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }
    }

    public boolean isRoleProfileExisting(String role, String sessionId) throws RegistryException {
        try {
            return stub.isRoleProfileExisting(role, sessionId);
        } catch (Exception e) {
            String msg = e.getMessage();
            log.error(msg, e);
            throw new RegistryException(msg, e);
        }
    }

}