/* * Copyright (c) 2008, 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.governance.gadgetsource.util; import org.wso2.carbon.governance.api.services.ServiceManager; import org.wso2.carbon.governance.gadgetsource.beans.LifecycleInfoBean; import org.wso2.carbon.governance.gadgetsource.beans.LifecycleStageInfoBean; import org.wso2.carbon.registry.core.Registry; import org.wso2.carbon.registry.core.Resource; import org.wso2.carbon.registry.core.exceptions.RegistryException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Populator { public static LifecycleInfoBean[] populateLifecycle(Registry registry) throws RegistryException { ServiceManager serviceManager = new ServiceManager(registry); // Service[] services = serviceManager.getAllServices(); // List<String> paths = new ArrayList<String>(); // // if (services != null) { // for (Service service : services) { // if (service.getPath() != null) { // paths.add(service.getPath()); // } // } // } String[] servicePaths = serviceManager.getAllServicePaths(); Map<String, LifecycleInfoBean> lifecycleInfoBeanMap = new HashMap<String, LifecycleInfoBean>(); Map<String, List<LifecycleStageInfoBean>> lifecycleStagesMap = new HashMap<String, List<LifecycleStageInfoBean>>(); for (String servicePath: servicePaths) { // Resource serviceResource = GovernanceUtils.getGovernanceSystemRegistry(registry).get(servicePath); Resource serviceResource = registry.get(servicePath); String lifecycleName = serviceResource.getProperty("registry.Aspects"); if (lifecycleName != null) { lifecycleName = lifecycleName.replaceAll("\\s", ""); LifecycleInfoBean lifecycleInfoBean = lifecycleInfoBeanMap.get(lifecycleName); List<LifecycleStageInfoBean> lifecycleStages = lifecycleStagesMap.get(lifecycleName); if (lifecycleInfoBean == null) { lifecycleInfoBean = new LifecycleInfoBean(); lifecycleInfoBean.setName(lifecycleName); lifecycleInfoBeanMap.put(lifecycleName, lifecycleInfoBean); // initializing lifecycle stages lifecycleStages = new ArrayList<LifecycleStageInfoBean>(); lifecycleStagesMap.put(lifecycleName, lifecycleStages); } String lifecycleStageKey = "registry.lifecycle." + lifecycleName + ".state"; String lifecycleStageValue = serviceResource.getProperty(lifecycleStageKey); LifecycleStageInfoBean lifecycleStageInfoBean = null; // iterate and find the correct stage object for (int i = 0; i < lifecycleStages.size(); i ++) { LifecycleStageInfoBean stageInfoBeanIt = lifecycleStages.get(i); if (stageInfoBeanIt.getName().equals(lifecycleStageValue)) { lifecycleStageInfoBean = stageInfoBeanIt; } } if (lifecycleStageInfoBean == null) { // create a new life cycle stage lifecycleStageInfoBean = new LifecycleStageInfoBean(); lifecycleStageInfoBean.setName(lifecycleStageValue); lifecycleStageInfoBean.setServiceCount(1); lifecycleStages.add(lifecycleStageInfoBean); } else { // increment the current service count lifecycleStageInfoBean.setServiceCount(lifecycleStageInfoBean.getServiceCount() + 1); } LifecycleStageInfoBean[] lifecycleStageInfoBeans = lifecycleStages.toArray( new LifecycleStageInfoBean[lifecycleStages.size()]); lifecycleInfoBean.setStages(lifecycleStageInfoBeans); } } // now fill all the beans LifecycleInfoBean[] lifecycleInfoBeans = lifecycleInfoBeanMap.values().toArray( new LifecycleInfoBean[lifecycleInfoBeanMap.size()]); return lifecycleInfoBeans; } public static LifecycleInfoBean[] populateLifecycleDummyData() throws RegistryException { /* creating dummy data */ LifecycleInfoBean[] lifecycles = new LifecycleInfoBean[1]; lifecycles[0] = new LifecycleInfoBean(); lifecycles[0].setName("No Data Available"); // application/vnd.wso2-mex+xml LifecycleStageInfoBean[] stages = new LifecycleStageInfoBean[1]; stages[0] = new LifecycleStageInfoBean(); stages[0].setName("Life Cycle Data Not Available."); stages[0].setServiceCount(0); /*stages[1] = new LifecycleStageInfoBean(); stages[1].setName("Lifecycle"); stages[1].setServiceCount(6); stages[2] = new LifecycleStageInfoBean(); stages[2].setName("Associated"); stages[2].setServiceCount(2); stages[3] = new LifecycleStageInfoBean(); stages[3].setName("Services"); stages[3].setServiceCount(3);*/ lifecycles[0].setStages(stages); return lifecycles; } }