Package org.apache.airavata.persistance.registry.jpa.resources

Source Code of org.apache.airavata.persistance.registry.jpa.resources.Utils

/*
*
* 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.airavata.persistance.registry.jpa.resources;

import java.io.IOException;
import java.net.URI;
import java.net.URL;
import java.util.Properties;

import org.apache.airavata.persistance.registry.jpa.JPAConstants;
import org.apache.airavata.persistance.registry.jpa.Resource;
import org.apache.airavata.persistance.registry.jpa.ResourceType;
import org.apache.airavata.persistance.registry.jpa.model.Application_Descriptor;
import org.apache.airavata.persistance.registry.jpa.model.Configuration;
import org.apache.airavata.persistance.registry.jpa.model.Experiment;
import org.apache.airavata.persistance.registry.jpa.model.Experiment_Data;
import org.apache.airavata.persistance.registry.jpa.model.Experiment_Metadata;
import org.apache.airavata.persistance.registry.jpa.model.Gateway;
import org.apache.airavata.persistance.registry.jpa.model.Gateway_Worker;
import org.apache.airavata.persistance.registry.jpa.model.Gram_Data;
import org.apache.airavata.persistance.registry.jpa.model.Host_Descriptor;
import org.apache.airavata.persistance.registry.jpa.model.Node_Data;
import org.apache.airavata.persistance.registry.jpa.model.Project;
import org.apache.airavata.persistance.registry.jpa.model.Published_Workflow;
import org.apache.airavata.persistance.registry.jpa.model.Service_Descriptor;
import org.apache.airavata.persistance.registry.jpa.model.User_Workflow;
import org.apache.airavata.persistance.registry.jpa.model.Users;
import org.apache.airavata.persistance.registry.jpa.model.Workflow_Data;
import org.apache.airavata.registry.api.AiravataRegistryConnectionDataProvider;
import org.apache.airavata.registry.api.AiravataRegistryFactory;
import org.apache.airavata.registry.api.exception.RegistrySettingsException;
import org.apache.airavata.registry.api.exception.UnknownRegistryConnectionDataException;
import org.apache.airavata.registry.api.util.RegistrySettings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


public class Utils {
    private final static Logger logger = LoggerFactory.getLogger(Utils.class);

    public static String getJDBCFullURL(){
    String jdbcUrl = getJDBCURL();
    String jdbcUser = getJDBCUser();
    String jdbcPassword = getJDBCPassword();
        jdbcUrl = jdbcUrl + "?"  + "user=" + jdbcUser + "&" + "password=" + jdbcPassword;
        return jdbcUrl;
    }

    public static String getJDBCURL(){
      try {
            return getProvider().getValue(JPAConstants.KEY_JDBC_URL).toString();
    } catch (RegistrySettingsException e) {
            logger.error(e.getMessage(), e);
            return null;
        }
    }

    public static String getHost(){
        try{
            String jdbcURL = getJDBCURL();
            String cleanURI = jdbcURL.substring(5);
            URI uri = URI.create(cleanURI);
            return uri.getHost();
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            return null;
        }
    }

    public static int getPort(){
        try{
            String jdbcURL = getJDBCURL();
            String cleanURI = jdbcURL.substring(5);
            URI uri = URI.create(cleanURI);
            return uri.getPort();
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            return -1;
        }
    }

    public static String getDBType(){
        try{
            String jdbcURL = getJDBCURL();
            String cleanURI = jdbcURL.substring(5);
            URI uri = URI.create(cleanURI);
            return uri.getScheme();
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            return null;
        }
    }

    public static boolean isDerbyStartEnabled(){
        try {
            String s = getProvider().getValue(JPAConstants.KEY_DERBY_START_ENABLE).toString();
            if("true".equals(s)){
                return true;
            }
        } catch (RegistrySettingsException e) {
            logger.error(e.getMessage(), e);
            return false;
        }
        return false;
    }

  private static AiravataRegistryConnectionDataProvider getProvider() {
    return AiravataRegistryFactory.getRegistryConnectionDataProvider();
  }

    static {
        if(AiravataRegistryFactory.getRegistryConnectionDataProvider() == null){
            AiravataRegistryFactory.registerRegistryConnectionDataProvider(new AiravataRegistryConnectionDataProviderImpl());
        }

    }

    public static String getJDBCUser(){
      try {
      if (getProvider()!=null){
        return getProvider().getValue(JPAConstants.KEY_JDBC_USER).toString();
      } else {
                return RegistrySettings.getSetting(JPAConstants.KEY_JDBC_USER);
            }
    } catch (RegistrySettingsException e) {
            logger.error(e.getMessage(), e);
            return null;
    }
    }

    public static String getJDBCPassword(){
      try {
      if (getProvider()!=null){
        return getProvider().getValue(JPAConstants.KEY_JDBC_PASSWORD).toString();
      }else {
                return RegistrySettings.getSetting(JPAConstants.KEY_JDBC_PASSWORD);
            }
    } catch (RegistrySettingsException e) {
            logger.error(e.getMessage(), e);
            return null;
    }

    }

    public static String getJDBCDriver(){
      try {
      if (getProvider()!=null){
        return getProvider().getValue(JPAConstants.KEY_JDBC_DRIVER).toString();
      else {
                return RegistrySettings.getSetting(JPAConstants.KEY_JDBC_DRIVER);
            }
    } catch (RegistrySettingsException e) {
            logger.error(e.getMessage(), e);
            return null;
    }
    }

    /**
     *
     * @param type model type
     * @param o model type instance
     * @return corresponding resource object
     */
    public static Resource getResource(ResourceType type, Object o) {
        switch (type){
            case GATEWAY:
                if (o instanceof Gateway) {
                    return createGateway((Gateway) o);
                } else {
                    logger.error("Object should be a Gateway.", new IllegalArgumentException());
                    throw new IllegalArgumentException("Object should be a Gateway.");
                }
            case PROJECT:
                if (o instanceof Project){
                    return createProject((Project) o);
                } else {
                    logger.error("Object should be a Project.", new IllegalArgumentException());
                    throw new IllegalArgumentException("Object should be a Project.");
                }
            case CONFIGURATION:
                if(o instanceof Configuration){
                    return createConfiguration((Configuration) o);
                }else {
                    logger.error("Object should be a Configuration.", new IllegalArgumentException());
                    throw new IllegalArgumentException("Object should be a Configuration.");
                }
            case APPLICATION_DESCRIPTOR:
                if (o instanceof Application_Descriptor){
                    return createApplicationDescriptor((Application_Descriptor) o);
                } else {
                    logger.error("Object should be a Application Descriptor.", new IllegalArgumentException());
                    throw new IllegalArgumentException("Object should be a Application Descriptor.");
                }
            case EXPERIMENT:
                if (o instanceof Experiment){
                    return createExperiment((Experiment) o);
                else {
                    logger.error("Object should be a Experiment.", new IllegalArgumentException());
                    throw new IllegalArgumentException("Object should be a Experiment.");
                }
            case USER:
                if(o instanceof Users) {
                    return createUser((Users) o);
                }else {
                    logger.error("Object should be a User.", new IllegalArgumentException());
                    throw new IllegalArgumentException("Object should be a User.");
                }
            case HOST_DESCRIPTOR:
                if (o instanceof Host_Descriptor){
                    return createHostDescriptor((Host_Descriptor) o);
                }else {
                    logger.error("Object should be a Host Descriptor.", new IllegalArgumentException());
                    throw new IllegalArgumentException("Object should be a Host Descriptor.");
                }
            case SERVICE_DESCRIPTOR:
                if (o instanceof Service_Descriptor){
                    return createServiceDescriptor((Service_Descriptor) o);
                }else {
                    logger.error("Object should be a Service Descriptor.", new IllegalArgumentException());
                    throw new IllegalArgumentException("Object should be a Service Descriptor.");
                }
            case PUBLISHED_WORKFLOW:
                if (o instanceof Published_Workflow){
                    return createPublishWorkflow((Published_Workflow) o);
                }else {
                    logger.error("Object should be a Publish Workflow.", new IllegalArgumentException());
                    throw new IllegalArgumentException("Object should be a Publish Workflow.");
                }
            case USER_WORKFLOW:
                if (o instanceof User_Workflow){
                    return createUserWorkflow((User_Workflow) o);
                }else {
                    logger.error("Object should be a User Workflow.", new IllegalArgumentException());
                    throw new IllegalArgumentException("Object should be a User Workflow.");
                }
            case GATEWAY_WORKER:
                if (o instanceof Gateway_Worker){
                    return createGatewayWorker((Gateway_Worker)o);
                } else {
                    logger.error("Object should be a Gateway Worker.", new IllegalArgumentException());
                    throw  new IllegalArgumentException("Object should be a Gateway Worker.");
                }
            case EXPERIMENT_DATA:
                if (o instanceof  Experiment_Data){
                    return createExperimentData((Experiment_Data)o);
                }else {
                    logger.error("Object should be a Experiment Data.", new IllegalArgumentException());
                    throw new IllegalArgumentException("Object should be a Experiment Data.");
                }
            case EXPERIMENT_METADATA:
                if (o instanceof  Experiment_Metadata){
                    return createExperimentMetadata((Experiment_Metadata)o);
                }else {
                    logger.error("Object should be a Experiment Metadata.", new IllegalArgumentException());
                    throw new IllegalArgumentException("Object should be a Experiment Metadata.");
                }
            case WORKFLOW_DATA:
                if (o instanceof  Workflow_Data){
                    return createWorkflowData((Workflow_Data) o);
                }else {
                    logger.error("Object should be a Workflow Data.", new IllegalArgumentException());
                    throw new IllegalArgumentException("Object should be a Workflow Data.");
                }
            case NODE_DATA:
                if (o instanceof  Node_Data){
                    return createNodeData((Node_Data) o);
                }else {
                    logger.error("Object should be a Node Data.", new IllegalArgumentException());
                    throw new IllegalArgumentException("Object should be a Node Data.");
                }
            case GRAM_DATA:
                if (o instanceof  Gram_Data){
                    return createGramData((Gram_Data) o);
                }else {
                    logger.error("Object should be a Gram Data.", new IllegalArgumentException());
                    throw new IllegalArgumentException("Object should be a Gram Data.");
                }
            default:
        }
        return null;

    }

    /**
     *
     * @param o  Gateway model object
     * @return  GatewayResource object
     */
    private static Resource createGateway(Gateway o) {
        GatewayResource gatewayResource = new GatewayResource();
        gatewayResource.setGatewayName(o.getGateway_name());
        return gatewayResource;
    }

    /**
     *
     * @param o Project model object
     * @return ProjectResource object
     */
    private static Resource createProject(Project o) {
        ProjectResource projectResource = new ProjectResource();
        projectResource.setName(o.getProject_name());
        GatewayResource gatewayResource = (GatewayResource)createGateway(o.getGateway());
        projectResource.setGateway(gatewayResource);
        Gateway_Worker gateway_worker = new Gateway_Worker();
        gateway_worker.setGateway(o.getGateway());
        gateway_worker.setUser(o.getUsers());
        WorkerResource workerResource = (WorkerResource) createGatewayWorker(gateway_worker);
        projectResource.setWorker(workerResource);
        return projectResource;
    }

    /**
     *
     * @param o configuration model object
     * @return configuration resource object
     */
    private static Resource createConfiguration (Configuration o){
        ConfigurationResource configurationResource = new ConfigurationResource();
        configurationResource.setConfigKey(o.getConfig_key());
        configurationResource.setConfigVal(o.getConfig_val());
        configurationResource.setExpireDate(o.getExpire_date());
        configurationResource.setCategoryID(o.getCategory_id());
        return configurationResource;
    }

    /**
     *
     * @param o application descriptor model object
     * @return  application descriptor resource object
     */
    private static Resource createApplicationDescriptor(Application_Descriptor o) {
        ApplicationDescriptorResource applicationDescriptorResource = new ApplicationDescriptorResource();
        applicationDescriptorResource.setName(o.getApplication_descriptor_ID());
        applicationDescriptorResource.setHostDescName(o.getHost_descriptor_ID());
        applicationDescriptorResource.setServiceDescName(o.getService_descriptor_ID());
        applicationDescriptorResource.setContent(new String(o.getApplication_descriptor_xml()));
        applicationDescriptorResource.setUpdatedUser(o.getUser().getUser_name());
        applicationDescriptorResource.setGatewayName(o.getGateway().getGateway_name());
        return applicationDescriptorResource;
    }

    /**
     *
     * @param o Experiment model object
     * @return  Experiment resource object
     */
    private static Resource createExperiment(Experiment o) {
        ExperimentResource experimentResource = new ExperimentResource();
        GatewayResource gatewayResource = (GatewayResource)createGateway(o.getGateway());
        experimentResource.setGateway(gatewayResource);
        Gateway_Worker gateway_worker = new Gateway_Worker();
        gateway_worker.setGateway(o.getGateway());
        gateway_worker.setUser(o.getUser());
        WorkerResource workerResource = (WorkerResource) createGatewayWorker(gateway_worker);
        experimentResource.setWorker(workerResource);
        ProjectResource projectResource = (ProjectResource)createProject(o.getProject());
        experimentResource.setProject(projectResource);
        experimentResource.setExpID(o.getExperiment_ID());
        experimentResource.setSubmittedDate(o.getSubmitted_date());
        return experimentResource;
    }

    /**
     *
     * @param o Gateway_Worker model object
     * @return  Gateway_Worker resource object
     */
    private static Resource createGatewayWorker(Gateway_Worker o) {
        GatewayResource gatewayResource = new GatewayResource(o.getGateway().getGateway_name());
        gatewayResource.setOwner(o.getGateway().getOwner());
        WorkerResource workerResource = new WorkerResource(o.getUser().getUser_name(), gatewayResource);
        return workerResource;
    }

    /**
     *
     * @param o Host_Descriptor model object
     * @return  HostDescriptor resource object
     */
    private static Resource createHostDescriptor(Host_Descriptor o) {
        try {
            HostDescriptorResource hostDescriptorResource = new HostDescriptorResource();
            hostDescriptorResource.setGatewayName(o.getGateway().getGateway_name());
            hostDescriptorResource.setUserName(o.getUser().getUser_name());
            hostDescriptorResource.setHostDescName(o.getHost_descriptor_ID());
            byte[] bytes = o.getHost_descriptor_xml();
            hostDescriptorResource.setContent(new String(bytes));
            return hostDescriptorResource;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     *
     * @param o  Published_Workflow model object
     * @return  Published Workflow resource object
     */
    private static Resource createPublishWorkflow(Published_Workflow o) {
        PublishWorkflowResource publishWorkflowResource = new PublishWorkflowResource();
        GatewayResource gatewayResource = (GatewayResource)createGateway(o.getGateway());
        publishWorkflowResource.setGateway(gatewayResource);
        publishWorkflowResource.setCreatedUser(o.getUser().getUser_name());
        publishWorkflowResource.setName(o.getPublish_workflow_name());
        publishWorkflowResource.setContent(new String(o.getWorkflow_content()));
        publishWorkflowResource.setPublishedDate(o.getPublished_date());
        publishWorkflowResource.setVersion(o.getVersion());
        publishWorkflowResource.setPath(o.getPath());
        return publishWorkflowResource;
    }

    /**
     *
     * @param o Service_Descriptor model object
     * @return ServiceDescriptor resource object
     */
    private static Resource createServiceDescriptor(Service_Descriptor o) {
        ServiceDescriptorResource serviceDescriptorResource = new ServiceDescriptorResource();
        serviceDescriptorResource.setGatewayName(o.getGateway().getGateway_name());
        serviceDescriptorResource.setUserName(o.getUser().getUser_name());
        serviceDescriptorResource.setServiceDescName(o.getService_descriptor_ID());
        serviceDescriptorResource.setContent(new String(o.getService_descriptor_xml()));
        return serviceDescriptorResource;
    }

    /**
     *
     * @param o User_Workflow model object
     * @return User_Workflow resource object
     */
    private static Resource createUserWorkflow(User_Workflow o) {
        UserWorkflowResource userWorkflowResource = new UserWorkflowResource();
        userWorkflowResource.setName(o.getTemplate_name());
        GatewayResource gatewayResource = (GatewayResource)createGateway(o.getGateway());
        userWorkflowResource.setGateway(gatewayResource);
        Gateway_Worker gateway_worker = new Gateway_Worker();
        gateway_worker.setGateway(o.getGateway());
        gateway_worker.setUser(o.getUser());
        WorkerResource workerResource = (WorkerResource) createGatewayWorker(gateway_worker);
        userWorkflowResource.setWorker(workerResource);
        userWorkflowResource.setLastUpdateDate(o.getLast_updated_date());
        userWorkflowResource.setContent(new String(o.getWorkflow_graph()));
        userWorkflowResource.setPath(o.getPath());
        return userWorkflowResource;
    }

    /**
     *
     * @param o  Users model object
     * @return  UserResource object
     */
    private static Resource createUser(Users o) {
        UserResource userResource = new UserResource();
        userResource.setUserName(o.getUser_name());
        userResource.setPassword(o.getPassword());
        return userResource;
    }

    /**
     *
     * @param o Experiment Data model object
     * @return Experiment Data resource object
     */
    private static Resource createExperimentData(Experiment_Data o){
        ExperimentDataResource experimentDataResource = new ExperimentDataResource();
        experimentDataResource.setExperimentID(o.getExperiment_ID());
        experimentDataResource.setExpName(o.getName());
        experimentDataResource.setUserName(o.getUsername());
        return experimentDataResource;
    }

    /**
     *
     * @param o Experiment MetaData model object
     * @return Experiment MetaData resource object
     */
    private static Resource createExperimentMetadata(Experiment_Metadata o) {
        ExperimentMetadataResource experimentMetadataResource = new ExperimentMetadataResource();
        experimentMetadataResource.setExpID(o.getExperiment_ID());
        experimentMetadataResource.setMetadata(new String(o.getMetadata()));
        return experimentMetadataResource;
    }

    /**
     *
     * @param o  Workflow_Data model object
     * @return  WorkflowDataResource object
     */
    private static Resource createWorkflowData(Workflow_Data o){
        WorkflowDataResource workflowDataResource = new WorkflowDataResource();
        workflowDataResource.setExperimentID(o.getExperiment_data().getExperiment_ID());
        workflowDataResource.setWorkflowInstanceID(o.getWorkflow_instanceID());
        workflowDataResource.setTemplateName(o.getTemplate_name());
        workflowDataResource.setStatus(o.getStatus());
        workflowDataResource.setStartTime(o.getStart_time());
        workflowDataResource.setLastUpdatedTime(o.getLast_update_time());
        return workflowDataResource;
    }

    /**
     *
     * @param o  Node_Data model object
     * @return Node Data resource
     */
    private static Resource createNodeData (Node_Data o){
        NodeDataResource nodeDataResource = new NodeDataResource();
        WorkflowDataResource workflowDataResource = (WorkflowDataResource)createWorkflowData(o.getWorkflow_Data());
        nodeDataResource.setWorkflowDataResource(workflowDataResource);
        nodeDataResource.setNodeID(o.getNode_id());
        nodeDataResource.setNodeType(o.getNode_type());
        if (o.getInputs()!=null) {
      nodeDataResource.setInputs(new String(o.getInputs()));
    }
    if (o.getOutputs()!=null) {
      nodeDataResource.setOutputs(new String(o.getOutputs()));
    }
    nodeDataResource.setStatus(o.getStatus());
        nodeDataResource.setStartTime(o.getStart_time());
        nodeDataResource.setLastUpdateTime(o.getLast_update_time());
        nodeDataResource.setExecutionIndex(o.getExecution_index());
        return nodeDataResource;
    }

    /**
     *
     * @param o GramData model object
     * @return GramData Resource object
     */
    private static Resource createGramData (Gram_Data o){
        GramDataResource gramDataResource = new GramDataResource();
        WorkflowDataResource workflowDataResource = (WorkflowDataResource)createWorkflowData(o.getWorkflow_Data());
        gramDataResource.setWorkflowDataResource(workflowDataResource);
        gramDataResource.setNodeID(o.getNode_id());
        gramDataResource.setRsl(new String(o.getRsl()));
        gramDataResource.setInvokedHost(o.getInvoked_host());
        gramDataResource.setLocalJobID(o.getLocal_Job_ID());
        return gramDataResource;
    }

//    public static byte[] getByteArray(String content){
//        byte[] contentBytes = content.getBytes();
//        return contentBytes;
//    }
}
TOP

Related Classes of org.apache.airavata.persistance.registry.jpa.resources.Utils

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.