Re-factoring of the meta data service
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/86dbc56e Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/86dbc56e Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/86dbc56e Branch: refs/heads/4.0.0-grouping Commit: 86dbc56e2ae378b6b5c0a823cf313b7b7fbc3b5f Parents: 2414be5 Author: gayan <[email protected]> Authored: Thu Oct 9 13:10:37 2014 +0530 Committer: gayan <[email protected]> Committed: Thu Oct 9 13:10:37 2014 +0530 ---------------------------------------------------------------------- .../stratos/metadataservice/Constants.java | 3 +- .../definition/CartridgeMetaData.java | 15 +- .../metadataservice/listener/TopologyAgent.java | 30 ++- .../listener/TopologyListener.java | 119 +++------ .../registry/CarbonRegistry.java | 192 +++++++++++---- .../metadataservice/registry/DataStore.java | 8 + .../metadataservice/registry/GRegRegistry.java | 242 ++++++++++++++----- .../src/main/conf/metadataservice.xml | 2 +- .../all/repository/conf/metadataservice.xml | 2 +- 9 files changed, 395 insertions(+), 218 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/86dbc56e/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/Constants.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/Constants.java b/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/Constants.java index bd84c5f..f526d9e 100644 --- a/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/Constants.java +++ b/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/Constants.java @@ -23,7 +23,6 @@ package org.apache.stratos.metadataservice; */ public class Constants { - public static final String SUPER_TENANT_SERVICE = "super.tenant.service"; - public static final String METADATASERVICE_CONFIG_FILE_NAME = "metadataservice.xml"; + public static final String METADATASERVICE_CONFIG_FILE_NAME = "metadataservice.xml"; } http://git-wip-us.apache.org/repos/asf/stratos/blob/86dbc56e/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/definition/CartridgeMetaData.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/definition/CartridgeMetaData.java b/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/definition/CartridgeMetaData.java index fbe15ba..1875434 100644 --- a/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/definition/CartridgeMetaData.java +++ b/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/definition/CartridgeMetaData.java @@ -1,6 +1,8 @@ package org.apache.stratos.metadataservice.definition; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.xml.bind.annotation.XmlRootElement; @@ -20,24 +22,15 @@ public class CartridgeMetaData { public String version; - public List<PropertyBean> properties; + public String properties; @Override public String toString() { return "applicationName: " + applicationName + ", displayName: " + displayName + ", description: " + description + ", type: " + type + ", provider: " + provider + - ", host: " + host + ", Version: " + version + ", properties: " + getProperties(); + ", host: " + host + ", Version: " + version + ", properties: " + properties; } - private String getProperties() { - StringBuilder propertyBuilder = new StringBuilder(); - if (properties != null) { - for (PropertyBean propertyBean : properties) { - propertyBuilder.append(propertyBean.toString()); - } - } - return propertyBuilder.toString(); - } } http://git-wip-us.apache.org/repos/asf/stratos/blob/86dbc56e/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/listener/TopologyAgent.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/listener/TopologyAgent.java b/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/listener/TopologyAgent.java index 8e39364..f9afd78 100644 --- a/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/listener/TopologyAgent.java +++ b/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/listener/TopologyAgent.java @@ -1,5 +1,3 @@ -package org.apache.stratos.metadataservice.listener; - /* * * Licensed to the Apache Software Foundation (ASF) under one @@ -20,6 +18,9 @@ package org.apache.stratos.metadataservice.listener; * under the License. */ +package org.apache.stratos.metadataservice.listener; + +import org.apache.commons.configuration.XMLConfiguration; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.messaging.event.Event; @@ -29,7 +30,8 @@ import org.apache.stratos.messaging.listener.topology.MemberSuspendedEventListen import org.apache.stratos.messaging.listener.topology.MemberTerminatedEventListener; import org.apache.stratos.messaging.message.receiver.topology.TopologyEventReceiver; import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; -import org.apache.stratos.metadataservice.services.MetaDataAdmin; +import org.apache.stratos.metadataservice.registry.DataRegistryFactory; +import org.apache.stratos.metadataservice.util.ConfUtil; /** * Cartridge agent runnable. @@ -38,7 +40,6 @@ public class TopologyAgent implements Runnable { private static final Log log = LogFactory.getLog(TopologyAgent.class); - private boolean terminated; @Override public void run() { @@ -51,10 +52,24 @@ public class TopologyAgent implements Runnable { } - protected void registerTopologyEventListeners() { + /** + * Register the topology event listener + */ + private void registerTopologyEventListeners() { + final String defaultRegType = "carbon"; + + XMLConfiguration conf; + log.info("==================Starting topology event message receiver thread================="); if (log.isDebugEnabled()) { log.debug("Starting topology event message receiver thread"); } + conf = ConfUtil.getInstance(null).getConfiguration(); + + final String registryType = + conf.getString("metadataservice.govenanceregistrytype", + defaultRegType); + + TopologyEventReceiver topologyEventReceiver = new TopologyEventReceiver(); topologyEventReceiver.addEventListener(new MemberTerminatedEventListener() { @@ -71,7 +86,7 @@ public class TopologyAgent implements Runnable { log.debug("Terminated event :::::::::::::::::::: " + memberTerminatedEvent.getServiceName()); } - new MetaDataAdmin().removeCartridgeMetaDataDetails("appA", "php"); + DataRegistryFactory.getDataRegistryFactory(registryType).removeCartridgeMetaDataDetails("appA", "php"); } catch (Exception e) { if (log.isErrorEnabled()) { @@ -93,7 +108,8 @@ public class TopologyAgent implements Runnable { log.debug("Member suspended event received"); } MemberSuspendedEvent memberSuspendedEvent = (MemberSuspendedEvent) event; - // extensionHandler.onMemberSuspendedEvent(memberSuspendedEvent); + //TODO : Add the funtionalilty for the suspended event + } catch (Exception e) { if (log.isErrorEnabled()) { log.error("Error processing member suspended event", e); http://git-wip-us.apache.org/repos/asf/stratos/blob/86dbc56e/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/listener/TopologyListener.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/listener/TopologyListener.java b/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/listener/TopologyListener.java index fbca388..6c018b4 100644 --- a/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/listener/TopologyListener.java +++ b/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/listener/TopologyListener.java @@ -1,3 +1,24 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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.apache.stratos.metadataservice.listener; import javax.servlet.ServletContextEvent; @@ -5,16 +26,6 @@ import javax.servlet.ServletContextListener; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.stratos.messaging.event.Event; -import org.apache.stratos.messaging.event.topology.MemberStartedEvent; -import org.apache.stratos.messaging.event.topology.MemberSuspendedEvent; -import org.apache.stratos.messaging.event.topology.MemberTerminatedEvent; -import org.apache.stratos.messaging.listener.topology.MemberStartedEventListener; -import org.apache.stratos.messaging.listener.topology.MemberSuspendedEventListener; -import org.apache.stratos.messaging.listener.topology.MemberTerminatedEventListener; -import org.apache.stratos.messaging.message.receiver.topology.TopologyEventReceiver; -import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; -import org.apache.stratos.metadataservice.services.MetaDataAdmin; public class TopologyListener implements ServletContextListener { @@ -23,6 +34,10 @@ public class TopologyListener implements ServletContextListener { private TopologyAgent topologyThread = null; private Thread thread = null; + /** + * Initialization of the context + * @param arg0 ServletContextEvent + */ @Override public void contextInitialized(ServletContextEvent arg0) { log.info("Topology literner started...."); @@ -39,88 +54,16 @@ public class TopologyListener implements ServletContextListener { } + /** + * Destroy the context + * @param arg0 ServletContextEvent + */ @Override - public void contextDestroyed(ServletContextEvent arg0) { + public void contextDestroyed(ServletContextEvent arg0) + { thread.stop(); } - protected void registerTopologyEventListeners() { - if (log.isDebugEnabled()) { - log.debug("Starting topology event message receiver thread"); - } - TopologyEventReceiver topologyEventReceiver = new TopologyEventReceiver(); - - topologyEventReceiver.addEventListener(new MemberTerminatedEventListener() { - @Override - protected void onEvent(Event event) { - try { - TopologyManager.acquireReadLock(); - if (log.isDebugEnabled()) { - log.debug("Member terminated event received"); - } - MemberTerminatedEvent memberTerminatedEvent = (MemberTerminatedEvent) event; - if(log.isDebugEnabled()){ - log.info("Terminated event :::::::::::::::::::: " + - memberTerminatedEvent.getServiceName()); - } - new MetaDataAdmin().removeCartridgeMetaDataDetails("appA", "php"); - // extensionHandler.onMemberTerminatedEvent(memberTerminatedEvent); - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("Error processing member terminated event", e); - } - } finally { - TopologyManager.releaseReadLock(); - } - } - }); - - topologyEventReceiver.addEventListener(new MemberSuspendedEventListener() { - @Override - protected void onEvent(Event event) { - try { - TopologyManager.acquireReadLock(); - if (log.isDebugEnabled()) { - log.debug("Member suspended event received"); - } - MemberSuspendedEvent memberSuspendedEvent = (MemberSuspendedEvent) event; - // extensionHandler.onMemberSuspendedEvent(memberSuspendedEvent); - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("Error processing member suspended event", e); - } - } finally { - TopologyManager.releaseReadLock(); - } - } - }); - - topologyEventReceiver.addEventListener(new MemberStartedEventListener() { - @Override - protected void onEvent(Event event) { - try { - TopologyManager.acquireReadLock(); - if (log.isDebugEnabled()) { - log.debug("Member started event received"); - } - MemberStartedEvent memberStartedEvent = (MemberStartedEvent) event; - // extensionHandler.onMemberStartedEvent(memberStartedEvent); - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("Error processing member started event", e); - } - } finally { - TopologyManager.releaseReadLock(); - } - } - }); - - Thread thread = new Thread(topologyEventReceiver); - thread.start(); - if (log.isDebugEnabled()) { - log.info("Cartridge Agent topology receiver thread started"); - } - } } http://git-wip-us.apache.org/repos/asf/stratos/blob/86dbc56e/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/registry/CarbonRegistry.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/registry/CarbonRegistry.java b/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/registry/CarbonRegistry.java index 3ae47ce..e1526aa 100644 --- a/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/registry/CarbonRegistry.java +++ b/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/registry/CarbonRegistry.java @@ -23,7 +23,7 @@ import java.util.*; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.core.Context; -import org.apache.axis2.context.ConfigurationContext; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.metadataservice.definition.*; @@ -31,44 +31,121 @@ import org.wso2.carbon.core.AbstractAdmin; import org.wso2.carbon.registry.api.Registry; import org.wso2.carbon.registry.api.RegistryException; import org.wso2.carbon.registry.api.Resource; -import org.wso2.carbon.registry.core.service.RegistryService; + + +/** + * Carbon registry implementation + */ public class CarbonRegistry extends AbstractAdmin implements DataStore { - private static Log log = LogFactory.getLog(CarbonRegistry.class); - @Context - HttpServletRequest httpServletRequest; + private static Log log = LogFactory.getLog(CarbonRegistry.class); + @Context + HttpServletRequest httpServletRequest; - private static ConfigurationContext configContext = null; + private static final String mainResource = "/startos/"; - private static String defaultAxis2Repo = "repository/deployment/client"; - private static String defaultAxis2Conf = "repository/conf/axis2/axis2_client.xml"; - private static final String defaultUsername = "[email protected]"; - private static final String defaultPassword = "admin123"; - private static final String serverURL = "https://localhost:9445/services/"; - private static final String mainResource = "/stratos/"; - private static final int defaultRank = 3; - private RegistryService registryService; + public CarbonRegistry() { - public CarbonRegistry() { + } - } - /* + /** + * Add the meta data to governance registry * + * @param applicationName Application Name + * @param cartridgeType Cartridge Type + * @param cartridgeMetaData Cartridge Meta Data + * @throws Exception + */ + @Override + public void addCartridgeMetaDataDetails(String applicationName, String cartridgeType, + CartridgeMetaData cartridgeMetaData) throws Exception { + log.debug("Adding meta data details"); + + Registry tempRegistry = getGovernanceUserRegistry(); + + + Resource resource = tempRegistry.newResource(); + + String type = cartridgeMetaData.type; + + resource.setContent("Application description :: " + type); + + String resourcePath = mainResource + applicationName + "/" + cartridgeType; + + resource.addProperty("Application Name", cartridgeMetaData.applicationName); + resource.addProperty("Display Name", cartridgeMetaData.displayName); + resource.addProperty("Description", cartridgeMetaData.description); + resource.addProperty("Cartidge Type", cartridgeMetaData.type); + resource.addProperty("provider", cartridgeMetaData.provider); + resource.addProperty("Version", cartridgeMetaData.version); + resource.addProperty("Host", cartridgeMetaData.host); + resource.addProperty("Properties", cartridgeMetaData.properties); + + tempRegistry.put(resourcePath, resource); + + if (log.isDebugEnabled()) { + log.debug("A resource added to: " + resourcePath); + } + + + } + + /** + * Get the meta data from the registry + * + * @param applicationName name of the application + * @param cartridgeType cartridge type + * @return + * @throws Exception + */ + @Override + public String getCartridgeMetaDataDetails(String applicationName, String cartridgeType) + throws Exception { + Registry registry = getGovernanceUserRegistry(); + CartridgeMetaData cartridgeMetaData = new CartridgeMetaData(); + + + String resourcePath = mainResource + applicationName + "/" + cartridgeType; + if (registry.resourceExists(resourcePath)) { + + Resource getResource = registry.get(resourcePath); + + cartridgeMetaData.type = getResource.getProperty("Cartidge Type"); + cartridgeMetaData.applicationName = getResource.getProperty("Application Name"); + cartridgeMetaData.description = getResource.getProperty("Description"); + cartridgeMetaData.displayName = getResource.getProperty("Display Name"); + cartridgeMetaData.host = getResource.getProperty("host"); + cartridgeMetaData.provider = getResource.getProperty("provider"); + cartridgeMetaData.version = getResource.getProperty("Version"); + cartridgeMetaData.properties = getResource.getProperty("Properties"); + + + } + + + return cartridgeMetaData.toString(); + } + + + /** * Remove the meta data from the registry * - * @see org.apache.stratos.metadataservice.registry.DataStore# - * removeCartridgeMetaDataDetails(java.lang.String, java.lang.String) + * @param applicationName name of the application + * @param cartridgeType cartridge type + * @return + * @throws Exception */ - @Override - public boolean removeCartridgeMetaDataDetails(String applicationName, String cartridgeType) - throws Exception { - Registry registry = getGovernanceUserRegistry(); - String resourcePath = mainResource + applicationName + "/" + cartridgeType; + @Override + public boolean removeCartridgeMetaDataDetails(String applicationName, String cartridgeType) + throws Exception { + Registry registry = getGovernanceUserRegistry(); + String resourcePath = mainResource + applicationName + "/" + cartridgeType; + if (registry != null) { - registry.delete(resourcePath); + registry.delete(resourcePath); return true; } else { if (log.isDebugEnabled()) { @@ -76,14 +153,20 @@ public class CarbonRegistry extends AbstractAdmin implements DataStore { } return false; } - } - - + } + /** + * Get Properties of clustor + * @param applicationName + * @param clusterId + * @return + * @throws RegistryException + */ + @Override public List<NewProperty> getPropertiesOfCluster(String applicationName, String clusterId) throws RegistryException { Registry tempRegistry = getGovernanceUserRegistry(); String resourcePath = mainResource + applicationName + "/" + clusterId; - if(!tempRegistry.resourceExists(resourcePath)){ + if (!tempRegistry.resourceExists(resourcePath)) { return null; //throw new RegistryException("Cluster does not exist at " + resourcePath); } @@ -93,10 +176,9 @@ public class CarbonRegistry extends AbstractAdmin implements DataStore { Properties props = regResource.getProperties(); Enumeration<?> x = props.propertyNames(); - while(x.hasMoreElements()) - { + while (x.hasMoreElements()) { String key = (String) x.nextElement(); - List<String> values = regResource.getPropertyValues(key); + List<String> values = regResource.getPropertyValues(key); NewProperty property = new NewProperty(); property.setKey(key); String[] valueArr = new String[values.size()]; @@ -108,6 +190,14 @@ public class CarbonRegistry extends AbstractAdmin implements DataStore { return newProperties; } + /** + * Add property to cluster + * @param applicationId + * @param clusterId + * @param property + * @throws RegistryException + */ + @Override public void addPropertyToCluster(String applicationId, String clusterId, NewProperty property) throws RegistryException { Registry tempRegistry = getGovernanceUserRegistry(); String resourcePath = mainResource + applicationId + "/" + clusterId; @@ -119,6 +209,13 @@ public class CarbonRegistry extends AbstractAdmin implements DataStore { } + /** + * Add properties to clustor + * @param applicationName + * @param clusterId + * @param properties + * @throws RegistryException + */ @Override public void addPropertiesToCluster(String applicationName, String clusterId, NewProperty[] properties) throws RegistryException { Registry tempRegistry = getGovernanceUserRegistry(); @@ -126,7 +223,7 @@ public class CarbonRegistry extends AbstractAdmin implements DataStore { Resource regResource; regResource = createOrGetResourceforCluster(tempRegistry, resourcePath); - for(NewProperty property : properties){ + for (NewProperty property : properties) { regResource.setProperty(property.getKey(), (Arrays.asList(property.getValues()))); } @@ -134,31 +231,44 @@ public class CarbonRegistry extends AbstractAdmin implements DataStore { log.info(String.format("Properties are added to cluster %s of application %s", clusterId, applicationName)); } - + /** + * Create or get resource for application + * @param tempRegistry + * @param resourcePath + * @return + * @throws RegistryException + */ private Resource createOrGetResourceforApplication(Registry tempRegistry, String resourcePath) throws RegistryException { Resource regResource; - if(tempRegistry.resourceExists(resourcePath)) { + if (tempRegistry.resourceExists(resourcePath)) { regResource = tempRegistry.get(resourcePath); - }else{ + } else { regResource = tempRegistry.newCollection(); - if(log.isDebugEnabled()){ + if (log.isDebugEnabled()) { log.debug("Registry resource is create at path " + regResource.getPath() + " for application"); } } return regResource; } + /** + * Create and get resources for Clustor + * @param tempRegistry + * @param resourcePath + * @return + * @throws RegistryException + */ private Resource createOrGetResourceforCluster(Registry tempRegistry, String resourcePath) throws RegistryException { int index = resourcePath.lastIndexOf('/'); - String applicationResourcePath = resourcePath.substring(0,index); + String applicationResourcePath = resourcePath.substring(0, index); createOrGetResourceforApplication(tempRegistry, applicationResourcePath); Resource regResource; - if(tempRegistry.resourceExists(resourcePath)) { + if (tempRegistry.resourceExists(resourcePath)) { regResource = tempRegistry.get(resourcePath); - }else{ + } else { regResource = tempRegistry.newResource(); - if(log.isDebugEnabled()){ + if (log.isDebugEnabled()) { log.debug("Registry resource is create at path for cluster" + regResource.getPath() + " for cluster"); } } http://git-wip-us.apache.org/repos/asf/stratos/blob/86dbc56e/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/registry/DataStore.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/registry/DataStore.java b/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/registry/DataStore.java index e1b1218..ea905a0 100644 --- a/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/registry/DataStore.java +++ b/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/registry/DataStore.java @@ -18,6 +18,8 @@ */ package org.apache.stratos.metadataservice.registry; + +import org.apache.stratos.metadataservice.definition.CartridgeMetaData; import org.apache.stratos.metadataservice.definition.NewProperty; import org.wso2.carbon.registry.api.RegistryException; @@ -28,6 +30,12 @@ import java.util.List; */ public interface DataStore { + public void addCartridgeMetaDataDetails(String applicationName, String cartridgeType, + CartridgeMetaData cartridgeMetaData) throws Exception; + + public String getCartridgeMetaDataDetails(String applicationName, String cartridgeType) + throws Exception; + public boolean removeCartridgeMetaDataDetails(String applicationName, String cartridgeType) throws Exception; http://git-wip-us.apache.org/repos/asf/stratos/blob/86dbc56e/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/registry/GRegRegistry.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/registry/GRegRegistry.java b/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/registry/GRegRegistry.java index 1726d10..2be8d27 100644 --- a/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/registry/GRegRegistry.java +++ b/components/org.apache.stratos.metadataservice/src/main/java/org/apache/stratos/metadataservice/registry/GRegRegistry.java @@ -18,91 +18,199 @@ */ package org.apache.stratos.metadataservice.registry; -import java.io.File; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Context; - import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.context.ConfigurationContextFactory; import org.apache.commons.configuration.XMLConfiguration; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + +import org.apache.stratos.metadataservice.definition.CartridgeMetaData; import org.apache.stratos.metadataservice.definition.NewProperty; import org.apache.stratos.metadataservice.util.ConfUtil; import org.wso2.carbon.registry.api.Registry; import org.wso2.carbon.registry.api.RegistryException; +import org.wso2.carbon.registry.api.Resource; +import org.wso2.carbon.registry.core.Comment; import org.wso2.carbon.registry.ws.client.registry.WSRegistryServiceClient; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.core.Context; +import java.io.File; +import java.util.List; + /** - * * Governance registry implementation for the registry factory - * */ public class GRegRegistry implements DataStore { - private static Log log = LogFactory.getLog(GRegRegistry.class); - @Context - HttpServletRequest httpServletRequest; - - private static ConfigurationContext configContext = null; - - private static String defaultAxis2Repo = "repository/deployment/client"; - private static String defaultAxis2Conf = "repository/conf/axis2/axis2_client.xml"; - - private static final String defaultUsername = "[email protected]"; - private static final String defaultPassword = "admin123"; - private static final String serverURL = "https://localhost:9445/services/"; - private static final String mainResource = "/startos/"; - private static final int defaultRank = 3; - - /* - * Registry initiation - */ - private static WSRegistryServiceClient setRegistry() throws Exception { - - XMLConfiguration conf = ConfUtil.getInstance(null).getConfiguration(); - - String gregUsername = conf.getString("metadataservice.username", defaultUsername); - String gregPassword = conf.getString("metadataservice.password", defaultPassword); - String gregServerURL = conf.getString("metadataservice.serverurl", serverURL); - String axis2Repo = conf.getString("metadataservice.axis2Repo", defaultAxis2Repo); - String axis2Conf = conf.getString("metadataservice.axis2Conf", defaultAxis2Conf); - String defaultTrustStore = - "repository" + File.separator + "resources" + File.separator + - "security" + File.separator + "wso2carbon.jks"; - String trustStorePath = conf.getString("metadataservice.trustStore", defaultTrustStore); - String trustStorePassword = - conf.getString("metadataservice.trustStorePassword", - "wso2carbon"); - String trustStoreType = conf.getString("metadataservice.trustStoreType", "JKS"); - - System.setProperty("javax.net.ssl.trustStore", trustStorePath); - System.setProperty("javax.net.ssl.trustStorePassword", trustStorePassword);// "wso2carbon" - System.setProperty("javax.net.ssl.trustStoreType", trustStoreType);// "JKS" - System.setProperty("carbon.repo.write.mode", "true"); - configContext = - ConfigurationContextFactory.createConfigurationContextFromFileSystem(axis2Repo, - axis2Conf); - return new WSRegistryServiceClient(gregServerURL, gregUsername, gregPassword, configContext); - } + + private static Log log = LogFactory.getLog(GRegRegistry.class); + @Context + HttpServletRequest httpServletRequest; + + private static ConfigurationContext configContext; + + static { + configContext = null; + } + + private static final String defaultUsername = "[email protected]"; + private static final String defaultPassword = "admin123"; + private static final String serverURL = "https://localhost:9445/services/"; + private static final String mainResource = "/startos/"; + private static final int defaultRank = 3; /* - * - * Remove the meta data from the registry - * - * @see org.apache.stratos.metadataservice.registry.DataStore# - * removeCartridgeMetaDataDetails(java.lang.String, java.lang.String) + * Registry initiation */ - @Override - public boolean removeCartridgeMetaDataDetails(String applicationName, String cartridgeType) - throws Exception { - Registry registry = setRegistry(); - String resourcePath = mainResource + applicationName + "/" + cartridgeType; - registry.delete(resourcePath); - return false; - } + private static WSRegistryServiceClient setRegistry() throws Exception { + + XMLConfiguration conf = ConfUtil.getInstance(null).getConfiguration(); + + String gregUsername = conf.getString("metadataservice.username", defaultUsername); + String gregPassword = conf.getString("metadataservice.password", defaultPassword); + String gregServerURL = conf.getString("metadataservice.serverurl", serverURL); + String defaultAxis2Repo = "repository/deployment/client"; + String axis2Repo = conf.getString("metadataservice.axis2Repo", defaultAxis2Repo); + String defaultAxis2Conf = "repository/conf/axis2/axis2_client.xml"; + String axis2Conf = conf.getString("metadataservice.axis2Conf", defaultAxis2Conf); + String defaultTrustStore = + "repository" + File.separator + "resources" + File.separator + + "security" + File.separator + "wso2carbon.jks"; + String trustStorePath = conf.getString("metadataservice.trustStore", defaultTrustStore); + String trustStorePassword = + conf.getString("metadataservice.trustStorePassword", + "wso2carbon"); + String trustStoreType = conf.getString("metadataservice.trustStoreType", "JKS"); + + System.setProperty("javax.net.ssl.trustStore", trustStorePath); + System.setProperty("javax.net.ssl.trustStorePassword", trustStorePassword);// "wso2carbon" + System.setProperty("javax.net.ssl.trustStoreType", trustStoreType);// "JKS" + System.setProperty("carbon.repo.write.mode", "true"); + configContext = + ConfigurationContextFactory.createConfigurationContextFromFileSystem(axis2Repo, + axis2Conf); + return new WSRegistryServiceClient(gregServerURL, gregUsername, gregPassword, configContext); + } + + + + /** + * Add the meta data to governance registry + * @param applicationName + * @param cartridgeType + * @param cartridgeMetaData + * @throws Exception + */ + @Override + public void addCartridgeMetaDataDetails(String applicationName, String cartridgeType, + CartridgeMetaData cartridgeMetaData) throws Exception { + + Registry registry = setRegistry(); + try { + + Resource resource = registry.newResource(); + + String type = cartridgeMetaData.type; + + resource.setContent("Application description :: " + type); + + String resourcePath = mainResource + applicationName + "/" + cartridgeType; + + resource.addProperty("Application Name", cartridgeMetaData.applicationName); + resource.addProperty("Display Name", cartridgeMetaData.displayName); + resource.addProperty("Description", cartridgeMetaData.description); + resource.addProperty("Cartidge Type", cartridgeMetaData.type); + resource.addProperty("provider", cartridgeMetaData.provider); + resource.addProperty("Version", cartridgeMetaData.version); + resource.addProperty("Host", cartridgeMetaData.host); + resource.addProperty("Properties", cartridgeMetaData.properties); + registry.put(resourcePath, resource); + + registry.rateResource(resourcePath, defaultRank); + + Comment comment = new Comment(); + comment.setText("Added the " + applicationName + " " + type + " cartridge"); + registry.addComment(resourcePath, comment); + + } catch (Exception e) { + + if (log.isErrorEnabled()) { + log.error("addCartridgeMetaDataDetails", e); + } + } finally { + // Close the session + ((WSRegistryServiceClient) registry).logut(); + } + + + } + + /** + * Get the meta data from the registry + * @param applicationName + * @param cartridgeType + * @return + * @throws Exception + */ + @Override + public String getCartridgeMetaDataDetails(String applicationName, String cartridgeType) + throws Exception { + Registry registry = setRegistry(); + CartridgeMetaData cartridgeMetaData = new CartridgeMetaData(); + try { + + String resourcePath = mainResource + applicationName + "/" + cartridgeType; + if (registry.resourceExists(resourcePath)) { + + Resource getResource = registry.get(resourcePath); + if (log.isDebugEnabled()) { + log.debug("Resource retrived"); + log.debug("Printing retrieved resource content: " + + new String((byte[]) getResource.getContent())); + } + + cartridgeMetaData.type = getResource.getProperty("Cartidge Type"); + cartridgeMetaData.applicationName = getResource.getProperty("Application Name"); + cartridgeMetaData.description = getResource.getProperty("Description"); + cartridgeMetaData.displayName = getResource.getProperty("Display Name"); + cartridgeMetaData.host = getResource.getProperty("Host"); + cartridgeMetaData.provider = getResource.getProperty("provider"); + cartridgeMetaData.version = getResource.getProperty("Version"); + cartridgeMetaData.properties = getResource.getProperty("Properties"); + + + + } + + } catch (Exception e) { + + if (log.isErrorEnabled()) { + log.error("getCartridgeMetaDataDetails", e); + } + } finally { + // Close the session + ((WSRegistryServiceClient) registry).logut(); + } + return cartridgeMetaData.toString(); + } + + /** + * Remove catridge meta data details from the registry + * @param applicationName + * @param cartridgeType + * @return + * @throws Exception + */ + @Override + public boolean removeCartridgeMetaDataDetails(String applicationName, String cartridgeType) + throws Exception { + Registry registry = setRegistry(); + String resourcePath = mainResource + applicationName + "/" + cartridgeType; + registry.delete(resourcePath); + return false; + } + public void addPropertiesToCluster(String applicationName, String clusterId, NewProperty[] properties) throws RegistryException { @@ -113,7 +221,7 @@ public class GRegRegistry implements DataStore { } public void addPropertyToCluster(String applicationId, String clusterId, NewProperty property) throws RegistryException { - + } } http://git-wip-us.apache.org/repos/asf/stratos/blob/86dbc56e/products/stratos/modules/distribution/src/main/conf/metadataservice.xml ---------------------------------------------------------------------- diff --git a/products/stratos/modules/distribution/src/main/conf/metadataservice.xml b/products/stratos/modules/distribution/src/main/conf/metadataservice.xml index d871bc0..5e8bb1d 100644 --- a/products/stratos/modules/distribution/src/main/conf/metadataservice.xml +++ b/products/stratos/modules/distribution/src/main/conf/metadataservice.xml @@ -19,7 +19,7 @@ --> <configuration> <metadataservice> - <govenanceregistrytype>OWN</govenanceregistrytype> + <govenanceregistrytype>carbon</govenanceregistrytype> <serverurl>https://localhost:9445/services/</serverurl> <username>admin</username> <password>admin</password> http://git-wip-us.apache.org/repos/asf/stratos/blob/86dbc56e/tools/stratos-installer/config/all/repository/conf/metadataservice.xml ---------------------------------------------------------------------- diff --git a/tools/stratos-installer/config/all/repository/conf/metadataservice.xml b/tools/stratos-installer/config/all/repository/conf/metadataservice.xml index 690e056..5e8bb1d 100644 --- a/tools/stratos-installer/config/all/repository/conf/metadataservice.xml +++ b/tools/stratos-installer/config/all/repository/conf/metadataservice.xml @@ -19,7 +19,7 @@ --> <configuration> <metadataservice> - <govenanceregistrytype>GREG</govenanceregistrytype> + <govenanceregistrytype>carbon</govenanceregistrytype> <serverurl>https://localhost:9445/services/</serverurl> <username>admin</username> <password>admin</password>
